From: Alan T. DeKok Date: Sat, 3 Oct 2020 01:23:02 +0000 (-0400) Subject: remove FR_TYPE_EXTENDED X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cd2700a41a882c980919744cc48a70ad887ea923;p=thirdparty%2Ffreeradius-server.git remove FR_TYPE_EXTENDED it's now just a TLV with magic flags, and only for RADIUS --- diff --git a/scripts/autoload_defs.sh b/scripts/autoload_defs.sh index da2d355ccd6..1a221f00d5e 100755 --- a/scripts/autoload_defs.sh +++ b/scripts/autoload_defs.sh @@ -161,10 +161,6 @@ for i in ${RESOLVED[*]}; do TYPE="FR_TYPE_DATE" ;; - 'extended') - TYPE="FR_TYPE_EXTENDED" - ;; - 'tlv') TYPE="FR_TYPE_TLV" ;; diff --git a/src/bin/radsnmp.c b/src/bin/radsnmp.c index cd3706af12b..8de8f8467ae 100644 --- a/src/bin/radsnmp.c +++ b/src/bin/radsnmp.c @@ -111,7 +111,7 @@ static fr_dict_attr_t const *attr_vendor_specific; extern fr_dict_attr_autoload_t radsnmp_dict_attr[]; fr_dict_attr_autoload_t radsnmp_dict_attr[] = { - { .out = &attr_extended_attribute_1, .name = "Extended-Attribute-1", .type = FR_TYPE_EXTENDED, .dict = &dict_radius }, + { .out = &attr_extended_attribute_1, .name = "Extended-Attribute-1", .type = FR_TYPE_TLV, .dict = &dict_radius }, { .out = &attr_freeradius_snmp_failure, .name = "FreeRADIUS-SNMP-Failure", .type = FR_TYPE_UINT8, .dict = &dict_radius }, { .out = &attr_freeradius_snmp_operation, .name = "FreeRADIUS-SNMP-Operation", .type = FR_TYPE_UINT8, .dict = &dict_radius }, { .out = &attr_freeradius_snmp_type, .name = "FreeRADIUS-SNMP-Type", .type = FR_TYPE_UINT8, .dict = &dict_radius }, diff --git a/src/lib/server/command.c b/src/lib/server/command.c index 09bec4f99df..1ed83c5f7db 100644 --- a/src/lib/server/command.c +++ b/src/lib/server/command.c @@ -85,7 +85,7 @@ static int split(char **input, char **output, bool syntax_string); #define FR_TYPE_VARARGS FR_TYPE_TLV #define FR_TYPE_OPTIONAL FR_TYPE_STRUCT -#define FR_TYPE_ALTERNATE FR_TYPE_EXTENDED +#define FR_TYPE_ALTERNATE FR_TYPE_VSA #define FR_TYPE_ALTERNATE_CHOICE FR_TYPE_GROUP /** Find a command diff --git a/src/lib/util/dict_print.c b/src/lib/util/dict_print.c index 72abda53887..d4666777e98 100644 --- a/src/lib/util/dict_print.c +++ b/src/lib/util/dict_print.c @@ -171,10 +171,6 @@ void fr_dict_print(fr_dict_t const *dict, fr_dict_attr_t const *da, int depth) name = "VSA"; break; - case FR_TYPE_EXTENDED: - name = "EXTENDED"; - break; - case FR_TYPE_TLV: name = "TLV"; break; diff --git a/src/lib/util/dict_unknown.c b/src/lib/util/dict_unknown.c index fad9568b6a3..e3653cde6f4 100644 --- a/src/lib/util/dict_unknown.c +++ b/src/lib/util/dict_unknown.c @@ -503,7 +503,6 @@ ssize_t fr_dict_unknown_afrom_oid_str(TALLOC_CTX *ctx, fr_dict_attr_t **out, break; case FR_TYPE_TLV: - case FR_TYPE_EXTENDED: is_root: if (fr_dict_unknown_attr_afrom_num(n, &our_da, our_parent, num) < 0) { goto error; diff --git a/src/lib/util/dict_util.c b/src/lib/util/dict_util.c index 9635796470b..4c089e50e46 100644 --- a/src/lib/util/dict_util.c +++ b/src/lib/util/dict_util.c @@ -87,8 +87,6 @@ size_t const dict_attr_sizes[FR_TYPE_MAX + 1][2] = { [FR_TYPE_TLV] = {2, ~0}, [FR_TYPE_STRUCT] = {1, ~0}, - [FR_TYPE_EXTENDED] = {1, ~0}, - [FR_TYPE_VSA] = {4, ~0}, [FR_TYPE_MAX] = {~0, 0} //!< Ensure array covers all types. @@ -121,7 +119,6 @@ bool const fr_dict_attr_allowed_chars[UINT8_MAX + 1] = { bool const fr_dict_non_data_types[FR_TYPE_MAX + 1] = { [FR_TYPE_TLV] = true, [FR_TYPE_STRUCT] = true, - [FR_TYPE_EXTENDED] = true, [FR_TYPE_VSA] = true, [FR_TYPE_VENDOR] = true }; @@ -633,7 +630,6 @@ int dict_attr_child_add(fr_dict_attr_t *parent, fr_dict_attr_t *child) case FR_TYPE_VENDOR: case FR_TYPE_VSA: case FR_TYPE_STRUCT: - case FR_TYPE_EXTENDED: break; case FR_TYPE_UINT8: diff --git a/src/lib/util/dict_validate.c b/src/lib/util/dict_validate.c index 51aed49f5d6..7d2389a97f0 100644 --- a/src/lib/util/dict_validate.c +++ b/src/lib/util/dict_validate.c @@ -536,7 +536,6 @@ bool dict_attr_flags_valid(fr_dict_t *dict, fr_dict_attr_t const *parent, case FR_TYPE_TLV: case FR_TYPE_VSA: case FR_TYPE_VENDOR: - case FR_TYPE_EXTENDED: break; /* diff --git a/src/lib/util/types.h b/src/lib/util/types.h index 9a7e5837e44..111c3e2d1b8 100644 --- a/src/lib/util/types.h +++ b/src/lib/util/types.h @@ -74,8 +74,6 @@ typedef enum { FR_TYPE_TLV, //!< Contains nested attributes. FR_TYPE_STRUCT, //!< like TLV, but without T or L, and fixed-width children - FR_TYPE_EXTENDED, //!< Extended attribute space attribute. - FR_TYPE_VSA, //!< Vendor-Specific, for RADIUS attribute 26. FR_TYPE_VENDOR, //!< Attribute that represents a vendor in the attribute tree. @@ -160,8 +158,7 @@ typedef enum { * functions that need to deal with all types representing values */ #define FR_TYPE_STRUCTURAL_EXCEPT_VSA \ - FR_TYPE_EXTENDED: \ - case FR_TYPE_GROUP: \ + FR_TYPE_GROUP: \ case FR_TYPE_TLV: \ case FR_TYPE_STRUCT diff --git a/src/lib/util/value.c b/src/lib/util/value.c index ce982cf66ce..56cd1f1968c 100644 --- a/src/lib/util/value.c +++ b/src/lib/util/value.c @@ -140,8 +140,6 @@ fr_table_num_ordered_t const fr_value_box_type_table[] = { { L("tlv"), FR_TYPE_TLV }, { L("struct"), FR_TYPE_STRUCT }, - { L("extended"), FR_TYPE_EXTENDED }, - { L("vsa"), FR_TYPE_VSA }, { L("vendor"), FR_TYPE_VENDOR }, { L("group"), FR_TYPE_GROUP }, @@ -4822,7 +4820,6 @@ ssize_t fr_value_box_print(fr_sbuff_t *out, fr_value_box_t const *data, fr_sbuff case FR_TYPE_STRUCT: /* Not a box type */ case FR_TYPE_VSA: /* Not a box type */ case FR_TYPE_VENDOR: /* Not a box type */ - case FR_TYPE_EXTENDED: /* Not a box type */ case FR_TYPE_COMBO_IP_ADDR: case FR_TYPE_COMBO_IP_PREFIX: case FR_TYPE_VALUE_BOX: diff --git a/src/modules/rlm_radius/rlm_radius_udp.c b/src/modules/rlm_radius/rlm_radius_udp.c index 33115fbf4ab..b527490be7d 100644 --- a/src/modules/rlm_radius/rlm_radius_udp.c +++ b/src/modules/rlm_radius/rlm_radius_udp.c @@ -211,7 +211,7 @@ fr_dict_attr_autoload_t rlm_radius_udp_dict_attr[] = { { .out = &attr_acct_delay_time, .name = "Acct-Delay-Time", .type = FR_TYPE_UINT32, .dict = &dict_radius}, { .out = &attr_error_cause, .name = "Error-Cause", .type = FR_TYPE_UINT32, .dict = &dict_radius }, { .out = &attr_event_timestamp, .name = "Event-Timestamp", .type = FR_TYPE_DATE, .dict = &dict_radius}, - { .out = &attr_extended_attribute_1, .name = "Extended-Attribute-1", .type = FR_TYPE_EXTENDED, .dict = &dict_radius}, + { .out = &attr_extended_attribute_1, .name = "Extended-Attribute-1", .type = FR_TYPE_TLV, .dict = &dict_radius}, { .out = &attr_message_authenticator, .name = "Message-Authenticator", .type = FR_TYPE_OCTETS, .dict = &dict_radius}, { .out = &attr_nas_identifier, .name = "NAS-Identifier", .type = FR_TYPE_STRING, .dict = &dict_radius}, { .out = &attr_original_packet_code, .name = "Original-Packet-Code", .type = FR_TYPE_UINT32, .dict = &dict_radius}, diff --git a/src/protocols/dhcpv4/base.c b/src/protocols/dhcpv4/base.c index 6548fd009b4..bb872856046 100644 --- a/src/protocols/dhcpv4/base.c +++ b/src/protocols/dhcpv4/base.c @@ -668,11 +668,6 @@ static fr_table_num_ordered_t const subtype_table[] = { static bool attr_valid(UNUSED fr_dict_t *dict, UNUSED fr_dict_attr_t const *parent, UNUSED char const *name, UNUSED int attr, fr_type_t type, fr_dict_attr_flags_t *flags) { - if (type == FR_TYPE_EXTENDED) { - fr_strerror_printf("Attributes of type 'extended' cannot be used with DHCP"); - return false; - } - /* * "extra" signifies that subtype is being used by the * dictionaries itself. diff --git a/src/protocols/dhcpv6/base.c b/src/protocols/dhcpv6/base.c index 12961f7f975..9305da6b80c 100644 --- a/src/protocols/dhcpv6/base.c +++ b/src/protocols/dhcpv6/base.c @@ -866,11 +866,6 @@ static fr_table_num_ordered_t const subtype_table[] = { static bool attr_valid(UNUSED fr_dict_t *dict, UNUSED fr_dict_attr_t const *parent, UNUSED char const *name, UNUSED int attr, fr_type_t type, fr_dict_attr_flags_t *flags) { - if (type == FR_TYPE_EXTENDED) { - fr_strerror_printf("Attributes of type 'extended' cannot be used with DHCP"); - return false; - } - /* * "extra" signifies that subtype is being used by the * dictionaries itself. diff --git a/src/protocols/dhcpv6/encode.c b/src/protocols/dhcpv6/encode.c index 240ec6bb098..9134f82bb29 100644 --- a/src/protocols/dhcpv6/encode.c +++ b/src/protocols/dhcpv6/encode.c @@ -171,7 +171,6 @@ static ssize_t encode_value(uint8_t *out, size_t outlen, switch (da->type) { case FR_TYPE_TLV: - case FR_TYPE_EXTENDED: case FR_TYPE_VENDOR: case FR_TYPE_VSA: fr_strerror_printf("%s: Called with structural type %s", __FUNCTION__, @@ -424,7 +423,6 @@ static ssize_t encode_value(uint8_t *out, size_t outlen, break; case FR_TYPE_INVALID: - case FR_TYPE_EXTENDED: case FR_TYPE_COMBO_IP_ADDR: /* Should have been converted to concrete equivalent */ case FR_TYPE_COMBO_IP_PREFIX: /* Should have been converted to concrete equivalent */ case FR_TYPE_VSA: diff --git a/src/protocols/internal/decode.c b/src/protocols/internal/decode.c index c969c392435..dd6ccf279bd 100644 --- a/src/protocols/internal/decode.c +++ b/src/protocols/internal/decode.c @@ -300,12 +300,6 @@ static ssize_t internal_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *head, fr_di /* * Structural types */ - case FR_TYPE_EXTENDED: - if (unlikely(tainted)) goto bad_tainted; - slen = internal_decode_pair(ctx, head, da, p, p + len, decoder_ctx); - if (slen <= 0) goto error; - break; - case FR_TYPE_TLV: if (unlikely(tainted)) goto bad_tainted; diff --git a/src/protocols/internal/encode.c b/src/protocols/internal/encode.c index 39ed69eb108..ee8b253c0be 100644 --- a/src/protocols/internal/encode.c +++ b/src/protocols/internal/encode.c @@ -174,7 +174,6 @@ static ssize_t internal_encode(fr_dbuff_t *dbuff, * Children of TLVs are encoded in the context * of the TLV. */ - case FR_TYPE_EXTENDED: /* Just another type of TLV */ case FR_TYPE_TLV: /* * We've done the complete stack. diff --git a/src/protocols/radius/encode.c b/src/protocols/radius/encode.c index b89648bb9cf..f858450edad 100644 --- a/src/protocols/radius/encode.c +++ b/src/protocols/radius/encode.c @@ -603,7 +603,6 @@ static ssize_t encode_value(uint8_t *out, size_t outlen, case FR_TYPE_COMBO_IP_PREFIX: /* Should have been converted to concrete equivalent */ case FR_TYPE_VSA: case FR_TYPE_VENDOR: - case FR_TYPE_EXTENDED: case FR_TYPE_TLV: case FR_TYPE_STRUCT: case FR_TYPE_SIZE: