Diff for /servers/slapd/slap.h between versions 1.452.2.1 and 1.452.2.2

version 1.452.2.1, 2003/05/31 19:01:40 version 1.452.2.2, 2003/09/18 15:43:35
Line 1 Line 1
 /* slap.h - stand alone ldap server include file */  /* slap.h - stand alone ldap server include file */
 /* $OpenLDAP: pkg/ldap/servers/slapd/slap.h,v 1.452 2003/05/30 03:24:39 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/slap.h,v 1.452.2.1 2003/05/31 19:01:40 kurt Exp $ */
 /*  /*
  * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.   * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file   * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
Line 37 Line 37
 #include "ldap_queue.h"  #include "ldap_queue.h"
   
 #define SLAP_EXTENDED_SCHEMA 1  #define SLAP_EXTENDED_SCHEMA 1
 #define LDAP_CACHING 1  
   
 LDAP_BEGIN_DECL  LDAP_BEGIN_DECL
 /*  /*
Line 76  LDAP_BEGIN_DECL Line 75  LDAP_BEGIN_DECL
   
 #define SLAP_MAX_WORKER_THREADS         (16)  #define SLAP_MAX_WORKER_THREADS         (16)
   
 #ifdef LDAP_SYNCREPL  
 #define SLAP_MAX_SYNCREPL_THREADS       (8)  #define SLAP_MAX_SYNCREPL_THREADS       (8)
 #endif  
   
 #define SLAP_SB_MAX_INCOMING_DEFAULT ((1<<18) - 1)  #define SLAP_SB_MAX_INCOMING_DEFAULT ((1<<18) - 1)
 #define SLAP_SB_MAX_INCOMING_AUTH ((1<<24) - 1)  #define SLAP_SB_MAX_INCOMING_AUTH ((1<<24) - 1)
Line 141  LDAP_BEGIN_DECL Line 138  LDAP_BEGIN_DECL
 /* must match in schema_init.c */  /* must match in schema_init.c */
 #define SLAPD_DN_SYNTAX                 "1.3.6.1.4.1.1466.115.121.1.12"  #define SLAPD_DN_SYNTAX                 "1.3.6.1.4.1.1466.115.121.1.12"
 #define SLAPD_NAMEUID_SYNTAX    "1.3.6.1.4.1.1466.115.121.1.34"  #define SLAPD_NAMEUID_SYNTAX    "1.3.6.1.4.1.1466.115.121.1.34"
   #define SLAPD_INTEGER_SYNTAX    "1.3.6.1.4.1.1466.115.121.1.27"
 #define SLAPD_GROUP_ATTR                "member"  #define SLAPD_GROUP_ATTR                "member"
 #define SLAPD_GROUP_CLASS               "groupOfNames"  #define SLAPD_GROUP_CLASS               "groupOfNames"
 #define SLAPD_ROLE_ATTR                 "roleOccupant"  #define SLAPD_ROLE_ATTR                 "roleOccupant"
Line 229  typedef struct slap_ssf_set { Line 227  typedef struct slap_ssf_set {
 #define SLAP_SYNTAX_MATCHINGRULEUSES_OID "1.3.6.1.4.1.1466.115.121.1.31"  #define SLAP_SYNTAX_MATCHINGRULEUSES_OID "1.3.6.1.4.1.1466.115.121.1.31"
 #define SLAP_SYNTAX_CONTENTRULE_OID              "1.3.6.1.4.1.1466.115.121.1.16"  #define SLAP_SYNTAX_CONTENTRULE_OID              "1.3.6.1.4.1.1466.115.121.1.16"
   
 #ifdef LDAP_CLIENT_UPDATE  
 #define LCUP_COOKIE_OID "1.3.6.1.4.1.4203.666.10.1"  
 #endif /* LDAP_CLIENT_UPDATE */  
   
 /*  /*
  * represents schema information for a database   * represents schema information for a database
  */   */
Line 302  typedef struct slap_syntax { Line 296  typedef struct slap_syntax {
         LDAPSyntax                      ssyn_syn;          LDAPSyntax                      ssyn_syn;
 #define ssyn_oid                ssyn_syn.syn_oid  #define ssyn_oid                ssyn_syn.syn_oid
 #define ssyn_desc               ssyn_syn.syn_desc  #define ssyn_desc               ssyn_syn.syn_desc
 #define ssyn_extensions         ssyn_syn.syn_extensions  #define ssyn_extensions ssyn_syn.syn_extensions
         /*          /*
          * Note: the former           * Note: the former
         ber_len_t       ssyn_oidlen;          ber_len_t       ssyn_oidlen;
Line 647  typedef struct slap_object_class { Line 641  typedef struct slap_object_class {
 #define SLAP_OC_SUBENTRY        0x0004  #define SLAP_OC_SUBENTRY        0x0004
 #define SLAP_OC_DYNAMICOBJECT   0x0008  #define SLAP_OC_DYNAMICOBJECT   0x0008
 #define SLAP_OC_COLLECTIVEATTRIBUTESUBENTRY     0x0010  #define SLAP_OC_COLLECTIVEATTRIBUTESUBENTRY     0x0010
 #define SLAP_OC__MASK           0x001F  #define SLAP_OC_GLUE            0x0020
 #define SLAP_OC__END            0x0020  #define SLAP_OC_SYNCPROVIDERSUBENTRY            0x0040
   #define SLAP_OC_SYNCCONSUMERSUBENTRY            0x0080
   #define SLAP_OC__MASK           0x00FF
   #define SLAP_OC__END            0x0100
 #define SLAP_OC_OPERATIONAL     0x4000  #define SLAP_OC_OPERATIONAL     0x4000
 #ifdef LDAP_DEVEL  #ifdef LDAP_DEVEL
 #define SLAP_OC_HIDE            0x0000  #define SLAP_OC_HIDE            0x0000
Line 717  struct slap_internal_schema { Line 714  struct slap_internal_schema {
         ObjectClass *si_oc_collectiveAttributeSubentry;          ObjectClass *si_oc_collectiveAttributeSubentry;
         ObjectClass *si_oc_dynamicObject;          ObjectClass *si_oc_dynamicObject;
   
 #ifdef LDAP_SYNCREPL  
         ObjectClass *si_oc_glue;          ObjectClass *si_oc_glue;
         ObjectClass *si_oc_syncConsumerSubentry;          ObjectClass *si_oc_syncConsumerSubentry;
         ObjectClass *si_oc_syncProviderSubentry;          ObjectClass *si_oc_syncProviderSubentry;
 #endif  
   
         /* objectClass attribute descriptions */          /* objectClass attribute descriptions */
         AttributeDescription *si_ad_objectClass;          AttributeDescription *si_ad_objectClass;
Line 741  struct slap_internal_schema { Line 736  struct slap_internal_schema {
         AttributeDescription *si_ad_namingCSN;          AttributeDescription *si_ad_namingCSN;
         AttributeDescription *si_ad_superiorUUID;          AttributeDescription *si_ad_superiorUUID;
   
 #ifdef LDAP_CACHING  
         /* LDAP cache specific operational attribute */          /* LDAP cache specific operational attribute */
         AttributeDescription *si_ad_queryid;          AttributeDescription *si_ad_queryid;
 #endif /* LDAP_CACHING */  
   
 #ifdef LDAP_SYNCREPL  
         AttributeDescription *si_ad_dseType;          AttributeDescription *si_ad_dseType;
         AttributeDescription *si_ad_syncreplCookie;          AttributeDescription *si_ad_syncreplCookie;
 #endif          AttributeDescription *si_ad_contextCSN;
   
         /* root DSE attribute descriptions */          /* root DSE attribute descriptions */
         AttributeDescription *si_ad_altServer;          AttributeDescription *si_ad_altServer;
Line 1059  typedef enum slap_style_e { Line 1051  typedef enum slap_style_e {
         ACL_STYLE_ONE,          ACL_STYLE_ONE,
         ACL_STYLE_SUBTREE,          ACL_STYLE_SUBTREE,
         ACL_STYLE_CHILDREN,          ACL_STYLE_CHILDREN,
         ACL_STYLE_ATTROF,          ACL_STYLE_ATTROF
 } slap_style_t;  } slap_style_t;
   
 typedef struct slap_authz_info {  typedef struct slap_authz_info {
Line 1282  typedef BackendDB Backend; Line 1274  typedef BackendDB Backend;
 #define nbackends nBackendDB  #define nbackends nBackendDB
 #define backends backendDB  #define backends backendDB
   
 #ifdef LDAP_SYNCREPL  
 struct nonpresent_entry {  struct nonpresent_entry {
         struct berval *dn;          struct berval *dn;
         struct berval *ndn;          struct berval *ndn;
Line 1296  typedef struct syncinfo_s { Line 1287  typedef struct syncinfo_s {
         struct slap_conn *conn;          struct slap_conn *conn;
         struct slap_backend_db *be;          struct slap_backend_db *be;
         struct slap_entry *e;          struct slap_entry *e;
         void            *ctx;          void                    *ctx;
         int             id;          int                             id;
         char            *masteruri;          char                    *provideruri;
                 struct berval   *master_bv;          BerVarray               provideruri_bv;
         char            *mastername;  #define TLS_OFF                 0
         int             masterport;  #define TLS_ON                  1
         int             type;  #define TLS_CRITICAL    2
           int                             tls;
                 struct berval   updatedn;                         struct berval   updatedn;       
         char            *binddn;          int                             bindmethod;
         int             bindmethod;          char                    *binddn;
         char            *passwd;          char                    *passwd;
         char            *secprops;          char                    *saslmech;
         char            *realm;          char                    *secprops;
         char            *authcId;          char                    *realm;
         char            *authzId;          char                    *authcId;
         char            *srvtab;          char                    *authzId;
         char            *saslmech;          char                    *srvtab;
                   int                             schemachecking;
           Filter                  *filter;
           char                    *filterstr;
           char                    *base;
           int                             scope;
           int                             attrsonly;
           char                    **attrs;
           int                             type;
         time_t                  interval;          time_t                  interval;
         char            *base;          struct berval   *syncCookie;
         int             scope;          int                             manageDSAit;
         int             deref;          int                             slimit;
         int             slimit;                  int                             tlimit;
         int             tlimit;          struct berval   *syncUUID;
         Filter          *filter;  
         char            *filterstr;  
         char            **attrs;  
         int             attrsonly;  
 #define LASTMOD_REQ             0  
 #define LASTMOD_GEN             1  
 #define LASTMOD_NO              2  
         int             lastmod;  
         /* TLS flags */  
 #define TLS_OFF                 0  
 #define TLS_ON                  1  
 #define TLS_CRITICAL            2  
         int             tls;  
         int             found;  
         struct berval   *syncUUID;  
                 struct berval   *syncUUID_ndn;                  struct berval   *syncUUID_ndn;
         struct berval   *syncCookie;          Avlnode                 *presentlist;
         Avlnode         *presentlist;                  int                             sync_mode;
                 LDAP_LIST_HEAD(np, nonpresent_entry) nonpresentlist;                  LDAP_LIST_HEAD(np, nonpresent_entry) nonpresentlist;
 } syncinfo_t;  } syncinfo_t;
   
 #define IDSTR           "id"  
 #define MASTERSTR       "master"  
 #define SUFFIXSTR       "suffix"  
 #define UPDATEDNSTR             "updatedn"  
 #define BINDDNSTR       "binddn"  
 #define BINDMETHSTR     "bindmethod"  
 #define SIMPLESTR       "simple"  
 #define SASLSTR         "sasl"  
 #define CREDSTR         "credentials"  
 #define OLDAUTHCSTR     "bindprincipal"  
 #define AUTHCSTR        "authcID"  
 #define AUTHZSTR        "authzID"  
 #define SRVTABSTR       "srvtab"  
 #define SASLMECHSTR     "saslmech"  
 #define REALMSTR        "realm"  
 #define SECPROPSSTR     "secprops"  
 #define TLSSTR          "tls"  
 #define TLSCRITICALSTR  "critical"  
   
 #define FILTERSTR       "filter"  
 #define SEARCHBASESTR   "searchbase"  
 #define SCOPESTR        "scope"  
 #define ATTRSSTR        "attrs"  
 #define ATTRSONLYSTR    "attrsonly"  
 #define TYPESTR         "type"  
 #define INTERVALSTR     "interval"  
 #define COOKIESTR       "cookie"  
 #define LASTMODSTR      "lastmod"  
 #define LMREQSTR        "req"  
 #define LMGENSTR        "gen"  
 #define LMNOSTR         "no"  
   
 #endif /* LDAP_SYNCREPL */  
   
 struct slap_backend_db {  struct slap_backend_db {
         BackendInfo     *bd_info;       /* pointer to shared backend info */          BackendInfo     *bd_info;       /* pointer to shared backend info */
   
Line 1422  struct slap_backend_db { Line 1373  struct slap_backend_db {
 #define         be_entry_get bd_info->bi_tool_entry_get  #define         be_entry_get bd_info->bi_tool_entry_get
 #define         be_entry_put bd_info->bi_tool_entry_put  #define         be_entry_put bd_info->bi_tool_entry_put
 #define         be_sync bd_info->bi_tool_sync  #define         be_sync bd_info->bi_tool_sync
   #define         be_dn2id_get bd_info->bi_tool_dn2id_get
   #define         be_id2entry_get bd_info->bi_tool_id2entry_get
   #define         be_entry_modify bd_info->bi_tool_entry_modify
 #endif  #endif
   
 #define SLAP_BFLAG_NOLASTMOD            0x0001U  #define SLAP_BFLAG_NOLASTMOD            0x0001U
   #define SLAP_BFLAG_NO_SCHEMA_CHECK      0x0002U
 #define SLAP_BFLAG_GLUE_INSTANCE        0x0010U /* a glue backend */  #define SLAP_BFLAG_GLUE_INSTANCE        0x0010U /* a glue backend */
 #define SLAP_BFLAG_GLUE_SUBORDINATE     0x0020U /* child of a glue hierarchy */  #define SLAP_BFLAG_GLUE_SUBORDINATE     0x0020U /* child of a glue hierarchy */
 #define SLAP_BFLAG_GLUE_LINKED          0x0040U /* child is connected to parent */  #define SLAP_BFLAG_GLUE_LINKED          0x0040U /* child is connected to parent */
 #define SLAP_BFLAG_ALIASES              0x0100U  #define SLAP_BFLAG_MONITOR                      0x0080U /* a monitor backend */
 #define SLAP_BFLAG_REFERRALS    0x0200U  #define SLAP_BFLAG_INCREMENT            0x0100U
 #define SLAP_BFLAG_SUBENTRIES   0x0400U  #define SLAP_BFLAG_ALIASES                      0x1000U
 #define SLAP_BFLAG_MONITOR              0x1000U  #define SLAP_BFLAG_REFERRALS            0x2000U
 #define SLAP_BFLAG_DYNAMIC              0x2000U  #define SLAP_BFLAG_SUBENTRIES           0x4000U
   #define SLAP_BFLAG_DYNAMIC                      0x8000U
         slap_mask_t     be_flags;          slap_mask_t     be_flags;
 #define SLAP_LASTMOD(be)        (!((be)->be_flags & SLAP_BFLAG_NOLASTMOD))  #define SLAP_LASTMOD(be)        (!((be)->be_flags & SLAP_BFLAG_NOLASTMOD))
   #define SLAP_NO_SCHEMA_CHECK(be)        (((be)->be_flags & SLAP_BFLAG_NO_SCHEMA_CHECK))
 #define SLAP_GLUE_INSTANCE(be)  ((be)->be_flags & SLAP_BFLAG_GLUE_INSTANCE)  #define SLAP_GLUE_INSTANCE(be)  ((be)->be_flags & SLAP_BFLAG_GLUE_INSTANCE)
 #define SLAP_GLUE_SUBORDINATE(be) \  #define SLAP_GLUE_SUBORDINATE(be) \
         ((be)->be_flags & SLAP_BFLAG_GLUE_SUBORDINATE)          ((be)->be_flags & SLAP_BFLAG_GLUE_SUBORDINATE)
 #define SLAP_GLUE_LINKED(be)    ((be)->be_flags & SLAP_BFLAG_GLUE_LINKED)  #define SLAP_GLUE_LINKED(be)    ((be)->be_flags & SLAP_BFLAG_GLUE_LINKED)
   
   #define SLAP_MONITOR(be)        ((be)->be_flags & SLAP_BFLAG_MONITOR)
   #define SLAP_INCREMENT(be)      ((be)->be_flags & SLAP_BFLAG_INCREMENT)
   
 #define SLAP_ALIASES(be)        ((be)->be_flags & SLAP_BFLAG_ALIASES)  #define SLAP_ALIASES(be)        ((be)->be_flags & SLAP_BFLAG_ALIASES)
 #define SLAP_REFERRALS(be)      ((be)->be_flags & SLAP_BFLAG_REFERRALS)  #define SLAP_REFERRALS(be)      ((be)->be_flags & SLAP_BFLAG_REFERRALS)
 #define SLAP_SUBENTRIES(be)     ((be)->be_flags & SLAP_BFLAG_SUBENTRIES)  #define SLAP_SUBENTRIES(be)     ((be)->be_flags & SLAP_BFLAG_SUBENTRIES)
 #define SLAP_MONITOR(be)        ((be)->be_flags & SLAP_BFLAG_MONITOR)  
 #define SLAP_DYNAMIC(be)        ((be)->be_flags & SLAP_BFLAG_DYNAMIC)  #define SLAP_DYNAMIC(be)        ((be)->be_flags & SLAP_BFLAG_DYNAMIC)
   
   
         slap_mask_t     be_restrictops;         /* restriction operations */          slap_mask_t     be_restrictops;         /* restriction operations */
 #define SLAP_RESTRICT_OP_ADD            0x0001U  #define SLAP_RESTRICT_OP_ADD            0x0001U
 #define SLAP_RESTRICT_OP_BIND           0x0002U  #define SLAP_RESTRICT_OP_BIND           0x0002U
Line 1472  struct slap_backend_db { Line 1433  struct slap_backend_db {
   
 #define SLAP_DISALLOW_BIND_ANON         0x0001U /* no anonymous */  #define SLAP_DISALLOW_BIND_ANON         0x0001U /* no anonymous */
 #define SLAP_DISALLOW_BIND_SIMPLE       0x0002U /* simple authentication */  #define SLAP_DISALLOW_BIND_SIMPLE       0x0002U /* simple authentication */
 #define SLAP_DISALLOW_BIND_SIMPLE_UNPROTECTED \  #define SLAP_DISALLOW_BIND_KRBV4        0x0004U /* Kerberos V4 authentication */
                                                                         0x0004U /* unprotected simple auth */  
 #define SLAP_DISALLOW_BIND_KRBV4        0x0008U /* Kerberos V4 authentication */  
   
 #define SLAP_DISALLOW_TLS_2_ANON        0x0010U /* StartTLS -> Anonymous */  #define SLAP_DISALLOW_TLS_2_ANON        0x0010U /* StartTLS -> Anonymous */
 #define SLAP_DISALLOW_TLS_AUTHC         0x0020U /* TLS while authenticated */  #define SLAP_DISALLOW_TLS_AUTHC         0x0020U /* TLS while authenticated */
Line 1514  struct slap_backend_db { Line 1473  struct slap_backend_db {
         void    *be_private;    /* anything the backend database needs     */          void    *be_private;    /* anything the backend database needs     */
   
         void    *be_pb;         /* Netscape plugin */          void    *be_pb;         /* Netscape plugin */
 #ifdef LDAP_SYNCREPL          LDAP_TAILQ_HEAD( pcl, slap_csn_entry )  be_pending_csn_list;
           ldap_pvt_thread_mutex_t                                 be_pcl_mutex;
           struct berval                                                   be_context_csn;
           ldap_pvt_thread_mutex_t                                 be_context_csn_mutex;
         syncinfo_t      *syncinfo;      /* For syncrepl */          syncinfo_t      *syncinfo;      /* For syncrepl */
 #endif  
 };  };
   
 struct slap_conn;  struct slap_conn;
Line 1668  typedef ID (BI_tool_entry_put) LDAP_P(( Line 1629  typedef ID (BI_tool_entry_put) LDAP_P((
                         struct berval *text ));                          struct berval *text ));
 typedef int (BI_tool_entry_reindex) LDAP_P(( BackendDB *be, ID id ));  typedef int (BI_tool_entry_reindex) LDAP_P(( BackendDB *be, ID id ));
 typedef int (BI_tool_sync) LDAP_P(( BackendDB *be ));  typedef int (BI_tool_sync) LDAP_P(( BackendDB *be ));
   typedef ID (BI_tool_dn2id_get) LDAP_P(( BackendDB *be, struct berval *dn ));
   typedef int (BI_tool_id2entry_get) LDAP_P(( BackendDB *be, ID id, Entry **e ));
   typedef ID (BI_tool_entry_modify) LDAP_P(( BackendDB *be, Entry *e, 
                           struct berval *text ));
   
 struct slap_backend_info {  struct slap_backend_info {
         char    *bi_type; /* type of backend */          char    *bi_type; /* type of backend */
Line 1752  struct slap_backend_info { Line 1717  struct slap_backend_info {
         BI_connection_destroy   *bi_connection_destroy;          BI_connection_destroy   *bi_connection_destroy;
   
         /* hooks for slap tools */          /* hooks for slap tools */
         BI_tool_entry_open      *bi_tool_entry_open;          BI_tool_entry_open              *bi_tool_entry_open;
         BI_tool_entry_close     *bi_tool_entry_close;          BI_tool_entry_close             *bi_tool_entry_close;
         BI_tool_entry_first     *bi_tool_entry_first;          BI_tool_entry_first             *bi_tool_entry_first;
         BI_tool_entry_next      *bi_tool_entry_next;          BI_tool_entry_next              *bi_tool_entry_next;
         BI_tool_entry_get       *bi_tool_entry_get;          BI_tool_entry_get               *bi_tool_entry_get;
         BI_tool_entry_put       *bi_tool_entry_put;          BI_tool_entry_put               *bi_tool_entry_put;
         BI_tool_entry_reindex   *bi_tool_entry_reindex;          BI_tool_entry_reindex   *bi_tool_entry_reindex;
         BI_tool_sync            *bi_tool_sync;          BI_tool_sync                    *bi_tool_sync;
           BI_tool_dn2id_get               *bi_tool_dn2id_get;
           BI_tool_id2entry_get    *bi_tool_id2entry_get;
           BI_tool_entry_modify    *bi_tool_entry_modify;
   
 #define SLAP_INDEX_ADD_OP               0x0001  #define SLAP_INDEX_ADD_OP               0x0001
 #define SLAP_INDEX_DELETE_OP    0x0002  #define SLAP_INDEX_DELETE_OP    0x0002
Line 1795  typedef struct slap_callback { Line 1763  typedef struct slap_callback {
         void *sc_private;          void *sc_private;
 } slap_callback;  } slap_callback;
   
   struct slap_overinfo;
   
   typedef struct slap_overinst {
           BackendInfo on_bi;
           slap_response *on_response;
           struct slap_overinfo *on_info;
           struct slap_overinst *on_next;
   } slap_overinst;
   
   typedef struct slap_overinfo {
           BackendInfo oi_bi;
           BackendDB oi_bd;
           slap_overinst *oi_list;
   } slap_overinfo;
   
   /* Should successive callbacks in a chain be processed? */
   #define SLAP_CB_CONTINUE        0x8000
   
 /*  /*
  * Paged Results state   * Paged Results state
  */   */
Line 1806  typedef struct slap_paged_state { Line 1792  typedef struct slap_paged_state {
 } PagedResultsState;  } PagedResultsState;
   
   
 #if defined(LDAP_CLIENT_UPDATE) || defined(LDAP_SYNC)  #define LDAP_PSEARCH_BY_ADD                     0x01
 #define LDAP_PSEARCH_BY_ADD             0x01  
 #define LDAP_PSEARCH_BY_DELETE          0x02  #define LDAP_PSEARCH_BY_DELETE          0x02
 #define LDAP_PSEARCH_BY_PREMODIFY       0x03  #define LDAP_PSEARCH_BY_PREMODIFY       0x03
 #define LDAP_PSEARCH_BY_MODIFY          0x04  #define LDAP_PSEARCH_BY_MODIFY          0x04
Line 1817  struct psid_entry { Line 1802  struct psid_entry {
         struct slap_op *ps_op;          struct slap_op *ps_op;
         LDAP_LIST_ENTRY(psid_entry) ps_link;          LDAP_LIST_ENTRY(psid_entry) ps_link;
 };  };
 #endif  
   
   struct slap_csn_entry {
           struct berval *csn;
           unsigned long opid;
           unsigned long connid;
   #define SLAP_CSN_PENDING        1
   #define SLAP_CSN_COMMIT         2
           long state;
           LDAP_TAILQ_ENTRY (slap_csn_entry) csn_link;
   };
   
 /*  /*
  * represents an operation pending from an ldap client   * represents an operation pending from an ldap client
Line 1915  typedef struct slap_op { Line 1908  typedef struct slap_op {
         char o_subentries_visibility;          char o_subentries_visibility;
 #define get_subentries_visibility(op)   ((int)(op)->o_subentries_visibility)  #define get_subentries_visibility(op)   ((int)(op)->o_subentries_visibility)
   
           char o_assert;
   #define get_assert(op)                                  ((int)(op)->o_assert)
   
         char o_valuesreturnfilter;          char o_valuesreturnfilter;
   
 #ifdef LDAP_CONTROL_X_PERMISSIVE_MODIFY  #ifdef LDAP_CONTROL_X_PERMISSIVE_MODIFY
Line 1931  typedef struct slap_op { Line 1927  typedef struct slap_op {
 #define get_domainScope(op)                             (0)  #define get_domainScope(op)                             (0)
 #endif  #endif
   
           char o_preread;
           char o_postread;
           AttributeName *o_preread_attrs;
           AttributeName *o_postread_attrs;
   
 #ifdef LDAP_CONTROL_PAGEDRESULTS  #ifdef LDAP_CONTROL_PAGEDRESULTS
         char o_pagedresults;          char o_pagedresults;
 #define get_pagedresults(op)                    ((int)(op)->o_pagedresults)  #define get_pagedresults(op)                    ((int)(op)->o_pagedresults)
Line 1940  typedef struct slap_op { Line 1941  typedef struct slap_op {
 #define get_pagedresults(op)                    (0)  #define get_pagedresults(op)                    (0)
 #endif  #endif
   
 #ifdef LDAP_CLIENT_UPDATE  
         char o_clientupdate;  
         char o_clientupdate_type;  
 #define SLAP_LCUP_NONE                          (0x0)  
 #define SLAP_LCUP_SYNC                          (0x1)  
 #define SLAP_LCUP_PERSIST                       (0x2)  
 #define SLAP_LCUP_SYNC_AND_PERSIST              (0x3)  
         ber_int_t o_clientupdate_interval;  
         struct berval o_clientupdate_state;  
 #endif  
   
 #ifdef LDAP_SYNC  
         char o_sync;          char o_sync;
         char o_sync_mode;          char o_sync_mode;
 #define SLAP_SYNC_NONE                          (0x0)  #define SLAP_SYNC_NONE                          (0x0)
Line 1959  typedef struct slap_op { Line 1948  typedef struct slap_op {
 #define SLAP_SYNC_PERSIST                       (0x2)  #define SLAP_SYNC_PERSIST                       (0x2)
 #define SLAP_SYNC_REFRESH_AND_PERSIST           (0x3)  #define SLAP_SYNC_REFRESH_AND_PERSIST           (0x3)
         struct berval o_sync_state;          struct berval o_sync_state;
 #endif  
   
 #if defined(LDAP_CLIENT_UPDATE) || defined(LDAP_SYNC)  
         int o_ps_protocol;  
         int o_ps_entries;          int o_ps_entries;
         LDAP_LIST_ENTRY(slap_op) o_ps_link;          LDAP_LIST_ENTRY(slap_op) o_ps_link;
         LDAP_LIST_HEAD(pe, psid_entry) o_pm_list;          LDAP_LIST_HEAD(pe, psid_entry) o_pm_list;
 #endif  
   
         AuthorizationInformation o_authz;          AuthorizationInformation o_authz;
   
         BerElement      *o_ber;         /* ber of the request             */          BerElement      *o_ber;         /* ber of the request */
 #ifdef LDAP_CONNECTIONLESS          BerElement      *o_res_ber;     /* ber of the CLDAP reply or readback control */
         BerElement      *o_res_ber;     /* ber of the reply               */          slap_callback *o_callback;      /* callback pointers */
 #endif  
         slap_callback   *o_callback;    /* callback pointers */  
         LDAPControl     **o_ctrls;       /* controls */          LDAPControl     **o_ctrls;       /* controls */
   
         void    *o_threadctx;           /* thread pool thread context */          void    *o_threadctx;           /* thread pool thread context */
Line 1987  typedef struct slap_op { Line 1970  typedef struct slap_op {
         void    *o_private;     /* anything the backend needs */          void    *o_private;     /* anything the backend needs */
   
         LDAP_STAILQ_ENTRY(slap_op)      o_next; /* next operation in list         */          LDAP_STAILQ_ENTRY(slap_op)      o_next; /* next operation in list         */
         ValuesReturnFilter *vrFilter; /* Structure represents ValuesReturnFilter */  
   
 #ifdef LDAP_CACHING           Filter *o_assertion; /* Assert control filter */
         char            o_caching_on;   #define get_assertion(op)                               ((op)->o_assertion)
 #endif /*LDAP_CACHING */   
           ValuesReturnFilter *o_vrFilter; /* ValuesReturnFilter */
   
           syncinfo_t*     o_si;
   
 #ifdef LDAP_SLAPI  #ifdef LDAP_SLAPI
         void    *o_pb;                  /* NS-SLAPI plugin */          void    *o_pb;                  /* NS-SLAPI plugin */
           void    *o_extensions;          /* NS-SLAPI plugin */
 #endif  #endif
 } Operation;  } Operation;
   
Line 2113  typedef struct slap_conn { Line 2099  typedef struct slap_conn {
         long    c_n_write;              /* num of write calls */          long    c_n_write;              /* num of write calls */
   
         void    *c_pb;                  /* Netscape plugin */          void    *c_pb;                  /* Netscape plugin */
           void    *c_extensions;          /* Netscape plugin */
   
         /*          /*
          * These are the "callbacks" that are available for back-ends to           * These are the "callbacks" that are available for back-ends to
Line 2195  enum { Line 2182  enum {
 #define SLAP_LDAPDN_PRETTY 0x1  #define SLAP_LDAPDN_PRETTY 0x1
 #define SLAP_LDAPDN_MAXLEN 8192  #define SLAP_LDAPDN_MAXLEN 8192
   
 /*  /* number of response controls supported */
  * Macros for LCUP  #define SLAP_MAX_RESPONSE_CONTROLS   6
  */  
 #ifdef LDAP_CLIENT_UPDATE  
 #define SLAP_LCUP_STATE_UPDATE_TRUE     1  
 #define SLAP_LCUP_STATE_UPDATE_FALSE    0  
 #define SLAP_LCUP_ENTRY_DELETED_TRUE    1  
 #define SLAP_LCUP_ENTRY_DELETED_FALSE   0  
 #endif /* LDAP_CLIENT_UPDATE */  
   
 #if defined(LDAP_CLIENT_UPDATE) || defined(LDAP_SYNC)  
 #define SLAP_SEARCH_MAX_CTRLS   10  
 #endif  
   
 #ifdef LDAP_DEVEL  #ifdef LDAP_DEVEL
 #define SLAP_CTRL_HIDE                          0x00000000U  #define SLAP_CTRL_HIDE                          0x00000000U

Removed from v.1.452.2.1  
changed lines
  Added in v.1.452.2.2


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org