Przeglądaj źródła

Merge branch 'master' of https://github.com/v2ray/v2ray-core

Darien Raymond 8 lat temu
rodzic
commit
8acde086c3
1 zmienionych plików z 8 dodań i 2 usunięć
  1. 8 2
      app/proxyman/mux/mux.go

+ 8 - 2
app/proxyman/mux/mux.go

@@ -158,6 +158,8 @@ func (m *Client) Closed() bool {
 }
 
 func (m *Client) monitor() {
+	defer m.manager.onClientFinish()
+
 	for {
 		select {
 		case <-m.ctx.Done():
@@ -166,17 +168,21 @@ func (m *Client) monitor() {
 		case id := <-m.session2Remove:
 			m.access.Lock()
 			delete(m.sessions, id)
+			if len(m.sessions) == 0 {
+				m.cancel()
+			}
 			m.access.Unlock()
 		}
 	}
 }
 
 func (m *Client) cleanup() {
-	defer m.manager.onClientFinish()
-
 	m.access.Lock()
 	defer m.access.Unlock()
 
+	m.inboundRay.InboundInput().Close()
+	m.inboundRay.InboundOutput().CloseError()
+
 	for _, s := range m.sessions {
 		s.closeUplink()
 		s.closeDownlink()