]> git.sur5r.net Git - openldap/blobdiff - servers/slurpd/slurp.h
Removed active_threads count and associated mutex/cond. Replaced with
[openldap] / servers / slurpd / slurp.h
index efc9856502657393397c8f708e8a259275e40b78..26368bd4876fa2e1c4ffc08afedee795f49ceaf7 100644 (file)
@@ -1,3 +1,4 @@
+/* $OpenLDAP$ */
 /*
  * Copyright (c) 1996 Regents of the University of Michigan.
  * All rights reserved.
 #ifndef _SLURPD_H_
 #define _SLURPD_H_
 
-#include "portable.h"
+#ifndef LDAP_SYSLOG
+#define LDAP_SYSLOG 1
+#endif
 
-#define LDAP_SYSLOG
-
-#include <ac/syslog.h>
 #include <ac/errno.h>
+#include <ac/param.h>
+#include <ac/signal.h>
+#include <ac/syslog.h>
+#include <ac/time.h>
 
-#include <sys/param.h>
+#include <sys/types.h>
 
-#include "lber.h"
-#include "ldap.h"
-#include "lthread.h"
-#include "ldapconfig.h"
+#include <ldap.h>
+
+#undef  ldap_debug
+#define ldap_debug slurp_debug
+#include "ldap_log.h"
+
+#include "ldap_pvt_thread.h"
+#include "ldap_defaults.h"
 #include "ldif.h"
 
 
@@ -80,6 +88,8 @@
 #define        T_DELETECTSTR           "delete"
 #define        T_DELETECT              6
 #define        T_MODRDNCTSTR           "modrdn"
+#define        T_MODDNCTSTR            "moddn"
+#define        T_RENAMECTSTR           "rename"
 #define        T_MODRDNCT              7
 
 #define        T_MODOPADDSTR           "add"
 #define        T_MODSEP                11
 
 #define        T_NEWRDNSTR             "newrdn"
-#define        T_DRDNFLAGSTR           "deleteoldrdn"
+#define        T_DELOLDRDNSTR  "deleteoldrdn"
+#define T_NEWSUPSTR            "newsuperior"
 
 #define        T_ERR                   -1
 
@@ -163,7 +174,8 @@ typedef struct rh {
  * Notes:
  *  - Private data should not be manipulated expect by Ri member functions.
  */
-typedef struct ri {
+typedef struct ri Ri;
+struct ri {
 
     /* Private data */
     char       *ri_hostname;           /* canonical hostname of replica */
@@ -178,12 +190,12 @@ typedef struct ri {
     struct stel        *ri_stel;               /* pointer to Stel for this replica */
     unsigned long
                ri_seq;                 /* seq number of last repl */
-    pthread_t  ri_tid;                 /* ID of thread for this replica */
+    ldap_pvt_thread_t  ri_tid;                 /* ID of thread for this replica */
 
     /* Member functions */
-    int                (*ri_process)();        /* process the next repl entry */
-    void       (*ri_wake)();           /* wake up a sleeping thread */
-} Ri;
+    int (*ri_process) LDAP_P(( Ri * ));        /* process the next repl entry */
+    void (*ri_wake)   LDAP_P(( Ri * ));        /* wake up a sleeping thread */
+};
     
 
 
@@ -203,16 +215,16 @@ typedef struct mi {
 
 
 
-
 /* 
  * Information about one particular replication entry.  Only routines in
  * re.c  and rq.c should touch the private data.  Other routines should
  * only use member functions.
  */
-typedef struct re {
+typedef struct re Re;
+struct re {
 
     /* Private data */
-    pthread_mutex_t
+    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 */
@@ -224,16 +236,16 @@ typedef struct re {
     struct re  *re_next;               /* pointer to next element */
 
     /* Public functions */
-    int        (*re_free)();           /* free an re struct */
-    struct re  *(*re_getnext)();       /* return next Re in linked list */
-    int                (*re_parse)();          /* parse a replication log entry */
-    int                (*re_write)();          /* write a replication log entry */
-    void       (*re_dump)();           /* debugging  - print contents */
-    int                (*re_lock)();           /* lock this re */
-    int                (*re_unlock)();         /* unlock this re */
-    int                (*re_decrefcnt)();      /* decrement the refcnt */
-    int                (*re_getrefcnt)();      /* get the refcnt */
-} Re;
+    int        (*re_free)    LDAP_P(( Re * )); /* free an re struct */
+    Re *(*re_getnext) LDAP_P(( Re * ));        /* return next Re in linked list */
+    int (*re_parse) LDAP_P(( Re *, char * )); /* parse replication log entry */
+    int (*re_write) LDAP_P(( Ri *, Re *, FILE * )); /* write repl. log entry */
+    void (*re_dump)  LDAP_P(( Re *, FILE * )); /* debugging - print contents */
+    int (*re_lock)   LDAP_P(( Re * ));   /* lock this re */
+    int (*re_unlock) LDAP_P(( Re * ));   /* unlock this re */
+    int (*re_decrefcnt) LDAP_P(( Re * )); /* decrement the refcnt */
+    int (*re_getrefcnt) LDAP_P(( Re * )); /* get the refcnt */
+};
 
 
 
@@ -246,7 +258,8 @@ typedef struct re {
  * variable so routines in ri.c can use it as a mutex for the
  * rq_more condition variable.
  */
-typedef struct rq {
+typedef struct rq Rq;
+struct rq {
 
     /* Private data */
     Re         *rq_head;               /* pointer to head */
@@ -256,25 +269,24 @@ typedef struct rq {
     time_t     rq_lasttrim;            /* Last time we trimmed file */
     
     /* Public data */
-    pthread_mutex_t
+    ldap_pvt_thread_mutex_t
                rq_mutex;               /* mutex for whole queue */
-    pthread_cond_t
+    ldap_pvt_thread_cond_t
                rq_more;                /* condition var - more work added */
 
     /* Member functions */
-    Re         *(*rq_gethead)();       /* get the element at head */
-    Re         *(*rq_getnext)();       /* get the next element */
-    int                (*rq_delhead)();        /* delete the element at head */
-    int                (*rq_add)();            /* add at tail */
-    void       (*rq_gc)();             /* garbage-collect queue */
-    int                (*rq_lock)();           /* lock the queue */
-    int                (*rq_unlock)();         /* unlock the queue */
-    int                (*rq_needtrim)();       /* see if queue needs trimming */
-    int                (*rq_write)();          /* write Rq contents to a file */
-    int                (*rq_getcount)();       /* return queue counts */
-    void       (*rq_dump)();           /* debugging  - print contents */
-} Rq;
-
+    Re * (*rq_gethead) LDAP_P(( Rq * )); /* get the element at head */
+    Re * (*rq_getnext) LDAP_P(( Re * )); /* get the next element */
+    int         (*rq_delhead)  LDAP_P(( Rq * )); /* delete the element at head */
+    int         (*rq_add)      LDAP_P(( Rq *, char * )); /* add at tail */
+    void (*rq_gc)      LDAP_P(( Rq * )); /* garbage-collect queue */
+    int         (*rq_lock)     LDAP_P(( Rq * )); /* lock the queue */
+    int         (*rq_unlock)   LDAP_P(( Rq * )); /* unlock the queue */
+    int         (*rq_needtrim) LDAP_P(( Rq * )); /* see if queue needs trimming */
+    int         (*rq_write)    LDAP_P(( Rq *, FILE * )); /*write Rq contents to file*/
+    int         (*rq_getcount) LDAP_P(( Rq *, int )); /* return queue counts */
+    void (*rq_dump)    LDAP_P(( Rq * )); /* debugging - print contents */
+};
 
 
 /*
@@ -300,10 +312,10 @@ typedef struct stel {
  * if present, uses the timestamps to avoid "replaying" replications
  * which have already been sent to a given replica.
  */
-typedef struct st {
-
+typedef struct st St;
+struct st {
     /* Private data */
-    pthread_mutex_t
+    ldap_pvt_thread_mutex_t
                st_mutex;               /* mutex to serialize access */
     Stel       **st_data;              /* array of pointers to Stel structs */
     int                st_nreplicas;           /* number of repl hosts */
@@ -312,13 +324,13 @@ typedef struct st {
     FILE       *st_lfp;                /* lockfile fp */
 
     /* Public member functions */
-    int                (*st_update)();         /* update the entry for a host */
-    Stel       *(*st_add)();           /* add a new repl host */
-    int                (*st_write)();          /* write status to disk */
-    int                (*st_read)();           /* read status info from disk */
-    int                (*st_lock)();           /* read status info from disk */
-    int                (*st_unlock)();         /* read status info from disk */
-} St;
+    int  (*st_update) LDAP_P(( St *, Stel*, Re* ));/*update entry for a host*/
+    Stel*(*st_add)    LDAP_P(( St *, Ri * ));     /*add a new repl host*/
+    int  (*st_write)  LDAP_P(( St * ));        /* write status to disk */
+    int  (*st_read)   LDAP_P(( St * ));        /* read status info from disk */
+    int  (*st_lock)   LDAP_P(( St * ));        /* read status info from disk */
+    int  (*st_unlock) LDAP_P(( St * ));        /* read status info from disk */
+};
 
 #if defined( HAVE_LWP )
 typedef struct tl {
@@ -333,8 +345,6 @@ typedef struct tsl {
 } tsl_t;
 #endif /* HAVE_LWP */
 
-    
-
 /* 
  * Public functions used to instantiate and initialize queue objects.
  */
@@ -342,7 +352,8 @@ extern int Ri_init LDAP_P(( Ri **ri ));
 extern int Rq_init LDAP_P(( Rq **rq ));
 extern int Re_init LDAP_P(( Re **re ));
 
+#include "proto-slurp.h"
+
 LDAP_END_DECL
 
 #endif /* _SLURPD_H_ */
-