]> code.citadel.org Git - citadel.git/blobdiff - webcit/context_loop.c
* just calculate the language for non-static requests; else we will run this useless...
[citadel.git] / webcit / context_loop.c
index aa8a467a9287908a531f16b71de13799dadffc40..43adf38dd536b6eed464f2c850599b9486687e93 100644 (file)
@@ -177,7 +177,7 @@ wcsession *FindSession(wcsession **wclist, ParsedHttpHdrs *Hdr, pthread_mutex_t
        return TheSession;
 }
 
-wcsession *CreateSession(int Lockable, wcsession **wclist, ParsedHttpHdrs *Hdr, pthread_mutex_t *ListMutex)
+wcsession *CreateSession(int Lockable, int Static, wcsession **wclist, ParsedHttpHdrs *Hdr, pthread_mutex_t *ListMutex)
 {
        wcsession *TheSession;
        lprintf(3, "Creating a new session\n");
@@ -203,7 +203,7 @@ wcsession *CreateSession(int Lockable, wcsession **wclist, ParsedHttpHdrs *Hdr,
        else {
                TheSession->wc_session = Hdr->HR.desired_session;
        }
-
+       Hdr->HR.Static = Static;
        session_new_modules(TheSession);
 
        if (Lockable) {
@@ -248,7 +248,7 @@ void do_404(void)
 {
        hprintf("HTTP/1.1 404 Not found\r\n");
        hprintf("Content-Type: text/plain\r\n");
-       wprintf("Not found\r\n");
+       wc_printf("Not found\r\n");
        end_burst();
 }
 
@@ -487,7 +487,7 @@ void context_loop(ParsedHttpHdrs *Hdr)
        {
                wcsession *Bogus;
 
-               Bogus = CreateSession(0, NULL, Hdr, NULL);
+               Bogus = CreateSession(0, 1, NULL, Hdr, NULL);
 
                do_404();
 
@@ -505,7 +505,7 @@ void context_loop(ParsedHttpHdrs *Hdr)
        if ((Hdr->HR.Handler != NULL) && ((Hdr->HR.Handler->Flags & ISSTATIC) != 0))
        {
                wcsession *Static;
-               Static = CreateSession(0, NULL, Hdr, NULL);
+               Static = CreateSession(0, 1, NULL, Hdr, NULL);
                
                Hdr->HR.Handler->F();
 
@@ -540,7 +540,7 @@ void context_loop(ParsedHttpHdrs *Hdr)
         * Create a new session if we have to
         */
        if (TheSession == NULL) {
-               TheSession = CreateSession(1, &SessionList, Hdr, &SessionListMutex);
+               TheSession = CreateSession(1, 0, &SessionList, Hdr, &SessionListMutex);
 
                if ((StrLength(Hdr->c_username) == 0) && (!Hdr->HR.DontNeedAuth)) {
 
@@ -776,17 +776,17 @@ InitModule_CONTEXT
        RegisterNamespace("CURRENT_ROOM", 0, 1, tmplput_current_room, NULL, CTX_NONE);
        RegisterNamespace("NONCE", 0, 0, tmplput_nonce, NULL, 0);
 
-       WebcitAddUrlHandler(HKEY("404"), do_404, ANONYMOUS|COOKIEUNNEEDED);
+       WebcitAddUrlHandler(HKEY("404"), "", 0, do_404, ANONYMOUS|COOKIEUNNEEDED);
 /*
  * Look for commonly-found probes of malware such as worms, viruses, trojans, and Microsoft Office.
  * Short-circuit these requests so we don't have to send them through the full processing loop.
  */
-       WebcitAddUrlHandler(HKEY("scripts"), do_404, ANONYMOUS|BOGUS);          /* /root.exe - Worms and trojans and viruses, oh my! */
-       WebcitAddUrlHandler(HKEY("c"), do_404, ANONYMOUS|BOGUS);                /* /winnt */
-       WebcitAddUrlHandler(HKEY("MSADC"), do_404, ANONYMOUS|BOGUS);
-       WebcitAddUrlHandler(HKEY("_vti"), do_404, ANONYMOUS|BOGUS);             /* Broken Microsoft DAV implementation */
-       WebcitAddUrlHandler(HKEY("MSOffice"), do_404, ANONYMOUS|BOGUS);         /* Stoopid MSOffice thinks everyone is IIS */
-       WebcitAddUrlHandler(HKEY("nonexistenshit"), do_404, ANONYMOUS|BOGUS);   /* Exploit found in the wild January 2009 */
+       WebcitAddUrlHandler(HKEY("scripts"), "", 0, do_404, ANONYMOUS|BOGUS);           /* /root.exe - Worms and trojans and viruses, oh my! */
+       WebcitAddUrlHandler(HKEY("c"), "", 0, do_404, ANONYMOUS|BOGUS);         /* /winnt */
+       WebcitAddUrlHandler(HKEY("MSADC"), "", 0, do_404, ANONYMOUS|BOGUS);
+       WebcitAddUrlHandler(HKEY("_vti"), "", 0, do_404, ANONYMOUS|BOGUS);              /* Broken Microsoft DAV implementation */
+       WebcitAddUrlHandler(HKEY("MSOffice"), "", 0, do_404, ANONYMOUS|BOGUS);          /* Stoopid MSOffice thinks everyone is IIS */
+       WebcitAddUrlHandler(HKEY("nonexistenshit"), "", 0, do_404, ANONYMOUS|BOGUS);    /* Exploit found in the wild January 2009 */
 }