The INET and CIDR types mistakenly compared 198.68.123.0/24 and
authorBruce Momjian
Wed, 2 Jun 1999 03:37:15 +0000 (03:37 +0000)
committerBruce Momjian
Wed, 2 Jun 1999 03:37:15 +0000 (03:37 +0000)
198.68.123.0/27 the same when indexing them.

D'Arcy

src/backend/utils/adt/network.c

index cd86ec6f3d5909256c398d24ca22d843bc988dc1..7c1aa24dbcf091158299e4bed567b2322346a5d6 100644 (file)
@@ -3,7 +3,7 @@
  * is for IP V4 CIDR notation, but prepared for V6: just
  * add the necessary bits where the comments indicate.
  *
- * $Id: network.c,v 1.9 1999/05/25 16:12:11 momjian Exp $
+ * $Id: network.c,v 1.10 1999/06/02 03:37:15 momjian Exp $
  * Jon Postel RIP 16 Oct 1998
  */
 
@@ -306,8 +306,16 @@ network_cmp(inet *a1, inet *a2)
 {
    if (ntohl(ip_v4addr(a1)) < ntohl(ip_v4addr(a2)))
        return (-1);
-   else if (ntohl(ip_v4addr(a1)) > ntohl(ip_v4addr(a2)))
+
+   if (ntohl(ip_v4addr(a1)) > ntohl(ip_v4addr(a2)))
+       return (1);
+
+   if (ip_bits(a1) < ip_bits(a2))
+       return (-1);
+
+   if (ip_bits(a1) > ip_bits(a2))
        return (1);
+
    return 0;
 }