X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fproto-slap.h;h=8fb59e21398f6a0431a07c65f5077976aa0f1514;hb=749404b83fa8dac94c75dc39dce8e5d80cda9a7f;hp=095b785bc964b25c0ff1b34bda5e97534f23161a;hpb=bf6c1e0ad2a9bb7e7ecce016aaa22cd5ffb87a1f;p=openldap diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index 095b785bc9..8fb59e2139 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -1,218 +1,308 @@ #ifndef _PROTO_SLAP #define _PROTO_SLAP +#include + /* * acl.c */ -int access_allowed( 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( Backend *be, Operation *op, Entry *e, - char *attr, char *edn, int nmatches, regmatch_t *matches ); -int acl_access_allowed( struct acl *a, Backend *be, Connection *conn, Entry *e, +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 ); + regmatch_t *matches )); -int acl_check_mods( 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 */ -void parse_acl( Backend *be, char *fname, int lineno, int argc, char **argv ); -char * access2str( int access ); -int str2access( char *str ); +void parse_acl LDAP_P(( Backend *be, char *fname, int lineno, int argc, char **argv )); +char * access2str LDAP_P(( int access )); +int str2access LDAP_P(( char *str )); /* * attr.c */ -void attr_free( Attribute *a ); -char * attr_normalize( char *s ); -int attr_merge_fast( Entry *e, char *type, struct berval **vals, int nvals, - int naddvals, int *maxvals, Attribute ***a ); -int attr_merge( Entry *e, char *type, struct berval **vals ); -Attribute * attr_find( Attribute *a, char *type ); -int attr_delete( Attribute **attrs, char *type ); -int attr_syntax( char *type ); -void attr_syntax_config( char *fname, int lineno, int argc, char **argv ); +void attr_free 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 )); +int attr_merge LDAP_P(( Entry *e, char *type, struct berval **vals )); +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 )); /* * ava.c */ -int get_ava( BerElement *ber, Ava *ava ); -void ava_free( Ava *ava, int freeit ); +int get_ava LDAP_P(( BerElement *ber, Ava *ava )); +void ava_free LDAP_P(( Ava *ava, int freeit )); /* * backend.c */ -Backend * new_backend( char *type ); -Backend * select_backend( char * dn ); -int be_issuffix( Backend *be, char *suffix ); -int be_isroot( Backend *be, char *dn ); -int be_isroot_pw( Backend *be, char *dn, struct berval *cred ); -void be_close(); +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 *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 */ -char * ch_malloc( unsigned long size ); -char * ch_realloc( char *block, unsigned long size ); -char * ch_calloc( unsigned long nelem, unsigned long size ); +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 */ -void charray_add( char ***a, char *s ); -void charray_merge( char ***a, char **s ); -void charray_free( char **array ); -int charray_inlist( char **a, char *s ); -char ** charray_dup( char **a ); -char ** str2charray( char *str, char *brkstr ); +void charray_add LDAP_P(( char ***a, char *s )); +void charray_merge LDAP_P(( char ***a, char **s )); +void charray_free LDAP_P(( char **array )); +int charray_inlist LDAP_P(( char **a, char *s )); +char ** charray_dup LDAP_P(( char **a )); +char ** str2charray LDAP_P(( char *str, char *brkstr )); /* * config.c */ -void read_config( char *fname, Backend **bep, FILE *pfp ); +int read_config LDAP_P(( char *fname )); /* * connection.c */ -void connection_activity( Connection *conn ); +void connection_activity LDAP_P(( Connection *conn )); /* * dn.c */ -char * dn_normalize( char *dn ); -char * dn_normalize_case( char *dn ); -char * dn_parent( Backend *be, char *dn ); -int dn_issuffix( char *dn, char *suffix ); -int dn_type( char *dn ); -char * dn_upcase( char *dn ); +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 )); /* * entry.c */ -Entry * str2entry( char *s ); -char * entry2str( Entry *e, int *len, int printid ); -void entry_free( Entry *e ); +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( Entry *e, int rw ); -int entry_rdwr_rlock( Entry *e ); -int entry_rdwr_wlock( Entry *e ); -int entry_rdwr_unlock( Entry *e, int rw ); -int entry_rdwr_runlock( Entry *e ); -int entry_rdwr_wunlock( Entry *e ); -int entry_rdwr_init( 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 */ -int get_filter( Connection *conn, BerElement *ber, Filter **filt, char **fstr ); -void filter_free( Filter *f ); -void filter_print( Filter *f ); +int get_filter LDAP_P(( Connection *conn, BerElement *ber, Filter **filt, char **fstr )); +void filter_free LDAP_P(( Filter *f )); +void filter_print LDAP_P(( Filter *f )); /* * filterentry.c */ -int test_filter( Backend *be, Connection *conn, Operation *op, Entry *e, - Filter *f ); +int test_filter LDAP_P(( Backend *be, Connection *conn, Operation *op, Entry *e, + Filter *f )); /* * lock.c */ -FILE * lock_fopen( char *fname, char *type, FILE **lfp ); -int lock_fclose( FILE *fp, FILE *lfp ); +FILE * lock_fopen LDAP_P(( char *fname, char *type, FILE **lfp )); +int lock_fclose LDAP_P(( FILE *fp, FILE *lfp )); /* * monitor.c */ -void monitor_info( Connection *conn, Operation *op ); +void monitor_info LDAP_P(( Connection *conn, Operation *op )); /* * operation.c */ -void op_free( Operation *op ); -Operation * op_add( Operation **olist, BerElement *ber, unsigned long msgid, - unsigned long tag, char *dn, int id, int connid ); -void op_delete( Operation **olist, Operation *op ); +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 slap_op_delete LDAP_P(( Operation **olist, Operation *op )); /* * phonetic.c */ -char * first_word( char *s ); -char * next_word( char *s ); -char * word_dup( char *w ); -char * phonetic( char *s ); +char * first_word LDAP_P(( char *s )); +char * next_word LDAP_P(( char *s )); +char * word_dup LDAP_P(( char *w )); +char * phonetic LDAP_P(( char *s )); /* * repl.c */ -void replog( Backend *be, int optype, char *dn, void *change, int flag ); +void replog LDAP_P(( Backend *be, int optype, char *dn, void *change, int flag )); /* * result.c */ -void send_ldap_result( Connection *conn, Operation *op, int err, char *matched, - char *text ); -void send_ldap_search_result( Connection *conn, Operation *op, int err, - char *matched, char *text, int nentries ); -void close_connection( Connection *conn, int opconnid, int opid ); +void send_ldap_result LDAP_P(( Connection *conn, Operation *op, int err, char *matched, + 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( Entry *e ); +int oc_schema_check LDAP_P(( Entry *e )); /* * schemaparse.c */ -void parse_oc( Backend *be, char *fname, int lineno, int argc, char **argv ); +void parse_oc LDAP_P(( Backend *be, char *fname, int lineno, int argc, char **argv )); /* * str2filter.c */ -Filter * str2filter( char *str ); +Filter * str2filter LDAP_P(( char *str )); /* * value.c */ -int value_add_fast( struct berval ***vals, struct berval **addvals, int nvals, - int naddvals, int *maxvals ); -int value_add( struct berval ***vals, struct berval **addvals ); -void value_normalize( char *s, int syntax ); -int value_cmp( struct berval *v1, struct berval *v2, int syntax, - int normalize ); -int value_ncmp( struct berval *v1, struct berval *v2, int syntax, int len, - int normalize ); -int value_find( struct berval **vals, struct berval *v, int syntax, - int normalize ); +int value_add_fast LDAP_P(( struct berval ***vals, struct berval **addvals, int nvals, + int naddvals, int *maxvals )); +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_find LDAP_P(( struct berval **vals, struct berval *v, int syntax, + int normalize )); /* * suffixAlias.c */ -char *suffixAlias ( char *dn, Operation *op, Backend *be ); +char *suffixAlias LDAP_P(( char *dn, Operation *op, Backend *be )); + +/* + * Other... + */ + +extern char **g_argv; +extern char *default_referral; +extern char *replogfile; +extern 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_schemacheck; +extern int lber_debug; +extern int ldap_syslog; +extern int num_conns; +extern long num_bytes_sent; +extern long num_entries_sent; +extern long ops_completed; +extern long ops_initiated; + +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 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)); +extern void do_bind LDAP_P((Connection *conn, Operation *op)); +extern void do_compare LDAP_P((Connection *conn, Operation *op)); +extern void do_delete LDAP_P((Connection *conn, Operation *op)); +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 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 #endif /* _proto_slap */ +