From: bert hubert Date: Wed, 2 Mar 2016 14:47:57 +0000 (+0100) Subject: Merge pull request #3440 from pieterlexis/dnsdist-client-improvements X-Git-Tag: rec-4.0.0-alpha2~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=29fc8181625c3821f22075887ed7106c33d650fc;p=thirdparty%2Fpdns.git Merge pull request #3440 from pieterlexis/dnsdist-client-improvements Client operation improvements for dnsdist --- 29fc8181625c3821f22075887ed7106c33d650fc diff --cc pdns/dnsdist.cc index 042c9162f8,4e37e0bad3..568092e497 --- a/pdns/dnsdist.cc +++ b/pdns/dnsdist.cc @@@ -1328,9 -1319,15 +1354,13 @@@ tr argc-=optind; argv+=optind; for(auto p = argv; *p; ++p) { - g_cmdLine.remotes.push_back(*p); + if(g_cmdLine.beClient) { + clientAddress = ComboAddress(*p, 5199); + } else { + g_cmdLine.remotes.push_back(*p); + } } - g_maxOutstanding = 1024; - ServerPolicy leastOutstandingPol{"leastOutstanding", leastOutstanding}; g_policy.setState(leastOutstandingPol); diff --cc pdns/iputils.hh index 6efb44d133,3e975cabc4..752cac4f8b --- a/pdns/iputils.hh +++ b/pdns/iputils.hh @@@ -93,11 -93,13 +93,16 @@@ union ComboAddress return memcmp(&sin6.sin6_addr.s6_addr, &rhs.sin6.sin6_addr.s6_addr, 16)==0; } + bool operator!=(const ComboAddress& rhs) const + { + return(!operator==(rhs)); + } + bool operator<(const ComboAddress& rhs) const { + if(sin4.sin_family == 0) { + return false; + } if(boost::tie(sin4.sin_family, sin4.sin_port) < boost::tie(rhs.sin4.sin_family, rhs.sin4.sin_port)) return true; if(boost::tie(sin4.sin_family, sin4.sin_port) > boost::tie(rhs.sin4.sin_family, rhs.sin4.sin_port)) diff --cc pdns/test-iputils_hh.cc index a1afbc7be7,a8243f0663..adac3c7ec2 --- a/pdns/test-iputils_hh.cc +++ b/pdns/test-iputils_hh.cc @@@ -39,16 -39,19 +39,27 @@@ BOOST_AUTO_TEST_CASE(test_ComboAddress ComboAddress a = ComboAddress(); ComboAddress b = ComboAddress(); BOOST_CHECK(a == b); + + // Verify that 2 ComboAddresses are not the same + ComboAddress c = ComboAddress("127.0.0.1:53"); + ComboAddress d = ComboAddress("127.0.0.1:52"); + ComboAddress e = ComboAddress("127.0.0.2:53"); + + BOOST_CHECK(a != c); + BOOST_CHECK(c != d); + BOOST_CHECK(c != e); + BOOST_CHECK(d != e); + BOOST_CHECK(!(a != b)); } +BOOST_AUTO_TEST_CASE(test_ComboAddressCompare) { + ComboAddress a, b; + memset(&a, 0, sizeof(a)); + memset(&b, 0, sizeof(b)); + BOOST_CHECK(!(ab)); +} + BOOST_AUTO_TEST_CASE(test_ComboAddressTruncate) { ComboAddress ca4("130.161.252.29"); ca4.truncate(24);