<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Index: ft_node.c
===================================================================
RCS file: /cvsroot/gift/OpenFT/src/ft_node.c,v
retrieving revision 1.55
diff -u -r1.55 ft_node.c
--- ft_node.c	5 Feb 2004 21:19:46 -0000	1.55
+++ ft_node.c	5 May 2004 20:06:58 -0000
@@ -57,8 +57,8 @@
 	/* this will destroy all the necessary associations for us */
 	if (node-&gt;session)
 	{
-		if (node-&gt;session-&gt;search_db)
+		if (node-&gt;session-&gt;search_db &amp;&amp; !openft-&gt;shutdown)
 			FT-&gt;warn (FT, "removing node with an active search database!");
 
 		ft_session_stop (FT_CONN(node));
@@ -169,7 +170,7 @@
 	openft = node-&gt;ninfo.port_openft;
 	http   = node-&gt;ninfo.port_http;
 
-	node-&gt;ninfo.indirect = BOOL_EXPR (openft == 0 || http == 0);
+	node-&gt;ninfo.indirect = BOOL_EXPR (openft == 0);
 }
 
 void ft_node_set_port (FTNode *node, in_port_t port)
@@ -561,6 +565,10 @@
 	if (!loss &amp;&amp; !gain)
 		return;
 
+	/* shutting down */
+	if (openft-&gt;shutdown)
+		return;
+
 	/* the API tells us we need to register class changes, although the
 	 * implementation does not actually do anything with them */
 	ft_netorg_change (node, orig, node-&gt;state);
@@ -686,9 +694,8 @@
 	else
 	{
 		assert (node-&gt;ninfo.port_openft &gt; 0);
-		assert (node-&gt;ninfo.port_http &gt; 0);
 
 		if (node-&gt;session)
 		{
 			if (node-&gt;session-&gt;verified == FALSE)
</pre></body></html>