]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/rwmmap.c
More for prev commit - set entryCSN as well.
[openldap] / servers / slapd / overlays / rwmmap.c
index 73169050cfe5b4100a89a62417a76cc2badbf5b5..1fa9c506d4631bb23a7256911447af6166f2c06f 100644 (file)
@@ -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 )
 {