]> code.citadel.org Git - citadel.git/blobdiff - webcit/context_loop.c
Attachments: start using fineuploader.com to upload attachments to messages.
[citadel.git] / webcit / context_loop.c
index 5320e56fc58dfb8f1a351ea83103e5d7265256e3..a04c711bf2b665420c09d9af4d9164e93722b07d 100644 (file)
@@ -633,9 +633,9 @@ void context_loop(ParsedHttpHdrs *Hdr)
         * table from getting bombarded with new sessions when, for example, a web
         * spider crawls the site without using cookies.
         */
-       if ((session_may_be_reused) && (!WC->logged_in)) {
-               WC->wc_session = 0;                     /* flag as available for re-use */
-               TheSession->selected_language = 0;      /* clear any non-default language setting */
+       if ((session_may_be_reused) && (!TheSession->logged_in)) {
+               TheSession->wc_session = 0;             /* flag as available for re-use */
+               TheSession->selected_language = -1;     /* clear any non-default language setting */
        }
 
        TheSession->Hdr = NULL;
@@ -714,6 +714,31 @@ void Header_HandleAcceptEncoding(StrBuf *Line, ParsedHttpHdrs *hdr)
                hdr->HR.gzip_ok = 1;
        }
 }
+
+void Header_HandleContentRange(StrBuf *Line, ParsedHttpHdrs *hdr)
+{
+       const char *PRange = ChrPtr(Line);
+
+       while ((*PRange != '=') && (*PRange != '\0'))
+               PRange ++;
+       if (*PRange == '=')
+               PRange ++;
+       if ((*PRange == '\0'))
+               return;
+       hdr->HaveRange = 1;
+       hdr->RangeStart = atol(PRange);
+
+       while (isdigit(*PRange))
+               PRange++;
+
+       if (*PRange == '-')
+               PRange ++;
+       if ((*PRange == '\0'))
+               hdr->RangeTil = -1;
+       else
+               hdr->RangeTil = atol(PRange);
+}
+
 const char *ReqStrs[eNONE] = {
        "GET",
        "POST",
@@ -798,6 +823,7 @@ void
 InitModule_CONTEXT
 (void)
 {
+       RegisterHeaderHandler(HKEY("RANGE"), Header_HandleContentRange);
        RegisterHeaderHandler(HKEY("CONTENT-LENGTH"), Header_HandleContentLength);
        RegisterHeaderHandler(HKEY("CONTENT-TYPE"), Header_HandleContentType);
        RegisterHeaderHandler(HKEY("X-FORWARDED-HOST"), Header_HandleXFFHost); /* Apache way... */