Date: Saturday, December 28, 2013 @ 18:21:18 Author: dreisner Revision: 202855
archrelease: copy trunk to testing-i686, testing-x86_64 Added: curl/repos/testing-i686/ curl/repos/testing-i686/0001-connect-Try-all-addresses-in-first-connection-attemp.patch (from rev 202854, curl/trunk/0001-connect-Try-all-addresses-in-first-connection-attemp.patch) curl/repos/testing-i686/PKGBUILD (from rev 202854, curl/trunk/PKGBUILD) curl/repos/testing-i686/curlbuild.h (from rev 202854, curl/trunk/curlbuild.h) curl/repos/testing-x86_64/ curl/repos/testing-x86_64/0001-connect-Try-all-addresses-in-first-connection-attemp.patch (from rev 202854, curl/trunk/0001-connect-Try-all-addresses-in-first-connection-attemp.patch) curl/repos/testing-x86_64/PKGBUILD (from rev 202854, curl/trunk/PKGBUILD) curl/repos/testing-x86_64/curlbuild.h (from rev 202854, curl/trunk/curlbuild.h) --------------------------------------------------------------------------------+ testing-i686/0001-connect-Try-all-addresses-in-first-connection-attemp.patch | 47 ++++++ testing-i686/PKGBUILD | 71 ++++++++++ testing-i686/curlbuild.h | 9 + testing-x86_64/0001-connect-Try-all-addresses-in-first-connection-attemp.patch | 47 ++++++ testing-x86_64/PKGBUILD | 71 ++++++++++ testing-x86_64/curlbuild.h | 9 + 6 files changed, 254 insertions(+) Copied: curl/repos/testing-i686/0001-connect-Try-all-addresses-in-first-connection-attemp.patch (from rev 202854, curl/trunk/0001-connect-Try-all-addresses-in-first-connection-attemp.patch) =================================================================== --- testing-i686/0001-connect-Try-all-addresses-in-first-connection-attemp.patch (rev 0) +++ testing-i686/0001-connect-Try-all-addresses-in-first-connection-attemp.patch 2013-12-28 17:21:18 UTC (rev 202855) @@ -0,0 +1,47 @@ +From 4e1ece2e44f432c2614f2090155c0aaf2226ea80 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B6rn=20Stenberg?= <bj...@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 + Copied: curl/repos/testing-i686/PKGBUILD (from rev 202854, curl/trunk/PKGBUILD) =================================================================== --- testing-i686/PKGBUILD (rev 0) +++ testing-i686/PKGBUILD 2013-12-28 17:21:18 UTC (rev 202855) @@ -0,0 +1,71 @@ +# $Id$ +# Maintainer: Dave Reisner <dreis...@archlinux.org> +# Contributor: Angel Velasquez <an...@archlinux.org> +# Contributor: Eric Belanger <e...@archlinux.org> +# Contributor: Lucien Immink <l.imm...@student.fnt.hvu.nl> +# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> + +pkgname=curl +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') +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=('d5b7edccbd1793e3549842e01331da20' + 'SKIP' + 'ee755b0e886207fc1e8154e426c46ca7' + '751bd433ede935c8fae727377625a8ae') + +prepare() { + cd "$pkgname-$pkgver" + + patch -Np1 <"$srcdir"/0001-connect-Try-all-addresses-in-first-connection-attemp.patch +} + +build() { + cd "$pkgname-$pkgver" + + ./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --disable-ldap \ + --disable-ldaps \ + --enable-ipv6 \ + --enable-manual \ + --enable-versioned-symbols \ + --enable-threaded-resolver \ + --without-libidn \ + --with-random=/dev/urandom \ + --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt + + make +} + +package() { + cd "$pkgname-$pkgver" + + 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 + mv "$pkgdir/usr/include/curl/curlbuild.h" "$pkgdir/usr/include/curl/$_curlbuild" + install -m644 "$srcdir/curlbuild.h" "$pkgdir/usr/include/curl/curlbuild.h" +} Copied: curl/repos/testing-i686/curlbuild.h (from rev 202854, curl/trunk/curlbuild.h) =================================================================== --- testing-i686/curlbuild.h (rev 0) +++ testing-i686/curlbuild.h 2013-12-28 17:21:18 UTC (rev 202855) @@ -0,0 +1,9 @@ +#include <bits/wordsize.h> + +#if __WORDSIZE == 32 +#include "curlbuild-32.h" +#elif __WORDSIZE == 64 +#include "curlbuild-64.h" +#else +#error "Unknown word size" +#endif Copied: curl/repos/testing-x86_64/0001-connect-Try-all-addresses-in-first-connection-attemp.patch (from rev 202854, curl/trunk/0001-connect-Try-all-addresses-in-first-connection-attemp.patch) =================================================================== --- testing-x86_64/0001-connect-Try-all-addresses-in-first-connection-attemp.patch (rev 0) +++ testing-x86_64/0001-connect-Try-all-addresses-in-first-connection-attemp.patch 2013-12-28 17:21:18 UTC (rev 202855) @@ -0,0 +1,47 @@ +From 4e1ece2e44f432c2614f2090155c0aaf2226ea80 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B6rn=20Stenberg?= <bj...@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 + Copied: curl/repos/testing-x86_64/PKGBUILD (from rev 202854, curl/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2013-12-28 17:21:18 UTC (rev 202855) @@ -0,0 +1,71 @@ +# $Id$ +# Maintainer: Dave Reisner <dreis...@archlinux.org> +# Contributor: Angel Velasquez <an...@archlinux.org> +# Contributor: Eric Belanger <e...@archlinux.org> +# Contributor: Lucien Immink <l.imm...@student.fnt.hvu.nl> +# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> + +pkgname=curl +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') +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=('d5b7edccbd1793e3549842e01331da20' + 'SKIP' + 'ee755b0e886207fc1e8154e426c46ca7' + '751bd433ede935c8fae727377625a8ae') + +prepare() { + cd "$pkgname-$pkgver" + + patch -Np1 <"$srcdir"/0001-connect-Try-all-addresses-in-first-connection-attemp.patch +} + +build() { + cd "$pkgname-$pkgver" + + ./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --disable-ldap \ + --disable-ldaps \ + --enable-ipv6 \ + --enable-manual \ + --enable-versioned-symbols \ + --enable-threaded-resolver \ + --without-libidn \ + --with-random=/dev/urandom \ + --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt + + make +} + +package() { + cd "$pkgname-$pkgver" + + 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 + mv "$pkgdir/usr/include/curl/curlbuild.h" "$pkgdir/usr/include/curl/$_curlbuild" + install -m644 "$srcdir/curlbuild.h" "$pkgdir/usr/include/curl/curlbuild.h" +} Copied: curl/repos/testing-x86_64/curlbuild.h (from rev 202854, curl/trunk/curlbuild.h) =================================================================== --- testing-x86_64/curlbuild.h (rev 0) +++ testing-x86_64/curlbuild.h 2013-12-28 17:21:18 UTC (rev 202855) @@ -0,0 +1,9 @@ +#include <bits/wordsize.h> + +#if __WORDSIZE == 32 +#include "curlbuild-32.h" +#elif __WORDSIZE == 64 +#include "curlbuild-64.h" +#else +#error "Unknown word size" +#endif