]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/proto-slap.h
Update of back-bdb2 to KDZ's new entry lock schema.
[openldap] / servers / slapd / proto-slap.h
index 2d26a5cb4e1921d9cb791a8faca3ce5136353a82..8fb59e21398f6a0431a07c65f5077976aa0f1514 100644 (file)
@@ -7,11 +7,14 @@
  * acl.c
  */
 
-int access_allowed LDAP_P(( Backend *be, Connection *conn, Operation *op, Entry *e,
-       char *attr, struct berval *val, char *dn, int  access ));
+int access_allowed LDAP_P(( Backend *be, Connection *conn,
+       Operation *op, Entry *e,
+       char *attr, struct berval *val, int access ));
+
+struct acl * acl_get_applicable LDAP_P(( Backend *be,
+       Operation *op, Entry *e,
+       char *attr, int nmatches, regmatch_t *matches ));
 
-struct acl * acl_get_applicable LDAP_P(( Backend *be, Operation *op, Entry *e,
-       char *attr, char *edn, int nmatches, regmatch_t *matches ));
 int acl_access_allowed LDAP_P(( struct acl *a, Backend *be, Connection *conn, Entry *e,
        struct berval *val, Operation *op, int  access, char *edn,
        regmatch_t *matches ));
@@ -55,12 +58,27 @@ void ava_free LDAP_P(( Ava *ava, int freeit ));
  * backend.c
  */
 
-Backend * new_backend LDAP_P(( char *type ));
-Backend * select_backend LDAP_P(( char * dn ));
+int backend_init LDAP_P((void));
+int backend_startup LDAP_P((int dbnum));
+int backend_shutdown LDAP_P((int dbnum));
+int backend_destroy LDAP_P((void));
+
+BackendInfo * backend_info LDAP_P(( char *type ));
+BackendDB * backend_db_init LDAP_P(( char *type ));
+
+BackendDB * select_backend LDAP_P(( char * dn ));
+
 int be_issuffix LDAP_P(( Backend *be, char *suffix ));
-int be_isroot LDAP_P(( Backend *be, char *dn ));
-int be_isroot_pw LDAP_P(( Backend *be, char *dn, struct berval *cred ));
-void be_close LDAP_P(( void ));
+int be_isroot LDAP_P(( Backend *be, char *ndn ));
+int be_isroot_pw LDAP_P(( Backend *be, char *ndn, struct berval *cred ));
+char* be_root_dn LDAP_P(( Backend *be ));
+
+extern int     backend_unbind LDAP_P((Connection *conn, Operation *op));
+
+extern int     backend_group LDAP_P((Backend *be,
+       Entry *target,
+       char *gr_ndn, char *op_ndn,
+       char *objectclassValue, char *groupattrName));
 
 /*
  * ch_malloc.c
@@ -86,7 +104,7 @@ char ** str2charray LDAP_P(( char *str, char *brkstr ));
  * config.c
  */
 
-void read_config LDAP_P(( char *fname, Backend **bep, FILE *pfp ));
+int read_config LDAP_P(( char *fname ));
 
 /*
  * connection.c
@@ -101,6 +119,7 @@ void connection_activity LDAP_P(( Connection *conn ));
 char * dn_normalize LDAP_P(( char *dn ));
 char * dn_normalize_case LDAP_P(( char *dn ));
 char * dn_parent LDAP_P(( Backend *be, char *dn ));
+char * dn_rdn LDAP_P(( Backend *be, char *dn ));
 int dn_issuffix LDAP_P(( char *dn, char *suffix ));
 int dn_type LDAP_P(( char *dn ));
 char * dn_upcase LDAP_P(( char *dn ));
@@ -113,13 +132,9 @@ Entry * str2entry LDAP_P(( char    *s ));
 char * entry2str LDAP_P(( Entry *e, int *len, int printid ));
 void entry_free LDAP_P(( Entry *e ));
 
-int entry_rdwr_lock LDAP_P(( Entry *e, int rw ));
-int entry_rdwr_rlock LDAP_P(( Entry *e ));
-int entry_rdwr_wlock LDAP_P(( Entry *e ));
-int entry_rdwr_unlock LDAP_P(( Entry *e, int rw ));
-int entry_rdwr_runlock LDAP_P(( Entry *e ));
-int entry_rdwr_wunlock LDAP_P(( Entry *e ));
-int entry_rdwr_init LDAP_P(( Entry *e ));
+int entry_cmp LDAP_P(( Entry *a, Entry *b ));
+int entry_dn_cmp LDAP_P(( Entry *a, Entry *b ));
+int entry_id_cmp LDAP_P(( Entry *a, Entry *b ));
 
 /*
  * filter.c
@@ -153,10 +168,11 @@ void monitor_info LDAP_P(( Connection *conn, Operation *op ));
  * operation.c
  */
 
-void op_free LDAP_P(( Operation *op ));
-Operation * op_add LDAP_P(( Operation **olist, BerElement *ber, unsigned long msgid,
+void slap_op_free LDAP_P(( Operation *op ));
+Operation * slap_op_add LDAP_P(( Operation **olist,
+       BerElement *ber, unsigned long msgid,
        unsigned long tag, char *dn, int id, int connid ));
-void op_delete LDAP_P(( Operation **olist, Operation *op ));
+void slap_op_delete LDAP_P(( Operation **olist, Operation *op ));
 
 /*
  * phonetic.c
@@ -241,21 +257,33 @@ extern long               num_bytes_sent;
 extern long            num_entries_sent;
 extern long            ops_completed;
 extern long            ops_initiated;
-extern pthread_mutex_t active_threads_mutex;
-extern pthread_mutex_t currenttime_mutex;
-extern pthread_mutex_t entry2str_mutex;
-extern pthread_mutex_t new_conn_mutex;
-extern pthread_mutex_t num_sent_mutex;
-extern pthread_mutex_t ops_mutex;
-extern pthread_mutex_t replog_mutex;
-extern pthread_t       listener_tid;
+
+extern ldap_pvt_thread_mutex_t active_threads_mutex;
+extern ldap_pvt_thread_cond_t  active_threads_cond;
+
+extern ldap_pvt_thread_mutex_t currenttime_mutex;
+extern ldap_pvt_thread_mutex_t entry2str_mutex;
+extern ldap_pvt_thread_mutex_t new_conn_mutex;
+extern ldap_pvt_thread_mutex_t num_sent_mutex;
+extern ldap_pvt_thread_mutex_t ops_mutex;
+extern ldap_pvt_thread_mutex_t replog_mutex;
+#ifdef SLAPD_CRYPT
+extern ldap_pvt_thread_mutex_t crypt_mutex;
+#endif
+extern ldap_pvt_thread_t       listener_tid;
 extern struct acl      *global_acl;
 extern struct objclass *global_oc;
 extern time_t          currenttime;
 
-extern int     be_group LDAP_P((Backend *be, char *bdn, char *edn, char *objectclassValue, char *groupattrName));
-extern void    init LDAP_P((void));
-extern void    be_unbind LDAP_P((Connection *conn, Operation *op));
+extern int     slap_init LDAP_P((int mode, char* name));
+extern int     slap_startup LDAP_P((int dbnum));
+extern int     slap_shutdown LDAP_P((int dbnum));
+extern int     slap_destroy LDAP_P((void));
+
+extern void * slapd_daemon LDAP_P((void *port));
+extern void    slap_set_shutdown LDAP_P((int sig));
+extern void    slap_do_nothing   LDAP_P((int sig));
+
 extern void    config_info LDAP_P((Connection *conn, Operation *op));
 extern void    do_abandon LDAP_P((Connection *conn, Operation *op));
 extern void    do_add LDAP_P((Connection *conn, Operation *op));
@@ -266,10 +294,7 @@ extern void        do_modify LDAP_P((Connection *conn, Operation *op));
 extern void    do_modrdn LDAP_P((Connection *conn, Operation *op));
 extern void    do_search LDAP_P((Connection *conn, Operation *op));
 extern void    do_unbind LDAP_P((Connection *conn, Operation *op));
-extern void *  slapd_daemon LDAP_P((void *port));
 
-extern int             nbackends;
-extern Backend         *backends;
 extern int send_search_entry LDAP_P((Backend *be, Connection *conn, Operation *op, Entry *e, char **attrs, int attrsonly));
 extern int str2result LDAP_P(( char *s, int *code, char **matched, char **info ));
 
@@ -279,39 +304,5 @@ extern int         dtblsize;
 extern time_t          starttime;
 #endif
 
-#ifdef SLAPD_LDBM
-extern int  ldbm_back_bind   LDAP_P((Backend *be, Connection *c, Operation *o, char *dn, int method, struct berval *cred ));
-extern void ldbm_back_unbind LDAP_P((Backend *be, Connection *c, Operation *o ));
-extern int  ldbm_back_search LDAP_P((Backend *be, Connection *c, Operation *o, char *base, int scope, int deref, int slimit, int tlimit, Filter *f, char *filterstr, char **attrs, int attrsonly));
-extern int  ldbm_back_compare LDAP_P((Backend *be, Connection *c, Operation *o, char *dn, Ava *ava));
-extern int  ldbm_back_modify LDAP_P((Backend *be, Connection *c, Operation *o, char *dn, LDAPModList *ml));
-extern int  ldbm_back_modrdn LDAP_P((Backend *be, Connection *c, Operation *o, char *dn, char *newrdn, int deleteoldrdn ));
-extern int  ldbm_back_add    LDAP_P((Backend *be, Connection *c, Operation *o, Entry *e));
-extern int  ldbm_back_delete LDAP_P((Backend *be, Connection *c, Operation *o, char *dn));
-extern void ldbm_back_abandon LDAP_P((Backend *be, Connection *c, Operation *o, int msgid));
-extern void ldbm_back_config LDAP_P((Backend *be, char *fname, int lineno, int argc, char **argv ));
-extern void ldbm_back_init   LDAP_P((Backend *be));
-extern void ldbm_back_close  LDAP_P((Backend *be));
-extern int  ldbm_back_group  LDAP_P((Backend *be, char *bdn, char *edn, char *objectclassValue, char *groupattrName ));
-#endif
-
-#ifdef SLAPD_PASSWD
-extern int  passwd_back_search LDAP_P((Backend *be, Connection *c, Operation *o, char *base, int scope, int deref, int slimit, int tlimit, Filter *f, char *filterstr, char **attrs, int attrsonly));
-extern void passwd_back_config LDAP_P((Backend *be, char *fname, int lineno, int argc, char **argv ));
-#endif
-
-#ifdef SLAPD_SHELL
-extern int  shell_back_bind   LDAP_P((Backend *be, Connection *c, Operation *o, char *dn, int method, struct berval *cred ));
-extern void shell_back_unbind LDAP_P((Backend *be, Connection *c, Operation *o ));
-extern int  shell_back_search LDAP_P((Backend *be, Connection *c, Operation *o, char *base, int scope, int deref, int slimit, int tlimit, Filter *f, char *filterstr, char **attrs, int attrsonly));
-extern int  shell_back_compare LDAP_P((Backend *be, Connection *c, Operation *o, char *dn, Ava *ava));
-extern int  shell_back_modify LDAP_P((Backend *be, Connection *c, Operation *o, char *dn, LDAPModList *m));
-extern int  shell_back_modrdn LDAP_P((Backend *be, Connection *c, Operation *o, char *dn, char *newrdn, int deleteoldrdn ));
-extern int  shell_back_add    LDAP_P((Backend *be, Connection *c, Operation *o, Entry *e));
-extern int  shell_back_delete LDAP_P((Backend *be, Connection *c, Operation *o, char *dn));
-extern void shell_back_abandon LDAP_P((Backend *be, Connection *c, Operation *o, int msgid));
-extern void shell_back_config LDAP_P((Backend *be, char *fname, int lineno, int argc, char **argv ));
-extern void shell_back_init   LDAP_P((Backend *be));
-#endif
-
 #endif /* _proto_slap */
+