From 3dda3cda8acb9c1c4eb227f4780630913ffc633a Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 11 Apr 2005 14:45:13 +0000 Subject: [PATCH] * Replaced serv_gets() with serv_getln() - which now requires the caller to supply the size of the target buffer. --- webcit/ChangeLog | 5 +- webcit/auth.c | 24 ++++---- webcit/availability.c | 2 +- webcit/calendar.c | 20 +++---- webcit/event.c | 8 +-- webcit/floors.c | 10 ++-- webcit/graphics.c | 10 ++-- webcit/groupdav_delete.c | 2 +- webcit/groupdav_get.c | 4 +- webcit/groupdav_propfind.c | 16 ++--- webcit/groupdav_put.c | 6 +- webcit/html2html.c | 2 +- webcit/inetconf.c | 10 ++-- webcit/listsub.c | 10 ++-- webcit/mainmenu.c | 4 +- webcit/messages.c | 46 +++++++-------- webcit/netconf.c | 22 +++---- webcit/notes.c | 4 +- webcit/paging.c | 18 +++--- webcit/preferences.c | 30 +++++----- webcit/roomops.c | 116 ++++++++++++++++++------------------- webcit/serv_func.c | 18 +++--- webcit/siteconfig.c | 14 ++--- webcit/subst.c | 2 +- webcit/summary.c | 6 +- webcit/sysmsgs.c | 6 +- webcit/tcp_sockets.c | 4 +- webcit/useredit.c | 28 ++++----- webcit/userlist.c | 14 ++--- webcit/vcard_edit.c | 10 ++-- webcit/webcit.c | 26 ++++----- webcit/webcit.h | 2 +- webcit/who.c | 14 ++--- 33 files changed, 258 insertions(+), 255 deletions(-) diff --git a/webcit/ChangeLog b/webcit/ChangeLog index f603ca4d1..d54b65481 100644 --- a/webcit/ChangeLog +++ b/webcit/ChangeLog @@ -1,4 +1,8 @@ $Log$ +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 @@ -2505,4 +2509,3 @@ Sun Dec 6 19:50:55 EST 1998 Art Cancro 1998-12-03 Nathan Bryant * webserver.c: warning fix - diff --git a/webcit/auth.c b/webcit/auth.c index 3fb489847..06150fa1f 100644 --- a/webcit/auth.c +++ b/webcit/auth.c @@ -87,7 +87,7 @@ void become_logged_in(char *user, char *pass, char *serv_response) load_preferences(); serv_puts("CHEK"); - serv_gets(buf); + 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); @@ -107,10 +107,10 @@ void do_login(void) } if (!strcasecmp(bstr("action"), "Login")) { serv_printf("USER %s", bstr("name")); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '3') { serv_printf("PASS %s", bstr("pass")); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { become_logged_in(bstr("name"), bstr("pass"), buf); @@ -129,11 +129,11 @@ void do_login(void) return; } serv_printf("NEWU %s", bstr("name")); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { become_logged_in(bstr("name"), bstr("pass"), buf); serv_printf("SETP %s", bstr("pass")); - serv_gets(buf); + serv_getln(buf, sizeof buf); } else { display_login(&buf[4]); return; @@ -225,7 +225,7 @@ void do_logout(void) wprintf("
"); serv_puts("MESG goodbye"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (WC->serv_sock >= 0) { if (buf[0] == '1') { @@ -271,13 +271,13 @@ void validate(void) if (strlen(buf) > 0) if (strlen(bstr("axlevel")) > 0) { serv_printf("VALI %s|%s", buf, bstr("axlevel")); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { wprintf("%s
\n", &buf[4]); } } serv_puts("GNUR"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '3') { wprintf("%s
\n", &buf[4]); @@ -291,11 +291,11 @@ void validate(void) strcpy(user, &buf[4]); serv_printf("GREG %s", user); - serv_gets(cmd); + serv_getln(cmd, sizeof cmd); if (cmd[0] == '1') { a = 0; do { - serv_gets(buf); + serv_getln(buf, sizeof buf); ++a; if (a == 1) wprintf("User #%s

%s

", @@ -400,7 +400,7 @@ void display_changepw(void) wprintf("

"); serv_puts("MESG changepw"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { fmout(NULL, "CENTER"); } @@ -456,7 +456,7 @@ void changepw(void) } serv_printf("SETP %s", newpass1); - serv_gets(buf); + serv_getln(buf, sizeof buf); sprintf(WC->ImportantMessage, "%s", &buf[4]); if (buf[0] == '2') { safestrncpy(WC->wc_password, buf, sizeof WC->wc_password); diff --git a/webcit/availability.c b/webcit/availability.c index fdda99743..27d992407 100644 --- a/webcit/availability.c +++ b/webcit/availability.c @@ -42,7 +42,7 @@ icalcomponent *get_freebusy_for_user(char *who) { icalcomponent *fb = NULL; serv_printf("ICAL freebusy|%s", who); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { serialized_fb = read_server_text(); } diff --git a/webcit/calendar.c b/webcit/calendar.c index 10296ae79..07221154d 100644 --- a/webcit/calendar.c +++ b/webcit/calendar.c @@ -229,9 +229,9 @@ void cal_process_object(icalcomponent *cal, /* Check for conflicts */ lprintf(9, "Checking server calendar for conflicts...\n"); serv_printf("ICAL conflicts|%ld|%s|", msgnum, cal_partnum); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { - 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("%s" @@ -288,7 +288,7 @@ void cal_process_object(icalcomponent *cal, * 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_gets(buf); + serv_getln(buf, sizeof buf); } ***********/ @@ -366,7 +366,7 @@ void respond_to_request(void) { bstr("cal_partnum"), bstr("sc") ); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { wprintf("
" @@ -424,7 +424,7 @@ void handle_rsvp(void) { bstr("cal_partnum"), bstr("sc") ); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { wprintf("
" @@ -713,7 +713,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum) { /* Serialize it and save it to the message base */ serv_puts("ENT0 1|||4"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '4') { serv_puts("Content-type: text/calendar"); serv_puts(""); @@ -738,7 +738,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum) { if ( (delete_existing) && (msgnum > 0L) ) { serv_printf("DELE %ld", atol(bstr("msgnum"))); - serv_gets(buf); + serv_getln(buf, sizeof buf); } if (created_new_vtodo) { @@ -775,10 +775,10 @@ void display_using_handler(long msgnum, sprintf(buf, "MSG0 %ld|1", msgnum); /* ask for headers only */ serv_puts(buf); - serv_gets(buf); + serv_getln(buf, sizeof buf); 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); @@ -926,7 +926,7 @@ void do_freebusy(char *req) { lprintf(9, "freebusy requested for <%s>\n", who); serv_printf("ICAL freebusy|%s", who); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '1') { wprintf("HTTP/1.0 404 %s\n", &buf[4]); diff --git a/webcit/event.c b/webcit/event.c index 5634326ef..e3185e515 100644 --- a/webcit/event.c +++ b/webcit/event.c @@ -273,7 +273,7 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum) striplt(organizer_string); lprintf(9, "ISME %s\n", organizer_string); serv_printf("ISME %s", organizer_string); - serv_gets(buf); + serv_getln(buf, sizeof buf); lprintf(9, "%s\n", buf); if (buf[0] == '2') { organizer_is_me = 1; @@ -673,14 +673,14 @@ STARTOVER: lprintf(9, "Remove unlisted attendees\n"); lprintf(9, "Serializing it for saving\n"); if ( (encaps != NULL) && (!strcasecmp(bstr("sc"), "Save")) ) { serv_puts("ENT0 1|||4|||1|"); - serv_gets(buf); + 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"); } - 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); @@ -706,7 +706,7 @@ STARTOVER: lprintf(9, "Remove unlisted attendees\n"); 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_gets(buf); + serv_getln(buf, sizeof buf); } if (created_new_vevent) { diff --git a/webcit/floors.c b/webcit/floors.c index a9d4ddfad..ceb2e5087 100644 --- a/webcit/floors.c +++ b/webcit/floors.c @@ -58,7 +58,7 @@ void display_floorconfig(char *prepend_html) } serv_printf("LFLR"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '1') { wprintf("\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); @@ -132,7 +132,7 @@ void delete_floor(void) { floornum = atoi(bstr("floornum")); serv_printf("KFLR %d|1", floornum); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { sprintf(message, "Floor has been deleted."); @@ -153,7 +153,7 @@ void create_floor(void) { strcpy(floorname, bstr("floorname")); serv_printf("CFLR %s|1", floorname); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { sprintf(message, "New floor has been created."); @@ -175,7 +175,7 @@ void rename_floor(void) { strcpy(floorname, bstr("floorname")); serv_printf("EFLR %d|%s", floornum, floorname); - serv_gets(buf); + serv_getln(buf, sizeof buf); sprintf(message, "%s", &buf[4]); diff --git a/webcit/graphics.c b/webcit/graphics.c index 396f21f7e..948dc8905 100644 --- a/webcit/graphics.c +++ b/webcit/graphics.c @@ -30,7 +30,7 @@ void display_graphics_upload(char *description, char *check_cmd, char *uplurl) char buf[SIZ]; serv_puts(check_cmd); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); display_main_menu(); @@ -97,7 +97,7 @@ void do_graphics_upload(char *upl_cmd) return; } serv_puts(upl_cmd); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); display_main_menu(); @@ -107,11 +107,11 @@ void do_graphics_upload(char *upl_cmd) while (bytes_remaining) { thisblock = ((bytes_remaining > 4096) ? 4096 : bytes_remaining); serv_printf("WRIT %d", thisblock); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '7') { strcpy(WC->ImportantMessage, &buf[4]); serv_puts("UCLS 0"); - serv_gets(buf); + serv_getln(buf, sizeof buf); display_main_menu(); return; } @@ -122,7 +122,7 @@ void do_graphics_upload(char *upl_cmd) } serv_puts("UCLS 1"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != 'x') { display_success(&buf[4]); return; diff --git a/webcit/groupdav_delete.c b/webcit/groupdav_delete.c index eebe1a0ce..6d0225786 100644 --- a/webcit/groupdav_delete.c +++ b/webcit/groupdav_delete.c @@ -91,7 +91,7 @@ void groupdav_delete(char *dav_pathname, char *dav_ifmatch) { * Ok, attempt to delete the item. */ serv_printf("DELE %ld", dav_msgnum); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { wprintf("HTTP/1.1 204 No Content\r\n"); /* success */ groupdav_common_headers(); diff --git a/webcit/groupdav_get.c b/webcit/groupdav_get.c index 87286632a..efda71d92 100644 --- a/webcit/groupdav_get.c +++ b/webcit/groupdav_get.c @@ -71,7 +71,7 @@ void groupdav_get(char *dav_pathname) { dav_msgnum = locate_message_by_uid(dav_uid); serv_printf("MSG2 %ld", dav_msgnum); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '1') { wprintf("HTTP/1.1 404 not found\r\n"); groupdav_common_headers(); @@ -88,7 +88,7 @@ void groupdav_get(char *dav_pathname) { 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); } diff --git a/webcit/groupdav_propfind.c b/webcit/groupdav_propfind.c index 2780a5909..4b047d769 100644 --- a/webcit/groupdav_propfind.c +++ b/webcit/groupdav_propfind.c @@ -53,11 +53,11 @@ long locate_message_by_uid(char *uid) { euid_unescapize(decoded_uid, uid); serv_puts("MSGS ALL|0|1"); - serv_gets(buf); + serv_getln(buf, sizeof buf); 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")) { retval = atol(buf); } } @@ -95,8 +95,8 @@ void groupdav_folder_list(void) { ); 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")) { extract_token(roomname, buf, 0, '|', sizeof roomname); view = extract_int(buf, 6); @@ -229,8 +229,8 @@ void groupdav_propfind(char *dav_pathname) { ); 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); } @@ -239,8 +239,8 @@ void groupdav_propfind(char *dav_pathname) { 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]); } diff --git a/webcit/groupdav_put.c b/webcit/groupdav_put.c index d634a9aff..09c34c51f 100644 --- a/webcit/groupdav_put.c +++ b/webcit/groupdav_put.c @@ -119,7 +119,7 @@ void groupdav_put(char *dav_pathname, char *dav_ifmatch, * extract the message ID. */ serv_puts("ENT0 1|||4|||1|"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '8') { wprintf("HTTP/1.1 502 Bad Gateway\r\n"); groupdav_common_headers(); @@ -138,7 +138,7 @@ void groupdav_put(char *dav_pathname, char *dav_ifmatch, /* 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; @@ -194,7 +194,7 @@ void groupdav_put(char *dav_pathname, char *dav_ifmatch, * the Citadel server, but we'll do this anyway, just in case. */ serv_printf("DELE %ld", old_msgnum); - serv_gets(buf); + serv_getln(buf, sizeof buf); return; } diff --git a/webcit/html2html.c b/webcit/html2html.c index 31a396b40..271dbe143 100644 --- a/webcit/html2html.c +++ b/webcit/html2html.c @@ -51,7 +51,7 @@ void output_html(void) { msg = strdup(""); sprintf(new_window, "http_host ); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { wprintf("

Confirmation request sent

" "You are subscribing "); @@ -108,7 +108,7 @@ void do_listsub(void) email, WC->http_host ); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { wprintf("

Confirmation request sent

" "You are unsubscribing "); @@ -144,7 +144,7 @@ void do_listsub(void) room, token ); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { wprintf("

Confirmation successful!

"); } @@ -176,9 +176,9 @@ FORM: wprintf("
\n" "\n"); serv_puts("LKRA"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { - while (serv_gets(buf), strcmp(buf, "000")) { + while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { extract_token(targ, buf, 0, '|', sizeof targ); wprintf("
"); wprintf("Error\n"); @@ -75,7 +75,7 @@ void display_floorconfig(char *prepend_html) "Number of rooms
\n"); serv_puts("CONF getsys|application/x-citadel-ignet-config"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { wprintf("
\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(""); serv_puts("CLOS"); - serv_gets(buf); + serv_getln(buf, sizeof buf); } } @@ -340,7 +340,7 @@ void embed_room_banner(char *got, int navbar_style) { */ if (got == NULL) { serv_printf("GOTO %s", WC->wc_roomname); - serv_gets(fakegot); + serv_getln(fakegot, sizeof fakegot); got = fakegot; } @@ -538,10 +538,10 @@ void gotoroom(char *gname) /* move to the new room */ serv_printf("GOTO %s", gname); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { serv_puts("GOTO _BASEROOM_"); - serv_gets(buf); + serv_getln(buf, sizeof buf); } if (buf[0] != '2') { return; @@ -625,9 +625,9 @@ void gotonext(void) if (WC->march == NULL) { serv_puts("LKRN"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') - 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); @@ -689,7 +689,7 @@ void slrp_highest(void) /* set pointer */ serv_puts("SLRP HIGHEST"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { wprintf("%s
\n", &buf[4]); return; @@ -709,14 +709,14 @@ void ungoto(void) return; } serv_printf("GOTO %s", WC->ugname); - serv_gets(buf); + 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); - serv_gets(buf); + serv_getln(buf, sizeof buf); } strcpy(buf, WC->ugname); strcpy(WC->ugname, ""); @@ -744,7 +744,7 @@ int self_service(int newval) { int flags, floor, order, view, flags2; serv_puts("GETR"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') return(0); extract_token(name, &buf[4], 0, '|', sizeof name); @@ -777,7 +777,7 @@ int self_service(int newval) { serv_printf("SETR %s|%s|%s|%d|0|%d|%d|%d|%d", name, password, dirname, flags, floor, order, view, flags2); - serv_gets(buf); + serv_getln(buf, sizeof buf); } return(newval); @@ -819,7 +819,7 @@ void display_editroom(void) load_floorlist(); serv_puts("GETR"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); @@ -1078,7 +1078,7 @@ void display_editroom(void) wprintf("
  • Room aide: \n"); serv_puts("GETA"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { wprintf("%s\n", &buf[4]); } else { @@ -1104,8 +1104,8 @@ void display_editroom(void) /* 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); @@ -1114,8 +1114,8 @@ void display_editroom(void) } 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); extract_token(node, buf, 1, '|', sizeof node); extract_token(remote_room, buf, 2, '|', sizeof remote_room); @@ -1257,8 +1257,8 @@ void display_editroom(void) "

    \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); @@ -1286,8 +1286,8 @@ void display_editroom(void) "

    \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); @@ -1338,14 +1338,14 @@ void display_editroom(void) if (!strcmp(tab, "expire")) { serv_puts("GPEX room"); - serv_gets(buf); + 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"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { floorpolicy = extract_int(&buf[4], 0); floorvalue = extract_int(&buf[4], 1); @@ -1455,7 +1455,7 @@ void editroom(void) return; } serv_puts("GETR"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); @@ -1470,7 +1470,7 @@ void editroom(void) strcpy(er_roomaide, bstr("er_roomaide")); if (strlen(er_roomaide) == 0) { serv_puts("GETA"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(er_roomaide, ""); } else { @@ -1569,7 +1569,7 @@ void editroom(void) sprintf(buf, "SETR %s|%s|%s|%u|%d|%d", er_name, er_password, er_dirname, er_flags, bump, er_floor); serv_puts(buf); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); display_editroom(); @@ -1580,7 +1580,7 @@ void editroom(void) if (strlen(er_roomaide) > 0) { sprintf(buf, "SETA %s", er_roomaide); serv_puts(buf); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); display_main_menu(); @@ -1601,7 +1601,7 @@ void do_invt_kick(void) { char buf[SIZ], room[SIZ], username[SIZ]; serv_puts("GETR"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { escputs(&buf[4]); @@ -1614,7 +1614,7 @@ void do_invt_kick(void) { if (!strcmp(bstr("sc"), "Kick")) { sprintf(buf, "KICK %s", username); serv_puts(buf); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); @@ -1628,7 +1628,7 @@ void do_invt_kick(void) { if (!strcmp(bstr("sc"), "Invite")) { sprintf(buf, "INVT %s", username); serv_puts(buf); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); @@ -1652,7 +1652,7 @@ void display_whok(void) char buf[SIZ], room[SIZ], username[SIZ]; serv_puts("GETR"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { escputs(&buf[4]); @@ -1670,9 +1670,9 @@ void display_whok(void) wprintf("\n"); wprintf("
  • "); escputs(node); @@ -237,9 +237,9 @@ void delete_node(void) fp = tmpfile(); if (fp != NULL) { serv_puts("CONF getsys|application/x-citadel-ignet-config"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { - 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); @@ -249,7 +249,7 @@ void delete_node(void) rewind(fp); serv_puts("CONF putsys|application/x-citadel-ignet-config"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '4') { while (fgets(buf, sizeof buf, fp) != NULL) { buf[strlen(buf)-1] = 0; @@ -276,7 +276,7 @@ void add_node(void) if (!strcmp(sc, "Add")) { sprintf(buf, "NSET addnode|%s", node); serv_puts(buf); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { output_headers(1, 1, 0, 0, 0, 0, 0); server_to_text(); diff --git a/webcit/notes.c b/webcit/notes.c index 295272114..05fcb57b0 100644 --- a/webcit/notes.c +++ b/webcit/notes.c @@ -33,14 +33,14 @@ void display_note(long msgnum) { wprintf("\n"); serv_printf("MSG0 %ld", msgnum); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '1') { wprintf("%s
    \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) ) { diff --git a/webcit/paging.c b/webcit/paging.c index 25ccbf0fb..f05ed31cb 100644 --- a/webcit/paging.c +++ b/webcit/paging.c @@ -104,7 +104,7 @@ void page_user(void) wprintf("Message was not sent.
    \n"); } else { serv_printf("SEXP %s|-", recp); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '4') { text_to_server(bstr("msgtext"), 0); @@ -137,7 +137,7 @@ void do_chat(void) /* First, check to make sure we're still allowed in this room. */ serv_printf("GOTO %s", WC->wc_roomname); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { smart_goto("_BASEROOM_"); return; @@ -167,7 +167,7 @@ void page_popup(void) 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); @@ -219,19 +219,19 @@ int setup_chat_socket(void) { WC->serv_sock = WC->chat_sock; WC->chat_sock = i; - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { serv_printf("USER %s", WC->wc_username); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '3') { serv_printf("PASS %s", WC->wc_password); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { serv_printf("GOTO %s", WC->wc_roomname); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { serv_puts("CHAT"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '8') { good_chatmode = 1; } @@ -303,7 +303,7 @@ void chat_recv(void) { WC->serv_sock = WC->chat_sock; WC->chat_sock = i; - serv_gets(buf); + serv_getln(buf, sizeof buf); if (!strcmp(buf, "000")) { strcpy(buf, ":|exiting chat mode"); diff --git a/webcit/preferences.c b/webcit/preferences.c index 36ec5c240..eab5f8cdd 100644 --- a/webcit/preferences.c +++ b/webcit/preferences.c @@ -34,28 +34,28 @@ void load_preferences(void) { long msgnum = 0L; serv_printf("GOTO %s", USERCONFIGROOM); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') return; serv_puts("MSGS ALL|0|1"); - serv_gets(buf); + serv_getln(buf, sizeof buf); 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); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { - while (serv_gets(buf), + while (serv_getln(buf, sizeof buf), (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, ""); @@ -76,7 +76,7 @@ void load_preferences(void) { /* Go back to the room we're supposed to be in */ serv_printf("GOTO %s", WC->wc_roomname); - serv_gets(buf); + serv_getln(buf, sizeof buf); } /* @@ -87,12 +87,12 @@ int goto_config_room(void) { char buf[SIZ]; serv_printf("GOTO %s", USERCONFIGROOM); - serv_gets(buf); + 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); - serv_gets(buf); + serv_getln(buf, sizeof buf); serv_printf("GOTO %s", USERCONFIGROOM); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') return(1); } return(0); @@ -105,22 +105,22 @@ void save_preferences(void) { if (goto_config_room() != 0) return; /* oh well. */ serv_puts("MSGS ALL|0|1"); - serv_gets(buf); + serv_getln(buf, sizeof buf); 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); - serv_gets(buf); + serv_getln(buf, sizeof buf); } serv_printf("ENT0 1||0|1|__ WebCit Preferences __|"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '4') { serv_puts(WC->preferences); serv_puts(""); @@ -129,7 +129,7 @@ void save_preferences(void) { /* Go back to the room we're supposed to be in */ serv_printf("GOTO %s", WC->wc_roomname); - serv_gets(buf); + serv_getln(buf, sizeof buf); } void get_preference(char *key, char *value, size_t value_len) { diff --git a/webcit/roomops.c b/webcit/roomops.c index d54ca1619..00b201b87 100644 --- a/webcit/roomops.c +++ b/webcit/roomops.c @@ -57,12 +57,12 @@ void load_floorlist(void) floorlist[a][0] = 0; serv_puts("LFLR"); - serv_gets(buf); + serv_getln(buf, sizeof buf); 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]); } } @@ -172,12 +172,12 @@ void listrms(char *variety) /* Ask the server for a room list */ serv_puts(variety); - serv_gets(buf); + serv_getln(buf, sizeof buf); 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); @@ -246,7 +246,7 @@ void readinfo(void) char buf[SIZ]; serv_puts("RINF"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { fmout(NULL, "CENTER"); } @@ -264,14 +264,14 @@ void embed_room_graphic(void) { char buf[SIZ]; serv_puts("OIMG _roompic_"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { wprintf("
    "); wprintf("wc_roomname); wprintf("\">
    \n\n"); serv_puts("TIME"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { now = extract_long(&buf[4], 0); } @@ -80,9 +80,9 @@ void whobbs(void) } serv_puts("RWHO"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { - 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); @@ -175,7 +175,7 @@ void terminate_session(void) char buf[SIZ]; serv_printf("TERM %s", bstr("which_session")); - serv_gets(buf); + serv_getln(buf, sizeof buf); whobbs(); } @@ -189,15 +189,15 @@ void edit_me(void) if (!strcasecmp(bstr("sc"), "Change room name")) { serv_printf("RCHG %s", bstr("fake_roomname")); - serv_gets(buf); + serv_getln(buf, sizeof buf); http_redirect("/whobbs"); } else if (!strcasecmp(bstr("sc"), "Change host name")) { serv_printf("HCHG %s", bstr("fake_hostname")); - serv_gets(buf); + serv_getln(buf, sizeof buf); http_redirect("/whobbs"); } else if (!strcasecmp(bstr("sc"), "Change user name")) { serv_printf("UCHG %s", bstr("fake_username")); - serv_gets(buf); + serv_getln(buf, sizeof buf); http_redirect("/whobbs"); } else if (!strcasecmp(bstr("sc"), "Cancel")) { http_redirect("/whobbs"); -- 2.30.2
    "); wprintf("Error\n"); @@ -177,7 +177,7 @@ void display_siteconfig(void) wprintf("\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")) { @@ -599,14 +599,14 @@ void display_siteconfig(void) } serv_puts("GPEX site"); - serv_gets(buf); + 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"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { mboxpolicy = extract_int(&buf[4], 0); mboxvalue = extract_int(&buf[4], 1); @@ -678,7 +678,7 @@ void siteconfig(void) return; } serv_printf("CONF set"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '4') { strcpy(WC->ImportantMessage, &buf[4]); display_siteconfig(); @@ -729,9 +729,9 @@ void siteconfig(void) serv_printf("000"); serv_printf("SPEX site|%d|%d", atoi(bstr("sitepolicy")), atoi(bstr("sitevalue"))); - serv_gets(buf); + serv_getln(buf, sizeof buf); serv_printf("SPEX mailboxes|%d|%d", atoi(bstr("mboxpolicy")), atoi(bstr("mboxvalue"))); - serv_gets(buf); + serv_getln(buf, sizeof buf); strcpy(WC->ImportantMessage, "System configuration has been updated."); display_siteconfig(); diff --git a/webcit/subst.c b/webcit/subst.c index 9392cffee..9e93b0a8e 100644 --- a/webcit/subst.c +++ b/webcit/subst.c @@ -114,7 +114,7 @@ void pvo_do_cmd(char *servcmd) { char buf[SIZ]; serv_puts(servcmd); - serv_gets(buf); + serv_getln(buf, sizeof buf); switch(buf[0]) { case '2': diff --git a/webcit/summary.c b/webcit/summary.c index ff735031e..fdec33d96 100644 --- a/webcit/summary.c +++ b/webcit/summary.c @@ -88,7 +88,7 @@ void new_messages_section(void) { extract_token(room, rooms_to_check, i, '|', sizeof room); serv_printf("GOTO %s", room); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { extract_token(room, &buf[4], 0, '|', sizeof room); wprintf(""); wprintf("\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) { @@ -139,11 +139,11 @@ void showuser(void) "
    \n"); diff --git a/webcit/sysmsgs.c b/webcit/sysmsgs.c index b03249ee4..9f8800754 100644 --- a/webcit/sysmsgs.c +++ b/webcit/sysmsgs.c @@ -35,7 +35,7 @@ void display_edit(char *description, char *check_cmd, char buf[SIZ]; serv_puts(check_cmd); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); @@ -61,7 +61,7 @@ void display_edit(char *description, char *check_cmd, wprintf("

    \n"); @@ -89,7 +89,7 @@ void save_edit(char *description, char *enter_cmd, int regoto) return; } serv_puts(enter_cmd); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '4') { strcpy(WC->ImportantMessage, &buf[4]); display_main_menu(); diff --git a/webcit/tcp_sockets.c b/webcit/tcp_sockets.c index 9e38fac27..6880cd28b 100644 --- a/webcit/tcp_sockets.c +++ b/webcit/tcp_sockets.c @@ -163,7 +163,7 @@ void serv_read(char *buf, int bytes) /* * input string from pipe */ -void serv_gets(char *strbuf) +void serv_getln(char *strbuf, int bufsize) { int ch, len; char buf[2]; @@ -174,7 +174,7 @@ void serv_gets(char *strbuf) 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 diff --git a/webcit/useredit.c b/webcit/useredit.c index 835105bf3..b11f240c2 100644 --- a/webcit/useredit.c +++ b/webcit/useredit.c @@ -78,9 +78,9 @@ void select_user_to_edit(char *message, char *preselect) "\n"); wprintf("
    User NameNumberAccess LevelLast LoginTotal LoginsTotal Posts
    \n"); serv_printf("OIMG _userpic_|%s", who); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { have_pic = 1; serv_puts("CLOS"); - serv_gets(buf); + serv_getln(buf, sizeof buf); } else { have_pic = 0; } @@ -156,7 +156,7 @@ void showuser(void) } wprintf("

    %s

    \n", who); serv_printf("RBIO %s", who); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '1') { fmout(NULL, "JUSTIFY"); } diff --git a/webcit/vcard_edit.c b/webcit/vcard_edit.c index fbc271174..0c70975b0 100644 --- a/webcit/vcard_edit.c +++ b/webcit/vcard_edit.c @@ -86,12 +86,12 @@ void do_edit_vcard(long msgnum, char *partnum, char *return_to) { if (msgnum >= 0) { sprintf(buf, "MSG0 %ld|1", msgnum); serv_puts(buf); - serv_gets(buf); + serv_getln(buf, sizeof buf); 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]); } @@ -103,7 +103,7 @@ void do_edit_vcard(long msgnum, char *partnum, char *return_to) { sprintf(buf, "OPNA %ld|%s", msgnum, partnum); serv_puts(buf); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { convenience_page("770000", "Error", &buf[4]); return; @@ -115,7 +115,7 @@ void do_edit_vcard(long msgnum, char *partnum, char *return_to) { read_server_binary(serialized_vcard, total_len); serv_puts("CLOS"); - serv_gets(buf); + serv_getln(buf, sizeof buf); serialized_vcard[total_len] = 0; v = vcard_load(serialized_vcard); @@ -342,7 +342,7 @@ void submit_vcard(void) { sprintf(buf, "ENT0 1|||4||"); serv_puts(buf); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '4') { edit_vcard(); return; diff --git a/webcit/webcit.c b/webcit/webcit.c index b615dbc5a..af8b4fbd7 100644 --- a/webcit/webcit.c +++ b/webcit/webcit.c @@ -469,7 +469,7 @@ void check_for_instant_messages() char buf[SIZ]; serv_puts("NOOP"); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[3] == '*') WC->HaveInstantMessages = 1; } @@ -602,7 +602,7 @@ void output_image() off_t bytes; serv_printf("OIMG %s|%s", bstr("name"), bstr("parm")); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { bytes = extract_long(&buf[4], 0); xferbuf = malloc(bytes + 2); @@ -610,7 +610,7 @@ void output_image() /* Read it from the server */ read_server_binary(xferbuf, bytes); serv_puts("CLOS"); - serv_gets(buf); + serv_getln(buf, sizeof buf); /* Write it to the browser */ http_transmit_thing(xferbuf, (size_t)bytes, "image/gif", 0); @@ -649,7 +649,7 @@ void output_mimepart() char *content = NULL; serv_printf("OPNA %s|%s", bstr("msgnum"), bstr("partnum")); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { bytes = extract_long(&buf[4], 0); content = malloc(bytes + 2); @@ -657,7 +657,7 @@ void output_mimepart() output_headers(0, 0, 0, 0, 0, 0, 0); read_server_binary(content, bytes); serv_puts("CLOS"); - serv_gets(buf); + serv_getln(buf, sizeof buf); http_transmit_thing(content, bytes, content_type, 0); free(content); } else { @@ -681,7 +681,7 @@ char *load_mimepart(long msgnum, char *partnum) char *content; serv_printf("OPNA %ld|%s", msgnum, partnum); - serv_gets(buf); + 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); @@ -690,7 +690,7 @@ char *load_mimepart(long msgnum, char *partnum) read_server_binary(content, bytes); serv_puts("CLOS"); - serv_gets(buf); + serv_getln(buf, sizeof buf); content[bytes] = 0; /* null terminate for good measure */ return(content); } @@ -1012,7 +1012,7 @@ void session_loop(struct httprequest *req) } 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) { @@ -1054,10 +1054,10 @@ void session_loop(struct httprequest *req) && (strlen(c_httpauth_user) > 0) && (strlen(c_httpauth_pass) > 0)) { serv_printf("USER %s", c_httpauth_user); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '3') { serv_printf("PASS %s", c_httpauth_pass); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { become_logged_in(c_httpauth_user, c_httpauth_pass, buf); @@ -1101,10 +1101,10 @@ void session_loop(struct httprequest *req) && (strlen(c_username) > 0) && (strlen(c_password) > 0)) { serv_printf("USER %s", c_username); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '3') { serv_printf("PASS %s", c_password); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { become_logged_in(c_username, c_password, buf); } @@ -1116,7 +1116,7 @@ void session_loop(struct httprequest *req) */ if ((strlen(WC->wc_roomname) == 0) && (strlen(c_roomname) > 0)) { serv_printf("GOTO %s", c_roomname); - serv_gets(buf); + serv_getln(buf, sizeof buf); if (buf[0] == '2') { strcpy(WC->wc_roomname, c_roomname); } diff --git a/webcit/webcit.h b/webcit/webcit.h index e9747c083..b4cb23beb 100644 --- a/webcit/webcit.h +++ b/webcit/webcit.h @@ -279,7 +279,7 @@ void ungoto(void); 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); diff --git a/webcit/who.c b/webcit/who.c index c3bb03f86..3b833d10c 100644 --- a/webcit/who.c +++ b/webcit/who.c @@ -71,7 +71,7 @@ void whobbs(void) wprintf("
    From host