]> git.ipfire.org Git - thirdparty/freeradius-server.git/log
thirdparty/freeradius-server.git
3 weeks agoremove last vestiges of "keys can have children"
Alan T. DeKok [Sat, 6 Dec 2025 17:02:36 +0000 (12:02 -0500)] 
remove last vestiges of "keys can have children"

3 weeks agomove "set type_size and length" to separate function
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.

3 weeks agoset the default type size for a dictionary
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.

3 weeks agoVSA type size depends on the VENDOR type size, but only for RADIUS
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.

3 weeks agoenforce correct mapping between protocol name and number
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.

3 weeks agofr_dict_attr_unknown_afrom_da() can return NULL
Alan T. DeKok [Sat, 6 Dec 2025 14:34:05 +0000 (09:34 -0500)] 
fr_dict_attr_unknown_afrom_da() can return NULL

3 weeks agofix: Corrected the return values for when a default value is used when parsing config...
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>
4 weeks agoadd a "pair-compare" function
Alan T. DeKok [Thu, 4 Dec 2025 19:29:41 +0000 (14:29 -0500)] 
add a "pair-compare" function

which allows for comparison operators

4 weeks agocache the root protocol dictionary, and the internal dictionary
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

4 weeks agohandle the case of internal attributes in protocol structures
Alan T. DeKok [Thu, 4 Dec 2025 15:12:50 +0000 (10:12 -0500)] 
handle the case of internal attributes in protocol structures

4 weeks agodo not allow leaf types to be in the middle of an OID string
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.

4 weeks agoremove "key as structural element" from tests
Alan T. DeKok [Tue, 2 Dec 2025 20:46:07 +0000 (15:46 -0500)] 
remove "key as structural element" from tests

4 weeks agoit's OK to not be given an attribute
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.

4 weeks agoexpose API to create one unknown attribute from a numbered OID
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

4 weeks agomake the error a little but clearer
Alan T. DeKok [Tue, 2 Dec 2025 17:48:01 +0000 (12:48 -0500)] 
make the error a little but clearer

4 weeks agoadd and use FR_DBUFF_ERROR_OFFSET
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()

4 weeks agouse fr_dbuff_used()
Alan T. DeKok [Tue, 2 Dec 2025 17:24:54 +0000 (12:24 -0500)] 
use fr_dbuff_used()

4 weeks agoupdate comment
Alan T. DeKok [Mon, 1 Dec 2025 20:37:25 +0000 (15:37 -0500)] 
update comment

4 weeks agocheck limits on the data.
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

4 weeks agotweak output to be a bit clearer
Alan T. DeKok [Sun, 30 Nov 2025 19:24:31 +0000 (14:24 -0500)] 
tweak output to be a bit clearer

4 weeks agoInclude Genexis DHCPv4 dictionary
Nick Porter [Mon, 1 Dec 2025 12:11:44 +0000 (12:11 +0000)] 
Include Genexis DHCPv4 dictionary

4 weeks agoexport fr_dict_attr_unknown_alloc()
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

4 weeks agoaliases can only be to siblings, and children of siblings
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.

4 weeks agoadd -F <format> in preparation for printing as dictionaries
Alan T. DeKok [Sat, 29 Nov 2025 15:16:17 +0000 (10:16 -0500)] 
add -F <format> in preparation for printing as dictionaries

4 weeks agomark up where pairs were allocated from
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.

4 weeks agotrack where a #fr_pair_t was allocated from
Alan T. DeKok [Fri, 28 Nov 2025 17:13:55 +0000 (12:13 -0500)] 
track where a #fr_pair_t was allocated from

4 weeks agoadd parent DA to fr_pair_verify()
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.

4 weeks agoinitialize buffer to quiet compiler
Alan T. DeKok [Fri, 28 Nov 2025 14:41:45 +0000 (09:41 -0500)] 
initialize buffer to quiet compiler

4 weeks agoadd more dict functions, and run more dict tests for unit tests
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

5 weeks agoupdate with notes for the test that is still failing
Alan T. DeKok [Thu, 27 Nov 2025 20:53:10 +0000 (15:53 -0500)] 
update with notes for the test that is still failing

5 weeks agomove fixup of attr ref to place where it is called more often
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?

5 weeks agocorrect the name
Alan T. DeKok [Thu, 27 Nov 2025 20:20:07 +0000 (15:20 -0500)] 
correct the name

5 weeks agoadd missing CR/LF
Alan T. DeKok [Thu, 27 Nov 2025 18:16:48 +0000 (13:16 -0500)] 
add missing CR/LF

5 weeks agocorrect error message
Alan T. DeKok [Thu, 27 Nov 2025 18:02:22 +0000 (13:02 -0500)] 
correct error message

5 weeks agonote why unions have a key ref
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

5 weeks agotypo
Alan T. DeKok [Wed, 26 Nov 2025 21:40:20 +0000 (16:40 -0500)] 
typo

5 weeks agoadd functions to print information about attributes
Alan T. DeKok [Wed, 26 Nov 2025 21:39:17 +0000 (16:39 -0500)] 
add functions to print information about attributes

5 weeks agoprint out more flags
Alan T. DeKok [Wed, 26 Nov 2025 21:38:35 +0000 (16:38 -0500)] 
print out more flags

5 weeks agosuppress protocol name after the first level
Alan T. DeKok [Wed, 26 Nov 2025 21:02:17 +0000 (16:02 -0500)] 
suppress protocol name after the first level

5 weeks agoadd assert to quiet coverity
Alan T. DeKok [Wed, 26 Nov 2025 20:33:44 +0000 (15:33 -0500)] 
add assert to quiet coverity

5 weeks agoadd recursive option for printing dictionary entries
Alan T. DeKok [Wed, 26 Nov 2025 20:06:25 +0000 (15:06 -0500)] 
add recursive option for printing dictionary entries

5 weeks agodon't print out the entire environment, and add radict wrapper
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

5 weeks agofix comment
Alan T. DeKok [Wed, 26 Nov 2025 19:36:27 +0000 (14:36 -0500)] 
fix comment

5 weeks agoaliases have no data type
Alan T. DeKok [Wed, 26 Nov 2025 19:36:12 +0000 (14:36 -0500)] 
aliases have no data type

5 weeks agoit helps to check for success, and to produce meaningful errors
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

5 weeks agoadd more assertions to ensure proper parent/child order
Alan T. DeKok [Wed, 26 Nov 2025 15:08:01 +0000 (10:08 -0500)] 
add more assertions to ensure proper parent/child order

5 weeks agolimit where ALIASes can go.
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

5 weeks agoallow for copying of aliases.
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

5 weeks agodouble-check and limit which type of attributes can have aliases
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

5 weeks agoset a flag when an attribute has an alias
Alan T. DeKok [Tue, 25 Nov 2025 21:56:03 +0000 (16:56 -0500)] 
set a flag when an attribute has an alias

5 weeks agoclean up and relax checks when copying ENUMs
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

5 weeks agono need to create an intermediate attribute when cloning
Alan T. DeKok [Tue, 25 Nov 2025 21:42:22 +0000 (16:42 -0500)] 
no need to create an intermediate attribute when cloning

5 weeks agoleaf attributes no longer get cloned, so delete unused code
Alan T. DeKok [Tue, 25 Nov 2025 17:55:25 +0000 (12:55 -0500)] 
leaf attributes no longer get cloned, so delete unused code

5 weeks agouse new data type uint32 instead of old integer
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.*

5 weeks agoinsert enum cloning into the correct list
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

5 weeks agoerror out if source DA has no children
Alan T. DeKok [Tue, 25 Nov 2025 03:04:04 +0000 (22:04 -0500)] 
error out if source DA has no children

5 weeks agotweak sanity checks for src/dst when cloning attributes
Alan T. DeKok [Tue, 25 Nov 2025 02:43:10 +0000 (21:43 -0500)] 
tweak sanity checks for src/dst when cloning attributes

5 weeks agono need to call dict_attr_acopy_enumv() for enum=...
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

5 weeks agoif necessary, cast the enums when copying
Alan T. DeKok [Tue, 25 Nov 2025 02:18:45 +0000 (21:18 -0500)] 
if necessary, cast the enums when copying

5 weeks agoremove dict_attr_acopy_dict(), and update dict_attr_acopy()
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.

5 weeks agokeys can no longer have children
Alan T. DeKok [Mon, 24 Nov 2025 20:45:36 +0000 (15:45 -0500)] 
keys can no longer have children

5 weeks agodocs-v4: Update Concepts landing page and nav panel HIVE 4414/6
nolade [Fri, 11 Jul 2025 18:26:48 +0000 (14:26 -0400)] 
docs-v4: Update Concepts landing page and nav panel HIVE 4414/6

5 weeks agodocs: Reference landing page Updates PR #5678
nolade [Wed, 6 Aug 2025 16:39:10 +0000 (12:39 -0400)] 
docs: Reference landing page Updates PR #5678

5 weeks agodocs-v4: Build fix - added table delilmiter
nolade [Wed, 19 Nov 2025 16:32:07 +0000 (11:32 -0500)] 
docs-v4: Build fix - added table delilmiter

5 weeks agolet's clone the various flags, too
Alan T. DeKok [Mon, 24 Nov 2025 17:38:19 +0000 (12:38 -0500)] 
let's clone the various flags, too

5 weeks agotweak checks for type size
Alan T. DeKok [Mon, 24 Nov 2025 17:19:06 +0000 (12:19 -0500)] 
tweak checks for type size

5 weeks agoprint types and length, too
Alan T. DeKok [Mon, 24 Nov 2025 17:18:05 +0000 (12:18 -0500)] 
print types and length, too

5 weeks agomore checks for aliases
Alan T. DeKok [Mon, 24 Nov 2025 13:43:57 +0000 (08:43 -0500)] 
more checks for aliases

5 weeks agotypo
Alan T. DeKok [Mon, 24 Nov 2025 13:13:06 +0000 (08:13 -0500)] 
typo

5 weeks agoUpdate docs from sample raddb
Nick Porter [Mon, 24 Nov 2025 10:00:19 +0000 (10:00 +0000)] 
Update docs from sample raddb

5 weeks agoTypo
Nick Porter [Mon, 24 Nov 2025 09:56:25 +0000 (09:56 +0000)] 
Typo

5 weeks agoRemove rlm_date config info from sample rlm_cache config
Nick Porter [Mon, 24 Nov 2025 09:54:17 +0000 (09:54 +0000)] 
Remove rlm_date config info from sample rlm_cache config

5 weeks agoFormatting
Nick Porter [Mon, 24 Nov 2025 09:51:29 +0000 (09:51 +0000)] 
Formatting

5 weeks agoRemove & from comments
Nick Porter [Mon, 24 Nov 2025 09:47:29 +0000 (09:47 +0000)] 
Remove & from comments

5 weeks agoAdd client_hello_parse option to enable extraction of Client Hello data
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

5 weeks agoDefine callback for extracting data from TLS Client Hello
Nick Porter [Mon, 24 Nov 2025 09:32:52 +0000 (09:32 +0000)] 
Define callback for extracting data from TLS Client Hello

5 weeks agoAdd dictionary entries for TLS Client Hello
Nick Porter [Mon, 24 Nov 2025 09:29:55 +0000 (09:29 +0000)] 
Add dictionary entries for TLS Client Hello

5 weeks agoUse log_request_proto_pair_list when reporting what will be sent
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.

5 weeks agoremove migration flag for unions
Alan T. DeKok [Mon, 24 Nov 2025 01:36:43 +0000 (20:36 -0500)] 
remove migration flag for unions

5 weeks agoremove hacks for key fields
Alan T. DeKok [Mon, 24 Nov 2025 01:33:02 +0000 (20:33 -0500)] 
remove hacks for key fields

5 weeks agoremove STRUCT dictionary keyword
Alan T. DeKok [Mon, 24 Nov 2025 01:19:19 +0000 (20:19 -0500)] 
remove STRUCT dictionary keyword

it is no longer necessary

5 weeks agostart removing the ability for key fields to have children
Alan T. DeKok [Sun, 23 Nov 2025 19:07:27 +0000 (14:07 -0500)] 
start removing the ability for key fields to have children

5 weeks agomove final tests to new union syntax
Alan T. DeKok [Sun, 23 Nov 2025 14:35:45 +0000 (09:35 -0500)] 
move final tests to new union syntax

5 weeks agoprint out the filter pairs, for laziness
Alan T. DeKok [Sun, 23 Nov 2025 14:34:15 +0000 (09:34 -0500)] 
print out the filter pairs, for laziness

5 weeks agomove fprintf pair routines to pair_print
Alan T. DeKok [Sun, 23 Nov 2025 14:14:39 +0000 (09:14 -0500)] 
move fprintf pair routines to pair_print

5 weeks agotake the raw attribute number from the value of the key field
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

5 weeks agoadd helper function to turn any integer type into uint64_t
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

5 weeks agowe can't use BEGIN/END on structs
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.

5 weeks agono need for BEGIN/END of struct
Alan T. DeKok [Sun, 23 Nov 2025 12:58:20 +0000 (07:58 -0500)] 
no need for BEGIN/END of struct

5 weeks agomove the rest of DHCPv6 to the new union syntax
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

5 weeks agotoken names must be local, and not relative or absolute
Alan T. DeKok [Sun, 23 Nov 2025 01:21:24 +0000 (20:21 -0500)] 
token names must be local, and not relative or absolute

5 weeks agogive more context for errors
Alan T. DeKok [Sun, 23 Nov 2025 01:16:23 +0000 (20:16 -0500)] 
give more context for errors

5 weeks agoadd note that copying ALIAS isn't done yet
Alan T. DeKok [Sun, 23 Nov 2025 01:12:56 +0000 (20:12 -0500)] 
add note that copying ALIAS isn't done yet

5 weeks agoPartially move DHCPv6 to new union syntax
Alan T. DeKok [Sat, 22 Nov 2025 17:22:04 +0000 (12:22 -0500)] 
Partially move DHCPv6 to new union syntax

5 weeks agotweak assertion again
Alan T. DeKok [Sat, 22 Nov 2025 17:21:56 +0000 (12:21 -0500)] 
tweak assertion again

5 weeks agomove DHCPv4 to new union syntax
Alan T. DeKok [Sat, 22 Nov 2025 17:04:25 +0000 (12:04 -0500)] 
move DHCPv4 to new union syntax

5 weeks agoprint the attribute name, and not the enum name
Alan T. DeKok [Sat, 22 Nov 2025 16:00:00 +0000 (11:00 -0500)] 
print the attribute name, and not the enum name

5 weeks agomove BFD to new union syntax
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

5 weeks agosome fields can be raw
Alan T. DeKok [Sat, 22 Nov 2025 14:26:32 +0000 (09:26 -0500)] 
some fields can be raw

5 weeks agodon't check for encode_pair in union encoder
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