diff options
-rw-r--r-- | mail/libetpan/Makefile | 4 | ||||
-rw-r--r-- | mail/libetpan/distinfo | 3 | ||||
-rw-r--r-- | mail/libetpan/patches/patch-af | 66 |
3 files changed, 70 insertions, 3 deletions
diff --git a/mail/libetpan/Makefile b/mail/libetpan/Makefile index 5084883cf5b..5affc2875d4 100644 --- a/mail/libetpan/Makefile +++ b/mail/libetpan/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.16 2008/01/18 05:08:26 tnn Exp $ +# $NetBSD: Makefile,v 1.17 2008/01/25 18:26:31 smb Exp $ # DISTNAME= libetpan-0.52 -PKGREVISION= 2 +PKGREVISION= 3 CATEGORIES= mail MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=libetpan/} diff --git a/mail/libetpan/distinfo b/mail/libetpan/distinfo index 411e6610cb6..50993edbe52 100644 --- a/mail/libetpan/distinfo +++ b/mail/libetpan/distinfo @@ -1,6 +1,7 @@ -$NetBSD: distinfo,v 1.8 2007/10/27 13:55:27 wiz Exp $ +$NetBSD: distinfo,v 1.9 2008/01/25 18:26:32 smb Exp $ SHA1 (libetpan-0.52.tar.gz) = e2fdf76b471e57a153bad4c4def7fde512385021 RMD160 (libetpan-0.52.tar.gz) = 3e826d57987780b204c9074a9c225e960f214d66 Size (libetpan-0.52.tar.gz) = 1611405 bytes SHA1 (patch-aa) = e783adf544c9a63df584815ee4b033249cecf0ff +SHA1 (patch-af) = f7f6977a0bdd709eaba1efed216eee6a3a0f542b diff --git a/mail/libetpan/patches/patch-af b/mail/libetpan/patches/patch-af new file mode 100644 index 00000000000..2eaec72d53f --- /dev/null +++ b/mail/libetpan/patches/patch-af @@ -0,0 +1,66 @@ +$NetBSD: patch-af,v 1.1 2008/01/25 18:26:32 smb Exp $ + +--- src/data-types/connect.c.orig 2007-08-06 17:32:30.000000000 -0400 ++++ src/data-types/connect.c 2008-01-25 13:15:13.000000000 -0500 +@@ -88,6 +88,21 @@ + return 0; + } + ++#ifdef HAVE_IPV6 ++static int verify_sock_errors(int s) ++{ ++ uint len; ++ int val; ++ len = sizeof(val); ++ if (getsockopt(s, SOL_SOCKET, SO_ERROR, &val, &len) < 0) { ++ return -1; ++ } else if (val != 0) { ++ return -1; ++ } ++ return 0; ++} ++#endif ++ + static int wait_connect(int s, int r) + { + fd_set fds; +@@ -206,6 +221,7 @@ + + for (ai = res; ai != NULL; ai = ai->ai_next) { + s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); ++ + if (s == -1) + continue; + +@@ -239,9 +255,23 @@ + + r = connect(s, ai->ai_addr, ai->ai_addrlen); + r = wait_connect(s, r); ++ ++ if (r != -1) { ++ r = verify_sock_errors(s); ++ } ++ + if (r == -1) { ++ if (ai->ai_next) { ++#ifdef WIN32 ++ closesocket(s); ++#else ++ close(s); ++#endif ++ continue; ++ } else { + goto close_socket; + } ++ } + /* if we're here, we're good */ + break; + } +@@ -252,7 +282,6 @@ + if (ai == NULL) + goto err; + #endif +- + return s; + + close_socket: |