Rearranged whitespace (and comments) in all the code!
[mmh] / sbr / mts.c
index 6418ef5..4e02831 100644 (file)
--- a/sbr/mts.c
+++ b/sbr/mts.c
@@ -1,4 +1,3 @@
-
 /*
  * mts.c -- definitions for the mail transport system
  *
 /*
  * mts.c -- definitions for the mail transport system
  *
@@ -23,8 +22,8 @@
 # include <sys/utsname.h>
 #endif
 
 # include <sys/utsname.h>
 #endif
 
-#define        NOTOK   (-1)
-#define        OK        0
+#define NOTOK  (-1)
+#define OK     0
 
 /*
  * static prototypes
 
 /*
  * static prototypes
@@ -61,10 +60,10 @@ static char username[BUFSIZ];
 static char fullname[BUFSIZ];
 
 /* Variables for username masquerading: */
 static char fullname[BUFSIZ];
 
 /* Variables for username masquerading: */
-       boolean  draft_from_masquerading = FALSE;
+boolean  draft_from_masquerading = FALSE;
 static boolean  mmailid_masquerading = FALSE;
 static boolean  mmailid_masquerading = FALSE;
-       boolean  username_extension_masquerading = FALSE;  /* " from addrsbr.c */
-static char*    masquerade = "";
+boolean  username_extension_masquerading = FALSE;  /* " from addrsbr.c */
+static char* masquerade = "";
 
 /*
  * Global MailDelivery file
 
 /*
  * Global MailDelivery file
@@ -85,22 +84,22 @@ char *NoShell = "";
  */
 
 struct bind {
  */
 
 struct bind {
-    char *keyword;
-    char **value;
+       char *keyword;
+       char **value;
 };
 
 static struct bind binds[] = {
 };
 
 static struct bind binds[] = {
-    { "mmdfldir", &mmdfldir },
-    { "mmdflfil", &mmdflfil },
-    { "uucpldir", &uucpldir },
-    { "uucplfil", &uucplfil },
-    { "mmdelim1", &mmdlm1 },
-    { "mmdelim2", &mmdlm2 },
-    { "masquerade", &masquerade },
-    { "maildelivery", &maildelivery },
-    { "everyone", &everyone },
-    { "noshell", &NoShell },
-    { NULL, NULL }
+       { "mmdfldir", &mmdfldir },
+       { "mmdflfil", &mmdflfil },
+       { "uucpldir", &uucpldir },
+       { "uucplfil", &uucplfil },
+       { "mmdelim1", &mmdlm1 },
+       { "mmdelim2", &mmdlm2 },
+       { "masquerade", &masquerade },
+       { "maildelivery", &maildelivery },
+       { "everyone", &everyone },
+       { "noshell", &NoShell },
+       { NULL, NULL }
 };
 
 
 };
 
 
@@ -112,36 +111,36 @@ static struct bind binds[] = {
 void
 mts_init (char *name)
 {
 void
 mts_init (char *name)
 {
-    const char *cp;
-    FILE *fp;
-    static int inited = 0;
-
-    if (inited++ || (fp = fopen (get_mtsconf_pathname(), "r")) == NULL)
-       return;
-    mts_read_conf_file(fp);
-    fclose (fp);
-
-    cp = get_mtsuserconf_pathname();
-    if (cp != NULL &&
-            ((fp = fopen (get_mtsuserconf_pathname(), "r")) != NULL)) {
-        mts_read_conf_file(fp);
-        fclose (fp);
-    }
+       const char *cp;
+       FILE *fp;
+       static int inited = 0;
+
+       if (inited++ || (fp = fopen (get_mtsconf_pathname(), "r")) == NULL)
+               return;
+       mts_read_conf_file(fp);
+       fclose (fp);
+
+       cp = get_mtsuserconf_pathname();
+       if (cp != NULL &&
+               ((fp = fopen (get_mtsuserconf_pathname(), "r")) != NULL)) {
+               mts_read_conf_file(fp);
+               fclose (fp);
+       }
 
 
-    Everyone = atoi (everyone);
+       Everyone = atoi (everyone);
 
 
-    if (strstr(masquerade, "draft_from") != NULL)
-       draft_from_masquerading = TRUE;
+       if (strstr(masquerade, "draft_from") != NULL)
+               draft_from_masquerading = TRUE;
 
 
-    if (strstr(masquerade, "mmailid") != NULL)
-       mmailid_masquerading = TRUE;
+       if (strstr(masquerade, "mmailid") != NULL)
+               mmailid_masquerading = TRUE;
 
 
-    if (strstr(masquerade, "username_extension") != NULL)
-       username_extension_masquerading = TRUE;
+       if (strstr(masquerade, "username_extension") != NULL)
+               username_extension_masquerading = TRUE;
 }
 
 
 }
 
 
-#define        QUOTE   '\\'
+#define QUOTE  '\\'
 
 /*
  * Convert escaped values, malloc some new space,
 
 /*
  * Convert escaped values, malloc some new space,
@@ -151,47 +150,47 @@ mts_init (char *name)
 static char *
 tailor_value (unsigned char *s)
 {
 static char *
 tailor_value (unsigned char *s)
 {
-    int i, r;
-    char *bp;
-    char buffer[BUFSIZ];
-    size_t len;
-
-    for (bp = buffer; *s; bp++, s++) {
-       if (*s != QUOTE) {
-           *bp = *s;
-       } else {
-           switch (*++s) {
-               case 'b': *bp = '\b'; break;
-               case 'f': *bp = '\f'; break;
-               case 'n': *bp = '\n'; break;
-               case 't': *bp = '\t'; break;
-
-               case 0: s--;
-               case QUOTE: 
-                   *bp = QUOTE;
-                   break;
-
-               default: 
-                   if (!isdigit (*s)) {
-                       *bp++ = QUOTE;
+       int i, r;
+       char *bp;
+       char buffer[BUFSIZ];
+       size_t len;
+
+       for (bp = buffer; *s; bp++, s++) {
+               if (*s != QUOTE) {
                        *bp = *s;
                        *bp = *s;
-                   }
-                   r = *s != '0' ? 10 : 8;
-                   for (i = 0; isdigit (*s); s++)
-                       i = i * r + *s - '0';
-                   s--;
-                   *bp = toascii (i);
-                   break;
-           }
+               } else {
+                       switch (*++s) {
+                               case 'b': *bp = '\b'; break;
+                               case 'f': *bp = '\f'; break;
+                               case 'n': *bp = '\n'; break;
+                               case 't': *bp = '\t'; break;
+
+                               case 0: s--;
+                               case QUOTE:
+                                       *bp = QUOTE;
+                                       break;
+
+                               default:
+                                       if (!isdigit (*s)) {
+                                               *bp++ = QUOTE;
+                                               *bp = *s;
+                                       }
+                                       r = *s != '0' ? 10 : 8;
+                                       for (i = 0; isdigit (*s); s++)
+                                               i = i * r + *s - '0';
+                                       s--;
+                                       *bp = toascii (i);
+                                       break;
+                       }
+               }
        }
        }
-    }
-    *bp = 0;
+       *bp = 0;
 
 
-    len = strlen (buffer) + 1;
-    bp = mh_xmalloc (len);
-    memcpy (bp, buffer, len);
+       len = strlen (buffer) + 1;
+       bp = mh_xmalloc (len);
+       memcpy (bp, buffer, len);
 
 
-    return bp;
+       return bp;
 }
 
 /*
 }
 
 /*
@@ -201,38 +200,38 @@ tailor_value (unsigned char *s)
 char *
 LocalName (void)
 {
 char *
 LocalName (void)
 {
-    static char buffer[BUFSIZ] = "";
-    struct addrinfo hints, *res;
+       static char buffer[BUFSIZ] = "";
+       struct addrinfo hints, *res;
 #ifdef HAVE_UNAME
 #ifdef HAVE_UNAME
-    struct utsname name;
+       struct utsname name;
 #endif
 
 #endif
 
-    /* check if we have cached the local name */
-    if (buffer[0])
-       return buffer;
+       /* check if we have cached the local name */
+       if (buffer[0])
+               return buffer;
 
 
-    mts_init ("mts");
+       mts_init ("mts");
 
 
-    memset(buffer, 0, sizeof(buffer));
+       memset(buffer, 0, sizeof(buffer));
 #ifdef HAVE_UNAME
 #ifdef HAVE_UNAME
-    /* first get our local name */
-    uname (&name);
-    strncpy (buffer, name.nodename, sizeof(buffer) - 1);
+       /* first get our local name */
+       uname (&name);
+       strncpy (buffer, name.nodename, sizeof(buffer) - 1);
 #else
 #else
-    /* first get our local name */
-    gethostname (buffer, sizeof(buffer) - 1);
+       /* first get our local name */
+       gethostname (buffer, sizeof(buffer) - 1);
 #endif
 #endif
-    /* now fully qualify our name */
-
-    memset(&hints, 0, sizeof(hints));
-    hints.ai_flags = AI_CANONNAME;
-    hints.ai_family = PF_UNSPEC;
-    if (getaddrinfo(buffer, NULL, &hints, &res) == 0) {
-       strncpy(buffer, res->ai_canonname, sizeof(buffer) - 1);
-       freeaddrinfo(res);
-    }
+       /* now fully qualify our name */
+
+       memset(&hints, 0, sizeof(hints));
+       hints.ai_flags = AI_CANONNAME;
+       hints.ai_family = PF_UNSPEC;
+       if (getaddrinfo(buffer, NULL, &hints, &res) == 0) {
+               strncpy(buffer, res->ai_canonname, sizeof(buffer) - 1);
+               freeaddrinfo(res);
+       }
 
 
-    return buffer;
+       return buffer;
 }
 
 
 }
 
 
@@ -244,26 +243,26 @@ LocalName (void)
 char *
 SystemName (void)
 {
 char *
 SystemName (void)
 {
-    static char buffer[BUFSIZ] = "";
+       static char buffer[BUFSIZ] = "";
 
 #ifdef HAVE_UNAME
 
 #ifdef HAVE_UNAME
-    struct utsname name;
+       struct utsname name;
 #endif
 
 #endif
 
-    /* check if we have cached the system name */
-    if (buffer[0])
-       return buffer;
+       /* check if we have cached the system name */
+       if (buffer[0])
+               return buffer;
 
 
-    mts_init ("mts");
+       mts_init ("mts");
 
 #ifdef HAVE_UNAME
 
 #ifdef HAVE_UNAME
-    uname (&name);
-    strncpy (buffer, name.nodename, sizeof(buffer));
+       uname (&name);
+       strncpy (buffer, name.nodename, sizeof(buffer));
 #else
 #else
-    gethostname (buffer, sizeof(buffer));
+       gethostname (buffer, sizeof(buffer));
 #endif
 
 #endif
 
-    return buffer;
+       return buffer;
 }
 
 
 }
 
 
@@ -274,10 +273,10 @@ SystemName (void)
 char *
 getusername (void)
 {
 char *
 getusername (void)
 {
-    if (username[0] == '\0')
-       getuserinfo();
+       if (username[0] == '\0')
+               getuserinfo();
 
 
-    return username;
+       return username;
 }
 
 
 }
 
 
@@ -289,173 +288,171 @@ getusername (void)
 char *
 getfullname (void)
 {
 char *
 getfullname (void)
 {
-    if (username[0] == '\0')
-       getuserinfo();
+       if (username[0] == '\0')
+               getuserinfo();
 
 
-    return fullname;
+       return fullname;
 }
 
 
 /*
  * Find the user's username and full name, and cache them.
  * Also, handle "mmailid" username masquerading controlled from the GECOS field
 }
 
 
 /*
  * Find the user's username and full name, and cache them.
  * Also, handle "mmailid" username masquerading controlled from the GECOS field
- * of the passwd file. 
+ * of the passwd file.
  */
 
 static void
 getuserinfo (void)
 {
  */
 
 static void
 getuserinfo (void)
 {
-    register unsigned char *cp;
-    register char *np;
-    register struct passwd *pw;
-
-    if ((pw = getpwuid (getuid ())) == NULL
-           || pw->pw_name == NULL
-           || *pw->pw_name == '\0') {
-       strncpy (username, "unknown", sizeof(username));
-       snprintf (fullname, sizeof(fullname), "The Unknown User-ID (%d)",
-               (int) getuid ());
-       return;
-    }
+       register unsigned char *cp;
+       register char *np;
+       register struct passwd *pw;
+
+       if ((pw = getpwuid (getuid ())) == NULL
+               || pw->pw_name == NULL
+               || *pw->pw_name == '\0') {
+               strncpy (username, "unknown", sizeof(username));
+               snprintf (fullname, sizeof(fullname), "The Unknown User-ID (%d)",
+                       (int) getuid ());
+               return;
+       }
 
 
-    np = pw->pw_gecos;
+       np = pw->pw_gecos;
 
 
-    /* Get the user's real name from the GECOS field.  Stop once we hit a ',',
-       which some OSes use to separate other 'finger' information in the GECOS
-       field, like phone number.  Also, if mmailid masquerading is turned on due
-       to "mmailid" appearing on the "masquerade:" line of mts.conf, stop if we
-       hit a '<' (which should precede any ','s). */
+       /* Get the user's real name from the GECOS field.  Stop once we hit a ',',
+        * which some OSes use to separate other 'finger' information in the GECOS
+        * field, like phone number.  Also, if mmailid masquerading is turned on due
+        * to "mmailid" appearing on the "masquerade:" line of mts.conf, stop if we
+        * hit a '<' (which should precede any ','s). */
 #ifndef BSD42
 #ifndef BSD42
-    if (mmailid_masquerading)
-       /* Stop at ',' or '<'. */
-       for (cp = fullname; *np != '\0' && *np != ',' && *np != '<';
-            *cp++ = *np++)
-           continue;
-    else
-       /* Allow '<' as a legal character of the user's name.  This code is
-          basically a duplicate of the code above the "else" -- we don't
-          collapse it down to one copy and put the mmailid_masquerading check
-          inside the loop with "(x ? y : z)" because that's inefficient and the
-          value'll never change while it's in there. */
-       for (cp = fullname; *np != '\0' && *np != ',';
-            *cp++ = *np++)
-           continue;
+       if (mmailid_masquerading)
+               /* Stop at ',' or '<'. */
+               for (cp = fullname; *np != '\0' && *np != ',' && *np != '<';
+                       *cp++ = *np++)
+                       continue;
+       else
+               /* Allow '<' as a legal character of the user's name.  This code is
+                * basically a duplicate of the code above the "else" -- we don't
+                * collapse it down to one copy and put the mmailid_masquerading check
+                * inside the loop with "(x ? y : z)" because that's inefficient and the
+                * value'll never change while it's in there. */
+               for (cp = fullname; *np != '\0' && *np != ','; *cp++ = *np++)
+                       continue;
 #else /* BSD42 */
 #else /* BSD42 */
-    /* On BSD(-derived) systems, the system utilities that deal with the GECOS
-       field (finger, mail, sendmail, etc.) translate any '&' character in it to
-       the login name, with the first letter capitalized.  So, for instance,
-       fingering a user "bob" with the GECOS field "& Jones" would reveal him to
-       be "In real life: Bob Jones".  Surprisingly, though, the OS doesn't do
-       the translation for you, so we have to do it manually here. */
-    if (mmailid_masquerading)
-       /* Stop at ',' or '<'. */
-       for (cp = fullname;
-            *np != '\0' && *np != ',' && *np != '<';) {
-           if (*np == '&')     {       /* blech! */
-               strcpy (cp, pw->pw_name);
-               *cp = toupper(*cp);
-               while (*cp)
-                   cp++;
-               np++;
-           } else {
-               *cp++ = *np++;
-           }
-       }
-    else
-       /* Allow '<' as a legal character of the user's name.  This code is
-          basically a duplicate of the code above the "else" -- we don't
-          collapse it down to one copy and put the mmailid_masquerading check
-          inside the loop with "(x ? y : z)" because that's inefficient and the
-          value'll never change while it's in there. */
-       for (cp = fullname;
-            *np != '\0' && *np != ',';) {
-           if (*np == '&')     {       /* blech! */
-               strcpy (cp, pw->pw_name);
-               *cp = toupper(*cp);
-               while (*cp)
-                   cp++;
-               np++;
-           } else {
-               *cp++ = *np++;
-           }
-       }
+       /* On BSD(-derived) systems, the system utilities that deal with the GECOS
+        * field (finger, mail, sendmail, etc.) translate any '&' character in it to
+        * the login name, with the first letter capitalized.  So, for instance,
+        * fingering a user "bob" with the GECOS field "& Jones" would reveal him to
+        * be "In real life: Bob Jones".  Surprisingly, though, the OS doesn't do
+        * the translation for you, so we have to do it manually here. */
+       if (mmailid_masquerading)
+               /* Stop at ',' or '<'. */
+               for (cp = fullname;
+                       *np != '\0' && *np != ',' && *np != '<';) {
+                       if (*np == '&') {  /* blech! */
+                               strcpy (cp, pw->pw_name);
+                               *cp = toupper(*cp);
+                               while (*cp)
+                                       cp++;
+                               np++;
+                       } else {
+                               *cp++ = *np++;
+                       }
+               }
+       else
+               /* Allow '<' as a legal character of the user's name.  This code is
+                * basically a duplicate of the code above the "else" -- we don't
+                * collapse it down to one copy and put the mmailid_masquerading check
+                * inside the loop with "(x ? y : z)" because that's inefficient and the
+                * value'll never change while it's in there. */
+               for (cp = fullname; *np != '\0' && *np != ',';) {
+                       if (*np == '&') {  /* blech! */
+                               strcpy (cp, pw->pw_name);
+                               *cp = toupper(*cp);
+                               while (*cp)
+                                       cp++;
+                               np++;
+                       } else {
+                               *cp++ = *np++;
+                       }
+               }
 #endif /* BSD42 */
 #endif /* BSD42 */
-    *cp = '\0';
-
-    if (mmailid_masquerading) {
-       /* Do mmailid processing.  The GECOS field should have the form
-          "Full Name <fakeusername>".  For instance,
-          "Dan Harkless <Dan.Harkless>".  Naturally, you'll want your MTA to
-          have an alias (e.g. in /etc/aliases) from "fakeusername" to your
-          account name.  */ 
-       if (*np)
-           np++;
-       for (cp = username; *np && *np != '>'; *cp++ = *np++)
-           continue;
        *cp = '\0';
        *cp = '\0';
-    }
-    if (!mmailid_masquerading || *np == '\0')
-       strncpy (username, pw->pw_name, sizeof(username));
 
 
-    /* The $SIGNATURE environment variable overrides the GECOS field's idea of
-       your real name. */
-    if ((cp = getenv ("SIGNATURE")) && *cp)
-       strncpy (fullname, cp, sizeof(fullname));
+       if (mmailid_masquerading) {
+               /* Do mmailid processing.  The GECOS field should have the form
+                * "Full Name <fakeusername>".  For instance,
+                * "Dan Harkless <Dan.Harkless>".  Naturally, you'll want your MTA to
+                * have an alias (e.g. in /etc/aliases) from "fakeusername" to your
+                * account name.  */
+               if (*np)
+                       np++;
+               for (cp = username; *np && *np != '>'; *cp++ = *np++)
+                       continue;
+               *cp = '\0';
+       }
+       if (!mmailid_masquerading || *np == '\0')
+               strncpy (username, pw->pw_name, sizeof(username));
 
 
-    if (strchr(fullname, '.')) {               /*  quote any .'s */
-       char tmp[BUFSIZ];
+       /* The $SIGNATURE environment variable overrides the GECOS field's
+        * idea of your real name. */
+       if ((cp = getenv ("SIGNATURE")) && *cp)
+               strncpy (fullname, cp, sizeof(fullname));
 
 
-       /* should quote "'s too */
-       snprintf (tmp, sizeof(tmp), "\"%s\"", fullname);
-       strncpy (fullname, tmp, sizeof(fullname));
-    }
+       if (strchr(fullname, '.')) {  /*  quote any .'s */
+               char tmp[BUFSIZ];
 
 
-    return;
+               /* should quote "'s too */
+               snprintf (tmp, sizeof(tmp), "\"%s\"", fullname);
+               strncpy (fullname, tmp, sizeof(fullname));
+       }
+
+       return;
 }
 
 static const char*
 get_mtsconf_pathname (void)
 {
 }
 
 static const char*
 get_mtsconf_pathname (void)
 {
-    const char *cp = getenv ( "MHMTSCONF ");
-    if (cp != NULL && *cp != '\0') {
-        return cp;
-    }
-    return mtsconf;
+       const char *cp = getenv ( "MHMTSCONF ");
+       if (cp != NULL && *cp != '\0') {
+               return cp;
+       }
+       return mtsconf;
 }
 
 static const char*
 get_mtsuserconf_pathname (void)
 {
 }
 
 static const char*
 get_mtsuserconf_pathname (void)
 {
-    const char *cp = getenv ( "MHMTSUSERCONF" );
-    if (cp != NULL && *cp != '\0') {
-        return cp;
-    }
-    return NULL;
+       const char *cp = getenv ( "MHMTSUSERCONF" );
+       if (cp != NULL && *cp != '\0') {
+               return cp;
+       }
+       return NULL;
 }
 
 static void
 mts_read_conf_file (FILE *fp)
 {
 }
 
 static void
 mts_read_conf_file (FILE *fp)
 {
-    unsigned char *bp;
-    char *cp, buffer[BUFSIZ];
-    struct bind *b;
-
-    while (fgets (buffer, sizeof(buffer), fp)) {
-       if (!(cp = strchr(buffer, '\n')))
-           break;
-       *cp = 0;
-       if (*buffer == '#' || *buffer == '\0')
-           continue;
-       if (!(bp = strchr(buffer, ':')))
-           break;
-       *bp++ = 0;
-       while (isspace (*bp))
-           *bp++ = 0;
-
-       for (b = binds; b->keyword; b++)
-           if (!strcmp (buffer, b->keyword))
-               break;
-       if (b->keyword && (cp = tailor_value (bp)))
-           *b->value = cp;
-    }
+       unsigned char *bp;
+       char *cp, buffer[BUFSIZ];
+       struct bind *b;
+
+       while (fgets (buffer, sizeof(buffer), fp)) {
+               if (!(cp = strchr(buffer, '\n')))
+                       break;
+               *cp = 0;
+               if (*buffer == '#' || *buffer == '\0')
+                       continue;
+               if (!(bp = strchr(buffer, ':')))
+                       break;
+               *bp++ = 0;
+               while (isspace (*bp))
+                       *bp++ = 0;
+
+               for (b = binds; b->keyword; b++)
+                       if (!strcmp (buffer, b->keyword))
+                               break;
+               if (b->keyword && (cp = tailor_value (bp)))
+                       *b->value = cp;
+       }
 }
 }