try fixing rdns for local interace's address

pull/90/head
Jeff Becker 6 years ago
parent 68faa14e3e
commit 7bc3d94895
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -34,11 +34,14 @@ namespace llarp
TickTun(llarp_time_t now); TickTun(llarp_time_t now);
bool bool
MapAddress(const service::Address& remote, huint32_t ip); MapAddress(const service::Address& remote, huint32_t ip, bool SNode);
bool bool
Start(); Start();
bool
IsSNode() const;
/// set up tun interface, blocking /// set up tun interface, blocking
bool bool
SetupTun(); SetupTun();

@ -59,11 +59,6 @@ namespace llarp
bool bool
Prefetch(const llarp::service::Address &addr); Prefetch(const llarp::service::Address &addr);
/// punch a hole open for DNS to add mappings
/// ip is in network order
bool
MapAddress(const llarp::service::Address &addr, huint32_t ip);
bool bool
MapAddressAll(const llarp::service::Address &addr, MapAddressAll(const llarp::service::Address &addr,
llarp::Addr &localPrivateIpAddr); llarp::Addr &localPrivateIpAddr);

@ -455,14 +455,6 @@ extern "C"
// llarp_dht_lookup_router(ptr->ctx->router->dht, job); // llarp_dht_lookup_router(ptr->ctx->router->dht, job);
} }
bool
main_router_mapAddress(struct llarp_main *ptr,
const llarp::service::Address &addr, uint32_t ip)
{
auto &endpoint = ptr->ctx->router->hiddenServiceContext;
return endpoint.MapAddress(addr, llarp::huint32_t{ip});
}
bool bool
main_router_prefetch(struct llarp_main *ptr, main_router_prefetch(struct llarp_main *ptr,
const llarp::service::Address &addr) const llarp::service::Address &addr)

@ -111,7 +111,7 @@ namespace llarp
llarp::LogError("cannot map to invalid ip ", ip_str); llarp::LogError("cannot map to invalid ip ", ip_str);
return false; return false;
} }
return MapAddress(addr, huint32_t{ntohl(ip.s_addr)}); return MapAddress(addr, huint32_t{ntohl(ip.s_addr)}, false);
} }
if(k == "ifname") if(k == "ifname")
{ {
@ -180,7 +180,7 @@ namespace llarp
} }
bool bool
TunEndpoint::MapAddress(const service::Address &addr, huint32_t ip) TunEndpoint::MapAddress(const service::Address &addr, huint32_t ip, bool SNode)
{ {
auto itr = m_IPToAddr.find(ip); auto itr = m_IPToAddr.find(ip);
if(itr != m_IPToAddr.end()) if(itr != m_IPToAddr.end())
@ -192,8 +192,9 @@ namespace llarp
} }
llarp::LogInfo(Name() + " map ", addr.ToString(), " to ", ip); llarp::LogInfo(Name() + " map ", addr.ToString(), " to ", ip);
m_IPToAddr.insert(std::make_pair(ip, addr.data())); m_IPToAddr[ip] = addr.data();
m_AddrToIP.insert(std::make_pair(addr.data(), ip)); m_AddrToIP[addr.data()] = ip;
m_SNodes[addr.data()] = SNode;
MarkIPActiveForever(ip); MarkIPActiveForever(ip);
return true; return true;
} }
@ -241,6 +242,12 @@ namespace llarp
#endif #endif
} }
bool TunEndpoint::IsSNode() const
{
// TODO : implement me
return false;
}
bool bool
TunEndpoint::SetupTun() TunEndpoint::SetupTun()
{ {
@ -304,7 +311,7 @@ namespace llarp
llarp::LogInfo(Name(), " set ", tunif.ifname, " to have address ", lAddr); llarp::LogInfo(Name(), " set ", tunif.ifname, " to have address ", lAddr);
llarp::LogInfo(Name(), " allocated up to ", m_MaxIP); llarp::LogInfo(Name(), " allocated up to ", m_MaxIP);
MapAddress(m_Identity.pub.Addr(), m_OurIP); MapAddress(m_Identity.pub.Addr(), m_OurIP, IsSNode());
return true; return true;
} }

@ -142,26 +142,6 @@ namespace llarp
10000); 10000);
} }
bool
Context::MapAddress(const llarp::service::Address &addr, huint32_t ip)
{
if(!m_Endpoints.size())
{
llarp::LogError("No endpoints found");
return false;
}
auto firstEndpoint = m_Endpoints.begin();
auto *uniqueEndpoint = &firstEndpoint->second;
llarp::service::Endpoint *endpointer = uniqueEndpoint->get();
llarp::handlers::TunEndpoint *tunEndpoint =
static_cast< llarp::handlers::TunEndpoint * >(endpointer);
if(!tunEndpoint)
{
llarp::LogError("No tunnel endpoint found");
return false;
}
return tunEndpoint->MapAddress(addr, ip);
}
bool bool
MapAddressAllIter(struct Context::endpoint_iter *endpointCfg) MapAddressAllIter(struct Context::endpoint_iter *endpointCfg)
@ -176,7 +156,7 @@ namespace llarp
return true; // still continue return true; // still continue
} }
return tunEndpoint->MapAddress(context->serviceAddr, return tunEndpoint->MapAddress(context->serviceAddr,
context->localPrivateIpAddr.xtohl()); context->localPrivateIpAddr.xtohl(), false);
} }
bool bool

Loading…
Cancel
Save