Update RouterHive to reflect config changes

pull/1186/head
Stephen Shelton 4 years ago
parent 6a10a33e9e
commit dfcf8fb62e
No known key found for this signature in database
GPG Key ID: EE4BADACCE8B631C

@ -16,6 +16,8 @@
#include <vector>
#include <unordered_set>
struct llarp_config;
namespace llarp
{
using SectionValues_t = llarp::ConfigParser::SectionValues_t;
@ -192,6 +194,9 @@ namespace llarp
std::string
generateBaseRouterConfig(fs::path defaultDataDir);
llarp_config*
Copy() const;
};
void

@ -14,9 +14,9 @@ namespace tooling
{
void
RouterHive::AddRouter(
const std::shared_ptr<llarp::Config>& config, std::vector<llarp_main*>* routers)
const std::shared_ptr<llarp::Config>& config, std::vector<llarp_main*>* routers, bool isRelay)
{
llarp_main* ctx = llarp_main_init_from_config(config->Copy());
llarp_main* ctx = llarp_main_init_from_config(config->Copy(), isRelay);
if (llarp_main_setup(ctx) == 0)
{
llarp::Context::Get(ctx)->InjectHive(this);
@ -27,13 +27,13 @@ namespace tooling
void
RouterHive::AddRelay(const std::shared_ptr<llarp::Config>& config)
{
AddRouter(config, &relays);
AddRouter(config, &relays, true);
}
void
RouterHive::AddClient(const std::shared_ptr<llarp::Config>& config)
{
AddRouter(config, &clients);
AddRouter(config, &clients, false);
}
void

@ -29,7 +29,10 @@ namespace tooling
StartRouters(std::vector<llarp_main*>* routers);
void
AddRouter(const std::shared_ptr<llarp::Config>& config, std::vector<llarp_main*>* routers);
AddRouter(
const std::shared_ptr<llarp::Config>& config,
std::vector<llarp_main*>* routers,
bool isRelay);
/// safely visit router
void

@ -20,11 +20,9 @@ namespace llarp
.def_readwrite("router", &Config::router)
.def_readwrite("network", &Config::network)
.def_readwrite("connect", &Config::connect)
.def_readwrite("netdb", &Config::netdb)
.def_readwrite("dns", &Config::dns)
.def_readwrite("links", &Config::links)
.def_readwrite("services", &Config::services)
.def_readwrite("system", &Config::system)
.def_readwrite("api", &Config::api)
.def_readwrite("lokid", &Config::lokid)
.def_readwrite("bootstrap", &Config::bootstrap)
@ -37,56 +35,62 @@ namespace llarp
.def_readwrite("maxConnectedRouters", &RouterConfig::m_maxConnectedRouters)
.def_readwrite("netid", &RouterConfig::m_netId)
.def_readwrite("nickname", &RouterConfig::m_nickname)
.def_readwrite("encryptionKeyfile", &RouterConfig::m_encryptionKeyfile)
.def_readwrite("ourRcFile", &RouterConfig::m_ourRcFile)
.def_readwrite("transportKeyfile", &RouterConfig::m_transportKeyfile)
.def_readwrite("identKeyfile", &RouterConfig::m_identKeyfile)
.def_property(
"dataDir",
[](RouterConfig& self) { return self.m_dataDir.c_str(); },
[](RouterConfig& self, std::string dir) { self.m_dataDir = dir; })
.def_readwrite("blockBogons", &RouterConfig::m_blockBogons)
.def_readwrite("publicOverride", &RouterConfig::m_publicOverride)
.def_readwrite("ip4addr", &RouterConfig::m_ip4addr)
.def(
"overrideAddress",
[](RouterConfig& self, std::string ip, std::string port) {
self.fromSection("public-ip", ip);
self.fromSection("public-port", port);
llarp::Addr addr(ip);
self.m_addrInfo.ip = *addr.addr6();
int portInt = stoi(port);
self.m_ip4addr.sin_port = portInt;
self.m_addrInfo.port = portInt;
self.m_publicOverride = true;
})
.def_readwrite("workerThreads", &RouterConfig::m_workerThreads)
.def_readwrite("numNetThreads", &RouterConfig::m_numNetThreads)
.def_readwrite("JobQueueSize", &RouterConfig::m_JobQueueSize)
.def_readwrite("DefaultLinkProto", &RouterConfig::m_DefaultLinkProto);
.def_readwrite("JobQueueSize", &RouterConfig::m_JobQueueSize);
py::class_<NetworkConfig>(mod, "NetworkConfig")
.def(py::init<>())
.def_readwrite("enableProfiling", &NetworkConfig::m_enableProfiling)
.def_readwrite("routerProfilesFile", &NetworkConfig::m_routerProfilesFile)
.def_readwrite("strictConnect", &NetworkConfig::m_strictConnect)
.def_readwrite("netConfig", &NetworkConfig::m_netConfig);
.def_readwrite("options", &NetworkConfig::m_options);
py::class_<ConnectConfig>(mod, "ConnectConfig")
.def(py::init<>())
.def_readwrite("routers", &ConnectConfig::routers);
py::class_<NetdbConfig>(mod, "NetdbConfig")
.def(py::init<>())
.def_readwrite("nodedbDir", &NetdbConfig::m_nodedbDir);
py::class_<DnsConfig>(mod, "DnsConfig")
.def(py::init<>())
.def_readwrite("netConfig", &DnsConfig::netConfig);
.def_readwrite("options", &DnsConfig::m_options);
py::class_<LinksConfig>(mod, "LinksConfig")
.def(py::init<>())
.def_readwrite("OutboundLink", &LinksConfig::m_OutboundLink)
.def_readwrite("InboundLinks", &LinksConfig::m_InboundLinks);
.def_readwrite("InboundLinks", &LinksConfig::m_InboundLinks)
.def(
"addInboundLink",
[](LinksConfig& self, std::string interface, int family, uint16_t port) {
LinksConfig::LinkInfo info;
info.interface = std::move(interface);
info.addressFamily = family;
info.port = port;
self.m_InboundLinks.push_back(info);
});
py::class_<ServicesConfig>(mod, "ServicesConfig")
.def(py::init<>())
.def_readwrite("services", &ServicesConfig::services);
py::class_<SystemConfig>(mod, "SystemConfig")
.def(py::init<>())
.def_readwrite("pidfile", &SystemConfig::pidfile);
py::class_<ApiConfig>(mod, "ApiConfig")
.def(py::init<>())
.def_readwrite("enableRPCServer", &ApiConfig::m_enableRPCServer)
@ -107,8 +111,8 @@ namespace llarp
py::class_<LoggingConfig>(mod, "LoggingConfig")
.def(py::init<>())
.def_readwrite("LogJSON", &LoggingConfig::m_LogJSON)
.def_readwrite("LogFile", &LoggingConfig::m_LogFile);
.def_readwrite("m_logType", &LoggingConfig::m_logType)
.def_readwrite("m_logFile", &LoggingConfig::m_logFile);
py::class_<sockaddr_in>(mod, "sockaddr_in")
.def_readwrite("sin_family", &sockaddr_in::sin_family)

@ -52,17 +52,14 @@ class RouterHive(object):
def AddRelay(self, index):
dirname = "%s/relays/%d" % (self.tmpdir, index)
makedirs("%s/netdb" % dirname, exist_ok=True)
makedirs("%s/nodedb" % dirname, exist_ok=True)
config = pyllarp.Config()
port = index + 30000
tunname = "lokihive%d" % index
config.router.encryptionKeyfile = "%s/encryption.key" % dirname
config.router.transportKeyfile = "%s/transport.key" % dirname
config.router.identKeyfile = "%s/identity.key" % dirname
config.router.ourRcFile = "%s/rc.signed" % dirname
config.router.dataDir = dirname
config.router.netid = self.netid
config.router.nickname = "Router%d" % index
config.router.publicOverride = True
@ -76,15 +73,11 @@ class RouterHive(object):
config.network.enableProfiling = False
config.network.routerProfilesFile = "%s/profiles.dat" % dirname
config.network.netConfig = {"type": "null"}
config.network.options = {"type": "null"}
config.netdb.nodedbDir = "%s/netdb" % dirname
config.links.addInboundLink("lo", AF_INET, port);
config.links.InboundLinks = [("lo", AF_INET, port, set())]
config.system.pidfile = "%s/lokinet.pid" % dirname
config.dns.netConfig = {"local-dns": ("127.3.2.1:%d" % port)}
config.dns.options = {"local-dns": ("127.3.2.1:%d" % port)}
if index != 1:
config.bootstrap.routers = ["%s/relays/1/rc.signed" % self.tmpdir]
@ -94,29 +87,22 @@ class RouterHive(object):
def AddClient(self, index):
dirname = "%s/clients/%d" % (self.tmpdir, index)
makedirs("%s/netdb" % dirname, exist_ok=True)
makedirs("%s/nodedb" % dirname, exist_ok=True)
config = pyllarp.Config()
port = index + 40000
tunname = "lokihive%d" % index
config.router.encryptionKeyfile = "%s/encryption.key" % dirname
config.router.transportKeyfile = "%s/transport.key" % dirname
config.router.identKeyfile = "%s/identity.key" % dirname
config.router.ourRcFile = "%s/rc.signed" % dirname
config.router.dataDir = dirname
config.router.netid = self.netid
config.router.blockBogons = False
config.network.enableProfiling = False
config.network.routerProfilesFile = "%s/profiles.dat" % dirname
config.network.netConfig = {"type": "null"}
config.netdb.nodedbDir = "%s/netdb" % dirname
config.system.pidfile = "%s/lokinet.pid" % dirname
config.network.options = {"type": "null"}
config.dns.netConfig = {"local-dns": ("127.3.2.1:%d" % port)}
config.dns.options = {"local-dns": ("127.3.2.1:%d" % port)}
config.bootstrap.routers = ["%s/relays/1/rc.signed" % self.tmpdir]

Loading…
Cancel
Save