]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
we were inconsistent in comparing ComboAddresses with sin_family==0. Removed possibil... 3443/head
authorbert hubert <bert.hubert@powerdns.com>
Wed, 24 Feb 2016 15:36:44 +0000 (16:36 +0100)
committerbert hubert <bert.hubert@powerdns.com>
Wed, 24 Feb 2016 15:36:44 +0000 (16:36 +0100)
pdns/iputils.hh
pdns/test-dnsname_cc.cc
pdns/test-iputils_hh.cc

index 3e89cb2ab00ab5dd248aa35f2fe52e228efda57a..6efb44d1336df53a3983fb4542115a5a8c23239a 100644 (file)
@@ -111,15 +111,7 @@ union ComboAddress {
 
   bool operator>(const ComboAddress& rhs) const
   {
-    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))
-      return false;
-    
-    if(sin4.sin_family == AF_INET)
-      return sin4.sin_addr.s_addr > rhs.sin4.sin_addr.s_addr;
-    else
-      return memcmp(&sin6.sin6_addr.s6_addr, &rhs.sin6.sin6_addr.s6_addr, 16) > 0;
+    return rhs.operator<(*this);
   }
 
   struct addressOnlyHash
index c2c683b06350a299590fb514e55af81ab653bde2..a3cdb3969e233cc4337544c61cbf4acb520dfb82 100644 (file)
@@ -430,6 +430,13 @@ BOOST_AUTO_TEST_CASE(test_compare_naive) {
   BOOST_CHECK(DNSName("abc.com.") < DNSName("Zdf.com."));
 }
 
+BOOST_AUTO_TEST_CASE(test_compare_empty) {
+  DNSName a, b;
+  BOOST_CHECK(!(a<b));
+  BOOST_CHECK(!a.canonCompare(b));
+}
+
+
 BOOST_AUTO_TEST_CASE(test_compare_canonical) {
   DNSName lower("bert.com."), higher("alpha.nl.");
   BOOST_CHECK(lower.canonCompare(higher));
index 37e09bd8bf278db3c68eaf7b17e05179a6d847f8..9505fd69650c025e1b9792a116381cc1c2cc8eef 100644 (file)
@@ -41,6 +41,14 @@ BOOST_AUTO_TEST_CASE(test_ComboAddress) {
   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);