]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/ldapsync.c
declare oc_bvfind_undef()
[openldap] / servers / slapd / ldapsync.c
index 1cad64cab20c03b0d5d60b4066f2242ae93811e1..9141f937d9fab5cee0c5a420c1593f0061edce9e 100644 (file)
@@ -22,7 +22,6 @@
 #include <ac/string.h>
 #include <ac/socket.h>
 
-#include "ldap_pvt.h"
 #include "lutil.h"
 #include "slap.h"
 #include "../../libraries/liblber/lber-int.h" /* get ber_strndup() */
@@ -35,271 +34,6 @@ struct slap_sync_cookie_s slap_sync_cookie =
        LDAP_STAILQ_HEAD_INITIALIZER( slap_sync_cookie );
 #endif
 
-int
-slap_build_sync_state_ctrl(
-       Operation       *op,
-       SlapReply       *rs,
-       Entry           *e,
-       int                     entry_sync_state,
-       LDAPControl     **ctrls,
-       int                     num_ctrls,
-       int                     send_cookie,
-       struct berval   *cookie)
-{
-       Attribute* a;
-       int ret;
-       int res;
-       const char *text = NULL;
-
-       BerElementBuffer berbuf;
-       BerElement *ber = (BerElement *)&berbuf;
-
-       struct berval entryuuid_bv      = BER_BVNULL;
-
-       ber_init2( ber, 0, LBER_USE_DER );
-       ber_set_option( ber, LBER_OPT_BER_MEMCTX, &op->o_tmpmemctx );
-
-       ctrls[num_ctrls] = slap_sl_malloc ( sizeof ( LDAPControl ), op->o_tmpmemctx );
-
-       for ( a = e->e_attrs; a != NULL; a = a->a_next ) {
-               AttributeDescription *desc = a->a_desc;
-               if ( desc == slap_schema.si_ad_entryUUID ) {
-                       ber_dupbv( &entryuuid_bv, &a->a_nvals[0] );
-               }
-       }
-
-       if ( send_cookie && cookie ) {
-               ber_printf( ber, "{eOON}",
-                       entry_sync_state, &entryuuid_bv, cookie );
-       } else {
-               ber_printf( ber, "{eON}",
-                       entry_sync_state, &entryuuid_bv );
-       }
-
-       ch_free( entryuuid_bv.bv_val );
-       entryuuid_bv.bv_val = NULL;
-
-       ctrls[num_ctrls]->ldctl_oid = LDAP_CONTROL_SYNC_STATE;
-       ctrls[num_ctrls]->ldctl_iscritical = op->o_sync;
-       ret = ber_flatten2( ber, &ctrls[num_ctrls]->ldctl_value, 1 );
-
-       ber_free_buf( ber );
-
-       if ( ret < 0 ) {
-#ifdef NEW_LOGGING
-               LDAP_LOG ( OPERATION, RESULTS, 
-                       "slap_build_sync_ctrl: ber_flatten2 failed\n",
-                       0, 0, 0 );
-#else
-               Debug( LDAP_DEBUG_TRACE,
-                       "slap_build_sync_ctrl: ber_flatten2 failed\n",
-                       0, 0, 0 );
-#endif
-               send_ldap_error( op, rs, LDAP_OTHER, "internal error" );
-               return ret;
-       }
-
-       return LDAP_SUCCESS;
-}
-
-int
-slap_build_sync_done_ctrl(
-       Operation       *op,
-       SlapReply       *rs,
-       LDAPControl     **ctrls,
-       int                     num_ctrls,
-       int                     send_cookie,
-       struct berval *cookie,
-       int                     refreshDeletes )
-{
-       int ret;
-       BerElementBuffer berbuf;
-       BerElement *ber = (BerElement *)&berbuf;
-
-       ber_init2( ber, NULL, LBER_USE_DER );
-       ber_set_option( ber, LBER_OPT_BER_MEMCTX, &op->o_tmpmemctx );
-
-       ctrls[num_ctrls] = ch_malloc ( sizeof ( LDAPControl ) );
-
-       ber_printf( ber, "{" );
-       if ( send_cookie && cookie ) {
-               ber_printf( ber, "O", cookie );
-       }
-       if ( refreshDeletes == LDAP_SYNC_REFRESH_DELETES ) {
-               ber_printf( ber, "b", refreshDeletes );
-       }
-       ber_printf( ber, "N}" );        
-
-       ctrls[num_ctrls]->ldctl_oid = LDAP_CONTROL_SYNC_DONE;
-       ctrls[num_ctrls]->ldctl_iscritical = op->o_sync;
-       ret = ber_flatten2( ber, &ctrls[num_ctrls]->ldctl_value, 1 );
-
-       ber_free_buf( ber );
-
-       if ( ret < 0 ) {
-#ifdef NEW_LOGGING
-               LDAP_LOG ( OPERATION, RESULTS, 
-                       "slap_build_sync_done_ctrl: ber_flatten2 failed\n",
-                       0, 0, 0 );
-#else
-               Debug( LDAP_DEBUG_TRACE,
-                       "slap_build_sync_done_ctrl: ber_flatten2 failed\n",
-                       0, 0, 0 );
-#endif
-               send_ldap_error( op, rs, LDAP_OTHER, "internal error" );
-               return ret;
-       }
-
-       return LDAP_SUCCESS;
-}
-
-
-int
-slap_build_sync_state_ctrl_from_slog(
-       Operation       *op,
-       SlapReply       *rs,
-       struct slog_entry *slog_e,
-       int                     entry_sync_state,
-       LDAPControl     **ctrls,
-       int                     num_ctrls,
-       int                     send_cookie,
-       struct berval   *cookie)
-{
-       Attribute* a;
-       int ret;
-       int res;
-       const char *text = NULL;
-
-       BerElementBuffer berbuf;
-       BerElement *ber = (BerElement *)&berbuf;
-
-       struct berval entryuuid_bv      = BER_BVNULL;
-
-       ber_init2( ber, NULL, LBER_USE_DER );
-       ber_set_option( ber, LBER_OPT_BER_MEMCTX, &op->o_tmpmemctx );
-
-       ctrls[num_ctrls] = ch_malloc ( sizeof ( LDAPControl ) );
-
-       ber_dupbv( &entryuuid_bv, &slog_e->sl_uuid );
-
-       if ( send_cookie && cookie ) {
-               ber_printf( ber, "{eOON}",
-                       entry_sync_state, &entryuuid_bv, cookie );
-       } else {
-               ber_printf( ber, "{eON}",
-                       entry_sync_state, &entryuuid_bv );
-       }
-
-       ch_free( entryuuid_bv.bv_val );
-       entryuuid_bv.bv_val = NULL;
-
-       ctrls[num_ctrls]->ldctl_oid = LDAP_CONTROL_SYNC_STATE;
-       ctrls[num_ctrls]->ldctl_iscritical = op->o_sync;
-       ret = ber_flatten2( ber, &ctrls[num_ctrls]->ldctl_value, 1 );
-
-       ber_free_buf( ber );
-
-       if ( ret < 0 ) {
-#ifdef NEW_LOGGING
-               LDAP_LOG ( OPERATION, RESULTS, 
-                       "slap_build_sync_ctrl: ber_flatten2 failed\n",
-                       0, 0, 0 );
-#else
-               Debug( LDAP_DEBUG_TRACE,
-                       "slap_build_sync_ctrl: ber_flatten2 failed\n",
-                       0, 0, 0 );
-#endif
-               send_ldap_error( op, rs, LDAP_OTHER, "internal error" );
-               return ret;
-       }
-
-       return LDAP_SUCCESS;
-}
-
-int
-slap_send_syncinfo(
-       Operation       *op,
-       SlapReply       *rs,
-       int                     type,
-       struct berval *cookie,
-       int                     refreshDone,
-       BerVarray       syncUUIDs,
-       int                     refreshDeletes )
-{
-       BerElementBuffer berbuf;
-       BerElement *ber = (BerElement *)&berbuf;
-       struct berval rspdata;
-
-       int ret;
-
-       ber_init2( ber, NULL, LBER_USE_DER );
-       ber_set_option( ber, LBER_OPT_BER_MEMCTX, &op->o_tmpmemctx );
-
-       if ( type ) {
-               switch ( type ) {
-               case LDAP_TAG_SYNC_NEW_COOKIE:
-                       ber_printf( ber, "tO", type, cookie );
-                       break;
-               case LDAP_TAG_SYNC_REFRESH_DELETE:
-               case LDAP_TAG_SYNC_REFRESH_PRESENT:
-                       ber_printf( ber, "t{", type );
-                       if ( cookie ) {
-                               ber_printf( ber, "O", cookie );
-                       }
-                       if ( refreshDone == 0 ) {
-                               ber_printf( ber, "b", refreshDone );
-                       }
-                       ber_printf( ber, "N}" );
-                       break;
-               case LDAP_TAG_SYNC_ID_SET:
-                       ber_printf( ber, "t{", type );
-                       if ( cookie ) {
-                               ber_printf( ber, "O", cookie );
-                       }
-                       if ( refreshDeletes == 1 ) {
-                               ber_printf( ber, "b", refreshDeletes );
-                       }
-                       ber_printf( ber, "[W]", syncUUIDs );
-                       ber_printf( ber, "N}" );
-                       break;
-               default:
-#ifdef NEW_LOGGING
-                       LDAP_LOG ( OPERATION, RESULTS,
-                               "slap_send_syncinfo: invalid syncinfo type (%d)\n",
-                               type, 0, 0 );
-#else
-                       Debug( LDAP_DEBUG_TRACE,
-                               "slap_send_syncinfo: invalid syncinfo type (%d)\n",
-                               type, 0, 0 );
-#endif
-                       return LDAP_OTHER;
-               }
-       }
-
-       ret = ber_flatten2( ber, &rspdata, 0 );
-
-       if ( ret < 0 ) {
-#ifdef NEW_LOGGING
-               LDAP_LOG ( OPERATION, RESULTS,
-                       "slap_send_syncinfo: ber_flatten2 failed\n",
-                       0, 0, 0 );
-#else
-               Debug( LDAP_DEBUG_TRACE,
-                       "slap_send_syncinfo: ber_flatten2 failed\n",
-                       0, 0, 0 );
-#endif
-               send_ldap_error( op, rs, LDAP_OTHER, "internal error" );
-               return ret;
-       }
-
-       rs->sr_rspdata = &rspdata;
-       send_ldap_intermediate( op, rs );
-       rs->sr_rspdata = NULL;
-       ber_free_buf( ber );
-
-       return LDAP_SUCCESS;
-}
-
 void
 slap_compose_sync_cookie(
        Operation *op,
@@ -461,11 +195,9 @@ slap_init_sync_cookie_ctxcsn(
        cookie->octet_str = NULL;
        ber_bvarray_add( &cookie->octet_str, &slap_syncCookie );
 
-       ber_dupbv( &ctxcsn, &octet_str );
-       ctxcsn.bv_val += 4;
-       ctxcsn.bv_len -= 4;
+       ctxcsn.bv_val = octet_str.bv_val + 4;
+       ctxcsn.bv_len = octet_str.bv_len - 4;
        ber_dupbv( &ctxcsn_dup, &ctxcsn );
-       ch_free( ctxcsn.bv_val );
        ber_bvarray_add( &cookie->ctxcsn, &ctxcsn_dup );
 
        return 0;
@@ -513,26 +245,3 @@ slap_dup_sync_cookie(
        return new;
 }
 
-int
-slap_build_syncUUID_set(
-       Operation *op,
-       BerVarray *set,
-       Entry *e
-)
-{
-       int ret;
-       Attribute* a;
-
-       struct berval entryuuid_bv      = BER_BVNULL;
-
-       for ( a = e->e_attrs; a != NULL; a = a->a_next ) {
-               AttributeDescription *desc = a->a_desc;
-               if ( desc == slap_schema.si_ad_entryUUID ) {
-                       ber_dupbv_x( &entryuuid_bv, &a->a_nvals[0], op->o_tmpmemctx );
-               }
-       }
-
-       ret = ber_bvarray_add_x( set, &entryuuid_bv, op->o_tmpmemctx );
-
-       return ret;
-}