]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
include new header file, and use names instead of numbers
authorAlan T. DeKok <aland@freeradius.org>
Sun, 1 Apr 2018 13:01:42 +0000 (09:01 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Sun, 1 Apr 2018 13:01:42 +0000 (09:01 -0400)
src/protocols/dhcpv4/packet.c

index 2b6c5219956109e285fe1b7f51bb744123ede4bb..97174510eae26e87d05f7e8e88acbc8d05ab66b2 100644 (file)
@@ -30,6 +30,7 @@
 #include <freeradius-devel/pair.h>
 #include <freeradius-devel/types.h>
 #include <freeradius-devel/dhcpv4/dhcpv4.h>
+#include <freeradius-devel/dhcpv4.h>
 
 /** Retrieve a DHCP option from a raw packet buffer
  *
@@ -221,7 +222,7 @@ int fr_dhcpv4_packet_decode(RADIUS_PACKET *packet)
                 *      If option Overload is present in the 'options' field, then fields 'file' and/or 'sname'
                 *      are used to hold more options. They are partitioned and must be interpreted in sequence.
                 */
-               vp = fr_pair_find_by_num(head, DHCP_MAGIC_VENDOR, 52, TAG_ANY);
+               vp = fr_pair_find_by_num(head, DHCP_MAGIC_VENDOR, FR_DHCP_OVERLOAD, TAG_ANY);
                if (vp) {
                        if ((vp->vp_uint8 & 1) == 1) {
                                /*
@@ -238,7 +239,7 @@ int fr_dhcpv4_packet_decode(RADIUS_PACKET *packet)
                                        }
                                        p += len;
                                }
-                               fr_pair_delete_by_num(&head, DHCP_MAGIC_VENDOR, 269, TAG_ANY);
+                               fr_pair_delete_by_num(&head, DHCP_MAGIC_VENDOR, FR_DHCP_BOOT_FILENAME, TAG_ANY);
                        }
                        if ((vp->vp_uint8 & 2) == 2) {
                                /*
@@ -254,7 +255,7 @@ int fr_dhcpv4_packet_decode(RADIUS_PACKET *packet)
                                        }
                                        p += len;
                                }
-                               fr_pair_delete_by_num(&head, DHCP_MAGIC_VENDOR, 268, TAG_ANY);
+                               fr_pair_delete_by_num(&head, DHCP_MAGIC_VENDOR, FR_DHCP_SERVER_HOST_NAME, TAG_ANY);
                        }
                }
        }
@@ -272,14 +273,14 @@ int fr_dhcpv4_packet_decode(RADIUS_PACKET *packet)
                /*
                 *      DHCP Opcode is request
                 */
-               vp = fr_pair_find_by_num(head, DHCP_MAGIC_VENDOR, 256, TAG_ANY);
+               vp = fr_pair_find_by_num(head, DHCP_MAGIC_VENDOR, FR_DHCP_OPCODE, TAG_ANY);
                if (vp && vp->vp_uint8 == 1) {
                        /*
                         *      Vendor is "MSFT 98"
                         */
-                       vp = fr_pair_find_by_num(head, DHCP_MAGIC_VENDOR, 60, TAG_ANY);
+                       vp = fr_pair_find_by_num(head, DHCP_MAGIC_VENDOR, FR_DHCP_VENDOR_CLASS_IDENTIFIER, TAG_ANY);
                        if (vp && (strcmp(vp->vp_strvalue, "MSFT 98") == 0)) {
-                               vp = fr_pair_find_by_num(head, DHCP_MAGIC_VENDOR, 262, TAG_ANY);
+                               vp = fr_pair_find_by_num(head, DHCP_MAGIC_VENDOR, FR_DHCP_FLAGS, TAG_ANY);
 
                                /*
                                 *      Reply should be broadcast.
@@ -300,8 +301,8 @@ int fr_dhcpv4_packet_decode(RADIUS_PACKET *packet)
         *      Client can request a LARGER size, but not a smaller
         *      one.  They also cannot request a size larger than MTU.
         */
-       maxms = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 57, TAG_ANY);
-       mtu = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 26, TAG_ANY);
+       maxms = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_DHCP_MAXIMUM_MSG_SIZE, TAG_ANY);
+       mtu = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_INTERFACE_MTU_SIZE, TAG_ANY);
 
        if (mtu && (mtu->vp_uint16 < DEFAULT_PACKET_SIZE)) {
                fr_strerror_printf("Client says MTU is smaller than minimum permitted by the specification");
@@ -341,7 +342,7 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
        if (packet->code == 0) packet->code = FR_DHCPV4_NAK;
 
        /* store xid */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 260, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_TRANSACTION_ID, TAG_ANY))) {
                packet->id = vp->vp_uint32;
        } else {
                packet->id = fr_rand();
@@ -362,7 +363,7 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
         */
 
        /* DHCP-DHCP-Maximum-Msg-Size */
-       vp = fr_pair_find_by_num(packet->vps, 57, DHCP_MAGIC_VENDOR, TAG_ANY);
+       vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_DHCP_MAXIMUM_MSG_SIZE, TAG_ANY);
        if (vp && (vp->vp_uint32 > mms)) {
                mms = vp->vp_uint32;
 
@@ -370,7 +371,7 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
        }
 #endif
 
-       vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 256, TAG_ANY);
+       vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_OPCODE, TAG_ANY);
        if (vp) {
                *p++ = vp->vp_uint32 & 0xff;
        } else {
@@ -378,19 +379,19 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
        }
 
        /* DHCP-Hardware-Type */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 257, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_HARDWARE_TYPE, TAG_ANY))) {
                *p = vp->vp_uint8;
        }
        p += 1;
 
        /* DHCP-Hardware-Address-len */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 258, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_HARDWARE_ADDRESS_LENGTH, TAG_ANY))) {
                *p = vp->vp_uint8;
        }
        p += 1;
 
        /* DHCP-Hop-Count */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 259, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_HOP_COUNT, TAG_ANY))) {
                *p = vp->vp_uint8;
        }
        p++;
@@ -401,27 +402,27 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
        p += 4;
 
        /* DHCP-Number-of-Seconds */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 261, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_NUMBER_OF_SECONDS, TAG_ANY))) {
                svalue = htons(vp->vp_uint16);
                memcpy(p, &svalue, 2);
        }
        p += 2;
 
        /* DHCP-Flags */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 262, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_FLAGS, TAG_ANY))) {
                svalue = htons(vp->vp_uint16);
                memcpy(p, &svalue, 2);
        }
        p += 2;
 
        /* DHCP-Client-IP-Address */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 263, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_CLIENT_IP_ADDRESS, TAG_ANY))) {
                memcpy(p, &vp->vp_ipv4addr, 4);
        }
        p += 4;
 
        /* DHCP-Your-IP-address */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 264, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_YOUR_IP_ADDRESS, TAG_ANY))) {
                lvalue = vp->vp_ipv4addr;
        } else {
                lvalue = htonl(INADDR_ANY);
@@ -430,7 +431,7 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
        p += 4;
 
        /* DHCP-Server-IP-Address */
-       vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 265, TAG_ANY);
+       vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_SERVER_IP_ADDRESS, TAG_ANY);
        if (vp) {
                lvalue = vp->vp_ipv4addr;
        } else {
@@ -442,7 +443,7 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
        /*
         *      DHCP-Gateway-IP-Address
         */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 266, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_GATEWAY_IP_ADDRESS, TAG_ANY))) {
                lvalue = vp->vp_ipv4addr;
        } else {
                lvalue = htonl(INADDR_ANY);
@@ -451,7 +452,7 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
        p += 4;
 
        /* DHCP-Client-Hardware-Address */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 267, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_CLIENT_HARDWARE_ADDRESS, TAG_ANY))) {
                if (vp->vp_type == FR_TYPE_ETHERNET) {
                        /*
                         *      Ensure that we mark the packet as being Ethernet.
@@ -465,7 +466,7 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
        p += DHCP_CHADDR_LEN;
 
        /* DHCP-Server-Host-Name */
-       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 268, TAG_ANY))) {
+       if ((vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_SERVER_HOST_NAME, TAG_ANY))) {
                if (vp->vp_length > DHCP_SNAME_LEN) {
                        memcpy(p, vp->vp_strvalue, DHCP_SNAME_LEN);
                } else {
@@ -485,7 +486,7 @@ int fr_dhcpv4_packet_encode(RADIUS_PACKET *packet)
         */
 
        /* DHCP-Boot-Filename */
-       vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, 269, TAG_ANY);
+       vp = fr_pair_find_by_num(packet->vps, DHCP_MAGIC_VENDOR, FR_DHCP_BOOT_FILENAME, TAG_ANY);
        if (vp) {
                if (vp->vp_length > DHCP_FILE_LEN) {
                        memcpy(p, vp->vp_strvalue, DHCP_FILE_LEN);