X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=transports%2Fstratum_http.py;h=2b86869f92705deb58306ccdb46c404d68842a67;hb=5bbcbea8ce9f9344dffef8a1204c6429ce1166aa;hp=add17ea20cad98ab5566476146c3e1e9bec9e321;hpb=c9c337a89a3f04d7a985a521ca552d421fd94fda;p=electrum-server.git diff --git a/transports/stratum_http.py b/transports/stratum_http.py index add17ea..2b86869 100644 --- a/transports/stratum_http.py +++ b/transports/stratum_http.py @@ -126,9 +126,8 @@ class StratumJSONRPCDispatcher(SimpleXMLRPCServer.SimpleXMLRPCDispatcher): return response def create_session(self): - session_id = random_string(10) - session = HttpSession(session_id) - self.dispatcher.add_session(session) + session_id = random_string(20) + session = HttpSession(self.dispatcher, session_id) return session_id def poll_session(self, session): @@ -147,7 +146,7 @@ class StratumJSONRPCRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler self.send_response(200) self.send_header('Allow', 'GET, POST, OPTIONS') self.send_header('Access-Control-Allow-Origin', '*') - self.send_header('Access-Control-Allow-Headers', '*') + self.send_header('Access-Control-Allow-Headers', 'Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma, Accept-Language, Accept, Origin') self.send_header('Content-Length', '0') self.end_headers() @@ -335,21 +334,18 @@ class StratumHTTPSSLServer(SSLTCPServer, StratumJSONRPCDispatcher): class HttpSession(Session): - def __init__(self, session_id): - Session.__init__(self) + def __init__(self, dispatcher, session_id): + Session.__init__(self, dispatcher) self.pending_responses = Queue.Queue() self.address = session_id self.name = "HTTP" + self.timeout = 60 + self.dispatcher.add_session(self) def send_response(self, response): 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):