Diff for /servers/slapd/overlays/syncprov.c between versions 1.93 and 1.94

version 1.93, 2005/08/08 22:11:42 version 1.94, 2005/08/08 22:26:39
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.92 2005/08/08 10:38:20 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.93 2005/08/08 22:11:42 hyc Exp $ */
 /* syncprov.c - syncrepl provider */  /* syncprov.c - syncrepl provider */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
Line 2286  static int syncprov_parseCtrl ( Line 2286  static int syncprov_parseCtrl (
         LDAPControl *ctrl )          LDAPControl *ctrl )
 {  {
         ber_tag_t tag;          ber_tag_t tag;
         BerElement *ber;          BerElementBuffer berbuf;
           BerElement *ber = (BerElement *)&berbuf;
         ber_int_t mode;          ber_int_t mode;
         ber_len_t len;          ber_len_t len;
         struct berval cookie = BER_BVNULL;          struct berval cookie = BER_BVNULL;
Line 2320  static int syncprov_parseCtrl ( Line 2321  static int syncprov_parseCtrl (
          *      }           *      }
          */           */
   
         ber = ber_init( &ctrl->ldctl_value );          ber_init2( ber, &ctrl->ldctl_value, 0 );
         if( ber == NULL ) {  
                 rs->sr_text = "internal error";  
                 return LDAP_OTHER;  
         }  
   
         if ( (tag = ber_scanf( ber, "{i" /*}*/, &mode )) == LBER_ERROR ) {          if ( (tag = ber_scanf( ber, "{i" /*}*/, &mode )) == LBER_ERROR ) {
                 rs->sr_text = "Sync control : mode decoding error";                  rs->sr_text = "Sync control : mode decoding error";
Line 2364  static int syncprov_parseCtrl ( Line 2361  static int syncprov_parseCtrl (
         sr = op->o_tmpcalloc( 1, sizeof(struct sync_control), op->o_tmpmemctx );          sr = op->o_tmpcalloc( 1, sizeof(struct sync_control), op->o_tmpmemctx );
         sr->sr_rhint = rhint;          sr->sr_rhint = rhint;
         if (!BER_BVISNULL(&cookie)) {          if (!BER_BVISNULL(&cookie)) {
                 ber_dupbv( &sr->sr_state.octet_str, &cookie );                  ber_dupbv_x( &sr->sr_state.octet_str, &cookie, op->o_tmpmemctx );
                 slap_parse_sync_cookie( &sr->sr_state, op->o_tmpmemctx );                  slap_parse_sync_cookie( &sr->sr_state, op->o_tmpmemctx );
                   if ( sr->sr_state.rid == -1 ) {
                           rs->sr_text = "Sync control : cookie parsing error";
                           return LDAP_PROTOCOL_ERROR;
                   }
         }          }
   
         op->o_controls[slap_cids.sc_LDAPsync] = sr;          op->o_controls[slap_cids.sc_LDAPsync] = sr;
   
         (void) ber_free( ber, 1 );  
   
         op->o_sync = ctrl->ldctl_iscritical          op->o_sync = ctrl->ldctl_iscritical
                 ? SLAP_CONTROL_CRITICAL                  ? SLAP_CONTROL_CRITICAL
                 : SLAP_CONTROL_NONCRITICAL;                  : SLAP_CONTROL_NONCRITICAL;

Removed from v.1.93  
changed lines
  Added in v.1.94


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