void urlesc(char *outbuf, char *strbuf)
{
int a, b, c;
- char *ec = " #&;`'|*?-~<>^()[]{}$\\";
+ char *ec = " #&;`'|*?-~<>^()[]{}$\"\\";
strcpy(outbuf, "");
strcpy(target, "");
for (a = 0; a < strlen(strbuf); ++a) {
- if (strbuf[a] == '\'')
- strcat(target, "\\'");
- else if (strbuf[a] == '\n')
+ if (strbuf[a] == '\n')
strcat(target, " ");
else if (strbuf[a] == '\r')
strcat(target, " ");
wprintf("URI: %s\r\n", whichpage);
wprintf("Content-type: text/html; charset=utf-8\r\n\r\n");
wprintf("<html><body>");
- wprintf("Go <A HREF=\"%s\">here</A>.", whichpage);
+ wprintf("Go <a href=\"%s\">here</A>.", whichpage);
wprintf("</body></html>\n");
}
* Offer to make any page the user's "start page."
*/
void offer_start_page(void) {
- wprintf("<A HREF=\"/change_start_page?startpage=");
+ wprintf("<a href=\"change_start_page?startpage=");
urlescputs(WC->this_page);
wprintf("\"><FONT SIZE=-2 COLOR=\"#AAAAAA\">");
wprintf(_("Make this my start page"));
wprintf("</FONT></A>");
/*
- wprintf("<br/><a href=\"/rss?room=");
+ wprintf("<br/><a href=\"rss?room=");
urlescputs(WC->wc_roomname);
wprintf("\" title=\"RSS 2.0 feed for ");
escputs(WC->wc_roomname);
- wprintf("\"><img alt=\"RSS\" border=\"0\" src=\"/static/xml_button.gif\"/></a>\n");
+ wprintf("\"><img alt=\"RSS\" border=\"0\" src=\"static/xml_button.gif\"/></a>\n");
*/
}
{
struct urlcontent *u;
- lprintf(9, "upload_handler() name=%s, type=%s, len=%d\n",
- name, cbtype, length);
+ /* lprintf(9, "upload_handler() name=%s, type=%s, len=%d\n",
+ name, cbtype, length); */
/* Form fields */
if ( (length > 0) && (strlen(cbtype) == 0) ) {
wDumpContent(0);
}
+void ajax_servcmd(void)
+{
+ char buf[1024];
+ char gcontent[1024];
+ char *junk;
+ size_t len;
+
+ begin_ajax_response();
+
+ serv_printf("%s", bstr("g_cmd"));
+ serv_getln(buf, sizeof buf);
+
+ if (buf[0] == '8') {
+ serv_printf("\n\n000");
+ }
+ if ((buf[0] == '1') || (buf[0] == '8')) {
+ while (serv_getln(gcontent, sizeof gcontent), strcmp(gcontent, "000")) {
+ /* maybe do something with it? */
+ }
+ wprintf("000");
+ }
+ if (buf[0] == '4') {
+ text_to_server(bstr("g_input"), 0);
+ serv_puts("000");
+ }
+ if (buf[0] == '6') {
+ len = atol(&buf[4]);
+ junk = malloc(len);
+ serv_read(junk, len);
+ free(junk);
+ }
+ if (buf[0] == '7') {
+ len = atol(&buf[4]);
+ junk = malloc(len);
+ memset(junk, 0, len);
+ serv_write(junk, len);
+ free(junk);
+ }
+
+ end_ajax_response();
+}
+
+
+
+
/*
void session_loop(struct httprequest *req)
{
char cmd[1024];
- char action[128];
+ char action[1024];
char arg1[128];
char arg2[128];
char arg3[128];
char arg7[128];
char buf[SIZ];
char request_method[128];
- char pathname[512];
+ char pathname[1024];
int a, b;
int ContentLength = 0;
int BytesRead = 0;
safestrncpy(cmd, hptr->line, sizeof cmd);
hptr = hptr->next;
extract_token(request_method, cmd, 0, ' ', sizeof request_method);
- extract_token(pathname, cmd, 1, ' ', sizeof request_method);
+ extract_token(pathname, cmd, 1, ' ', sizeof pathname);
/* Figure out the action */
extract_token(action, pathname, 1, '/', sizeof action);
} else if (!strcasecmp(action, "headers")) {
readloop("headers");
} else if (!strcasecmp(action, "msg")) {
- embed_message();
+ embed_message(arg1);
} else if (!strcasecmp(action, "printmsg")) {
- print_message();
+ print_message(arg1);
} else if (!strcasecmp(action, "display_enter")) {
display_enter();
} else if (!strcasecmp(action, "post")) {
display_generic();
} else if (!strcasecmp(action, "do_generic")) {
do_generic();
+ } else if (!strcasecmp(action, "ajax_servcmd")) {
+ ajax_servcmd();
} else if (!strcasecmp(action, "display_menubar")) {
display_menubar(1);
} else if (!strcasecmp(action, "mimepart")) {