python 3 support; not stable yet

This commit is contained in:
clowwindy 2014-10-31 18:28:22 +08:00
parent 0814888ba5
commit 2a53b67c65
17 changed files with 204 additions and 115 deletions

View file

@ -21,11 +21,15 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
from __future__ import absolute_import, division, print_function, \
with_statement
import sys
import os
import logging
import signal
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../'))
from shadowsocks import utils, encrypt, eventloop, tcprelay, udprelay, asyncdns
@ -66,13 +70,13 @@ def main():
def run_server():
def child_handler(signum, _):
logging.warn('received SIGQUIT, doing graceful shutting down..')
map(lambda s: s.close(next_tick=True), tcp_servers + udp_servers)
list(map(lambda s: s.close(next_tick=True), tcp_servers + udp_servers))
signal.signal(getattr(signal, 'SIGQUIT', signal.SIGTERM),
child_handler)
try:
loop = eventloop.EventLoop()
dns_resolver.add_to_loop(loop)
map(lambda s: s.add_to_loop(loop), tcp_servers + udp_servers)
list(map(lambda s: s.add_to_loop(loop), tcp_servers + udp_servers))
loop.run()
except (KeyboardInterrupt, IOError, OSError) as e:
logging.error(e)
@ -85,7 +89,7 @@ def main():
if os.name == 'posix':
children = []
is_child = False
for i in xrange(0, int(config['workers'])):
for i in range(0, int(config['workers'])):
r = os.fork()
if r == 0:
logging.info('worker started')