|
|
@ -184,7 +184,6 @@ struct HTTPReply
|
|
|
|
static std::string http_errorstring(int code)
|
|
|
|
static std::string http_errorstring(int code)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
switch(code) {
|
|
|
|
switch(code) {
|
|
|
|
#if LIBEVENT_VERSION_NUMBER >= 0x02010300
|
|
|
|
|
|
|
|
case EVREQ_HTTP_TIMEOUT:
|
|
|
|
case EVREQ_HTTP_TIMEOUT:
|
|
|
|
return "timeout reached";
|
|
|
|
return "timeout reached";
|
|
|
|
case EVREQ_HTTP_EOF:
|
|
|
|
case EVREQ_HTTP_EOF:
|
|
|
@ -197,7 +196,6 @@ static std::string http_errorstring(int code)
|
|
|
|
return "request was canceled";
|
|
|
|
return "request was canceled";
|
|
|
|
case EVREQ_HTTP_DATA_TOO_LONG:
|
|
|
|
case EVREQ_HTTP_DATA_TOO_LONG:
|
|
|
|
return "response body is larger than allowed";
|
|
|
|
return "response body is larger than allowed";
|
|
|
|
#endif
|
|
|
|
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
return "unknown";
|
|
|
|
return "unknown";
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -228,13 +226,11 @@ static void http_request_done(struct evhttp_request *req, void *ctx)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if LIBEVENT_VERSION_NUMBER >= 0x02010300
|
|
|
|
|
|
|
|
static void http_error_cb(enum evhttp_request_error err, void *ctx)
|
|
|
|
static void http_error_cb(enum evhttp_request_error err, void *ctx)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
HTTPReply *reply = static_cast<HTTPReply*>(ctx);
|
|
|
|
HTTPReply *reply = static_cast<HTTPReply*>(ctx);
|
|
|
|
reply->error = err;
|
|
|
|
reply->error = err;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Class that handles the conversion from a command-line to a JSON-RPC request,
|
|
|
|
/** Class that handles the conversion from a command-line to a JSON-RPC request,
|
|
|
|
* as well as converting back to a JSON object that can be shown as result.
|
|
|
|
* as well as converting back to a JSON object that can be shown as result.
|
|
|
@ -745,11 +741,11 @@ static UniValue CallRPC(BaseRequestHandler* rh, const std::string& strMethod, co
|
|
|
|
|
|
|
|
|
|
|
|
HTTPReply response;
|
|
|
|
HTTPReply response;
|
|
|
|
raii_evhttp_request req = obtain_evhttp_request(http_request_done, (void*)&response);
|
|
|
|
raii_evhttp_request req = obtain_evhttp_request(http_request_done, (void*)&response);
|
|
|
|
if (req == nullptr)
|
|
|
|
if (req == nullptr) {
|
|
|
|
throw std::runtime_error("create http request failed");
|
|
|
|
throw std::runtime_error("create http request failed");
|
|
|
|
#if LIBEVENT_VERSION_NUMBER >= 0x02010300
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
evhttp_request_set_error_cb(req.get(), http_error_cb);
|
|
|
|
evhttp_request_set_error_cb(req.get(), http_error_cb);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Get credentials
|
|
|
|
// Get credentials
|
|
|
|
std::string strRPCUserColonPass;
|
|
|
|
std::string strRPCUserColonPass;
|
|
|
|