From 9d8879fc3740bf8ff24de78e4b1aa6c39bd7ddf1 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Thu, 24 May 2012 08:44:03 +0200 Subject: [PATCH] Restructuring --- .../dist-daemon => daemon/dist/dist-core.py | 30 +++++++++++-------- .../master/master-core.py | 0 node/node-daemon => daemon/node/node-core.py | 0 3 files changed, 17 insertions(+), 13 deletions(-) rename distribution-server/dist-daemon => daemon/dist/dist-core.py (84%) rename master/master-daemon => daemon/master/master-core.py (100%) rename node/node-daemon => daemon/node/node-core.py (100%) diff --git a/distribution-server/dist-daemon b/daemon/dist/dist-core.py similarity index 84% rename from distribution-server/dist-daemon rename to daemon/dist/dist-core.py index 75f3b57..4ff2639 100755 --- a/distribution-server/dist-daemon +++ b/daemon/dist/dist-core.py @@ -91,8 +91,8 @@ while select_inputs: readable, writable, error = select.select(select_inputs, select_outputs, select_inputs) for sock in readable: - if sock is bindsocket: - try: + try: + if sock is bindsocket: newsocket, fromaddr = bindsocket.accept() connstream = ssl.wrap_socket(newsocket, server_side=True, @@ -105,18 +105,22 @@ while select_inputs: select_inputs.append(connstream) client_map[connstream.fileno()] = new_client client_list.append(new_client) - except ssl.SSLError: - # todo: handle exception, SSL initialization failed? - pass - else: - data = sock.recv(1024) - - if data: - cur_client = client_map[sock.fileno()] - cur_client.process_data(data) else: - select_inputs = remove_from_list(select_inputs, sock) - print "NOTICE: Client disconnected" + data = sock.recv(1024) + + if data: + cur_client = client_map[sock.fileno()] + cur_client.process_data(data) + else: + select_inputs = remove_from_list(select_inputs, sock) + print "NOTICE: Client disconnected" + except ssl.SSLError, err: + if err.args[0] == ssl.SSL_ERROR_WANT_READ: + select.select([sock], [], []) + elif err.args[0] == ssl.SSL_ERROR_WANT_WRITE: + select.select([], [sock], []) + else: + raise print "Server socket closed, exiting..." diff --git a/master/master-daemon b/daemon/master/master-core.py similarity index 100% rename from master/master-daemon rename to daemon/master/master-core.py diff --git a/node/node-daemon b/daemon/node/node-core.py similarity index 100% rename from node/node-daemon rename to daemon/node/node-core.py