Diff for /servers/slapd/back-ldap/modrdn.c between versions 1.25 and 1.26

version 1.25, 2003/04/05 14:58:36 version 1.26, 2003/04/07 08:15:18
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.24 2003/04/04 20:20:49 ando Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/back-ldap/modrdn.c,v 1.25 2003/04/05 14:58:36 ando Exp $ */
 /*  /*
  * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.   * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file   * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
Line 53  ldap_back_modrdn( Line 53  ldap_back_modrdn(
         struct ldapinfo *li = (struct ldapinfo *) op->o_bd->be_private;          struct ldapinfo *li = (struct ldapinfo *) op->o_bd->be_private;
         struct ldapconn *lc;          struct ldapconn *lc;
         ber_int_t msgid;          ber_int_t msgid;
           dncookie dc;
   
         struct berval mdn = { 0, NULL }, mnewSuperior = { 0, NULL };          struct berval mdn = { 0, NULL }, mnewSuperior = { 0, NULL };
   
Line 61  ldap_back_modrdn( Line 62  ldap_back_modrdn(
                 return( -1 );                  return( -1 );
         }          }
   
         if (op->oq_modrdn.rs_newSup) {          dc.li = li;
   #ifdef ENABLE_REWRITE
           dc.conn = op->o_conn;
           dc.rs = rs;
   #else
           dc.tofrom = 1;
           dc.normalized = 0;
   #endif
           if (op->orr_newSup) {
                 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);
                                   
Line 69  ldap_back_modrdn( Line 78  ldap_back_modrdn(
                  * Rewrite the new superior, if defined and required                   * Rewrite the new superior, if defined and required
                  */                   */
 #ifdef ENABLE_REWRITE  #ifdef ENABLE_REWRITE
                 switch ( rewrite_session( li->rwinfo, "newSuperiorDn",                  dc.ctx = "newSuperiorDn";
                                         op->oq_modrdn.rs_newSup->bv_val, op->o_conn, &mnewSuperior.bv_val ) ) {  #endif
                 case REWRITE_REGEXEC_OK:                  if ( ldap_back_dn_massage( &dc, op->orr_newSup,
                         if ( mnewSuperior.bv_val == NULL ) {                          &mnewSuperior ) ) {
                                 mnewSuperior.bv_val = ( char * )op->oq_modrdn.rs_newSup->bv_val;                          send_ldap_result( op, rs );
                         }                          return -1;
 #ifdef NEW_LOGGING  
                         LDAP_LOG( BACK_LDAP, DETAIL1,   
                                 "[rw] newSuperiorDn:" " \"%s\" -> \"%s\"\n",  
                                 op->oq_modrdn.rs_newSup->bv_val, mnewSuperior.bv_val, 0 );  
 #else /* !NEW_LOGGING */  
                         Debug( LDAP_DEBUG_ARGS, "rw> newSuperiorDn:"  
                                         " \"%s\" -> \"%s\"\n%s",  
                                         op->oq_modrdn.rs_newSup->bv_val, mnewSuperior.bv_val, "" );  
 #endif /* !NEW_LOGGING */  
                         break;  
   
                 case REWRITE_REGEXEC_UNWILLING:  
                         send_ldap_error( op, rs, LDAP_UNWILLING_TO_PERFORM,  
                                         "Operation not allowed" );  
                         return( -1 );  
   
                 case REWRITE_REGEXEC_ERR:  
                         send_ldap_error( op, rs, LDAP_OTHER,  
                                         "Rewrite error" );  
                         return( -1 );  
                 }  
 #else /* !ENABLE_REWRITE */  
                 ldap_back_dn_massage( li, op->oq_modrdn.rs_newSup, &mnewSuperior, 0, 1 );  
                 if ( mnewSuperior.bv_val == NULL ) {  
                         return( -1 );  
                 }                  }
 #endif /* !ENABLE_REWRITE */  
         }          }
   
 #ifdef ENABLE_REWRITE  
         /*          /*
          * Rewrite the modrdn dn, if required           * Rewrite the modrdn dn, if required
          */           */
         switch ( rewrite_session( li->rwinfo, "modrDn", op->o_req_dn.bv_val, op->o_conn, &mdn.bv_val ) ) {  #ifdef ENABLE_REWRITE
         case REWRITE_REGEXEC_OK:          dc.ctx = "modrDn";
                 if ( mdn.bv_val == NULL ) {  #endif
                         mdn.bv_val = ( char * )op->o_req_dn.bv_val;          if ( ldap_back_dn_massage( &dc, &op->o_req_dn, &mdn ) ) {
                 }                  send_ldap_result( op, rs );
 #ifdef NEW_LOGGING                  return -1;
                 LDAP_LOG( BACK_LDAP, DETAIL1,   
                         "[rw] modrDn: \"%s\" -> \"%s\"\n", op->o_req_dn.bv_val, mdn.bv_val, 0 );  
 #else /* !NEW_LOGGING */  
                 Debug( LDAP_DEBUG_ARGS, "rw> modrDn: \"%s\" -> \"%s\"\n%s",  
                                 op->o_req_dn.bv_val, mdn.bv_val, "" );  
 #endif /* !NEW_LOGGING */  
                 break;  
                   
         case REWRITE_REGEXEC_UNWILLING:  
                 send_ldap_error( op, rs, LDAP_UNWILLING_TO_PERFORM,  
                                 "Operation not allowed" );  
                 return( -1 );  
   
         case REWRITE_REGEXEC_ERR:  
                 send_ldap_error( op, rs, LDAP_OTHER,  
                                 "Rewrite error" );  
                 return( -1 );  
         }          }
 #else /* !ENABLE_REWRITE */  
         ldap_back_dn_massage( li, &op->o_req_dn, &mdn, 0, 1 );  
 #endif /* !ENABLE_REWRITE */  
   
         rs->sr_err = ldap_rename( lc->ld, mdn.bv_val,          rs->sr_err = ldap_rename( lc->ld, mdn.bv_val,
                         op->oq_modrdn.rs_newrdn.bv_val, mnewSuperior.bv_val,                          op->orr_newrdn.bv_val, mnewSuperior.bv_val,
                         op->oq_modrdn.rs_deleteoldrdn, op->o_ctrls,                          op->orr_deleteoldrdn, op->o_ctrls,
                         NULL, &msgid );                          NULL, &msgid );
   
         if ( mdn.bv_val != op->o_req_dn.bv_val ) {          if ( mdn.bv_val != op->o_req_dn.bv_val ) {

Removed from v.1.25  
changed lines
  Added in v.1.26


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