Remove RCS keywords, since they no longer work after git migration.
[mmh] / mts / smtp / hosts.c
index 607f4ec..a10509c 100644 (file)
@@ -2,8 +2,6 @@
 /*
  * hosts.c -- find out the official name of a host
  *
- * $Id$
- *
  * 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.
@@ -36,8 +34,9 @@ static int init_hs(void);
 char *
 OfficialName (char *name)
 {
-    char *p, *q, site[BUFSIZ];
-    struct hostent *hp;
+    unsigned char *p;
+    char *q, site[BUFSIZ];
+    struct addrinfo hints, *res;
 
     static char buffer[BUFSIZ];
     char **r;
@@ -51,12 +50,14 @@ OfficialName (char *name)
     if (!mh_strcasecmp (LocalName(), site))
        return LocalName();
 
-#ifdef HAVE_SETHOSTENT
-    sethostent (1);
-#endif
+    memset(&hints, 0, sizeof(hints));
+    hints.ai_flags = AI_CANONNAME;
+    hints.ai_family = PF_UNSPEC;
 
-    if ((hp = gethostbyname (q))) {
-       strncpy (buffer, hp->h_name, sizeof(buffer));
+    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 ()) {
@@ -85,7 +86,8 @@ OfficialName (char *name)
 static int
 init_hs (void)
 {
-    char  *cp, *dp, **q, **r;
+    unsigned char  *cp;
+    char *dp, **q, **r;
     char buffer[BUFSIZ], *aliases[NALIASES];
     register struct host *h;
     register FILE  *fp;