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); dns_iptracker_setup_dotLokiLookup(dotLokiLookup *dll, llarp::Addr tunGatewayIp);
bool bool
dns_iptracker_setup(llarp::Addr tunGatewayIp); dns_iptracker_setup(dns_iptracker *iptracker, llarp::Addr tunGatewayIp);
struct dns_pointer * struct dns_pointer *
dns_iptracker_get_free(); dns_iptracker_get_free();

@ -31,8 +31,10 @@ dns_iptracker_setup_dotLokiLookup(dotLokiLookup *dll, llarp::Addr tunGatewayIp)
// FIXME: pass in b32addr of client // FIXME: pass in b32addr of client
bool 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(); struct in_addr *addr = tunGatewayIp.addr4();
unsigned char *ip = (unsigned char *)&(addr->s_addr); 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 // FIXME: forcing one and only one range
if(ip[0] == 10) if(ip[0] == 10)
{ {
g_dns_iptracker.used_ten_ips.push_back(std::move(range)); iptracker->used_ten_ips.push_back(std::move(range));
g_dns_iptracker.used_privates.ten = false; iptracker->used_privates.ten = false;
} }
else if(ip[0] == 172) else if(ip[0] == 172)
{ {
g_dns_iptracker.used_seven_ips.push_back(std::move(range)); iptracker->used_seven_ips.push_back(std::move(range));
g_dns_iptracker.used_privates.oneSeven = false; iptracker->used_privates.oneSeven = false;
} }
else if(ip[0] == 192) else if(ip[0] == 192)
{ {
g_dns_iptracker.used_nine_ips.push_back(std::move(range)); iptracker->used_nine_ips.push_back(std::move(range));
g_dns_iptracker.used_privates.oneNine = false; iptracker->used_privates.oneNine = false;
} }
else 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 // 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 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 // don't need to check if we're out since this is fresh range
auto result = dns_iptracker_allocate_range(new_range, first); return dns_iptracker_allocate_range(ranges[0], first);
// std::move sets std::unique_ptr to null afterwards
ranges.push_back(std::move(new_range));
return result;
} }
return nullptr; return nullptr;
} }

Loading…
Cancel
Save