X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fwebcit.c;h=57e3b18e36e178528517d19d7a221d4a6e7c8bc9;hb=f9c270e0e7ec5f05da921060ac4d305bdeb07ae6;hp=391370bcac789f87d34d88deccdf0be681258ebb;hpb=1be2e9116bab115350ea0346aa1dfabf79313b2a;p=citadel.git
diff --git a/webcit/webcit.c b/webcit/webcit.c
index 391370bca..57e3b18e3 100644
--- a/webcit/webcit.c
+++ b/webcit/webcit.c
@@ -272,41 +272,6 @@ void http_transmit_thing(const char *content_type,
end_burst();
}
-/*
- * print menu box like used in the floor view or admin interface.
- * This function takes pair of strings as va_args,
- * Title Title string of the box
- * Class CSS Class for the box
- * nLines How many string pairs should we print? (URL, UrlText)
- * ... Pairs of URL Strings and their Names
- */
-void print_menu_box(char* Title, char *Class, int nLines, ...)
-{
- va_list arg_list;
- long i;
-
- svput("BOXTITLE", WCS_STRING, Title);
- do_template("beginboxx", NULL);
-
- wprintf("
");
-
- do_template("endbox", NULL);
-}
-
-
/*
* Convenience functions to display a page containing only a string
@@ -546,10 +511,12 @@ void ReadPostData(void)
StrBufCutLeft(content, body_start);
ParseURLParams(content);
} else if (!strncasecmp(ChrPtr(WCC->Hdr->HR.ContentType), "multipart", 9)) {
- content_end = ChrPtr(content) +
- WCC->Hdr->HR.ContentLength +
- body_start;
- mime_parser(ChrPtr(content), content_end, *upload_handler, NULL, NULL, NULL, 0);
+ char *Buf;
+ char *BufEnd;
+ Buf = SmashStrBuf(&content);
+ content_end = Buf + WCC->Hdr->HR.ContentLength + body_start;
+ mime_parser(Buf, BufEnd, *upload_handler, NULL, NULL, NULL, 0);
+ free(Buf);
} else if (WCC->Hdr->HR.ContentLength > 0) {
WCC->upload = content;
content = NULL;
@@ -558,6 +525,30 @@ void ReadPostData(void)
}
+void ParseREST_URL(void)
+{
+ StrBuf *Buf;
+ wcsession *WCC = WC;
+ long i = 0;
+ const char *pCh = NULL;
+
+ WCC->Directory = NewHash(1, Flathash);
+
+ Buf = NewStrBuf();
+ while (StrBufExtract_NextToken(WCC->Hdr->HR.ReqLine,
+ Buf, &pCh, '/') >= 0)
+ {
+ Put(WCC->Directory, IKEY(i), Buf, HFreeStrBuf);
+ i++;
+ Buf = NewStrBuf();
+ }
+ if (i == 0)
+ FreeStrBuf(&Buf);
+}
+
+
+
+
/*
* Entry point for WebCit transaction
*/
@@ -686,6 +677,10 @@ void session_loop(void)
display_login(NULL);
}
else {
+/*
+ if ((WCC->Hdr->HR.Handler->Flags & PARSE_REST_URL) != 0)
+ ParseREST_URL();
+*/
if ((WCC->Hdr->HR.Handler->Flags & AJAX) != 0)
begin_ajax_response();
WCC->Hdr->HR.Handler->F();