diff --git a/app/proxyman/inbound/unix.go b/app/proxyman/inbound/unix.go index 291dadbf..62a72417 100644 --- a/app/proxyman/inbound/unix.go +++ b/app/proxyman/inbound/unix.go @@ -39,8 +39,12 @@ func (uih *UnixInboundHandler) Start() { return } func (uih *UnixInboundHandler) progressTraffic(rece <-chan net.Conn) { + for { - conn := <-rece + conn, notclosed := <-rece + if !notclosed { + return + } go func(conn net.Conn) { ctx, cancel := context.WithCancel(uih.ctx) if len(uih.tag) > 0 { diff --git a/transport/internet/domainsocket/listener.go b/transport/internet/domainsocket/listener.go index e59bbcb4..2f56dd91 100644 --- a/transport/internet/domainsocket/listener.go +++ b/transport/internet/domainsocket/listener.go @@ -128,6 +128,7 @@ func (ls *Listener) uploop(cctx context.Context) { errortolerance := 5 for { if cctx.Err() != nil { + close(ls.listenerChan) return } conn, err := ls.ln.Accept()