summaryrefslogtreecommitdiff
path: root/pkg/server/socket/socket.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/server/socket/socket.go')
-rw-r--r--pkg/server/socket/socket.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/pkg/server/socket/socket.go b/pkg/server/socket/socket.go
index ea35be3..cb76cf7 100644
--- a/pkg/server/socket/socket.go
+++ b/pkg/server/socket/socket.go
@@ -38,11 +38,20 @@ type conn struct {
desc string
info string
- once sync.Once
+ once sync.Once
+ closed chan struct{}
}
func newConn(cn net.Conn, desc, info string) *conn {
- c := &conn{Conn: cn, desc: desc, info: info}
+ c := &conn{
+ Conn: cn,
+
+ desc: desc,
+ info: info,
+
+ closed: make(chan struct{}),
+ }
+
return c
}
@@ -64,6 +73,7 @@ func (c *conn) Close() error {
c.once.Do(func() {
log.Println("close", c.desc)
err = c.Conn.Close()
+ close(c.closed)
})
return err