X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fmts.c;h=939a8c7685ee311ee3e57e1a610694918556be14;hb=e6d71f88fe62d7508ccd1809cd7e822bbb116b00;hp=71836e4f429e5908308b61ac137e0588e56d6e43;hpb=c2191f6961409263271aaeb0f9685e10492389a8;p=mmh diff --git a/sbr/mts.c b/sbr/mts.c index 71836e4..939a8c7 100644 --- a/sbr/mts.c +++ b/sbr/mts.c @@ -20,9 +20,6 @@ #include #include -#define NOTOK (-1) -#define OK 0 - /* * static prototypes */ @@ -81,7 +78,7 @@ char *sendmail = SENDMAILPATH; * SMTP/POP stuff */ char *clientname = NULL; -char *servers = "localhost \01localnet"; +char *servers = "localhost"; char *pophost = ""; /* @@ -144,6 +141,8 @@ static struct bind binds[] = { void mts_init (char *name) { + NMH_UNUSED (name); + const char *cp; FILE *fp; static int inited = 0; @@ -239,34 +238,45 @@ tailor_value (unsigned char *s) /* * Get the fully qualified name of the local host. + * + * If flag is 0, then use anything out of mts.conf (like localname). + * If flag is 1, then only use the "proper" local hostname. */ char * -LocalName (void) +LocalName (int flag) { - static char buffer[BUFSIZ] = ""; + static char buffer0[BUFSIZ] = ""; + static char buffer1[BUFSIZ] = ""; + static char *buffer[] = { buffer0, buffer1 }; + char *buf; struct addrinfo hints, *res; + if (flag < 0 || flag > 1) + return NULL; + + buf = buffer[flag]; + /* check if we have cached the local name */ - if (buffer[0]) - return buffer; + if (buf[0]) + return buf; mts_init ("mts"); /* check if the mts.conf file specifies a "localname" */ - if (*localname) { - strncpy (buffer, localname, sizeof(buffer)); + if (*localname && flag == 0) { + strncpy (buf, localname, sizeof(buffer0)); } else { - memset(buffer, 0, sizeof(buffer)); + memset(buf, 0, sizeof(buffer0)); /* first get our local name */ - gethostname (buffer, sizeof(buffer) - 1); + gethostname (buf, sizeof(buffer0) - 1); /* 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); + if (getaddrinfo(buf, NULL, &hints, &res) == 0) { + strncpy(buf, res->ai_canonname, sizeof(buffer0) - 1); freeaddrinfo(res); } } @@ -276,11 +286,11 @@ LocalName (void) * we append that now. This should rarely be needed. */ if (*localdomain) { - strcat (buffer, "."); - strcat (buffer, localdomain); + strcat (buf, "."); + strcat (buf, localdomain); } - return buffer; + return buf; }