getaddrinfo shall exist on any modern platform madmutt will run on.
authorPierre Habouzit <madcoder@debian.org>
Sat, 12 May 2007 11:24:34 +0000 (13:24 +0200)
committerPierre Habouzit <madcoder@debian.org>
Sat, 12 May 2007 11:24:34 +0000 (13:24 +0200)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
configure.ac
init.h
lib-sys/mutt_socket.c
main.c
mutt.h

index 2c54741..02747bc 100644 (file)
@@ -325,9 +325,9 @@ AC_MSG_CHECKING([for socklen_t])
 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
         AC_MSG_RESULT([no])
         AC_DEFINE(socklen_t,int, [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
         AC_MSG_RESULT([no])
         AC_DEFINE(socklen_t,int, [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
-AC_CHECK_FUNC(gethostent, , AC_CHECK_LIB(nsl, gethostent))
-AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
-AC_CHECK_FUNCS(getaddrinfo)
+AC_CHECK_FUNC(gethostent,,AC_CHECK_LIB(nsl, gethostent))
+AC_CHECK_FUNC(setsockopt,,AC_CHECK_LIB(socket, setsockopt))
+AC_CHECK_FUNC(getaddrinfo,,[AC_MSG_ERROR([cannot find getaddrinfo])])
 
 dnl -- imap dependencies --
 
 
 dnl -- imap dependencies --
 
diff --git a/init.h b/init.h
index d468e64..db43a4d 100644 (file)
--- a/init.h
+++ b/init.h
@@ -84,9 +84,6 @@ struct option_t {
 # ifndef HAVE_LIBIDN
 #  define HAVE_LIBIDN
 # endif
 # ifndef HAVE_LIBIDN
 #  define HAVE_LIBIDN
 # endif
-# ifndef HAVE_GETADDRINFO
-#  define HAVE_GETADDRINFO
-# endif
 #endif
 
 struct option_t MuttVars[] = {
 #endif
 
 struct option_t MuttVars[] = {
@@ -2673,7 +2670,6 @@ struct option_t MuttVars[] = {
    ** This variable only affects decoding.
    */
 #endif /* HAVE_LIBIDN */
    ** This variable only affects decoding.
    */
 #endif /* HAVE_LIBIDN */
-#ifdef HAVE_GETADDRINFO
   {"use_ipv6", DT_BOOL, R_NONE, OPTUSEIPV6, "yes" },
   /*
    ** .pp
   {"use_ipv6", DT_BOOL, R_NONE, OPTUSEIPV6, "yes" },
   /*
    ** .pp
@@ -2681,7 +2677,6 @@ struct option_t MuttVars[] = {
    ** contact.  If this option is \fIunset\fP, Madmutt will restrict itself to IPv4 addresses.
    ** Normally, the default should work.
    */
    ** contact.  If this option is \fIunset\fP, Madmutt will restrict itself to IPv4 addresses.
    ** Normally, the default should work.
    */
-#endif /* HAVE_GETADDRINFO */
   {"agent_string", DT_BOOL, R_NONE, OPTXMAILER, "yes" },
   /*
    ** .pp
   {"agent_string", DT_BOOL, R_NONE, OPTXMAILER, "yes" },
   /*
    ** .pp
index 65ba008..3528db4 100644 (file)
@@ -255,10 +255,8 @@ static int socket_connect (int fd, struct sockaddr *sa)
 
   if (sa->sa_family == AF_INET)
     sa_size = sizeof (struct sockaddr_in);
 
   if (sa->sa_family == AF_INET)
     sa_size = sizeof (struct sockaddr_in);
-#ifdef HAVE_GETADDRINFO
   else if (sa->sa_family == AF_INET6)
     sa_size = sizeof (struct sockaddr_in6);
   else if (sa->sa_family == AF_INET6)
     sa_size = sizeof (struct sockaddr_in6);
-#endif
   else {
     return -1;
   }
   else {
     return -1;
   }
@@ -331,9 +329,6 @@ int raw_socket_open (CONNECTION * conn)
 
   char *host_idna = NULL;
 
 
   char *host_idna = NULL;
 
-#ifdef HAVE_GETADDRINFO
-/* --- IPv4/6 --- */
-
   /* "65536\0" */
   char port[6];
   struct addrinfo hints;
   /* "65536\0" */
   char port[6];
   struct addrinfo hints;
@@ -363,7 +358,6 @@ int raw_socket_open (CONNECTION * conn)
 
   mutt_message (_("Looking up %s..."), conn->account.host);
 
 
   mutt_message (_("Looking up %s..."), conn->account.host);
 
-
   rc = getaddrinfo (host_idna, port, &hints, &res);
 
 # ifdef HAVE_LIBIDN
   rc = getaddrinfo (host_idna, port, &hints, &res);
 
 # ifdef HAVE_LIBIDN
@@ -394,60 +388,6 @@ int raw_socket_open (CONNECTION * conn)
 
   freeaddrinfo (res);
 
 
   freeaddrinfo (res);
 
-#else
-  /* --- IPv4 only --- */
-
-  struct sockaddr_in sin;
-  struct hostent *he;
-  int i;
-
-  p_clear(&sin, 1);
-  sin.sin_port = htons (conn->account.port);
-  sin.sin_family = AF_INET;
-
-# ifdef HAVE_LIBIDN
-  if (idna_to_ascii_lz (conn->account.host, &host_idna, 1) != IDNA_SUCCESS) {
-    mutt_error (_("Bad IDN \"%s\"."), conn->account.host);
-    return -1;
-  }
-# else
-  host_idna = conn->account.host;
-# endif
-
-  mutt_message (_("Looking up %s..."), conn->account.host);
-
-  if ((he = gethostbyname (host_idna)) == NULL) {
-# ifdef HAVE_LIBIDN
-    p_delete(&host_idna);
-# endif
-    mutt_error (_("Could not find the host \"%s\""), conn->account.host);
-
-    return -1;
-  }
-
-# ifdef HAVE_LIBIDN
-  p_delete(&host_idna);
-# endif
-
-  mutt_message (_("Connecting to %s..."), conn->account.host);
-
-  rc = -1;
-  for (i = 0; he->h_addr_list[i] != NULL; i++) {
-    memcpy (&sin.sin_addr, he->h_addr_list[i], he->h_length);
-    fd = socket (PF_INET, SOCK_STREAM, IPPROTO_IP);
-
-    if (fd >= 0) {
-      if ((rc = socket_connect (fd, (struct sockaddr *) &sin)) == 0) {
-        fcntl (fd, F_SETFD, FD_CLOEXEC);
-        conn->fd = fd;
-        break;
-      }
-      else
-        close (fd);
-    }
-  }
-
-#endif
   if (rc) {
     mutt_error (_("Could not connect to %s (%s)."), conn->account.host,
                 (rc > 0) ? strerror (rc) : _("unknown error"));
   if (rc) {
     mutt_error (_("Could not connect to %s (%s)."), conn->account.host,
                 (rc > 0) ? strerror (rc) : _("unknown error"));
diff --git a/main.c b/main.c
index 28d7f4e..d21f9ee 100644 (file)
--- a/main.c
+++ b/main.c
@@ -302,11 +302,6 @@ static void show_version (void)
          "+HAVE_GETSID  "
 #else
          "-HAVE_GETSID  "
          "+HAVE_GETSID  "
 #else
          "-HAVE_GETSID  "
-#endif
-#ifdef HAVE_GETADDRINFO
-         "+HAVE_GETADDRINFO  "
-#else
-         "-HAVE_GETADDRINFO  "
 #endif
     );
 
 #endif
     );
 
diff --git a/mutt.h b/mutt.h
index 5fddc6c..d4ec656 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -308,9 +308,7 @@ enum {
 #ifdef HAVE_LIBIDN
   OPTUSEIDN,
 #endif
 #ifdef HAVE_LIBIDN
   OPTUSEIDN,
 #endif
-#ifdef HAVE_GETADDRINFO
   OPTUSEIPV6,
   OPTUSEIPV6,
-#endif
   OPTWAITKEY,
   OPTWEED,
   OPTWRAP,
   OPTWAITKEY,
   OPTWEED,
   OPTWRAP,