update to 9.7.1-P2
[tridge/bind9.git] / lib / dns / rdata / generic / nsec_47.c
index 7e443d9b76395bacbef0b0dcf11f21b39d2777bc..ee9fb37c6c8db1f94d6c3f7051cf1006c56eaacf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007-2009  Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 2003  Internet Software Consortium.
  *
  * Permission to use, copy, modify, and/or distribute this software for any
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: nsec_47.c,v 1.11 2008/07/15 23:47:21 tbox Exp $ */
+/* $Id: nsec_47.c,v 1.13 2009/12/04 22:06:37 tbox Exp $ */
 
 /* reviewed: Wed Mar 15 18:21:15 PST 2000 by brister */
 
@@ -363,4 +363,36 @@ checknames_nsec(ARGS_CHECKNAMES) {
        return (ISC_TRUE);
 }
 
+static inline int
+casecompare_nsec(ARGS_COMPARE) {
+       isc_region_t region1;
+       isc_region_t region2;
+       dns_name_t name1;
+       dns_name_t name2;
+       int order;
+
+       REQUIRE(rdata1->type == rdata2->type);
+       REQUIRE(rdata1->rdclass == rdata2->rdclass);
+       REQUIRE(rdata1->type == 47);
+       REQUIRE(rdata1->length != 0);
+       REQUIRE(rdata2->length != 0);
+
+       dns_name_init(&name1, NULL);
+       dns_name_init(&name2, NULL);
+
+       dns_rdata_toregion(rdata1, &region1);
+       dns_rdata_toregion(rdata2, &region2);
+
+       dns_name_fromregion(&name1, &region1);
+       dns_name_fromregion(&name2, &region2);
+
+       order = dns_name_rdatacompare(&name1, &name2);
+       if (order != 0)
+               return (order);
+
+       isc_region_consume(&region1, name_length(&name1));
+       isc_region_consume(&region2, name_length(&name2));
+
+       return (isc_region_compare(&region1, &region2));
+}
 #endif /* RDATA_GENERIC_NSEC_47_C */