dhcpcd: update to 6.11.1
This commit is contained in:
parent
81ed825e1a
commit
f23c0d737e
2 changed files with 3 additions and 80 deletions
|
@ -1,77 +0,0 @@
|
||||||
Index: dhcp.c
|
|
||||||
==================================================================
|
|
||||||
--- dhcp.c
|
|
||||||
+++ dhcp.c
|
|
||||||
@@ -1082,13 +1082,16 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
*p++ = DHO_END;
|
|
||||||
len = (size_t)(p - (uint8_t *)bootp);
|
|
||||||
|
|
||||||
- /* Pad out to the BOOTP minimum message length.
|
|
||||||
- * Some DHCP servers incorrectly require this. */
|
|
||||||
- while (len < BOOTP_MESSAGE_LENTH_MIN) {
|
|
||||||
+ /* Pad out to the BOOTP message length.
|
|
||||||
+ * Even if we send a DHCP packet with a variable length vendor area,
|
|
||||||
+ * some servers / relay agents don't like packets smaller than
|
|
||||||
+ * a BOOTP message which is fine because that's stipulated
|
|
||||||
+ * in RFC1542 section 2.1. */
|
|
||||||
+ while (len < sizeof(*bootp)) {
|
|
||||||
*p++ = DHO_PAD;
|
|
||||||
len++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ifo->auth.options & DHCPCD_AUTH_SEND && auth_len != 0)
|
|
||||||
@@ -3134,18 +3137,30 @@
|
|
||||||
{
|
|
||||||
logger(ifp->ctx, LOG_WARNING,
|
|
||||||
"%s: server %s is not destination",
|
|
||||||
ifp->name, inet_ntoa(from));
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+ /*
|
|
||||||
+ * DHCP has a variable option area rather than a fixed
|
|
||||||
+ * vendor area.
|
|
||||||
+ * Because DHCP uses the BOOTP protocol it should
|
|
||||||
+ * still send BOOTP sized packets to be RFC compliant.
|
|
||||||
+ * However some servers send a truncated vendor area.
|
|
||||||
+ * dhcpcd can work fine without the vendor area being sent.
|
|
||||||
+ */
|
|
||||||
bytes = get_udp_data(&bootp, buf);
|
|
||||||
- if (bytes < sizeof(struct bootp)) {
|
|
||||||
+ if (bytes < offsetof(struct bootp, vend)) {
|
|
||||||
logger(ifp->ctx, LOG_ERR,
|
|
||||||
"%s: truncated packet (%zu) from %s",
|
|
||||||
ifp->name, bytes, inet_ntoa(from));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
+ /* But to make our IS_DHCP macro easy, ensure the vendor
|
|
||||||
+ * area has at least 4 octets. */
|
|
||||||
+ while (bytes < offsetof(struct bootp, vend) + 4)
|
|
||||||
+ bootp[bytes++] = '\0';
|
|
||||||
+
|
|
||||||
dhcp_handledhcp(ifp, (struct bootp *)bootp, bytes, &from);
|
|
||||||
if (state->raw_fd == -1)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: dhcp.h
|
|
||||||
==================================================================
|
|
||||||
--- dhcp.h
|
|
||||||
+++ dhcp.h
|
|
||||||
@@ -129,13 +129,10 @@
|
|
||||||
FQDN_NONE = 0x18,
|
|
||||||
FQDN_PTR = 0x20,
|
|
||||||
FQDN_BOTH = 0x31
|
|
||||||
};
|
|
||||||
|
|
||||||
-/* Some crappy DHCP servers require the BOOTP minimum length */
|
|
||||||
-#define BOOTP_MESSAGE_LENTH_MIN 300
|
|
||||||
-
|
|
||||||
/* Don't import common.h as that defines __unused which causes problems
|
|
||||||
* on some Linux systems which define it as part of a structure */
|
|
||||||
#if __GNUC__ > 2 || defined(__INTEL_COMPILER)
|
|
||||||
# ifndef __packed
|
|
||||||
# define __packed __attribute__((__packed__))
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'dhcpcd'
|
# Template file for 'dhcpcd'
|
||||||
pkgname=dhcpcd
|
pkgname=dhcpcd
|
||||||
version=6.11.0
|
version=6.11.1
|
||||||
revision=2
|
revision=1
|
||||||
lib32disabled=yes
|
lib32disabled=yes
|
||||||
build_style=configure
|
build_style=configure
|
||||||
configure_args="--prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --rundir=/run"
|
configure_args="--prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --rundir=/run"
|
||||||
|
@ -13,7 +13,7 @@ maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
||||||
license="2-clause-BSD"
|
license="2-clause-BSD"
|
||||||
homepage="http://roy.marples.name/projects/dhcpcd"
|
homepage="http://roy.marples.name/projects/dhcpcd"
|
||||||
distfiles="http://roy.marples.name/downloads/dhcpcd/dhcpcd-${version}.tar.xz"
|
distfiles="http://roy.marples.name/downloads/dhcpcd/dhcpcd-${version}.tar.xz"
|
||||||
checksum=31c2cd327657f11c427fe5044f74c5b942e70450fa43ceabf4b25f3fd4999959
|
checksum=5c823d607ed1d7513d16ec51c54e21657f1324899e0ba333a497682d88a8c6ee
|
||||||
|
|
||||||
pre_install() {
|
pre_install() {
|
||||||
# make wpa_supplicant log to syslog rather than stdout
|
# make wpa_supplicant log to syslog rather than stdout
|
||||||
|
|
Loading…
Reference in a new issue