fix some exceptions
This commit is contained in:
parent
9defba2d36
commit
928c26e4f2
2 changed files with 10 additions and 3 deletions
|
@ -21,6 +21,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import hashlib
|
import hashlib
|
||||||
import logging
|
import logging
|
||||||
|
import random
|
||||||
|
|
||||||
from shadowsocks import common
|
from shadowsocks import common
|
||||||
from shadowsocks.crypto import rc4_md5, openssl, sodium, table
|
from shadowsocks.crypto import rc4_md5, openssl, sodium, table
|
||||||
|
@ -34,7 +35,10 @@ method_supported.update(table.ciphers)
|
||||||
|
|
||||||
|
|
||||||
def random_string(length):
|
def random_string(length):
|
||||||
return os.urandom(length)
|
try:
|
||||||
|
return os.urandom(length)
|
||||||
|
except (AttributeError, NotImplementedError):
|
||||||
|
return ''.join(chr(random.randrange(255)) for _ in range(length))
|
||||||
|
|
||||||
|
|
||||||
cached_keys = {}
|
cached_keys = {}
|
||||||
|
|
|
@ -1036,8 +1036,11 @@ class UDPRelay(object):
|
||||||
self.write_to_server_socket(data_to_send, r_addr)
|
self.write_to_server_socket(data_to_send, r_addr)
|
||||||
elif data[0] > CMD_CONNECT_REMOTE and data[0] <= CMD_DISCONNECT:
|
elif data[0] > CMD_CONNECT_REMOTE and data[0] <= CMD_DISCONNECT:
|
||||||
if data[1] in self._reqid_to_hd:
|
if data[1] in self._reqid_to_hd:
|
||||||
self.update_activity(self._reqid_to_hd[data[1]])
|
if type(self._reqid_to_hd[data[1]]) is tuple:
|
||||||
self._reqid_to_hd[data[1]].handle_client(r_addr, *data)
|
pass
|
||||||
|
else:
|
||||||
|
self.update_activity(self._reqid_to_hd[data[1]])
|
||||||
|
self._reqid_to_hd[data[1]].handle_client(r_addr, *data)
|
||||||
else:
|
else:
|
||||||
# disconnect
|
# disconnect
|
||||||
rsp_data = self._pack_rsp_data(CMD_DISCONNECT, data[1], RSP_STATE_EMPTY)
|
rsp_data = self._pack_rsp_data(CMD_DISCONNECT, data[1], RSP_STATE_EMPTY)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue