]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldap/back-ldap.h
Partially revert prev commit, leave rs->sr_err == SLAPD_ABANDON
[openldap] / servers / slapd / back-ldap / back-ldap.h
index 104ae675c98b697601b1608f39b8efb0c23da397..54e55ce6330a220886ea6713960e9265e76dac22 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1999-2008 The OpenLDAP Foundation.
+ * Copyright 1999-2009 The OpenLDAP Foundation.
  * Portions Copyright 2000-2003 Pierangelo Masarati.
  * Portions Copyright 1999-2003 Howard Chu.
  * All rights reserved.
@@ -315,6 +315,9 @@ typedef struct ldapinfo_t {
 #define        LDAP_BACK_F_ST_RESPONSE         (0x00040000U)
 #endif /* SLAP_CONTROL_X_SESSION_TRACKING */
 
+#define LDAP_BACK_F_NOREFS             (0x00080000U)
+#define LDAP_BACK_F_NOUNDEFFILTER      (0x00100000U)
+
 #define        LDAP_BACK_ISSET_F(ff,f)         ( ( (ff) & (f) ) == (f) )
 #define        LDAP_BACK_ISMASK_F(ff,m,f)      ( ( (ff) & (m) ) == (f) )
 
@@ -353,6 +356,9 @@ typedef struct ldapinfo_t {
 #define        LDAP_BACK_ST_RESPONSE(li)       LDAP_BACK_ISSET( (li), LDAP_BACK_F_ST_RESPONSE)
 #endif /* SLAP_CONTROL_X_SESSION_TRACKING */
 
+#define        LDAP_BACK_NOREFS(li)            LDAP_BACK_ISSET( (li), LDAP_BACK_F_NOREFS)
+#define        LDAP_BACK_NOUNDEFFILTER(li)     LDAP_BACK_ISSET( (li), LDAP_BACK_F_NOUNDEFFILTER)
+
        int                     li_version;
 
        /* cached connections; 
@@ -387,6 +393,8 @@ typedef struct ldapinfo_t {
        time_t                  li_timeout[ SLAP_OP_LAST ];
 } ldapinfo_t;
 
+#define        LDAP_ERR_OK(err) ((err) == LDAP_SUCCESS || (err) == LDAP_COMPARE_FALSE || (err) == LDAP_COMPARE_TRUE)
+
 typedef enum ldap_back_send_t {
        LDAP_BACK_DONTSEND              = 0x00,
        LDAP_BACK_SENDOK                = 0x01,
@@ -424,6 +432,17 @@ typedef enum ldap_back_send_t {
 #define LDAP_BACK_PRINT_CONNTREE 0
 #endif /* !LDAP_BACK_PRINT_CONNTREE */
 
+typedef struct ldap_extra_t {
+       int (*proxy_authz_ctrl)( Operation *op, SlapReply *rs, struct berval *bound_ndn,
+               int version, slap_idassert_t *si, LDAPControl   *ctrl );
+       int (*controls_free)( Operation *op, SlapReply *rs, LDAPControl ***pctrls );
+       int (*idassert_authzfrom_parse_cf)( const char *fname, int lineno, const char *arg, slap_idassert_t *si );
+       int (*idassert_parse_cf)( const char *fname, int lineno, int argc, char *argv[], slap_idassert_t *si );
+       void (*retry_info_destroy)( slap_retry_info_t *ri );
+       int (*retry_info_parse)( char *in, slap_retry_info_t *ri, char *buf, ber_len_t buflen );
+       int (*retry_info_unparse)( slap_retry_info_t *ri, struct berval *bvout );
+} ldap_extra_t;
+
 LDAP_END_DECL
 
 #include "proto-ldap.h"