Skip to content

Commit 339c1cc

Browse files
committed
fix connections ref
1 parent a629d1b commit 339c1cc

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

shadowsocks/tcprelay.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ def __init__(self, server, fd_to_handlers, loop, local_sock, config,
138138
self._remote_udp = False
139139
self._config = config
140140
self._dns_resolver = dns_resolver
141+
self._add_ref = 0
141142
if not self._create_encryptor(config):
142143
return
143144

@@ -217,6 +218,7 @@ def __init__(self, server, fd_to_handlers, loop, local_sock, config,
217218
self._update_activity()
218219
self._server.add_connection(1)
219220
self._server.stat_add(self._client_address[0], 1)
221+
self._add_ref = 1
220222
self.speed_tester_u = SpeedTester(config.get("speed_limit_per_con", 0))
221223
self.speed_tester_d = SpeedTester(config.get("speed_limit_per_con", 0))
222224
self._recv_u_max_size = BUF_SIZE
@@ -1159,8 +1161,9 @@ def destroy(self):
11591161
self._encryptor = None
11601162
self._dns_resolver.remove_callback(self._handle_dns_resolved)
11611163
self._server.remove_handler(self)
1162-
self._server.add_connection(-1)
1163-
self._server.stat_add(self._client_address[0], -1)
1164+
if self._add_ref > 0:
1165+
self._server.add_connection(-1)
1166+
self._server.stat_add(self._client_address[0], -1)
11641167

11651168
class TCPRelay(object):
11661169
def __init__(self, config, dns_resolver, is_local, stat_callback=None, stat_counter=None):

0 commit comments

Comments
 (0)