Diff for /servers/slapd/back-ldap/modrdn.c between versions 1.10 and 1.11

version 1.10, 2001/12/26 19:47:42 version 1.11, 2001/12/28 03:20:08
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.9 2001/05/16 20:55:44 ando Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/back-ldap/modrdn.c,v 1.10 2001/12/26 19:47:42 ando 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 62  ldap_back_modrdn( Line 62  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 = NULL, *mnewSuperior = NULL;          struct berval mdn = { 0, NULL }, mnewSuperior = { 0, NULL };
   
         lc = ldap_back_getconn( li, conn, op );          lc = ldap_back_getconn( li, conn, op );
         if ( !lc || !ldap_back_dobind(lc, op) ) {          if ( !lc || !ldap_back_dobind(lc, op) ) {
Line 78  ldap_back_modrdn( Line 78  ldap_back_modrdn(
                  */                   */
 #ifdef ENABLE_REWRITE  #ifdef ENABLE_REWRITE
                 switch ( rewrite_session( li->rwinfo, "newSuperiorDn",                  switch ( rewrite_session( li->rwinfo, "newSuperiorDn",
                                         newSuperior->bv_val, conn, &mnewSuperior ) ) {                                          newSuperior->bv_val, conn, &mnewSuperior.bv_val ) ) {
                 case REWRITE_REGEXEC_OK:                  case REWRITE_REGEXEC_OK:
                         if ( mnewSuperior == NULL ) {                          if ( mnewSuperior.bv_val == NULL ) {
                                 mnewSuperior = ( char * )newSuperior;                                  mnewSuperior.bv_val = ( char * )newSuperior;
                         }                          }
 #ifdef NEW_LOGGING  #ifdef NEW_LOGGING
                         LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1,                          LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1,
                                         "[rw] newSuperiorDn:"                                          "[rw] newSuperiorDn:"
                                         " \"%s\" -> \"%s\"\n",                                          " \"%s\" -> \"%s\"\n",
                                         newSuperior, mnewSuperior ));                                          newSuperior, mnewSuperior.bv_val ));
 #else /* !NEW_LOGGING */  #else /* !NEW_LOGGING */
                         Debug( LDAP_DEBUG_ARGS, "rw> newSuperiorDn:"                          Debug( LDAP_DEBUG_ARGS, "rw> newSuperiorDn:"
                                         " \"%s\" -> \"%s\"\n%s",                                          " \"%s\" -> \"%s\"\n%s",
                                         newSuperior->bv_val, mnewSuperior, "" );                                          newSuperior->bv_val, mnewSuperior.bv_val, "" );
 #endif /* !NEW_LOGGING */  #endif /* !NEW_LOGGING */
                         break;                          break;
   
Line 108  ldap_back_modrdn( Line 108  ldap_back_modrdn(
                         return( -1 );                          return( -1 );
                 }                  }
 #else /* !ENABLE_REWRITE */  #else /* !ENABLE_REWRITE */
                 mnewSuperior = ldap_back_dn_massage( li,                  ldap_back_dn_massage( li, newSuperior, &mnewSuperior, 0, 1 );
                                 ch_strdup( newSuperior->bv_val ), 0 );                  if ( mnewSuperior.bv_val == NULL ) {
                 if ( mnewSuperior == NULL ) {  
                         return( -1 );                          return( -1 );
                 }                  }
 #endif /* !ENABLE_REWRITE */  #endif /* !ENABLE_REWRITE */
Line 120  ldap_back_modrdn( Line 119  ldap_back_modrdn(
         /*          /*
          * Rewrite the modrdn dn, if required           * Rewrite the modrdn dn, if required
          */           */
         switch ( rewrite_session( li->rwinfo, "modrDn", dn->bv_val, conn, &mdn ) ) {          switch ( rewrite_session( li->rwinfo, "modrDn", dn->bv_val, conn, &mdn.bv_val ) ) {
         case REWRITE_REGEXEC_OK:          case REWRITE_REGEXEC_OK:
                 if ( mdn == NULL ) {                  if ( mdn.bv_val == NULL ) {
                         mdn = ( char * )dn->bv_val;                          mdn.bv_val = ( char * )dn->bv_val;
                 }                  }
 #ifdef NEW_LOGGING  #ifdef NEW_LOGGING
                 LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1,                  LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1,
                                 "[rw] modrDn: \"%s\" -> \"%s\"\n", dn->bv_val, mdn ));                                  "[rw] modrDn: \"%s\" -> \"%s\"\n", dn->bv_val, mdn.bv_val ));
 #else /* !NEW_LOGGING */  #else /* !NEW_LOGGING */
                 Debug( LDAP_DEBUG_ARGS, "rw> modrDn: \"%s\" -> \"%s\"\n%s",                  Debug( LDAP_DEBUG_ARGS, "rw> modrDn: \"%s\" -> \"%s\"\n%s",
                                 dn->bv_val, mdn, "" );                                  dn->bv_val, mdn.bv_val, "" );
 #endif /* !NEW_LOGGING */  #endif /* !NEW_LOGGING */
                 break;                  break;
                                   
Line 145  ldap_back_modrdn( Line 144  ldap_back_modrdn(
                 return( -1 );                  return( -1 );
         }          }
 #else /* !ENABLE_REWRITE */  #else /* !ENABLE_REWRITE */
         mdn = ldap_back_dn_massage( li, ch_strdup( dn->bv_val ), 0 );          ldap_back_dn_massage( li, dn, &mdn, 0, 1 );
 #endif /* !ENABLE_REWRITE */  #endif /* !ENABLE_REWRITE */
   
         ldap_rename2_s( lc->ld, mdn, newrdn->bv_val, mnewSuperior, deleteoldrdn );          ldap_rename2_s( lc->ld, mdn.bv_val, newrdn->bv_val, mnewSuperior.bv_val, deleteoldrdn );
   
 #ifdef ENABLE_REWRITE          if ( mdn.bv_val != dn->bv_val ) {
         if ( mdn != dn->bv_val ) {                  free( mdn.bv_val );
 #endif /* ENABLE_REWRITE */  
         free( mdn );  
 #ifdef ENABLE_REWRITE  
         }          }
 #endif /* ENABLE_REWRITE */          if ( mnewSuperior.bv_val != NULL
         if ( mnewSuperior != NULL                  && mnewSuperior.bv_val != newSuperior->bv_val ) {
 #ifdef ENABLE_REWRITE                  free( mnewSuperior.bv_val );
                         && mnewSuperior != newSuperior->bv_val  
 #endif /* ENABLE_REWRITE */  
            ) {  
                 free( mnewSuperior );  
         }          }
                   
         return( ldap_back_op_result( lc, op ) );          return( ldap_back_op_result( lc, op ) );

Removed from v.1.10  
changed lines
  Added in v.1.11


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