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 --
# ifndef HAVE_LIBIDN
# define HAVE_LIBIDN
# endif
-# ifndef HAVE_GETADDRINFO
-# define HAVE_GETADDRINFO
-# endif
#endif
struct option_t MuttVars[] = {
** This variable only affects decoding.
*/
#endif /* HAVE_LIBIDN */
-#ifdef HAVE_GETADDRINFO
{"use_ipv6", DT_BOOL, R_NONE, OPTUSEIPV6, "yes" },
/*
** .pp
** 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
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;
}
char *host_idna = NULL;
-#ifdef HAVE_GETADDRINFO
-/* --- IPv4/6 --- */
-
/* "65536\0" */
char port[6];
struct addrinfo hints;
mutt_message (_("Looking up %s..."), conn->account.host);
-
rc = getaddrinfo (host_idna, port, &hints, &res);
# ifdef HAVE_LIBIDN
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"));