From: Alan T. DeKok Date: Tue, 8 May 2018 20:19:57 +0000 (-0400) Subject: remove FR_DHCP_OFFSET, it's no longer necessary X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9cec17c2febfd286bfdc63c4e7204ae3c6eb22e6;p=thirdparty%2Ffreeradius-server.git remove FR_DHCP_OFFSET, it's no longer necessary and move proto_dhcpv4.c out of the way in preparation for new code --- diff --git a/src/modules/proto_dhcpv4/dhcpclient.c b/src/modules/proto_dhcpv4/dhcpclient.c index 719425c60bd..5f228f61714 100644 --- a/src/modules/proto_dhcpv4/dhcpclient.c +++ b/src/modules/proto_dhcpv4/dhcpclient.c @@ -150,7 +150,7 @@ static RADIUS_PACKET *request_init(char const *filename) * 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 @@ -516,7 +516,7 @@ static void dhcp_packet_debug(RADIUS_PACKET *packet, bool received) #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, diff --git a/src/modules/proto_dhcpv4/proto_dhcpv4.c b/src/modules/proto_dhcpv4/old.c similarity index 99% rename from src/modules/proto_dhcpv4/proto_dhcpv4.c rename to src/modules/proto_dhcpv4/old.c index 4c085021154..54817d98d8c 100644 --- a/src/modules/proto_dhcpv4/proto_dhcpv4.c +++ b/src/modules/proto_dhcpv4/old.c @@ -394,10 +394,6 @@ static rlm_rcode_t dhcp_process(REQUEST *request) 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: @@ -982,14 +978,14 @@ static void dhcp_packet_debug(REQUEST *request, RADIUS_PACKET *packet, bool rece * * 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, diff --git a/src/protocols/dhcpv4/base.c b/src/protocols/dhcpv4/base.c index da6ce82eadc..93bcfb06106 100644 --- a/src/protocols/dhcpv4/base.c +++ b/src/protocols/dhcpv4/base.c @@ -215,7 +215,7 @@ RADIUS_PACKET *fr_dhcpv4_packet_ok(uint8_t const *data, ssize_t data_len, fr_ipa } packet->data_len = data_len; - packet->code = code[2] | FR_DHCP_OFFSET; + packet->code = code[2]; packet->id = pkt_id; packet->dst_port = dst_port; diff --git a/src/protocols/dhcpv4/dhcpv4.h b/src/protocols/dhcpv4/dhcpv4.h index 06867ad940f..e1af7ed6c59 100644 --- a/src/protocols/dhcpv4/dhcpv4.h +++ b/src/protocols/dhcpv4/dhcpv4.h @@ -40,28 +40,23 @@ extern "C" { #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 { diff --git a/src/protocols/dhcpv4/packet.c b/src/protocols/dhcpv4/packet.c index 534447e6cba..eb29587412f 100644 --- a/src/protocols/dhcpv4/packet.c +++ b/src/protocols/dhcpv4/packet.c @@ -503,7 +503,7 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet) p[0] = 0x35; /* DHCP-Message-Type */ p[1] = 1; - p[2] = packet->code - FR_DHCP_OFFSET; + p[2] = packet->code; p += 3; /* diff --git a/src/protocols/dhcpv4/raw.c b/src/protocols/dhcpv4/raw.c index 5c8e45ecb51..c8a4fd4043d 100644 --- a/src/protocols/dhcpv4/raw.c +++ b/src/protocols/dhcpv4/raw.c @@ -309,7 +309,7 @@ RADIUS_PACKET *fr_dhcv4_raw_packet_recv(int sockfd, struct sockaddr_ll *link_lay return NULL; } - packet->code = code[2] | FR_DHCP_OFFSET; + packet->code = code[2]; /* * Create a unique vector from the MAC address and the