X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fproto-slap.h;h=5c29a9cf75a0ec1e03e35e4c18328fdd1da0747d;hb=56bbc0b4860c716b4a21f98c2f0eba9a7a70b765;hp=d8c33673a615e5b6a3b89dfd7fc3ba4fc0ebd634;hpb=b7bbc7504d14e2d1c18f5e9392f644d94bf91f08;p=openldap diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index d8c33673a6..5c29a9cf75 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -1,3 +1,7 @@ +/* + * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ #ifndef _PROTO_SLAP #define _PROTO_SLAP @@ -13,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 )); @@ -40,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 )); @@ -57,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 */ @@ -70,8 +79,9 @@ void ava_free LDAP_P(( Ava *ava, int freeit )); int backend_init LDAP_P((void)); int backend_add LDAP_P((BackendInfo *aBackendInfo)); -int backend_startup LDAP_P((int dbnum)); -int backend_shutdown LDAP_P((int dbnum)); +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 )); @@ -98,6 +108,12 @@ extern int backend_group LDAP_P((Backend *be, 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 */ @@ -119,6 +135,7 @@ 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 @@ -128,6 +145,8 @@ int get_ctrls LDAP_P(( Operation *op, int senderrors )); +int get_manageDSAit LDAP_P(( Operation *op )); + /* * config.c */ @@ -144,7 +163,11 @@ int connections_timeout_idle LDAP_P((time_t)); long connection_init LDAP_P(( ber_socket_t s, - const char* name, const char* addr)); + 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 )); @@ -166,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, @@ -179,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 )); @@ -221,9 +249,12 @@ int load_module LDAP_P(( const char* file_name, int argc, char *argv[] )); */ extern char *supportedExtensions[]; extern char *supportedControls[]; -extern char *supportedSASLMechanisms[]; -void monitor_info LDAP_P(( Connection *conn, Operation *op )); +void monitor_info LDAP_P(( + Connection *conn, + Operation *op, + char ** attrs, + int attrsonly )); /* * operation.c @@ -251,23 +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 LDAP_P(( char *type )); +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)); @@ -277,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 @@ -292,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 */ @@ -305,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 */ @@ -321,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; @@ -338,7 +413,9 @@ 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; @@ -362,22 +439,18 @@ 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 set_socket LDAP_P((struct sockaddr_in *addr)); +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((ber_socket_t s, int wake)); extern void slapd_clr_write LDAP_P((ber_socket_t s, int wake)); @@ -389,8 +462,17 @@ 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 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)); @@ -401,10 +483,8 @@ 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_exop LDAP_P((Connection *conn, Operation *op)); +extern int do_extended 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 ber_socket_t dtblsize;