void ReadPostData(void)
{
- const char *content_end = NULL;
int body_start = 0;
wcsession *WCC = WC;
StrBuf *content = NULL;
} else if (!strncasecmp(ChrPtr(WCC->Hdr->HR.ContentType), "multipart", 9)) {
char *Buf;
char *BufEnd;
+ long len;
+
+ len = StrLength(content);
Buf = SmashStrBuf(&content);
- content_end = Buf + WCC->Hdr->HR.ContentLength + body_start;
+ BufEnd = Buf + len;
mime_parser(Buf, BufEnd, *upload_handler, NULL, NULL, NULL, 0);
free(Buf);
} else if (WCC->Hdr->HR.ContentLength > 0) {
WCC->upload = content;
+ WCC->upload_length = StrLength(WCC->upload);
content = NULL;
}
FreeStrBuf(&content);
void ParseREST_URL(void)
{
StrBuf *Buf;
+ StrBuf *pFloor = NULL;
wcsession *WCC = WC;
long i = 0;
const char *pCh = NULL;
+ HashList *Floors;
+ void *vFloor;
WCC->Directory = NewHash(1, Flathash);
Buf, &pCh, '/') >= 0)
{
Put(WCC->Directory, IKEY(i), Buf, HFreeStrBuf);
+ if (i==0)
+ pFloor = Buf;
i++;
Buf = NewStrBuf();
}
if (i == 0)
FreeStrBuf(&Buf);
+ else if (pFloor != NULL)
+ {
+ Floors = GetFloorListHash(NULL, NULL);
+
+ if (Floors != NULL)
+ {
+ if (GetHash(Floors, SKEY(pFloor), &vFloor))
+ WCC->CurrentFloor = (floor*) vFloor;
+ }
+ }
}
WebcitAddUrlHandler(HKEY("401"), authorization_required, ANONYMOUS|COOKIEUNNEEDED);
RegisterConditional(HKEY("COND:IMPMSG"), 0, ConditionalImportantMesage, CTX_NONE);
- RegisterNamespace("CSSLOCAL", 0, 0, tmplput_csslocal, CTX_NONE);
- RegisterNamespace("IMPORTANTMESSAGE", 0, 0, tmplput_importantmessage, CTX_NONE);
- RegisterNamespace("TRAILING_JAVASCRIPT", 0, 0, tmplput_trailing_javascript, CTX_NONE);
+ RegisterNamespace("CSSLOCAL", 0, 0, tmplput_csslocal, NULL, CTX_NONE);
+ RegisterNamespace("IMPORTANTMESSAGE", 0, 0, tmplput_importantmessage, NULL, CTX_NONE);
+ RegisterNamespace("TRAILING_JAVASCRIPT", 0, 0, tmplput_trailing_javascript, NULL, CTX_NONE);
snprintf(dir, SIZ, "%s/webcit.css", static_local_dir);
if (!access(dir, R_OK)) {
SessionDetachModule_WEBCIT
(wcsession *sess)
{
- DeleteHash(&sess->Hdr->urlstrings);// TODO?
- if (sess->upload_length > 0) {
- FreeStrBuf(&sess->upload);
- sess->upload_length = 0;
- }
+ DeleteHash(&sess->Directory);
+
+ FreeStrBuf(&sess->upload);
+ sess->upload_length = 0;
+
FreeStrBuf(&sess->trailing_javascript);
if (StrLength(sess->WBuf) > SIZ * 30) /* Bigger than 120K? release. */