X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=mts%2Fsmtp%2Fhosts.c;h=ec73e869751c798c1d69aec1ac598719ea062c08;hp=a10509cfb22c9e3ba32d3715814c7b01b876a9be;hb=128545e06224233b7e91fc4c83f8830252fe16c9;hpb=ab7b48411962d26439f92f35ed084d3d6275459c diff --git a/mts/smtp/hosts.c b/mts/smtp/hosts.c index a10509c..ec73e86 100644 --- a/mts/smtp/hosts.c +++ b/mts/smtp/hosts.c @@ -18,18 +18,6 @@ #include #include -static struct host { - char *h_name; - char **h_aliases; - struct host *h_next; -} hosts; - - -/* - * static prototypes - */ -static int init_hs(void); - char * OfficialName (char *name) @@ -39,8 +27,6 @@ OfficialName (char *name) struct addrinfo hints, *res; static char buffer[BUFSIZ]; - char **r; - struct host *h; for (p = name, q = site; *p && (q - site < sizeof(site) - 1); p++, q++) *q = isupper (*p) ? tolower (*p) : *p; @@ -60,84 +46,7 @@ OfficialName (char *name) freeaddrinfo(res); return buffer; } - if (hosts.h_name || init_hs ()) { - for (h = hosts.h_next; h; h = h->h_next) - if (!mh_strcasecmp (h->h_name, q)) { - return h->h_name; - } else { - for (r = h->h_aliases; *r; r++) - if (!mh_strcasecmp (*r, q)) - return h->h_name; - } - } strncpy (buffer, site, sizeof(buffer)); return buffer; } - -/* - * Use hostable as an exception file for those hosts that aren't - * on the Internet (listed in /etc/hosts). These are usually - * PhoneNet and UUCP sites. - */ - -#define NALIASES 50 - -static int -init_hs (void) -{ - unsigned char *cp; - char *dp, **q, **r; - char buffer[BUFSIZ], *aliases[NALIASES]; - register struct host *h; - register FILE *fp; - - if ((fp = fopen (hostable, "r")) == NULL) - return 0; - - h = &hosts; - while (fgets (buffer, sizeof(buffer), fp) != NULL) { - if ((cp = strchr(buffer, '#'))) - *cp = 0; - if ((cp = strchr(buffer, '\n'))) - *cp = 0; - for (cp = buffer; *cp; cp++) - if (isspace (*cp)) - *cp = ' '; - for (cp = buffer; isspace (*cp); cp++) - continue; - if (*cp == 0) - continue; - - q = aliases; - if ((cp = strchr(dp = cp, ' '))) { - *cp = 0; - for (cp++; *cp; cp++) { - while (isspace (*cp)) - cp++; - if (*cp == 0) - break; - if ((cp = strchr(*q++ = cp, ' '))) - *cp = 0; - else - break; - if (q >= aliases + NALIASES) - break; - } - } - - *q = 0; - - h->h_next = (struct host *) calloc (1, sizeof(*h)); - h = h->h_next; - h->h_name = getcpy (dp); - r = h->h_aliases = - (char **) calloc ((size_t) (q - aliases + 1), sizeof(*q)); - for (q = aliases; *q; q++) - *r++ = getcpy (*q); - *r = 0; - } - - fclose (fp); - return 1; -}