From 1efb68e9cd2de6d5a332e919c6ae200b3aaa20a3 Mon Sep 17 00:00:00 2001 From: Ryan Tharp Date: Thu, 4 Oct 2018 07:10:09 -0700 Subject: [PATCH] pass tracker into dns_iptracker_setup --- include/llarp/dns_iptracker.hpp | 2 +- llarp/dns_iptracker.cpp | 21 ++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/include/llarp/dns_iptracker.hpp b/include/llarp/dns_iptracker.hpp index 87e6f5ae4..4aeb18894 100644 --- a/include/llarp/dns_iptracker.hpp +++ b/include/llarp/dns_iptracker.hpp @@ -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(); diff --git a/llarp/dns_iptracker.cpp b/llarp/dns_iptracker.cpp index 917519813..309056358 100644 --- a/llarp/dns_iptracker.cpp +++ b/llarp/dns_iptracker.cpp @@ -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; }