/*
- * $Id$
- *
* This is the other half of the webserver. It handles the task of hooking
* up HTTP requests with the sessions they belong to, using HTTP cookies to
* keep track of things. If the HTTP request doesn't belong to any currently
session_destroy_modules(&sessions_to_kill);
sessions_to_kill = sptr;
}
+}
- /*
- * Check the size of our thread pool. If all threads are executing, spawn another.
- */
- begin_critical_section(S_SPAWNER);
+/*
+ * Check the size of our thread pool. If all threads are executing, spawn another.
+ */
+void check_thread_pool_size(void)
+{
+ if (time_to_die) return; /* don't expand the thread pool during shutdown */
+
+ begin_critical_section(S_SPAWNER); /* only one of these should run at a time */
while (
(num_threads_executing >= num_threads_existing)
&& (num_threads_existing < MAX_WORKER_THREADS)
) {
+ lprintf(3, "%d of %d threads are executing. Adding another worker thread.\n",
+ num_threads_executing,
+ num_threads_existing
+ );
spawn_another_worker_thread();
}
end_critical_section(S_SPAWNER);
}
StrBufAppendBuf(Hdr->this_page, Hdr->HR.ReqLine, 0);
+
/* chop Filename / query arguments */
Args = strchr(ChrPtr(Hdr->HR.ReqLine), '?');
if (Args == NULL) /* whe're not that picky about params... TODO: this will spoil '&' in filenames.*/
void Header_HandleHost(StrBuf *Line, ParsedHttpHdrs *hdr)
{
- if ((follow_xff) && (hdr->HR.http_host != NULL))
- return;
- else
- hdr->HR.http_host = Line;
+ if (site_prefix == NULL) {
+ site_prefix = NewStrBuf();
+ StrBufAppendPrintf(site_prefix, "%s://", (is_https ? "https" : "http") );
+ StrBufAppendBuf(site_prefix, Line, 0);
+ lprintf(CTDL_DEBUG, "\033[33m [%s] \033[0m\n", ChrPtr(site_prefix));
+ }
}
void Header_HandleXFFHost(StrBuf *Line, ParsedHttpHdrs *hdr)
{
- if (follow_xff)
- hdr->HR.http_host = Line;
+ if (follow_xff) {
+ /* FIXME do something here */
+ }
}