"""
-def random_string(N):
- import random, string
- return ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(N))
-
-
+from processor import random_string
def get_version(request):
response = fault.response()
return response
+ session = self.dispatcher.get_session_by_address(session_id)
+ if not session:
+ return 'Error: session not found'
+
responses = []
if type(request) is not types.ListType:
request = [ request ]
responses.append(result.response())
continue
- session = self.sessions.get(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.send_header("Set-Cookie", "SESSION=%s"%session_id)
self.send_header("Content-type", "application/json-rpc")
+ self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Content-length", str(len(response)))
self.end_headers()
self.wfile.write(response)
self.send_header("Set-Cookie", "SESSION=%s"%session_id)
self.send_header("Content-type", "application/json-rpc")
+ self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Content-length", str(len(response)))
self.end_headers()
self.wfile.write(response)
flags |= fcntl.FD_CLOEXEC
fcntl.fcntl(self.fileno(), fcntl.F_SETFD, flags)
- self.sessions = {}
-
def create_session(self):
session_id = random_string(10)
- self.sessions[session_id] = HttpSession(session_id)
+ session = HttpSession(session_id)
+ self.dispatcher.add_session(session)
return session_id
- def poll_session(self, session_id):
- q = self.sessions[session_id].pending_responses
+ def poll_session(self, session):
+ q = session.pending_responses
responses = []
while not q.empty():
r = q.get()
def __init__(self, session_id):
Session.__init__(self)
self.pending_responses = Queue.Queue()
- print "new http session", session_id
+ self.address = session_id
+ self.name = "HTTP session"
def send_response(self, response):
raw_response = json.dumps(response)
self.server = StratumThreadedJSONRPCServer(( self.host, self.port))
self.server.dispatcher = self.dispatcher
self.server.register_function(None, 'server.stop')
+ self.server.register_function(None, 'server.info')
print "HTTP server started."
self.server.serve_forever()