X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslurpd%2Fslurp.h;h=9a125c63f71f80a2ffeeb7399c8c20bd6c1825d6;hb=59d4b38a7c9247d13bbff43c73c253929e348fdf;hp=6dcd42554f001182394137ce000cbaa1ddc49414;hpb=ece9bdb0ebee4682ac52b147de9b3f36bb38fa46;p=openldap
diff --git a/servers/slurpd/slurp.h b/servers/slurpd/slurp.h
index 6dcd42554f..9a125c63f7 100644
--- a/servers/slurpd/slurp.h
+++ b/servers/slurpd/slurp.h
@@ -1,10 +1,18 @@
/* $OpenLDAP$ */
-/*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software .
+ *
+ * Copyright 1998-2007 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 file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * .
*/
-/*
- * Copyright (c) 1996 Regents of the University of Michigan.
+/* Portions Copyright (c) 1996 Regents of the University of Michigan.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
@@ -14,13 +22,17 @@
* software without specific prior written permission. This software
* is provided ``as is'' without express or implied warranty.
*/
+/* ACKNOWLEDGEMENTS:
+ * This work was originally developed by the University of Michigan
+ * (as part of U-MICH LDAP).
+ */
/* slurp.h - Standalone Ldap Update Replication Daemon (slurpd) */
#ifndef _SLURPD_H_
#define _SLURPD_H_
-#ifndef LDAP_SYSLOG
+#if !defined(HAVE_WINSOCK) && !defined(LDAP_SYSLOG)
#define LDAP_SYSLOG 1
#endif
@@ -42,6 +54,32 @@
#include "ldap_defaults.h"
#include "ldif.h"
+#ifdef HAVE_WINSOCK
+ /* should be moved to portable.h.nt */
+#define ftruncate(a,b) _chsize(a,b)
+#define truncate(a,b) _lclose( _lcreat(a, 0))
+#define mkdir(a,b) mkdir(a)
+#define S_IRGRP 0
+#define S_IWGRP 0
+#ifndef F_OK
+#define F_OK 0
+#endif
+#ifndef W_OK
+#define W_OK 2
+#endif
+#ifndef R_OK
+#define R_OK 4
+#endif
+#ifndef S_IRUSR
+#define S_IRUSR S_IREAD
+#endif
+#ifndef S_IWUSR
+#define S_IWUSR S_IWRITE
+#endif
+#endif
+
+#undef SERVICE_NAME
+#define SERVICE_NAME OPENLDAP_PACKAGE "-slurpd"
/* Default directory for slurpd's private copy of replication logs */
#define DEFAULT_SLURPD_REPLICA_DIR LDAP_RUNDIR LDAP_DIRSEP "openldap-slurp"
@@ -55,9 +93,6 @@
/* slurpd dump file - contents of rq struct are written here (debugging) */
#define SLURPD_DUMPFILE LDAP_TMPDIR LDAP_DIRSEP "slurpd.dump"
-/* default srvtab file. Can be overridden */
-#define SRVTAB "/etc/srvtab"
-
/* Amount of time to sleep if no more work to do */
#define DEFAULT_NO_WORK_INTERVAL 3
@@ -75,11 +110,6 @@
#define TLS_ON 1
#define TLS_CRITICAL 2
-/* We support simple (plaintext password) and SASL authentication */
-#define AUTH_SIMPLE 1
-#define AUTH_KERBEROS 2
-#define AUTH_SASL 3
-
/* Rejection records are prefaced with this string */
#define ERROR_STR "ERROR"
@@ -108,8 +138,10 @@
#define T_MODOPREPLACE 9
#define T_MODOPDELETESTR "delete"
#define T_MODOPDELETE 10
+#define T_MODOPINCREMENTSTR "increment"
+#define T_MODOPINCREMENT 11
#define T_MODSEPSTR "-"
-#define T_MODSEP 11
+#define T_MODSEP 12
#define T_NEWRDNSTR "newrdn"
#define T_DELOLDRDNSTR "deleteoldrdn"
@@ -119,22 +151,23 @@
/* Config file keywords */
#define HOSTSTR "host"
+#define URISTR "uri"
+#define ATTRSTR "attr"
#define SUFFIXSTR "suffix"
#define BINDDNSTR "binddn"
#define BINDMETHSTR "bindmethod"
-#define KERBEROSSTR "kerberos"
#define SIMPLESTR "simple"
#define SASLSTR "sasl"
#define CREDSTR "credentials"
#define OLDAUTHCSTR "bindprincipal"
#define AUTHCSTR "authcID"
#define AUTHZSTR "authzID"
-#define SRVTABSTR "srvtab"
#define SASLMECHSTR "saslmech"
#define REALMSTR "realm"
#define SECPROPSSTR "secprops"
+#define STARTTLSSTR "starttls"
#define TLSSTR "tls"
-#define TLSCRITICALSTR "critical"
+#define CRITICALSTR "critical"
#define REPLICA_SLEEP_TIME ( 10 )
@@ -144,7 +177,6 @@
#define BIND_ERR_OPEN 2
#define BIND_ERR_BAD_ATYPE 3
#define BIND_ERR_SIMPLE_FAILED 4
-#define BIND_ERR_KERBEROS_FAILED 5
#define BIND_ERR_BADRI 6
#define BIND_ERR_VERSION 7
#define BIND_ERR_REFERRALS 8
@@ -203,16 +235,16 @@ struct ri {
/* Private data */
char *ri_hostname; /* canonical hostname of replica */
int ri_port; /* port where slave slapd running */
+ char *ri_uri; /* e.g. "ldaps://ldap-1.example.com:636" */
LDAP *ri_ldp; /* LDAP struct for this replica */
int ri_tls; /* TLS: 0=no, 1=yes, 2=critical */
- int ri_bind_method; /* AUTH_SIMPLE or AUTH_KERBEROS */
+ int ri_bind_method; /* AUTH_SIMPLE or AUTH_SASL */
char *ri_bind_dn; /* DN to bind as when replicating */
char *ri_password; /* Password for any method */
char *ri_secprops; /* SASL security properties */
char *ri_realm; /* realm for any mechanism */
char *ri_authcId; /* authentication ID for any mechanism */
char *ri_authzId; /* authorization ID for any mechanism */
- char *ri_srvtab; /* srvtab file for kerberos bind */
char *ri_saslmech; /* SASL mechanism to use */
struct re *ri_curr; /* current repl entry being processed */
struct stel *ri_stel; /* pointer to Stel for this replica */
@@ -224,7 +256,6 @@ struct ri {
int (*ri_process) LDAP_P(( Ri * )); /* process the next repl entry */
void (*ri_wake) LDAP_P(( Ri * )); /* wake up a sleeping thread */
};
-
@@ -233,12 +264,10 @@ struct ri {
* be considered private to routines in re.c, and to routines in ri.c.
*/
typedef struct mi {
-
/* Private data */
char *mi_type; /* attr or type */
char *mi_val; /* value */
int mi_len; /* length of mi_val */
-
} Mi;
@@ -250,12 +279,11 @@ typedef struct mi {
*/
typedef struct re Re;
struct re {
-
/* Private data */
ldap_pvt_thread_mutex_t
re_mutex; /* mutex for this Re */
int re_refcnt; /* ref count, 0 = done */
- char *re_timestamp; /* timestamp of this re */
+ time_t re_timestamp; /* timestamp of this re */
int re_seq; /* sequence number */
Rh *re_replicas; /* array of replica info */
char *re_dn; /* dn of entry being modified */
@@ -325,7 +353,7 @@ struct rq {
typedef struct stel {
char *hostname; /* host name of replica */
int port; /* port number of replica */
- char last[ 64 ]; /* timestamp of last successful repl */
+ time_t last; /* timestamp of last successful repl */
int seq; /* Sequence number of last repl */
} Stel;