fix typo
[electrum-server.git] / server.py
index 2d4118a..42b6b9f 100755 (executable)
--- a/server.py
+++ b/server.py
@@ -673,10 +673,11 @@ def tcp_server_thread():
             traceback.print_exc(file=sys.stdout)
 
 
-def close_sesion(session_id):
+def close_session(session_id):
     print "lost connection", session_id
     sessions.pop(session_id)
-    sessions_sub_numblocks.remove(session_id)
+    if session_id in sessions_sub_numblocks:
+        sessions_sub_numblocks.remove(session_id)
 
 
 # one thread per client. put requests in a queue.
@@ -695,7 +696,7 @@ def tcp_client_thread(ipaddr,conn):
         d = conn.recv(1024)
         msg += d
         if not d:
-            close_sesion(session_id)
+            close_session(session_id)
             break
 
         while True:
@@ -721,6 +722,8 @@ def tcp_client_thread(ipaddr,conn):
 def process_input_queue():
     while not stopping:
         session_id, cmd, data = input_queue.get()
+        if session_id not in sessions.keys():
+            continue
         out = None
         if cmd == 'address.subscribe':
             subscribe_to_address(session_id,data)
@@ -730,6 +733,8 @@ def process_input_queue():
             sessions[session_id]['version'] = data
         elif cmd == 'server.banner':
             out = json.dumps( { 'method':'server.banner', 'result':config.get('server','banner').replace('\\n','\n') } )
+        elif cmd == 'server.peers':
+            out = json.dumps( { 'method':'server.peers', 'result':peer_list.values() } )
         elif cmd == 'address.get_history':
             address = data
             out = json.dumps( { 'method':'address.get_history', 'address':address, 'result':store.get_history( address ) } )