diff options
Diffstat (limited to 'networking/udhcp/common.h')
-rw-r--r-- | networking/udhcp/common.h | 14 |
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]; }; |