def bitHopper_Post(request): content = request.content.read() if not bithopper_global.options.noLP: request.setHeader("X-Long-Polling", "/LP") rpc_request = json.loads(content) # check if they are sending a valid message if rpc_request["method"] != "getwork": return json.dumps({"result": None, "error": "Not supported", "id": rpc_request["id"]}) # Check for data to be validated currentServer = bithopper_global.pool.get_current() data = rpc_request["params"] j_id = rpc_request["id"] if data != []: storedServer = bithopper_global.getwork_store.get_server(data[0][72:136]) if storedServer != None: currentServer = storedServer bithopper_global.shareCounter = bithopper_global.shareCounter + 1 if bithopper_global.options.debug: bithopper_global.log_msg( "RPC request " + str(data) + " submitted to " + str(bithopper_global.pool.get_entry(currentServer)["name"]) ) elif data != []: bithopper_global.log_msg( "RPC request [" + str(data[0][152:160]) + "] submitted to " + str(bithopper_global.pool.get_entry(currentServer)["name"]) ) work.jsonrpc_getwork(bithopper_global, currentServer, data, j_id, request) return server.NOT_DONE_YET
def bitHopper_Post(self,request): if not self.options.noLP: request.setHeader('X-Long-Polling', '/LP') rpc_request = json.loads(request.content.read()) #check if they are sending a valid message if rpc_request['method'] != "getwork": return json.dumps({'result':None, 'error':'Not supported', 'id':rpc_request['id']}) #Check for data to be validated current = self.pool.get_current() data = rpc_request['params'] j_id = rpc_request['id'] if data != []: new_server = self.getwork_store.get_server(data[0][72:136]) if new_server != None: current = new_server pool_server=self.pool.get_entry(current) work.jsonrpc_getwork(self.json_agent, pool_server, data, j_id, request, self) if self.options.debug: self.log_msg('RPC request ' + str(data) + " submitted to " + str(pool_server['name'])) else: if data == []: #If request contains no data, tell the user which remote procedure was called instead rep = rpc_request['method'] else: rep = str(data[0][155:163]) self.log_msg('RPC request [' + rep + "] submitted to " + str(pool_server['name'])) if data != []: self.data_callback(current,data, request.getUser(), request.getPassword()) return server.NOT_DONE_YET
bithopper_global.log_dbg("reading request content failed") json_request = None try: rpc_request = json.loads(json_request) except Exception, e: bithopper_global.log_dbg("Loading the request failed") rpc_request = {"params": [], "id": 1} # Check for data to be validated data = rpc_request["params"] j_id = rpc_request["id"] if request._disconnected == True: bithopper_global.log_msg("Client LP already disconnected") else: work.jsonrpc_getwork(bithopper_global, bithopper_global.pool.get_current(), data, j_id, request) except Exception, e: bithopper_global.log_msg("Error Caught in bitHopperLP") bithopper_global.log_dbg(str(e)) try: request.finish() except Exception, e: bithopper_global.log_dbg("Client already disconnected Urgh.") return None class lpSite(resource.Resource): isLeaf = True