]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
uses URL extensions to set socket permissions other than default
[openldap] / servers / slapd / slap.h
index f0d8dc31a001a6a2591ecd2025391b4e129947dd..b821ecc38e79db106ee6200232e45f4d8a59637b 100644 (file)
@@ -525,8 +525,9 @@ typedef struct slap_attr_desc {
        struct berval ad_cname;         /* canonical name, must be specified */
        struct berval ad_lang;          /* empty if no language tags */
        unsigned ad_flags;
-#define SLAP_DESC_NONE         0x0U
-#define SLAP_DESC_BINARY       0x1U
+#define SLAP_DESC_NONE                 0x00U
+#define SLAP_DESC_BINARY               0x01U
+#define SLAP_DESC_LANG_RANGE   0x80U
 } AttributeDescription;
 
 typedef struct slap_attr_name {
@@ -535,8 +536,11 @@ typedef struct slap_attr_name {
        ObjectClass *an_oc;
 } AttributeName;
 
-#define slap_ad_is_lang(ad)            ( (ad)->ad_lang.bv_len != 0 )
-#define slap_ad_is_binary(ad)  ( (int)((ad)->ad_flags & SLAP_DESC_BINARY) ? 1 : 0 )
+#define slap_ad_is_lang(ad)                    ( (ad)->ad_lang.bv_len != 0 )
+#define slap_ad_is_binary(ad)          \
+       ( ((ad)->ad_flags & SLAP_DESC_LANG_RANGE) ? 1 : 0 )
+#define slap_ad_is_lang_range(ad)      \
+       ( ((ad)->ad_flags & SLAP_DESC_BINARY) ? 1 : 0 )
 
 /*
  * pointers to schema elements used internally
@@ -756,6 +760,8 @@ typedef struct slap_entry {
 
        slap_mask_t     e_ocflags;
 
+       struct berval   e_bv;           /* For entry_encode/entry_decode */
+
        /* for use by the backend for any purpose */
        void*   e_private;
 } Entry;
@@ -822,7 +828,7 @@ typedef enum slap_style_e {
 
 typedef struct slap_authz_info {
        ber_tag_t       sai_method;             /* LDAP_AUTH_* from <ldap.h> */
-       char *          sai_mech;               /* SASL Mechanism */
+       struct berval   sai_mech;               /* SASL Mechanism */
        struct berval   sai_dn;                 /* DN for reporting purposes */
        struct berval   sai_ndn;                /* Normalized DN */
 
@@ -904,14 +910,14 @@ typedef struct slap_access {
        int                     a_dn_self;
 
        slap_style_t a_peername_style;
-       char            *a_peername_pat;
+       struct berval   a_peername_pat;
        slap_style_t a_sockname_style;
-       char            *a_sockname_pat;
+       struct berval   a_sockname_pat;
 
        slap_style_t a_domain_style;
-       char            *a_domain_pat;
+       struct berval   a_domain_pat;
        slap_style_t a_sockurl_style;
-       char            *a_sockurl_pat;
+       struct berval   a_sockurl_pat;
        slap_style_t a_set_style;
        struct berval   a_set_pat;
 
@@ -1403,6 +1409,7 @@ typedef struct slap_op {
        char o_managedsait;
        char o_subentries;
        char o_subentries_visibility;
+       char o_noop;
 
        int             o_abandon;      /* abandon flag */
        ldap_pvt_thread_mutex_t o_abandonmutex; /* protects o_abandon  */
@@ -1453,14 +1460,14 @@ typedef struct slap_conn {
        time_t          c_activitytime; /* when the connection was last used */
        unsigned long           c_connid;       /* id of this connection for stats*/
 
-       char            *c_listener_url;        /* listener URL */
-       char            *c_peer_domain; /* DNS name of client */
-       char            *c_peer_name;   /* peer name (trans=addr:port) */
-       char            *c_sock_name;   /* sock name (trans=addr:port) */
+       struct berval   c_listener_url; /* listener URL */
+       struct berval   c_peer_domain;  /* DNS name of client */
+       struct berval   c_peer_name;    /* peer name (trans=addr:port) */
+       struct berval   c_sock_name;    /* sock name (trans=addr:port) */
 
        /* only can be changed by binding thread */
        int             c_sasl_bind_in_progress;        /* multi-op bind in progress */
-       char    *c_sasl_bind_mech;                      /* mech in progress */
+       struct berval   c_sasl_bind_mech;                       /* mech in progress */
        struct berval   c_cdn;
 
        /* authentication backend */