]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/syncrepl.c
update for new backend types
[openldap] / servers / slapd / syncrepl.c
index a5a5a3cad1401b20772aa971817da2064fecf4aa..55541c19b7989951f2e7e445badd10336a74f176 100644 (file)
@@ -1022,7 +1022,7 @@ do_syncrepl(
        return NULL;
 }
 
-int
+static int
 syncrepl_message_to_entry(
        syncinfo_t      *si,
        Operation       *op,
@@ -1094,6 +1094,7 @@ syncrepl_message_to_entry(
                mod  = (Modifications *) ch_malloc( sizeof( Modifications ));
 
                mod->sml_op = LDAP_MOD_REPLACE;
+               mod->sml_flags = 0;
                mod->sml_next = NULL;
                mod->sml_desc = NULL;
                mod->sml_type = tmp.sml_type;
@@ -1192,7 +1193,7 @@ typedef struct dninfo {
        AttributeDescription **ads;
 } dninfo;
 
-int
+static int
 syncrepl_entry(
        syncinfo_t* si,
        Operation *op,
@@ -1464,12 +1465,13 @@ retry_add:;
 
                        op->o_tag = LDAP_REQ_MODIFY;
 
-                       assert( *modlist );
+                       assert( *modlist != NULL );
 
                        /* Delete all the old attrs */
                        for ( i = 0; i < dni.attrs; i++ ) {
                                mod = ch_malloc( sizeof( Modifications ) );
                                mod->sml_op = LDAP_MOD_DELETE;
+                               mod->sml_flags = 0;
                                mod->sml_desc = dni.ads[i];
                                mod->sml_type = mod->sml_desc->ad_cname;
                                mod->sml_values = NULL;
@@ -1496,6 +1498,7 @@ retry_add:;
 
                        mod = (Modifications *)ch_calloc(1, sizeof(Modifications));
                        mod->sml_op = LDAP_MOD_REPLACE;
+                       mod->sml_flags = 0;
                        mod->sml_desc = slap_schema.si_ad_entryUUID;
                        mod->sml_type = mod->sml_desc->ad_cname;
                        ber_dupbv( &uuid_bv, &syncUUID_strrep );
@@ -1676,6 +1679,7 @@ syncrepl_del_nonpresent(
                        if ( rs_delete.sr_err == LDAP_NOT_ALLOWED_ON_NONLEAF ) {
                                Modifications mod1, mod2;
                                mod1.sml_op = LDAP_MOD_REPLACE;
+                               mod1.sml_flags = 0;
                                mod1.sml_desc = slap_schema.si_ad_objectClass;
                                mod1.sml_type = mod1.sml_desc->ad_cname;
                                mod1.sml_values = &gcbva[0];
@@ -1683,6 +1687,7 @@ syncrepl_del_nonpresent(
                                mod1.sml_next = &mod2;
 
                                mod2.sml_op = LDAP_MOD_REPLACE;
+                               mod2.sml_flags = 0;
                                mod2.sml_desc = slap_schema.si_ad_structuralObjectClass;
                                mod2.sml_type = mod2.sml_desc->ad_cname;
                                mod2.sml_values = &gcbva[1];
@@ -1853,7 +1858,7 @@ syncrepl_add_glue(
        return;
 }
 
-void
+static void
 syncrepl_updateCookie(
        syncinfo_t *si,
        Operation *op,
@@ -2067,7 +2072,7 @@ null_callback(
        return LDAP_SUCCESS;
 }
 
-struct berval *
+static struct berval *
 slap_uuidstr_from_normalized(
        struct berval* uuidstr,
        struct berval* normalized,
@@ -2235,21 +2240,22 @@ syncinfo_free( syncinfo_t *sie )
 /* NOTE: used & documented in slapd.conf(5) */
 #define IDSTR                  "rid"
 #define PROVIDERSTR            "provider"
-#define TYPESTR                        "type"
-#define INTERVALSTR            "interval"
-#define SEARCHBASESTR          "searchbase"
+#define SCHEMASTR              "schemachecking"
 #define FILTERSTR              "filter"
+#define SEARCHBASESTR          "searchbase"
 #define SCOPESTR               "scope"
-#define ATTRSSTR               "attrs"
 #define ATTRSONLYSTR           "attrsonly"
+#define ATTRSSTR               "attrs"
+#define TYPESTR                        "type"
+#define INTERVALSTR            "interval"
+#define RETRYSTR               "retry"
 #define SLIMITSTR              "sizelimit"
 #define TLIMITSTR              "timelimit"
-#define SCHEMASTR              "schemachecking"
 
 /* FIXME: undocumented */
 #define OLDAUTHCSTR            "bindprincipal"
 #define EXATTRSSTR             "exattrs"
-#define RETRYSTR               "retry"
+#define MANAGEDSAITSTR         "manageDSAit"
 
 /* FIXME: unused */
 #define LASTMODSTR             "lastmod"
@@ -2258,7 +2264,6 @@ syncinfo_free( syncinfo_t *sie )
 #define LMREQSTR               "req"
 #define SRVTABSTR              "srvtab"
 #define SUFFIXSTR              "suffix"
-#define MANAGEDSAITSTR         "manageDSAit"
 
 /* mandatory */
 #define GOT_ID                 0x0001
@@ -2273,11 +2278,13 @@ static struct {
 } scopes[] = {
        { BER_BVC("base"), LDAP_SCOPE_BASE },
        { BER_BVC("one"), LDAP_SCOPE_ONELEVEL },
+       { BER_BVC("onelevel"), LDAP_SCOPE_ONELEVEL },   /* OpenLDAP extension */
 #ifdef LDAP_SCOPE_SUBORDINATE
        { BER_BVC("children"), LDAP_SCOPE_SUBORDINATE },
-       { BER_BVC("subordinate"), 0 },
+       { BER_BVC("subordinate"), LDAP_SCOPE_SUBORDINATE },
 #endif
        { BER_BVC("sub"), LDAP_SCOPE_SUBTREE },
+       { BER_BVC("subtree"), LDAP_SCOPE_SUBTREE },     /* OpenLDAP extension */
        { BER_BVNULL, 0 }
 };
 
@@ -2352,9 +2359,7 @@ parse_syncrepl_line(
                        int j;
                        val = cargv[ i ] + STRLENOF( SCOPESTR "=" );
                        for ( j=0; !BER_BVISNULL(&scopes[j].key); j++ ) {
-                               if (!strncasecmp( val, scopes[j].key.bv_val,
-                                       scopes[j].key.bv_len )) {
-                                       while (!scopes[j].val) j--;
+                               if (!strcasecmp( val, scopes[j].key.bv_val )) {
                                        si->si_scope = scopes[j].val;
                                        break;
                                }
@@ -2628,7 +2633,7 @@ add_syncrepl(
                si->si_be = be;
                init_syncrepl( si );
                si->si_re = ldap_pvt_runqueue_insert( &slapd_rq, si->si_interval,
-                       do_syncrepl, si );
+                       do_syncrepl, si, "do_syncrepl", be->be_suffix[0].bv_val );
                if ( !si->si_re )
                        rc = -1;
        }
@@ -2654,11 +2659,11 @@ syncrepl_unparse( syncinfo_t *si, struct berval *bv )
 {
        struct berval bc;
        char buf[BUFSIZ*2], *ptr;
-       int i, len;
+       int i;
 
        bindconf_unparse( &si->si_bindconf, &bc );
        ptr = buf;
-       ptr += sprintf( ptr, IDSTR "=%03d " PROVIDERSTR "=%s",
+       ptr += sprintf( ptr, IDSTR "=%03ld " PROVIDERSTR "=%s",
                si->si_rid, si->si_provideruri.bv_val );
        if ( !BER_BVISNULL( &bc )) {
                ptr = lutil_strcopy( ptr, bc.bv_val );
@@ -2732,11 +2737,11 @@ syncrepl_unparse( syncinfo_t *si, struct berval *bv )
                for (i=0; si->si_retryinterval[i]; i++) {
                        if ( space ) *ptr++ = ' ';
                        space = 1;
-                       ptr += sprintf( ptr, "%d", si->si_retryinterval[i] );
+                       ptr += sprintf( ptr, "%ld ", (long) si->si_retryinterval[i] );
                        if ( si->si_retrynum_init[i] == -1 )
                                *ptr++ = '+';
                        else
-                               ptr += sprintf( ptr, "%d", si->si_retrynum_init );
+                               ptr += sprintf( ptr, "%d", si->si_retrynum_init[i] );
                }
                *ptr++ = '"';
        }