From: Pierre Habouzit Date: Sat, 12 May 2007 11:24:34 +0000 (+0200) Subject: getaddrinfo shall exist on any modern platform madmutt will run on. X-Git-Url: http://git.madism.org/?a=commitdiff_plain;h=7110db82d9748096f6f2dfd5034e489622bd3887;p=apps%2Fmadmutt.git getaddrinfo shall exist on any modern platform madmutt will run on. Signed-off-by: Pierre Habouzit --- diff --git a/configure.ac b/configure.ac index 2c54741..02747bc 100644 --- a/configure.ac +++ b/configure.ac @@ -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 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 -- diff --git a/init.h b/init.h index d468e64..db43a4d 100644 --- a/init.h +++ b/init.h @@ -84,9 +84,6 @@ struct option_t { # ifndef HAVE_LIBIDN # define HAVE_LIBIDN # endif -# ifndef HAVE_GETADDRINFO -# define HAVE_GETADDRINFO -# endif #endif struct option_t MuttVars[] = { @@ -2673,7 +2670,6 @@ struct option_t MuttVars[] = { ** This variable only affects decoding. */ #endif /* HAVE_LIBIDN */ -#ifdef HAVE_GETADDRINFO {"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. */ -#endif /* HAVE_GETADDRINFO */ {"agent_string", DT_BOOL, R_NONE, OPTXMAILER, "yes" }, /* ** .pp diff --git a/lib-sys/mutt_socket.c b/lib-sys/mutt_socket.c index 65ba008..3528db4 100644 --- a/lib-sys/mutt_socket.c +++ b/lib-sys/mutt_socket.c @@ -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); -#ifdef HAVE_GETADDRINFO else if (sa->sa_family == AF_INET6) sa_size = sizeof (struct sockaddr_in6); -#endif else { return -1; } @@ -331,9 +329,6 @@ int raw_socket_open (CONNECTION * conn) char *host_idna = NULL; -#ifdef HAVE_GETADDRINFO -/* --- IPv4/6 --- */ - /* "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); - rc = getaddrinfo (host_idna, port, &hints, &res); # ifdef HAVE_LIBIDN @@ -394,60 +388,6 @@ int raw_socket_open (CONNECTION * conn) 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")); diff --git a/main.c b/main.c index 28d7f4e..d21f9ee 100644 --- a/main.c +++ b/main.c @@ -302,11 +302,6 @@ static void show_version (void) "+HAVE_GETSID " #else "-HAVE_GETSID " -#endif -#ifdef HAVE_GETADDRINFO - "+HAVE_GETADDRINFO " -#else - "-HAVE_GETADDRINFO " #endif ); diff --git a/mutt.h b/mutt.h index 5fddc6c..d4ec656 100644 --- a/mutt.h +++ b/mutt.h @@ -308,9 +308,7 @@ enum { #ifdef HAVE_LIBIDN OPTUSEIDN, #endif -#ifdef HAVE_GETADDRINFO OPTUSEIPV6, -#endif OPTWAITKEY, OPTWEED, OPTWRAP,