X-Git-Url: https://git.novaco.in/?p=electrum-server.git;a=blobdiff_plain;f=transports%2Fstratum_http.py;h=8118478458c7ffbd1778e2a2013baa95f230b019;hp=ef738e36d56600a638dd3a15fc2d0649ba8730bd;hb=3051f46df11fc6c9ebe321c9ef6d726e65310129;hpb=289ccdf9d4eb9b686d26b6482992cd4ad078df9f diff --git a/transports/stratum_http.py b/transports/stratum_http.py index ef738e3..8118478 100644 --- a/transports/stratum_http.py +++ b/transports/stratum_http.py @@ -22,7 +22,7 @@ import SimpleXMLRPCServer import SocketServer import socket import logging -import os +import os, time import types import traceback import sys, threading @@ -100,6 +100,7 @@ class StratumJSONRPCDispatcher(SimpleXMLRPCServer.SimpleXMLRPCDispatcher): 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: @@ -290,6 +291,12 @@ class HttpSession(Session): 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