add stubs for lmq rpc server

pull/1306/head
Jeff Becker 4 years ago
parent 520e472bcd
commit fb8b8e2e56
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -175,6 +175,7 @@ add_library(liblokinet
routing/path_transfer_message.cpp
routing/transfer_traffic_message.cpp
rpc/lokid_rpc_client.cpp
rpc/rpc_server.cpp
service/address.cpp
service/async_key_exchange.cpp
service/context.cpp

@ -64,6 +64,7 @@ namespace llarp
#else
, _randomStartDelay(std::chrono::seconds((llarp::randint() % 30) + 10))
#endif
, m_RPCServer(new rpc::RpcServer(m_lmq, this))
, m_lokidRpcClient(std::make_shared<rpc::LokidRpcClient>(m_lmq, this))
{
m_keyManager = std::make_shared<KeyManager>();
@ -850,8 +851,16 @@ namespace llarp
{
rpcBindAddr = DefaultRPCBindAddr;
}
// TODO: set up rpc server
// LogInfo("Bound RPC server to ", rpcBindAddr);
// older configs just specify an ip/port tuple so check for that and prepend tcp:// in that
// case
if (rpcBindAddr.find("tcp://") == std::string::npos
and rpcBindAddr.find("ipc://") == std::string::npos)
{
LogWarn("RPC Server protocol not specified, defaulting to tcp");
rpcBindAddr = "tcp://" + rpcBindAddr;
}
m_RPCServer->AsyncServeRPC(rpcBindAddr);
LogInfo("Bound RPC server to ", rpcBindAddr);
}
return true;

@ -25,6 +25,7 @@
#include <routing/handler.hpp>
#include <routing/message_parser.hpp>
#include <rpc/lokid_rpc_client.hpp>
#include <rpc/rpc_server.hpp>
#include <service/context.hpp>
#include <stdexcept>
#include <util/buffer.hpp>
@ -256,9 +257,11 @@ namespace llarp
NetworkConfig networkConfig;
DnsConfig dnsConfig;
const std::string DefaultRPCBindAddr = "127.0.0.1:1190";
const std::string DefaultRPCBindAddr = "tcp://127.0.0.1:1190";
bool enableRPCServer = false;
std::string rpcBindAddr = DefaultRPCBindAddr;
std::unique_ptr<rpc::RpcServer> m_RPCServer;
const llarp_time_t _randomStartDelay;
std::shared_ptr<rpc::LokidRpcClient> m_lokidRpcClient;

@ -15,6 +15,7 @@ namespace llarp
/// The LokidRpcClient uses loki-mq to talk to make API requests to lokid.
struct LokidRpcClient : public std::enable_shared_from_this<LokidRpcClient>
{
LokidRpcClient(LMQ_ptr lmq, AbstractRouter* r);
/// Connect to lokid async

@ -0,0 +1,14 @@
#include "rpc_server.hpp"
namespace llarp::rpc
{
RpcServer::RpcServer(LMQ_ptr lmq, AbstractRouter* r) : m_LMQ(std::move(lmq)), m_Router(r)
{
}
void RpcServer::AsyncServeRPC(std::string_view)
{
throw std::runtime_error("FIXME: implement llarp::rpc::RpcServer::AsyncServeRPC");
}
} // namespace llarp::rpc

@ -0,0 +1,26 @@
#pragma once
#include <string_view>
#include <lokimq/lokimq.h>
namespace llarp
{
struct AbstractRouter;
}
namespace llarp::rpc
{
using LMQ_ptr = std::shared_ptr<lokimq::LokiMQ>;
struct RpcServer
{
explicit RpcServer(LMQ_ptr, AbstractRouter*);
~RpcServer() = default;
void
AsyncServeRPC(const std::string_view addr);
private:
LMQ_ptr m_LMQ;
AbstractRouter* const m_Router;
};
} // namespace llarp::rpc
Loading…
Cancel
Save