* Allow to set packet type using DHCP-Message-Type
*/
if ((fr_dict_vendor_num_by_da(vp->da) == DHCP_MAGIC_VENDOR) && vp->da->attr == FR_DHCP_MESSAGE_TYPE) {
- request->code = vp->vp_uint32 + FR_DHCP_OFFSET;
+ request->code = vp->vp_uint32;
} else if (fr_dict_attr_is_top_level(vp->da)) switch (vp->da->attr) {
/*
* Allow it to set the packet type in
#endif
"length %zu\n",
received ? "Received" : "Sending",
- dhcp_message_types[packet->code - FR_DHCP_OFFSET],
+ dhcp_message_types[packet->code],
packet->id,
packet->src_ipaddr.af == AF_INET6 ? "[" : "",
inet_ntop(packet->src_ipaddr.af,
vp = fr_pair_find_by_num(request->reply->vps, DHCP_MAGIC_VENDOR, 53, TAG_ANY); /* DHCP-Message-Type */
if (vp) {
request->reply->code = vp->vp_uint8;
- if ((request->reply->code != 0) &&
- (request->reply->code < FR_DHCP_OFFSET)) {
- request->reply->code += FR_DHCP_OFFSET;
- }
}
else switch (rcode) {
case RLM_MODULE_OK:
*
* This really belongs in a utility library
*/
- if ((packet->code > FR_DHCP_OFFSET) && (packet->code < FR_DHCP_MAX)) {
+ if ((packet->code > 0) && (packet->code < FR_DHCP_MAX)) {
RDEBUG("%s %s Id %08x from %s%s%s:%i to %s%s%s:%i "
#if defined(WITH_UDPFROMTO) && defined(WITH_IFINDEX_NAME_RESOLUTION)
"%s%s%s"
#endif
"length %zu",
received ? "Received" : "Sent",
- dhcp_message_types[packet->code - FR_DHCP_OFFSET],
+ dhcp_message_types[packet->code],
packet->id,
packet->src_ipaddr.af == AF_INET6 ? "[" : "",
inet_ntop(packet->src_ipaddr.af,
#define DHCP_VEND_LEN (308)
#define DHCP_OPTION_MAGIC_NUMBER (0x63825363)
-/*
- * This is a horrible hack.
- */
-#define FR_DHCP_OFFSET (1024)
-
typedef enum {
- FR_DHCP_DISCOVER = (FR_DHCP_OFFSET + 1),
- FR_DHCP_OFFER = (FR_DHCP_OFFSET + 2),
- FR_DHCP_REQUEST = (FR_DHCP_OFFSET+ 3),
- FR_DHCP_DECLINE = (FR_DHCP_OFFSET + 4),
- FR_DHCP_ACK = (FR_DHCP_OFFSET + 5),
- FR_DHCP_NAK = (FR_DHCP_OFFSET + 6),
- FR_DHCP_RELEASE = (FR_DHCP_OFFSET + 7),
- FR_DHCP_INFORM = (FR_DHCP_OFFSET + 8),
- FR_DHCP_FORCE_RENEW = (FR_DHCP_OFFSET + 9),
- FR_DHCP_LEASE_QUERY = (FR_DHCP_OFFSET + 10),
- FR_DHCP_LEASE_UNASSIGNED = (FR_DHCP_OFFSET + 11),
- FR_DHCP_LEASE_UNKNOWN = (FR_DHCP_OFFSET + 12),
- FR_DHCP_LEASE_ACTIVE = (FR_DHCP_OFFSET + 13),
- FR_DHCP_BULK_LEASE_QUERY = (FR_DHCP_OFFSET + 14),
- FR_DHCP_LEASE_QUERY_DONE = (FR_DHCP_OFFSET + 15),
- FR_DHCP_MAX = (FR_DHCP_OFFSET + 16)
+ FR_DHCP_DISCOVER = (1),
+ FR_DHCP_OFFER = (2),
+ FR_DHCP_REQUEST = (3),
+ FR_DHCP_DECLINE = (4),
+ FR_DHCP_ACK = (5),
+ FR_DHCP_NAK = (6),
+ FR_DHCP_RELEASE = (7),
+ FR_DHCP_INFORM = (8),
+ FR_DHCP_FORCE_RENEW = (9),
+ FR_DHCP_LEASE_QUERY = (10),
+ FR_DHCP_LEASE_UNASSIGNED = (11),
+ FR_DHCP_LEASE_UNKNOWN = (12),
+ FR_DHCP_LEASE_ACTIVE = (13),
+ FR_DHCP_BULK_LEASE_QUERY = (14),
+ FR_DHCP_LEASE_QUERY_DONE = (15),
+ FR_DHCP_MAX = (16)
} fr_dhcpv4_codes_t;
typedef struct dhcp_packet_t {