Diff for /servers/slapd/back-ldap/modrdn.c between versions 1.7 and 1.8

version 1.7, 2001/01/19 20:27:20 version 1.8, 2001/05/11 22:51:30
Line 1 Line 1
 /* modrdn.c - ldap backend modrdn function */  /* modrdn.c - ldap backend modrdn function */
 /* $OpenLDAP: pkg/ldap/servers/slapd/back-ldap/modrdn.c,v 1.6 2001/01/17 06:09:23 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/back-ldap/modrdn.c,v 1.7 2001/01/19 20:27:20 hyc Exp $ */
 /*  /*
  * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.   * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file   * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
Line 60  ldap_back_modrdn( Line 60  ldap_back_modrdn(
         struct ldapinfo *li = (struct ldapinfo *) be->be_private;          struct ldapinfo *li = (struct ldapinfo *) be->be_private;
         struct ldapconn *lc;          struct ldapconn *lc;
   
         char *mdn, *mnewSuperior;          char *mdn = NULL, *mnewSuperior = NULL;
   
         lc = ldap_back_getconn( li, conn, op );          lc = ldap_back_getconn( li, conn, op );
         if ( !lc ) {          if ( !lc || !ldap_back_dobind(lc, op) ) {
                 return( -1 );                  return( -1 );
         }          }
   
Line 71  ldap_back_modrdn( Line 71  ldap_back_modrdn(
                 int version = LDAP_VERSION3;                  int version = LDAP_VERSION3;
                 ldap_set_option( lc->ld, LDAP_OPT_PROTOCOL_VERSION, &version);                  ldap_set_option( lc->ld, LDAP_OPT_PROTOCOL_VERSION, &version);
                                   
                   /*
                    * Rewrite the new superior, if defined and required
                    */
   #ifdef ENABLE_REWRITE
                   switch ( rewrite_session( li->rwinfo, "newSuperiorDn",
                                           newSuperior, conn, &mnewSuperior ) ) {
                   case REWRITE_REGEXEC_OK:
                           if ( mnewSuperior == NULL ) {
                                   mnewSuperior = ( char * )newSuperior;
                           }
                           Debug( LDAP_DEBUG_ARGS, "rw> newSuperiorDn:"
                                           " \"%s\" -> \"%s\"\n%s",
                                           newSuperior, mnewSuperior, "" );
                           break;
   
                   case REWRITE_REGEXEC_UNWILLING:
                           send_ldap_result( conn, op, LDAP_UNWILLING_TO_PERFORM,
                                           NULL, "Unwilling to perform",
                                           NULL, NULL );
   
                   case REWRITE_REGEXEC_ERR:
                           return( -1 );
                   }
   #else /* !ENABLE_REWRITE */
                 mnewSuperior = ldap_back_dn_massage( li,                  mnewSuperior = ldap_back_dn_massage( li,
                         ch_strdup( newSuperior ), 0 );                                  ch_strdup( newSuperior ), 0 );
                 if ( mnewSuperior == NULL ) {                  if ( mnewSuperior == NULL ) {
                         return( -1 );                          return( -1 );
                 }                  }
   #endif /* !ENABLE_REWRITE */
         }          }
   
         if ( !ldap_back_dobind(lc, op) ) {  #ifdef ENABLE_REWRITE
                 return( -1 );          /*
         }           * Rewrite the modrdn dn, if required
            */
           switch ( rewrite_session( li->rwinfo, "modrDn", dn, conn, &mdn ) ) {
           case REWRITE_REGEXEC_OK:
                   if ( mdn == NULL ) {
                           mdn = ( char * )dn;
                   }
                   Debug( LDAP_DEBUG_ARGS, "rw> modrDn: \"%s\" -> \"%s\"\n%s",
                                   dn, mdn, "" );
                   break;
                   
           case REWRITE_REGEXEC_UNWILLING:
                   send_ldap_result( conn, op, LDAP_UNWILLING_TO_PERFORM,
                                   NULL, "Unwilling to perform", NULL, NULL );
   
         mdn = ldap_back_dn_massage( li, ch_strdup( dn ), 0 );          case REWRITE_REGEXEC_ERR:
         if ( mdn == NULL ) {  
                 return( -1 );                  return( -1 );
         }          }
   #else /* !ENABLE_REWRITE */
           mdn = ldap_back_dn_massage( li, ch_strdup( dn ), 0 );
   #endif /* !ENABLE_REWRITE */
   
         ldap_rename2_s( lc->ld, mdn, newrdn, mnewSuperior, deleteoldrdn );          ldap_rename2_s( lc->ld, mdn, newrdn, mnewSuperior, deleteoldrdn );
   
   #ifdef ENABLE_REWRITE
           if ( mdn != dn ) {
   #endif /* ENABLE_REWRITE */
         free( mdn );          free( mdn );
         if ( mnewSuperior ) free( mnewSuperior );  #ifdef ENABLE_REWRITE
           }
   #endif /* ENABLE_REWRITE */
           if ( mnewSuperior != NULL
   #ifdef ENABLE_REWRITE
                           && mnewSuperior != newSuperior
   #endif /* ENABLE_REWRITE */
              ) {
                   free( mnewSuperior );
           }
                   
         return( ldap_back_op_result( lc, op ) );          return( ldap_back_op_result( lc, op ) );
 }  }

Removed from v.1.7  
changed lines
  Added in v.1.8


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