]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/tools/slapindex.c
honor '!' (objectClass negation) when checking attribute presence in list
[openldap] / servers / slapd / tools / slapindex.c
index a41af24b359710f4eae6f63ae8e3406e8e495c2e..8b5a1a1efe3fddf0ee8c84311a98d50108bcbf37 100644 (file)
@@ -1,8 +1,23 @@
 /* $OpenLDAP$ */
-/*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2003 The OpenLDAP Foundation.
+ * Portions Copyright 1998-2003 Kurt D. Zeilenga.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
  */
+/* ACKNOWLEDGEMENTS:
+ * This work was initially developed by Kurt Zeilenga for inclusion
+ * in OpenLDAP Software.
+ */
+
 #include "portable.h"
 
 #include <stdio.h>
 int
 main( int argc, char **argv )
 {
-       char            *type;
-       AttributeDescription *desc;
-       const char *text;
        ID id;
        int rc = EXIT_SUCCESS;
 
        slap_tool_init( "slapindex", SLAPINDEX, argc, argv );
 
-       if( !be->be_entry_open &&
-               !be->be_entry_close &&
-               !be->be_entry_first &&
-               !be->be_entry_next &&
+       if( !be->be_entry_open ||
+               !be->be_entry_close ||
+               !be->be_entry_first ||
+               !be->be_entry_next  ||
                !be->be_entry_reindex )
        {
                fprintf( stderr, "%s: database doesn't support necessary operations.\n",
@@ -38,16 +50,6 @@ main( int argc, char **argv )
                exit( EXIT_FAILURE );
        }
 
-       type = argv[argc - 1];
-
-       rc = slap_str2ad( type, &desc, &text );
-
-       if( rc != LDAP_SUCCESS ) {
-               fprintf( stderr, "%s: unrecognized attribute type: %s\n",
-                       progname, text );
-               exit( EXIT_FAILURE );
-       }
-
        if( be->be_entry_open( be, 0 ) != 0 ) {
                fprintf( stderr, "%s: could not open database.\n",
                        progname );
@@ -76,6 +78,5 @@ main( int argc, char **argv )
        (void) be->be_entry_close( be );
 
        slap_tool_destroy();
-
        return( rc );
 }