StrBuf *csslocal = NULL;
HashList *HandlerHash = NULL;
+void PutRequestLocalMem(void *Data, DeleteHashDataFunc DeleteIt)
+{
+ wcsession *WCC = WC;
+ int n;
+
+ n = GetCount(WCC->Hdr->HTTPHeaders);
+ Put(WCC->Hdr->HTTPHeaders, IKEY(n), Data, DeleteIt);
+}
void DeleteWebcitHandler(void *vHandler)
{
StrBufAppendTemplate(Target, TP, WCC->Hdr->HR.Handler->DisplayName, 0);
}
-void tmplput_HOST_DISPLAYNAME(StrBuf *Target, WCTemplputParams *TP)
-{
- wcsession *WCC = WC;
- StrBufAppendTemplate(Target, TP, WCC->Hdr->HR.http_host, 0);
-}
/*
* web-printing funcion. uses our vsnprintf wrapper
int ReadPostData(void)
{
int rc;
- int body_start = 0;
+ int urlencoded_post = 0;
wcsession *WCC = WC;
StrBuf *content = NULL;
+ urlencoded_post = (strncasecmp(ChrPtr(WCC->Hdr->HR.ContentType), "application/x-www-form-urlencoded", 33) == 0) ;
+
content = NewStrBufPlain(NULL, WCC->Hdr->HR.ContentLength + 256);
- StrBufPrintf(content,
+ if (!urlencoded_post)
+ {
+ StrBufPrintf(content,
"Content-type: %s\n"
- "Content-length: %ld\n\n",
- ChrPtr(WCC->Hdr->HR.ContentType),
+ "Content-length: %ld\n\n",
+ ChrPtr(WCC->Hdr->HR.ContentType),
WCC->Hdr->HR.ContentLength);
-/*
- hprintf("Content-type: %s\n"
- "Content-length: %d\n\n",
- ContentType, ContentLength);
-*/
- body_start = StrLength(content);
+ }
/** Read the entire input data at once. */
rc = client_read_to(WCC->Hdr, content,
return rc;
- if (!strncasecmp(ChrPtr(WCC->Hdr->HR.ContentType), "application/x-www-form-urlencoded", 33)) {
- StrBufCutLeft(content, body_start);
+ if (urlencoded_post) {
ParseURLParams(content);
} else if (!strncasecmp(ChrPtr(WCC->Hdr->HR.ContentType), "multipart", 9)) {
char *Buf;
RegisterNamespace("IMPORTANTMESSAGE", 0, 0, tmplput_importantmessage, NULL, CTX_NONE);
RegisterNamespace("TRAILING_JAVASCRIPT", 0, 0, tmplput_trailing_javascript, NULL, CTX_NONE);
RegisterNamespace("URL:DISPLAYNAME", 0, 1, tmplput_HANDLER_DISPLAYNAME, NULL, CTX_NONE);
- RegisterNamespace("URL:HOSTNAME", 0, 1, tmplput_HOST_DISPLAYNAME, NULL, CTX_NONE);
snprintf(dir, SIZ, "%s/webcit.css", static_local_dir);