|
| static int | _test_ctx_free (fr_radius_decode_ctx_t *ctx) |
| |
| static ssize_t | decode_concat (TALLOC_CTX *ctx, fr_pair_list_t *list, fr_dict_attr_t const *parent, uint8_t const *data, uint8_t const *end) |
| | Convert a "concatenated" attribute to one long VP.
|
| |
| static ssize_t | decode_digest_attributes (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t const data_len, fr_radius_decode_ctx_t *packet_ctx) |
| | Decode Digest-Attributes.
|
| |
| static ssize_t | decode_extended (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *da, uint8_t const *data, UNUSED size_t data_len, fr_radius_decode_ctx_t *packet_ctx) |
| | Fast path for most extended attributes.
|
| |
| static ssize_t | decode_extended_fragments (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t attr_len, fr_radius_decode_ctx_t *packet_ctx) |
| | Convert a fragmented extended attr to a VP.
|
| |
| static ssize_t | decode_nas_filter_rule (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t const data_len, fr_radius_decode_ctx_t *packet_ctx) |
| | Decode NAS-Filter-Rule.
|
| |
| static ssize_t | decode_pair (TALLOC_CTX *ctx, fr_pair_list_t *out, NDEBUG_UNUSED fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len, void *decode_ctx) |
| |
| static ssize_t | decode_rfc (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t const data_len, void *decode_ctx) |
| | decode an RFC-format TLV
|
| |
| static int | decode_test_ctx (void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, UNUSED fr_dict_attr_t const *root_da) |
| |
| static ssize_t | decode_tlv_trampoline (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len, void *decode_ctx) |
| | Wrapper called by fr_struct_from_network()
|
| |
| static ssize_t | decode_value_trampoline (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len, void *decode_ctx) |
| | Wrapper called by fr_struct_from_network()
|
| |
| static ssize_t | decode_vsa (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t attr_len, fr_radius_decode_ctx_t *packet_ctx) |
| | Convert a top-level VSA to one or more VPs.
|
| |
| static ssize_t | decode_vsa_internal (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len, fr_radius_decode_ctx_t *packet_ctx, fr_dict_vendor_t const *dv) |
| | Convert a top-level VSA to a VP.
|
| |
| static ssize_t | decode_wimax (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t attr_len, fr_radius_decode_ctx_t *packet_ctx) |
| | Convert a Vendor-Specific WIMAX to vps.
|
| |
| ssize_t | fr_radius_decode_foreign (TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *data, size_t data_len) |
| |
| ssize_t | fr_radius_decode_pair (TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *data, size_t data_len, fr_radius_decode_ctx_t *packet_ctx) |
| | Create a "normal" fr_pair_t from the given data.
|
| |
| ssize_t | fr_radius_decode_pair_value (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t const attr_len, void *decode_ctx) |
| | Create any kind of VP from the attribute contents.
|
| |
| static ssize_t | fr_radius_decode_password (uint8_t passwd[static 256], size_t pwlen, fr_radius_decode_ctx_t *packet_ctx) |
| | Decode password.
|
| |
| static ssize_t | fr_radius_decode_proto (TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *data, size_t data_len, void *proto_ctx) |
| |
| ssize_t | fr_radius_decode_tlv (TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len, fr_radius_decode_ctx_t *packet_ctx) |
| | Convert TLVs to one or more VPs.
|
| |
| int | fr_radius_decode_tlv_ok (uint8_t const *data, size_t length, size_t dv_type, size_t dv_length) |
| | Check if a set of RADIUS formatted TLVs are OK.
|
| |
| static ssize_t | fr_radius_decode_tunnel_password (uint8_t passwd[static 256], size_t *pwlen, fr_radius_decode_ctx_t *packet_ctx) |
| | Decode Tunnel-Password encrypted attributes.
|
| |
| static bool | memcpy_bounded (void *restrict dst, const void *restrict src, size_t n, const void *restrict end) |
| |
Functions to decode RADIUS attributes.
- Id
- 7324ee7a4a0a41d4ce144fb33b730bcf7edb968a
- Copyright
- 2000-2003,2006-2015 The FreeRADIUS server project
Definition in file decode.c.
Create any kind of VP from the attribute contents.
"length" is AT LEAST the length of this attribute, as we expect the caller to have verified the data with fr_packet_ok(). "length" may be up to the length of the packet.
This function will ONLY return -1 on programmer error or OOM. If there's anything wrong with the attribute, it will ALWAYS create a "raw" attribute.
- Returns
- Length on success.
- -1 on failure.
Definition at line 1486 of file decode.c.