X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fmts.c;h=bf7d42b1a1c5025117ebf3dabe38e9ca19d41a79;hb=49856d905bfbaf3025967cbfe7631440978bccc8;hp=548731e12262da36bfb7a831b273fa613728eff5;hpb=af586ebe59b73c23b2291624ab0015913c5a3687;p=mmh diff --git a/sbr/mts.c b/sbr/mts.c index 548731e..bf7d42b 100644 --- a/sbr/mts.c +++ b/sbr/mts.c @@ -62,8 +62,8 @@ static char localmbox[BUFSIZ]; /* * MTS specific variables */ -static char *sm_method = "smtp"; -int sm_mts = MTS_SMTP; +static char *mts_method = "smtp"; +int sm_mts = MTS_SENDMAIL_SMTP; char *sendmail = SENDMAILPATH; /* @@ -106,7 +106,7 @@ static struct bind binds[] = { { "uucplfil", &uucplfil }, { "mmdelim1", &mmdlm1 }, { "mmdelim2", &mmdlm2 }, - { "mts", &sm_method }, + { "mts", &mts_method }, { "sendmail", &sendmail }, { "clientname", &clientname }, { "servers", &servers }, @@ -119,6 +119,25 @@ static struct bind binds[] = { }; +/* Convert name of mts method to integer value and store it. */ +void +save_mts_method (const char *value) { + if (! mh_strcasecmp (value, "smtp")) { + mts_method = "smtp"; + sm_mts = MTS_SMTP; + } else if (! mh_strcasecmp (value, "sendmail/smtp") || + ! mh_strcasecmp (value, "sendmail")) { + mts_method = "sendmail/smtp"; + sm_mts = MTS_SENDMAIL_SMTP; + } else if (! mh_strcasecmp (value, "sendmail/pipe")) { + mts_method = "sendmail/pipe"; + sm_mts = MTS_SENDMAIL_PIPE; + } else { + adios (NULL, "unsupported mts selection \"%s\"", value); + } +} + + /* * Read the configuration file for the nmh interface * to the mail transport system (MTS). @@ -146,14 +165,7 @@ mts_init (char *name) Everyone = atoi (everyone); - 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; - } + save_mts_method (mts_method); } @@ -404,7 +416,9 @@ getuserinfo (void) /* The $SIGNATURE environment variable overrides the GECOS field's idea of your real name. If SIGNATURE isn't set, use the Signature profile - setting if it exists. */ + setting if it exists. + Note that post(8) and whom(1) use context_foil (), so they + won't see the profile component. */ if ((cp = getenv ("SIGNATURE")) && *cp) strncpy (fullname, cp, sizeof(fullname)); else if ((cp = context_find("Signature")))