OK, now I took out the Ns_Log statement I used to debug this.

It still works.

diff -ur --exclude=CVS aolserver/nsd/nsd.h aolserver-vsfix/nsd/nsd.h
--- aolserver/nsd/nsd.h Tue Oct 29 19:01:51 2002
+++ aolserver-vsfix/nsd/nsd.h   Mon Jan 13 21:33:47 2003
@@ -110,6 +110,8 @@

 typedef int bool;

+struct NsServer;
+
 struct _nsconf {
     char          *argv0;
     char          *nsd;
@@ -131,6 +133,7 @@
      */

     Tcl_HashTable   servertable;
+    struct NsServer *defaultserver;
     Tcl_DString     servers;

     /*
@@ -261,8 +264,6 @@
  * The following structure maitains data for each instance of
  * a driver initialized with Ns_DriverInit.
  */
-
-struct NsServer;

 typedef struct Driver {

diff -ur --exclude=CVS aolserver/nsd/queue.c aolserver-vsfix/nsd/queue.c
--- aolserver/nsd/queue.c       Tue Oct 29 19:02:06 2002
+++ aolserver-vsfix/nsd/queue.c Mon Jan 13 22:23:42 2003
@@ -244,10 +244,9 @@
                servPtr = Tcl_GetHashValue(hPtr);
            }
        }
-fprintf(stderr, "%s %p\n", host, servPtr);
     }
     if (servPtr == NULL) {
-       return 0;
+       servPtr = nsconf.defaultserver;
     }

     /*
diff -ur --exclude=CVS aolserver/nsd/server.c aolserver-vsfix/nsd/server.c
--- aolserver/nsd/server.c      Tue Oct 29 19:02:13 2002
+++ aolserver-vsfix/nsd/server.c        Mon Jan 13 22:16:52 2003
@@ -204,6 +204,9 @@
     servPtr = ns_calloc(1, sizeof(NsServer));
     Tcl_SetHashValue(hPtr, servPtr);
     initServPtr = servPtr;
+    if (nsconf.defaultserver == NULL) {
+       nsconf.defaultserver = servPtr;
+    }

     /*
      * Create a new NsServer.

Reply via email to