Revert changes to Kruskal's algo.
[tinc] / src / graph.c
index abc918d..dd080c0 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: graph.c,v 1.1.2.7 2002/02/18 16:25:16 guus Exp $
+    $Id: graph.c,v 1.1.2.9 2002/03/12 16:30:15 guus Exp $
 */
 
 /* We need to generate two trees from the graph:
@@ -77,11 +77,22 @@ void mst_kruskal(void)
   int safe_edges = 0;
   int skipped;
 
+  /* Clear MST status on connections */
+
+  for(node = connection_tree->head; node; node = node->next)
+    {
+      c = (connection_t *)node->data;
+      c->status.mst = 0;
+    }
+
   /* Do we have something to do at all? */
   
   if(!edge_weight_tree->head)
     return;
 
+  if(debug_lvl >= DEBUG_SCARY_THINGS)
+    syslog(LOG_DEBUG, "Running Kruskal's algorithm:");
+
   /* Clear visited status on nodes */
 
   for(node = node_tree->head; node; node = node->next)
@@ -95,14 +106,6 @@ void mst_kruskal(void)
   
   ((edge_t *)edge_weight_tree->head->data)->from.node->status.visited = 1;
 
-  /* Clear MST status on connections */
-
-  for(node = connection_tree->head; node; node = node->next)
-    {
-      c = (connection_t *)node->data;
-      c->status.mst = 0;
-    }
-
   /* Add safe edges */
 
   for(skipped = 0, node = edge_weight_tree->head; node; node = next)
@@ -123,12 +126,18 @@ void mst_kruskal(void)
 
       safe_edges++;
 
+      if(debug_lvl >= DEBUG_SCARY_THINGS)
+       syslog(LOG_DEBUG, " Adding edge %s - %s weight %d", e->from.node->name, e->to.node->name, e->weight);
+
       if(skipped)
         {
           next = edge_weight_tree->head;
           continue;
         }
     }
+
+  if(debug_lvl >= DEBUG_SCARY_THINGS)
+    syslog(LOG_DEBUG, "Done, counted %d nodes and %d safe edges.", nodes, safe_edges);
 }
 
 /* Implementation of a simple breadth-first search algorithm.