X-Original-To: alpine-aports@mail.alpinelinux.org Delivered-To: alpine-aports@mail.alpinelinux.org Received: from mail.alpinelinux.org (dallas-a1.alpinelinux.org [127.0.0.1]) by mail.alpinelinux.org (Postfix) with ESMTP id 487FDDC10E7 for ; Fri, 13 Nov 2015 14:09:18 +0000 (UTC) Received: from anomx-ro.ovpn.to (anomx.ovpn.to [93.115.92.252]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id D2E45DC0092 for ; Fri, 13 Nov 2015 14:09:17 +0000 (UTC) Received: from anomx.ovpn.to (unknown [IPv6:fd48:8bea:68a5:aaaa::aa01]) by anomx-ro.ovpn.to (Postfix) with ESMTPS id 092511F849 for ; Fri, 13 Nov 2015 15:09:15 +0100 (CET) Received: from localhost (anomx.ovpn.to [127.0.0.1]) by anomx.ovpn.to (Postfix) with ESMTP id E2A52C037A for ; Fri, 13 Nov 2015 15:09:14 +0100 (CET) Received: from anomx.ovpn.to ([127.0.0.1]) by localhost (anomx.ovpn.to [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Qo0dg-MHmS-w for ; Fri, 13 Nov 2015 15:09:13 +0100 (CET) From: sillysausage To: alpine-aports@lists.alpinelinux.org Cc: sillysausage Subject: [alpine-aports] [PATCH] dhcpcd - Describe dhcp6 error code if no text present Date: Sat, 14 Nov 2015 00:39:18 +1030 Message-Id: <1447423758-7701-1-git-send-email-sillysausage@privatedemail.net> X-Virus-Scanned: ClamAV using ClamSMTP X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Patch from upstream, will be included in dhcpcd-6.9.4 when released http://roy.marples.name/projects/dhcpcd/vpatch?from=d8f8999d1efb4376c29d7d2c13b0de1c6da52226&to=90e878f68804cb98e03e90b33233e607e6541358 --- main/dhcpcd/APKBUILD | 15 ++++-- main/dhcpcd/describe_dhcp6_error_code.patch | 77 +++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 main/dhcpcd/describe_dhcp6_error_code.patch diff --git a/main/dhcpcd/APKBUILD b/main/dhcpcd/APKBUILD index 27e4406..a0cb0e0 100644 --- a/main/dhcpcd/APKBUILD +++ b/main/dhcpcd/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Natanael Copa pkgname=dhcpcd pkgver=6.9.3 -pkgrel=1 +pkgrel=2 pkgdesc="RFC2131 compliant DHCP client" url="http://roy.marples.name/projects/dhcpcd/" arch="all" @@ -15,7 +15,8 @@ install="" subpackages="$pkgname-doc" source="http://roy.marples.name/downloads/dhcpcd/$pkgname-$pkgver.tar.xz busybox-logger.patch - dhcpcd.initd" + dhcpcd.initd + describe_dhcp6_error_code.patch" prepare() { cd "$srcdir/$pkgname-$pkgver" @@ -24,6 +25,7 @@ prepare() { *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; esac done + } build() { @@ -47,10 +49,13 @@ package() { md5sums="8357d023c4687d27bc6ea7964236b2a6 dhcpcd-6.9.3.tar.xz 231d2b03e7e93fa6cc7406889e9945e3 busybox-logger.patch -5cd5809d11b77b30f21df8418729d70b dhcpcd.initd" +5cd5809d11b77b30f21df8418729d70b dhcpcd.initd +a748946c8d88610e696ba2706cffca6d describe_dhcp6_error_code.patch" sha256sums="6089471ed695fa62ac8351466b96b4b6365fd14ec455a120a6524663808eae53 dhcpcd-6.9.3.tar.xz aec6c5d7a41551ca7cd3849a53621692ee0a1a6d259892beaf448eb1f2d4af01 busybox-logger.patch -6bb9b8b0075e45e63e898ed043f3c5951dc3e95c1fa62d22cc6e0616c792ecd1 dhcpcd.initd" +6bb9b8b0075e45e63e898ed043f3c5951dc3e95c1fa62d22cc6e0616c792ecd1 dhcpcd.initd +53b089720c73f1565e04e36be2360f91036664b0d0a4ddb702219b4df3e88bb2 describe_dhcp6_error_code.patch" sha512sums="0a895f17fa093ac758224bfddad003ee25f81fe96331b1952264c3623018e00048603c9a3c5ba385a93441e987b1ce4cd02ec1f42e1caca2e646a6ac4781c3d9 dhcpcd-6.9.3.tar.xz 83dc7bfd36b6b416c931775bb35a0d2951ed04c421195c45bfed80a11a7adbed7c80ade1c1246847c2fb1bf15a7b6e83100f16605ee84f750440d7bc9f7f5ef3 busybox-logger.patch -6d3220155f2d9ed3e3a00afd378eeb70d435e19804201f8bb35498f1f7f3dfdaeaa2f4a01a18f5e96b457d9c173bc6a206b3e67ebf6d95da7e7b350dcd153fde dhcpcd.initd" +6d3220155f2d9ed3e3a00afd378eeb70d435e19804201f8bb35498f1f7f3dfdaeaa2f4a01a18f5e96b457d9c173bc6a206b3e67ebf6d95da7e7b350dcd153fde dhcpcd.initd +9f108e9df6a673e618abe55d70769a43a59d97c172d4721527ced6bd549cf61995e559037f8ec05657cdf76c2dfe62ff4d050d46783cdf770a4e91831f53e50a describe_dhcp6_error_code.patch" diff --git a/main/dhcpcd/describe_dhcp6_error_code.patch b/main/dhcpcd/describe_dhcp6_error_code.patch new file mode 100644 index 0000000..cd72206 --- /dev/null +++ b/main/dhcpcd/describe_dhcp6_error_code.patch @@ -0,0 +1,77 @@ +--- ./dhcp6.c ++++ ./dhcp6.c +@@ -111,11 +111,12 @@ + "Success", + "Unspecified Failure", + "No Addresses Available", + "No Binding", + "Not On Link", +- "Use Multicast" ++ "Use Multicast", ++ "No Prefix Available" + }; + + struct dhcp6_ia_addr { + struct in6_addr addr; + uint32_t pltime; +@@ -1660,11 +1661,12 @@ + dhcp6_checkstatusok(const struct interface *ifp, + const struct dhcp6_message *m, const uint8_t *p, size_t len) + { + const struct dhcp6_option *o; + uint16_t code; +- char *status; ++ char buf[32], *sbuf; ++ const char *status; + + if (p) + o = dhcp6_findoption(D6_OPTION_STATUS_CODE, p, len); + else + o = dhcp6_getmoption(D6_OPTION_STATUS_CODE, m, len); +@@ -1686,28 +1688,29 @@ + return 1; + + len -= sizeof(code); + + if (len == 0) { +- if (code < sizeof(dhcp6_statuses) / sizeof(char *)) { +- p = (const uint8_t *)dhcp6_statuses[code]; +- len = strlen((const char *)p); +- } else +- p = NULL; +- } else +- p += sizeof(code); ++ sbuf = NULL; ++ if (code < sizeof(dhcp6_statuses) / sizeof(char *)) ++ status = dhcp6_statuses[code]; ++ else { ++ snprintf(buf, sizeof(buf), "Unknown Status (%d)", code); ++ status = buf; ++ } ++ } else { ++ if ((sbuf = malloc(len + 1)) == NULL) { ++ logger(ifp->ctx, LOG_ERR, "%s: %m", __func__); ++ return -1; ++ } ++ memcpy(sbuf, p + sizeof(code), len); ++ sbuf[len] = '\0'; ++ status = sbuf; ++ } + +- status = malloc(len + 1); +- if (status == NULL) { +- logger(ifp->ctx, LOG_ERR, "%s: %m", __func__); +- return -1; +- } +- if (p) +- memcpy(status, p, len); +- status[len] = '\0'; + logger(ifp->ctx, LOG_ERR, "%s: DHCPv6 REPLY: %s", ifp->name, status); +- free(status); ++ free(sbuf); + return -1; + } + + const struct ipv6_addr * + dhcp6_iffindaddr(const struct interface *ifp, const struct in6_addr *addr, + -- 2.4.1 --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---