- int rc;
-
- struct berval sub_bv = { 0, NULL };
- struct berval psubrdn = { 0, NULL };
-
- slap_callback cb;
- SlapReply rs = {REP_RESULT};
-
- struct berval rdn = { 0, NULL };
- int match = 0;
- char *def_filter_str = NULL;
-
- ocbva = ( struct berval * ) ch_calloc( 4, sizeof( struct berval ));
- socbva = ( struct berval * ) ch_calloc( 2, sizeof( struct berval ));
- cnbva = ( struct berval * ) ch_calloc( 2, sizeof( struct berval ));
- ssbva = ( struct berval * ) ch_calloc( 2, sizeof( struct berval ));
- scbva = ( struct berval * ) ch_calloc( 2, sizeof( struct berval ));
-
- ber_str2bv( "top", strlen("top"), 1, &ocbva[0] );
- ber_str2bv( "subentry", strlen("subentry"), 1, &ocbva[1] );
- ber_str2bv( "syncProviderSubentry",
- strlen("syncProviderSubentry"), 1, &ocbva[2] );
- ocbva[3].bv_len = 0;
- ocbva[3].bv_val = NULL;
-
- mod = (Modifications *) ch_malloc( sizeof( Modifications ));
- mod->sml_op = LDAP_MOD_REPLACE;
- mod->sml_next = NULL;
- mod->sml_desc = NULL;
- ber_str2bv( "objectClass", strlen("objectClass"), 1, &mod->sml_type );
- mod->sml_bvalues = ocbva;
- mod->sml_nvalues = NULL;
- *modtail = mod;
- modtail = &mod->sml_next;
-
- ber_str2bv( "syncProviderSubentry",
- strlen("syncProviderSubentry"), 1, &socbva[0] );
- socbva[1].bv_len = 0;
- socbva[1].bv_val = NULL;
-
- mod = (Modifications *) ch_malloc( sizeof( Modifications ));
- mod->sml_op = LDAP_MOD_REPLACE;
- mod->sml_next = NULL;
- mod->sml_desc = NULL;
- ber_str2bv( "structuralObjectClass", strlen("structuralObjectClass"), 1, &mod->sml_type );
- mod->sml_bvalues = socbva;
- mod->sml_nvalues = NULL;
- *modtail = mod;
- modtail = &mod->sml_next;
-
- sprintf( substr, "ldapsync" );
- sprintf( rdnstr, "cn=%s", substr );
- ber_str2bv( substr, strlen( substr ), 1, &cnbva[0] );
- ber_str2bv( rdnstr, strlen( rdnstr ), 1, &psubrdn );
- cnbva[1].bv_len = 0;
- cnbva[1].bv_val = NULL;
- mod = (Modifications *) ch_malloc( sizeof( Modifications ));
- mod->sml_op = LDAP_MOD_REPLACE;
- mod->sml_next = NULL;
- mod->sml_desc = NULL;
- ber_str2bv( "cn", strlen("cn"), 1, &mod->sml_type );
- mod->sml_bvalues = cnbva;
- mod->sml_nvalues = NULL;
- *modtail = mod;
- modtail = &mod->sml_next;
-
- if ( context_csn ) {
- ber_dupbv( &scbva[0], context_csn );
- scbva[1].bv_len = 0;
- scbva[1].bv_val = NULL;
- mod = (Modifications *) ch_malloc( sizeof( Modifications ));
- mod->sml_op = LDAP_MOD_REPLACE;
- mod->sml_next = NULL;
- mod->sml_desc = NULL;
- ber_str2bv( "contextCSN", strlen("contextCSN"), 1, &mod->sml_type );
- mod->sml_bvalues = scbva;
- mod->sml_nvalues = NULL;
- *modtail = mod;
- modtail = &mod->sml_next;
- }
-
- ber_str2bv( "{}", strlen("{}"), 1, &ssbva[0] );
- ssbva[1].bv_len = 0;
- ssbva[1].bv_val = NULL;
- mod = (Modifications *) ch_malloc( sizeof( Modifications ));
- mod->sml_op = LDAP_MOD_REPLACE;
- mod->sml_next = NULL;
- mod->sml_desc = NULL;
- ber_str2bv( "subtreeSpecification",
- strlen("subtreeSpecification"), 1, &mod->sml_type );
- mod->sml_bvalues = ssbva;
- mod->sml_nvalues = NULL;
- *modtail = mod;
- modtail = &mod->sml_next;
-
- rc = slap_mods_check( modlist, 1, &text, txtbuf, textlen, NULL );
-
- if ( rc != LDAP_SUCCESS ) {
-#ifdef NEW_LOGGING
- LDAP_LOG( OPERATION, ERR,
- "create_context_csn_entry: mods check (%s)\n", text, 0, 0 );
-#else
- Debug( LDAP_DEBUG_ANY, "create_context_csn_entry: mods check (%s)\n",
- text, 0, 0 );
-#endif
- }