]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/proto-slap.h
Fix ITS#3424
[openldap] / servers / slapd / proto-slap.h
index acd8e3ed9e35edeccda304dcf1211c5e387f3a9a..31b64e6ce960811487a4e7944a70658981b1c237 100644 (file)
@@ -46,6 +46,12 @@ LDAP_SLAPD_F (int) acl_check_modlist LDAP_P((
 
 LDAP_SLAPD_F (void) acl_append( AccessControl **l, AccessControl *a );
 
+#ifdef SLAP_DYNACL
+LDAP_SLAPD_F (int) slap_dynacl_register LDAP_P(( slap_dynacl_t *da ));
+LDAP_SLAPD_F (slap_dynacl_t *) slap_dynacl_get LDAP_P(( const char *name ));
+#endif /* SLAP_DYNACL */
+LDAP_SLAPD_F (int) acl_init LDAP_P(( void ));
+
 /*
  * aclparse.c
  */
@@ -62,6 +68,7 @@ LDAP_SLAPD_F (slap_mask_t) str2accessmask LDAP_P(( const char *str ));
 LDAP_SLAPD_F (void) acl_destroy LDAP_P(( AccessControl*, AccessControl* ));
 LDAP_SLAPD_F (void) acl_free LDAP_P(( AccessControl *a ));
 
+
 /*
  * ad.c
  */
@@ -105,6 +112,12 @@ LDAP_SLAPD_F (AttributeDescription *) ad_find_tags LDAP_P((
 
 LDAP_SLAPD_F (AttributeName *) str2anlist LDAP_P(( AttributeName *an,
        char *str, const char *brkstr ));
+LDAP_SLAPD_F (char **) anlist2charray_x LDAP_P((
+                                                                       AttributeName *an, int dup, void *ctx ));
+LDAP_SLAPD_F (char **) anlist2charray LDAP_P(( AttributeName *an, int dup ));
+LDAP_SLAPD_F (char **) anlist2attrs LDAP_P(( AttributeName *anlist ));
+LDAP_SLAPD_F (AttributeName *) file2anlist LDAP_P((
+                        AttributeName *, const char *, const char * ));
 LDAP_SLAPD_F (int) an_find LDAP_P(( AttributeName *a, struct berval *s ));
 LDAP_SLAPD_F (int) ad_define_option LDAP_P(( const char *name,
        const char *fname, int lineno ));
@@ -294,9 +307,12 @@ LDAP_SLAPD_F (int) glue_sub_init( void );
  * backover.c
  */
 
-LDAP_SLAPD_F (int) overlay_register( slap_overinst *on );
-LDAP_SLAPD_F (int) overlay_config( BackendDB *be, const char *ov );
-LDAP_SLAPD_F (slap_overinst *) overlay_next( slap_overinst *on );
+LDAP_SLAPD_F (int) overlay_register LDAP_P(( slap_overinst *on ));
+LDAP_SLAPD_F (int) overlay_config LDAP_P(( BackendDB *be, const char *ov ));
+LDAP_SLAPD_F (slap_overinst *) overlay_next LDAP_P(( slap_overinst *on ));
+LDAP_SLAPD_F (slap_overinst *) overlay_find LDAP_P(( const char *name ));
+LDAP_SLAPD_F (int) overlay_is_over LDAP_P(( BackendDB *be ));
+LDAP_SLAPD_F (int) overlay_is_inst LDAP_P(( BackendDB *be, const char *name ));
 
 /*
  * ch_malloc.c
@@ -313,9 +329,58 @@ LDAP_SLAPD_F (void) ch_free LDAP_P(( void * ));
 #define free ch_free
 #endif
 
+/*
+ * component.c
+ */
+#ifdef LDAP_COMP_MATCH
+LDAP_SLAPD_F (int) test_comp_filter_entry LDAP_P((
+       Operation* op,
+       Entry* e,
+       MatchingRuleAssertion* mr));
+
+LDAP_SLAPD_F (int) get_comp_filter LDAP_P((
+       Operation* op,
+       BerValue* bv,
+       ComponentFilter** filt,
+       const char **text ));
+
+LDAP_SLAPD_F (int) componentFilterMatch LDAP_P(( 
+       int *matchp, 
+       slap_mask_t flags, 
+       Syntax *syntax, 
+       MatchingRule *mr,
+       struct berval *value, 
+       void *assertedValue ));
+
+LDAP_SLAPD_F (int) directoryComponentsMatch LDAP_P((
+        int *matchp,
+        slap_mask_t flags,
+        Syntax *syntax,
+        MatchingRule *mr,
+        struct berval *value,
+        void *assertedValue ));
+
+LDAP_SLAPD_F (int) allComponentsMatch LDAP_P((
+        int *matchp,
+        slap_mask_t flags,
+        Syntax *syntax,
+        MatchingRule *mr,
+        struct berval *value,
+        void *assertedValue ));
+                                                                          
+LDAP_SLAPD_F (int) componentFilterValidate LDAP_P(( 
+       Syntax *syntax,
+       struct berval* bv ));
+
+LDAP_SLAPD_F (int) allComponentsValidate LDAP_P((
+        Syntax *syntax,
+        struct berval* bv ));
+#endif
+
 /*
  * controls.c
  */
+LDAP_SLAPD_V( struct slap_control_ids ) slap_cids;
 LDAP_SLAPD_F (void) slap_free_ctrls LDAP_P((
        Operation *op,
        LDAPControl **ctrls ));
@@ -327,18 +392,23 @@ LDAP_SLAPD_F (int) register_supported_control LDAP_P((
        const char *controloid,
        slap_mask_t controlmask,
        char **controlexops,
-       SLAP_CTRL_PARSE_FN *controlparsefn ));
+       SLAP_CTRL_PARSE_FN *controlparsefn,
+       int *controlcid ));
 LDAP_SLAPD_F (int) slap_controls_init LDAP_P ((void));
 LDAP_SLAPD_F (void) controls_destroy LDAP_P ((void));
 LDAP_SLAPD_F (int) controls_root_dse_info LDAP_P ((Entry *e));
 LDAP_SLAPD_F (int) get_supported_controls LDAP_P (( char ***ctrloidsp, slap_mask_t **ctrlmasks ));
+LDAP_SLAPD_F (int) slap_find_control_id LDAP_P (( const char *oid, int *cid ));
 
 /*
  * config.c
  */
 LDAP_SLAPD_F (int) read_config LDAP_P(( const char *fname, int depth ));
 LDAP_SLAPD_F (void) config_destroy LDAP_P ((void));
-LDAP_SLAPD_F (char **) str2clist LDAP_P(( char ***, char *, const char * ));
+LDAP_SLAPD_F (char **) slap_str2clist LDAP_P((
+                                               char ***,
+                                               char *,
+                                               const char * ));
 #ifdef LDAP_SLAPI
 LDAP_SLAPD_V (int) slapi_plugins_used;
 #endif
@@ -388,6 +458,7 @@ LDAP_SLAPD_F (void) connection_fake_init LDAP_P((
        Connection *conn,
        Operation *op,
        void *threadctx ));
+LDAP_SLAPD_F (void) connection_assign_nextid LDAP_P((Connection *));
 
 /*
  * cr.c
@@ -411,11 +482,13 @@ LDAP_SLAPD_F (ContentRule *) cr_bvfind LDAP_P((
 
 LDAP_SLAPD_V( const struct berval ) slap_ldapsync_bv;
 LDAP_SLAPD_V( const struct berval ) slap_ldapsync_cn_bv;
-LDAP_SLAPD_F (void) slap_get_commit_csn LDAP_P(( Operation *, struct berval * ));
+LDAP_SLAPD_F (void) slap_get_commit_csn LDAP_P((
+       Operation *, struct berval *maxcsn, struct berval *curcsn ));
 LDAP_SLAPD_F (void) slap_rewind_commit_csn LDAP_P(( Operation * ));
 LDAP_SLAPD_F (void) slap_graduate_commit_csn LDAP_P(( Operation * ));
 LDAP_SLAPD_F (Entry *) slap_create_context_csn_entry LDAP_P(( Backend *, struct berval *));
 LDAP_SLAPD_F (int) slap_get_csn LDAP_P(( Operation *, char *, int, struct berval *, int ));
+LDAP_SLAPD_F (void) slap_queue_csn LDAP_P(( Operation *, struct berval * ));
 
 /*
  * daemon.c
@@ -439,6 +512,8 @@ LDAP_SLAPD_F (void) slapd_clr_read LDAP_P((ber_socket_t s, int wake));
 LDAP_SLAPD_V (volatile sig_atomic_t) slapd_abrupt_shutdown;
 LDAP_SLAPD_V (volatile sig_atomic_t) slapd_shutdown;
 LDAP_SLAPD_V (int) slapd_register_slp;
+LDAP_SLAPD_V (slap_ssf_t) local_ssf;
+LDAP_SLAPD_V (struct runqueue_s) slapd_rq;
 
 /*
  * dn.c
@@ -477,6 +552,14 @@ LDAP_SLAPD_F (int) dnMatch LDAP_P((
        struct berval *value, 
        void *assertedValue ));
 
+LDAP_SLAPD_F (int) dnRelativeMatch LDAP_P(( 
+       int *matchp, 
+       slap_mask_t flags, 
+       Syntax *syntax, 
+       MatchingRule *mr,
+       struct berval *value, 
+       void *assertedValue ));
+
 LDAP_SLAPD_F (int) rdnMatch LDAP_P(( 
        int *matchp, 
        slap_mask_t flags, 
@@ -485,9 +568,12 @@ LDAP_SLAPD_F (int) rdnMatch LDAP_P((
        struct berval *value, 
        void *assertedValue ));
 
+
 LDAP_SLAPD_F (int) dnIsSuffix LDAP_P((
        const struct berval *dn, const struct berval *suffix ));
 
+LDAP_SLAPD_F (int) dnIsOneLevelRDN LDAP_P(( struct berval *rdn ));
+
 LDAP_SLAPD_F (int) dnExtractRdn LDAP_P((
        struct berval *dn, struct berval *rdn, void *ctx ));
 
@@ -502,6 +588,7 @@ LDAP_SLAPD_F (void) build_new_dn LDAP_P((
        void *memctx ));
 
 LDAP_SLAPD_F (void) dnParent LDAP_P(( struct berval *dn, struct berval *pdn ));
+LDAP_SLAPD_F (void) dnRdn LDAP_P(( struct berval *dn, struct berval *rdn ));
 
 LDAP_SLAPD_F (int) dnX509normalize LDAP_P(( void *x509_name, struct berval *out ));
 
@@ -513,6 +600,8 @@ LDAP_SLAPD_F (int) dnPrettyNormalDN LDAP_P(( Syntax *syntax, struct berval *val,
 #define dnNormalDN(syntax, val, dn, ctx) \
        dnPrettyNormalDN((syntax),(val),(dn), 0, ctx)
 
+typedef int (SLAP_CERT_MAP_FN) LDAP_P(( void *ssl, struct berval *dn ));
+LDAP_SLAPD_F (int) register_certificate_map_function LDAP_P(( SLAP_CERT_MAP_FN *fn ));
 
 /*
  * entry.c
@@ -529,6 +618,7 @@ LDAP_SLAPD_F (void) entry_flatsize LDAP_P((
 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_clean LDAP_P(( Entry *e ));
 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(( const void *v_a, const void *v_b ));
@@ -540,6 +630,8 @@ LDAP_SLAPD_F (Entry *) entry_dup LDAP_P(( Entry *e ));
  */
 LDAP_SLAPD_F (int) exop_root_dse_info LDAP_P ((Entry *e));
 
+#define exop_is_write( op )    ((op->ore_flags & SLAP_EXOP_WRITES) != 0)
+
 LDAP_SLAPD_V( const struct berval ) slap_EXOP_CANCEL;
 LDAP_SLAPD_V( const struct berval ) slap_EXOP_WHOAMI;
 LDAP_SLAPD_V( const struct berval ) slap_EXOP_MODIFY_PASSWD;
@@ -597,6 +689,11 @@ LDAP_SLAPD_F (int) filter_escape_value LDAP_P(( struct berval *in,
 
 LDAP_SLAPD_F (int) test_filter LDAP_P(( Operation *op, Entry *e, Filter *f ));
 
+/*
+ * frontend.c
+ */
+LDAP_SLAPD_F (int) frontend_init LDAP_P(( void ));
+
 /*
  * globals.c
  */
@@ -621,7 +718,7 @@ LDAP_SLAPD_F (int)  slap_startup LDAP_P(( Backend *be ));
 LDAP_SLAPD_F (int)     slap_shutdown LDAP_P(( Backend *be ));
 LDAP_SLAPD_F (int)     slap_destroy LDAP_P((void));
 
-LDAP_SLAPD_V (char **) slap_known_controls;
+LDAP_SLAPD_V (char *)  slap_known_controls[];
 
 /*
  * kerberos.c
@@ -634,18 +731,6 @@ LDAP_SLAPD_V (int) krbv4_ldap_auth();
 /*
  * ldapsync.c
  */
-LDAP_SLAPD_F (int) slap_build_sync_state_ctrl LDAP_P((
-                               Operation *, SlapReply *, Entry *, int, LDAPControl **,
-                               int, int, struct berval * ));
-LDAP_SLAPD_F (int) slap_build_sync_done_ctrl LDAP_P((
-                               Operation *, SlapReply *, LDAPControl **,
-                               int, int, struct berval *, int ));
-LDAP_SLAPD_F (int) slap_build_sync_state_ctrl_from_slog LDAP_P((
-                               Operation *, SlapReply *, struct slog_entry *, int,
-                               LDAPControl **, int, int, struct berval * ));
-LDAP_SLAPD_F (int) slap_send_syncinfo LDAP_P((
-                               Operation *, SlapReply *, int,
-                               struct berval *, int, BerVarray, int ));
 LDAP_SLAPD_F (void) slap_compose_sync_cookie LDAP_P((
                                Operation *, struct berval *, struct berval *, int, int ));
 LDAP_SLAPD_F (void) slap_sync_cookie_free LDAP_P((
@@ -713,7 +798,8 @@ LDAP_SLAPD_F( int ) slap_mods_opattrs(
        Modifications *mods,
        Modifications **modlist,
        const char **text,
-       char *textbuf, size_t textlen );
+       char *textbuf, size_t textlen,
+       int manage_ctxcsn );
 
 /*
  * mods.c
@@ -807,6 +893,8 @@ LDAP_SLAPD_F (ObjectClass *) oc_find LDAP_P((
        const char *ocname));
 LDAP_SLAPD_F (ObjectClass *) oc_bvfind LDAP_P((
        struct berval *ocname));
+LDAP_SLAPD_F (ObjectClass *) oc_bvfind_undef LDAP_P((
+       struct berval *ocname));
 LDAP_SLAPD_F (int) is_object_subclass LDAP_P((
        ObjectClass *sup,
        ObjectClass *sub ));
@@ -874,6 +962,7 @@ LDAP_SLAPD_F (Operation *) slap_op_pop LDAP_P(( Operation **olist ));
  * operational.c
  */
 LDAP_SLAPD_F (Attribute *) slap_operational_subschemaSubentry( Backend *be );
+LDAP_SLAPD_F (Attribute *) slap_operational_entryDN( Entry *e );
 LDAP_SLAPD_F (Attribute *) slap_operational_hasSubordinate( int has );
 
 /*
@@ -1139,7 +1228,8 @@ LDAP_SLAPD_F (void) slap_sl_free LDAP_P((
 LDAP_SLAPD_V (BerMemoryFunctions) slap_sl_mfuncs;
 
 LDAP_SLAPD_F (void) slap_sl_mem_init LDAP_P(( void ));
-LDAP_SLAPD_F (void *) slap_sl_mem_create LDAP_P(( ber_len_t size, void *ctx ));
+LDAP_SLAPD_F (void *) slap_sl_mem_create LDAP_P((
+                                               ber_len_t size, int stack, void *ctx ));
 LDAP_SLAPD_F (void) slap_sl_mem_detach LDAP_P(( void *ctx, void *memctx ));
 LDAP_SLAPD_F (void) slap_sl_mem_destroy LDAP_P(( void *key, void *data ));
 LDAP_SLAPD_F (void *) slap_sl_context LDAP_P(( void *ptr ));
@@ -1159,8 +1249,6 @@ LDAP_SLAPD_F (Filter *) str2filter_x LDAP_P(( Operation *op, const char *str ));
  * syncrepl.c
  */
 
-LDAP_SLAPD_V (struct runqueue_s) syncrepl_rq;
-
 LDAP_SLAPD_F (void) init_syncrepl LDAP_P((syncinfo_t *));
 LDAP_SLAPD_F (void*) do_syncrepl LDAP_P((void *, void *));
 LDAP_SLAPD_F (int) syncrepl_message_to_entry LDAP_P((
@@ -1168,8 +1256,9 @@ LDAP_SLAPD_F (int) syncrepl_message_to_entry LDAP_P((
                                        Modifications **, Entry **, int ));
 LDAP_SLAPD_F (int) syncrepl_entry LDAP_P((
                                        syncinfo_t *, Operation*, Entry*,
-                                       Modifications*,int, struct berval*,
-                                       struct sync_cookie * ));
+                                       Modifications**,int, struct berval*,
+                                       struct sync_cookie *,
+                                       struct berval * ));
 LDAP_SLAPD_F (void) syncrepl_updateCookie LDAP_P((
                                        syncinfo_t *, Operation *, struct berval *,
                                        struct sync_cookie * ));
@@ -1182,6 +1271,7 @@ LDAP_SLAPD_F (struct berval *) slap_uuidstr_from_normalized LDAP_P((
                                        struct berval *, struct berval *, void * ));
 LDAP_SLAPD_F (int) syncrepl_isupdate LDAP_P(( Operation * ));
 LDAP_SLAPD_F (int) syncrepl_isupdate_dn LDAP_P(( Backend *, struct berval * ));
+LDAP_SLAPD_F (void) syncinfo_free LDAP_P(( syncinfo_t * ));
 
 /* syntax.c */
 LDAP_SLAPD_F (Syntax *) syn_find LDAP_P((
@@ -1246,7 +1336,10 @@ LDAP_SLAPD_F (int) value_add_one LDAP_P((
 /*
  * Other...
  */
-LDAP_SLAPD_V(unsigned) num_subordinates;
+LDAP_SLAPD_V (unsigned int) index_substr_if_minlen;
+LDAP_SLAPD_V (unsigned int) index_substr_if_maxlen;
+LDAP_SLAPD_V (unsigned int) index_substr_any_len;
+LDAP_SLAPD_V (unsigned int) index_substr_any_step;
 
 LDAP_SLAPD_V (ber_len_t) sockbuf_max_incoming;
 LDAP_SLAPD_V (ber_len_t) sockbuf_max_incoming_auth;
@@ -1257,7 +1350,6 @@ LDAP_SLAPD_V (slap_mask_t)        global_allows;
 LDAP_SLAPD_V (slap_mask_t)     global_disallows;
 
 LDAP_SLAPD_V (BerVarray)       default_referral;
-LDAP_SLAPD_V (char *)          replogfile;
 LDAP_SLAPD_V (const char)      Versionstr[];
 
 LDAP_SLAPD_V (int)             global_gentlehup;
@@ -1271,19 +1363,7 @@ LDAP_SLAPD_V (int)               ldap_syslog;
 LDAP_SLAPD_V (struct berval)   default_search_base;
 LDAP_SLAPD_V (struct berval)   default_search_nbase;
 
-LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) num_sent_mutex;
-LDAP_SLAPD_V (unsigned long)           num_bytes_sent;
-LDAP_SLAPD_V (unsigned long)           num_pdu_sent;
-LDAP_SLAPD_V (unsigned long)           num_entries_sent;
-LDAP_SLAPD_V (unsigned long)           num_refs_sent;
-
-LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) num_ops_mutex;
-LDAP_SLAPD_V (unsigned long)           num_ops_completed;
-LDAP_SLAPD_V (unsigned long)           num_ops_initiated;
-#ifdef SLAPD_MONITOR
-LDAP_SLAPD_V (unsigned long)           num_ops_completed_[SLAP_OP_LAST];
-LDAP_SLAPD_V (unsigned long)           num_ops_initiated_[SLAP_OP_LAST];
-#endif /* SLAPD_MONITOR */
+LDAP_SLAPD_V (slap_counters_t) slap_counters;
 
 LDAP_SLAPD_V (char *)          slapd_pid_file;
 LDAP_SLAPD_V (char *)          slapd_args_file;