|
|
@ -673,6 +673,12 @@ def tcp_server_thread(): |
|
|
|
traceback.print_exc(file=sys.stdout) |
|
|
|
|
|
|
|
|
|
|
|
def close_sesion(session_id): |
|
|
|
print "lost connection", session_id |
|
|
|
sessions.pop(session_id) |
|
|
|
sessions_sub_numblocks.remove(session_id) |
|
|
|
|
|
|
|
|
|
|
|
# one thread per client. put requests in a queue. |
|
|
|
def tcp_client_thread(ipaddr,conn): |
|
|
|
""" use a persistent connection. put commands in a queue.""" |
|
|
@ -689,9 +695,7 @@ def tcp_client_thread(ipaddr,conn): |
|
|
|
d = conn.recv(1024) |
|
|
|
msg += d |
|
|
|
if not d: |
|
|
|
print "lost connection", session_id |
|
|
|
sessions.pop(session_id) |
|
|
|
sessions_sub_numblocks.remove(session_id) |
|
|
|
close_sesion(session_id) |
|
|
|
break |
|
|
|
|
|
|
|
while True: |
|
|
@ -744,8 +748,12 @@ def process_output_queue(): |
|
|
|
session_id, out = output_queue.get() |
|
|
|
session = sessions.get(session_id) |
|
|
|
if session: |
|
|
|
conn = session.get('conn') |
|
|
|
conn.send(out+'\n') |
|
|
|
try: |
|
|
|
conn = session.get('conn') |
|
|
|
conn.send(out+'\n') |
|
|
|
except: |
|
|
|
close_session(session_id) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|