bring back ShouldCreateDefaultHiddenService(), Handle identity-privkey better, prefer this-> when accessing object properties

pull/230/head
Ryan Tharp 5 years ago
parent be24a2c235
commit e93798886a

@ -389,14 +389,14 @@ namespace llarp
{
if(!EnsureEncryptionKey())
return false;
return llarp_findOrCreateIdentity(&crypto, ident_keyfile, identity);
return llarp_findOrCreateIdentity(&crypto, ident_keyfile, this->identity);
}
bool
Router::EnsureEncryptionKey()
{
return llarp_findOrCreateEncryption(&crypto, encryption_keyfile,
encryption);
this->encryption);
}
void
@ -1084,12 +1084,17 @@ namespace llarp
llarp::LogError("failed to regenerate keys and sign RC");
return false;
}
// generate default hidden service
llarp::LogInfo("setting up default network endpoint");
if(!CreateDefaultHiddenService())
// don't create default if we already have some defined
if(this->ShouldCreateDefaultHiddenService())
{
llarp::LogError("failed to set up default network endpoint");
return false;
// generate default hidden service
llarp::LogInfo("setting up default network endpoint");
if(!CreateDefaultHiddenService())
{
llarp::LogError("failed to set up default network endpoint");
return false;
}
}
}
@ -1130,6 +1135,84 @@ namespace llarp
link->Stop();
}
bool
Router::ShouldCreateDefaultHiddenService()
{
std::string defaultIfAddr = "auto";
std::string defaultIfName = "auto";
std::string enabledOption = "auto";
auto itr = netConfig.find("defaultIfAddr");
if(itr != netConfig.end())
{
defaultIfAddr = itr->second;
}
itr = netConfig.find("defaultIfName");
if(itr != netConfig.end())
{
defaultIfName = itr->second;
}
itr = netConfig.find("enabled");
if(itr != netConfig.end())
{
enabledOption = itr->second;
}
llarp::LogDebug("IfName: ", defaultIfName, " IfAddr: ", defaultIfAddr,
" Enabled: ", enabledOption);
// llarp::LogInfo("IfAddr: ", itr->second);
// llarp::LogInfo("IfName: ", itr->second);
if(enabledOption == "false")
{
llarp::LogInfo("Disabling default hidden service");
return false;
}
else if(enabledOption == "auto")
{
// auto detect if we have any pre-defined endpoints
// no if we have a endpoints
if(hiddenServiceContext.hasEndpoints())
{
llarp::LogInfo("Auto mode detected and we have endpoints");
netConfig.emplace(std::make_pair("enabled", "false"));
return false;
}
netConfig.emplace(std::make_pair("enabled", "true"));
}
// ev.cpp llarp_ev_add_tun now handles this
/*
// so basically enabled at this point
if(defaultIfName == "auto")
{
// we don't have any endpoints, auto configure settings
// set a default IP range
defaultIfAddr = llarp::findFreePrivateRange();
if(defaultIfAddr == "")
{
llarp::LogError(
"Could not find any free lokitun interface names, can't
auto set up " "default HS context for client"); defaultIfAddr = "no";
netConfig.emplace(std::make_pair("defaultIfAddr", defaultIfAddr));
return false;
}
netConfig.emplace(std::make_pair("defaultIfAddr", defaultIfAddr));
}
if(defaultIfName == "auto")
{
// pick an ifName
defaultIfName = llarp::findFreeLokiTunIfName();
if(defaultIfName == "")
{
llarp::LogError(
"Could not find any free private ip ranges, can't auto
set up " "default HS context for client"); defaultIfName = "no";
netConfig.emplace(std::make_pair("defaultIfName", defaultIfName));
return false;
}
netConfig.emplace(std::make_pair("defaultIfName", defaultIfName));
}
*/
return true;
}
void
Router::Stop()
{
@ -1545,6 +1628,14 @@ namespace llarp
{
self->transport_keyfile = val;
}
if(StrEq(key, "identity-privkey"))
{
llarp::LogWarn(
"Deprecated INI key identity-privkey detected, please rename it to "
"ident-privkey");
// FIXME: use the config writer to fix it
self->ident_keyfile = val;
}
if(StrEq(key, "ident-privkey"))
{
self->ident_keyfile = val;

@ -153,6 +153,9 @@ namespace llarp
bool
CreateDefaultHiddenService();
bool
ShouldCreateDefaultHiddenService();
const std::string DefaultRPCBindAddr = "127.0.0.1:1190";
bool enableRPCServer = true;
std::unique_ptr< llarp::rpc::Server > rpcServer;

Loading…
Cancel
Save