Removed the MTS and post; now we always use /usr/sbin/sendmail -t
[mmh] / sbr / addrsbr.c
index 484ec5e..79d7afe 100644 (file)
@@ -526,3 +526,51 @@ local_test: ;
 
     return 0;
 }
 
     return 0;
 }
+
+
+/*
+ * Moved from hosts.c -- find out the official name of a host
+ */
+
+/*
+ * 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/mts.h>
+#include <netdb.h>
+
+
+char *
+OfficialName (char *name)
+{
+    unsigned char *p;
+    char *q, site[BUFSIZ];
+    struct addrinfo hints, *res;
+
+    static char buffer[BUFSIZ];
+
+    for (p = name, q = site; *p && (q - site < sizeof(site) - 1); p++, q++)
+       *q = isupper (*p) ? tolower (*p) : *p;
+    *q = '\0';
+    q = site;
+
+    if (!mh_strcasecmp (LocalName(), site))
+       return LocalName();
+
+    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;
+    }
+
+    strncpy (buffer, site, sizeof(buffer));
+    return buffer;
+}