summaryrefslogtreecommitdiff
path: root/mail/libetpan
diff options
context:
space:
mode:
authorsmb <smb>2008-01-25 18:26:31 +0000
committersmb <smb>2008-01-25 18:26:31 +0000
commit3e722a749172e6af01e4cff900f6f287f97eff41 (patch)
treee63c012fe4acc70040f3392e5df192e5b3b65eb2 /mail/libetpan
parent9815a9391a1f1cb56db8c1121e872fb5b7de96ab (diff)
downloadpkgsrc-3e722a749172e6af01e4cff900f6f287f97eff41.tar.gz
FIx a bug where the remote IMAP server has a AAAA record but there's
no IPv6 connectivity from the client to that site. Prior to this fix, the fallback to IPv4 wasn't working properly. (The fix should be in the next release of libetpan.)
Diffstat (limited to 'mail/libetpan')
-rw-r--r--mail/libetpan/Makefile4
-rw-r--r--mail/libetpan/distinfo3
-rw-r--r--mail/libetpan/patches/patch-af66
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: