mirror of https://github.com/oxen-io/lokinet
add stubs for lmq rpc server
This commit is contained in:
parent
520e472bcd
commit
fb8b8e2e56
|
@ -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…
Reference in New Issue