]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/proto-slap.h
don't return entry if requested attr is not present (ITS#5650)
[openldap] / servers / slapd / proto-slap.h
index a800fd1568e02878f18338cd0a58f6a5abdbe212..ea2292199939f7973cc08053c8e5a21b35e00650 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2007 The OpenLDAP Foundation.
+ * Copyright 1998-2008 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -98,7 +98,7 @@ LDAP_SLAPD_F (int) acl_string_expand LDAP_P((
 /*
  * aclparse.c
  */
-LDAP_SLAPD_V (char *) style_strings[];
+LDAP_SLAPD_V (LDAP_CONST char *) style_strings[];
 
 LDAP_SLAPD_F (int) parse_acl LDAP_P(( Backend *be,
        const char *fname, int lineno,
@@ -248,7 +248,7 @@ LDAP_SLAPD_F (void) at_unparse LDAP_P((
        BerVarray *bva, AttributeType *start, AttributeType *end, int system ));
 
 LDAP_SLAPD_F (int) register_at LDAP_P((
-       char *at,
+       const char *at,
        AttributeDescription **ad,
        int dupok ));
 
@@ -435,7 +435,7 @@ LDAP_SLAPD_F (int) glue_sub_del( BackendDB *be );
  */
 LDAP_SLAPD_F (int) overlay_register LDAP_P(( slap_overinst *on ));
 LDAP_SLAPD_F (int) overlay_config LDAP_P(( BackendDB *be, const char *ov,
-       int idx, BackendInfo **res ));
+       int idx, BackendInfo **res, ConfigReply *cr ));
 LDAP_SLAPD_F (void) overlay_destroy_one LDAP_P((
        BackendDB *be,
        slap_overinst *on ));
@@ -469,6 +469,12 @@ LDAP_SLAPD_F (void) overlay_insert LDAP_P((
        BackendDB *be, slap_overinst *on, slap_overinst ***prev, int idx ));
 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 ));
+#endif /* SLAP_CONFIG_DELETE */
+LDAP_SLAPD_F (int) overlay_callback_after_backover LDAP_P((
+       Operation *op, slap_callback *sc, int append ));
 
 /*
  * bconfig.c
@@ -707,12 +713,12 @@ 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 (int) connection_client_setup LDAP_P((
+LDAP_SLAPD_F (Connection *) connection_client_setup LDAP_P((
        ber_socket_t s,
        ldap_pvt_thread_start_t *func,
        void *arg ));
-LDAP_SLAPD_F (void) connection_client_enable LDAP_P(( ber_socket_t s ));
-LDAP_SLAPD_F (void) connection_client_stop LDAP_P(( ber_socket_t s ));
+LDAP_SLAPD_F (void) connection_client_enable LDAP_P(( Connection *c ));
+LDAP_SLAPD_F (void) connection_client_stop LDAP_P(( Connection *c ));
 
 #ifdef LDAP_PF_LOCAL_SENDMSG
 #define LDAP_PF_LOCAL_SENDMSG_ARG(arg) , arg
@@ -756,6 +762,11 @@ LDAP_SLAPD_F (void) connection_fake_init2 LDAP_P((
        OperationBuffer *opbuf,
        void *threadctx,
        int newmem ));
+LDAP_SLAPD_F (void) operation_fake_init LDAP_P((
+       Connection *conn,
+       Operation *op,
+       void *threadctx,
+       int newmem ));
 LDAP_SLAPD_F (void) connection_assign_nextid LDAP_P((Connection *));
 
 /*
@@ -822,6 +833,19 @@ LDAP_SLAPD_V (const char *) slapd_slp_attrs;
 LDAP_SLAPD_V (slap_ssf_t) local_ssf;
 LDAP_SLAPD_V (struct runqueue_s) slapd_rq;
 
+#ifdef HAVE_WINSOCK
+LDAP_SLAPD_F (ber_socket_t) slapd_socknew(ber_socket_t s);
+LDAP_SLAPD_F (ber_socket_t) slapd_sock2fd(ber_socket_t s);
+LDAP_SLAPD_V (SOCKET *) slapd_ws_sockets;
+#define        SLAP_FD2SOCK(s) slapd_ws_sockets[s]
+#define        SLAP_SOCK2FD(s) slapd_sock2fd(s)
+#define        SLAP_SOCKNEW(s) slapd_socknew(s)
+#else
+#define        SLAP_FD2SOCK(s) s
+#define        SLAP_SOCK2FD(s) s
+#define        SLAP_SOCKNEW(s) s
+#endif
+
 /*
  * dn.c
  */
@@ -1350,7 +1374,7 @@ LDAP_SLAPD_F (void) oc_unparse LDAP_P((
        BerVarray *bva, ObjectClass *start, ObjectClass *end, int system ));
 
 LDAP_SLAPD_F (int) register_oc LDAP_P((
-       char *desc,
+       const char *desc,
        ObjectClass **oc,
        int dupok ));
 
@@ -1376,9 +1400,6 @@ LDAP_SLAPD_F (Operation *) slap_op_alloc LDAP_P((
        BerElement *ber, ber_int_t msgid,
        ber_tag_t tag, ber_int_t id, void *ctx ));
 
-LDAP_SLAPD_F (int) slap_op_add LDAP_P(( Operation **olist, Operation *op ));
-LDAP_SLAPD_F (int) slap_op_remove LDAP_P(( Operation **olist, Operation *op ));
-LDAP_SLAPD_F (Operation *) slap_op_pop LDAP_P(( Operation **olist ));
 LDAP_SLAPD_F (slap_op_t) slap_req2op LDAP_P(( ber_tag_t tag ));
 
 /*
@@ -1616,7 +1637,7 @@ LDAP_SLAPD_F( int ) entry_schema_check(
        Entry *e,
        Attribute *attrs,
        int manage,
-       int add_soc,
+       int add,
        const char** text,
        char *textbuf, size_t textlen );
 
@@ -1703,7 +1724,7 @@ 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, int stack, void *ctx, int new ));
+                                               ber_len_t size, int stack, void *ctx, int flag ));
 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 ));
@@ -1864,6 +1885,10 @@ 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 (unsigned int) index_intlen;
+/* all signed integers from strings of this size need more than intlen bytes */
+/* i.e. log(10)*(index_intlen_strlen-2) > log(2)*(8*(index_intlen)-1) */
+LDAP_SLAPD_V (unsigned int) index_intlen_strlen;
+#define SLAP_INDEX_INTLEN_STRLEN(intlen) ((8*(intlen)-1) * 146/485 + 3)
 
 LDAP_SLAPD_V (ber_len_t) sockbuf_max_incoming;
 LDAP_SLAPD_V (ber_len_t) sockbuf_max_incoming_auth;
@@ -2022,7 +2047,7 @@ LDAP_SLAPD_F (int) fe_access_allowed LDAP_P((
 
 # define UI2BVX(bv,ui,ctx) \
        do { \
-               char            buf[] = "+9223372036854775807L"; \
+               char            buf[LDAP_PVT_INTTYPE_CHARS(long)]; \
                ber_len_t       len; \
                len = snprintf( buf, sizeof( buf ), UI2BV_FORMAT, (ui) ); \
                if ( len > (bv)->bv_len ) { \