Removed the hostable option from mts.conf because it's no longer used.
authorDavid Levine <levinedl@acm.org>
Tue, 27 Mar 2012 01:32:03 +0000 (20:32 -0500)
committerDavid Levine <levinedl@acm.org>
Tue, 27 Mar 2012 01:32:03 +0000 (20:32 -0500)
This allowed removal of mts/smtp/hosts.c.

Makefile.am
docs/pending-release-notes
etc/mts.conf.in
h/prototypes.h
man/mh-tailor.man
mts/smtp/hosts.c [deleted file]
uip/mhl.c
uip/mhlsbr.c
uip/scansbr.c
uip/show.c

index cf29544..d7972a0 100644 (file)
@@ -392,9 +392,8 @@ etc/mts.conf: $(srcdir)/etc/mts.conf.in Makefile
        rm -f $@
        $(SED) -e 's,%mts%,$(MTS),' \
               -e 's,%mailspool%,$(mailspool),' \
-              -e 's,%etcdir%,$(sysconfdir),' \
               -e 's,%smtpservers%,$(smtpservers),' \
-                               < $(srcdir)/etc/mts.conf.in > $@
+                               < $(srcdir)/etc/mts.conf.in > $@
 
 etc/mhn.defaults: $(srcdir)/etc/mhn.defaults.sh $(MHNSEARCHPROG)
        rm -f $@
@@ -492,7 +491,7 @@ sbr_libmh_a_CPPFLAGS = -I./sbr -DNMHETCDIR='"$(sysconfdir)"' \
 sbr_libdtimep_a_SOURCES = sbr/dtimep.l
 sbr_libdtimep_a_CFLAGS = $(sbr_libmh_a_CPPFLAGS) $(DISABLE_UNUSED_MACROS_WARNING)
 
-mts_libmts_a_SOURCES = mts/smtp/hosts.c mts/smtp/smtp.c
+mts_libmts_a_SOURCES = mts/smtp/smtp.c
 
 ##
 ## Our rules for generating man pages (both the rule for man.sed and
@@ -582,7 +581,7 @@ gcov:
         fi
        @echo rebuilding with AM_CFLAGS=--coverage . . .
        @(make clean  &&  make AM_CFLAGS=--coverage) > /dev/null  && \
-          make check AM_CFLAGS=--coverage
+         make check AM_CFLAGS=--coverage
        @for i in `find . -name '*.gcda'`; do \
           gcov -p -o `echo $$i | $(SED) 's%\\(.*\\)/%\\1 %'`; \
         done
index fa8147c..e91c7bf 100644 (file)
@@ -59,3 +59,4 @@ Things to add to the release notes for the next full release:
   be removed in the future.
 - Added support for readline editing and command/filename completion at
   the WhatNow? prompt
+- The hostable option of mts.conf is no longer needed and has been removed.
index 1ba5f8f..a9c7494 100644 (file)
@@ -1,8 +1,7 @@
 #
 # nmh mail transport interface customization file.
-# 
-# Check the mh-tailor(5) man page for a list of
-# all the available options for this file.
+#
+# Check the mh-tailor(5) man page for descriptions of available options.
 #
 
 # The delivery method to use.  Supported values are `smtp' and `sendmail'.
 # When `sendmail', nmh will pipe messages directly to the sendmail program.
 mts: %mts%
 
-# The exceptions file for /etc/hosts used by
-# `post' to try to find official names.
-hostable: %etcdir%/hosts
-
 # Name that nmh considers `local'.  If not set, nmh will
 # query the system for this value (gethostname, etc...).
 #localname: foo.bar.com
index 2a944e9..b0c0997 100644 (file)
@@ -139,7 +139,6 @@ int strncasecmp (const char *s1, const char *s2, size_t n);
  */
 char *LocalName(int);
 char *SystemName(void);
-char *OfficialName(char *);
 
 /*
  * prototypes for some routines in uip
index 3963e4b..98eec98 100644 (file)
@@ -190,29 +190,11 @@ indicates that mail for \*(lqeveryone\*(rq should not be sent to them.
 This is useful for handling admin, dummy, and guest logins.
 .RE
 .SS "SMTP support"
-These options are only available if you set
+This option is only available if you set
 .B mts
 to
 .BR smtp .
 .PP
-.BR hostable :
-%etcdir%/hosts
-.RS 5
-The exceptions file for /etc/hosts used by
-.B post
-to try to find
-official names.  The format of this file is quite simple:
-.PP
-.IP 1. 4
-Comments are surrounded by sharp (`#') and newline.
-.IP 2. 4
-Words are surrounded by white space.
-.IP 3. 4
-The first word on the line is the official name of a host.
-.IP 4. 4
-All words following the official names are aliases for that host.
-.RE
-.PP
 .BR servers :
 localhost
 .RS 5
diff --git a/mts/smtp/hosts.c b/mts/smtp/hosts.c
deleted file mode 100644 (file)
index 94a22d5..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-
-/*
- * hosts.c -- find out the official name of a host
- *
- * This code is Copyright (c) 2002, by the authors of nmh.  See the
- * COPYRIGHT file in the root directory of the nmh distribution for
- * complete copyright information.
- */
-
-/*
- * In the SendMail world, we really don't know what the valid
- * hosts are.  We could poke around in the sendmail.cf file, but
- * that still isn't a guarantee.  As a result, we'll say that
- * everything is a valid host, and let SendMail worry about it.
- */
-
-#include <h/mh.h>
-#include <h/mts.h>
-#include <sys/socket.h>
-#include <netdb.h>
-
-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)
-{
-    unsigned char *p;
-    char *q, site[BUFSIZ];
-    struct addrinfo hints, *res;
-
-    static char buffer[BUFSIZ];
-    char **r;
-    struct host *h;
-
-    for (p = name, q = site; *p && (q - site < (int)sizeof(site) - 1); p++, q++)
-       *q = isupper (*p) ? tolower (*p) : *p;
-    *q = '\0';
-    q = site;
-
-    if (!mh_strcasecmp (LocalName(1), site))
-       return LocalName(1);
-
-    memset(&hints, 0, sizeof(hints));
-    hints.ai_flags = AI_CANONNAME;
-    hints.ai_family = PF_UNSPEC;
-
-    if (getaddrinfo(q, NULL, &hints, &res) == 0) {
-       strncpy (buffer, res->ai_canonname, sizeof(buffer));
-       buffer[sizeof(buffer) - 1] = '\0';
-       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;
-}
index 490813d..af4cdfa 100644 (file)
--- a/uip/mhl.c
+++ b/uip/mhl.c
@@ -19,17 +19,3 @@ main (int argc, char **argv)
     done (mhl (argc, argv));
     return 1;
 }
-
-
-/*
- * Cheat: we are loaded with adrparse, which wants a routine called
- * OfficialName().  We call adrparse:getm() with the correct arguments
- * to prevent OfficialName() from being called.  Hence, the following
- * is to keep the loader happy.
- */
-
-char *
-OfficialName(char *name)
-{
-    return name;
-}
index ff1f66e..d49314f 100644 (file)
@@ -1151,13 +1151,8 @@ mcomp_format (struct mcomp *c1, struct mcomp *c2)
            p->pq_error = getcpy (error);
        } else {
            if ((c1->c_flags & FACEDFLT) && c2->c_face == NULL) {
-               char   *h, *o;
-               if ((h = mp->m_host) == NULL)
-                   h = LocalName (0);
-               if ((o = OfficialName (h)))
-                   h = o;
-               c2->c_face = concat ("address ", h, " ", mp->m_mbox,
-                                   NULL);
+               char *h = mp->m_host  ?  mp->m_host  :  LocalName (0);
+               c2->c_face = concat ("address ", h, " ", mp->m_mbox, NULL);
            }
            p->pq_text = getcpy (mp->m_text);
            mnfree (mp);
@@ -1569,11 +1564,7 @@ face_format (struct mcomp *c1)
 
     if ((cp = getname (cp))) {
        if ((mp = getm (cp, NULL, 0, AD_NAME, NULL))) {
-           char *h, *o;
-           if ((h = mp->m_host) == NULL)
-               h = LocalName (0);
-           if ((o = OfficialName (h)))
-               h = o;
+           char *h = mp->m_host  ?  mp->m_host  :  LocalName (0);
            c1->c_face = concat ("address ", h, " ", mp->m_mbox, NULL);
        }
 
index 1f2785a..3d66bcf 100644 (file)
@@ -361,19 +361,6 @@ finished:
 }
 
 
-/*
- * Cheat:  we are loaded with adrparse, which wants a routine called
- * OfficialName().  We call adrparse:getm() with the correct arguments
- * to prevent OfficialName() from being called.  Hence, the following
- * is to keep the loader happy.
- */
-char *
-OfficialName (char *name)
-{
-    return name;
-}
-
-
 static int
 mh_fputs(char *s, FILE *stream)
 {
index 1b11871..60f1e62 100644 (file)
@@ -359,19 +359,6 @@ go_to_it: ;
     return 0;  /* dead code to satisfy the compiler */
 }
 
-/*
- * Cheat:  we are loaded with adrparse, which wants a routine called
- * OfficialName().  We call adrparse:getm() with the correct arguments
- * to prevent OfficialName() from being called.  Hence, the following
- * is to keep the loader happy.
- */
-
-char *
-OfficialName (char *name)
-{
-    return name;
-}
-
 
 /*
  * Check if a message or file contains any non-text parts