Compare commits

..

No commits in common. "main" and "v0.0.3" have entirely different histories.
main ... v0.0.3

3 changed files with 19 additions and 26 deletions

View File

@ -22,7 +22,6 @@ func (c *Connection) Read(p []byte) (int, error) {
if !ok {
return 0, c.Close()
}
c.logger.Trace("dataframe received: ", df)
return df.Read(p)
}
@ -43,13 +42,11 @@ func (c *Connection) Write(p []byte) (int, error) {
if err != nil {
return 0, err
}
c.logger.Trace("dataframe send: ", df)
c.TX <- df
return n, nil
}
func (c *Connection) Close() error {
defer c.logger.Tracef("connection closed")
var lock sync.Mutex
defer close(c.TX)
if !c.closed {

View File

@ -22,17 +22,22 @@ type Logger interface {
type logger struct{}
func (l *logger) Trace(args ...interface{}) {}
func (l *logger) Tracef(format string, args ...interface{}) {}
func (l *logger) Debug(args ...interface{}) {}
func (l *logger) Debugf(format string, args ...interface{}) {}
func (l *logger) Info(args ...interface{}) {}
func (l *logger) Infof(format string, args ...interface{}) {}
func (l *logger) Error(args ...interface{}) {}
func (l *logger) Errorf(format string, args ...interface{}) {}
func (l *logger) Fatal(args ...interface{}) {}
func (l *logger) Fatalf(format string, args ...interface{}) {}
func (l *logger) Panic(args ...interface{}) {}
func (l *logger) Panicf(format string, args ...interface{}) {}
func (l *logger) Trace(args ...interface{})
func (l *logger) Tracef(format string, args ...interface{})
func (l *logger) Debug(args ...interface{})
func (l *logger) Debugf(format string, args ...interface{})
func (l *logger) Info(args ...interface{})
func (l *logger) Infof(format string, args ...interface{})
func (l *logger) Error(args ...interface{})
func (l *logger) Errorf(format string, args ...interface{})
func (l *logger) Fatal(args ...interface{})
func (l *logger) Fatalf(format string, args ...interface{})
func (l *logger) Panic(args ...interface{})
func (l *logger) Panicf(format string, args ...interface{})
var DefaultLogger = &logger{}

View File

@ -25,7 +25,6 @@ func NewManager(tun io.ReadWriter) *Manager {
accept: make(chan *DataFrame, 1024),
newConnection: make(chan *Connection),
delConnection: make(chan *Connection),
closed: make(chan bool),
logger: DefaultLogger,
}
}
@ -35,24 +34,18 @@ func (m *Manager) SetLogger(logger Logger) {
}
func (m *Manager) Run() {
m.logger.Debug("manager run")
onReceiveQueue := make(chan bool)
for {
select {
case <-m.closed:
return
case df := <-m.incoming:
m.logger.Trace("dataframe->tunnel: ", df)
go df.Encode(m.Tunnel)
case connection := <-m.newConnection:
m.Connections[connection.ID] = connection
m.logger.Tracef("connection '%s' registered", connection.ID)
case connection := <-m.delConnection:
if !connection.closed {
connection.Close()
delete(m.Connections, connection.ID)
m.logger.Tracef("connection '%s' unregistered", connection.ID)
}
connection.Close()
delete(m.Connections, connection.ID)
case onReceiveQueue <- true:
go m.onReceive(onReceiveQueue)
}
@ -65,8 +58,6 @@ func (m *Manager) onReceive(ch chan bool) {
if err := df.Decode(m.Tunnel); err != nil {
return
}
m.logger.Trace("dataframe<-tunnel: ", df)
switch df.Type {
case TypeRequest:
m.accept <- df