[arch-commits] Commit in libuv/trunk (PKGBUILD inet_pton6.patch)

Massimiliano Torromeo mtorromeo at nymeria.archlinux.org
Wed May 28 16:23:36 UTC 2014


    Date: Wednesday, May 28, 2014 @ 18:23:36
  Author: mtorromeo
Revision: 112016

upgpkg: libuv 0.11.25-1

Updated to 0.11.25 with patch for failing tests

Added:
  libuv/trunk/inet_pton6.patch
Modified:
  libuv/trunk/PKGBUILD

------------------+
 PKGBUILD         |   13 +++-
 inet_pton6.patch |  146 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 156 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2014-05-28 14:42:46 UTC (rev 112015)
+++ PKGBUILD	2014-05-28 16:23:36 UTC (rev 112016)
@@ -2,7 +2,7 @@
 # Maintainer: Massimiliano Torromeo <massimiliano.torromeo at gmail.com>
 
 pkgname=libuv
-pkgver=0.11.24
+pkgver=0.11.25
 pkgrel=1
 pkgdesc="A new platform layer for Node.JS"
 arch=('i686' 'x86_64')
@@ -9,8 +9,14 @@
 url="https://github.com/joyent/libuv"
 license=('custom')
 depends=('glibc')
-source=("https://github.com/joyent/libuv/archive/v$pkgver.tar.gz")
+source=("https://github.com/joyent/libuv/archive/v$pkgver.tar.gz"
+        "inet_pton6.patch::https://github.com/joyent/libuv/compare/6d56e6e132717df13c7ed76e6cc3ee53105759be...4fac9427e4a652cdebf241803ce7443dd59a4451.patch")
 
+prepare() {
+	cd "$srcdir/$pkgname-$pkgver"
+	patch -p1 -i "$srcdir/inet_pton6.patch"
+}
+
 build() {
 	cd "$srcdir/$pkgname-$pkgver"
 	./autogen.sh
@@ -38,4 +44,5 @@
 		"$pkgdir/usr/share/doc/$pkgname/ChangeLog"
 }
 
-sha256sums=('8e23517d37a8c820fc68fa250b7398f520c76e40250b8da2a2eca230eb7f3ab8')
+sha256sums=('b95a3e5eca9554998b7423ee786205e52731e82e2d24cbbd4f65af763de542fb'
+            '655c98f10daf171ce736cea594b710a3f8d72f4da02613588eb9856e4bb36561')

Added: inet_pton6.patch
===================================================================
--- inet_pton6.patch	                        (rev 0)
+++ inet_pton6.patch	2014-05-28 16:23:36 UTC (rev 112016)
@@ -0,0 +1,146 @@
+From e7b3c3fb6b56298174e5eaf2ac3bea2b721cf0f5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= <saghul at gmail.com>
+Date: Fri, 23 May 2014 16:36:57 +0200
+Subject: [PATCH 1/2] unix, windows: define UV__INET/6_ADDRSTRLEN constants
+
+---
+ src/inet.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/inet.c b/src/inet.c
+index 9220de6..0eb9438 100644
+--- a/src/inet.c
++++ b/src/inet.c
+@@ -27,6 +27,9 @@
+ #include "uv.h"
+ #include "uv-common.h"
+ 
++#define UV__INET_ADDRSTRLEN         16
++#define UV__INET6_ADDRSTRLEN        46
++
+ 
+ static int inet_ntop4(const unsigned char *src, char *dst, size_t size);
+ static int inet_ntop6(const unsigned char *src, char *dst, size_t size);
+@@ -49,7 +52,7 @@ int uv_inet_ntop(int af, const void* src, char* dst, size_t size) {
+ 
+ static int inet_ntop4(const unsigned char *src, char *dst, size_t size) {
+   static const char fmt[] = "%u.%u.%u.%u";
+-  char tmp[sizeof "255.255.255.255"];
++  char tmp[UV__INET_ADDRSTRLEN];
+   int l;
+ 
+ #ifndef _WIN32
+@@ -74,7 +77,7 @@ static int inet_ntop6(const unsigned char *src, char *dst, size_t size) {
+    * Keep this in mind if you think this function should have been coded
+    * to use pointer overlays.  All the world's not a VAX.
+    */
+-  char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp;
++  char tmp[UV__INET6_ADDRSTRLEN], *tp;
+   struct { int base, len; } best, cur;
+   unsigned int words[sizeof(struct in6_addr) / sizeof(uint16_t)];
+   int i;
+-- 
+1.9.3
+
+
+From 4fac9427e4a652cdebf241803ce7443dd59a4451 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= <saghul at gmail.com>
+Date: Fri, 23 May 2014 09:25:23 +0200
+Subject: [PATCH 2/2] unix, windows: fix parsing scoped IPv6 addresses
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Saúl Ibarra Corretgé <saghul at gmail.com>
+---
+ src/inet.c           | 36 ++++++++++++++++++++----------------
+ test/test-ip6-addr.c |  2 ++
+ 2 files changed, 22 insertions(+), 16 deletions(-)
+
+diff --git a/src/inet.c b/src/inet.c
+index 0eb9438..c948b2e 100644
+--- a/src/inet.c
++++ b/src/inet.c
+@@ -159,11 +159,27 @@ static int inet_ntop6(const unsigned char *src, char *dst, size_t size) {
+ 
+ 
+ int uv_inet_pton(int af, const char* src, void* dst) {
++  if (src == NULL || dst == NULL)
++    return UV_EINVAL;
++
+   switch (af) {
+   case AF_INET:
+     return (inet_pton4(src, dst));
+-  case AF_INET6:
+-    return (inet_pton6(src, dst));
++  case AF_INET6: {
++    int len;
++    char tmp[UV__INET6_ADDRSTRLEN], *s, *p;
++    s = (char*) src;
++    p = strchr(src, '%');
++    if (p != NULL) {
++      s = tmp;
++      len = p - src;
++      if (len > UV__INET6_ADDRSTRLEN-1)
++        return UV_EINVAL;
++      memcpy(s, src, len);
++      s[len] = '\0';
++    }
++    return inet_pton6(s, dst);
++  }
+   default:
+     return UV_EAFNOSUPPORT;
+   }
+@@ -228,7 +244,7 @@ static int inet_pton6(const char *src, unsigned char *dst) {
+   curtok = src;
+   seen_xdigits = 0;
+   val = 0;
+-  while ((ch = *src++) != '\0' && ch != '%') {
++  while ((ch = *src++) != '\0') {
+     const char *pch;
+ 
+     if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL)
+@@ -259,19 +275,7 @@ static int inet_pton6(const char *src, unsigned char *dst) {
+       continue;
+     }
+     if (ch == '.' && ((tp + sizeof(struct in_addr)) <= endp)) {
+-      int err;
+-
+-      /* Scope id present, parse ipv4 addr without it */
+-      pch = strchr(curtok, '%');
+-      if (pch != NULL) {
+-        char tmp[sizeof "255.255.255.255"];
+-
+-        memcpy(tmp, curtok, pch - curtok);
+-        curtok = tmp;
+-        src = pch;
+-      }
+-
+-      err = inet_pton4(curtok, tp);
++      int err = inet_pton4(curtok, tp);
+       if (err == 0) {
+         tp += sizeof(struct in_addr);
+         seen_xdigits = 0;
+diff --git a/test/test-ip6-addr.c b/test/test-ip6-addr.c
+index 624b93b..cf8491f 100644
+--- a/test/test-ip6-addr.c
++++ b/test/test-ip6-addr.c
+@@ -103,6 +103,7 @@ TEST_IMPL(ip6_addr_link_local) {
+     X("fe80::2acf:daff:fedd:342a")                                            \
+     X("fe80:0:0:0:2acf:daff:fedd:342a")                                       \
+     X("fe80:0:0:0:2acf:daff:1.2.3.4")                                         \
++    X("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")                        \
+ 
+ #define BAD_ADDR_LIST(X)                                                      \
+     X(":::1")                                                                 \
+@@ -110,6 +111,7 @@ TEST_IMPL(ip6_addr_link_local) {
+     X("fe80:0:0:0:2acf:daff:fedd:342a:5678")                                  \
+     X("fe80:0:0:0:2acf:daff:abcd:1.2.3.4")                                    \
+     X("fe80:0:0:2acf:daff:1.2.3.4.5")                                         \
++    X("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255.255")                    \
+ 
+ #define TEST_GOOD(ADDR)                                                       \
+     ASSERT(0 == uv_inet_pton(AF_INET6, ADDR, &addr));                         \
+-- 
+1.9.3
+




More information about the arch-commits mailing list