* Merged mts/sendmail functionality into mts/smtp; switching between
[mmh] / zotnet / mts / mts.c
index 9194404..7d9b718 100644 (file)
@@ -63,14 +63,15 @@ static char fullname[BUFSIZ];
 /* Variables for username masquerading: */
        boolean  draft_from_masquerading = FALSE;  /* also used from post.c */
 static boolean  mmailid_masquerading = FALSE;
-static boolean  username_extension_masquerading = FALSE;
+       boolean  username_extension_masquerading = FALSE;  /* " from addrsbr.c */
 static char*    masquerade = "";
 
-
 /*
  * MTS specific variables
  */
-#if defined(SENDMTS) || defined(SMTPMTS)
+#if defined(SMTPMTS)
+static char *sm_method = "smtp";
+int  sm_mts    = MTS_SMTP;
 char *hostable = nmhetcdir(/hosts);
 char *sendmail = SENDMAILPATH;
 #endif
@@ -132,12 +133,10 @@ static struct bind binds[] = {
     { "mmdelim2", &mmdlm2 },
     { "masquerade", &masquerade },
 
-#if defined(SENDMTS) || defined(SMTPMTS)
-    { "hostable", &hostable },
-#endif
-
-#ifdef SENDMTS
-    { "sendmail", &sendmail },
+#if defined(SMTPMTS)
+    { "mts",      &sm_method },
+    { "hostable", &hostable  },
+    { "sendmail", &sendmail  },
 #endif
 
     { "clientname",  &clientname },
@@ -209,6 +208,17 @@ mts_init (char *name)
 
     if (strstr(masquerade, "username_extension") != NULL)
        username_extension_masquerading = TRUE;
+
+#ifdef SMTPMTS
+    if (strcmp(sm_method, "smtp") == 0)
+        sm_mts = MTS_SMTP;
+    else if (strcmp(sm_method, "sendmail") == 0)
+        sm_mts = MTS_SENDMAIL;
+    else {
+        advise(NULL, "unsupported \"mts\" value in mts.conf: %s", sm_method);
+        sm_mts = MTS_SMTP;
+    }
+#endif
 }
 
 
@@ -496,18 +506,6 @@ getuserinfo (void)
     if (!mmailid_masquerading || *np == '\0')
        strncpy (username, pw->pw_name, sizeof(username));
 
-    if (username_extension_masquerading) {
-       char*  username_extension = getenv("USERNAME_EXTENSION");
-
-       if (username_extension != NULL && *username_extension != '\0')
-           /* $USERNAME_EXTENSION environment variable has been set, so tack on
-              its value to the actual username.  This is meant to interact with
-              qmail's "user-extension" feature and sendmail's "plussed user"
-              feature. */
-           snprintf(username, sizeof(username), "%s%s",
-                    username, username_extension);
-    }
-
     /* The $SIGNATURE environment variable overrides the GECOS field's idea of
        your real name. */
     if ((cp = getenv ("SIGNATURE")) && *cp)