summaryrefslogtreecommitdiff
path: root/networking/udhcp/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/common.h')
-rw-r--r--networking/udhcp/common.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h
index c9dd0bb..75b787a 100644
--- a/networking/udhcp/common.h
+++ b/networking/udhcp/common.h
@@ -57,10 +57,20 @@ struct ip_udp_dhcp_packet {
struct dhcp_packet data;
} PACKED;
+struct udp_dhcp_packet {
+ struct udphdr udp;
+ struct dhcp_packet data;
+} PACKED;
+
+enum {
+ IP_UPD_DHCP_SIZE = sizeof(struct ip_udp_dhcp_packet) - CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS,
+ UPD_DHCP_SIZE = sizeof(struct udp_dhcp_packet) - CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS,
+ DHCP_SIZE = sizeof(struct dhcp_packet) - CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS,
+};
+
/* Let's see whether compiler understood us right */
struct BUG_bad_sizeof_struct_ip_udp_dhcp_packet {
- char BUG_bad_sizeof_struct_ip_udp_dhcp_packet
- [(sizeof(struct ip_udp_dhcp_packet) != 576 + CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS) ? -1 : 1];
+ char c[IP_UPD_DHCP_SIZE == 576 ? 1 : -1];
};