]> git.ipfire.org Git - thirdparty/freeradius-server.git/log
thirdparty/freeradius-server.git
4 months agoSet an initial value for worker_id
Nick Porter [Mon, 23 Mar 2026 09:23:22 +0000 (09:23 +0000)] 
Set an initial value for worker_id

So that fr_schedule_workder_id() returns -1 when called from the main
thread, avoiding confusion with worker 0.

4 months agoMulti-server tests only run on the FreeRADIUS repo
Nick Porter [Fri, 20 Mar 2026 10:25:47 +0000 (10:25 +0000)] 
Multi-server tests only run on the FreeRADIUS repo

4 months agoBump GitHub action versions for Node.js 24
Nick Porter [Fri, 20 Mar 2026 10:23:25 +0000 (10:23 +0000)] 
Bump GitHub action versions for Node.js 24

4 months agocomplain if receipt file is the same as one of the input files
Alan T. DeKok [Sun, 22 Mar 2026 19:25:35 +0000 (08:25 +1300)] 
complain if receipt file is the same as one of the input files

4 months agoadd more tests for corner cases
Alan T. DeKok [Sun, 22 Mar 2026 19:30:40 +0000 (08:30 +1300)] 
add more tests for corner cases

4 months agoencode OID subidentifier value 0 as single 0x00 byte
ethan-thompson [Mon, 16 Mar 2026 19:38:53 +0000 (15:38 -0400)] 
encode OID subidentifier value 0 as single 0x00 byte

Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
4 months agoavoid buffer overread in SET OF lexicographic comparator
ethan-thompson [Mon, 16 Mar 2026 19:37:13 +0000 (15:37 -0400)] 
avoid buffer overread in SET OF lexicographic comparator

Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
4 months agoRemove file containing PII accidentally committed in b0f4123c84
Arran Cudbard-Bell [Sat, 21 Mar 2026 04:38:24 +0000 (22:38 -0600)] 
Remove file containing PII accidentally committed in b0f4123c84

4 months agoEmit the command that failed when it fails
Arran Cudbard-Bell [Thu, 19 Mar 2026 16:36:16 +0000 (10:36 -0600)] 
Emit the command that failed when it fails

4 months agomulti-server: add daily scheduled run for all tests
Arran Cudbard-Bell [Thu, 19 Mar 2026 04:43:46 +0000 (22:43 -0600)] 
multi-server: add daily scheduled run for all tests

Schedule runs at 2pm EST (7pm UTC) daily, executing all tests
including longer-running variants.  Push and PR triggers continue
to run only the short CI tests.

4 months agodocument behavior of $ENV{} with conditions
Alan T. DeKok [Fri, 20 Mar 2026 12:50:11 +0000 (08:50 -0400)] 
document behavior of $ENV{} with conditions

and add tests for current behavior, so at least we will be able
to detect when the behavior is wrong

4 months agomissing environment variables in strings can be a parse error
Alan T. DeKok [Thu, 19 Mar 2026 21:03:33 +0000 (17:03 -0400)] 
missing environment variables in strings can be a parse error

foo = $ENV{MISSING} is an error
foo = "$ENV{MISSING}" is OK

$INCLUDE foo/$ENV{MISSING} is an error

if (... $ENV{MISSING} ...) is OK, but should be updated so that
it only allows it inside of a quoted string

4 months agoin some cases, "no data" is a parse error
Alan T. DeKok [Thu, 19 Mar 2026 20:23:50 +0000 (16:23 -0400)] 
in some cases, "no data" is a parse error

and add tests to match

4 months agoadd and use error for "input is empty"
Alan T. DeKok [Thu, 19 Mar 2026 20:21:41 +0000 (16:21 -0400)] 
add and use error for "input is empty"

when the input shouldn't be empty.  this is different from the
case of "got input, but it wasn't what I expected"

4 months agotweak assertion for empty input
Alan T. DeKok [Thu, 19 Mar 2026 20:00:36 +0000 (16:00 -0400)] 
tweak assertion for empty input

4 months agotweak developer index page for clarity
Alan T. DeKok [Thu, 19 Mar 2026 19:12:24 +0000 (15:12 -0400)] 
tweak developer index page for clarity

4 months agonote that people should use github
Alan T. DeKok [Thu, 19 Mar 2026 17:18:19 +0000 (13:18 -0400)] 
note that people should use github

4 months agoformat and note github access tokens
Alan T. DeKok [Thu, 19 Mar 2026 17:12:05 +0000 (13:12 -0400)] 
format and note github access tokens

4 months agoAdd test of association_time to redis_ippool tests
Nick Porter [Thu, 19 Mar 2026 17:54:35 +0000 (17:54 +0000)] 
Add test of association_time to redis_ippool tests

4 months agoRenumber lua script lines
Nick Porter [Thu, 19 Mar 2026 17:53:53 +0000 (17:53 +0000)] 
Renumber lua script lines

4 months agoExpiry status is not relevant to sticky IP allocation
Nick Porter [Thu, 19 Mar 2026 17:51:14 +0000 (17:51 +0000)] 
Expiry status is not relevant to sticky IP allocation

If the device -> IP association persists, and the IP has not been
allocated to another device then re-allocate it to the requesting
device.

4 months agoAdd association_time option to rlm_redis_ippool
Nick Porter [Thu, 19 Mar 2026 16:45:02 +0000 (16:45 +0000)] 
Add association_time option to rlm_redis_ippool

To allow for "sticky" addressing.

This allows the owner -> IP association to last longer than the address
lease, so that allocation requests can return the address previously
used by a device if it has not been allocated to another owner since the
lease expiry.

4 months agoAdd fr_coord_pair_int_request_start()
Nick Porter [Thu, 19 Mar 2026 12:07:08 +0000 (12:07 +0000)] 
Add fr_coord_pair_int_request_start()

To start a request within a coordinator rather than in response to
worker -> coordinator data.

4 months agoBreak apart coord_pair_request_bootstrap
Nick Porter [Thu, 19 Mar 2026 11:51:14 +0000 (11:51 +0000)] 
Break apart coord_pair_request_bootstrap

To allow for requests being run through a coordinator process module to
come from sources other than worker -> coordinator data.

4 months agoAdd fr_coord_pair_request_coord_pair
Nick Porter [Wed, 18 Mar 2026 15:26:10 +0000 (15:26 +0000)] 
Add fr_coord_pair_request_coord_pair

To retrieve the coord_pair associated with a given request
being run through a process module.

4 months agoAdd fr_coord_worker_reply_broadcast
Nick Porter [Wed, 18 Mar 2026 15:20:30 +0000 (15:20 +0000)] 
Add fr_coord_worker_reply_broadcast

So replies from coordinator process modules can be sent to all workers.

4 months agoCorrect naming
Nick Porter [Wed, 18 Mar 2026 15:19:14 +0000 (15:19 +0000)] 
Correct naming

4 months agoset variables to NULL on free
Alan T. DeKok [Thu, 19 Mar 2026 15:16:18 +0000 (11:16 -0400)] 
set variables to NULL on free

and goto correct cleanup path

4 months agore-add request=child, as it's used to set pairs in the child
Alan T. DeKok [Thu, 19 Mar 2026 15:15:04 +0000 (11:15 -0400)] 
re-add request=child, as it's used to set pairs in the child

4 months agoalways add tls client hello version
Alan T. DeKok [Thu, 19 Mar 2026 15:03:09 +0000 (11:03 -0400)] 
always add tls client hello version

4 months agofree extensions in more error cases
Alan T. DeKok [Thu, 19 Mar 2026 13:45:16 +0000 (09:45 -0400)] 
free extensions in more error cases

4 months agoonly set CRL if we're using certificates
Alan T. DeKok [Thu, 19 Mar 2026 09:22:09 +0000 (05:22 -0400)] 
only set CRL if we're using certificates

and complain if check_crl=yes, but OpenSSL doesn't have the
relevant flags

4 months agoset ASYNC for non-certificate case, too
Alan T. DeKok [Thu, 19 Mar 2026 08:47:20 +0000 (04:47 -0400)] 
set ASYNC for non-certificate case, too

4 months agoadd server libraries to json fuzzer
Alan T. DeKok [Thu, 19 Mar 2026 07:00:41 +0000 (03:00 -0400)] 
add server libraries to json fuzzer

4 months agoadd FR_TRUNK_LIST_FUNC(draining, trunk_connection_t)
Catalina Pineros [Wed, 18 Mar 2026 18:15:46 +0000 (14:15 -0400)] 
add FR_TRUNK_LIST_FUNC(draining, trunk_connection_t)

4 months agoadd FR_TRUNK_LIST_FUNC(inactive_draining, trunk_connection_t)
Catalina Pineros [Wed, 18 Mar 2026 17:44:00 +0000 (13:44 -0400)] 
add FR_TRUNK_LIST_FUNC(inactive_draining, trunk_connection_t)

4 months agoadd FR_TRUNK_LIST_FUNC(inactive, trunk_connection_t)
Catalina Pineros [Wed, 18 Mar 2026 15:22:52 +0000 (11:22 -0400)] 
add FR_TRUNK_LIST_FUNC(inactive, trunk_connection_t)

4 months agouse FR_TRUNK_LIST_FUNC for 'full' list
Catalina Pineros [Thu, 19 Mar 2026 06:53:34 +0000 (02:53 -0400)] 
use FR_TRUNK_LIST_FUNC for 'full' list

4 months agoupdate FR_TRUNC_LIST macro to specify a target data type
Catalina Pineros [Thu, 19 Mar 2026 06:37:09 +0000 (02:37 -0400)] 
update FR_TRUNC_LIST macro to specify a target data type

4 months agofix typos in license
Alan T. DeKok [Thu, 19 Mar 2026 06:17:55 +0000 (02:17 -0400)] 
fix typos in license

4 months agofix typos
Catalina Pineros [Wed, 18 Mar 2026 20:16:54 +0000 (16:16 -0400)] 
fix typos

4 months agofix typos
Catalina Pineros [Tue, 17 Mar 2026 15:47:14 +0000 (11:47 -0400)] 
fix typos

4 months agofix typo in comment
Catalina Pineros [Tue, 17 Mar 2026 15:35:48 +0000 (11:35 -0400)] 
fix typo in comment
(rlm_redis_ippool_tool: fix wrong doc comment on ippool_tool_stats_t.free 354)

4 months agomulti-server: use fixed subnet and remove env-setup.sh
Arran Cudbard-Bell [Thu, 19 Mar 2026 02:57:33 +0000 (20:57 -0600)] 
multi-server: use fixed subnet and remove env-setup.sh

Set TEST_SUBNET via compose environment with a fixed 172.28.0.0/16
subnet (overridable via test_subnet param). Remove env-setup.sh
which ran apt-get install on every container startup.

4 months agoPass the scheduler as a context for thread instantiate
Arran Cudbard-Bell [Thu, 19 Mar 2026 02:04:15 +0000 (20:04 -0600)] 
Pass the scheduler as a context for thread instantiate

4 months agoCreate thread instance data for the main thread too (when not running in single threa...
Arran Cudbard-Bell [Wed, 18 Mar 2026 23:32:15 +0000 (17:32 -0600)] 
Create thread instance data for the main thread too (when not running in single threaded mode)

This is needed for triggers to be able to call xlats

4 months agomulti-server: refactor test framework for parameterised tests
Arran Cudbard-Bell [Wed, 18 Mar 2026 17:22:33 +0000 (11:22 -0600)] 
multi-server: refactor test framework for parameterised tests

Restructure the multi-server test framework so that each test is
defined by a single YAML params file.  All templates (compose,
radiusd configs, test steps) are rendered from shared Jinja2
templates using those params.

- Replace monolithic all.mk with macro-based framework that
  auto-discovers test suites and param files
- Move configs to configs/freeradius/, environments to environments/
- Rename test suites to proxy-accept and proxy-multihop-accept
- Use *.test.yml for param files, *.ci.test.yml for CI-only tests
- Add test.multi-server.ci target for short CI tests
- Render all build products into build/ directory
- Support parallel execution with unique Docker project names
- Add healthchecks to compose templates
- Remove hardcoded port mappings (containers use internal networking)
- Add CI workflow for GitHub Actions with Docker-in-Docker

4 months agodocker: build libkqueue from source on non-amd64 architectures
Arran Cudbard-Bell [Wed, 18 Mar 2026 02:14:45 +0000 (20:14 -0600)] 
docker: build libkqueue from source on non-amd64 architectures

The NetworkRADIUS extras repository only provides amd64 packages
for libkqueue. On other architectures (e.g. arm64), build libkqueue
from source and install the resulting .deb packages in both the
build and runtime stages.

4 months agodebian: remove --without-rlm_sql_unixodbc from rules
Arran Cudbard-Bell [Wed, 18 Mar 2026 01:44:23 +0000 (19:44 -0600)] 
debian: remove --without-rlm_sql_unixodbc from rules

The unixodbc module was explicitly disabled in configure but the
freeradius-unixodbc package was still defined in control.in with
its .install file expecting the .so to exist, causing dh_install
to fail with missing files.

4 months agoclean up variable on exit
Alan T. DeKok [Wed, 18 Mar 2026 10:51:52 +0000 (06:51 -0400)] 
clean up variable on exit

4 months agouse goto inside "if" instead of "break"
Alan T. DeKok [Wed, 18 Mar 2026 10:50:58 +0000 (06:50 -0400)] 
use goto inside "if" instead of "break"

4 months agoCorrect comments
Nick Porter [Wed, 18 Mar 2026 11:29:37 +0000 (11:29 +0000)] 
Correct comments

4 months agoRemove incorrect frees
Nick Porter [Mon, 16 Mar 2026 12:55:35 +0000 (12:55 +0000)] 
Remove incorrect frees

4 months agoprint relevant variable in error message
Catalina Pineros [Tue, 17 Mar 2026 14:25:17 +0000 (10:25 -0400)] 
print relevant variable in error message

4 months agofix typos in comments
Catalina Pineros [Mon, 16 Mar 2026 18:19:18 +0000 (14:19 -0400)] 
fix typos in comments

4 months agocatch corner case of allocation failure
Alan T. DeKok [Wed, 18 Mar 2026 09:55:18 +0000 (05:55 -0400)] 
catch corner case of allocation failure

4 months agomove bnctx to thread instance data
Alan T. DeKok [Wed, 18 Mar 2026 09:51:46 +0000 (05:51 -0400)] 
move bnctx to thread instance data

4 months agoadd DIAG_OFF to quiet C compiler warnings
Alan T. DeKok [Wed, 18 Mar 2026 09:51:20 +0000 (05:51 -0400)] 
add DIAG_OFF to quiet C compiler warnings

4 months agofix typo
Alan T. DeKok [Tue, 17 Mar 2026 20:51:58 +0000 (16:51 -0400)] 
fix typo

4 months agoformat to follow coding style / standards
Alan T. DeKok [Tue, 17 Mar 2026 12:56:51 +0000 (08:56 -0400)] 
format to follow coding style / standards

4 months agoOSS-Fuzz: Add fuzzer for json
Arthur Chan [Thu, 12 Mar 2026 22:10:03 +0000 (22:10 +0000)] 
OSS-Fuzz: Add fuzzer for json

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
4 months agovarious corner cases in PEAP
Alan T. DeKok [Tue, 17 Mar 2026 05:45:40 +0000 (01:45 -0400)] 
various corner cases in PEAP

when TLS API calls fail, return unlang fail.

4 months agocatch corner cases in TTLS.
Alan T. DeKok [Tue, 17 Mar 2026 04:14:11 +0000 (00:14 -0400)] 
catch corner cases in TTLS.

4 months agocatch various extreme corner cases
Alan T. DeKok [Tue, 17 Mar 2026 03:53:34 +0000 (23:53 -0400)] 
catch various extreme corner cases

4 months agofree memory on error, and reference data which is used multiple times
Alan T. DeKok [Tue, 17 Mar 2026 03:32:38 +0000 (23:32 -0400)] 
free memory on error, and reference data which is used multiple times

4 months agohandle the case of zero-length fields
Alan T. DeKok [Tue, 17 Mar 2026 03:18:41 +0000 (23:18 -0400)] 
handle the case of zero-length fields

memcmp() can't handle NULL pointers.

4 months agojust use CMP() macro
Alan T. DeKok [Tue, 17 Mar 2026 03:14:40 +0000 (23:14 -0400)] 
just use CMP() macro

4 months agoremove assert: fr_value_box_cmp() is now a stable comparison
Alan T. DeKok [Tue, 17 Mar 2026 03:00:50 +0000 (23:00 -0400)] 
remove assert: fr_value_box_cmp() is now a stable comparison

4 months agodon't print anything for "make clean"
Alan T. DeKok [Tue, 17 Mar 2026 02:55:30 +0000 (22:55 -0400)] 
don't print anything for "make clean"

4 months agofixed overflow
Catalina Pineros [Mon, 16 Mar 2026 20:03:02 +0000 (16:03 -0400)] 
fixed overflow

if there is KEY_SLOTS, the valid range is [0, KEY_SLOTS - 1], and key KEY_SLOTS should be outside of redis lot range

4 months agofix typos
Catalina Pineros [Mon, 16 Mar 2026 18:32:33 +0000 (14:32 -0400)] 
fix typos

4 months agofix same typo in comment, in different files
Catalina Pineros [Mon, 16 Mar 2026 16:19:27 +0000 (12:19 -0400)] 
fix same typo in comment, in different files

4 months agofix typo in comment
Catalina Pineros [Mon, 16 Mar 2026 16:14:54 +0000 (12:14 -0400)] 
fix typo in comment

4 months agofix typo in comment
Catalina Pineros [Mon, 16 Mar 2026 16:03:07 +0000 (12:03 -0400)] 
fix typo in comment

4 months agofix typo in comment
Catalina Pineros [Mon, 16 Mar 2026 15:58:19 +0000 (11:58 -0400)] 
fix typo in comment

4 months agofix misplaced parenthesis
Catalina Pineros [Mon, 16 Mar 2026 14:55:13 +0000 (10:55 -0400)] 
fix misplaced parenthesis

tolower(cmd_str[1] != s ) does not actually turn anything into lowercase, since it is evaluating a number and not a char

4 months agofr_value_box_cmp() is used in stable sorts
Alan T. DeKok [Mon, 16 Mar 2026 22:18:39 +0000 (18:18 -0400)] 
fr_value_box_cmp() is used in stable sorts

and therefore can't call fr_digest_cmp().

4 months agouse MEMCMP_FIELDS() in paircmp() too
Alan T. DeKok [Mon, 16 Mar 2026 22:18:07 +0000 (18:18 -0400)] 
use MEMCMP_FIELDS() in paircmp() too

and add note about the secret flag

4 months agodefine MEMCMP_FIELDS() and use it
Alan T. DeKok [Mon, 16 Mar 2026 21:47:10 +0000 (17:47 -0400)] 
define MEMCMP_FIELDS() and use it

which is a little clearer (and less wrappers) than MEMCMP_RETURN

4 months agojust call cache_expire() instead of doing it locally
Alan T. DeKok [Mon, 16 Mar 2026 20:54:40 +0000 (16:54 -0400)] 
just call cache_expire() instead of doing it locally

which handles more corner cases.

also other minor tweaks

4 months agotry to clear out 3 cache entries for every 1 lookup
Alan T. DeKok [Mon, 16 Mar 2026 20:51:56 +0000 (16:51 -0400)] 
try to clear out 3 cache entries for every 1 lookup

which lets us clean up old entries more quickly after a spike of
traffic

4 months agorestore write errno after ftruncate in partial header write path
ethan-thompson [Mon, 16 Mar 2026 16:21:51 +0000 (12:21 -0400)] 
restore write errno after ftruncate in partial header write path

Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
4 months agofix int truncation of ssize_t return from fr_concatv
ethan-thompson [Mon, 16 Mar 2026 15:43:22 +0000 (11:43 -0400)] 
fix int truncation of ssize_t return from fr_concatv

Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
4 months agoskip NULL request pointers when marking batch entries runnable
ethan-thompson [Mon, 16 Mar 2026 15:36:05 +0000 (11:36 -0400)] 
skip NULL request pointers when marking batch entries runnable

Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
4 months agouse fr_hash_string for file table lookup to match filename_hash
ethan-thompson [Mon, 16 Mar 2026 15:27:47 +0000 (11:27 -0400)] 
use fr_hash_string for file table lookup to match filename_hash

Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
4 months agoalways return "updated" if we updated something
Alan T. DeKok [Mon, 16 Mar 2026 18:18:40 +0000 (14:18 -0400)] 
always return "updated" if we updated something

4 months agocache xlat can succeed if it returns no data.
Alan T. DeKok [Mon, 16 Mar 2026 18:16:39 +0000 (14:16 -0400)] 
cache xlat can succeed if it returns no data.

i.e. "no data in cache" isn't an xlat failure, it's an xlat
success with no data.

4 months agoset_ttl with TTL=0 is a noop
Alan T. DeKok [Mon, 16 Mar 2026 18:09:36 +0000 (14:09 -0400)] 
set_ttl with TTL=0 is a noop

4 months agofix cache it logic
Alan T. DeKok [Mon, 16 Mar 2026 14:44:30 +0000 (10:44 -0400)] 
fix cache it logic

so that it follows the documentation

4 months agopass correct pointer to handle
Alan T. DeKok [Mon, 16 Mar 2026 14:44:09 +0000 (10:44 -0400)] 
pass correct pointer to handle

4 months agoreturn 0 on count error, not negative.
Alan T. DeKok [Mon, 16 Mar 2026 14:42:33 +0000 (10:42 -0400)] 
return 0 on count error, not negative.

because the return value is unsigned.

4 months agoallow tests without the full re-run of all tests
Alan T. DeKok [Mon, 16 Mar 2026 15:27:51 +0000 (11:27 -0400)] 
allow tests without the full re-run of all tests

4 months agocache_foo depends on rlm_cache, too
Alan T. DeKok [Mon, 16 Mar 2026 15:20:08 +0000 (11:20 -0400)] 
cache_foo depends on rlm_cache, too

4 months agoCorrect section name
Nick Porter [Mon, 16 Mar 2026 08:32:20 +0000 (08:32 +0000)] 
Correct section name

4 months agominor cleanups in thread code
Alan T. DeKok [Sun, 15 Mar 2026 22:57:08 +0000 (18:57 -0400)] 
minor cleanups in thread code

4 months agomove fd management to narrower scope
Alan T. DeKok [Sun, 15 Mar 2026 22:47:58 +0000 (18:47 -0400)] 
move fd management to narrower scope

and use fileno(fp), so that we have fewer concerns with managing
the fd

4 months agomove common code to fr_thread_start / fr_thread_exit
Alan T. DeKok [Sun, 15 Mar 2026 19:02:28 +0000 (15:02 -0400)] 
move common code to fr_thread_start / fr_thread_exit

4 months agorename fr_thread functions for clarity
Alan T. DeKok [Sun, 15 Mar 2026 18:32:08 +0000 (14:32 -0400)] 
rename fr_thread functions for clarity

4 months agomove thread information to a common data structure
Alan T. DeKok [Sun, 15 Mar 2026 17:54:58 +0000 (13:54 -0400)] 
move thread information to a common data structure

4 months agomove thread create && wait to common functions
Alan T. DeKok [Sun, 15 Mar 2026 15:30:18 +0000 (11:30 -0400)] 
move thread create && wait to common functions