int return_value;
StrBuf *NewLine = NewStrBuf();
Hdr->HR.DontNeedAuth = 1;
- StrBufAppendPrintf(NewLine, "GET /landing?go=%s HTTP/1.0", ChrPtr(Buf));
+ StrBufAppendPrintf(NewLine, "GET /landing?go=%s?failvisibly=1 HTTP/1.0", ChrPtr(Buf));
syslog(LOG_DEBUG, "Replacing with: %s", ChrPtr(NewLine));
return_value = ReadHttpSubject(Hdr, NewLine, Buf);
FreeStrBuf(&NewLine);
continue;
}
- StrBufSanitizeAscii(Line, 'ยง');
+ StrBufSanitizeAscii(Line, (char)0xa7);
StrBufExtract_token(HeaderName, Line, 0, ':');
pchs = ChrPtr(Line);
* 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;
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",
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... */