X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fproto-slap.h;h=5c29a9cf75a0ec1e03e35e4c18328fdd1da0747d;hb=56bbc0b4860c716b4a21f98c2f0eba9a7a70b765;hp=9b7b48ea18b46e1af1a798ebb79bebe596c3c333;hpb=b0aea66d1dd3deec393c373ef53ee9adfaed761e;p=openldap diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index 9b7b48ea18..5c29a9cf75 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -1,8 +1,14 @@ +/* + * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ #ifndef _PROTO_SLAP #define _PROTO_SLAP #include +LDAP_BEGIN_DECL + /* * acl.c */ @@ -11,11 +17,12 @@ 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, +AccessControl * acl_get_applicable LDAP_P(( Backend *be, Operation *op, Entry *e, char *attr, int nmatches, regmatch_t *matches )); -int acl_access_allowed LDAP_P(( struct acl *a, Backend *be, Connection *conn, Entry *e, +int acl_access_allowed LDAP_P(( + AccessControl *a, Backend *be, Connection *conn, Entry *e, struct berval *val, Operation *op, int access, char *edn, regmatch_t *matches )); @@ -38,6 +45,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 )); @@ -55,6 +63,9 @@ 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 )); +void attrs_free LDAP_P(( Attribute *a )); +Attribute *attrs_dup LDAP_P(( Attribute *a )); + /* * ava.c */ @@ -67,8 +78,10 @@ void ava_free LDAP_P(( Ava *ava, int freeit )); */ int backend_init LDAP_P((void)); -int backend_startup LDAP_P((int dbnum)); -int backend_shutdown LDAP_P((int dbnum)); +int backend_add LDAP_P((BackendInfo *aBackendInfo)); +int backend_num LDAP_P((Backend *be)); +int backend_startup LDAP_P((Backend *be)); +int backend_shutdown LDAP_P((Backend *be)); int backend_destroy LDAP_P((void)); BackendInfo * backend_info LDAP_P(( char *type )); @@ -87,19 +100,30 @@ int be_entry_release_rw LDAP_P(( Backend *be, Entry *e, int rw )); 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)); +#ifdef SLAPD_SCHEMA_DN +/* temporary extern for temporary routine*/ +extern Attribute *backend_subschemasubentry( Backend * ); +#endif + + /* * 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 @@ -111,6 +135,17 @@ 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 )); +char * charray2str LDAP_P(( char **a )); + +/* + * controls.c + */ +int get_ctrls LDAP_P(( + Connection *co, + Operation *op, + int senderrors )); + +int get_manageDSAit LDAP_P(( Operation *op )); /* * config.c @@ -124,21 +159,27 @@ int read_config LDAP_P(( char *fname )); 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(( - int s, - const char* name, const char* addr)); + ber_socket_t s, + const char* url, + const char* dnsname, + const char* peername, + const char* sockname, + int use_tls )); void connection_closing LDAP_P(( Connection *c )); int connection_state_closing LDAP_P(( Connection *c )); +char *connection_state2str LDAP_P(( int state )); -int connection_write LDAP_P((int s)); -int connection_read LDAP_P((int s)); +int connection_write LDAP_P((ber_socket_t s)); +int connection_read LDAP_P((ber_socket_t s)); -long connections_nextid(void); +unsigned long connections_nextid(void); -Connection* connection_first LDAP_P((int *)); -Connection* connection_next LDAP_P((Connection *, int *)); +Connection* connection_first LDAP_P((ber_socket_t *)); +Connection* connection_next LDAP_P((Connection *, ber_socket_t *)); void connection_done LDAP_P((Connection *)); /* @@ -148,10 +189,15 @@ void connection_done LDAP_P((Connection *)); 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_subtree LDAP_P(( Backend *be, char *dn )); char * dn_rdn LDAP_P(( Backend *be, char *dn )); int dn_issuffix LDAP_P(( char *dn, char *suffix )); +#ifdef DNS_DN int dn_type LDAP_P(( char *dn )); -char * dn_upcase LDAP_P(( char *dn )); +#endif +char * str2upper LDAP_P(( char *str )); +char * str2lower LDAP_P(( char *str )); +int rdn_validate LDAP_P(( const char* str )); 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, @@ -161,7 +207,7 @@ void build_new_dn LDAP_P(( char ** new_dn, char *e_dn, char * p_dn, */ Entry * str2entry LDAP_P(( char *s )); -char * entry2str LDAP_P(( Entry *e, int *len, int printid )); +char * entry2str LDAP_P(( Entry *e, int *len )); void entry_free LDAP_P(( Entry *e )); int entry_cmp LDAP_P(( Entry *a, Entry *b )); @@ -190,11 +236,25 @@ int test_filter LDAP_P(( Backend *be, Connection *conn, Operation *op, Entry *e, FILE * lock_fopen LDAP_P(( char *fname, char *type, FILE **lfp )); int lock_fclose LDAP_P(( FILE *fp, FILE *lfp )); +/* + * module.c + */ + +#ifdef SLAPD_MODULES +int load_module LDAP_P(( const char* file_name, int argc, char *argv[] )); +#endif /* SLAPD_MODULES */ + /* * monitor.c */ +extern char *supportedExtensions[]; +extern char *supportedControls[]; -void monitor_info LDAP_P(( Connection *conn, Operation *op )); +void monitor_info LDAP_P(( + Connection *conn, + Operation *op, + char ** attrs, + int attrsonly )); /* * operation.c @@ -202,8 +262,8 @@ void monitor_info LDAP_P(( Connection *conn, Operation *op )); void slap_op_free LDAP_P(( Operation *op )); Operation * slap_op_alloc LDAP_P(( - BerElement *ber, unsigned long msgid, - unsigned long tag, long id )); + 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 )); @@ -222,22 +282,63 @@ char * phonetic LDAP_P(( char *s )); * repl.c */ -void replog LDAP_P(( Backend *be, int optype, char *dn, void *change, int flag )); +void replog LDAP_P(( Backend *be, Operation *op, char *dn, void *change )); /* * result.c */ -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 )); +struct berval **get_entry_referrals LDAP_P(( + Backend *be, Connection *conn, Operation *op, + Entry *e )); + +void send_ldap_result LDAP_P(( + Connection *conn, Operation *op, + int err, char *matched, char *text, + struct berval **refs, + LDAPControl **ctrls )); + +void send_ldap_disconnect LDAP_P(( + Connection *conn, Operation *op, + int err, char *text )); + +void send_search_result LDAP_P(( + Connection *conn, Operation *op, + int err, char *matched, char *text, + struct berval **refs, + LDAPControl **ctrls, + int nentries )); + +int send_search_reference LDAP_P(( + Backend *be, Connection *conn, Operation *op, + Entry *e, struct berval **refs, int scope, + LDAPControl **ctrls, + struct berval ***v2refs )); + +int send_search_entry LDAP_P(( + Backend *be, Connection *conn, Operation *op, + Entry *e, char **attrs, int attrsonly, + LDAPControl **ctrls )); + +int str2result LDAP_P(( char *s, + int *code, char **matched, char **info )); + +/* + * sasl.c + */ +extern char **supportedSASLMechanisms; + +int sasl_init(void); +int sasl_destroy(void); /* * schema.c */ int oc_schema_check LDAP_P(( Entry *e )); +int oc_check_operational_attr LDAP_P(( char *type )); +int oc_check_usermod_attr LDAP_P(( char *type )); +int oc_check_no_usermod_attr LDAP_P(( char *type )); 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)); @@ -247,6 +348,10 @@ int mr_add LDAP_P((LDAP_MATCHING_RULE *mr, slap_mr_normalize_func *normalize, sl void schema_info LDAP_P((Connection *conn, Operation *op, char **attrs, int attrsonly)); int schema_init LDAP_P((void)); +int is_entry_objectclass LDAP_P(( Entry *, char* objectclass )); +#define is_entry_alias(e) is_entry_objectclass((e), "ALIAS") +#define is_entry_referral(e) is_entry_objectclass((e), "REFERRAL") + /* * schemaparse.c @@ -262,6 +367,11 @@ char *scherr2str LDAP_P((int code)); Filter * str2filter LDAP_P(( char *str )); +/* + * suffixalias.c + */ +char *suffix_alias LDAP_P(( Backend *be, char *ndn )); + /* * value.c */ @@ -275,11 +385,6 @@ int value_cmp LDAP_P(( struct berval *v1, struct berval *v2, int syntax, int value_find LDAP_P(( struct berval **vals, struct berval *v, int syntax, int normalize )); -/* - * suffixAlias.c - */ -char *suffixAlias LDAP_P(( char *dn, Operation *op, Backend *be )); - /* * user.c */ @@ -291,7 +396,7 @@ void slap_init_user LDAP_P(( char *username, char *groupname )); * Other... */ -extern char *default_referral; +extern struct berval **default_referral; extern char *replogfile; extern const char Versionstr[]; extern int active_threads; @@ -300,13 +405,17 @@ 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 char *global_realm; extern int lber_debug; extern int ldap_syslog; extern ldap_pvt_thread_mutex_t num_sent_mutex; extern long num_bytes_sent; +extern long num_pdu_sent; extern long num_entries_sent; +extern long num_refs_sent; extern ldap_pvt_thread_mutex_t num_ops_mutex; extern long num_ops_completed; @@ -330,47 +439,56 @@ extern ldap_pvt_thread_mutex_t crypt_mutex; #endif extern ldap_pvt_thread_mutex_t gmtime_mutex; -extern struct acl *global_acl; +extern AccessControl *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)); +int slap_init LDAP_P((int mode, char* name)); +int slap_startup LDAP_P(( Backend *be )); +int slap_shutdown LDAP_P(( Backend *be )); +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 slapd_daemon_init( char *urls, int port, int tls_port ); +extern int slapd_daemon_destroy(void); +extern int slapd_daemon(void); -extern void slapd_set_write LDAP_P((int s, int wake)); -extern void slapd_clr_write LDAP_P((int s, int wake)); -extern void slapd_set_read LDAP_P((int s, int wake)); -extern void slapd_clr_read LDAP_P((int s, int wake)); +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((int 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)); -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 )); - -extern int dtblsize; +extern void config_info LDAP_P(( + Connection *conn, + Operation *op, + char ** attrs, + int attrsonly )); + +extern void root_dse_info LDAP_P(( + Connection *conn, + Operation *op, + char ** attrs, + int attrsonly )); + +extern int do_abandon LDAP_P((Connection *conn, Operation *op)); +extern int do_add LDAP_P((Connection *conn, Operation *op)); +extern int do_bind LDAP_P((Connection *conn, Operation *op)); +extern int do_compare LDAP_P((Connection *conn, Operation *op)); +extern int do_delete LDAP_P((Connection *conn, Operation *op)); +extern int do_modify LDAP_P((Connection *conn, Operation *op)); +extern int do_modrdn LDAP_P((Connection *conn, Operation *op)); +extern int do_search LDAP_P((Connection *conn, Operation *op)); +extern int do_unbind LDAP_P((Connection *conn, Operation *op)); +extern int do_extended LDAP_P((Connection *conn, Operation *op)); + + +extern ber_socket_t dtblsize; + +LDAP_END_DECL #endif /* _proto_slap */