]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/tools/slapcat.c
allow 'all' vs. 'any' sasl-authz-policy
[openldap] / servers / slapd / tools / slapcat.c
index 02130fdaf79aab6e4d298d4bd3c67eaaffe2a8f7..c402dc40f7938d5533867cdee29acfbb86d73141 100644 (file)
@@ -1,8 +1,25 @@
 /* $OpenLDAP$ */
-/*
- * Copyright 1998-2003 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.
+ * Portions Copyright 2003 IBM Corporation.
+ * 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.  Additional signficant contributors include
+ *    Jong Hyuk Choi
+ */
+
 #include "portable.h"
 
 #include <stdio.h>
@@ -49,20 +66,34 @@ main( int argc, char **argv )
                Entry* e = be->be_entry_get( be, id );
                op.o_bd = be;
 
+               if ( e == NULL ) {
+                       printf("# no data for entry id=%08lx\n\n", (long) id );
+                       rc = EXIT_FAILURE;
+                       if( continuemode ) continue;
+                       break;
+               }
+
                if( sub_ndn.bv_len && !dnIsSuffix( &e->e_nname, &sub_ndn ) ) {
                        be_entry_release_r( &op, e );
                        continue;
                }
 
-               if( verbose ) {
-                       printf( "# id=%08lx\n", (long) id );
+               if ( retrieve_ctxcsn == 0 ) {
+                       if ( is_entry_syncProviderSubentry( e ) ) {
+                               be_entry_release_r( &op, e );
+                               continue;
+                       }
                }
 
-               if ( e == NULL ) {
-                       printf("# no data for entry id=%08lx\n\n", (long) id );
-                       rc = EXIT_FAILURE;
-                       if( continuemode ) continue;
-                       break;
+               if ( retrieve_synccookie == 0 ) {
+                       if ( is_entry_syncConsumerSubentry( e ) ) {
+                               be_entry_release_r( &op, e );
+                               continue;
+                       }
+               }
+
+               if( verbose ) {
+                       printf( "# id=%08lx\n", (long) id );
                }
 
                data = entry2str( e, &len );