fr_dict_attr_t const *da_b = vp_b->da;
fr_dict_attr_t const *tlv_stack_a[FR_DICT_MAX_TLV_STACK + 1];
fr_dict_attr_t const *tlv_stack_b[FR_DICT_MAX_TLV_STACK + 1];
+ int i;
/*
* Fast path (assuming attributes
fr_proto_tlv_stack_build(tlv_stack_a, da_a);
fr_proto_tlv_stack_build(tlv_stack_b, da_b);
- for (da_a = tlv_stack_a[0], da_b = tlv_stack_b[0]; da_a && da_b; da_a++, da_b++) {
+ for (i = 0; (da_a = tlv_stack_a[i]) && (da_b = tlv_stack_b[i]); i++) {
if (da_a->attr > da_b->attr) return +1;
if (da_a->attr < da_b->attr) return -1;
}
/*
* Relay-Agent is last
*/
- if (((my_a->da->parent->type != PW_TYPE_TLV) && (my_a->da->attr == PW_DHCP_OPTION_82)) &&
- ((my_b->da->parent->type == PW_TYPE_TLV) || (my_b->da->attr != PW_DHCP_OPTION_82))) return +1;
- if (((my_a->da->parent->type == PW_TYPE_TLV) || (my_a->da->attr != PW_DHCP_OPTION_82)) &&
- ((my_b->da->parent->type != PW_TYPE_TLV) && (my_b->da->attr == PW_DHCP_OPTION_82))) return -1;
+ if ((my_a->da->parent->attr == PW_DHCP_OPTION_82) &&
+ (my_b->da->parent->attr != PW_DHCP_OPTION_82)) return +1;
+ if ((my_a->da->parent->attr != PW_DHCP_OPTION_82) &&
+ (my_b->da->parent->attr == PW_DHCP_OPTION_82)) return -1;
- return fr_pair_cmp_by_parent_num_tag(my_a->da, my_b->da);
+ return fr_pair_cmp_by_parent_num_tag(my_a, my_b);
}
/** Write DHCP option value into buffer