]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/rwmmap.c
ITS#4225 added proxyCacheQueries parameter for configuring max_queries
[openldap] / servers / slapd / overlays / rwmmap.c
index 73169050cfe5b4100a89a62417a76cc2badbf5b5..13a261dcc2396c463ae8fb40de1d7c9a0b8df657 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1999-2005 The OpenLDAP Foundation.
+ * Copyright 1999-2006 The OpenLDAP Foundation.
  * Portions Copyright 1999-2003 Howard Chu.
  * Portions Copyright 2000-2003 Pierangelo Masarati.
  * All rights reserved.
@@ -685,6 +685,7 @@ computed:;
        case SLAPD_FILTER_COMPUTED:
                switch ( f->f_result ) {
                case LDAP_COMPARE_FALSE:
+               /* FIXME: treat UNDEFINED as FALSE */
                case SLAPD_COMPARE_UNDEFINED:
                        if ( dc->rwmap->rwm_flags & RWM_F_SUPPORT_T_F ) {
                                tmp = &ber_bvtf_false;
@@ -696,10 +697,9 @@ computed:;
                case LDAP_COMPARE_TRUE:
                        if ( dc->rwmap->rwm_flags & RWM_F_SUPPORT_T_F ) {
                                tmp = &ber_bvtf_true;
-
-                       } else {
-                               tmp = &ber_bvtrue;
+                               break;
                        }
+                       tmp = &ber_bvtrue;
                        break;
                        
                default:
@@ -1198,6 +1198,16 @@ rwm_dnattr_result_rewrite(
        return 0;
 }
 
+void
+rwm_mapping_dst_free( void *v_mapping )
+{
+       struct ldapmapping *mapping = v_mapping;
+
+       if ( BER_BVISEMPTY( &mapping[0].m_dst ) ) {
+               rwm_mapping_free( &mapping[ -1 ] );
+       }
+}
+
 void
 rwm_mapping_free( void *v_mapping )
 {