/* slap.h - stand alone ldap server include file */
/* $OpenLDAP$ */
-/*
- * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2003 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* Portions Copyright (c) 1995 Regents of the University of Michigan.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that this notice is preserved and that due credit is given
+ * to the University of Michigan at Ann Arbor. The name of the University
+ * may not be used to endorse or promote products derived from this
+ * software without specific prior written permission. This software
+ * is provided ``as is'' without express or implied warranty.
*/
#ifndef _SLAP_H_
#define nbackends nBackendDB
#define backends backendDB
+/*
+ * syncinfo structure for syncrepl
+ */
+
+#define SLAP_SYNC_SID_SIZE 3
+#define SLAP_SYNC_RID_SIZE 3
+#define SLAP_SYNCUUID_SET_SIZE 256
+
struct nonpresent_entry {
struct berval *npe_name;
struct berval *npe_nname;
struct berval *ctxcsn;
long sid;
struct berval *octet_str;
+ long rid;
+ LDAP_STAILQ_ENTRY(sync_cookie) sc_next;
};
-/*
- * syncinfo structure for syncrepl
- */
+LDAP_STAILQ_HEAD( slap_sync_cookie_s, sync_cookie );
+
typedef struct syncinfo_s {
-// struct slap_conn *si_conn;
struct slap_backend_db *si_be;
-// struct slap_entry *si_e;
-// void *si_ctx;
- unsigned int si_id;
+ long si_rid;
char *si_provideruri;
BerVarray si_provideruri_bv;
#define SYNCINFO_TLS_OFF 0
char **si_attrs;
int si_type;
time_t si_interval;
-// struct sync_cookie *si_syncCookie;
struct sync_cookie si_syncCookie;
int si_manageDSAit;
int si_slimit;
int si_tlimit;
-// struct berval *si_syncUUID;
-// struct berval *si_syncUUID_ndn;
struct berval si_syncUUID_ndn;
Avlnode *si_presentlist;
- int si_sync_mode;
LDAP *si_ld;
LDAP_LIST_HEAD(np, nonpresent_entry) si_nonpresentlist;
+ LDAP_STAILQ_ENTRY( syncinfo_s ) si_next;
} syncinfo_t;
struct slap_backend_db {
ldap_pvt_thread_mutex_t be_pcl_mutex;
struct berval be_context_csn;
ldap_pvt_thread_mutex_t be_context_csn_mutex;
- syncinfo_t *be_syncinfo; /* For syncrepl */
+ LDAP_STAILQ_HEAD( be_si, syncinfo_s ) be_syncinfo; /* For syncrepl */
};
struct slap_conn;
#define SLAP_SYNC_PERSIST (0x2)
#define SLAP_SYNC_REFRESH_AND_PERSIST (0x3)
struct sync_cookie o_sync_state;
+ int o_sync_rhint;
struct berval o_sync_cid;
int o_sync_slog_size;
struct berval o_sync_csn;