]> git.ipfire.org Git - thirdparty/freeradius-server.git/log
thirdparty/freeradius-server.git
2 months agoDefine %file.touch()
Nick Porter [Mon, 25 Aug 2025 13:55:44 +0000 (14:55 +0100)] 
Define %file.touch()

Since it's used by ldap_sync tests

2 months agoThese are freed by freeing request
Nick Porter [Mon, 25 Aug 2025 13:19:28 +0000 (14:19 +0100)] 
These are freed by freeing request

2 months agoLDAP and SQL triggers are now driven by trunk code
Nick Porter [Mon, 25 Aug 2025 12:18:03 +0000 (13:18 +0100)] 
LDAP and SQL triggers are now driven by trunk code

Which use fixed names of `pool.<trigger name>` rather than
`modules.<module name>.<trigger name>`

2 months agoWS
Nick Porter [Mon, 25 Aug 2025 12:14:07 +0000 (13:14 +0100)] 
WS

2 months agoCorrect comment
Nick Porter [Mon, 25 Aug 2025 12:13:56 +0000 (13:13 +0100)] 
Correct comment

2 months agoAdd new MIB for trunk state triggers
Nick Porter [Mon, 25 Aug 2025 12:13:37 +0000 (13:13 +0100)] 
Add new MIB for trunk state triggers

2 months agoDon't attempt to run triggers when there's no event list
Nick Porter [Mon, 25 Aug 2025 10:36:34 +0000 (11:36 +0100)] 
Don't attempt to run triggers when there's no event list

Which will happen for any triggers fired late in the shutdown

2 months agoSet trigger_prefix for rlm_detail
Nick Porter [Mon, 25 Aug 2025 09:53:52 +0000 (10:53 +0100)] 
Set trigger_prefix for rlm_detail

So per-instance triggers can just go in a trigger subsection rather than
in file { trigger { ... } }

2 months agoIf trigger_prefix is defined, use the passed in CONF_SECTION
Nick Porter [Mon, 25 Aug 2025 09:52:23 +0000 (10:52 +0100)] 
If trigger_prefix is defined, use the passed in CONF_SECTION

Allows, for example, rlm_detail, which only outputs to files, to avoid
having to put trigger definitions inside overly nested sections.

2 months agoAdd caching of trigger CONF_PAIRs and trigger undef to exfile
Nick Porter [Mon, 25 Aug 2025 09:41:50 +0000 (10:41 +0100)] 
Add caching of trigger CONF_PAIRs and trigger undef to exfile

2 months agoAdd optional CONF_PAIR ** argument to trigger()
Nick Porter [Mon, 25 Aug 2025 08:11:49 +0000 (09:11 +0100)] 
Add optional CONF_PAIR ** argument to trigger()

Allows passing in of known CONF_PAIR and return of found pair, so
triggers which are called often don't have to repeatedly hunt for the
pair.

2 months agoMake connections triggers optional
Nick Porter [Fri, 22 Aug 2025 09:21:38 +0000 (10:21 +0100)] 
Make connections triggers optional

2 months agoCache when trunk triggers are not found
Nick Porter [Fri, 22 Aug 2025 09:18:06 +0000 (10:18 +0100)] 
Cache when trunk triggers are not found

So we don't hunt for them on every state change.

SQL trunks connections change from ACTIVE to FULL and back on every
query due to the limit of 1 query per connection - so it is unlikely
that triggers would be configured for those states, and caching that
they are not configured saves a lot of conf pair finding.

2 months agoMake exfile based triggers optional
Nick Porter [Fri, 22 Aug 2025 09:14:15 +0000 (10:14 +0100)] 
Make exfile based triggers optional

Otherwise, enabling triggers will cause `rlm_linelog` and `rlm_detail`
to perform a lot of hunting for configured triggers as files are openned
and closed.

2 months agoReturn different values depending on why a trigger was not fired
Nick Porter [Fri, 22 Aug 2025 09:10:33 +0000 (10:10 +0100)] 
Return different values depending on why a trigger was not fired

To allow cacheing of un-defined triggers

2 months agoUse a conf parser function to find module trunk trigger conf sections
Nick Porter [Fri, 22 Aug 2025 07:43:37 +0000 (08:43 +0100)] 
Use a conf parser function to find module trunk trigger conf sections

2 months agoAdd CONF_SECTION for trunk connection / request triggers
Nick Porter [Thu, 21 Aug 2025 18:17:17 +0000 (19:17 +0100)] 
Add CONF_SECTION for trunk connection / request triggers

So modules using trunks can have their own trigger sections.

2 months agoMove trunk triggers boolean to trunk->conf
Nick Porter [Thu, 21 Aug 2025 18:16:16 +0000 (19:16 +0100)] 
Move trunk triggers boolean to trunk->conf

Splitting between connection and request and add CONF_PARSER rules to
set the options.

2 months agoIf we find the module "trigger" subsection, use it
Nick Porter [Thu, 21 Aug 2025 17:24:16 +0000 (18:24 +0100)] 
If we find the module "trigger" subsection, use it

2 months agominor cleanups and notes
Alan T. DeKok [Mon, 25 Aug 2025 12:20:32 +0000 (08:20 -0400)] 
minor cleanups and notes

2 months agoadd migration flag for key field transition
Alan T. DeKok [Mon, 25 Aug 2025 12:19:57 +0000 (08:19 -0400)] 
add migration flag for key field transition

there's no configuration for it, but the flag is added automatically

2 months agoit helps to parse unions here, too
Alan T. DeKok [Mon, 25 Aug 2025 11:34:56 +0000 (07:34 -0400)] 
it helps to parse unions here, too

2 months agomove encode_keyed_struct() to its own function
Alan T. DeKok [Sun, 24 Aug 2025 12:12:35 +0000 (08:12 -0400)] 
move encode_keyed_struct() to its own function

and remove last vestiges of "flat" encoder

2 months agomove encode_tlv() to child function
Alan T. DeKok [Sun, 24 Aug 2025 12:04:52 +0000 (08:04 -0400)] 
move encode_tlv() to child function

2 months agorun dir is moved to /run (#5636)
Gerald Vogt [Sun, 24 Aug 2025 12:28:01 +0000 (14:28 +0200)] 
run dir is moved to /run (#5636)

2 months agoUse of MemoryLimit is deprecated (#5638)
Gerald Vogt [Sun, 24 Aug 2025 12:27:38 +0000 (14:27 +0200)] 
Use of MemoryLimit is deprecated (#5638)

2 months agomove generic encode / decode to encode.c and decode.c
Alan T. DeKok [Sun, 24 Aug 2025 02:16:43 +0000 (22:16 -0400)] 
move generic encode / decode to encode.c and decode.c

2 months agotweak loop, so that there are fewer checks inside of the loop
Alan T. DeKok [Sun, 24 Aug 2025 02:08:25 +0000 (22:08 -0400)] 
tweak loop, so that there are fewer checks inside of the loop

2 months agouse generic encoder
Alan T. DeKok [Sun, 24 Aug 2025 02:05:24 +0000 (22:05 -0400)] 
use generic encoder

2 months agomore use macros instead of hard-coded field checks
Alan T. DeKok [Sun, 24 Aug 2025 01:52:33 +0000 (21:52 -0400)] 
more use macros instead of hard-coded field checks

which makes it easier to clean up and rearrange the various
fields in fr_dict_attr_flags_t

2 months agouse macros in more cases
Alan T. DeKok [Sat, 23 Aug 2025 15:42:52 +0000 (11:42 -0400)] 
use macros in more cases

2 months agoadd new macros for length=uint8/16 and use them in dhcpv4/6
Alan T. DeKok [Sat, 23 Aug 2025 14:45:15 +0000 (10:45 -0400)] 
add new macros for length=uint8/16 and use them in dhcpv4/6

and update the checks on the attr_valid() callback to set the
flags in more circumstances

2 months agobetter checks for parent / child lengths
Alan T. DeKok [Sat, 23 Aug 2025 15:41:24 +0000 (11:41 -0400)] 
better checks for parent / child lengths

2 months agodon't assert if we fail to instantiate the dictionaries
Alan T. DeKok [Sat, 23 Aug 2025 14:43:26 +0000 (10:43 -0400)] 
don't assert if we fail to instantiate the dictionaries

continuation of commit 4644f501cf3

2 months agocreate and use generic decode_value() function
Alan T. DeKok [Sat, 23 Aug 2025 11:49:37 +0000 (07:49 -0400)] 
create and use generic decode_value() function

which makes the struct decoder a little simpler.

While we're at it, rework the struct decoder to be clearer.
And decode raw values more often, instead of hoisting the raw
pair to the enclosing struct.

2 months agomake flags.length 16 bits
Alan T. DeKok [Sat, 23 Aug 2025 12:21:56 +0000 (08:21 -0400)] 
make flags.length 16 bits

because fr_dict_attr_flags_t is 8 octets for alignment, so we still
have a few extra bytes to work with

2 months agoremove unnecessary code which doesn't do anything any more
Alan T. DeKok [Thu, 21 Aug 2025 14:52:43 +0000 (10:52 -0400)] 
remove unnecessary code which doesn't do anything any more

2 months agorearrange in preparation for encoding unions
Alan T. DeKok [Thu, 21 Aug 2025 14:51:48 +0000 (10:51 -0400)] 
rearrange in preparation for encoding unions

2 months agoModule trigger names need to start "modules."
Nick Porter [Thu, 21 Aug 2025 13:10:15 +0000 (14:10 +0100)] 
Module trigger names need to start "modules."

in order to find the correct section in trigger.conf

2 months agoReport errors from failed SQL queries
Nick Porter [Thu, 21 Aug 2025 12:39:50 +0000 (13:39 +0100)] 
Report errors from failed SQL queries

2 months agoIf no rows are affected output zero
Nick Porter [Thu, 21 Aug 2025 10:56:50 +0000 (11:56 +0100)] 
If no rows are affected output zero

Rather than no boxes, which just results in warnings when assigning the
xlat output to an attribute

2 months agoCopy all instances of Module-Failure-Message to outer request
Nick Porter [Thu, 21 Aug 2025 10:47:06 +0000 (11:47 +0100)] 
Copy all instances of Module-Failure-Message to outer request

Some failures produce multiple instances and you want all of them when
logging failures

2 months agoUpdate docs from raddb
Nick Porter [Thu, 21 Aug 2025 10:45:35 +0000 (11:45 +0100)] 
Update docs from raddb

2 months agoTypo
Nick Porter [Thu, 21 Aug 2025 10:41:57 +0000 (11:41 +0100)] 
Typo

2 months agorlm_ldap doesn't open new connections for each bind
Nick Porter [Thu, 21 Aug 2025 07:45:44 +0000 (08:45 +0100)] 
rlm_ldap doesn't open new connections for each bind

2 months agoAdd triggers to rlm_crl
Nick Porter [Thu, 21 Aug 2025 07:44:53 +0000 (08:44 +0100)] 
Add triggers to rlm_crl

2 months agoTimer list is used
Nick Porter [Wed, 20 Aug 2025 14:29:04 +0000 (15:29 +0100)] 
Timer list is used

2 months agoadd unions to struct decoder
Alan T. DeKok [Wed, 20 Aug 2025 15:24:07 +0000 (11:24 -0400)] 
add unions to struct decoder

and add test case for it

2 months agoa union closes its parent struct
Alan T. DeKok [Tue, 19 Aug 2025 20:36:34 +0000 (16:36 -0400)] 
a union closes its parent struct

for now, unions are all at the end of a struct

2 months agoSimplify ifdef use
Nick Porter [Wed, 20 Aug 2025 14:06:51 +0000 (15:06 +0100)] 
Simplify ifdef use

2 months agoIf the rlm_crl mutex is taken due to CRL fetching, reset the timer event
Nick Porter [Wed, 20 Aug 2025 12:04:21 +0000 (13:04 +0100)] 
If the rlm_crl mutex is taken due to CRL fetching, reset the timer event

2 months agoAvoid mutex issues in rlm_crl
Nick Porter [Wed, 20 Aug 2025 12:05:15 +0000 (13:05 +0100)] 
Avoid mutex issues in rlm_crl

If the current thread is fetching a CRL, rather than wait for the mutex, yield the request until the CRL fetching is complete.

2 months agoadd checks for fixed size unions
Alan T. DeKok [Tue, 19 Aug 2025 19:04:18 +0000 (15:04 -0400)] 
add checks for fixed size unions

2 months agodon't clear is_known_width field, just force it to be set
Alan T. DeKok [Tue, 19 Aug 2025 18:39:40 +0000 (14:39 -0400)] 
don't clear is_known_width field, just force it to be set

some types are always known width.  Others are only sometimes
known width

2 months agomove child of union to ATTRIBUTE instead of STRUCT
Alan T. DeKok [Tue, 19 Aug 2025 17:30:36 +0000 (13:30 -0400)] 
move child of union to ATTRIBUTE instead of STRUCT

2 months agoCapture scope_id populated by fr_socket_bind
Nick Porter [Tue, 19 Aug 2025 16:41:18 +0000 (17:41 +0100)] 
Capture scope_id populated by fr_socket_bind

scope_id is part of the comparison used to look for conflicting
listners.

If it is left at zero, then multiple interface specific listeners can't
be openned using the address 0.0.0.0 as is needed for handling DHCP
broadcast requests.

2 months agoDon't throw away discovered IPv4 scope_id
Nick Porter [Tue, 19 Aug 2025 16:37:12 +0000 (17:37 +0100)] 
Don't throw away discovered IPv4 scope_id

2 months agoRemove unused code
Nick Porter [Tue, 19 Aug 2025 15:32:08 +0000 (16:32 +0100)] 
Remove unused code

This was only used by `update`

2 months agoremove forbid_update and rewrite_update migration flags
Alan T. DeKok [Tue, 19 Aug 2025 13:57:44 +0000 (09:57 -0400)] 
remove forbid_update and rewrite_update migration flags

the framework is temporarily left in place, so that it can be used
if we need to add more flags.  But that should be removed before
a v4 release

2 months agoremove UPDATE enum
Alan T. DeKok [Tue, 19 Aug 2025 13:47:20 +0000 (09:47 -0400)] 
remove UPDATE enum

2 months agothis is no longer a todo
Alan T. DeKok [Tue, 19 Aug 2025 13:42:56 +0000 (09:42 -0400)] 
this is no longer a todo

2 months agoremove "update" handlers
Alan T. DeKok [Tue, 19 Aug 2025 13:37:21 +0000 (09:37 -0400)] 
remove "update" handlers

2 months agowe no longer support update
Alan T. DeKok [Tue, 19 Aug 2025 13:44:03 +0000 (09:44 -0400)] 
we no longer support update

so we don't need tests for it.

And these tests were not "map" tests, but 'update" tests

2 months agoremove tests for "update", and tweak docs
Alan T. DeKok [Tue, 19 Aug 2025 12:57:51 +0000 (08:57 -0400)] 
remove tests for "update", and tweak docs

2 months agodo not talloc_free() pre-existing dict on error
Alan T. DeKok [Tue, 19 Aug 2025 12:41:51 +0000 (08:41 -0400)] 
do not talloc_free() pre-existing dict on error

2 months agosafe_characters is irrelevant for MySQL / PostgreSQL
Nick Porter [Tue, 19 Aug 2025 11:58:12 +0000 (12:58 +0100)] 
safe_characters is irrelevant for MySQL / PostgreSQL

as they use their database specific escaping functions.

2 months agoSQL-User-Name is nothing to do with escaping now
Nick Porter [Tue, 19 Aug 2025 11:54:36 +0000 (12:54 +0100)] 
SQL-User-Name is nothing to do with escaping now

2 months agoAdd support for "open_query" option to rlm_sql_postgresql
Nick Porter [Tue, 19 Aug 2025 11:49:39 +0000 (12:49 +0100)] 
Add support for "open_query" option to rlm_sql_postgresql

The option is listed (commented out) in the stock queries.conf

2 months agoNormalize SQLite queries
Nick Porter [Tue, 19 Aug 2025 10:58:24 +0000 (11:58 +0100)] 
Normalize SQLite queries

2 months agoNormalize PostgreSQL schema and queries
Nick Porter [Tue, 19 Aug 2025 10:56:43 +0000 (11:56 +0100)] 
Normalize PostgreSQL schema and queries

2 months agoNormalize and correct Oracle schema and queries
Nick Porter [Tue, 19 Aug 2025 09:05:32 +0000 (10:05 +0100)] 
Normalize and correct Oracle schema and queries

2 months agoNormalize and correct MS SQL schema and queries
Nick Porter [Tue, 19 Aug 2025 08:29:09 +0000 (09:29 +0100)] 
Normalize and correct MS SQL schema and queries

2 months agofix test
Alan T. DeKok [Mon, 18 Aug 2025 18:59:13 +0000 (14:59 -0400)] 
fix test

so it actually loads the "good" test dictionary.

add "bad" test dictionaries.  Only one for now.

2 months agoregenerate from source
Alan T. DeKok [Mon, 18 Aug 2025 18:47:00 +0000 (14:47 -0400)] 
regenerate from source

2 months agoclarify error message and fix test
Alan T. DeKok [Mon, 18 Aug 2025 16:01:33 +0000 (12:01 -0400)] 
clarify error message and fix test

2 months agoreset stack properly on BEGIN/END PROTOCOL
Alan T. DeKok [Mon, 18 Aug 2025 15:29:00 +0000 (11:29 -0400)] 
reset stack properly on BEGIN/END PROTOCOL

don't push two frames onto the stack for BEGIN PROTOCOL, only
one is needed.  And BEGIN-PROTOCOL only pushed one frame.

reset the main dictionary on BEGIN, and again on END.

Add asserts that when we're done a cycle of BEGIN / END PROTOCOL,
the stack is where we expect it to be, and has the contents of
where we expect it to be.

2 months agowe don't need a dict in each stack frame
Alan T. DeKok [Mon, 18 Aug 2025 12:53:26 +0000 (08:53 -0400)] 
we don't need a dict in each stack frame

it's never used, and it's one more opportunity for things to
get out of sync

2 months agoclearer error messages
Alan T. DeKok [Mon, 18 Aug 2025 12:19:23 +0000 (08:19 -0400)] 
clearer error messages

2 months agoend TEST
Alan T. DeKok [Mon, 18 Aug 2025 12:10:09 +0000 (08:10 -0400)] 
end TEST

2 months agominor cleanups
Alan T. DeKok [Mon, 18 Aug 2025 11:55:22 +0000 (07:55 -0400)] 
minor cleanups

no need for "goto return"

2 months agoclarify error messages
Alan T. DeKok [Mon, 18 Aug 2025 10:59:47 +0000 (06:59 -0400)] 
clarify error messages

and remove references to STRUCT, in preparation for removing that
as a keyword

2 months agounion types need a key field, so they must be MEMBERs
Alan T. DeKok [Mon, 18 Aug 2025 10:54:31 +0000 (06:54 -0400)] 
union types need a key field, so they must be MEMBERs

2 months agoModules returning `updated` in authenticate calls should be success
Nick Porter [Mon, 18 Aug 2025 14:42:13 +0000 (15:42 +0100)] 
Modules returning `updated` in authenticate calls should be success

2 months agoImprove sample rlm_dpsk config
Nick Porter [Mon, 18 Aug 2025 14:41:29 +0000 (15:41 +0100)] 
Improve sample rlm_dpsk config

2 months agoAdd sample policy for extracting binary MAC address from Called-Station-Id
Nick Porter [Mon, 18 Aug 2025 14:24:16 +0000 (15:24 +0100)] 
Add sample policy for extracting binary MAC address from Called-Station-Id

As needed by rlm_dpsk

2 months agoCorrect reference
Nick Porter [Mon, 18 Aug 2025 13:40:00 +0000 (14:40 +0100)] 
Correct reference

2 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/der.tar
github-actions[bot] [Mon, 18 Aug 2025 04:39:50 +0000 (04:39 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/der.tar

2 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/cbor.tar
github-actions[bot] [Mon, 18 Aug 2025 04:36:28 +0000 (04:36 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/cbor.tar

2 months agoclean up member size checks, and catch more corner cases
Alan T. DeKok [Sat, 16 Aug 2025 14:59:05 +0000 (10:59 -0400)] 
clean up member size checks, and catch more corner cases

2 months agorename field to more correctly describe it's function
Alan T. DeKok [Sat, 16 Aug 2025 14:00:35 +0000 (10:00 -0400)] 
rename field to more correctly describe it's function

arguably we should also use dict_ext instead of hard-coded thing,
but that involves a little more work which we will avoid for now.

2 months agomove struct_finalise to the stack frame
Alan T. DeKok [Fri, 15 Aug 2025 17:00:16 +0000 (13:00 -0400)] 
move struct_finalise to the stack frame

so that it can be called when popped.

This simplifies the logic in the main loop which reads files,
and removes corner cases.  It also lets us add finalization for
other data types, like union

2 months agobetter checks for BEGIN / END
Alan T. DeKok [Fri, 15 Aug 2025 14:13:05 +0000 (10:13 -0400)] 
better checks for BEGIN / END

when a file has BEGIN without END, or END without BEGIN, it's now
caught in more (i.e. all) situations, and has better error
messages

2 months agoput current filename / line into dctx
Alan T. DeKok [Fri, 15 Aug 2025 13:25:13 +0000 (09:25 -0400)] 
put current filename / line into dctx

so that we don't mangle the filename in the stack frame.
this makes it easier to track which thing is taken from which file.

2 months agoDon't cause SQL module to fail if sql_user_name expansion produces no result
Nick Porter [Fri, 15 Aug 2025 13:55:13 +0000 (14:55 +0100)] 
Don't cause SQL module to fail if sql_user_name expansion produces no result

This will typically be the case in accounting On and Off processing
where there is no User-Name attribute, but the expansion has been set
for use in other packet processing.

2 months agoAdd test of attr_filter where key attribute is missing
Nick Porter [Fri, 15 Aug 2025 13:50:28 +0000 (14:50 +0100)] 
Add test of attr_filter where key attribute is missing

2 months agoMove rlm_attr_filter to use a call_env
Nick Porter [Fri, 15 Aug 2025 13:46:08 +0000 (14:46 +0100)] 
Move rlm_attr_filter to use a call_env

And fallback to DEFAULT if the key expansion produces no output.

2 months agoaudit errors for fr_strrror_printf_push() versus ifr_strerror_printf()
Alan T. DeKok [Fri, 15 Aug 2025 11:06:29 +0000 (07:06 -0400)] 
audit errors for fr_strrror_printf_push() versus ifr_strerror_printf()

we should only call the push function after we have called another
API function which returns an error.

If we do a check ourselves, we should just call the printf()/const()
function.  That resets the error stack so we are the first error.

Otherwise when we call push() incorrectly, an old error will
remain on the error stack, leading to confusion

2 months agomore cleanups
Alan T. DeKok [Fri, 15 Aug 2025 10:58:35 +0000 (06:58 -0400)] 
more cleanups

minor formatting / variable use

BEGIN-PROTOCOL can't be used inside of any BEGIN/END block, and
not just inside of another BEGIN-PROTOCOL

use push function for test, instead of manually changing the stack

2 months agouse macros more often for common things
Alan T. DeKok [Fri, 15 Aug 2025 10:33:50 +0000 (06:33 -0400)] 
use macros more often for common things

2 months agocheck and enforce PROTOCOL location
Alan T. DeKok [Fri, 15 Aug 2025 10:46:02 +0000 (06:46 -0400)] 
check and enforce PROTOCOL location

so that we can just push the new protocol, and we don't need
a push_or_update().  Which was wrong, because it incremented the
stack pointer before checking the stack entry