Diff for /servers/slapd/overlays/syncprov.c between versions 1.56.2.10 and 1.91

version 1.56.2.10, 2005/08/09 21:04:08 version 1.91, 2005/08/02 06:43:27
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.94 2005/08/08 22:26:39 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.90 2005/07/18 04:22:36 hallvard 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;
         BerElementBuffer berbuf;          BerElement *ber;
         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 2321  static int syncprov_parseCtrl ( Line 2320  static int syncprov_parseCtrl (
          *      }           *      }
          */           */
   
         ber_init2( ber, &ctrl->ldctl_value, 0 );          ber = ber_init( &ctrl->ldctl_value );
           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 2343  static int syncprov_parseCtrl ( Line 2346  static int syncprov_parseCtrl (
         tag = ber_peek_tag( ber, &len );          tag = ber_peek_tag( ber, &len );
   
         if ( tag == LDAP_TAG_SYNC_COOKIE ) {          if ( tag == LDAP_TAG_SYNC_COOKIE ) {
                 if (( ber_scanf( ber, /*{*/ "m", &cookie )) == LBER_ERROR ) {                  if (( ber_scanf( ber, /*{*/ "o", &cookie )) == LBER_ERROR ) {
                         rs->sr_text = "Sync control : cookie decoding error";                          rs->sr_text = "Sync control : cookie decoding error";
                         return LDAP_PROTOCOL_ERROR;                          return LDAP_PROTOCOL_ERROR;
                 }                  }
Line 2361  static int syncprov_parseCtrl ( Line 2364  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_x( &sr->sr_state.octet_str, &cookie, op->o_tmpmemctx );                  ber_dupbv( &sr->sr_state.octet_str, &cookie );
                 slap_parse_sync_cookie( &sr->sr_state, op->o_tmpmemctx );                  slap_parse_sync_cookie( &sr->sr_state );
                 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.56.2.10  
changed lines
  Added in v.1.91


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