This commit is contained in:
shadowsocked 2018-04-02 14:55:57 +08:00
parent e332ec93e9
commit b3dbcd4b32

View file

@ -18,6 +18,8 @@
from __future__ import absolute_import, division, print_function, \
with_statement
import os
import atexit
import errno
import traceback
import socket
@ -35,6 +37,9 @@ STAT_SEND_LIMIT = 50
class Manager(object):
def __init__(self, config):
atexit.register(self.cleanup)
self._is_unix = False
self._mngr_address = None
self._config = config
self._relays = {} # (tcprelay, udprelay)
self._loop = eventloop.EventLoop()
@ -57,6 +62,8 @@ class Manager(object):
else:
addr = manager_address
family = socket.AF_UNIX
self._is_unix = True
self._mngr_address = manager_address
self._control_socket = socket.socket(family,
socket.SOCK_DGRAM)
self._control_socket.bind(addr)
@ -78,6 +85,13 @@ class Manager(object):
a_config['password'] = password
self.add_port(a_config)
def cleanup(self):
if self._is_unix:
try:
os.unlink(self._mngr_address)
except:
pass
def add_port(self, config):
port = int(config['server_port'])
servers = self._relays.get(port, None)