From: Art Cancro Date: Sat, 16 Mar 2019 22:05:47 +0000 (-0400) Subject: more work on removing masqueraded user/room/host names X-Git-Tag: v939~303 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=58c77aea1dda7b206b900bafb9278237456ef737 more work on removing masqueraded user/room/host names --- diff --git a/citadel/context.c b/citadel/context.c index 88ddbe21b..6593870a4 100644 --- a/citadel/context.c +++ b/citadel/context.c @@ -2,7 +2,7 @@ * Citadel context management stuff. * Here's where we (hopefully) have all the code that manipulates contexts. * - * Copyright (c) 1987-2018 by the citadel.org team + * Copyright (c) 1987-2019 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. @@ -490,9 +490,6 @@ void begin_session(CitContext *con) strcpy(con->lastcmdname, " "); strcpy(con->cs_clientname, "(unknown)"); strcpy(con->curr_user, NLI); - *con->fake_username = '\0'; - *con->fake_hostname = '\0'; - *con->fake_roomname = '\0'; *con->cs_clientinfo = '\0'; safestrncpy(con->cs_host, CtdlGetConfigStr("c_fqdn"), sizeof con->cs_host); safestrncpy(con->cs_addr, "", sizeof con->cs_addr); diff --git a/citadel/context.h b/citadel/context.h index 37ce18406..65c7515f4 100644 --- a/citadel/context.h +++ b/citadel/context.h @@ -113,11 +113,6 @@ struct CitContext { int disable_exp; /* Set to 1 to disable incoming pages */ int newmail; /* Other sessions increment this */ - /* Masqueraded values in the 'who is online' list */ - char fake_username[USERNAME_SIZE]; - char fake_hostname[64]; - char fake_roomname[ROOMNAMELEN]; - /* Preferred MIME formats */ char preferred_formats[256]; int msg4_dont_decode; diff --git a/citadel/modules/instmsg/serv_instmsg.c b/citadel/modules/instmsg/serv_instmsg.c index 1bf8c728a..dfa16cc68 100644 --- a/citadel/modules/instmsg/serv_instmsg.c +++ b/citadel/modules/instmsg/serv_instmsg.c @@ -1,7 +1,7 @@ /* * This module handles instant messaging between users. * - * Copyright (c) 1987-2018 by the citadel.org team + * Copyright (c) 1987-2019 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3. @@ -235,7 +235,6 @@ int send_instant_message(char *lun, char *lem, char *x_user, char *x_msg) int message_sent = 0; /* number of successful sends */ struct CitContext *ccptr; struct ExpressMessage *newmsg = NULL; - char *un; int do_send = 0; /* 1 = send message; 0 = only check for valid recipient */ static int serial_number = 0; /* this keeps messages from getting logged twice */ @@ -248,14 +247,7 @@ int send_instant_message(char *lun, char *lem, char *x_user, char *x_msg) ++serial_number; for (ccptr = ContextList; ccptr != NULL; ccptr = ccptr->next) { - if (ccptr->fake_username[0]) { - un = ccptr->fake_username; - } - else { - un = ccptr->user.fullname; - } - - if ( ((!strcasecmp(un, x_user)) + if ( ((!strcasecmp(ccptr->user.fullname, x_user)) || (!strcasecmp(x_user, "broadcast"))) && (ccptr->can_receive_im) && ((ccptr->disable_exp == 0) @@ -294,7 +286,6 @@ void cmd_sexp(char *argbuf) int message_sent = 0; char x_user[USERNAME_SIZE]; char x_msg[1024]; - char *lun; char *lem; char *x_big_msgbuf = NULL; @@ -302,12 +293,6 @@ void cmd_sexp(char *argbuf) cprintf("%d Not logged in.\n", ERROR + NOT_LOGGED_IN); return; } - if (CC->fake_username[0]) { - lun = CC->fake_username; - } - else { - lun = CC->user.fullname; - } lem = CC->cs_inet_email; @@ -325,7 +310,7 @@ void cmd_sexp(char *argbuf) } /* This loop handles text-transfer pages */ if (!strcmp(x_msg, "-")) { - message_sent = PerformXmsgHooks(lun, lem, x_user, ""); + message_sent = PerformXmsgHooks(CC->user.fullname, lem, x_user, ""); if (message_sent == 0) { if (CtdlGetUser(NULL, x_user)) cprintf("%d '%s' does not exist.\n", @@ -349,12 +334,12 @@ void cmd_sexp(char *argbuf) strcat(x_big_msgbuf, "\n"); strcat(x_big_msgbuf, x_msg); } - PerformXmsgHooks(lun, lem, x_user, x_big_msgbuf); + PerformXmsgHooks(CC->user.fullname, lem, x_user, x_big_msgbuf); free(x_big_msgbuf); /* This loop handles inline pages */ } else { - message_sent = PerformXmsgHooks(lun, lem, x_user, x_msg); + message_sent = PerformXmsgHooks(CC->user.fullname, lem, x_user, x_msg); if (message_sent > 0) { if (!IsEmptyStr(x_msg)) { diff --git a/citadel/modules/rwho/serv_rwho.c b/citadel/modules/rwho/serv_rwho.c index 8967aca36..79ea2c6bd 100644 --- a/citadel/modules/rwho/serv_rwho.c +++ b/citadel/modules/rwho/serv_rwho.c @@ -2,7 +2,7 @@ * This module implements server commands related to the display and * manipulation of the "Who's online" list. * - * Copyright (c) 1987-2012 by the citadel.org team + * Copyright (c) 1987-2019 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3. @@ -90,13 +90,9 @@ void cmd_rwho(char *argbuf) { struct CitContext *nptr; int nContexts, i; int spoofed = 0; - int user_spoofed = 0; - int room_spoofed = 0; - int host_spoofed = 0; int aide; - char un[40]; char real_room[ROOMNAMELEN], room[ROOMNAMELEN]; - char host[64], flags[5]; + char flags[5]; /* So that we don't keep the context list locked for a long time * we create a copy of it first @@ -113,13 +109,9 @@ void cmd_rwho(char *argbuf) { aide = ( (CC->user.axlevel >= AxAideU) || (CC->internal_pgm) ) ; cprintf("%d%c \n", LISTING_FOLLOWS, CtdlCheckExpress() ); - for (i=0; ifake_roomname, newroomname, - sizeof(CC->fake_roomname) ); - } - else { - safestrncpy(CC->fake_roomname, "", sizeof CC->fake_roomname); - } - cprintf("%d OK\n", CIT_OK); -} - -/* - * Masquerade hostname - */ -void cmd_hchg(char *argbuf) -{ - char newhostname[64]; - - extract_token(newhostname, argbuf, 0, '|', sizeof newhostname); - if (!IsEmptyStr(newhostname)) { - safestrncpy(CC->fake_hostname, newhostname, - sizeof(CC->fake_hostname) ); - } - else { - safestrncpy(CC->fake_hostname, "", sizeof CC->fake_hostname); - } - cprintf("%d OK\n", CIT_OK); -} - - -/* - * Masquerade username (aides only) - */ -void cmd_uchg(char *argbuf) -{ - - char newusername[USERNAME_SIZE]; - - extract_token(newusername, argbuf, 0, '|', sizeof newusername); - - if (CtdlAccessCheck(ac_aide)) return; - - if (!IsEmptyStr(newusername)) { - CC->cs_flags &= ~CS_STEALTH; - memset(CC->fake_username, 0, 32); - if (strncasecmp(newusername, CC->curr_user, - strlen(CC->curr_user))) - safestrncpy(CC->fake_username, newusername, - sizeof(CC->fake_username)); - } - else { - CC->fake_username[0] = '\0'; - CC->cs_flags |= CS_STEALTH; - } - cprintf("%d\n",CIT_OK); -} - - - /* * enter or exit "stealth mode" @@ -378,9 +195,6 @@ CTDL_MODULE_INIT(rwho) if(!threading) { CtdlRegisterProtoHook(cmd_rwho, "RWHO", "Display who is online"); - CtdlRegisterProtoHook(cmd_hchg, "HCHG", "Masquerade hostname"); - CtdlRegisterProtoHook(cmd_rchg, "RCHG", "Masquerade roomname"); - CtdlRegisterProtoHook(cmd_uchg, "UCHG", "Masquerade username"); CtdlRegisterProtoHook(cmd_stel, "STEL", "Enter/exit stealth mode"); //CtdlRegisterSessionHook(dead_io_check, EVT_TIMER, PRIO_QUEUE + 50); diff --git a/citadel/user_ops.c b/citadel/user_ops.c index 397907524..7f6ed1c15 100644 --- a/citadel/user_ops.c +++ b/citadel/user_ops.c @@ -1,7 +1,7 @@ /* * Server functions which perform operations on user objects. * - * Copyright (c) 1987-2018 by the citadel.org team + * Copyright (c) 1987-2019 by the citadel.org team * * This program is open source software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. @@ -700,9 +700,6 @@ void CtdlUserLogout(void) * since it's possible to log in again without reconnecting, we cannot * make that assumption. */ - strcpy(CCC->fake_username, ""); - strcpy(CCC->fake_hostname, ""); - strcpy(CCC->fake_roomname, ""); CCC->logged_in = 0; /* Check to see if the user was deleted while logged in and purge them if necessary */ @@ -716,9 +713,6 @@ void CtdlUserLogout(void) CCC->cs_inet_email[0] = 0; CCC->cs_inet_other_emails[0] = 0; CCC->cs_inet_fn[0] = 0; - CCC->fake_username[0] = 0; - CCC->fake_hostname[0] = 0; - CCC->fake_roomname[0] = 0; /* Free any output buffers */ unbuffer_output();