to supply the size of the target buffer.
33 files changed:
+Revision 610.2 2005/04/11 14:45:12 ajc
+* Replaced serv_gets() with serv_getln() - which now requires the caller
+ to supply the size of the target buffer.
+
Revision 610.1 2005/04/08 19:36:56 ajc
* Moved to the new string tokenizer API
Revision 610.1 2005/04/08 19:36:56 ajc
* Moved to the new string tokenizer API
1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
* webserver.c: warning fix
1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
* webserver.c: warning fix
load_preferences();
serv_puts("CHEK");
load_preferences();
serv_puts("CHEK");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
WC->new_mail = extract_int(&buf[4], 0);
WC->need_regi = extract_int(&buf[4], 1);
if (buf[0] == '2') {
WC->new_mail = extract_int(&buf[4], 0);
WC->need_regi = extract_int(&buf[4], 1);
}
if (!strcasecmp(bstr("action"), "Login")) {
serv_printf("USER %s", bstr("name"));
}
if (!strcasecmp(bstr("action"), "Login")) {
serv_printf("USER %s", bstr("name"));
+ serv_getln(buf, sizeof buf);
if (buf[0] == '3') {
serv_printf("PASS %s", bstr("pass"));
if (buf[0] == '3') {
serv_printf("PASS %s", bstr("pass"));
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
become_logged_in(bstr("name"),
bstr("pass"), buf);
if (buf[0] == '2') {
become_logged_in(bstr("name"),
bstr("pass"), buf);
return;
}
serv_printf("NEWU %s", bstr("name"));
return;
}
serv_printf("NEWU %s", bstr("name"));
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
become_logged_in(bstr("name"), bstr("pass"), buf);
serv_printf("SETP %s", bstr("pass"));
if (buf[0] == '2') {
become_logged_in(bstr("name"), bstr("pass"), buf);
serv_printf("SETP %s", bstr("pass"));
+ serv_getln(buf, sizeof buf);
} else {
display_login(&buf[4]);
return;
} else {
display_login(&buf[4]);
return;
wprintf("<center>");
serv_puts("MESG goodbye");
wprintf("<center>");
serv_puts("MESG goodbye");
+ serv_getln(buf, sizeof buf);
if (WC->serv_sock >= 0) {
if (buf[0] == '1') {
if (WC->serv_sock >= 0) {
if (buf[0] == '1') {
if (strlen(buf) > 0)
if (strlen(bstr("axlevel")) > 0) {
serv_printf("VALI %s|%s", buf, bstr("axlevel"));
if (strlen(buf) > 0)
if (strlen(bstr("axlevel")) > 0) {
serv_printf("VALI %s|%s", buf, bstr("axlevel"));
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
wprintf("<b>%s</b><br />\n", &buf[4]);
}
}
serv_puts("GNUR");
if (buf[0] != '2') {
wprintf("<b>%s</b><br />\n", &buf[4]);
}
}
serv_puts("GNUR");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '3') {
wprintf("<b>%s</b><br />\n", &buf[4]);
if (buf[0] != '3') {
wprintf("<b>%s</b><br />\n", &buf[4]);
strcpy(user, &buf[4]);
serv_printf("GREG %s", user);
strcpy(user, &buf[4]);
serv_printf("GREG %s", user);
+ serv_getln(cmd, sizeof cmd);
if (cmd[0] == '1') {
a = 0;
do {
if (cmd[0] == '1') {
a = 0;
do {
+ serv_getln(buf, sizeof buf);
++a;
if (a == 1)
wprintf("User #%s<br /><H1>%s</H1>",
++a;
if (a == 1)
wprintf("User #%s<br /><H1>%s</H1>",
wprintf("<CENTER><br />");
serv_puts("MESG changepw");
wprintf("<CENTER><br />");
serv_puts("MESG changepw");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '1') {
fmout(NULL, "CENTER");
}
if (buf[0] == '1') {
fmout(NULL, "CENTER");
}
}
serv_printf("SETP %s", newpass1);
}
serv_printf("SETP %s", newpass1);
+ serv_getln(buf, sizeof buf);
sprintf(WC->ImportantMessage, "%s", &buf[4]);
if (buf[0] == '2') {
safestrncpy(WC->wc_password, buf, sizeof WC->wc_password);
sprintf(WC->ImportantMessage, "%s", &buf[4]);
if (buf[0] == '2') {
safestrncpy(WC->wc_password, buf, sizeof WC->wc_password);
icalcomponent *fb = NULL;
serv_printf("ICAL freebusy|%s", who);
icalcomponent *fb = NULL;
serv_printf("ICAL freebusy|%s", who);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '1') {
serialized_fb = read_server_text();
}
if (buf[0] == '1') {
serialized_fb = read_server_text();
}
/* Check for conflicts */
lprintf(9, "Checking server calendar for conflicts...\n");
serv_printf("ICAL conflicts|%ld|%s|", msgnum, cal_partnum);
/* Check for conflicts */
lprintf(9, "Checking server calendar for conflicts...\n");
serv_printf("ICAL conflicts|%ld|%s|", msgnum, cal_partnum);
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(conflict_name, buf, 3, '|', sizeof conflict_name);
is_update = extract_int(buf, 4);
wprintf("<TR><TD><B><I>%s</I></B></TD>"
extract_token(conflict_name, buf, 3, '|', sizeof conflict_name);
is_update = extract_int(buf, 4);
wprintf("<TR><TD><B><I>%s</I></B></TD>"
* In the future, if we want to validate this object before
* continuing, we can do it this way:
serv_printf("ICAL whatever|%ld|%s|", msgnum, cal_partnum);
* In the future, if we want to validate this object before
* continuing, we can do it this way:
serv_printf("ICAL whatever|%ld|%s|", msgnum, cal_partnum);
+ serv_getln(buf, sizeof buf);
bstr("cal_partnum"),
bstr("sc")
);
bstr("cal_partnum"),
bstr("sc")
);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
wprintf("<TABLE BORDER=0><TR><TD>"
if (buf[0] == '2') {
wprintf("<TABLE BORDER=0><TR><TD>"
bstr("cal_partnum"),
bstr("sc")
);
bstr("cal_partnum"),
bstr("sc")
);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
wprintf("<TABLE BORDER=0><TR><TD>"
if (buf[0] == '2') {
wprintf("<TABLE BORDER=0><TR><TD>"
/* Serialize it and save it to the message base */
serv_puts("ENT0 1|||4");
/* Serialize it and save it to the message base */
serv_puts("ENT0 1|||4");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '4') {
serv_puts("Content-type: text/calendar");
serv_puts("");
if (buf[0] == '4') {
serv_puts("Content-type: text/calendar");
serv_puts("");
if ( (delete_existing) && (msgnum > 0L) ) {
serv_printf("DELE %ld", atol(bstr("msgnum")));
if ( (delete_existing) && (msgnum > 0L) ) {
serv_printf("DELE %ld", atol(bstr("msgnum")));
+ serv_getln(buf, sizeof buf);
}
if (created_new_vtodo) {
}
if (created_new_vtodo) {
sprintf(buf, "MSG0 %ld|1", msgnum); /* ask for headers only */
serv_puts(buf);
sprintf(buf, "MSG0 %ld|1", msgnum); /* ask for headers only */
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') return;
if (buf[0] != '1') return;
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (!strncasecmp(buf, "part=", 5)) {
extract_token(mime_filename, &buf[5], 1, '|', sizeof mime_filename);
extract_token(mime_partnum, &buf[5], 2, '|', sizeof mime_partnum);
if (!strncasecmp(buf, "part=", 5)) {
extract_token(mime_filename, &buf[5], 1, '|', sizeof mime_filename);
extract_token(mime_partnum, &buf[5], 2, '|', sizeof mime_partnum);
lprintf(9, "freebusy requested for <%s>\n", who);
serv_printf("ICAL freebusy|%s", who);
lprintf(9, "freebusy requested for <%s>\n", who);
serv_printf("ICAL freebusy|%s", who);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
wprintf("HTTP/1.0 404 %s\n", &buf[4]);
if (buf[0] != '1') {
wprintf("HTTP/1.0 404 %s\n", &buf[4]);
striplt(organizer_string);
lprintf(9, "ISME %s\n", organizer_string);
serv_printf("ISME %s", organizer_string);
striplt(organizer_string);
lprintf(9, "ISME %s\n", organizer_string);
serv_printf("ISME %s", organizer_string);
+ serv_getln(buf, sizeof buf);
lprintf(9, "%s\n", buf);
if (buf[0] == '2') {
organizer_is_me = 1;
lprintf(9, "%s\n", buf);
if (buf[0] == '2') {
organizer_is_me = 1;
lprintf(9, "Serializing it for saving\n");
if ( (encaps != NULL) && (!strcasecmp(bstr("sc"), "Save")) ) {
serv_puts("ENT0 1|||4|||1|");
lprintf(9, "Serializing it for saving\n");
if ( (encaps != NULL) && (!strcasecmp(bstr("sc"), "Save")) ) {
serv_puts("ENT0 1|||4|||1|");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '8') {
serv_puts("Content-type: text/calendar");
serv_puts("");
serv_puts(icalcomponent_as_ical_string(encaps));
serv_puts("000");
}
if (buf[0] == '8') {
serv_puts("Content-type: text/calendar");
serv_puts("");
serv_puts(icalcomponent_as_ical_string(encaps));
serv_puts("000");
}
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
lprintf(9, "ENT0 REPLY: %s\n", buf);
}
icalcomponent_free(encaps);
lprintf(9, "ENT0 REPLY: %s\n", buf);
}
icalcomponent_free(encaps);
lprintf(9, "Checking to see if we have to delete an old event\n");
if ( (!strcasecmp(bstr("sc"), "Delete")) && (msgnum > 0L) ) {
serv_printf("DELE %ld", atol(bstr("msgnum")));
lprintf(9, "Checking to see if we have to delete an old event\n");
if ( (!strcasecmp(bstr("sc"), "Delete")) && (msgnum > 0L) ) {
serv_printf("DELE %ld", atol(bstr("msgnum")));
+ serv_getln(buf, sizeof buf);
}
if (created_new_vevent) {
}
if (created_new_vevent) {
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#770000\"><TR><TD>");
wprintf("<SPAN CLASS=\"titlebar\">Error</SPAN>\n");
if (buf[0] != '1') {
wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#770000\"><TR><TD>");
wprintf("<SPAN CLASS=\"titlebar\">Error</SPAN>\n");
"<TH>Number of rooms</TH></TR>\n"
);
"<TH>Number of rooms</TH></TR>\n"
);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
floornum = extract_int(buf, 0);
extract_token(floorname, buf, 1, '|', sizeof floorname);
refcount = extract_int(buf, 2);
floornum = extract_int(buf, 0);
extract_token(floorname, buf, 1, '|', sizeof floorname);
refcount = extract_int(buf, 2);
floornum = atoi(bstr("floornum"));
serv_printf("KFLR %d|1", floornum);
floornum = atoi(bstr("floornum"));
serv_printf("KFLR %d|1", floornum);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
sprintf(message, "Floor has been deleted.");
if (buf[0] == '2') {
sprintf(message, "Floor has been deleted.");
strcpy(floorname, bstr("floorname"));
serv_printf("CFLR %s|1", floorname);
strcpy(floorname, bstr("floorname"));
serv_printf("CFLR %s|1", floorname);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
sprintf(message, "New floor has been created.");
if (buf[0] == '2') {
sprintf(message, "New floor has been created.");
strcpy(floorname, bstr("floorname"));
serv_printf("EFLR %d|%s", floornum, floorname);
strcpy(floorname, bstr("floorname"));
serv_printf("EFLR %d|%s", floornum, floorname);
+ serv_getln(buf, sizeof buf);
sprintf(message, "%s", &buf[4]);
sprintf(message, "%s", &buf[4]);
char buf[SIZ];
serv_puts(check_cmd);
char buf[SIZ];
serv_puts(check_cmd);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
return;
}
serv_puts(upl_cmd);
return;
}
serv_puts(upl_cmd);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
while (bytes_remaining) {
thisblock = ((bytes_remaining > 4096) ? 4096 : bytes_remaining);
serv_printf("WRIT %d", thisblock);
while (bytes_remaining) {
thisblock = ((bytes_remaining > 4096) ? 4096 : bytes_remaining);
serv_printf("WRIT %d", thisblock);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '7') {
strcpy(WC->ImportantMessage, &buf[4]);
serv_puts("UCLS 0");
if (buf[0] != '7') {
strcpy(WC->ImportantMessage, &buf[4]);
serv_puts("UCLS 0");
+ serv_getln(buf, sizeof buf);
display_main_menu();
return;
}
display_main_menu();
return;
}
+ serv_getln(buf, sizeof buf);
if (buf[0] != 'x') {
display_success(&buf[4]);
return;
if (buf[0] != 'x') {
display_success(&buf[4]);
return;
* Ok, attempt to delete the item.
*/
serv_printf("DELE %ld", dav_msgnum);
* Ok, attempt to delete the item.
*/
serv_printf("DELE %ld", dav_msgnum);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
wprintf("HTTP/1.1 204 No Content\r\n"); /* success */
groupdav_common_headers();
if (buf[0] == '2') {
wprintf("HTTP/1.1 204 No Content\r\n"); /* success */
groupdav_common_headers();
dav_msgnum = locate_message_by_uid(dav_uid);
serv_printf("MSG2 %ld", dav_msgnum);
dav_msgnum = locate_message_by_uid(dav_uid);
serv_printf("MSG2 %ld", dav_msgnum);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
wprintf("HTTP/1.1 404 not found\r\n");
groupdav_common_headers();
if (buf[0] != '1') {
wprintf("HTTP/1.1 404 not found\r\n");
groupdav_common_headers();
wprintf("HTTP/1.1 200 OK\r\n");
groupdav_common_headers();
wprintf("ETag: \"%ld\"\r\n", dav_msgnum);
wprintf("HTTP/1.1 200 OK\r\n");
groupdav_common_headers();
wprintf("ETag: \"%ld\"\r\n", dav_msgnum);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (!strncasecmp(buf, "Date: ", 6)) {
wprintf("%s\r\n", buf);
}
if (!strncasecmp(buf, "Date: ", 6)) {
wprintf("%s\r\n", buf);
}
euid_unescapize(decoded_uid, uid);
serv_puts("MSGS ALL|0|1");
euid_unescapize(decoded_uid, uid);
serv_puts("MSGS ALL|0|1");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '8') {
serv_printf("exti|%s", decoded_uid);
serv_puts("000");
if (buf[0] == '8') {
serv_printf("exti|%s", decoded_uid);
serv_puts("000");
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
- serv_gets(buf);
- if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(roomname, buf, 0, '|', sizeof roomname);
view = extract_int(buf, 6);
extract_token(roomname, buf, 0, '|', sizeof roomname);
view = extract_int(buf, 6);
);
serv_puts("MSGS ALL");
);
serv_puts("MSGS ALL");
- serv_gets(buf);
- if (buf[0] == '1') while (serv_gets(msgnum), strcmp(msgnum, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0] == '1') while (serv_getln(msgnum, sizeof msgnum), strcmp(msgnum, "000")) {
msgs = realloc(msgs, ++num_msgs * sizeof(long));
msgs[num_msgs-1] = atol(msgnum);
}
msgs = realloc(msgs, ++num_msgs * sizeof(long));
msgs[num_msgs-1] = atol(msgnum);
}
strcpy(uid, "");
serv_printf("MSG0 %ld|3", msgs[i]);
strcpy(uid, "");
serv_printf("MSG0 %ld|3", msgs[i]);
- serv_gets(buf);
- if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (!strncasecmp(buf, "exti=", 5)) {
strcpy(uid, &buf[5]);
}
if (!strncasecmp(buf, "exti=", 5)) {
strcpy(uid, &buf[5]);
}
* extract the message ID.
*/
serv_puts("ENT0 1|||4|||1|");
* extract the message ID.
*/
serv_puts("ENT0 1|||4|||1|");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '8') {
wprintf("HTTP/1.1 502 Bad Gateway\r\n");
groupdav_common_headers();
if (buf[0] != '8') {
wprintf("HTTP/1.1 502 Bad Gateway\r\n");
groupdav_common_headers();
/* Fetch the reply from the Citadel server */
n = 0;
strcpy(dav_uid, "");
/* Fetch the reply from the Citadel server */
n = 0;
strcpy(dav_uid, "");
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
switch(n++) {
case 0: new_msgnum = atol(buf);
break;
switch(n++) {
case 0: new_msgnum = atol(buf);
break;
* the Citadel server, but we'll do this anyway, just in case.
*/
serv_printf("DELE %ld", old_msgnum);
* the Citadel server, but we'll do this anyway, just in case.
*/
serv_printf("DELE %ld", old_msgnum);
+ serv_getln(buf, sizeof buf);
msg = strdup("");
sprintf(new_window, "<A TARGET=\"%s\" HREF=", TARGET);
msg = strdup("");
sprintf(new_window, "<A TARGET=\"%s\" HREF=", TARGET);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
line_length = strlen(buf);
buffer_length = content_length + line_length + 2;
msg = realloc(msg, buffer_length);
line_length = strlen(buf);
buffer_length = content_length + line_length + 2;
msg = realloc(msg, buffer_length);
ic_misc = strdup("");
serv_printf("CONF GETSYS|application/x-citadel-internet-config");
ic_misc = strdup("");
serv_printf("CONF GETSYS|application/x-citadel-internet-config");
- serv_gets(buf);
- if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(ename, buf, 0, '|', sizeof ename);
extract_token(etype, buf, 1, '|', sizeof etype);
extract_token(ename, buf, 0, '|', sizeof ename);
extract_token(etype, buf, 1, '|', sizeof etype);
strcpy(newconfig, "");
serv_printf("CONF GETSYS|application/x-citadel-internet-config");
strcpy(newconfig, "");
serv_printf("CONF GETSYS|application/x-citadel-internet-config");
- serv_gets(buf);
- if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(ename, buf, 0, '|', sizeof ename);
extract_token(etype, buf, 1, '|', sizeof etype);
if (strlen(buf) == 0) {
extract_token(ename, buf, 0, '|', sizeof ename);
extract_token(etype, buf, 1, '|', sizeof etype);
if (strlen(buf) == 0) {
}
serv_printf("CONF PUTSYS|application/x-citadel-internet-config");
}
serv_printf("CONF PUTSYS|application/x-citadel-internet-config");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '4') {
serv_puts(newconfig);
if (!strcasecmp(bstr("oper"), "add")) {
if (buf[0] == '4') {
serv_puts(newconfig);
if (!strcasecmp(bstr("oper"), "add")) {
subtype,
WC->http_host
);
subtype,
WC->http_host
);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
wprintf("<CENTER><H1>Confirmation request sent</H1>"
"You are subscribing <TT>");
if (buf[0] == '2') {
wprintf("<CENTER><H1>Confirmation request sent</H1>"
"You are subscribing <TT>");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
wprintf("<CENTER><H1>Confirmation request sent</H1>"
"You are unsubscribing <TT>");
if (buf[0] == '2') {
wprintf("<CENTER><H1>Confirmation request sent</H1>"
"You are unsubscribing <TT>");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
wprintf("<CENTER><H1>Confirmation successful!</H1>");
}
if (buf[0] == '2') {
wprintf("<CENTER><H1>Confirmation successful!</H1>");
}
"<SELECT NAME=\"room\" SIZE=1>\n");
serv_puts("LPRM");
"<SELECT NAME=\"room\" SIZE=1>\n");
serv_puts("LPRM");
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(sroom, buf, 0, '|', sizeof sroom);
self = extract_int(buf, 4) & QR2_SELFLIST ;
if (self) {
extract_token(sroom, buf, 0, '|', sizeof sroom);
self = extract_int(buf, 4) & QR2_SELFLIST ;
if (self) {
output_headers(1, 1, 0, 0, 0, 0, 0);
serv_printf("%s", bstr("g_cmd"));
output_headers(1, 1, 0, 0, 0, 0, 0);
serv_printf("%s", bstr("g_cmd"));
+ serv_getln(buf, sizeof buf);
svprintf("BOXTITLE", WCS_STRING, "Server command results");
do_template("beginbox");
svprintf("BOXTITLE", WCS_STRING, "Server command results");
do_template("beginbox");
serv_printf("\n\n000");
}
if ((buf[0] == '1') || (buf[0] == '8')) {
serv_printf("\n\n000");
}
if ((buf[0] == '1') || (buf[0] == '8')) {
- while (serv_gets(gcontent), strcmp(gcontent, "000")) {
+ while (serv_getln(gcontent, sizeof gcontent), strcmp(gcontent, "000")) {
escputs(gcontent);
wprintf("<br />\n");
}
escputs(gcontent);
wprintf("<br />\n");
}
strcpy(mime_http, "");
serv_printf("MSG4 %ld", msgnum);
strcpy(mime_http, "");
serv_printf("MSG4 %ld", msgnum);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
wprintf("<STRONG>ERROR:</STRONG> %s<br />\n", &buf[4]);
return;
if (buf[0] != '1') {
wprintf("<STRONG>ERROR:</STRONG> %s<br />\n", &buf[4]);
return;
wprintf("<SPAN CLASS=\"message_header\">");
strcpy(m_subject, "");
wprintf("<SPAN CLASS=\"message_header\">");
strcpy(m_subject, "");
- while (serv_gets(buf), strcasecmp(buf, "text")) {
+ while (serv_getln(buf, sizeof buf), strcasecmp(buf, "text")) {
if (!strcmp(buf, "000")) {
wprintf("<I>unexpected end of message</I><br /><br />\n");
wprintf("</SPAN>\n");
if (!strcmp(buf, "000")) {
wprintf("<I>unexpected end of message</I><br /><br />\n");
wprintf("</SPAN>\n");
* Learn the content type
*/
strcpy(mime_content_type, "text/plain");
* Learn the content type
*/
strcpy(mime_content_type, "text/plain");
- while (serv_gets(buf), (strlen(buf) > 0)) {
+ while (serv_getln(buf, sizeof buf), (strlen(buf) > 0)) {
if (!strcmp(buf, "000")) {
wprintf("<I>unexpected end of message</I><br /><br />\n");
goto ENDBODY;
if (!strcmp(buf, "000")) {
wprintf("<I>unexpected end of message</I><br /><br />\n");
goto ENDBODY;
/* Boring old 80-column fixed format text gets handled this way... */
else if (!strcasecmp(mime_content_type, "text/plain")) {
/* Boring old 80-column fixed format text gets handled this way... */
else if (!strcasecmp(mime_content_type, "text/plain")) {
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = 0;
if (buf[strlen(buf)-1] == '\r') buf[strlen(buf)-1] = 0;
while ((strlen(buf) > 0) && (isspace(buf[strlen(buf) - 1])))
if (buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = 0;
if (buf[strlen(buf)-1] == '\r') buf[strlen(buf)-1] = 0;
while ((strlen(buf) > 0) && (isspace(buf[strlen(buf) - 1])))
else {
wprintf("I don't know how to display %s<br />\n",
mime_content_type);
else {
wprintf("I don't know how to display %s<br />\n",
mime_content_type);
- while (serv_gets(buf), strcmp(buf, "000")) { }
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { }
sprintf(buf, "MSG0 %ld|3", msgnum); /* ask for headers only with no MIME */
serv_puts(buf);
sprintf(buf, "MSG0 %ld|3", msgnum); /* ask for headers only with no MIME */
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') return;
if (buf[0] != '1') return;
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (!strncasecmp(buf, "from=", 5)) {
strcpy(summ.from, &buf[5]);
}
if (!strncasecmp(buf, "from=", 5)) {
strcpy(summ.from, &buf[5]);
}
sprintf(buf, "MSG0 %ld|1", msgnum); /* ask for headers only */
serv_puts(buf);
sprintf(buf, "MSG0 %ld|1", msgnum); /* ask for headers only */
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') return;
if (buf[0] != '1') return;
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (!strncasecmp(buf, "part=", 5)) {
extract_token(mime_filename, &buf[5], 1, '|', sizeof mime_filename);
extract_token(mime_partnum, &buf[5], 2, '|', sizeof mime_partnum);
if (!strncasecmp(buf, "part=", 5)) {
extract_token(mime_filename, &buf[5], 1, '|', sizeof mime_filename);
extract_token(mime_partnum, &buf[5], 2, '|', sizeof mime_partnum);
sprintf(buf, "MSG0 %ld|1", msgnum); /* ask for headers only */
serv_puts(buf);
sprintf(buf, "MSG0 %ld|1", msgnum); /* ask for headers only */
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') return;
if (buf[0] != '1') return;
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (!strncasecmp(buf, "part=", 5)) {
extract_token(mime_filename, &buf[5], 1, '|', sizeof mime_filename);
extract_token(mime_partnum, &buf[5], 2, '|', sizeof mime_partnum);
if (!strncasecmp(buf, "part=", 5)) {
extract_token(mime_filename, &buf[5], 1, '|', sizeof mime_filename);
extract_token(mime_partnum, &buf[5], 2, '|', sizeof mime_partnum);
nummsgs = 0;
maxload = sizeof(WC->msgarr) / sizeof(long) ;
serv_puts(servcmd);
nummsgs = 0;
maxload = sizeof(WC->msgarr) / sizeof(long) ;
serv_puts(servcmd);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
wprintf("<EM>%s</EM><br />\n", &buf[4]);
return (nummsgs);
}
if (buf[0] != '1') {
wprintf("<EM>%s</EM><br />\n", &buf[4]);
return (nummsgs);
}
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (nummsgs < maxload) {
WC->msgarr[nummsgs] = atol(buf);
++nummsgs;
if (nummsgs < maxload) {
WC->msgarr[nummsgs] = atol(buf);
++nummsgs;
strcpy(old_msgs, "");
if (is_summary) {
serv_puts("GTSN");
strcpy(old_msgs, "");
if (is_summary) {
serv_puts("GTSN");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
strcpy(old_msgs, &buf[4]);
}
if (buf[0] == '2') {
strcpy(old_msgs, &buf[4]);
}
bstr("recp"),
bstr("subject") );
serv_puts(buf);
bstr("recp"),
bstr("subject") );
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '4') {
post_mime_to_server();
if (strlen(bstr("recp")) > 0) {
if (buf[0] == '4') {
post_mime_to_server();
if (strlen(bstr("recp")) > 0) {
sprintf(buf, "ENT0 0|%s|0|0", bstr("recp"));
serv_puts(buf);
sprintf(buf, "ENT0 0|%s|0|0", bstr("recp"));
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (!strncmp(buf, "570", 3)) {
if (strlen(bstr("recp")) > 0) {
if (!strncmp(buf, "570", 3)) {
if (strlen(bstr("recp")) > 0) {
sprintf(buf, "DELE %ld", msgid);
serv_puts(buf);
sprintf(buf, "DELE %ld", msgid);
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
wprintf("<EM>%s</EM><br />\n", &buf[4]);
wDumpContent(1);
wprintf("<EM>%s</EM><br />\n", &buf[4]);
wDumpContent(1);
wprintf("<SELECT NAME=\"target_room\" SIZE=5>\n");
serv_puts("LKRA");
wprintf("<SELECT NAME=\"target_room\" SIZE=5>\n");
serv_puts("LKRA");
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(targ, buf, 0, '|', sizeof targ);
wprintf("<OPTION>");
escputs(targ);
extract_token(targ, buf, 0, '|', sizeof targ);
wprintf("<OPTION>");
escputs(targ);
if (!strcasecmp(bstr("yesno"), "Move")) {
sprintf(buf, "MOVE %ld|%s", msgid, bstr("target_room"));
serv_puts(buf);
if (!strcasecmp(bstr("yesno"), "Move")) {
sprintf(buf, "MOVE %ld|%s", msgid, bstr("target_room"));
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
wprintf("<EM>%s</EM><br />\n", &buf[4]);
} else {
wprintf("<EM>Message not moved.</EM><br />\n");
wprintf("<EM>%s</EM><br />\n", &buf[4]);
} else {
wprintf("<EM>Message not moved.</EM><br />\n");
+ serv_getln(buf, sizeof buf);
- if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) {
+ if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
ptr = malloc(sizeof(struct stuff_t));
ptr->msgnum = atol(buf);
ptr->next = stuff;
ptr = malloc(sizeof(struct stuff_t));
ptr->msgnum = atol(buf);
ptr->next = stuff;
if (!strcasecmp(sc, "Delete selected")) {
serv_printf("DELE %ld", stuff->msgnum);
if (!strcasecmp(sc, "Delete selected")) {
serv_printf("DELE %ld", stuff->msgnum);
+ serv_getln(buf, sizeof buf);
fp = tmpfile();
if (fp != NULL) {
serv_puts("CONF getsys|application/x-citadel-ignet-config");
fp = tmpfile();
if (fp != NULL) {
serv_puts("CONF getsys|application/x-citadel-ignet-config");
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(cnode, buf, 0, '|', sizeof cnode);
if (strcasecmp(node, cnode)) {
fprintf(fp, "%s\n", buf);
extract_token(cnode, buf, 0, '|', sizeof cnode);
if (strcasecmp(node, cnode)) {
fprintf(fp, "%s\n", buf);
rewind(fp);
serv_puts("CONF putsys|application/x-citadel-ignet-config");
rewind(fp);
serv_puts("CONF putsys|application/x-citadel-ignet-config");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '4') {
while (fgets(buf, sizeof buf, fp) != NULL) {
buf[strlen(buf)-1] = 0;
if (buf[0] == '4') {
while (fgets(buf, sizeof buf, fp) != NULL) {
buf[strlen(buf)-1] = 0;
wprintf("</div>\n<div id=\"content\">\n");
serv_puts("CONF getsys|application/x-citadel-ignet-config");
wprintf("</div>\n<div id=\"content\">\n");
serv_puts("CONF getsys|application/x-citadel-ignet-config");
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(cnode, buf, 0, '|', sizeof cnode);
extract_token(csecret, buf, 1, '|', sizeof csecret);
extract_token(chost, buf, 2, '|', sizeof chost);
extract_token(cnode, buf, 0, '|', sizeof cnode);
extract_token(csecret, buf, 1, '|', sizeof csecret);
extract_token(chost, buf, 2, '|', sizeof chost);
wprintf("<SPAN CLASS=\"titlebar\">Currently configured nodes</SPAN>\n");
wprintf("</TD></TR></TABLE>\n");
serv_puts("CONF getsys|application/x-citadel-ignet-config");
wprintf("<SPAN CLASS=\"titlebar\">Currently configured nodes</SPAN>\n");
wprintf("</TD></TR></TABLE>\n");
serv_puts("CONF getsys|application/x-citadel-ignet-config");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '1') {
wprintf("<CENTER><TABLE border=0>\n");
if (buf[0] == '1') {
wprintf("<CENTER><TABLE border=0>\n");
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(node, buf, 0, '|', sizeof node);
wprintf("<TR><TD><FONT SIZE=+1>");
escputs(node);
extract_token(node, buf, 0, '|', sizeof node);
wprintf("<TR><TD><FONT SIZE=+1>");
escputs(node);
fp = tmpfile();
if (fp != NULL) {
serv_puts("CONF getsys|application/x-citadel-ignet-config");
fp = tmpfile();
if (fp != NULL) {
serv_puts("CONF getsys|application/x-citadel-ignet-config");
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(cnode, buf, 0, '|', sizeof cnode);
if (strcasecmp(node, cnode)) {
fprintf(fp, "%s\n", buf);
extract_token(cnode, buf, 0, '|', sizeof cnode);
if (strcasecmp(node, cnode)) {
fprintf(fp, "%s\n", buf);
rewind(fp);
serv_puts("CONF putsys|application/x-citadel-ignet-config");
rewind(fp);
serv_puts("CONF putsys|application/x-citadel-ignet-config");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '4') {
while (fgets(buf, sizeof buf, fp) != NULL) {
buf[strlen(buf)-1] = 0;
if (buf[0] == '4') {
while (fgets(buf, sizeof buf, fp) != NULL) {
buf[strlen(buf)-1] = 0;
if (!strcmp(sc, "Add")) {
sprintf(buf, "NSET addnode|%s", node);
serv_puts(buf);
if (!strcmp(sc, "Add")) {
sprintf(buf, "NSET addnode|%s", node);
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '1') {
output_headers(1, 1, 0, 0, 0, 0, 0);
server_to_text();
if (buf[0] == '1') {
output_headers(1, 1, 0, 0, 0, 0, 0);
server_to_text();
wprintf("<IMG ALIGN=MIDDLE SRC=\"/static/note.gif\">\n");
serv_printf("MSG0 %ld", msgnum);
wprintf("<IMG ALIGN=MIDDLE SRC=\"/static/note.gif\">\n");
serv_printf("MSG0 %ld", msgnum);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
wprintf("%s<br />\n", &buf[4]);
return;
}
strcpy(notetext, "");
if (buf[0] != '1') {
wprintf("%s<br />\n", &buf[4]);
return;
}
strcpy(notetext, "");
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
/* Fill the buffer to at least 256 characters */
if ( (in_text) && (strlen(notetext) < 256) ) {
/* Fill the buffer to at least 256 characters */
if ( (in_text) && (strlen(notetext) < 256) ) {
wprintf("<EM>Message was not sent.</EM><br />\n");
} else {
serv_printf("SEXP %s|-", recp);
wprintf("<EM>Message was not sent.</EM><br />\n");
} else {
serv_printf("SEXP %s|-", recp);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '4') {
text_to_server(bstr("msgtext"), 0);
if (buf[0] == '4') {
text_to_server(bstr("msgtext"), 0);
/* First, check to make sure we're still allowed in this room. */
serv_printf("GOTO %s", WC->wc_roomname);
/* First, check to make sure we're still allowed in this room. */
serv_printf("GOTO %s", WC->wc_roomname);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
smart_goto("_BASEROOM_");
return;
if (buf[0] != '2') {
smart_goto("_BASEROOM_");
return;
char buf[SIZ];
char pagefrom[SIZ];
char buf[SIZ];
char pagefrom[SIZ];
- while (serv_puts("GEXP"), serv_gets(buf), buf[0]=='1') {
+ while (serv_puts("GEXP"), serv_getln(buf, sizeof buf), buf[0]=='1') {
extract_token(pagefrom, &buf[4], 3, '|', sizeof pagefrom);
extract_token(pagefrom, &buf[4], 3, '|', sizeof pagefrom);
WC->serv_sock = WC->chat_sock;
WC->chat_sock = i;
WC->serv_sock = WC->chat_sock;
WC->chat_sock = i;
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
serv_printf("USER %s", WC->wc_username);
if (buf[0] == '2') {
serv_printf("USER %s", WC->wc_username);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '3') {
serv_printf("PASS %s", WC->wc_password);
if (buf[0] == '3') {
serv_printf("PASS %s", WC->wc_password);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
serv_printf("GOTO %s", WC->wc_roomname);
if (buf[0] == '2') {
serv_printf("GOTO %s", WC->wc_roomname);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
serv_puts("CHAT");
if (buf[0] == '2') {
serv_puts("CHAT");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '8') {
good_chatmode = 1;
}
if (buf[0] == '8') {
good_chatmode = 1;
}
WC->serv_sock = WC->chat_sock;
WC->chat_sock = i;
WC->serv_sock = WC->chat_sock;
WC->chat_sock = i;
+ serv_getln(buf, sizeof buf);
if (!strcmp(buf, "000")) {
strcpy(buf, ":|exiting chat mode");
if (!strcmp(buf, "000")) {
strcpy(buf, ":|exiting chat mode");
long msgnum = 0L;
serv_printf("GOTO %s", USERCONFIGROOM);
long msgnum = 0L;
serv_printf("GOTO %s", USERCONFIGROOM);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') return;
serv_puts("MSGS ALL|0|1");
if (buf[0] != '2') return;
serv_puts("MSGS ALL|0|1");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '8') {
serv_puts("subj|__ WebCit Preferences __");
serv_puts("000");
}
if (buf[0] == '8') {
serv_puts("subj|__ WebCit Preferences __");
serv_puts("000");
}
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
msgnum = atol(buf);
}
if (msgnum > 0L) {
serv_printf("MSG0 %ld", msgnum);
msgnum = atol(buf);
}
if (msgnum > 0L) {
serv_printf("MSG0 %ld", msgnum);
+ serv_getln(buf, sizeof buf);
+ while (serv_getln(buf, sizeof buf),
(strcmp(buf, "text") && strcmp(buf, "000"))) {
}
if (!strcmp(buf, "text")) {
(strcmp(buf, "text") && strcmp(buf, "000"))) {
}
if (!strcmp(buf, "text")) {
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (WC->preferences == NULL) {
WC->preferences = malloc(SIZ);
strcpy(WC->preferences, "");
if (WC->preferences == NULL) {
WC->preferences = malloc(SIZ);
strcpy(WC->preferences, "");
/* Go back to the room we're supposed to be in */
serv_printf("GOTO %s", WC->wc_roomname);
/* Go back to the room we're supposed to be in */
serv_printf("GOTO %s", WC->wc_roomname);
+ serv_getln(buf, sizeof buf);
char buf[SIZ];
serv_printf("GOTO %s", USERCONFIGROOM);
char buf[SIZ];
serv_printf("GOTO %s", USERCONFIGROOM);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') { /* try to create the config room if not there */
serv_printf("CRE8 1|%s|4|0", USERCONFIGROOM);
if (buf[0] != '2') { /* try to create the config room if not there */
serv_printf("CRE8 1|%s|4|0", USERCONFIGROOM);
+ serv_getln(buf, sizeof buf);
serv_printf("GOTO %s", USERCONFIGROOM);
serv_printf("GOTO %s", USERCONFIGROOM);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') return(1);
}
return(0);
if (buf[0] != '2') return(1);
}
return(0);
if (goto_config_room() != 0) return; /* oh well. */
serv_puts("MSGS ALL|0|1");
if (goto_config_room() != 0) return; /* oh well. */
serv_puts("MSGS ALL|0|1");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '8') {
serv_puts("subj|__ WebCit Preferences __");
serv_puts("000");
}
if (buf[0] == '8') {
serv_puts("subj|__ WebCit Preferences __");
serv_puts("000");
}
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
msgnum = atol(buf);
}
if (msgnum > 0L) {
serv_printf("DELE %ld", msgnum);
msgnum = atol(buf);
}
if (msgnum > 0L) {
serv_printf("DELE %ld", msgnum);
+ serv_getln(buf, sizeof buf);
}
serv_printf("ENT0 1||0|1|__ WebCit Preferences __|");
}
serv_printf("ENT0 1||0|1|__ WebCit Preferences __|");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '4') {
serv_puts(WC->preferences);
serv_puts("");
if (buf[0] == '4') {
serv_puts(WC->preferences);
serv_puts("");
/* Go back to the room we're supposed to be in */
serv_printf("GOTO %s", WC->wc_roomname);
/* Go back to the room we're supposed to be in */
serv_printf("GOTO %s", WC->wc_roomname);
+ serv_getln(buf, sizeof buf);
}
void get_preference(char *key, char *value, size_t value_len) {
}
void get_preference(char *key, char *value, size_t value_len) {
floorlist[a][0] = 0;
serv_puts("LFLR");
floorlist[a][0] = 0;
serv_puts("LFLR");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
strcpy(floorlist[0], "Main Floor");
return;
}
if (buf[0] != '1') {
strcpy(floorlist[0], "Main Floor");
return;
}
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(floorlist[extract_int(buf, 0)], buf, 1, '|', sizeof floorlist[0]);
}
}
extract_token(floorlist[extract_int(buf, 0)], buf, 1, '|', sizeof floorlist[0]);
}
}
/* Ask the server for a room list */
serv_puts(variety);
/* Ask the server for a room list */
serv_puts(variety);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
wprintf(" ");
return;
}
if (buf[0] != '1') {
wprintf(" ");
return;
}
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
++num_rooms;
rp = malloc(sizeof(struct roomlisting));
extract_token(rp->rlname, buf, 0, '|', sizeof rp->rlname);
++num_rooms;
rp = malloc(sizeof(struct roomlisting));
extract_token(rp->rlname, buf, 0, '|', sizeof rp->rlname);
char buf[SIZ];
serv_puts("RINF");
char buf[SIZ];
serv_puts("RINF");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '1') {
fmout(NULL, "CENTER");
}
if (buf[0] == '1') {
fmout(NULL, "CENTER");
}
char buf[SIZ];
serv_puts("OIMG _roompic_");
char buf[SIZ];
serv_puts("OIMG _roompic_");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
wprintf("<TD BGCOLOR=\"#444455\">");
wprintf("<IMG HEIGHT=64 SRC=\"/image&name=_roompic_&room=");
urlescputs(WC->wc_roomname);
wprintf("\"></TD>");
serv_puts("CLOS");
if (buf[0] == '2') {
wprintf("<TD BGCOLOR=\"#444455\">");
wprintf("<IMG HEIGHT=64 SRC=\"/image&name=_roompic_&room=");
urlescputs(WC->wc_roomname);
wprintf("\"></TD>");
serv_puts("CLOS");
+ serv_getln(buf, sizeof buf);
*/
if (got == NULL) {
serv_printf("GOTO %s", WC->wc_roomname);
*/
if (got == NULL) {
serv_printf("GOTO %s", WC->wc_roomname);
+ serv_getln(fakegot, sizeof fakegot);
/* move to the new room */
serv_printf("GOTO %s", gname);
/* move to the new room */
serv_printf("GOTO %s", gname);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
serv_puts("GOTO _BASEROOM_");
if (buf[0] != '2') {
serv_puts("GOTO _BASEROOM_");
+ serv_getln(buf, sizeof buf);
}
if (buf[0] != '2') {
return;
}
if (buf[0] != '2') {
return;
if (WC->march == NULL) {
serv_puts("LKRN");
if (WC->march == NULL) {
serv_puts("LKRN");
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
mptr = (struct march *) malloc(sizeof(struct march));
mptr->next = NULL;
extract_token(mptr->march_name, buf, 0, '|', sizeof mptr->march_name);
mptr = (struct march *) malloc(sizeof(struct march));
mptr->next = NULL;
extract_token(mptr->march_name, buf, 0, '|', sizeof mptr->march_name);
/* set pointer */
serv_puts("SLRP HIGHEST");
/* set pointer */
serv_puts("SLRP HIGHEST");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
wprintf("<EM>%s</EM><br />\n", &buf[4]);
return;
if (buf[0] != '2') {
wprintf("<EM>%s</EM><br />\n", &buf[4]);
return;
return;
}
serv_printf("GOTO %s", WC->ugname);
return;
}
serv_printf("GOTO %s", WC->ugname);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
smart_goto(WC->wc_roomname);
return;
}
if (WC->uglsn >= 0L) {
serv_printf("SLRP %ld", WC->uglsn);
if (buf[0] != '2') {
smart_goto(WC->wc_roomname);
return;
}
if (WC->uglsn >= 0L) {
serv_printf("SLRP %ld", WC->uglsn);
+ serv_getln(buf, sizeof buf);
}
strcpy(buf, WC->ugname);
strcpy(WC->ugname, "");
}
strcpy(buf, WC->ugname);
strcpy(WC->ugname, "");
int flags, floor, order, view, flags2;
serv_puts("GETR");
int flags, floor, order, view, flags2;
serv_puts("GETR");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') return(0);
extract_token(name, &buf[4], 0, '|', sizeof name);
if (buf[0] != '2') return(0);
extract_token(name, &buf[4], 0, '|', sizeof name);
serv_printf("SETR %s|%s|%s|%d|0|%d|%d|%d|%d",
name, password, dirname, flags,
floor, order, view, flags2);
serv_printf("SETR %s|%s|%s|%d|0|%d|%d|%d|%d",
name, password, dirname, flags,
floor, order, view, flags2);
+ serv_getln(buf, sizeof buf);
load_floorlist();
serv_puts("GETR");
load_floorlist();
serv_puts("GETR");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
wprintf("<LI>Room aide: \n");
serv_puts("GETA");
wprintf("<LI>Room aide: \n");
serv_puts("GETA");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
wprintf("<EM>%s</EM>\n", &buf[4]);
} else {
if (buf[0] != '2') {
wprintf("<EM>%s</EM>\n", &buf[4]);
} else {
/* Learn the current configuration */
serv_puts("CONF getsys|application/x-citadel-ignet-config");
/* Learn the current configuration */
serv_puts("CONF getsys|application/x-citadel-ignet-config");
- serv_gets(buf);
- if (buf[0]=='1') while (serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0]=='1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(node, buf, 0, '|', sizeof node);
not_shared_with = realloc(not_shared_with,
strlen(not_shared_with) + 32);
extract_token(node, buf, 0, '|', sizeof node);
not_shared_with = realloc(not_shared_with,
strlen(not_shared_with) + 32);
- serv_gets(buf);
- if (buf[0]=='1') while (serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0]=='1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(cmd, buf, 0, '|', sizeof cmd);
extract_token(node, buf, 1, '|', sizeof node);
extract_token(remote_room, buf, 2, '|', sizeof remote_room);
extract_token(cmd, buf, 0, '|', sizeof cmd);
extract_token(node, buf, 1, '|', sizeof node);
extract_token(remote_room, buf, 2, '|', sizeof remote_room);
"</i><br /><br />\n");
serv_puts("GNET");
"</i><br /><br />\n");
serv_puts("GNET");
- serv_gets(buf);
- if (buf[0]=='1') while (serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0]=='1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(cmd, buf, 0, '|', sizeof cmd);
if (!strcasecmp(cmd, "listrecp")) {
extract_token(recp, buf, 1, '|', sizeof recp);
extract_token(cmd, buf, 0, '|', sizeof cmd);
if (!strcasecmp(cmd, "listrecp")) {
extract_token(recp, buf, 1, '|', sizeof recp);
"</i><br /><br />\n");
serv_puts("GNET");
"</i><br /><br />\n");
serv_puts("GNET");
- serv_gets(buf);
- if (buf[0]=='1') while (serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0]=='1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(cmd, buf, 0, '|', sizeof cmd);
if (!strcasecmp(cmd, "digestrecp")) {
extract_token(recp, buf, 1, '|', sizeof recp);
extract_token(cmd, buf, 0, '|', sizeof cmd);
if (!strcasecmp(cmd, "digestrecp")) {
extract_token(recp, buf, 1, '|', sizeof recp);
if (!strcmp(tab, "expire")) {
serv_puts("GPEX room");
if (!strcmp(tab, "expire")) {
serv_puts("GPEX room");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
roompolicy = extract_int(&buf[4], 0);
roomvalue = extract_int(&buf[4], 1);
}
serv_puts("GPEX floor");
if (buf[0] == '2') {
roompolicy = extract_int(&buf[4], 0);
roomvalue = extract_int(&buf[4], 1);
}
serv_puts("GPEX floor");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
floorpolicy = extract_int(&buf[4], 0);
floorvalue = extract_int(&buf[4], 1);
if (buf[0] == '2') {
floorpolicy = extract_int(&buf[4], 0);
floorvalue = extract_int(&buf[4], 1);
return;
}
serv_puts("GETR");
return;
}
serv_puts("GETR");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
strcpy(er_roomaide, bstr("er_roomaide"));
if (strlen(er_roomaide) == 0) {
serv_puts("GETA");
strcpy(er_roomaide, bstr("er_roomaide"));
if (strlen(er_roomaide) == 0) {
serv_puts("GETA");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(er_roomaide, "");
} else {
if (buf[0] != '2') {
strcpy(er_roomaide, "");
} else {
sprintf(buf, "SETR %s|%s|%s|%u|%d|%d",
er_name, er_password, er_dirname, er_flags, bump, er_floor);
serv_puts(buf);
sprintf(buf, "SETR %s|%s|%s|%u|%d|%d",
er_name, er_password, er_dirname, er_flags, bump, er_floor);
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_editroom();
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_editroom();
if (strlen(er_roomaide) > 0) {
sprintf(buf, "SETA %s", er_roomaide);
serv_puts(buf);
if (strlen(er_roomaide) > 0) {
sprintf(buf, "SETA %s", er_roomaide);
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
char buf[SIZ], room[SIZ], username[SIZ];
serv_puts("GETR");
char buf[SIZ], room[SIZ], username[SIZ];
serv_puts("GETR");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
escputs(&buf[4]);
if (buf[0] != '2') {
escputs(&buf[4]);
if (!strcmp(bstr("sc"), "Kick")) {
sprintf(buf, "KICK %s", username);
serv_puts(buf);
if (!strcmp(bstr("sc"), "Kick")) {
sprintf(buf, "KICK %s", username);
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
if (!strcmp(bstr("sc"), "Invite")) {
sprintf(buf, "INVT %s", username);
serv_puts(buf);
if (!strcmp(bstr("sc"), "Invite")) {
sprintf(buf, "INVT %s", username);
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
char buf[SIZ], room[SIZ], username[SIZ];
serv_puts("GETR");
char buf[SIZ], room[SIZ], username[SIZ];
serv_puts("GETR");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
escputs(&buf[4]);
if (buf[0] != '2') {
escputs(&buf[4]);
wprintf("<INPUT TYPE=\"hidden\" NAME=\"tab\" VALUE=\"access\">\n");
wprintf("<SELECT NAME=\"username\" SIZE=\"10\" style=\"width:100%%\">\n");
serv_puts("WHOK");
wprintf("<INPUT TYPE=\"hidden\" NAME=\"tab\" VALUE=\"access\">\n");
wprintf("<SELECT NAME=\"username\" SIZE=\"10\" style=\"width:100%%\">\n");
serv_puts("WHOK");
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(username, buf, 0, '|', sizeof username);
wprintf("<OPTION>");
escputs(username);
extract_token(username, buf, 0, '|', sizeof username);
wprintf("<OPTION>");
escputs(username);
char buf[SIZ];
serv_puts("CRE8 0");
char buf[SIZ];
serv_puts("CRE8 0");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
wprintf("</CENTER>\n");
wprintf("</FORM>\n<hr />");
serv_printf("MESG roomaccess");
wprintf("</CENTER>\n");
wprintf("</FORM>\n<hr />");
serv_printf("MESG roomaccess");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '1') {
fmout(NULL, "CENTER");
}
if (buf[0] == '1') {
fmout(NULL, "CENTER");
}
int rm_bits2;
serv_puts("GETR");
int rm_bits2;
serv_puts("GETR");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') return;
extract_token(rm_name, &buf[4], 0, '|', sizeof rm_name);
if (buf[0] != '2') return;
extract_token(rm_name, &buf[4], 0, '|', sizeof rm_name);
rm_name, rm_pass, rm_dir, rm_bits1, rm_floor,
rm_listorder, newview, rm_bits2
);
rm_name, rm_pass, rm_dir, rm_bits1, rm_floor,
rm_listorder, newview, rm_bits2
);
+ serv_getln(buf, sizeof buf);
sprintf(buf, "CRE8 1|%s|%d|%s|%d|%d|%d",
er_name, er_num_type, er_password, er_floor, 0, er_view);
serv_puts(buf);
sprintf(buf, "CRE8 1|%s|%d|%s|%d|%d|%d",
er_name, er_num_type, er_password, er_floor, 0, er_view);
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
strcat(buf, "|");
strcat(buf, bstr("gr_pass"));
serv_puts(buf);
strcat(buf, "|");
strcat(buf, bstr("gr_pass"));
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
smart_goto(bstr("gr_name"));
if (buf[0] == '2') {
smart_goto(bstr("gr_name"));
if (!strcasecmp(bstr("sc"), "OK")) {
serv_printf("GOTO %s", WC->wc_roomname);
if (!strcasecmp(bstr("sc"), "OK")) {
serv_printf("GOTO %s", WC->wc_roomname);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
serv_puts("FORG");
if (buf[0] == '2') {
serv_puts("FORG");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
strcpy(final_destination, "_BASEROOM_");
}
if (buf[0] == '2') {
strcpy(final_destination, "_BASEROOM_");
}
char buf[SIZ];
serv_puts("KILL 1");
char buf[SIZ];
serv_puts("KILL 1");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
fclose(fp);
display_editroom();
if (buf[0] != '1') {
fclose(fp);
display_editroom();
}
/* This loop works for add *or* remove. Spiffy, eh? */
}
/* This loop works for add *or* remove. Spiffy, eh? */
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(cmpa0, buf, 0, '|', sizeof cmpa0);
extract_token(cmpa1, buf, 1, '|', sizeof cmpa1);
extract_token(cmpb0, line, 0, '|', sizeof cmpb0);
extract_token(cmpa0, buf, 0, '|', sizeof cmpa0);
extract_token(cmpa1, buf, 1, '|', sizeof cmpa1);
extract_token(cmpb0, line, 0, '|', sizeof cmpb0);
rewind(fp);
serv_puts("SNET");
rewind(fp);
serv_puts("SNET");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '4') {
fclose(fp);
display_editroom();
if (buf[0] != '4') {
fclose(fp);
display_editroom();
char buf[SIZ];
serv_printf("VIEW %d", newview);
char buf[SIZ];
serv_printf("VIEW %d", newview);
+ serv_getln(buf, sizeof buf);
WC->wc_view = newview;
smart_goto(WC->wc_roomname);
}
WC->wc_view = newview;
smart_goto(WC->wc_roomname);
}
/* Then add floors */
serv_puts("LFLR");
/* Then add floors */
serv_puts("LFLR");
- serv_gets(buf);
- if (buf[0]=='1') while(serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0]=='1') while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (max_folders >= alloc_folders) {
alloc_folders = max_folders + 100;
fold = realloc(fold,
if (max_folders >= alloc_folders) {
alloc_folders = max_folders + 100;
fold = realloc(fold,
/* Now add rooms */
serv_puts("LKRA");
/* Now add rooms */
serv_puts("LKRA");
- serv_gets(buf);
- if (buf[0]=='1') while(serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0]=='1') while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (max_folders >= alloc_folders) {
alloc_folders = max_folders + 100;
fold = realloc(fold,
if (max_folders >= alloc_folders) {
alloc_folders = max_folders + 100;
fold = realloc(fold,
}
serv_printf("SPEX room|%d|%d", atoi(bstr("roompolicy")), atoi(bstr("roomvalue")));
}
serv_printf("SPEX room|%d|%d", atoi(bstr("roompolicy")), atoi(bstr("roomvalue")));
+ serv_getln(buf, sizeof buf);
strcpy(WC->ImportantMessage, &buf[4]);
if (WC->axlevel >= 6) {
strcat(WC->ImportantMessage, "<br />\n");
serv_printf("SPEX floor|%d|%d", atoi(bstr("floorpolicy")), atoi(bstr("floorvalue")));
strcpy(WC->ImportantMessage, &buf[4]);
if (WC->axlevel >= 6) {
strcat(WC->ImportantMessage, "<br />\n");
serv_printf("SPEX floor|%d|%d", atoi(bstr("floorpolicy")), atoi(bstr("floorvalue")));
+ serv_getln(buf, sizeof buf);
strcat(WC->ImportantMessage, &buf[4]);
}
strcat(WC->ImportantMessage, &buf[4]);
}
user_agent,
browser_host
);
user_agent,
browser_host
);
+ serv_getln(buf, sizeof buf);
/* Tell the server what kind of richtext we prefer */
serv_puts("MSGP text/html|text/plain");
/* Tell the server what kind of richtext we prefer */
serv_puts("MSGP text/html|text/plain");
+ serv_getln(buf, sizeof buf);
#ifdef WEBCIT_WITH_CALENDAR_SERVICE
/* Tell the server that when we save a calendar event, we
#ifdef WEBCIT_WITH_CALENDAR_SERVICE
/* Tell the server that when we save a calendar event, we
* instead of by the client.
*/
serv_puts("ICAL sgi|1");
* instead of by the client.
*/
serv_puts("ICAL sgi|1");
+ serv_getln(buf, sizeof buf);
#endif
/* Now ask the server to tell us a little bit about itself... */
serv_puts("INFO");
#endif
/* Now ask the server to tell us a little bit about itself... */
serv_puts("INFO");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1')
return;
a = 0;
if (buf[0] != '1')
return;
a = 0;
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
switch (a) {
case 0:
serv_info.serv_pid = atoi(buf);
switch (a) {
case 0:
serv_info.serv_pid = atoi(buf);
wprintf("<DIV ALIGN=%s>\n", align);
while (1) {
if (fp == NULL)
wprintf("<DIV ALIGN=%s>\n", align);
while (1) {
if (fp == NULL)
+ serv_getln(buf, sizeof buf);
if (fp != NULL) {
if (fgets(buf, SIZ, fp) == NULL)
strcpy(buf, "000");
if (fp != NULL) {
if (fgets(buf, SIZ, fp) == NULL)
strcpy(buf, "000");
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if ((buf[0] == 32) && (count > 0)) {
wprintf("\n");
}
if ((buf[0] == 32) && (count > 0)) {
wprintf("\n");
}
if (thisblock == 0) return;
}
serv_printf("READ %d|%d", (int)bytes, (int)thisblock);
if (thisblock == 0) return;
}
serv_printf("READ %d|%d", (int)bytes, (int)thisblock);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '6') {
thisblock = (size_t)atoi(&buf[4]);
if (!WC->connected) return;
if (buf[0] == '6') {
thisblock = (size_t)atoi(&buf[4]);
if (!WC->connected) return;
strcpy(text, "");
bytes_allocated = SIZ;
strcpy(text, "");
bytes_allocated = SIZ;
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
linelen = strlen(buf);
buf[linelen] = '\n';
buf[linelen+1] = 0;
linelen = strlen(buf);
buf[linelen] = '\n';
buf[linelen+1] = 0;
}
serv_printf("CONF get");
}
serv_printf("CONF get");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
wprintf("<SPAN CLASS=\"titlebar\">Error</SPAN>\n");
if (buf[0] != '1') {
wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
wprintf("<SPAN CLASS=\"titlebar\">Error</SPAN>\n");
wprintf("<TABLE border=0>\n");
i = 0;
wprintf("<TABLE border=0>\n");
i = 0;
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
switch (++i) {
case 1:
if (!strcasecmp(whichmenu, "general")) {
switch (++i) {
case 1:
if (!strcasecmp(whichmenu, "general")) {
}
serv_puts("GPEX site");
}
serv_puts("GPEX site");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
sitepolicy = extract_int(&buf[4], 0);
sitevalue = extract_int(&buf[4], 1);
}
serv_puts("GPEX mailboxes");
if (buf[0] == '2') {
sitepolicy = extract_int(&buf[4], 0);
sitevalue = extract_int(&buf[4], 1);
}
serv_puts("GPEX mailboxes");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
mboxpolicy = extract_int(&buf[4], 0);
mboxvalue = extract_int(&buf[4], 1);
if (buf[0] == '2') {
mboxpolicy = extract_int(&buf[4], 0);
mboxvalue = extract_int(&buf[4], 1);
return;
}
serv_printf("CONF set");
return;
}
serv_printf("CONF set");
+ serv_getln(buf, sizeof buf);
if (buf[0] != '4') {
strcpy(WC->ImportantMessage, &buf[4]);
display_siteconfig();
if (buf[0] != '4') {
strcpy(WC->ImportantMessage, &buf[4]);
display_siteconfig();
serv_printf("000");
serv_printf("SPEX site|%d|%d", atoi(bstr("sitepolicy")), atoi(bstr("sitevalue")));
serv_printf("000");
serv_printf("SPEX site|%d|%d", atoi(bstr("sitepolicy")), atoi(bstr("sitevalue")));
+ serv_getln(buf, sizeof buf);
serv_printf("SPEX mailboxes|%d|%d", atoi(bstr("mboxpolicy")), atoi(bstr("mboxvalue")));
serv_printf("SPEX mailboxes|%d|%d", atoi(bstr("mboxpolicy")), atoi(bstr("mboxvalue")));
+ serv_getln(buf, sizeof buf);
strcpy(WC->ImportantMessage, "System configuration has been updated.");
display_siteconfig();
strcpy(WC->ImportantMessage, "System configuration has been updated.");
display_siteconfig();
char buf[SIZ];
serv_puts(servcmd);
char buf[SIZ];
serv_puts(servcmd);
+ serv_getln(buf, sizeof buf);
switch(buf[0]) {
case '2':
switch(buf[0]) {
case '2':
extract_token(room, rooms_to_check, i, '|', sizeof room);
serv_printf("GOTO %s", room);
extract_token(room, rooms_to_check, i, '|', sizeof room);
serv_printf("GOTO %s", room);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
extract_token(room, &buf[4], 0, '|', sizeof room);
wprintf("<TR><TD><A HREF=\"/dotgoto?room=");
if (buf[0] == '2') {
extract_token(room, &buf[4], 0, '|', sizeof room);
wprintf("<TR><TD><A HREF=\"/dotgoto?room=");
svprintf("BOXTITLE", WCS_STRING, "Who's online now");
do_template("beginbox");
serv_puts("RWHO");
svprintf("BOXTITLE", WCS_STRING, "Who's online now");
do_template("beginbox");
serv_puts("RWHO");
- serv_gets(buf);
- if (buf[0] == '1') while(serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0] == '1') while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(user, buf, 1, '|', sizeof user);
escputs(user);
wprintf("<br />\n");
extract_token(user, buf, 1, '|', sizeof user);
escputs(user);
wprintf("<br />\n");
char buf[SIZ];
serv_puts(check_cmd);
char buf[SIZ];
serv_puts(check_cmd);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
if (buf[0] != '2') {
strcpy(WC->ImportantMessage, &buf[4]);
wprintf("<TEXTAREA NAME=\"msgtext\" wrap=soft "
"ROWS=10 COLS=80 WIDTH=80>\n");
serv_puts(read_cmd);
wprintf("<TEXTAREA NAME=\"msgtext\" wrap=soft "
"ROWS=10 COLS=80 WIDTH=80>\n");
serv_puts(read_cmd);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '1')
server_to_text();
wprintf("</TEXTAREA><br /><br />\n");
if (buf[0] == '1')
server_to_text();
wprintf("</TEXTAREA><br /><br />\n");
return;
}
serv_puts(enter_cmd);
return;
}
serv_puts(enter_cmd);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '4') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
if (buf[0] != '4') {
strcpy(WC->ImportantMessage, &buf[4]);
display_main_menu();
/*
* input string from pipe
*/
/*
* input string from pipe
*/
-void serv_gets(char *strbuf)
+void serv_getln(char *strbuf, int bufsize)
{
int ch, len;
char buf[2];
{
int ch, len;
char buf[2];
serv_read(&buf[0], 1);
ch = buf[0];
strbuf[len++] = ch;
serv_read(&buf[0], 1);
ch = buf[0];
strbuf[len++] = ch;
- } while ((ch != 10) && (ch != 0) && (len < (SIZ-1)));
+ } while ((ch != 10) && (ch != 0) && (len < (bufsize-1)));
if (strbuf[len-1] == 10) strbuf[--len] = 0;
if (strbuf[len-1] == 13) strbuf[--len] = 0;
#ifdef SERV_TRACE
if (strbuf[len-1] == 10) strbuf[--len] = 0;
if (strbuf[len-1] == 13) strbuf[--len] = 0;
#ifdef SERV_TRACE
"<FORM METHOD=\"POST\" ACTION=\"/display_edituser\">\n");
wprintf("<SELECT NAME=\"username\" SIZE=10 STYLE=\"width:100%%\">\n");
serv_puts("LIST");
"<FORM METHOD=\"POST\" ACTION=\"/display_edituser\">\n");
wprintf("<SELECT NAME=\"username\" SIZE=10 STYLE=\"width:100%%\">\n");
serv_puts("LIST");
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(username, buf, 0, '|', sizeof username);
wprintf("<OPTION");
if (preselect != NULL)
extract_token(username, buf, 0, '|', sizeof username);
wprintf("<OPTION");
if (preselect != NULL)
TRYAGAIN:
/* Search for the user's vCard */
serv_puts("MSGS ALL");
TRYAGAIN:
/* Search for the user's vCard */
serv_puts("MSGS ALL");
- serv_gets(buf);
- if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) {
+ serv_getln(buf, sizeof buf);
+ if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
ptr = malloc(sizeof(struct stuff_t));
ptr->msgnum = atol(buf);
ptr->next = stuff;
ptr = malloc(sizeof(struct stuff_t));
ptr->msgnum = atol(buf);
ptr->next = stuff;
/* Iterate through the message list looking for vCards */
while (stuff != NULL) {
serv_printf("MSG0 %ld|2", stuff->msgnum);
/* Iterate through the message list looking for vCards */
while (stuff != NULL) {
serv_printf("MSG0 %ld|2", stuff->msgnum);
+ serv_getln(buf, sizeof buf);
- while(serv_gets(buf), strcmp(buf, "000")) {
+ while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (!strncasecmp(buf, "part=", 5)) {
extract_token(partnum, &buf[5], 2, '|', sizeof partnum);
extract_token(content_type, &buf[5], 4, '|', sizeof content_type);
if (!strncasecmp(buf, "part=", 5)) {
extract_token(partnum, &buf[5], 2, '|', sizeof partnum);
extract_token(content_type, &buf[5], 4, '|', sizeof content_type);
if (vcard_msgnum < 0) if (already_tried_creating_one == 0) {
already_tried_creating_one = 1;
serv_puts("ENT0 1|||4");
if (vcard_msgnum < 0) if (already_tried_creating_one == 0) {
already_tried_creating_one = 1;
serv_puts("ENT0 1|||4");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '4') {
serv_puts("Content-type: text/x-vcard");
serv_puts("");
if (buf[0] == '4') {
serv_puts("Content-type: text/x-vcard");
serv_puts("");
/* Locate the user's config room, creating it if necessary */
sprintf(roomname, "%010ld.%s", usernum, USERCONFIGROOM);
serv_printf("GOTO %s||1", roomname);
/* Locate the user's config room, creating it if necessary */
sprintf(roomname, "%010ld.%s", usernum, USERCONFIGROOM);
serv_printf("GOTO %s||1", roomname);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
serv_printf("CRE8 1|%s|5|||1|", roomname);
if (buf[0] != '2') {
serv_printf("CRE8 1|%s|5|||1|", roomname);
+ serv_getln(buf, sizeof buf);
serv_printf("GOTO %s||1", roomname);
serv_printf("GOTO %s||1", roomname);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
sprintf(error_message,
"<IMG SRC=\"static/error.gif\" ALIGN=CENTER>"
if (buf[0] != '2') {
sprintf(error_message,
"<IMG SRC=\"static/error.gif\" ALIGN=CENTER>"
}
serv_printf("AGUP %s", username);
}
serv_printf("AGUP %s", username);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
sprintf(error_message,
"<IMG SRC=\"static/error.gif\" ALIGN=CENTER>"
if (buf[0] != '2') {
sprintf(error_message,
"<IMG SRC=\"static/error.gif\" ALIGN=CENTER>"
bstr("lastcall"),
bstr("purgedays")
);
bstr("lastcall"),
bstr("purgedays")
);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
sprintf(message,
"<IMG SRC=\"static/error.gif\" ALIGN=CENTER>"
if (buf[0] != '2') {
sprintf(message,
"<IMG SRC=\"static/error.gif\" ALIGN=CENTER>"
char message[SIZ];
serv_printf("ASUP %s|0|0|0|0|0|", username);
char message[SIZ];
serv_printf("ASUP %s|0|0|0|0|0|", username);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
sprintf(message,
"<IMG SRC=\"static/error.gif\" ALIGN=CENTER>"
if (buf[0] != '2') {
sprintf(message,
"<IMG SRC=\"static/error.gif\" ALIGN=CENTER>"
strcpy(username, bstr("username"));
serv_printf("CREU %s", username);
strcpy(username, bstr("username"));
serv_printf("CREU %s", username);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
/* sprintf(error_message, "<b>User has been created.</b>");
if (buf[0] == '2') {
/* sprintf(error_message, "<b>User has been created.</b>");
int bg = 0;
serv_puts("LBIO");
int bg = 0;
serv_puts("LBIO");
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
bptr = (struct namelist *) malloc(sizeof(struct namelist));
bptr->next = bio;
strcpy(bptr->name, buf);
bptr = (struct namelist *) malloc(sizeof(struct namelist));
bptr->next = bio;
strcpy(bptr->name, buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
wprintf("<EM>%s</EM><br />\n", &buf[4]);
goto DONE;
if (buf[0] != '1') {
wprintf("<EM>%s</EM><br />\n", &buf[4]);
goto DONE;
wprintf("<TR><TH>User Name</TH><TH>Number</TH><TH>Access Level</TH>");
wprintf("<TH>Last Login</TH><TH>Total Logins</TH><TH>Total Posts</TH></TR>\n");
wprintf("<TR><TH>User Name</TH><TH>Number</TH><TH>Access Level</TH>");
wprintf("<TH>Last Login</TH><TH>Total Logins</TH><TH>Total Posts</TH></TR>\n");
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
extract_token(fl, buf, 0, '|', sizeof fl);
has_bio = 0;
for (bptr = bio; bptr != NULL; bptr = bptr->next) {
extract_token(fl, buf, 0, '|', sizeof fl);
has_bio = 0;
for (bptr = bio; bptr != NULL; bptr = bptr->next) {
"<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>\n");
serv_printf("OIMG _userpic_|%s", who);
"<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>\n");
serv_printf("OIMG _userpic_|%s", who);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
have_pic = 1;
serv_puts("CLOS");
if (buf[0] == '2') {
have_pic = 1;
serv_puts("CLOS");
+ serv_getln(buf, sizeof buf);
}
wprintf("</TD><TD><H1>%s</H1></TD></TR></TABLE></CENTER>\n", who);
serv_printf("RBIO %s", who);
}
wprintf("</TD><TD><H1>%s</H1></TD></TR></TABLE></CENTER>\n", who);
serv_printf("RBIO %s", who);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '1') {
fmout(NULL, "JUSTIFY");
}
if (buf[0] == '1') {
fmout(NULL, "JUSTIFY");
}
if (msgnum >= 0) {
sprintf(buf, "MSG0 %ld|1", msgnum);
serv_puts(buf);
if (msgnum >= 0) {
sprintf(buf, "MSG0 %ld|1", msgnum);
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
convenience_page("770000", "Error", &buf[4]);
return;
}
if (buf[0] != '1') {
convenience_page("770000", "Error", &buf[4]);
return;
}
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (!strncasecmp(buf, "from=", 5)) {
strcpy(whatuser, &buf[5]);
}
if (!strncasecmp(buf, "from=", 5)) {
strcpy(whatuser, &buf[5]);
}
sprintf(buf, "OPNA %ld|%s", msgnum, partnum);
serv_puts(buf);
sprintf(buf, "OPNA %ld|%s", msgnum, partnum);
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
convenience_page("770000", "Error", &buf[4]);
return;
if (buf[0] != '2') {
convenience_page("770000", "Error", &buf[4]);
return;
read_server_binary(serialized_vcard, total_len);
serv_puts("CLOS");
read_server_binary(serialized_vcard, total_len);
serv_puts("CLOS");
+ serv_getln(buf, sizeof buf);
serialized_vcard[total_len] = 0;
v = vcard_load(serialized_vcard);
serialized_vcard[total_len] = 0;
v = vcard_load(serialized_vcard);
sprintf(buf, "ENT0 1|||4||");
serv_puts(buf);
sprintf(buf, "ENT0 1|||4||");
serv_puts(buf);
+ serv_getln(buf, sizeof buf);
if (buf[0] != '4') {
edit_vcard();
return;
if (buf[0] != '4') {
edit_vcard();
return;
char buf[SIZ];
serv_puts("NOOP");
char buf[SIZ];
serv_puts("NOOP");
+ serv_getln(buf, sizeof buf);
if (buf[3] == '*') WC->HaveInstantMessages = 1;
}
if (buf[3] == '*') WC->HaveInstantMessages = 1;
}
off_t bytes;
serv_printf("OIMG %s|%s", bstr("name"), bstr("parm"));
off_t bytes;
serv_printf("OIMG %s|%s", bstr("name"), bstr("parm"));
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
bytes = extract_long(&buf[4], 0);
xferbuf = malloc(bytes + 2);
if (buf[0] == '2') {
bytes = extract_long(&buf[4], 0);
xferbuf = malloc(bytes + 2);
/* Read it from the server */
read_server_binary(xferbuf, bytes);
serv_puts("CLOS");
/* Read it from the server */
read_server_binary(xferbuf, bytes);
serv_puts("CLOS");
+ serv_getln(buf, sizeof buf);
/* Write it to the browser */
http_transmit_thing(xferbuf, (size_t)bytes, "image/gif", 0);
/* Write it to the browser */
http_transmit_thing(xferbuf, (size_t)bytes, "image/gif", 0);
char *content = NULL;
serv_printf("OPNA %s|%s", bstr("msgnum"), bstr("partnum"));
char *content = NULL;
serv_printf("OPNA %s|%s", bstr("msgnum"), bstr("partnum"));
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
bytes = extract_long(&buf[4], 0);
content = malloc(bytes + 2);
if (buf[0] == '2') {
bytes = extract_long(&buf[4], 0);
content = malloc(bytes + 2);
output_headers(0, 0, 0, 0, 0, 0, 0);
read_server_binary(content, bytes);
serv_puts("CLOS");
output_headers(0, 0, 0, 0, 0, 0, 0);
read_server_binary(content, bytes);
serv_puts("CLOS");
+ serv_getln(buf, sizeof buf);
http_transmit_thing(content, bytes, content_type, 0);
free(content);
} else {
http_transmit_thing(content, bytes, content_type, 0);
free(content);
} else {
char *content;
serv_printf("OPNA %ld|%s", msgnum, partnum);
char *content;
serv_printf("OPNA %ld|%s", msgnum, partnum);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
bytes = extract_long(&buf[4], 0);
extract_token(content_type, &buf[4], 3, '|', sizeof content_type);
if (buf[0] == '2') {
bytes = extract_long(&buf[4], 0);
extract_token(content_type, &buf[4], 3, '|', sizeof content_type);
read_server_binary(content, bytes);
serv_puts("CLOS");
read_server_binary(content, bytes);
serv_puts("CLOS");
+ serv_getln(buf, sizeof buf);
content[bytes] = 0; /* null terminate for good measure */
return(content);
}
content[bytes] = 0; /* null terminate for good measure */
return(content);
}
}
else {
WC->connected = 1;
}
else {
WC->connected = 1;
- serv_gets(buf); /* get the server welcome message */
+ serv_getln(buf, sizeof buf); /* get the server welcome message */
locate_host(browser_host, WC->http_sock);
get_serv_info(browser_host, user_agent);
if (serv_info.serv_rev_level < MINIMUM_CIT_VERSION) {
locate_host(browser_host, WC->http_sock);
get_serv_info(browser_host, user_agent);
if (serv_info.serv_rev_level < MINIMUM_CIT_VERSION) {
&& (strlen(c_httpauth_user) > 0)
&& (strlen(c_httpauth_pass) > 0)) {
serv_printf("USER %s", c_httpauth_user);
&& (strlen(c_httpauth_user) > 0)
&& (strlen(c_httpauth_pass) > 0)) {
serv_printf("USER %s", c_httpauth_user);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '3') {
serv_printf("PASS %s", c_httpauth_pass);
if (buf[0] == '3') {
serv_printf("PASS %s", c_httpauth_pass);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
become_logged_in(c_httpauth_user,
c_httpauth_pass, buf);
if (buf[0] == '2') {
become_logged_in(c_httpauth_user,
c_httpauth_pass, buf);
&& (strlen(c_username) > 0)
&& (strlen(c_password) > 0)) {
serv_printf("USER %s", c_username);
&& (strlen(c_username) > 0)
&& (strlen(c_password) > 0)) {
serv_printf("USER %s", c_username);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '3') {
serv_printf("PASS %s", c_password);
if (buf[0] == '3') {
serv_printf("PASS %s", c_password);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
become_logged_in(c_username, c_password, buf);
}
if (buf[0] == '2') {
become_logged_in(c_username, c_password, buf);
}
*/
if ((strlen(WC->wc_roomname) == 0) && (strlen(c_roomname) > 0)) {
serv_printf("GOTO %s", c_roomname);
*/
if ((strlen(WC->wc_roomname) == 0) && (strlen(c_roomname) > 0)) {
serv_printf("GOTO %s", c_roomname);
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
strcpy(WC->wc_roomname, c_roomname);
}
if (buf[0] == '2') {
strcpy(WC->wc_roomname, c_roomname);
}
void get_serv_info(char *, char *);
int uds_connectsock(char *);
int tcp_connectsock(char *, char *);
void get_serv_info(char *, char *);
int uds_connectsock(char *);
int tcp_connectsock(char *, char *);
-void serv_gets(char *strbuf);
+void serv_getln(char *strbuf, int bufsize);
void serv_puts(char *string);
void whobbs(void);
void fmout(FILE *fp, char *align);
void serv_puts(char *string);
void whobbs(void);
void fmout(FILE *fp, char *align);
wprintf("<TH>From host</TH>\n</TR>\n");
serv_puts("TIME");
wprintf("<TH>From host</TH>\n</TR>\n");
serv_puts("TIME");
+ serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
now = extract_long(&buf[4], 0);
}
if (buf[0] == '2') {
now = extract_long(&buf[4], 0);
}
+ serv_getln(buf, sizeof buf);
- while (serv_gets(buf), strcmp(buf, "000")) {
+ while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
sess = extract_int(buf, 0);
extract_token(user, buf, 1, '|', sizeof user);
extract_token(room, buf, 2, '|', sizeof room);
sess = extract_int(buf, 0);
extract_token(user, buf, 1, '|', sizeof user);
extract_token(room, buf, 2, '|', sizeof room);
char buf[SIZ];
serv_printf("TERM %s", bstr("which_session"));
char buf[SIZ];
serv_printf("TERM %s", bstr("which_session"));
+ serv_getln(buf, sizeof buf);
if (!strcasecmp(bstr("sc"), "Change room name")) {
serv_printf("RCHG %s", bstr("fake_roomname"));
if (!strcasecmp(bstr("sc"), "Change room name")) {
serv_printf("RCHG %s", bstr("fake_roomname"));
+ serv_getln(buf, sizeof buf);
http_redirect("/whobbs");
} else if (!strcasecmp(bstr("sc"), "Change host name")) {
serv_printf("HCHG %s", bstr("fake_hostname"));
http_redirect("/whobbs");
} else if (!strcasecmp(bstr("sc"), "Change host name")) {
serv_printf("HCHG %s", bstr("fake_hostname"));
+ serv_getln(buf, sizeof buf);
http_redirect("/whobbs");
} else if (!strcasecmp(bstr("sc"), "Change user name")) {
serv_printf("UCHG %s", bstr("fake_username"));
http_redirect("/whobbs");
} else if (!strcasecmp(bstr("sc"), "Change user name")) {
serv_printf("UCHG %s", bstr("fake_username"));
+ serv_getln(buf, sizeof buf);
http_redirect("/whobbs");
} else if (!strcasecmp(bstr("sc"), "Cancel")) {
http_redirect("/whobbs");
http_redirect("/whobbs");
} else if (!strcasecmp(bstr("sc"), "Cancel")) {
http_redirect("/whobbs");