add default hidden service endpoint for clients

pull/19/head
Jeff 6 years ago
parent b7eea47336
commit acc03fcad7

@ -31,6 +31,9 @@ namespace llarp
llarp_tun_io *
getRange();
bool
AddDefaultEndpoint(const std::string & ifaddr, const std::string & ifname);
/// hint at possible path usage and trigger building early
bool
Prefetch(const llarp::service::Address &addr);

@ -158,6 +158,15 @@ extern "C"
f << "group=" << DEFAULT_LOKINET_GROUP << std::endl;
f << std::endl << std::endl;
f << "# network settings " << std::endl;
f << "[network]" << std::endl;
#ifndef __linux__
f << "# ";
#endif
f << "ifname=lokitun0" << std::endl;
f << "ifaddr=10.200.0.1/16" << std::endl;
f << std::endl << std::endl;
f << "# dns provider configuration section" << std::endl;
f << "[dns]" << std::endl;
f << "# opennic us resolver" << std::endl;

@ -760,6 +760,9 @@ llarp_router::Run()
return;
}
// generate default hidden service
if(!CreateDefaultHiddenService())
return;
// delayed connect all for clients
uint64_t delay = ((llarp_randint() % 10) * 500) + 500;
llarp_logic_call_later(logic, {delay, this, &ConnectAll});
@ -855,6 +858,12 @@ llarp_router::InitOutboundLink()
return false;
}
bool
llarp_router::CreateDefaultHiddenService()
{
return hiddenServiceContext.AddDefaultEndpoint(defaultIfAddr, defaultIfName);
}
bool
llarp_router::HasPendingConnectJob(const llarp::RouterID &remote)
{
@ -1054,6 +1063,17 @@ namespace llarp
llarp::LogError("Failed to set up curvecp link");
}
}
else if(StrEq(section, "network"))
{
if(StrEq(key, "ifaddr"))
{
self->defaultIfAddr = val;
}
if(StrEq(key, "ifname"))
{
self->defaultIfAddr = val;
}
}
else if(StrEq(section, "services"))
{
if(self->LoadHiddenServiceConfig(val))

@ -93,6 +93,13 @@ struct llarp_router
llarp::service::Context hiddenServiceContext;
std::string defaultIfAddr = "10.200.0.1/24";
std::string defaultIfName = "lokitun0";
bool
CreateDefaultHiddenService();
std::unique_ptr< llarp::ILinkLayer > outboundLink;
std::vector< std::unique_ptr< llarp::ILinkLayer > > inboundLinks;

@ -106,6 +106,12 @@ namespace llarp
return tunEndpoint->MapAddress(addr, ip);
}
bool
Context::AddDefaultEndpoint(const std::string & ifaddr, const std::string & ifname)
{
return AddEndpoint({ "default", {{"type", "tun"}, {"ifaddr", ifaddr}, {"ifname", ifname}}});
}
bool
Context::AddEndpoint(const Config::section_t &conf)
{

Loading…
Cancel
Save