]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
Ditch LRU cache replacement in favor of 2nd-chance/clock.
[openldap] / servers / slapd / slap.h
index 3eb7aa1e18a829ba3f17a7418ad1f12a87999ac9..95cb6c287606d2cc5d51472275bec273c387fddd 100644 (file)
@@ -782,6 +782,7 @@ typedef struct slap_attr_desc {
 #define SLAP_DESC_NONE                 0x00U
 #define SLAP_DESC_BINARY               0x01U
 #define SLAP_DESC_TAG_RANGE            0x80U
+#define SLAP_DESC_TEMPORARY            0x1000U
 } AttributeDescription;
 
 /* flags to slap_*2undef_ad to register undefined (0, the default)
@@ -977,7 +978,9 @@ typedef struct slap_mr_assertion {
  */
 typedef struct slap_filter {
        ber_tag_t       f_choice;       /* values taken from ldap.h, plus: */
-#define SLAPD_FILTER_COMPUTED          ((ber_tag_t) -1)
+#define SLAPD_FILTER_COMPUTED          0
+#define SLAPD_FILTER_MASK                      0x7fff
+#define SLAPD_FILTER_UNDEFINED         0x8000
 
        union f_un_u {
                /* precomputed result */
@@ -1917,17 +1920,17 @@ typedef struct req_modify_s {
 } req_modify_s;
 
 typedef struct req_modrdn_s {
+       Modifications *rs_modlist;
        struct berval rs_newrdn;
        struct berval rs_nnewrdn;
        struct berval *rs_newSup;
        struct berval *rs_nnewSup;
        int rs_deleteoldrdn;
-       Modifications *rs_modlist;
 } req_modrdn_s;
 
 typedef struct req_add_s {
-       Entry *rs_e;
        Modifications *rs_modlist;      /* FIXME: temporary */
+       Entry *rs_e;
 } req_add_s;
 
 typedef struct req_abandon_s {
@@ -1961,7 +1964,8 @@ typedef enum slap_reply_e {
        REP_EXTENDED,
        REP_SEARCH,
        REP_SEARCHREF,
-       REP_INTERMEDIATE
+       REP_INTERMEDIATE,
+       REP_GLUE_RESULT
 } slap_reply_t;
 
 typedef struct rep_sasl_s {
@@ -2381,6 +2385,19 @@ typedef struct slap_op_header {
 #endif
 } Opheader;
 
+typedef union slap_op_request {
+       req_add_s oq_add;
+       req_bind_s oq_bind;
+       req_compare_s oq_compare;
+       req_modify_s oq_modify;
+       req_modrdn_s oq_modrdn;
+       req_search_s oq_search;
+       req_abandon_s oq_abandon;
+       req_abandon_s oq_cancel;
+       req_extended_s oq_extended;
+       req_pwdexop_s oq_pwdexop;
+} OpRequest;
+
 typedef struct slap_op {
        Opheader *o_hdr;
 
@@ -2409,18 +2426,7 @@ typedef struct slap_op {
        struct berval   o_req_dn;       /* DN of target of request */
        struct berval   o_req_ndn;
 
-       union o_req_u {
-               req_add_s oq_add;
-               req_bind_s oq_bind;
-               req_compare_s oq_compare;
-               req_modify_s oq_modify;
-               req_modrdn_s oq_modrdn;
-               req_search_s oq_search;
-               req_abandon_s oq_abandon;
-               req_abandon_s oq_cancel;
-               req_extended_s oq_extended;
-               req_pwdexop_s oq_pwdexop;
-       } o_request;
+       OpRequest o_request;
 
 /* short hands for union members */
 #define oq_add o_request.oq_add