Diff for /servers/slapd/slapcat.c between versions 1.14 and 1.15

version 1.14, 2009/01/21 23:40:29 version 1.15, 2010/01/18 14:00:40
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/slapcat.c,v 1.13 2008/11/03 12:23:05 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/slapcat.c,v 1.14 2009/01/21 23:40:29 kurt Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 1998-2009 The OpenLDAP Foundation.   * Copyright 1998-2009 The OpenLDAP Foundation.
Line 47  slapcat( int argc, char **argv ) Line 47  slapcat( int argc, char **argv )
         int rc = EXIT_SUCCESS;          int rc = EXIT_SUCCESS;
         Operation op = {0};          Operation op = {0};
         const char *progname = "slapcat";          const char *progname = "slapcat";
           int requestBSF;
           int doBSF = 0;
   
         slap_tool_init( progname, SLAPCAT, argc, argv );          slap_tool_init( progname, SLAPCAT, argc, argv );
   
           requestBSF = ( sub_ndn.bv_len || filter );
   
 #ifdef SIGPIPE  #ifdef SIGPIPE
         (void) SIGNAL( SIGPIPE, slapcat_sig );          (void) SIGNAL( SIGPIPE, slapcat_sig );
 #endif  #endif
Line 61  slapcat( int argc, char **argv ) Line 65  slapcat( int argc, char **argv )
   
         if( !be->be_entry_open ||          if( !be->be_entry_open ||
                 !be->be_entry_close ||                  !be->be_entry_close ||
                 !be->be_entry_first ||                  !( be->be_entry_first_x || be->be_entry_first ) ||
                 !be->be_entry_next ||                  !be->be_entry_next ||
                 !be->be_entry_get )                  !be->be_entry_get )
         {          {
Line 77  slapcat( int argc, char **argv ) Line 81  slapcat( int argc, char **argv )
         }          }
   
         op.o_bd = be;          op.o_bd = be;
         for ( id = be->be_entry_first( be );          if ( !requestBSF && be->be_entry_first ) {
                 id != NOID;                  id = be->be_entry_first( be );
                 id = be->be_entry_next( be ) )  
           } else {
                   if ( be->be_entry_first_x ) {
                           id = be->be_entry_first_x( be,
                                   sub_ndn.bv_len ? &sub_ndn : NULL, scope, filter );
   
                   } else {
                           assert( be->be_entry_first != NULL );
                           doBSF = 1;
                           id = be->be_entry_first( be );
                   }
           }
   
           for ( ; id != NOID; id = be->be_entry_next( be ) )
         {          {
                 char *data;                  char *data;
                 int len;                  int len;
Line 96  slapcat( int argc, char **argv ) Line 113  slapcat( int argc, char **argv )
                         break;                          break;
                 }                  }
   
                 if( sub_ndn.bv_len && !dnIsSuffix( &e->e_nname, &sub_ndn ) ) {                  if ( doBSF ) {
                         be_entry_release_r( &op, e );                          if ( sub_ndn.bv_len && !dnIsSuffixScope( &e->e_nname, &sub_ndn, scope ) )
                         continue;                          {
                 }  
   
                 if( filter != NULL ) {  
                         int rc = test_filter( NULL, e, filter );  
                         if( rc != LDAP_COMPARE_TRUE ) {  
                                 be_entry_release_r( &op, e );                                  be_entry_release_r( &op, e );
                                 continue;                                  continue;
                         }                          }
   
   
                           if ( filter != NULL ) {
                                   int rc = test_filter( NULL, e, filter );
                                   if ( rc != LDAP_COMPARE_TRUE ) {
                                           be_entry_release_r( &op, e );
                                           continue;
                                   }
                           }
                 }                  }
   
                 if( verbose ) {                  if ( verbose ) {
                         printf( "# id=%08lx\n", (long) id );                          printf( "# id=%08lx\n", (long) id );
                 }                  }
   

Removed from v.1.14  
changed lines
  Added in v.1.15


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org