fix up jsonrpc stuff

pull/35/head
Jeff Becker 6 years ago
parent ab7a4cd805
commit 04d55b94c5
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -478,10 +478,10 @@ set(CLIENT_SRC
client/main.cpp
)
include_directories(include)
# TODO: exclude this from includes and expose stuff properly for rcutil
include_directories(llarp)
include_directories(include)
set(RC_EXE rcutil)
set(DNS_EXE dns)

@ -25,8 +25,7 @@ namespace abyss
IRPCHandler(ConnImpl* impl);
virtual bool
HandleJSONRPC(const Method_t& method, Params params,
Response& response) = 0;
HandleJSONRPC(Method_t method, Params params, Response& response) = 0;
~IRPCHandler();

@ -9,10 +9,10 @@ struct DemoHandler : public abyss::http::IRPCHandler
}
bool
HandleJSONRPC(const Method_t& method, Params params, Response& resp)
HandleJSONRPC(Method_t method, Params params, Response& resp)
{
llarp::LogInfo("method: ", method);
resp.AddMember("jsonrpc", abyss::json::Value().SetString("2.0"),
resp.AddMember("result", abyss::json::Value().SetInt(1),
resp.GetAllocator());
return true;
}

@ -228,16 +228,23 @@ namespace abyss
"bad json object");
case json::IParser::eDone:
if(m_Request.IsObject() && m_Request.HasMember("params")
&& m_Request.HasMember("method")
&& m_Request.HasMember("method") && m_Request.HasMember("id")
&& (m_Request["id"].IsString() || m_Request["id"].IsNumber())
&& m_Request["method"].IsString()
&& m_Request["params"].IsObject())
{
m_Response.SetObject();
m_Response.AddMember("jsonrpc",
abyss::json::Value().SetString("2.0"),
m_Response.GetAllocator());
m_Response.AddMember("id", m_Request["id"],
m_Response.GetAllocator());
if(handler->HandleJSONRPC(m_Request["method"].GetString(),
m_Request["params"].GetObject(),
m_Response))
{
return WriteResponseJSON();
}
}
return WriteResponseSimple(500, "internal error", "text/plain",
"nope");

@ -20,7 +20,7 @@ namespace llarp
}
bool
HandleJSONRPC(const Method_t& method, Params params, Response& response)
HandleJSONRPC(Method_t method, Params params, Response& response)
{
return false;
}

@ -15,10 +15,11 @@ Build requirements:
* GNU Make
* CMake
* C++ 17 capable C++ compiler
* rapidjson
To build:
$ sudo apt install build-essential cmake git libcap-dev wget
$ sudo apt install build-essential cmake git libcap-dev wget rapidjson-dev
$ git clone https://github.com/loki-project/loki-network
$ cd loki-network
$ make -j8

Loading…
Cancel
Save