X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/84b65bad347129f751e3ed208516697bc3fe1820..2f5c4e8664a5bb3a20dfb5e93667022fa2e0abac:/sbr/mts.c?ds=sidebyside diff --git a/sbr/mts.c b/sbr/mts.c index d28f2851..bf7d42b1 100644 --- a/sbr/mts.c +++ b/sbr/mts.c @@ -62,7 +62,7 @@ static char localmbox[BUFSIZ]; /* * MTS specific variables */ -static char *sm_method = "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,16 +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/smtp") == 0) - sm_mts = MTS_SENDMAIL_SMTP; - else if (strcmp(sm_method, "sendmail/pipe") == 0) - sm_mts = MTS_SENDMAIL_PIPE; - else { - advise(NULL, "unsupported \"mts\" value in mts.conf: %s", sm_method); - sm_mts = MTS_SENDMAIL_SMTP; - } + save_mts_method (mts_method); }