good morning!!!!

Skip to content
Snippets Groups Projects
Commit 73af1a57 authored by Garet Halliday's avatar Garet Halliday
Browse files

prevent hanging conns

parent a1ad14cf
No related branches found
No related tags found
No related merge requests found
......@@ -15,6 +15,7 @@ type Module struct {
Config
listener net.Listener
closed chan struct{}
accepted chan<- gat.AcceptedConn
}
......@@ -26,6 +27,8 @@ func (T *Module) Start() error {
return nil
}
T.closed = make(chan struct{})
var err error
T.listener, err = net.Listen(T.Network, T.Address)
if err != nil {
......@@ -40,6 +43,7 @@ func (T *Module) Stop() error {
if err := T.listener.Close(); err != nil {
return err
}
close(T.closed)
return nil
}
......@@ -61,10 +65,13 @@ func (T *Module) accept(raw net.Conn) {
log.Printf("failed to accept conn: %v", err)
return
}
_ = params // TODO(garet)
T.accepted <- gat.AcceptedConn{
select {
case T.accepted <- gat.AcceptedConn{
Conn: conn,
Params: params,
}:
case <-T.closed:
_ = conn.Close()
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment