From 65383ca074c7ee02311df11d57ca42061177558e Mon Sep 17 00:00:00 2001 From: ThomasV Date: Fri, 30 Mar 2012 01:19:36 +0400 Subject: [PATCH] password --- server.py | 2 +- transports/stratum_http.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/server.py b/server.py index 6feb636..8b67e49 100755 --- a/server.py +++ b/server.py @@ -96,7 +96,7 @@ if __name__ == '__main__': transports = [] if native_port: transports.append( NativeServer(shared, abe, sb, config.get('server','banner'), host, int(native_port)) ) if stratum_tcp_port: transports.append( TcpServer(dispatcher, host, int(stratum_tcp_port)) ) - if stratum_http_port: transports.append( HttpServer(dispatcher, host, int(stratum_http_port)) ) + if stratum_http_port: transports.append( HttpServer(dispatcher, host, int(stratum_http_port), password) ) for server in transports: server.start() diff --git a/transports/stratum_http.py b/transports/stratum_http.py index a7ef49d..b9fe30c 100644 --- a/transports/stratum_http.py +++ b/transports/stratum_http.py @@ -341,13 +341,14 @@ class HttpSession(Session): self.pending_responses.append(response) class HttpServer(threading.Thread): - def __init__(self, dispatcher, host, port): + def __init__(self, dispatcher, host, port, password): self.shared = dispatcher.shared self.dispatcher = dispatcher.request_dispatcher threading.Thread.__init__(self) self.daemon = True self.host = host self.port = port + self.password = password self.lock = threading.Lock() def run(self): @@ -373,8 +374,13 @@ class HttpServer(threading.Thread): self.dispatcher.process(session, request) def do_stop(self, session, request): - self.shared.stop() - return 'ok' + try: + password = request['params'][0] + except: + password = None + if password == self.password: + self.shared.stop() + return 'ok' -- 1.7.1