]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/proto-slap.h
Import changes from HEAD including
[openldap] / servers / slapd / proto-slap.h
index 27cf5cedffe305665cf49d7f8ba41a8fb8e96cdc..8c11f6aac49fb067d7211fb2fb2ecd3c450d1a8b 100644 (file)
@@ -77,8 +77,8 @@ LDAP_SLAPD_F (char *) access2str LDAP_P(( slap_access_t access ));
 LDAP_SLAPD_F (slap_access_t) str2access LDAP_P(( const char *str ));
 
 #define ACCESSMASK_MAXLEN      sizeof("unknown (+wrscan)")
-LDAP_SLAPD_F (char *) accessmask2str LDAP_P(( slap_access_mask_t mask, char* ));
-LDAP_SLAPD_F (slap_access_mask_t) str2accessmask LDAP_P(( const char *str ));
+LDAP_SLAPD_F (char *) accessmask2str LDAP_P(( slap_mask_t mask, char* ));
+LDAP_SLAPD_F (slap_mask_t) str2accessmask LDAP_P(( const char *str ));
 
 /*
  * at.c
@@ -90,7 +90,7 @@ LDAP_SLAPD_F (int) at_find_in_list LDAP_P(( AttributeType *sat, AttributeType **
 LDAP_SLAPD_F (int) at_append_to_list LDAP_P(( AttributeType *sat, AttributeType ***listp ));
 LDAP_SLAPD_F (int) at_delete_from_list LDAP_P(( int pos, AttributeType ***listp ));
 LDAP_SLAPD_F (int) at_schema_info LDAP_P(( Entry *e ));
-LDAP_SLAPD_F (int) at_add LDAP_P(( LDAP_ATTRIBUTE_TYPE *at, const char **err ));
+LDAP_SLAPD_F (int) at_add LDAP_P(( LDAPAttributeType *at, const char **err ));
 
 LDAP_SLAPD_F (int) is_at_subtype LDAP_P((
        AttributeType *sub,
@@ -147,11 +147,14 @@ LDAP_SLAPD_F (int) backend_destroy LDAP_P((void));
 LDAP_SLAPD_F (BackendInfo *) backend_info LDAP_P(( const char *type ));
 LDAP_SLAPD_F (BackendDB *) backend_db_init LDAP_P(( const char *type ));
 
-LDAP_SLAPD_F (BackendDB *) select_backend LDAP_P(( const char * dn ));
+LDAP_SLAPD_F (BackendDB *) select_backend LDAP_P((
+       const char * dn,
+       int manageDSAit ));
 
 LDAP_SLAPD_F (int) be_issuffix LDAP_P(( Backend *be, const char *suffix ));
 LDAP_SLAPD_F (int) be_isroot LDAP_P(( Backend *be, const char *ndn ));
-LDAP_SLAPD_F (int) be_isroot_pw LDAP_P(( Backend *be, const char *ndn, struct berval *cred ));
+LDAP_SLAPD_F (int) be_isroot_pw LDAP_P(( Backend *be,
+       Connection *conn, const char *ndn, struct berval *cred ));
 LDAP_SLAPD_F (char *) be_root_dn LDAP_P(( Backend *be ));
 LDAP_SLAPD_F (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 )
@@ -159,10 +162,11 @@ LDAP_SLAPD_F (int) be_entry_release_rw LDAP_P(( Backend *be, Entry *e, int rw ))
 
 LDAP_SLAPD_F (int) backend_unbind LDAP_P((Connection *conn, Operation *op));
 
-LDAP_SLAPD_F( int )    backend_check_controls LDAP_P((
+LDAP_SLAPD_F( int )    backend_check_restrictions LDAP_P((
        Backend *be,
        Connection *conn,
        Operation *op,
+       const void *opdata,
        const char **text ));
 
 LDAP_SLAPD_F( int )    backend_check_referrals LDAP_P((
@@ -252,7 +256,7 @@ LDAP_SLAPD_F (int) read_config LDAP_P(( const char *fname ));
  * index.c
  */
 LDAP_SLAPD_F (int) slap_index2prefix LDAP_P(( int indextype ));
-LDAP_SLAPD_F (int) slap_str2index LDAP_P(( const char *str, slap_index *idx ));
+LDAP_SLAPD_F (int) slap_str2index LDAP_P(( const char *str, slap_mask_t *idx ));
 
 /*
  * connection.c
@@ -268,7 +272,9 @@ LDAP_SLAPD_F (long) connection_init LDAP_P((
        const char* dnsname,
        const char* peername,
        const char* sockname,
-       int use_tls ));
+       int use_tls,
+       slap_ssf_t ssf,
+       char *id ));
 
 LDAP_SLAPD_F (void) connection_closing LDAP_P(( Connection *c ));
 LDAP_SLAPD_F (int) connection_state_closing LDAP_P(( Connection *c ));
@@ -283,6 +289,8 @@ LDAP_SLAPD_F (Connection *) connection_first LDAP_P((ber_socket_t *));
 LDAP_SLAPD_F (Connection *) connection_next LDAP_P((Connection *, ber_socket_t *));
 LDAP_SLAPD_F (void) connection_done LDAP_P((Connection *));
 
+LDAP_SLAPD_F (void) connection2anonymous LDAP_P((Connection *));
+
 /*
  * dn.c
  */
@@ -309,8 +317,11 @@ LDAP_SLAPD_F (int) entry_destroy LDAP_P((void));
 
 LDAP_SLAPD_F (Entry *) str2entry LDAP_P(( char *s ));
 LDAP_SLAPD_F (char *) entry2str LDAP_P(( Entry *e, int *len ));
-LDAP_SLAPD_F (void) entry_free LDAP_P(( Entry *e ));
 
+LDAP_SLAPD_F (int) entry_decode LDAP_P(( struct berval *bv, Entry **e ));
+LDAP_SLAPD_F (int) entry_encode LDAP_P(( Entry *e, struct berval **bv ));
+
+LDAP_SLAPD_F (void) entry_free LDAP_P(( Entry *e ));
 LDAP_SLAPD_F (int) entry_cmp LDAP_P(( Entry *a, Entry *b ));
 LDAP_SLAPD_F (int) entry_dn_cmp LDAP_P(( Entry *a, Entry *b ));
 LDAP_SLAPD_F (int) entry_id_cmp LDAP_P(( Entry *a, Entry *b ));
@@ -319,18 +330,7 @@ LDAP_SLAPD_F (int) entry_id_cmp LDAP_P(( Entry *a, Entry *b ));
  * extended.c
  */
 
-#define SLAPD_EXTOP_GETVERSION 0
-#define SLAPD_EXTOP_GETPROTO 1
-#define SLAPD_EXTOP_GETAUTH 2
-#define SLAPD_EXTOP_GETDN 3
-#define SLAPD_EXTOP_GETCLIENT 4
-
-typedef int (*SLAP_EXTOP_CALLBACK_FN) LDAP_P((
-       Connection *conn, Operation *op,
-       int msg, int arg, void *argp ));
-
 typedef int (*SLAP_EXTOP_MAIN_FN) LDAP_P((
-       SLAP_EXTOP_CALLBACK_FN,
        Connection *conn, Operation *op,
        const char * reqoid,
        struct berval * reqdata,
@@ -397,7 +397,9 @@ LDAP_SLAPD_F( int ) slap_modlist2mods(
        LDAPModList *ml,
        int update,
        Modifications **mods,
-       const char **text );
+       const char **text,
+       char *textbuf,
+       size_t textlen );
 
 LDAP_SLAPD_F( int ) slap_mods_opattrs(
        Operation *op,
@@ -526,16 +528,26 @@ LDAP_SLAPD_F (int) str2result LDAP_P(( char *s,
 /*
  * sasl.c
  */
-LDAP_SLAPD_F (char **) supportedSASLMechanisms;
 
-LDAP_SLAPD_F (int) sasl_init(void);
-LDAP_SLAPD_F (int) sasl_destroy(void);
-LDAP_SLAPD_F (int) sasl_errldap LDAP_P(( int ));
-LDAP_SLAPD_F (int) sasl_bind LDAP_P((
+LDAP_SLAPD_F (int) slap_sasl_init(void);
+LDAP_SLAPD_F (char *) slap_sasl_secprops( const char * );
+LDAP_SLAPD_F (int) slap_sasl_destroy(void);
+
+LDAP_SLAPD_F (int) slap_sasl_open( Connection *c );
+LDAP_SLAPD_F (char **) slap_sasl_mechs( Connection *c );
+
+LDAP_SLAPD_F (int) slap_sasl_external( Connection *c,
+       slap_ssf_t ssf, /* relative strength of external security */
+       char *authid ); /* asserted authenication id */
+
+LDAP_SLAPD_F (int) slap_sasl_reset( Connection *c );
+LDAP_SLAPD_F (int) slap_sasl_close( Connection *c );
+
+LDAP_SLAPD_F (int) slap_sasl_bind LDAP_P((
        Connection *conn, Operation *op, 
        const char *dn, const char *ndn,
        const char *mech, struct berval *cred,
-       char **edn ));
+       char **edn, slap_ssf_t *ssf ));
 
 /* oc.c */
 LDAP_SLAPD_F (int) oc_schema_info( Entry *e );
@@ -554,7 +566,7 @@ LDAP_SLAPD_F (ObjectClass *) oc_find LDAP_P((
        const char *ocname));
 
 LDAP_SLAPD_F (int) oc_add LDAP_P((
-       LDAP_OBJECT_CLASS *oc,
+       LDAPObjectClass *oc,
        const char **err));
 
 LDAP_SLAPD_F (int) is_object_subclass LDAP_P((
@@ -566,7 +578,7 @@ LDAP_SLAPD_F (Syntax *) syn_find LDAP_P((const char *synname));
 LDAP_SLAPD_F (Syntax *) syn_find_desc LDAP_P((const char *syndesc, int *slen));
 #ifdef SLAPD_BINARY_CONVERSION
 LDAP_SLAPD_F (int) syn_add LDAP_P((
-       LDAP_SYNTAX *syn,
+       LDAPSyntax *syn,
        unsigned flags,
        slap_syntax_validate_func *validate,
        slap_syntax_transform_func *normalize,
@@ -576,7 +588,7 @@ LDAP_SLAPD_F (int) syn_add LDAP_P((
        const char **err));
 #else
 LDAP_SLAPD_F (int) syn_add LDAP_P((
-       LDAP_SYNTAX *syn,
+       LDAPSyntax *syn,
        unsigned flags,
        slap_syntax_validate_func *validate,
        slap_syntax_transform_func *normalize,
@@ -585,21 +597,22 @@ LDAP_SLAPD_F (int) syn_add LDAP_P((
 #endif
 
 LDAP_SLAPD_F (MatchingRule *) mr_find LDAP_P((const char *mrname));
-LDAP_SLAPD_F (int) mr_add LDAP_P((LDAP_MATCHING_RULE *mr,
+LDAP_SLAPD_F (int) mr_add LDAP_P((LDAPMatchingRule *mr,
        unsigned usage,
        slap_mr_convert_func *convert,
        slap_mr_normalize_func *normalize,
        slap_mr_match_func *match,
        slap_mr_indexer_func *indexer,
        slap_mr_filter_func *filter,
+       MatchingRule * associated,
        const char **err));
 
 LDAP_SLAPD_F (int) register_syntax LDAP_P((
        char *desc,
        unsigned flags,
        slap_syntax_validate_func *validate,
-       slap_syntax_transform_func *ber2str,
-       slap_syntax_transform_func *str2ber ));
+       slap_syntax_transform_func *normalize,
+       slap_syntax_transform_func *pretty ));
 
 LDAP_SLAPD_F (int) register_matching_rule LDAP_P((
        char * desc,
@@ -608,7 +621,8 @@ LDAP_SLAPD_F (int) register_matching_rule LDAP_P((
        slap_mr_normalize_func *normalize,
        slap_mr_match_func *match,
        slap_mr_indexer_func *indexer,
-       slap_mr_filter_func *filter     ));
+       slap_mr_filter_func *filter,
+       const char *associated ));
 
 LDAP_SLAPD_F (int) schema_info LDAP_P(( Entry **entry, const char **text ));
 
@@ -653,7 +667,6 @@ LDAP_SLAPD_F (int) dscompare LDAP_P(( const char *s1, const char *s2del, char de
  */
 
 LDAP_SLAPD_F (int) starttls_extop LDAP_P((
-       SLAP_EXTOP_CALLBACK_FN,
        Connection *conn, Operation *op,
        const char * reqoid,
        struct berval * reqdata,
@@ -709,7 +722,6 @@ LDAP_SLAPD_F (void) slap_init_user LDAP_P(( char *username, char *groupname ));
  * passwd.c
  */
 LDAP_SLAPD_F (int) passwd_extop LDAP_P((
-       SLAP_EXTOP_CALLBACK_FN,
        Connection *conn, Operation *op,
        const char * reqoid,
        struct berval * reqdata,
@@ -720,6 +732,7 @@ LDAP_SLAPD_F (int) passwd_extop LDAP_P((
        struct berval *** refs ));
 
 LDAP_SLAPD_F (int) slap_passwd_check(
+       Connection                      *conn,
        Attribute                       *attr,
        struct berval           *cred );
 
@@ -749,6 +762,14 @@ LDAP_SLAPD_F (int) krbv4_ldap_auth();
 /*
  * Other...
  */
+#define SLAP_SB_MAX_INCOMING_DEFAULT (1<<18 - 1)
+LDAP_SLAPD_F (ber_len_t) sockbuf_max_incoming;
+
+LDAP_SLAPD_F (slap_mask_t)     global_restrictops;
+LDAP_SLAPD_F (slap_mask_t)     global_allows;
+LDAP_SLAPD_F (slap_mask_t)     global_disallows;
+LDAP_SLAPD_F (slap_mask_t)     global_requires;
+LDAP_SLAPD_F (slap_ssf_set_t)  global_ssf_set;
 
 LDAP_SLAPD_F (struct berval **)        default_referral;
 LDAP_SLAPD_F (char *)          replogfile;
@@ -757,14 +778,17 @@ LDAP_SLAPD_F (int)                defsize;
 LDAP_SLAPD_F (int)             deftime;
 LDAP_SLAPD_F (int)             g_argc;
 LDAP_SLAPD_F (slap_access_t)   global_default_access;
-LDAP_SLAPD_F (int)             global_readonly;
 LDAP_SLAPD_F (int)             global_lastmod;
 LDAP_SLAPD_F (int)             global_idletimeout;
 LDAP_SLAPD_F (int)             global_schemacheck;
+LDAP_SLAPD_F (char)            *global_host;
 LDAP_SLAPD_F (char)            *global_realm;
+LDAP_SLAPD_F (int)             sasl_external_x509dn_convert;
 LDAP_SLAPD_F (char)            *default_passwd_hash;
 LDAP_SLAPD_F (int)             lber_debug;
 LDAP_SLAPD_F (int)             ldap_syslog;
+LDAP_SLAPD_F (char *)  default_search_base;
+LDAP_SLAPD_F (char *)  default_search_nbase;
 
 LDAP_SLAPD_F (ldap_pvt_thread_mutex_t) num_sent_mutex;
 LDAP_SLAPD_F (long)            num_bytes_sent;
@@ -788,8 +812,8 @@ LDAP_SLAPD_F (ldap_pvt_thread_pool_t)       connection_pool;
 LDAP_SLAPD_F (ldap_pvt_thread_mutex_t) entry2str_mutex;
 LDAP_SLAPD_F (ldap_pvt_thread_mutex_t) replog_mutex;
 
-#ifdef SLAPD_CRYPT
-LDAP_SLAPD_F (ldap_pvt_thread_mutex_t) crypt_mutex;
+#if defined( SLAPD_CRYPT ) || defined( SLAPD_SPASSWD )
+LDAP_SLAPD_F (ldap_pvt_thread_mutex_t) passwd_mutex;
 #endif
 LDAP_SLAPD_F (ldap_pvt_thread_mutex_t) gmtime_mutex;
 
@@ -820,7 +844,9 @@ LDAP_SLAPD_F (int) config_info LDAP_P((
        Entry **e, const char **text ));
 
 LDAP_SLAPD_F (int) root_dse_info LDAP_P((
-       Entry **e, const char **text ));
+       Connection *conn,
+       Entry **e,
+       const char **text ));
 
 LDAP_SLAPD_F (int) do_abandon LDAP_P((Connection *conn, Operation *op));
 LDAP_SLAPD_F (int) do_add LDAP_P((Connection *conn, Operation *op));