]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Merge pull request #3440 from pieterlexis/dnsdist-client-improvements
authorbert hubert <bert.hubert@netherlabs.nl>
Wed, 2 Mar 2016 14:47:57 +0000 (15:47 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Wed, 2 Mar 2016 14:47:57 +0000 (15:47 +0100)
Client operation improvements for dnsdist

1  2 
pdns/dnsdist.cc
pdns/iputils.hh
pdns/test-iputils_hh.cc

diff --cc pdns/dnsdist.cc
index 042c9162f82a71e422b1c92c137d3cdb9c0b337e,4e37e0bad31ad7a910a3ea2dc28e1624be6a92cf..568092e497482811d77a0cec1a7db17c49961713
    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 6efb44d1336df53a3983fb4542115a5a8c23239a,3e975cabc41d605bbad7dd42e8c221fd39ffb315..752cac4f8bcbab2f4ff3729011db48cf0c9ce64e
@@@ -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))
index a1afbc7be7e59a0f26659fdedf444a4b5c0bfaed,a8243f06630e94d08530078a64e32aadcc634a39..adac3c7ec2aa4496c844c40ac1c6d3b2d0634235
@@@ -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(!(a<b));
 +  BOOST_CHECK(!(a>b));
 +}
 +
  BOOST_AUTO_TEST_CASE(test_ComboAddressTruncate) {
    ComboAddress ca4("130.161.252.29");
    ca4.truncate(24);