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.