In the text client - fixed the logic for determining whether to display the email...
authorArt Cancro <ajc@citadel.org>
Thu, 10 Dec 2020 04:22:21 +0000 (23:22 -0500)
committerArt Cancro <ajc@citadel.org>
Thu, 10 Dec 2020 04:22:21 +0000 (23:22 -0500)
textclient/messages.c

index 731854b..7fd9502 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Text client functions for reading and writing of messages
  *
- * Copyright (c) 1987-2019 by the citadel.org team
+ * Copyright (c) 1987-2020 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.
@@ -410,6 +410,7 @@ int read_message(CtdlIPC *ipc,
        char ch;
        int linelen;
        int final_line_is_blank = 0;
+       int is_local = 0;
 
        has_images = 0;
 
@@ -444,6 +445,18 @@ int read_message(CtdlIPC *ipc,
                color(BRIGHT_CYAN);
        }
 
+       /* Determine if the message originated here on the local system.  If it did we will suppress printing of email addresses */
+       is_local = 0;
+       char *at = !IsEmptyStr(message->email) ? strchr(message->email,'@') : NULL;
+       if (at) {
+               if (!strcasecmp(++at, ipc->ServInfo.fqdn)) {
+                       is_local = 1;
+               }
+       }
+       else {
+               is_local = 1;           // no address means it couldn't have originated anywhere else
+       }
+
        /* View headers only */
        if (pagin == 2) {
                scr_printf("nhdr=%s\nfrom=%s\ntype=%d\nmsgn=%s\n",
@@ -500,7 +513,7 @@ int read_message(CtdlIPC *ipc,
                strftime(now, sizeof now, "%F %R", &thetime);
                if (dest) {
                        fprintf(dest, "%s from %s ", now, message->author);
-                       if (!IsEmptyStr(message->email)) {
+                       if (!is_local) {
                                fprintf(dest, "<%s> ", message->email);
                        }
                }
@@ -511,7 +524,7 @@ int read_message(CtdlIPC *ipc,
                        scr_printf("from ");
                        color(BRIGHT_CYAN);
                        scr_printf("%s ", message->author);
-                       if (!IsEmptyStr(message->email)) {
+                       if (!is_local) {
                                color(DIM_WHITE);
                                scr_printf("<");
                                color(BRIGHT_BLUE);