]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/schema_init.c
slapi-plugin.h goes in include
[openldap] / servers / slapd / schema_init.c
index ab56f523fdcacb0dd9ff1003262ba419b0c670ba..2455a2a1f33bba4d788f8e469e405a268ba254df 100644 (file)
@@ -1,7 +1,7 @@
 /* schema_init.c - init builtin schema */
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 
@@ -59,7 +59,6 @@
 #define caseIgnoreOrderingMatch                        caseIgnoreMatch
 #define caseExactOrderingMatch                 caseExactMatch
 #define integerOrderingMatch                   integerMatch
-#define        octetStringOrderingMatch                octetStringMatch
 
 /* unimplemented matching routines */
 #define caseIgnoreListMatch                            NULL
@@ -138,6 +137,26 @@ octetStringMatch(
        return LDAP_SUCCESS;
 }
 
+static int
+octetStringOrderingMatch(
+       int *matchp,
+       slap_mask_t flags,
+       Syntax *syntax,
+       MatchingRule *mr,
+       struct berval *value,
+       void *assertedValue )
+{
+       ber_len_t v_len  = value->bv_len;
+       ber_len_t av_len = ((struct berval *) assertedValue)->bv_len;
+       int match = memcmp( value->bv_val,
+               ((struct berval *) assertedValue)->bv_val,
+               (v_len < av_len ? v_len : av_len) );
+       if( match == 0 )
+               match = v_len - av_len;
+       *matchp = match;
+       return LDAP_SUCCESS;
+}
+
 /* Index generation function */
 int octetStringIndexer(
        slap_mask_t use,