Multiple childs of membership are now respected (not only the first one)
authorshort <>
Fri, 22 Jun 2001 18:41:24 +0000 (18:41 +0000)
committershort <>
Fri, 22 Jun 2001 18:41:24 +0000 (18:41 +0000)
 - The Truth: non-valid membership doesn't YET solve the parent!
 - bugreport by courtesy of Pavel Ruzicka <pavel.ruzicka@gtsgroup.cz>

cfgeval.c

index 8b2f33c..c85122a 100644 (file)
--- a/cfgeval.c
+++ b/cfgeval.c
@@ -1447,10 +1447,13 @@ struct membership *membership;
     child_entity = MEMBERSHIP_TO_CHILD_ENTITY( membership);
     check_request_scan_entity( child_entity, 0);
 
+#if 0 /* non-valid membership doesn't YET solve the parent! */
     if (child_entity->request_scan.belongs == ER_FALSE || membership_valid == ER_FALSE) {
        membership_parent_solve(membership, ER_FALSE);
        return;
     }
+#endif
+
     if (child_entity->request_scan.belongs == ER_TRUE  && membership_valid == ER_TRUE ) {
        membership_parent_solve(membership, ER_TRUE );
        return;
@@ -1461,8 +1464,8 @@ struct membership *membership;
     if (parent_entity->request_scan.belongs == ER_UNKNOWN)
        register_kicked_entity(parent_entity, 0 /* priority */);
 
-    if ( child_entity->request_scan.belongs != ER_UNKNOWN
-     && parent_entity->request_scan.belongs != ER_UNKNOWN)
+    if (parent_entity->request_scan.belongs != ER_UNKNOWN
+     || (child_entity->request_scan.belongs == ER_FALSE || membership_valid == ER_FALSE))
        membership_solved(membership);
 
     if (debug & DEBUG_CFGEVAL_FLAG)