X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fmts.c;h=ba7ff0757ed3d0abe0fc65da359f6445963ccc9c;hb=40ae9d199d58c85469e3528fc53205143baf29d2;hp=939a8c7685ee311ee3e57e1a610694918556be14;hpb=2645f808bdcc325e143a9c6300ff97b813e5429f;p=mmh diff --git a/sbr/mts.c b/sbr/mts.c index 939a8c7..ba7ff07 100644 --- a/sbr/mts.c +++ b/sbr/mts.c @@ -54,9 +54,10 @@ char *uucplfil = ""; char *mmdlm1 = "\001\001\001\001\n"; char *mmdlm2 = "\001\001\001\001\n"; -/* Cache the username and fullname of the user */ +/* Cache the username, fullname, and mailbox of the user */ static char username[BUFSIZ]; static char fullname[BUFSIZ]; +static char localmbox[BUFSIZ]; /* Variables for username masquerading: */ boolean draft_from_masquerading = FALSE; /* also used from post.c */ @@ -67,12 +68,10 @@ static char* masquerade = ""; /* * MTS specific variables */ -#if defined(SMTPMTS) static char *sm_method = "smtp"; int sm_mts = MTS_SMTP; char *hostable = nmhetcdir(/hosts); char *sendmail = SENDMAILPATH; -#endif /* * SMTP/POP stuff @@ -115,13 +114,9 @@ static struct bind binds[] = { { "mmdelim1", &mmdlm1 }, { "mmdelim2", &mmdlm2 }, { "masquerade", &masquerade }, - -#if defined(SMTPMTS) { "mts", &sm_method }, { "hostable", &hostable }, { "sendmail", &sendmail }, -#endif - { "clientname", &clientname }, { "servers", &servers }, { "pophost", &pophost }, @@ -170,7 +165,6 @@ 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) @@ -179,7 +173,6 @@ mts_init (char *name) advise(NULL, "unsupported \"mts\" value in mts.conf: %s", sm_method); sm_mts = MTS_SMTP; } -#endif } @@ -352,6 +345,34 @@ getfullname (void) /* + * Get the full local mailbox name. This is in the form: + * + * User Name + */ + +char * +getlocalmbox (void) +{ + if (username[0] == '\0') + getuserinfo(); + + if (localmbox[0] == '\0') { + char *cp; + + if ((cp = context_find("Local-Mailbox")) != NULL) { + strncpy(localmbox, cp, sizeof(localmbox)); + } else { + snprintf(localmbox, sizeof(localmbox), "%s <%s@%s>", fullname, + username, LocalName(0)); + } + + localmbox[sizeof(localmbox) - 1] = '\0'; + } + + return localmbox; +} + +/* * 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. @@ -412,9 +433,12 @@ getuserinfo (void) strncpy (username, pw->pw_name, sizeof(username)); /* The $SIGNATURE environment variable overrides the GECOS field's idea of - your real name. */ + your real name. If SIGNATURE isn't set, use the Signature profile + setting if it exists. */ if ((cp = getenv ("SIGNATURE")) && *cp) strncpy (fullname, cp, sizeof(fullname)); + else if ((cp = context_find("Signature"))) + strncpy (fullname, cp, sizeof(fullname)); if (strchr(fullname, '.')) { /* quote any .'s */ char tmp[BUFSIZ]; @@ -424,13 +448,17 @@ getuserinfo (void) strncpy (fullname, tmp, sizeof(fullname)); } + fullname[sizeof(fullname) - 1] = '\0'; + + localmbox[0] = '\0'; + return; } static const char* get_mtsconf_pathname (void) { - const char *cp = getenv ( "MHMTSCONF "); + const char *cp = getenv ( "MHMTSCONF" ); if (cp != NULL && *cp != '\0') { return cp; }