diff options
-rw-r--r-- | abs/core/curl/0001-connect-Try-all-addresses-in-first-connection-attemp.patch | 47 | ||||
-rw-r--r-- | abs/core/curl/PKGBUILD | 43 |
2 files changed, 72 insertions, 18 deletions
diff --git a/abs/core/curl/0001-connect-Try-all-addresses-in-first-connection-attemp.patch b/abs/core/curl/0001-connect-Try-all-addresses-in-first-connection-attemp.patch new file mode 100644 index 0000000..f3428c7 --- /dev/null +++ b/abs/core/curl/0001-connect-Try-all-addresses-in-first-connection-attemp.patch @@ -0,0 +1,47 @@ +From 4e1ece2e44f432c2614f2090155c0aaf2226ea80 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B6rn=20Stenberg?= <bjorn@haxx.se> +Date: Sat, 28 Dec 2013 13:42:57 +0100 +Subject: [PATCH] connect: Try all addresses in first connection attempt +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes a bug when all addresses in the first family fail immediately, due +to "Network unreachable" for example, curl would hang and never try the +next address family. + +Iterate through all address families when to trying establish the first +connection attempt. + +Bug: http://curl.haxx.se/bug/view.cgi?id=1315 +Reported-by: Michal Górny and Anthony G. Basile +--- + lib/connect.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/lib/connect.c b/lib/connect.c +index 4b6ee00..588ac28 100644 +--- a/lib/connect.c ++++ b/lib/connect.c +@@ -1104,12 +1104,12 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ + conn->tempaddr[0]->ai_next == NULL ? timeout_ms : timeout_ms / 2; + + /* start connecting to first IP */ +- res = singleipconnect(conn, conn->tempaddr[0], &(conn->tempsock[0])); +- while(res != CURLE_OK && +- conn->tempaddr[0] && +- conn->tempaddr[0]->ai_next && +- conn->tempsock[0] == CURL_SOCKET_BAD) +- res = trynextip(conn, FIRSTSOCKET, 0); ++ while(conn->tempaddr[0]) { ++ res = singleipconnect(conn, conn->tempaddr[0], &(conn->tempsock[0])); ++ if(res == CURLE_OK) ++ break; ++ conn->tempaddr[0] = conn->tempaddr[0]->ai_next; ++ } + + if(conn->tempsock[0] == CURL_SOCKET_BAD) + return res; +-- +1.8.5.2 + diff --git a/abs/core/curl/PKGBUILD b/abs/core/curl/PKGBUILD index f318660..d2f7f52 100644 --- a/abs/core/curl/PKGBUILD +++ b/abs/core/curl/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 160000 2012-05-27 15:59:46Z dreisner $ +# $Id: PKGBUILD 203041 2014-01-02 14:43:46Z dreisner $ # Maintainer: Dave Reisner <dreisner@archlinux.org> # Contributor: Angel Velasquez <angvp@archlinux.org> # Contributor: Eric Belanger <eric@archlinux.org> @@ -6,28 +6,24 @@ # Contributor: Daniel J Griffiths <ghost1227@archlinux.us> pkgname=curl -pkgver=7.26.0 -pkgrel=1 -pkgdesc="An URL retrival utility and library" +pkgver=7.34.0 +pkgrel=2 +pkgdesc="An URL retrieval utility and library" arch=('i686' 'x86_64') url="http://curl.haxx.se" license=('MIT') depends=('ca-certificates' 'libssh2' 'openssl' 'zlib') -options=('!libtool') +provides=('libcurl.so') +options=('strip' 'debug') source=("http://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc} + 0001-connect-Try-all-addresses-in-first-connection-attemp.patch curlbuild.h) -md5sums=('3fa4d5236f2a36ca5c3af6715e837691' - '61b594830d5acba3c99e4af0ba39a14e' - '751bd433ede935c8fae727377625a8ae') -ptrsize=$(cpp <<<'__SIZEOF_POINTER__' | sed '/^#/d') -case $ptrsize in - 8) _curlbuild=curlbuild-64.h ;; - 4) _curlbuild=curlbuild-32.h ;; - *) error "unknown pointer size for architecture: %s bytes" "$ptrsize" - exit 1 - ;; -esac +prepare() { + cd "$pkgname-$pkgver" + + patch -Np1 <"$srcdir"/0001-connect-Try-all-addresses-in-first-connection-attemp.patch +} build() { cd "$pkgname-$pkgver" @@ -35,7 +31,6 @@ build() { ./configure \ --prefix=/usr \ --mandir=/usr/share/man \ - --disable-dependency-tracking \ --disable-ldap \ --disable-ldaps \ --enable-ipv6 \ @@ -54,11 +49,23 @@ package() { make DESTDIR="$pkgdir" install + local ptrsize=$(cpp <<<'__SIZEOF_POINTER__' | sed '/^#/d') + case $ptrsize in + 8) _curlbuild=curlbuild-64.h ;; + 4) _curlbuild=curlbuild-32.h ;; + *) error "unknown pointer size for architecture: %s bytes" "$ptrsize" + exit 1 + ;; + esac + # license install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" # devel - install -Dm644 docs/libcurl/libcurl.m4 "$pkgdir/usr/share/aclocal/libcurl.m4" mv "$pkgdir/usr/include/curl/curlbuild.h" "$pkgdir/usr/include/curl/$_curlbuild" install -m644 "$srcdir/curlbuild.h" "$pkgdir/usr/include/curl/curlbuild.h" } +md5sums=('d5b7edccbd1793e3549842e01331da20' + 'SKIP' + 'ee755b0e886207fc1e8154e426c46ca7' + '751bd433ede935c8fae727377625a8ae') |