]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/proto-slap.h
Merge remote branch 'origin/mdb.master'
[openldap] / servers / slapd / proto-slap.h
index 158087610907ca074a09ee292cae5b2217f71a70..ac2a295ab968b3757add669cdda9c1980b2c424b 100644 (file)
@@ -129,6 +129,7 @@ LDAP_SLAPD_F (int) slap_bv2ad LDAP_P((
        const char **text ));
 
 LDAP_SLAPD_F (void) ad_destroy LDAP_P(( AttributeDescription * ));
+LDAP_SLAPD_F (int) ad_keystring LDAP_P(( struct berval *bv ));
 
 #define ad_cmp(l,r)    (((l)->ad_cname.bv_len < (r)->ad_cname.bv_len) \
        ? -1 : (((l)->ad_cname.bv_len > (r)->ad_cname.bv_len) \
@@ -482,7 +483,7 @@ LDAP_SLAPD_F (void) overlay_move LDAP_P((
        BackendDB *be, slap_overinst *on, int idx ));
 #ifdef SLAP_CONFIG_DELETE
 LDAP_SLAPD_F (void) overlay_remove LDAP_P((
-       BackendDB *be, slap_overinst *on ));
+       BackendDB *be, slap_overinst *on, Operation *op ));
 LDAP_SLAPD_F (void) overlay_unregister_control LDAP_P((
        BackendDB *be,
        const char *oid ));
@@ -719,6 +720,10 @@ LDAP_SLAPD_F (int) verbs_to_mask LDAP_P((
        int argc, char *argv[], slap_verbmasks *v, slap_mask_t *m ));
 LDAP_SLAPD_F (int) mask_to_verbs LDAP_P((
        slap_verbmasks *v, slap_mask_t m, BerVarray *bva ));
+LDAP_SLAPD_F (int) mask_to_verbstring LDAP_P((
+       slap_verbmasks *v, slap_mask_t m, char delim, struct berval *bv ));
+LDAP_SLAPD_F (int) verbstring_to_mask LDAP_P((
+       slap_verbmasks *v, char *str, char delim, slap_mask_t *m ));
 LDAP_SLAPD_F (int) enum_to_verb LDAP_P((
        slap_verbmasks *v, slap_mask_t m, struct berval *bv ));
 LDAP_SLAPD_F (int) slap_verbmasks_init LDAP_P(( slap_verbmasks **vp, slap_verbmasks *v ));
@@ -755,6 +760,7 @@ LDAP_SLAPD_F (int) connections_init LDAP_P((void));
 LDAP_SLAPD_F (int) connections_shutdown LDAP_P((void));
 LDAP_SLAPD_F (int) connections_destroy LDAP_P((void));
 LDAP_SLAPD_F (int) connections_timeout_idle LDAP_P((time_t));
+LDAP_SLAPD_F (void) connections_drop LDAP_P((void));
 
 LDAP_SLAPD_F (Connection *) connection_client_setup LDAP_P((
        ber_socket_t s,
@@ -862,6 +868,9 @@ LDAP_SLAPD_F (RETSIGTYPE) slap_sig_shutdown LDAP_P((int sig));
 LDAP_SLAPD_F (RETSIGTYPE) slap_sig_wake LDAP_P((int sig));
 LDAP_SLAPD_F (void) slap_wake_listener LDAP_P((void));
 
+LDAP_SLAPD_F (void) slap_suspend_listeners LDAP_P((void));
+LDAP_SLAPD_F (void) slap_resume_listeners LDAP_P((void));
+
 LDAP_SLAPD_F (void) slapd_set_write LDAP_P((ber_socket_t s, int wake));
 LDAP_SLAPD_F (void) slapd_clr_write LDAP_P((ber_socket_t s, int wake));
 LDAP_SLAPD_F (void) slapd_set_read LDAP_P((ber_socket_t s, int wake));
@@ -1095,6 +1104,8 @@ LDAP_SLAPD_F (void) filter_free LDAP_P(( Filter *f ));
 LDAP_SLAPD_F (void) filter_free_x LDAP_P(( Operation *op, Filter *f, int freeme ));
 LDAP_SLAPD_F (void) filter2bv LDAP_P(( Filter *f, struct berval *bv ));
 LDAP_SLAPD_F (void) filter2bv_x LDAP_P(( Operation *op, Filter *f, struct berval *bv ));
+LDAP_SLAPD_F (void) filter2bv_undef LDAP_P(( Filter *f, int noundef, struct berval *bv ));
+LDAP_SLAPD_F (void) filter2bv_undef_x LDAP_P(( Operation *op, Filter *f, int noundef, struct berval *bv ));
 LDAP_SLAPD_F (Filter *) filter_dup LDAP_P(( Filter *f, void *memctx ));
 
 LDAP_SLAPD_F (int) get_vrFilter LDAP_P(( Operation *op, BerElement *ber,
@@ -1166,6 +1177,10 @@ LDAP_SLAPD_F (int) slap_parse_csn_sid LDAP_P((
                                struct berval * ));
 LDAP_SLAPD_F (int *) slap_parse_csn_sids LDAP_P((
                                BerVarray, int, void *memctx ));
+LDAP_SLAPD_F (int) slap_sort_csn_sids LDAP_P((
+                               BerVarray, int *, int, void *memctx ));
+LDAP_SLAPD_F (void) slap_insert_csn_sids LDAP_P((
+                               struct sync_cookie *ck, int, int, struct berval * ));
 LDAP_SLAPD_F (int) slap_parse_sync_cookie LDAP_P((
                                struct sync_cookie *, void *memctx ));
 LDAP_SLAPD_F (int) slap_init_sync_cookie_ctxcsn LDAP_P((
@@ -1543,7 +1558,17 @@ LDAP_SLAPD_F (int) get_alias_dn LDAP_P((
  * result.c
  */
 #if USE_RS_ASSERT /*defined(USE_RS_ASSERT)?(USE_RS_ASSERT):defined(LDAP_TEST)*/
-# define RS_ASSERT                             assert
+#ifdef __GNUC__
+# define RS_FUNC_      __FUNCTION__
+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__) >= 199901L
+# define RS_FUNC_      __func__
+#else
+# define rs_assert_(file, line, func, cond) rs_assert__(file, line, cond)
+#endif
+LDAP_SLAPD_V(int)  rs_suppress_assert;
+LDAP_SLAPD_F(void) rs_assert_(const char*, unsigned, const char*, const char*);
+# define RS_ASSERT(cond)               ((rs_suppress_assert > 0 || (cond)) \
+       ? (void) 0 : rs_assert_(__FILE__, __LINE__, RS_FUNC_, #cond))
 #else
 # define RS_ASSERT(cond)               ((void) 0)
 # define rs_assert_ok(rs)              ((void) (rs))
@@ -1557,16 +1582,20 @@ LDAP_SLAPD_F (void) (rs_assert_done)    LDAP_P(( const SlapReply *rs ));
 #define rs_reinit(rs, type)    do {                    \
                SlapReply *const rsRI = (rs);           \
                rs_assert_done( rsRI );                         \
-               memset( rsRI, 0, sizeof(*rsRI) );       \
                rsRI->sr_type = (type);                         \
+               /* Got type before memset in case of rs_reinit(rs, rs->sr_type) */ \
+               assert( !offsetof( SlapReply, sr_type ) );      \
+               memset( (slap_reply_t *) rsRI + 1, 0,           \
+                       sizeof(*rsRI) - sizeof(slap_reply_t) ); \
        } while ( 0 )
 LDAP_SLAPD_F (void) (rs_reinit)        LDAP_P(( SlapReply *rs, slap_reply_t type ));
 LDAP_SLAPD_F (void) rs_flush_entry LDAP_P(( Operation *op,
        SlapReply *rs, slap_overinst *on ));
 LDAP_SLAPD_F (void) rs_replace_entry LDAP_P(( Operation *op,
        SlapReply *rs, slap_overinst *on, Entry *e ));
-LDAP_SLAPD_F (int) rs_ensure_entry_modifiable LDAP_P(( Operation *op,
+LDAP_SLAPD_F (int) rs_entry2modifiable LDAP_P(( Operation *op,
        SlapReply *rs, slap_overinst *on ));
+#define rs_ensure_entry_modifiable rs_entry2modifiable /* older name */
 LDAP_SLAPD_F (void) slap_send_ldap_result LDAP_P(( Operation *op, SlapReply *rs ));
 LDAP_SLAPD_F (void) send_ldap_sasl LDAP_P(( Operation *op, SlapReply *rs ));
 LDAP_SLAPD_F (void) send_ldap_disconnect LDAP_P(( Operation *op, SlapReply *rs ));
@@ -2042,6 +2071,7 @@ LDAP_SLAPD_V (ldap_pvt_thread_mutex_t)    entry2str_mutex;
 #define gmtime_mutex ldap_int_gmtime_mutex
 #endif /* ! LDAP_DEVEL */
 
+LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) ad_index_mutex;
 LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) ad_undef_mutex;
 LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) oc_undef_mutex;