aboutsummaryrefslogtreecommitdiffstats
path: root/main/dhcpcd/fix-3f10c9b871.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/dhcpcd/fix-3f10c9b871.patch')
-rw-r--r--main/dhcpcd/fix-3f10c9b871.patch79
1 files changed, 0 insertions, 79 deletions
diff --git a/main/dhcpcd/fix-3f10c9b871.patch b/main/dhcpcd/fix-3f10c9b871.patch
deleted file mode 100644
index 903d843a2e..0000000000
--- a/main/dhcpcd/fix-3f10c9b871.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-http://roy.marples.name/projects/dhcpcd/tktview?name=3f10c9b871
-
-Index: dhcp.c
-==================================================================
---- a/dhcp.c
-+++ b/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
-==================================================================
---- a/dhcp.h
-+++ b/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__))
-