]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/value.c
Modified for use with libtool's ltdl instead of gmodule
[openldap] / servers / slapd / value.c
index 5be4338ed0050f52b6541189c2f15b3898946096..c5564935984c3f9804b92bb37bf6964a09ee6600 100644 (file)
@@ -1,13 +1,20 @@
 /* value.c - routines for dealing with values */
+/*
+ * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
 
 #include "portable.h"
+
 #include <stdio.h>
-#include <string.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/socket.h>
+
+#include <ac/ctype.h>
+#include <ac/socket.h>
+#include <ac/string.h>
+#include <ac/time.h>
+
 #include <sys/stat.h>
-#include "portable.h"
+
 #include "slap.h"
 
 int
@@ -95,13 +102,11 @@ value_normalize(
                if ( (syntax & SYNTAX_TEL) && (*s == ' ' || *s == '-') ) {
                        continue;
                }
-               *d++ = TOUPPER( *s );
+               *d++ = TOUPPER( (unsigned char) *s );
        }
        *d = '\0';
 }
 
-#define MIN( a, b )    (a < b ? a : b )
-
 int
 value_cmp(
     struct berval      *v1,
@@ -111,7 +116,6 @@ value_cmp(
 )
 {
        int             rc;
-       struct stat     st1, st2;
 
        if ( normalize & 1 ) {
                v1 = ber_bvdup( v1 );
@@ -134,53 +138,10 @@ value_cmp(
                break;
 
        case SYNTAX_BIN:
-               rc = memcmp( v1->bv_val, v2->bv_val, MIN( v1->bv_len,
-                   v2->bv_len ) );
-               break;
-       }
-
-       if ( normalize & 1 ) {
-               ber_bvfree( v1 );
-       }
-       if ( normalize & 2 ) {
-               ber_bvfree( v2 );
-       }
-
-       return( rc );
-}
-
-int
-value_ncmp(
-    struct berval      *v1,
-    struct berval      *v2,
-    int                        syntax,
-    int                        len,
-    int                        normalize
-)
-{
-       int     rc;
-
-       if ( normalize & 1 ) {
-               v1 = ber_bvdup( v1 );
-               value_normalize( v1->bv_val, syntax );
-       }
-       if ( normalize & 2 ) {
-               v2 = ber_bvdup( v2 );
-               value_normalize( v2->bv_val, syntax );
-       }
-
-       switch ( syntax ) {
-       case SYNTAX_CIS:
-       case (SYNTAX_CIS | SYNTAX_TEL):
-               rc = strncasecmp( v1->bv_val, v2->bv_val, len );
+               rc = (v1->bv_len == v2->bv_len
+                     ? memcmp( v1->bv_val, v2->bv_val, v1->bv_len )
+                     : v1->bv_len > v2->bv_len ? 1 : -1);
                break;
-
-       case SYNTAX_CES:
-               rc = strncmp( v1->bv_val, v2->bv_val, len );
-               break;
-
-       case SYNTAX_BIN:
-               rc = memcmp( v1->bv_val, v2->bv_val, len );
        }
 
        if ( normalize & 1 ) {