X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fproto-slap.h;h=0d461d63b5df9b9ecb6932dec4ad29b69ac7746f;hb=e2b5b211558ee778f07954d3843b914f19f6c6b5;hp=cc9229e664d45f5d274f28e0d4104d522e67d94c;hpb=b5973eba5dff22ca31080e337388b0df514bac91;p=openldap diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index cc9229e664..0d461d63b5 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -3,21 +3,29 @@ #include +LDAP_BEGIN_DECL + /* * 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 )); -int acl_check_mods LDAP_P(( Backend *be, Connection *conn, Operation *op, Entry *e, - LDAPMod *mods )); +int acl_check_modlist LDAP_P(( Backend *be, + Connection *conn, + Operation *op, + Entry *e, + LDAPModList *ml )); /* * aclparse.c @@ -40,6 +48,14 @@ Attribute * attr_find LDAP_P(( Attribute *a, char *type )); 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 )); +AttributeType * at_find LDAP_P(( const char *name )); +int at_find_in_list LDAP_P(( AttributeType *sat, AttributeType **list )); +int at_append_to_list LDAP_P(( AttributeType *sat, AttributeType ***listp )); +int at_delete_from_list LDAP_P(( int pos, AttributeType ***listp )); +int at_fake_if_needed LDAP_P(( char *name )); +int at_schema_info LDAP_P(( Entry *e )); +int at_add LDAP_P(( LDAP_ATTRIBUTE_TYPE *at, const char **err )); +char * at_canonical_name LDAP_P(( char * a_type )); /* * ava.c @@ -52,21 +68,45 @@ 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 )); +int be_entry_release_rw LDAP_P(( Backend *be, Entry *e, int rw )); +#define be_entry_release_r( be, e ) be_entry_release_rw( be, e, 0 ) +#define be_entry_release_w( be, e ) be_entry_release_rw( be, e, 1 ) + + +extern int backend_unbind LDAP_P((Connection *conn, Operation *op)); + +extern int backend_connection_init LDAP_P((Connection *conn)); +extern int backend_connection_destroy LDAP_P((Connection *conn)); + +extern int backend_group LDAP_P((Backend *be, + Entry *target, + char *gr_ndn, char *op_ndn, + char *objectclassValue, char *groupattrName)); /* * ch_malloc.c */ -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 )); +void * ch_malloc LDAP_P(( ber_len_t size )); +void * ch_realloc LDAP_P(( void *block, ber_len_t size )); +void * ch_calloc LDAP_P(( ber_len_t nelem, ber_len_t size )); char * ch_strdup LDAP_P(( const char *string )); +void ch_free LDAP_P(( void * )); +#define free ch_free /* * charray.c @@ -83,13 +123,31 @@ 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 */ +int connections_init LDAP_P((void)); +int connections_shutdown LDAP_P((void)); +int connections_destroy LDAP_P((void)); +int connections_timeout_idle LDAP_P((time_t)); + +long connection_init LDAP_P(( + ber_socket_t s, + const char* name, const char* addr)); + +void connection_closing LDAP_P(( Connection *c )); +int connection_state_closing LDAP_P(( Connection *c )); + +int connection_write LDAP_P((ber_socket_t s)); +int connection_read LDAP_P((ber_socket_t s)); -void connection_activity LDAP_P(( Connection *conn )); +unsigned long connections_nextid(void); + +Connection* connection_first LDAP_P((ber_socket_t *)); +Connection* connection_next LDAP_P((Connection *, ber_socket_t *)); +void connection_done LDAP_P((Connection *)); /* * dn.c @@ -98,10 +156,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 */ @@ -110,13 +172,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 @@ -150,10 +208,14 @@ 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, - unsigned long tag, char *dn, int id, int connid )); -void op_delete LDAP_P(( Operation **olist, Operation *op )); +void slap_op_free LDAP_P(( Operation *op )); +Operation * slap_op_alloc LDAP_P(( + BerElement *ber, ber_int_t msgid, + ber_tag_t tag, ber_int_t id )); + +int slap_op_add LDAP_P(( Operation **olist, Operation *op )); +int slap_op_remove LDAP_P(( Operation **olist, Operation *op )); +Operation * slap_op_pop LDAP_P(( Operation **olist )); /* * phonetic.c @@ -178,20 +240,30 @@ void send_ldap_result LDAP_P(( Connection *conn, Operation *op, int err, char *m char *text )); void send_ldap_search_result LDAP_P(( Connection *conn, Operation *op, int err, char *matched, char *text, int nentries )); -void close_connection LDAP_P(( Connection *conn, int opconnid, int opid )); /* * schema.c */ int oc_schema_check LDAP_P(( Entry *e )); +ObjectClass *oc_find LDAP_P((const char *ocname)); +int oc_add LDAP_P((LDAP_OBJECT_CLASS *oc, const char **err)); +Syntax *syn_find LDAP_P((const char *synname)); +int syn_add LDAP_P((LDAP_SYNTAX *syn, slap_syntax_check_func *check, const char **err)); +MatchingRule *mr_find LDAP_P((const char *mrname)); +int mr_add LDAP_P((LDAP_MATCHING_RULE *mr, slap_mr_normalize_func *normalize, slap_mr_compare_func *compare, const char **err)); +void schema_info LDAP_P((Connection *conn, Operation *op, char **attrs, int attrsonly)); +int schema_init LDAP_P((void)); + /* * schemaparse.c */ -void parse_oc LDAP_P(( Backend *be, char *fname, int lineno, int argc, char **argv )); - +void parse_oc_old LDAP_P(( Backend *be, char *fname, int lineno, int argc, char **argv )); +void parse_oc LDAP_P(( char *fname, int lineno, char *line )); +void parse_at LDAP_P(( char *fname, int lineno, char *line )); +char *scherr2str LDAP_P((int code)); /* * str2filter.c */ @@ -216,44 +288,86 @@ int value_find LDAP_P(( struct berval **vals, struct berval *v, int syntax, */ char *suffixAlias LDAP_P(( char *dn, Operation *op, Backend *be )); +/* + * user.c + */ +#if defined(HAVE_PWD_H) && defined(HAVE_GRP_H) +void slap_init_user LDAP_P(( char *username, char *groupname )); +#endif + /* * Other... */ -extern char **g_argv; extern char *default_referral; extern char *replogfile; -extern char Versionstr[]; +extern const char Versionstr[]; extern int active_threads; extern int defsize; extern int deftime; extern int g_argc; extern int global_default_access; extern int global_lastmod; +extern int global_idletimeout; extern int global_schemacheck; extern int lber_debug; extern int ldap_syslog; -extern int num_conns; + +extern ldap_pvt_thread_mutex_t num_sent_mutex; 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 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 ldap_pvt_thread_mutex_t num_ops_mutex; +extern long num_ops_completed; +extern long num_ops_initiated; + +extern char *slapd_pid_file; +extern char *slapd_args_file; +extern char **g_argv; +extern time_t starttime; + +time_t slap_get_time LDAP_P((void)); + +extern ldap_pvt_thread_mutex_t active_threads_mutex; +extern ldap_pvt_thread_cond_t active_threads_cond; + +extern ldap_pvt_thread_mutex_t entry2str_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 gmtime_mutex; + +extern struct acl *global_acl; + +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)); + +struct sockaddr_in; + +struct slapd_args { + struct sockaddr_in *addr; + int tcps; +}; + +extern int slapd_daemon LDAP_P((struct slapd_args *args)); +extern int set_socket LDAP_P((struct sockaddr_in *addr)); + +extern void slapd_set_write LDAP_P((ber_socket_t s, int wake)); +extern void slapd_clr_write LDAP_P((ber_socket_t s, int wake)); +extern void slapd_set_read LDAP_P((ber_socket_t s, int wake)); +extern void slapd_clr_read LDAP_P((ber_socket_t s, int wake)); + +extern void slapd_remove LDAP_P((ber_socket_t s, int wake)); + +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 root_dse_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)); @@ -263,52 +377,13 @@ 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 )); -#if defined( SLAPD_MONITOR_DN ) -extern Connection *c; -extern int dtblsize; -extern time_t starttime; -#endif +extern ber_socket_t dtblsize; -#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, LDAPMod *m)); -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, LDAPMod *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 +LDAP_END_DECL #endif /* _proto_slap */ +