pass tracker into dns_iptracker_setup

pull/20/head
Ryan Tharp 6 years ago committed by Jeff Becker
parent 497c8c7d66
commit 1efb68e9cd
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -41,7 +41,7 @@ bool
dns_iptracker_setup_dotLokiLookup(dotLokiLookup *dll, llarp::Addr tunGatewayIp);
bool
dns_iptracker_setup(llarp::Addr tunGatewayIp);
dns_iptracker_setup(dns_iptracker *iptracker, llarp::Addr tunGatewayIp);
struct dns_pointer *
dns_iptracker_get_free();

@ -31,8 +31,10 @@ dns_iptracker_setup_dotLokiLookup(dotLokiLookup *dll, llarp::Addr tunGatewayIp)
// FIXME: pass in b32addr of client
bool
dns_iptracker_setup(llarp::Addr tunGatewayIp)
dns_iptracker_setup(dns_iptracker *iptracker, llarp::Addr tunGatewayIp)
{
if(!iptracker)
iptracker = &g_dns_iptracker; // FIXME: god forgive I'm tired
struct in_addr *addr = tunGatewayIp.addr4();
unsigned char *ip = (unsigned char *)&(addr->s_addr);
@ -56,18 +58,18 @@ dns_iptracker_setup(llarp::Addr tunGatewayIp)
// FIXME: forcing one and only one range
if(ip[0] == 10)
{
g_dns_iptracker.used_ten_ips.push_back(std::move(range));
g_dns_iptracker.used_privates.ten = false;
iptracker->used_ten_ips.push_back(std::move(range));
iptracker->used_privates.ten = false;
}
else if(ip[0] == 172)
{
g_dns_iptracker.used_seven_ips.push_back(std::move(range));
g_dns_iptracker.used_privates.oneSeven = false;
iptracker->used_seven_ips.push_back(std::move(range));
iptracker->used_privates.oneSeven = false;
}
else if(ip[0] == 192)
{
g_dns_iptracker.used_nine_ips.push_back(std::move(range));
g_dns_iptracker.used_privates.oneNine = false;
iptracker->used_nine_ips.push_back(std::move(range));
iptracker->used_privates.oneNine = false;
}
else
{
@ -141,10 +143,7 @@ dns_iptracker_check_range(std::vector< std::unique_ptr< ip_range > > &ranges,
// CHECK: planning a /24 but maybe that's too wide for broadcasts
new_range->left = 252; // 0 is net, 1 is gw, 255 is broadcast
// don't need to check if we're out since this is fresh range
auto result = dns_iptracker_allocate_range(new_range, first);
// std::move sets std::unique_ptr to null afterwards
ranges.push_back(std::move(new_range));
return result;
return dns_iptracker_allocate_range(ranges[0], first);
}
return nullptr;
}

Loading…
Cancel
Save