]>
git.ipfire.org Git - thirdparty/freeradius-server.git/log
Alan T. DeKok [Sat, 6 Dec 2025 17:02:36 +0000 (12:02 -0500)]
remove last vestiges of "keys can have children"
Alan T. DeKok [Sat, 6 Dec 2025 16:26:53 +0000 (11:26 -0500)]
move "set type_size and length" to separate function
and fix its logic so that it's correct for all protocols, and for
the different kinds of VSAs we have in RADIUS.
Previously, if anyone had defined USR VSAs inside of the
Extended-Vendor-Specific-Attribute space, they would have been
encoded in the USR TLV format, and not the standard RADIUS 1/1
format.
While RFC 8044 allows for "vsa" to have any format, it also recommends
that they use the "tlv" format.
RFC 8044 doesn't recommend that the "evs" data type use the "tlv"
format, but it should. If vendors use different formats for
attributes under the "evs" data type, then we will need to extend
the dictionary parser to allow attributes of type 'vendor' to
specify their own data type and length.
Alan T. DeKok [Sat, 6 Dec 2025 16:24:30 +0000 (11:24 -0500)]
set the default type size for a dictionary
from the protocol library which we loaded.
Alan T. DeKok [Sat, 6 Dec 2025 15:40:30 +0000 (10:40 -0500)]
VSA type size depends on the VENDOR type size, but only for RADIUS
the other protocols are a bit better here.
Alan T. DeKok [Sat, 6 Dec 2025 15:33:27 +0000 (10:33 -0500)]
enforce correct mapping between protocol name and number
This is necessary because we want to have some protocol-specific
behavior in the core. It doesn't make sense to allow the
administrator to change protocol numbers.
Alan T. DeKok [Sat, 6 Dec 2025 14:34:05 +0000 (09:34 -0500)]
fr_dict_attr_unknown_afrom_da() can return NULL
Ethan Thompson [Sat, 6 Dec 2025 01:44:43 +0000 (20:44 -0500)]
fix: Corrected the return values for when a default value is used when parsing configs. (#5691)
Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
Alan T. DeKok [Thu, 4 Dec 2025 19:29:41 +0000 (14:29 -0500)]
add a "pair-compare" function
which allows for comparison operators
Alan T. DeKok [Thu, 4 Dec 2025 15:27:44 +0000 (10:27 -0500)]
cache the root protocol dictionary, and the internal dictionary
when parsing strings, so that we can swap back and forth between
internal dictionaries, and protocol ones
Alan T. DeKok [Thu, 4 Dec 2025 15:12:50 +0000 (10:12 -0500)]
handle the case of internal attributes in protocol structures
Alan T. DeKok [Wed, 3 Dec 2025 13:46:07 +0000 (08:46 -0500)]
do not allow leaf types to be in the middle of an OID string
specifically, key fields. But the parser actually allowed
anything to be used. The results were accidental, and therefore
wrong.
Update map-xlat-struct input to match. The test actually doesn't
use the input Client-ID, so the value doesn't matter. But the
old input relied on assigning hex values to attributes of type
"group".
And when updated to use UUID inputs, the resulting output created
attributes with incorrect parentage. The issue seems to be the
DHCPv6 protocol decoder (or more likely the struct decoder). But
for now, we avoid the problem and move on.
i.e. input
Client-ID.UUID.Value = 0xabcdef
gives output
Debug : Client-ID {
Debug : Value.UUID {
Debug : Value = 0xabcdef
Debug : }
Debug : }
which is wrong. This output shows that the UUID pair is being
created as a child of Client-ID. Instead, there should be an
intermediate Value created, and then the UUID should be a child
of that.
Alan T. DeKok [Tue, 2 Dec 2025 20:46:07 +0000 (15:46 -0500)]
remove "key as structural element" from tests
Alan T. DeKok [Sun, 30 Nov 2025 16:28:02 +0000 (11:28 -0500)]
it's OK to not be given an attribute
just load all of the dictionaries, and then exit.
Alan T. DeKok [Mon, 1 Dec 2025 21:33:26 +0000 (16:33 -0500)]
expose API to create one unknown attribute from a numbered OID
Alan T. DeKok [Tue, 2 Dec 2025 17:48:01 +0000 (12:48 -0500)]
make the error a little but clearer
Alan T. DeKok [Tue, 2 Dec 2025 17:35:30 +0000 (12:35 -0500)]
add and use FR_DBUFF_ERROR_OFFSET
so that we don't have int64 underflow when subtracting offsets
from error slen
arguably we should instead have an error pointer like is done in
the sbuffs, and with fr_sbuff_error()
Alan T. DeKok [Tue, 2 Dec 2025 17:24:54 +0000 (12:24 -0500)]
use fr_dbuff_used()
Alan T. DeKok [Mon, 1 Dec 2025 20:37:25 +0000 (15:37 -0500)]
update comment
Alan T. DeKok [Tue, 2 Dec 2025 17:25:29 +0000 (12:25 -0500)]
check limits on the data.
to catch the corner case of the encoder returning unrealistic
amounts of data
Alan T. DeKok [Sun, 30 Nov 2025 19:24:31 +0000 (14:24 -0500)]
tweak output to be a bit clearer
Nick Porter [Mon, 1 Dec 2025 12:11:44 +0000 (12:11 +0000)]
Include Genexis DHCPv4 dictionary
Alan T. DeKok [Sun, 30 Nov 2025 15:02:50 +0000 (10:02 -0500)]
export fr_dict_attr_unknown_alloc()
and limit the types of unknown attributes which can be created
Alan T. DeKok [Sun, 30 Nov 2025 15:16:05 +0000 (10:16 -0500)]
aliases can only be to siblings, and children of siblings
otherwise the attribute tree either has loops, or else it has
cross-branch references, which will really confuse things.
ALIASes are there to shorten the tree. If you need cross-branch
references, you should use groups instead.
Alan T. DeKok [Sat, 29 Nov 2025 15:16:17 +0000 (10:16 -0500)]
add -F <format> in preparation for printing as dictionaries
Alan T. DeKok [Fri, 28 Nov 2025 17:18:59 +0000 (12:18 -0500)]
mark up where pairs were allocated from
we don't need to do this everywhere, but it's useful to do it for
common cases.
Alan T. DeKok [Fri, 28 Nov 2025 17:13:55 +0000 (12:13 -0500)]
track where a #fr_pair_t was allocated from
Alan T. DeKok [Fri, 28 Nov 2025 16:48:25 +0000 (11:48 -0500)]
add parent DA to fr_pair_verify()
and some associated helper functions. This allows us to do
better checks of parentage.
Alan T. DeKok [Fri, 28 Nov 2025 14:41:45 +0000 (09:41 -0500)]
initialize buffer to quiet compiler
Alan T. DeKok [Thu, 27 Nov 2025 20:56:33 +0000 (15:56 -0500)]
add more dict functions, and run more dict tests for unit tests
Alan T. DeKok [Thu, 27 Nov 2025 20:53:10 +0000 (15:53 -0500)]
update with notes for the test that is still failing
Alan T. DeKok [Thu, 27 Nov 2025 20:43:36 +0000 (15:43 -0500)]
move fixup of attr ref to place where it is called more often
which results in better tmpl attribute references when there are
aliases
@todo - maybe the check for parent needs to check for FR_TYPE_GROUP,
too?
Alan T. DeKok [Thu, 27 Nov 2025 20:20:07 +0000 (15:20 -0500)]
correct the name
Alan T. DeKok [Thu, 27 Nov 2025 18:16:48 +0000 (13:16 -0500)]
add missing CR/LF
Alan T. DeKok [Thu, 27 Nov 2025 18:02:22 +0000 (13:02 -0500)]
correct error message
Alan T. DeKok [Thu, 27 Nov 2025 17:52:02 +0000 (12:52 -0500)]
note why unions have a key ref
arguably this could be replaced by more caching on the stack
during the dictionary parse phase. But that wouldn't work if new
union members were defined in a different file
Alan T. DeKok [Wed, 26 Nov 2025 21:40:20 +0000 (16:40 -0500)]
typo
Alan T. DeKok [Wed, 26 Nov 2025 21:39:17 +0000 (16:39 -0500)]
add functions to print information about attributes
Alan T. DeKok [Wed, 26 Nov 2025 21:38:35 +0000 (16:38 -0500)]
print out more flags
Alan T. DeKok [Wed, 26 Nov 2025 21:02:17 +0000 (16:02 -0500)]
suppress protocol name after the first level
Alan T. DeKok [Wed, 26 Nov 2025 20:33:44 +0000 (15:33 -0500)]
add assert to quiet coverity
Alan T. DeKok [Wed, 26 Nov 2025 20:06:25 +0000 (15:06 -0500)]
add recursive option for printing dictionary entries
Alan T. DeKok [Wed, 26 Nov 2025 19:40:00 +0000 (14:40 -0500)]
don't print out the entire environment, and add radict wrapper
Alan T. DeKok [Wed, 26 Nov 2025 19:36:27 +0000 (14:36 -0500)]
fix comment
Alan T. DeKok [Wed, 26 Nov 2025 19:36:12 +0000 (14:36 -0500)]
aliases have no data type
Alan T. DeKok [Wed, 26 Nov 2025 18:59:43 +0000 (13:59 -0500)]
it helps to check for success, and to produce meaningful errors
Alan T. DeKok [Wed, 26 Nov 2025 15:08:01 +0000 (10:08 -0500)]
add more assertions to ensure proper parent/child order
Alan T. DeKok [Wed, 26 Nov 2025 14:05:29 +0000 (09:05 -0500)]
limit where ALIASes can go.
because it doesn't make sense to have them in 'group', for example
Alan T. DeKok [Wed, 26 Nov 2025 13:36:24 +0000 (08:36 -0500)]
allow for copying of aliases.
However, the copy code is not done. Instead, it produces an error
message. This is better than silently not copying the ALIAS
Alan T. DeKok [Tue, 25 Nov 2025 21:57:02 +0000 (16:57 -0500)]
double-check and limit which type of attributes can have aliases
Alan T. DeKok [Tue, 25 Nov 2025 21:56:03 +0000 (16:56 -0500)]
set a flag when an attribute has an alias
Alan T. DeKok [Tue, 25 Nov 2025 21:43:00 +0000 (16:43 -0500)]
clean up and relax checks when copying ENUMs
we can copy ENUMs cross protocol, so long as the fields aren't
'key=..' or FR_TYPE_ATTR
Alan T. DeKok [Tue, 25 Nov 2025 21:42:22 +0000 (16:42 -0500)]
no need to create an intermediate attribute when cloning
Alan T. DeKok [Tue, 25 Nov 2025 17:55:25 +0000 (12:55 -0500)]
leaf attributes no longer get cloned, so delete unused code
Alan T. DeKok [Tue, 25 Nov 2025 16:41:40 +0000 (11:41 -0500)]
use new data type uint32 instead of old integer
perl -p -i -e 's/(\s+)integer64/$1uint64/;s/(\s+)integer/$1uint32/g' share/dictionary/radius/dictionary.*
Alan T. DeKok [Tue, 25 Nov 2025 15:04:43 +0000 (10:04 -0500)]
insert enum cloning into the correct list
instead of the wrong one.
And fix the sanity checks so that they're correct
Alan T. DeKok [Tue, 25 Nov 2025 03:04:04 +0000 (22:04 -0500)]
error out if source DA has no children
Alan T. DeKok [Tue, 25 Nov 2025 02:43:10 +0000 (21:43 -0500)]
tweak sanity checks for src/dst when cloning attributes
Alan T. DeKok [Tue, 25 Nov 2025 02:35:46 +0000 (21:35 -0500)]
no need to call dict_attr_acopy_enumv() for enum=...
now that the ext copy routine for enums does the casts
Alan T. DeKok [Tue, 25 Nov 2025 02:18:45 +0000 (21:18 -0500)]
if necessary, cast the enums when copying
Alan T. DeKok [Mon, 24 Nov 2025 21:07:22 +0000 (16:07 -0500)]
remove dict_attr_acopy_dict(), and update dict_attr_acopy()
The two functions had some overlap, and dict_attr_acopy() would
initialize the copy with the _sources_ parent, which was wrong.
many of the copy routines need the correct parent during the copy.
Alan T. DeKok [Mon, 24 Nov 2025 20:45:36 +0000 (15:45 -0500)]
keys can no longer have children
nolade [Fri, 11 Jul 2025 18:26:48 +0000 (14:26 -0400)]
docs-v4: Update Concepts landing page and nav panel HIVE 4414/6
nolade [Wed, 6 Aug 2025 16:39:10 +0000 (12:39 -0400)]
docs: Reference landing page Updates PR #5678
nolade [Wed, 19 Nov 2025 16:32:07 +0000 (11:32 -0500)]
docs-v4: Build fix - added table delilmiter
Alan T. DeKok [Mon, 24 Nov 2025 17:38:19 +0000 (12:38 -0500)]
let's clone the various flags, too
Alan T. DeKok [Mon, 24 Nov 2025 17:19:06 +0000 (12:19 -0500)]
tweak checks for type size
Alan T. DeKok [Mon, 24 Nov 2025 17:18:05 +0000 (12:18 -0500)]
print types and length, too
Alan T. DeKok [Mon, 24 Nov 2025 13:43:57 +0000 (08:43 -0500)]
more checks for aliases
Alan T. DeKok [Mon, 24 Nov 2025 13:13:06 +0000 (08:13 -0500)]
typo
Nick Porter [Mon, 24 Nov 2025 10:00:19 +0000 (10:00 +0000)]
Update docs from sample raddb
Nick Porter [Mon, 24 Nov 2025 09:56:25 +0000 (09:56 +0000)]
Typo
Nick Porter [Mon, 24 Nov 2025 09:54:17 +0000 (09:54 +0000)]
Remove rlm_date config info from sample rlm_cache config
Nick Porter [Mon, 24 Nov 2025 09:51:29 +0000 (09:51 +0000)]
Formatting
Nick Porter [Mon, 24 Nov 2025 09:47:29 +0000 (09:47 +0000)]
Remove & from comments
Nick Porter [Mon, 24 Nov 2025 09:46:54 +0000 (09:46 +0000)]
Add client_hello_parse option to enable extraction of Client Hello data
Nick Porter [Mon, 24 Nov 2025 09:32:52 +0000 (09:32 +0000)]
Define callback for extracting data from TLS Client Hello
Nick Porter [Mon, 24 Nov 2025 09:29:55 +0000 (09:29 +0000)]
Add dictionary entries for TLS Client Hello
Nick Porter [Mon, 24 Nov 2025 08:45:02 +0000 (08:45 +0000)]
Use log_request_proto_pair_list when reporting what will be sent
So we don't incorrectly report internal attributes as being sent.
Alan T. DeKok [Mon, 24 Nov 2025 01:36:43 +0000 (20:36 -0500)]
remove migration flag for unions
Alan T. DeKok [Mon, 24 Nov 2025 01:33:02 +0000 (20:33 -0500)]
remove hacks for key fields
Alan T. DeKok [Mon, 24 Nov 2025 01:19:19 +0000 (20:19 -0500)]
remove STRUCT dictionary keyword
it is no longer necessary
Alan T. DeKok [Sun, 23 Nov 2025 19:07:27 +0000 (14:07 -0500)]
start removing the ability for key fields to have children
Alan T. DeKok [Sun, 23 Nov 2025 14:35:45 +0000 (09:35 -0500)]
move final tests to new union syntax
Alan T. DeKok [Sun, 23 Nov 2025 14:34:15 +0000 (09:34 -0500)]
print out the filter pairs, for laziness
Alan T. DeKok [Sun, 23 Nov 2025 14:14:39 +0000 (09:14 -0500)]
move fprintf pair routines to pair_print
Alan T. DeKok [Sun, 23 Nov 2025 14:02:17 +0000 (09:02 -0500)]
take the raw attribute number from the value of the key field
Alan T. DeKok [Sun, 23 Nov 2025 13:58:01 +0000 (08:58 -0500)]
add helper function to turn any integer type into uint64_t
Alan T. DeKok [Sun, 23 Nov 2025 13:41:58 +0000 (08:41 -0500)]
we can't use BEGIN/END on structs
for now, we do auto-push.
Alan T. DeKok [Sun, 23 Nov 2025 12:58:20 +0000 (07:58 -0500)]
no need for BEGIN/END of struct
Alan T. DeKok [Sun, 23 Nov 2025 01:21:55 +0000 (20:21 -0500)]
move the rest of DHCPv6 to the new union syntax
DUID.foo --> foo
Hardware-Type.foo --> foo
Alan T. DeKok [Sun, 23 Nov 2025 01:21:24 +0000 (20:21 -0500)]
token names must be local, and not relative or absolute
Alan T. DeKok [Sun, 23 Nov 2025 01:16:23 +0000 (20:16 -0500)]
give more context for errors
Alan T. DeKok [Sun, 23 Nov 2025 01:12:56 +0000 (20:12 -0500)]
add note that copying ALIAS isn't done yet
Alan T. DeKok [Sat, 22 Nov 2025 17:22:04 +0000 (12:22 -0500)]
Partially move DHCPv6 to new union syntax
Alan T. DeKok [Sat, 22 Nov 2025 17:21:56 +0000 (12:21 -0500)]
tweak assertion again
Alan T. DeKok [Sat, 22 Nov 2025 17:04:25 +0000 (12:04 -0500)]
move DHCPv4 to new union syntax
Alan T. DeKok [Sat, 22 Nov 2025 16:00:00 +0000 (11:00 -0500)]
print the attribute name, and not the enum name
Alan T. DeKok [Sat, 22 Nov 2025 14:26:53 +0000 (09:26 -0500)]
move BFD to new union syntax
which also fixes some encoding errors in the previous code
Alan T. DeKok [Sat, 22 Nov 2025 14:26:32 +0000 (09:26 -0500)]
some fields can be raw
Alan T. DeKok [Sat, 22 Nov 2025 14:17:26 +0000 (09:17 -0500)]
don't check for encode_pair in union encoder
the encode_pair function is needed only by encode_tlv, which already
checks for the existence of encode_pair