int enable_syslog = 0;
-/*
- * here is our 'clean up gracefully and exit' routine
- */
-void ctdl_logoff(char *file, int line, CtdlIPC * ipc, int code)
-{
+// Here is our 'clean up gracefully and exit' routine
+void ctdl_logoff(char *file, int line, CtdlIPC * ipc, int code) {
int lp;
if (editor_pid > 0) { /* kill the editor if it's running */
kill(editor_pid, SIGHUP);
}
- /* Free the ungoto list */
+ // Free the ungoto list
for (lp = 0; lp < uglistsize; lp++) {
free(uglist[lp]);
}
-/* Shut down the server connection ... but not if the logoff code is 3,
- * because that means we're exiting because we already lost the server.
- */
+ // Shut down the server connection ... but not if the logoff code is 3,
+ // because that means we're exiting because we already lost the server.
if (code != 3) {
CtdlIPCQuit(ipc);
}
-/*
- * now clean up various things
- */
+ // now clean up various things
unlink(temp);
unlink(temp2);
nukedir(tempdir);
- /* Violently kill off any child processes if Citadel is
- * the login shell.
- */
+ // Violently kill off any child processes if Citadel is the login shell.
if (getppid() == 1) {
kill(0 - getpgrp(), SIGTERM);
sleep(1);
kill(0 - getpgrp(), SIGKILL);
}
- color(ORIGINAL_PAIR); /* Restore the old color settings */
- stty_ctdl(SB_RESTORE); /* return the old terminal settings */
- /*
- * uncomment the following if you need to know why Citadel exited
- printf("*** Exit code %d at %s:%d\n", code, file, line);
- sleep(2);
- */
- exit(code); /* exit with the proper exit code */
+ color(ORIGINAL_PAIR); // Restore the old color settings
+ stty_ctdl(SB_RESTORE); // return the old terminal settings
+ exit(code); // exit with the proper exit code
}
/*
* signal catching function for hangups...
*/
-void dropcarr(int signum)
-{
+void dropcarr(int signum) {
logoff(NULL, 3); /* No IPC when server's already gone! */
}
* catch SIGCONT to reset terminal modes when were are put back into the
* foreground.
*/
-void catch_sigcont(int signum)
-{
+void catch_sigcont(int signum) {
stty_ctdl(SB_LAST);
signal(SIGCONT, catch_sigcont);
}
/* general purpose routines */
/* display a file */
-void formout(CtdlIPC * ipc, char *name)
-{
+void formout(CtdlIPC * ipc, char *name) {
int r; /* IPC return code */
char buf[SIZ];
char *text = NULL;
}
-/*
- * grab assorted info about the user...
- */
+// grab assorted info about the user...
void load_user_info(char *params) {
extract_token(fullname, params, 0, '|', sizeof fullname);
axlevel = extract_int(params, 1);
}
-/*
- * Remove a room from the march list. 'floornum' is ignored unless
- * 'roomname' is set to _FLOOR_, in which case all rooms on the requested
- * floor will be removed from the march list.
- */
+// Remove a room from the march list. 'floornum' is ignored unless
+// 'roomname' is set to _FLOOR_, in which case all rooms on the requested
+// floor will be removed from the march list.
void remove_march(char *roomname, int floornum) {
struct march *mptr, *mptr2;
}
-/*
- * Locate the room on the march list which we most want to go to. Each room
- * is measured given a "weight" of preference based on various factors.
- */
-char *pop_march(int desired_floor, struct march *_march)
-{
+// Locate the room on the march list which we most want to go to. Each room
+// is measured given a "weight" of preference based on various factors.
+char *pop_march(int desired_floor, struct march *_march) {
static char TheRoom[ROOMNAMELEN];
int TheWeight = 0;
int weight;
}
-/*
- * jump directly to a room
- */
-void dotgoto(CtdlIPC * ipc, char *towhere, int display_name, int fromungoto)
-{
+// jump directly to a room
+void dotgoto(CtdlIPC * ipc, char *towhere, int display_name, int fromungoto) {
char aaa[SIZ], bbb[SIZ];
static long ls = 0L;
- int newmailcount = 0;
int partial_match, best_match;
char from_floor;
int ugpos = uglistsize;
uglistlsn[lp] = uglistlsn[lp + 1];
}
ugpos--;
- } else {
+ }
+ else {
uglistsize++;
}
// Determine, based on the room's default view, whether an <E>nter message command will be valid here.
switch (room->RRdefaultview) {
- case VIEW_BBS:
- case VIEW_MAILBOX:
- entmsg_ok = ENTMSG_OK_YES;
- break;
- case VIEW_BLOG:
- entmsg_ok = ENTMSG_OK_BLOG;
- break;
- default:
- entmsg_ok = ENTMSG_OK_NO;
- break;
+ case VIEW_BBS:
+ case VIEW_MAILBOX:
+ entmsg_ok = ENTMSG_OK_YES;
+ break;
+ case VIEW_BLOG:
+ entmsg_ok = ENTMSG_OK_BLOG;
+ break;
+ default:
+ entmsg_ok = ENTMSG_OK_NO;
+ break;
}
remove_march(room_name, 0);
if (room->RRinfoupdated > 0)
readinfo(ipc);
- /* check for newly arrived mail if we can */
- newmailcount = room->RRnewmail;
+ /* check for newly arrived mail if we can FIXME use BIFF command for this
if (newmailcount > 0) {
color(BRIGHT_RED);
if (newmailcount == 1) {
scr_printf("*** failed to check for mail calling %s Reason %d.\n", rc_gotmail_cmd, rv);
}
}
+ */
+
free(room);
if (screenwidth > 5)
snprintf(&status_line[1], screenwidth - 1, "%s | %s | %s | %s | %d new mail |",
(secure ? "Encrypted" : "Unencrypted"),
- ipc->ServInfo.humannode, ipc->ServInfo.site_location, room_name, newmailcount);
+ ipc->ServInfo.humannode, ipc->ServInfo.site_location, room_name, 0); // FIXME use BIFF
}
struct march *mptr, *mptr2;
char next_room[ROOMNAMELEN];
- /* Check to see if the march-mode list is already allocated.
- * If it is, pop the first room off the list and go there.
- */
+ // Check to see if the march-mode list is already allocated.
+ // If it is, pop the first room off the list and go there.
if (marchptr == NULL) {
CtdlIPCKnownRooms(ipc, SubscribedRoomsWithNewMessages, AllFloors, &marchptr, buf);
strcpy(mptr->march_name, "_BASEROOM_");
if (marchptr == NULL) {
marchptr = mptr;
- } else {
+ }
+ else {
mptr2 = marchptr;
while (mptr2->next != NULL)
mptr2 = mptr2->next;
}
-/*
- * forget all rooms on a given floor
- */
-void forget_all_rooms_on(CtdlIPC *ipc, int ffloor) {
+// forget all rooms on a given floor
+void forget_all_rooms_on(CtdlIPC * ipc, int ffloor) {
char buf[SIZ];
struct march *flist = NULL;
struct march *fptr = NULL;
struct ctdlipcroom *room = NULL;
- int r; /* IPC response code */
+ int r; // IPC response code
scr_printf("Forgetting all rooms on %s...\n", &floorlist[ffloor][0]);
remove_march("_FLOOR_", ffloor);
}
-/*
- * routine called by gotofloor() to move to a new room on a new floor
- */
-void gf_toroom(CtdlIPC * ipc, char *towhere, int mode)
-{
+// routine called by gotofloor() to move to a new room on a new floor
+void gf_toroom(CtdlIPC * ipc, char *towhere, int mode) {
int floor_being_left;
floor_being_left = curr_floor;
if (mode == GF_GOTO) { /* <;G>oto mode */
updatels(ipc);
dotgoto(ipc, towhere, 1, 0);
- } else if (mode == GF_SKIP) { /* <;S>kip mode */
+ }
+ else if (mode == GF_SKIP) { /* <;S>kip mode */
dotgoto(ipc, towhere, 1, 0);
remove_march("_FLOOR_", floor_being_left);
- } else if (mode == GF_ZAP) { /* <;Z>ap mode */
+ }
+ else if (mode == GF_ZAP) { /* <;Z>ap mode */
dotgoto(ipc, towhere, 1, 0);
remove_march("_FLOOR_", floor_being_left);
forget_all_rooms_on(ipc, floor_being_left);
}
-/*
- * go to a new floor
- */
-void gotofloor(CtdlIPC * ipc, char *towhere, int mode)
-{
+// go to a new floor
+void gotofloor(CtdlIPC * ipc, char *towhere, int mode) {
int a, tofloor;
int r; /* IPC response code */
struct march *mptr;
}
if (!IsEmptyStr(targ)) {
gf_toroom(ipc, targ, mode);
- } else {
+ }
+ else {
scr_printf("There are no rooms on '%s'.\n", &floorlist[tofloor][0]);
}
}
/*
* Indexing mechanism for a room list, called by gotoroomstep()
*/
-void room_tree_list_query(struct ctdlroomlisting *rp, char *findrmname, int findrmslot, char *rmname, int *rmslot, int *rmtotal)
-{
+void room_tree_list_query(struct ctdlroomlisting *rp, char *findrmname, int findrmslot, char *rmname, int *rmslot, int *rmtotal) {
char roomname[ROOMNAMELEN];
static int cur_rmslot = 0;
/*
* step through rooms on current floor
*/
-void gotoroomstep(CtdlIPC * ipc, int direction, int mode)
-{
+void gotoroomstep(CtdlIPC * ipc, int direction, int mode) {
struct march *listing = NULL;
struct march *mptr;
int r; /* IPC response code */
rs = rl;
if (rl == NULL) {
rl = rp;
- } else {
+ }
+ else {
while (rp != NULL) {
if (rordercmp(rp, rs) < 0) {
if (rs->lnext == NULL) {
rs->lnext = rp;
rp = NULL;
- } else {
+ }
+ else {
rs = rs->lnext;
}
- } else {
+ }
+ else {
if (rs->rnext == NULL) {
rs->rnext = rp;
rp = NULL;
- } else {
+ }
+ else {
rs = rs->rnext;
}
}
rmslot--;
}
}
- else { /* Next room */
+ else { /* Next room */
/* If we're at the last room, wrap to the first room */
if (rmslot == rmtotal - 1) {
rmslot = 0;
while (!floorlist[tofloor][0])
tofloor--;
- } else { /* Next floor */
+ }
+ else { /* Next floor */
if (curr_floor < 127)
tofloor = curr_floor + 1;
else
* Display user 'preferences'.
*/
extern int rc_prompt_control;
-void read_config(CtdlIPC * ipc)
-{
+void read_config(CtdlIPC * ipc) {
char buf[SIZ];
char *resp = NULL;
int r; /* IPC response code */
/*
* Display system statistics.
*/
-void system_info(CtdlIPC * ipc)
-{
+void system_info(CtdlIPC * ipc) {
char buf[SIZ];
char *resp = NULL;
size_t bytes;
/*
* forget all rooms on current floor
*/
-void forget_this_floor(CtdlIPC * ipc)
-{
+void forget_this_floor(CtdlIPC * ipc) {
if (curr_floor == 0) {
scr_printf("Can't forget this floor.\n");
return;
/*
* set floor mode depending on client, server, and user settings
*/
-void set_floor_mode(CtdlIPC * ipc)
-{
+void set_floor_mode(CtdlIPC * ipc) {
if (ipc->ServInfo.ok_floors == 0) {
floor_mode = 0; /* Don't use floors if the server */
}
/*
* Set or change the user's password
*/
-int set_password(CtdlIPC * ipc)
-{
+int set_password(CtdlIPC * ipc) {
char pass1[20];
char pass2[20];
char buf[SIZ];
if (!IsEmptyStr(rc_password)) {
strcpy(pass1, rc_password);
strcpy(pass2, rc_password);
- } else {
+ }
+ else {
IFNEXPERT formout(ipc, "changepw");
newprompt("Enter a new password: ", pass1, -19);
newprompt("Enter it again to confirm: ", pass2, -19);
scr_printf("%s\n", buf);
offer_to_remember_password(ipc, hostbuf, portbuf, fullname, pass1);
return (0);
- } else {
+ }
+ else {
scr_printf("*** They don't match... try again.\n");
return (1);
}
/*
* get info about the server we've connected to
*/
-void get_serv_info(CtdlIPC * ipc, char *supplied_hostname)
-{
+void get_serv_info(CtdlIPC * ipc, char *supplied_hostname) {
char buf[SIZ];
CtdlIPCServerInfo(ipc, buf);
/* Look up the , in the bible if you're confused */
(locate_host(ipc, buf), buf), buf);
- /* Indicate to the server that we prefer to decode Base64 and
- * quoted-printable on the client side.
- */
+ // Indicate to the server that we prefer to decode Base64 and
+ // quoted-printable on the client side.
if ((CtdlIPCSpecifyPreferredFormats(ipc, buf, "dont_decode") / 100) != 2) {
- scr_printf("ERROR: Extremely old server; MSG4 framework not supported.\n");
+ scr_printf("Error %s:%d", __FILE__ , __LINE__);
logoff(ipc, 0);
}
* the plain text when we have it available.
*/
if ((CtdlIPCSpecifyPreferredFormats(ipc, buf, "text/plain|text/html|text/x-markdown") / 100) != 2) {
- scr_printf("ERROR: Extremely old server; MSG4 framework not supported.\n");
+ scr_printf("Error %s:%d", __FILE__ , __LINE__);
logoff(ipc, 0);
}
}
/*
* Session username compare function for SortOnlineUsers()
*/
-int rwho_username_cmp(const void *rec1, const void *rec2)
-{
+int rwho_username_cmp(const void *rec1, const void *rec2) {
char *u1, *u2;
u1 = strchr(rec1, '|');
/*
* Idle time compare function for SortOnlineUsers()
*/
-int idlecmp(const void *rec1, const void *rec2)
-{
+int idlecmp(const void *rec1, const void *rec2) {
time_t i1, i2;
i1 = extract_long(rec1, 5);
* If 'condense' is nonzero, multiple sessions for the same user will be
* combined into one for brevity.
*/
-char *SortOnlineUsers(char *listing, int condense)
-{
+char *SortOnlineUsers(char *listing, int condense) {
int rows;
char *sortbuf;
char *retbuf;
/*
* Display list of users currently logged on to the server
*/
-void who_is_online(CtdlIPC * ipc, int longlist)
-{
+void who_is_online(CtdlIPC * ipc, int longlist) {
char buf[SIZ], username[SIZ], roomname[SIZ], fromhost[SIZ];
char flags[SIZ];
char actual_user[SIZ], actual_room[SIZ], actual_host[SIZ];
}
-void enternew(CtdlIPC * ipc, char *desc, char *buf, int maxlen)
-{
+void enternew(CtdlIPC * ipc, char *desc, char *buf, int maxlen) {
char bbb[128];
snprintf(bbb, sizeof bbb, "Enter in your new %s: ", desc);
newprompt(bbb, buf, maxlen);
do {
if (!IsEmptyStr(rc_username)) {
strcpy(fullname, rc_username);
- } else {
+ }
+ else {
newprompt("Enter your name: ", fullname, 29);
}
strproc(fullname);
/* password authentication */
if (!IsEmptyStr(rc_password)) {
strcpy(password, rc_password);
- } else {
+ }
+ else {
newprompt("\rPlease enter your password: ", password, -(SIZ - 1));
}
if (atoi(aaa)) {
scr_printf
("The Citadel server will terminate when all users are logged off.\n");
- } else {
+ }
+ else {
scr_printf("The Citadel server will not terminate.\n");
}
}