update session
authorThomasV <thomasv@gitorious>
Thu, 8 Dec 2011 20:42:10 +0000 (23:42 +0300)
committerThomasV <thomasv@gitorious>
Thu, 8 Dec 2011 20:42:10 +0000 (23:42 +0300)
server.py

index 9e5a29b..20e39b5 100755 (executable)
--- a/server.py
+++ b/server.py
@@ -361,6 +361,7 @@ def client_thread(ipaddr,conn):
 
         if cmd=='b':
             out = "%d"%block_number
+
         elif cmd=='session':
             session_id = random_string(10)
             try:
@@ -370,7 +371,7 @@ def client_thread(ipaddr,conn):
                 conn.close()
                 return
 
-            print time.asctime(), "session", ipaddr, session_id, addresses[0] if addresses else addresses, len(addresses)
+            print time.asctime(), "new session", ipaddr, session_id, addresses[0] if addresses else addresses, len(addresses)
 
             sessions[session_id] = {}
             for a in addresses:
@@ -378,11 +379,27 @@ def client_thread(ipaddr,conn):
             out = repr( (session_id, config.get('server','banner').replace('\\n','\n') ) )
             sessions_last_time[session_id] = time.time()
 
+        elif cmd=='update_session':
+            try:
+                session_id, addresses = ast.literal_eval(data)
+            except:
+                print "error"
+                conn.close()
+                return
+
+            print time.asctime(), "update session", ipaddr, session_id, addresses[0] if addresses else addresses, len(addresses)
+
+            sessions[session_id] = {}
+            for a in addresses:
+                sessions[session_id][a] = ''
+            out = 'ok'
+            sessions_last_time[session_id] = time.time()
+
         elif cmd=='poll': 
             session_id = data
             addresses = sessions.get(session_id)
             if addresses is None:
-                print time.asctime(), " Session not found", session_id, ipaddr
+                print time.asctime(), "session not found", session_id, ipaddr
                 out = repr( (-1, {}))
             else:
                 t1 = time.time()