X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=servers%2Fslapd%2Fproto-slap.h;h=f0f671b1b43d7eb8880024db6588cb9a1e4ce2ee;hb=2c87d24f31d29bed606b443ef2d8e881b87207c7;hp=200782010f56a595d94785ba2c72940108ccc490;hpb=3952bc8e95a2b21aced14f890028f12d00e191fa;p=openldap diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index 200782010f..f0f671b1b4 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -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 )); @@ -32,6 +35,7 @@ int str2access LDAP_P(( char *str )); */ void attr_free LDAP_P(( Attribute *a )); +Attribute *attr_dup LDAP_P(( Attribute *a )); char * attr_normalize LDAP_P(( char *s )); int attr_merge_fast LDAP_P(( Entry *e, char *type, struct berval **vals, int nvals, int naddvals, int *maxvals, Attribute ***a )); @@ -41,6 +45,9 @@ int attr_delete LDAP_P(( Attribute **attrs, char *type )); int attr_syntax LDAP_P(( char *type )); void attr_syntax_config LDAP_P(( char *fname, int lineno, int argc, char **argv )); +void attrs_free LDAP_P(( Attribute *a )); +Attribute *attrs_dup LDAP_P(( Attribute *a )); + /* * ava.c */ @@ -55,8 +62,9 @@ void ava_free LDAP_P(( Ava *ava, int freeit )); Backend * new_backend LDAP_P(( char *type )); Backend * 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 )); +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 )); void be_close LDAP_P(( void )); /* @@ -66,6 +74,7 @@ void be_close LDAP_P(( void )); void * ch_malloc LDAP_P(( unsigned long size )); void * ch_realloc LDAP_P(( void *block, unsigned long size )); void * ch_calloc LDAP_P(( unsigned long nelem, unsigned long size )); +char * ch_strdup LDAP_P(( const char *string )); /* * charray.c @@ -97,10 +106,14 @@ 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 )); - +char * rdn_attr_value LDAP_P(( char * rdn )); +char * rdn_attr_type LDAP_P(( char * rdn )); +void build_new_dn LDAP_P(( char ** new_dn, char *e_dn, char * p_dn, + char * newrdn )); /* * entry.c */ @@ -143,16 +156,19 @@ int lock_fclose LDAP_P(( FILE *fp, FILE *lfp )); * monitor.c */ -void monitor_info LDAP_P(( Connection *conn, Operation *op )); +void monitor_info LDAP_P(( + Connection *conn, Operation *op, + char ** attrs, int attrsonly )); /* * 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 @@ -207,8 +223,6 @@ int value_add LDAP_P(( struct berval ***vals, struct berval **addvals )); void value_normalize LDAP_P(( char *s, int syntax )); int value_cmp LDAP_P(( struct berval *v1, struct berval *v2, int syntax, int normalize )); -int value_ncmp LDAP_P(( struct berval *v1, struct berval *v2, int syntax, int len, - int normalize )); int value_find LDAP_P(( struct berval **vals, struct berval *v, int syntax, int normalize )); @@ -240,22 +254,40 @@ 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_mutex_t strtok_mutex; + +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 int be_group LDAP_P((Backend *be, Entry *target, + char *gr_ndn, char *op_ndn, + char *objectclassValue, char *groupattrName)); extern void init LDAP_P((void)); extern void be_unbind LDAP_P((Connection *conn, Operation *op)); -extern void config_info LDAP_P((Connection *conn, Operation *op)); + +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, + char ** attrs, int attrsonly )); + extern void do_abandon LDAP_P((Connection *conn, Operation *op)); extern void do_add LDAP_P((Connection *conn, Operation *op)); extern void do_bind LDAP_P((Connection *conn, Operation *op)); @@ -279,7 +311,9 @@ 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 int ldbm_back_bind LDAP_P((Backend *be, + Connection *c, Operation *o, + char *dn, int method, struct berval *cred, char** edn )); 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)); @@ -291,7 +325,9 @@ extern void ldbm_back_abandon LDAP_P((Backend *be, Connection *c, Operation *o, 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 )); +extern int ldbm_back_group LDAP_P((Backend *be, Entry *target, + char *gr_ndn, char *op_ndn, + char *objectclassValue, char *groupattrName )); #endif #ifdef SLAPD_PASSWD @@ -300,7 +336,9 @@ extern void passwd_back_config LDAP_P((Backend *be, char *fname, int lineno, int #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 int shell_back_bind LDAP_P((Backend *be, + Connection *c, Operation *o, + char *dn, int method, struct berval *cred, char** edn )); 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)); @@ -314,3 +352,4 @@ extern void shell_back_init LDAP_P((Backend *be)); #endif #endif /* _proto_slap */ +