catch bind error

This commit is contained in:
破娃酱 2016-11-22 07:23:30 +08:00
parent 0b94af0b7d
commit ce25bbf650
2 changed files with 9 additions and 3 deletions

View file

@ -548,7 +548,10 @@ class TCPRelayHandler(object):
local_addrs = socket.getaddrinfo(bind_addr, 0, 0, socket.SOCK_STREAM, socket.SOL_TCP)
if local_addrs[0][0] == af:
logging.debug("bind %s" % (bind_addr,))
sock.bind((bind_addr, 0))
try:
sock.bind((bind_addr, 0))
except Exception as e:
logging.warn("bind %s fail" % (bind_addr,))
def _create_remote_socket(self, ip, port):
if self._remote_udp:

View file

@ -1025,10 +1025,13 @@ class UDPRelay(object):
if bind_addr in self._ignore_bind_list:
bind_addr = None
if bind_addr:
local_addrs = socket.getaddrinfo(bind_addr, 0, 0, socket.SOCK_STREAM, socket.SOL_TCP)
local_addrs = socket.getaddrinfo(bind_addr, 0, 0, socket.SOCK_DGRAM, socket.SOL_UDP)
if local_addrs[0][0] == af:
logging.debug("bind %s" % (bind_addr,))
sock.bind((bind_addr, 0))
try:
sock.bind((bind_addr, 0))
except Exception as e:
logging.warn("bind %s fail" % (bind_addr,))
def _handle_server(self):
server = self._server_socket