From: Alan T. DeKok Date: Mon, 21 Nov 2016 14:06:32 +0000 (-0500) Subject: Check both attributes for message type and option 82 X-Git-Tag: release_3_0_13~103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fb478d494ca572ab3d693f5da332be72c91d601;p=thirdparty%2Ffreeradius-server.git Check both attributes for message type and option 82 --- diff --git a/src/modules/proto_dhcp/dhcp.c b/src/modules/proto_dhcp/dhcp.c index ea8369be545..98d87509d65 100644 --- a/src/modules/proto_dhcp/dhcp.c +++ b/src/modules/proto_dhcp/dhcp.c @@ -1,3 +1,4 @@ + /* * dhcp.c Functions to send/receive dhcp packets. * @@ -1155,11 +1156,13 @@ int8_t fr_dhcp_attr_cmp(void const *a, void const *b) * DHCP-Message-Type is first, for simplicity. */ if ((my_a->da->attr == PW_DHCP_MESSAGE_TYPE) && (my_b->da->attr != PW_DHCP_MESSAGE_TYPE)) return -1; + if ((my_a->da->attr != PW_DHCP_MESSAGE_TYPE) && (my_b->da->attr == PW_DHCP_MESSAGE_TYPE)) return +1; /* * Relay-Agent is last */ - if ((my_a->da->attr == PW_DHCP_OPTION_82) && (my_b->da->attr != PW_DHCP_OPTION_82)) return 1; + if ((my_a->da->attr == PW_DHCP_OPTION_82) && (my_b->da->attr != PW_DHCP_OPTION_82)) return +1; + if ((my_a->da->attr != PW_DHCP_OPTION_82) && (my_b->da->attr == PW_DHCP_OPTION_82)) return -1; if (my_a->da->attr < my_b->da->attr) return -1; if (my_a->da->attr > my_b->da->attr) return 1;