Пример #1
0
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
Пример #2
0
    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
Пример #3
0
            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