import SocketServer
import socket
import logging
-import os
+import os, time
import types
import traceback
import sys, threading
response = fault.response()
return response
+ session = self.dispatcher.get_session_by_address(session_id)
+ if not session:
+ return 'Error: session not found'
+ session.time = time.time()
+
responses = []
if type(request) is not types.ListType:
request = [ request ]
responses.append(result.response())
continue
- session = self.dispatcher.get_session_by_address(session_id)
self.dispatcher.process(session, req_entry)
if req_entry['method'] == 'server.stop':
return json.dumps({'result':'ok'})
- r = self.poll_session(session_id)
+ r = self.poll_session(session)
for item in r:
responses.append(json.dumps(item))
self.dispatcher.add_session(session)
return session_id
- def poll_session(self, session_id):
- session = self.dispatcher.get_session_by_address(session_id)
+ def poll_session(self, session):
q = session.pending_responses
responses = []
while not q.empty():
raw_response = json.dumps(response)
self.pending_responses.put(response)
+ def stopped(self):
+ with self.lock:
+ if time.time() - self.time > 60:
+ self._stopped = True
+ return self._stopped
+
class HttpServer(threading.Thread):
def __init__(self, dispatcher, host, port):
self.shared = dispatcher.shared