]>
git.ipfire.org Git - thirdparty/freeradius-server.git/log
Alan T. DeKok [Thu, 1 May 2025 16:05:30 +0000 (12:05 -0400)]
use less memory. Don't allocate struct and then over-write it
Alan T. DeKok [Thu, 1 May 2025 14:55:33 +0000 (10:55 -0400)]
add / update list disarm / arm, which is only for sub-lists
when a list is disarmed, its events aren't run. Events can still
be added to it. But because its event has been removed from the
parent timer, no events will ever run.
when a list is re-armed, it runs all events which have been
pending during the disarm period. The caller is likely to clean
up events before re-arming the list
Alan T. DeKok [Thu, 1 May 2025 11:55:44 +0000 (07:55 -0400)]
add support for 'continue'
along with documentation and tests
Alan T. DeKok [Thu, 1 May 2025 11:19:44 +0000 (07:19 -0400)]
allow "break" inside of "case"
and "switch" is then marked as the break point.
Also update the "break" checks to use the flags instead of
unlang types
Alan T. DeKok [Thu, 1 May 2025 11:03:48 +0000 (07:03 -0400)]
retry limits return timeout, not fail
Alan T. DeKok [Thu, 1 May 2025 11:01:22 +0000 (07:01 -0400)]
tweak and refer to rcode table
Alan T. DeKok [Thu, 1 May 2025 11:01:17 +0000 (07:01 -0400)]
document timeout rcode
Arran Cudbard-Bell [Wed, 30 Apr 2025 20:24:30 +0000 (16:24 -0400)]
uflags don't unwind anything anymore
Arran Cudbard-Bell [Wed, 30 Apr 2025 19:42:37 +0000 (15:42 -0400)]
Ensure old is initialised in all code paths
Arran Cudbard-Bell [Wed, 30 Apr 2025 19:28:32 +0000 (15:28 -0400)]
Shutup GCC
Arran Cudbard-Bell [Wed, 30 Apr 2025 19:18:03 +0000 (15:18 -0400)]
Make redundant work with "timeout"
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:37:42 +0000 (14:37 -0400)]
Initialise break/return depth to a frame deeper than the current one in the stack if we're not actually breaking or returning
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:37:13 +0000 (14:37 -0400)]
Check we have a stack as is done elsewhere
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:28:19 +0000 (14:28 -0400)]
Update docs for timeout/catch
Mostly removing evidence of its previous existence
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:16:03 +0000 (14:16 -0400)]
Lack of siblings to catch sections should not trigger an assert
Lack of catch section should not trigger a warning
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:15:26 +0000 (14:15 -0400)]
Remove timeout { ... } catch { ... } and add support for timeout rcodes
timeout { ... } now sets a timeout rcode that can be caught like any other code.
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:13:58 +0000 (14:13 -0400)]
Regression tests for try/catch
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:13:24 +0000 (14:13 -0400)]
Move success out of the catch section, this ensure execution continues
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:13:00 +0000 (14:13 -0400)]
Log what we're catching
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:12:11 +0000 (14:12 -0400)]
If we pass a NULL next to frame_set_next, just return calculate result, and NULLify the frame->next pointer
Arran Cudbard-Bell [Wed, 30 Apr 2025 18:11:42 +0000 (14:11 -0400)]
Add a timeout rcode
This causes process modules to not respond to requests
Arran Cudbard-Bell [Wed, 30 Apr 2025 04:13:01 +0000 (00:13 -0400)]
Remove interpreter stop callback
Simplify use of request master state
Arran Cudbard-Bell [Wed, 30 Apr 2025 04:11:54 +0000 (00:11 -0400)]
frame_pop can pop the top frame too
Arran Cudbard-Bell [Tue, 29 Apr 2025 23:51:36 +0000 (19:51 -0400)]
We don't need to set the result when we're cancelling the request
Arran Cudbard-Bell [Tue, 29 Apr 2025 23:15:59 +0000 (19:15 -0400)]
Move to synchronous stack unwinding on cancellation
Don't set break and return points in stack frames, represent them as intrinsic properties of operations.
Add "op" flags for brackets, set rcode, return point and break point.
Arran Cudbard-Bell [Tue, 29 Apr 2025 23:10:48 +0000 (19:10 -0400)]
Check alloc
Arran Cudbard-Bell [Tue, 29 Apr 2025 23:10:03 +0000 (19:10 -0400)]
WS
WS
WS
WS
Arran Cudbard-Bell [Tue, 29 Apr 2025 23:08:14 +0000 (19:08 -0400)]
Move unwind frame flags into an enum
Arran Cudbard-Bell [Tue, 29 Apr 2025 23:04:12 +0000 (19:04 -0400)]
s/UNWIND_FLAG/UNWIND_FRAME_FLAG/g
Arran Cudbard-Bell [Tue, 29 Apr 2025 23:01:03 +0000 (19:01 -0400)]
s/unlang_frame_signal/unlang_stack_signal/g
Arran Cudbard-Bell [Tue, 29 Apr 2025 22:56:07 +0000 (18:56 -0400)]
Don't need to set fields to false for unlang ops
Alan T. DeKok [Wed, 30 Apr 2025 19:29:55 +0000 (15:29 -0400)]
shut up compiler
it's too dumb to see that to_cast is initialized on all paths
Alan T. DeKok [Wed, 30 Apr 2025 19:05:41 +0000 (15:05 -0400)]
rename "proto = detail" to "handler = detail"
"proto" is still accepted for compatibility.
However, it was too generic / conflicting, and was therefore
confusing.
Similarly, there were comments saying "listen load" would use
name2 to open the "load" module. But name2 is now used for
something else, and the code was deleted a long time ago.
Alan T. DeKok [Wed, 30 Apr 2025 18:21:42 +0000 (14:21 -0400)]
complain when no 'send foo' section is found for reply 'foo'
However, this is not a fatal error. Arguably, it should be a
compile-time error and not a run-time error. But it's hard to
automatically correlate 'recv foo' with 'send reply-to-foo' as
there can be many different kinds of replies.
Having it a run-time error also means that the admin gets warned
on every packet, which means that they are slightly more likely
to read it and then do something about it.
Alan T. DeKok [Wed, 30 Apr 2025 18:04:30 +0000 (14:04 -0400)]
every 'type = foo' also requires a 'recv foo'
otherwise the server won't be able to process packets!
Alan T. DeKok [Wed, 30 Apr 2025 17:36:01 +0000 (13:36 -0400)]
all listeners must have a 'transport' section
Alan T. DeKok [Wed, 30 Apr 2025 17:30:08 +0000 (13:30 -0400)]
every listener MUST have an "open" call
as a development requirement
Alan T. DeKok [Wed, 30 Apr 2025 17:12:11 +0000 (13:12 -0400)]
refuse to start when no 'listen' sections are configured.
It helps to fail with a descriptive error, rather than silently
doing the wrong thing.
Nick Porter [Wed, 30 Apr 2025 13:47:28 +0000 (14:47 +0100)]
Ignore packaging system upgrade produced config files
Both deb and rpm packaging systems will detect changed config files and
create extra files, which if we load them will create conflicts.
Nick Porter [Wed, 30 Apr 2025 11:19:50 +0000 (12:19 +0100)]
Add notes on rlm_python changes to upgrade doc
nolade [Fri, 25 Apr 2025 20:59:37 +0000 (16:59 -0400)]
docs: Reorganized sqlippool section and 1st pass edit on content.
Reorganize SQL-IP-POOL section and xref/link updates
Alan T. DeKok [Tue, 29 Apr 2025 14:46:24 +0000 (10:46 -0400)]
replace %{1} with %regex.match(1)
like some other languages.
The unfortunate outcome is that this makes a lot of things much
more complex visually. But it's a bit more consistent with the
rest of the xlat functions. And, for the v4 way of "less magic
and fewer special cases".
For now, %{1} etc. is still functional
and enable %regex.match() in non-PCRE builds
Alan T. DeKok [Tue, 29 Apr 2025 14:29:18 +0000 (10:29 -0400)]
%regex() -> %regex.match()
nolade [Mon, 28 Apr 2025 21:15:28 +0000 (17:15 -0400)]
doc: import customer docs Recover SQL IP Pools (HIVE 3406)
Alan T. DeKok [Tue, 29 Apr 2025 13:43:18 +0000 (09:43 -0400)]
add test for local variables in subrequest
Nick Porter [Tue, 29 Apr 2025 07:32:26 +0000 (08:32 +0100)]
Allow local variables in subrequests
Alan T. DeKok [Mon, 28 Apr 2025 16:23:04 +0000 (12:23 -0400)]
it helps to update this, too
Alan T. DeKok [Mon, 28 Apr 2025 15:51:27 +0000 (11:51 -0400)]
allow replication to TCP sockets
where we need a trunk, and a new set of callback functions
Alan T. DeKok [Mon, 28 Apr 2025 15:46:50 +0000 (11:46 -0400)]
packet verification is handled in the BIO callbacks
by the rlm_radius_verify() function.
ideally, we should also move any tracking checks and decode
routines to that function, too
Alan T. DeKok [Mon, 28 Apr 2025 12:05:48 +0000 (08:05 -0400)]
don't convert the input key to a string
we're hashing it for load-balance purposes. So we can just hash
the raw data.
and since tmpl_expand() now produces errors, we don't need to
Alan T. DeKok [Mon, 28 Apr 2025 11:57:15 +0000 (07:57 -0400)]
just use fr_value_box_cast() in tmpl_to_type
as it means there are fewer corner cases in the code.
and add RDEBUG messages, so that the caller gets told when things
go wrong.
note that this function is only called from a few places:
tmpl_dcursor, which needs uint8_t
ldap maps, sql maps, attr_filter, and load-balance, which all
need strings.
Alan T. DeKok [Mon, 28 Apr 2025 19:51:35 +0000 (15:51 -0400)]
resolve tmpls before returning them to LDAP
Alan T. DeKok [Mon, 28 Apr 2025 19:27:47 +0000 (15:27 -0400)]
unconnected replication sockets can only be UDP
Nick Porter [Mon, 28 Apr 2025 14:23:00 +0000 (15:23 +0100)]
Add test to proxy detached subrequest
and missing files from rlm_radius originate test
Nick Porter [Mon, 28 Apr 2025 14:07:53 +0000 (15:07 +0100)]
Subrequests are talloc'd not reserved from the slab
Nick Porter [Mon, 28 Apr 2025 12:12:56 +0000 (13:12 +0100)]
Add redis xlat tests
Checking for:
- basic SET / GET
- return of NULL can fall back to an alternate value
- return of multiple values with HMGET
Nick Porter [Mon, 28 Apr 2025 11:40:13 +0000 (12:40 +0100)]
Add test of rlm_radius as originator using subrequest
Nick Porter [Mon, 28 Apr 2025 11:10:17 +0000 (12:10 +0100)]
Better assert for boxes which can be truthy
Testing fr_type_is_leaf excludes FR_TYPE_NULL, which is a valid "false"
box.
Nick Porter [Mon, 28 Apr 2025 10:39:23 +0000 (11:39 +0100)]
Add call to %delay() to detached subrequest test
Causes the subrequest to yield and resume.
Detached requests don't perform normal time-tracking - this adds a
regression test to ensure time-tracking state changes don't cause issues
with detached requests.
Alan T. DeKok [Mon, 28 Apr 2025 10:52:10 +0000 (06:52 -0400)]
update subrequest with more examples
and point the default virtual server to the subrequest documentation
Alan T. DeKok [Sun, 27 Apr 2025 14:35:49 +0000 (10:35 -0400)]
exit after 5min in the tests
and ignore -e in ndebug builds, rather than complain.
Alan T. DeKok [Sun, 27 Apr 2025 13:45:05 +0000 (09:45 -0400)]
build on systems without lsb_release
Alan T. DeKok [Sun, 27 Apr 2025 12:56:46 +0000 (08:56 -0400)]
rewrite tmpl_to_atype()
There is a weird corner case where it returns an error without
printing any complaints. But only for ubuntu-24-linux-gcc-ndebug.
https://github.com/FreeRADIUS/freeradius-server/actions/runs/
14692203645 /job/
41229053000 #step:10:2949
The input is a tmpl type data, with data type time_delta.
The output is a fr_time_delta_t.
Both clang scan and coverity think that everything is fine.
All runs with ubsan / asan / lsan don't show errors.
Yet it still fails, but only on one platform. And consistently.
Since all attempts at debugging have failed, the solution is to
change the code so that it more clearly separates out the various
paths. Another result is that it does less copying of intermediate
boxes.
Alan T. DeKok [Sun, 27 Apr 2025 11:25:40 +0000 (07:25 -0400)]
remove unused assignment
nolade [Wed, 23 Apr 2025 20:38:01 +0000 (16:38 -0400)]
Added auditing info from customer doc and wiki.
Updated Optimization directory structure to standard format / index file.
Added links to tools man pages included with antora docs.
nolade [Tue, 22 Apr 2025 19:31:04 +0000 (15:31 -0400)]
update and copy/edit Howto Guides >> Vendors section
Alan T. DeKok [Sat, 26 Apr 2025 16:47:33 +0000 (12:47 -0400)]
rename subst -> str.subst
Alan T. DeKok [Sat, 26 Apr 2025 16:37:54 +0000 (12:37 -0400)]
print out the thing we looked up, too
Alan T. DeKok [Sat, 26 Apr 2025 16:37:20 +0000 (12:37 -0400)]
use newer / consistent function names
Alan T. DeKok [Sat, 26 Apr 2025 13:11:38 +0000 (09:11 -0400)]
print out error via RPEDEBUG when calculating a result
Alan T. DeKok [Sat, 26 Apr 2025 12:20:10 +0000 (08:20 -0400)]
re-run tests if the conf files change, too
Alan T. DeKok [Sat, 26 Apr 2025 12:00:16 +0000 (08:00 -0400)]
all tmpls should be resolved before they are expanded
Alan T. DeKok [Fri, 25 Apr 2025 15:44:06 +0000 (11:44 -0400)]
rename xlat functions.
via scripts, with some manual fixes to the unit tests. Changing the length of an xlat
function changes the offset in a string where an error occurs.
perl -p -i -e 's/%concat\(/%str.concat\(/g' $(git grep -l 'concat' doc/antora raddb src/tests)
perl -p -i -e 's/%explode\(/%str.split\(/g' $(git grep -l 'explode' doc/antora raddb src/tests)
perl -p -i -e 's/%hmacmd5\(/%hmac.md5\(/g' $(git grep -l 'hmacmd5' doc/antora raddb src/tests)
perl -p -i -e 's/%hmacmd4\(/%hmac.md4\(/g' $(git grep -l 'hmacmd4' doc/antora raddb src/tests)
perl -p -i -e 's/%hmacsha1\(/%hmac.sha1\(/g' $(git grep -l 'hmacsha1' doc/antora raddb src/tests)
perl -p -i -e 's/%lpad\(/%str.lpad\(/g' $(git grep -l 'lpad' doc/antora raddb src/tests)
perl -p -i -e 's/%rpad\(/%str.rpad\(/g' $(git grep -l 'rpad' doc/antora raddb src/tests)
perl -p -i -e 's/%substr\(/%str.substr\(/g' $(git grep -l 'substr' doc/antora raddb src/tests)
perl -p -i -e 's/%randstr\(/%str.rand\(/g' $(git grep -l 'randstr' doc/antora raddb src/tests)
perl -p -i -e 's/%md4\(/%hash.md4\(/g' $(git grep -l 'md4' doc/antora raddb src/tests)
perl -p -i -e 's/%md5\(/%hash.md5\(/g' $(git grep -l 'md5' doc/antora raddb src/tests)
perl -p -i -e 's/%sha2_224\(/%hash.sha2_224\(/g' $(git grep -l 'sha2_224' doc/antora raddb src/tests)
perl -p -i -e 's/%sha2_256\(/%hash.sha2_256\(/g' $(git grep -l 'sha2_256' doc/antora raddb src/tests)
perl -p -i -e 's/%sha2_384\(/%hash.sha2_384\(/g' $(git grep -l 'sha2_384' doc/antora raddb src/tests)
perl -p -i -e 's/%sha2_512\(/%hash.sha2_512\(/g' $(git grep -l 'sha2_512' doc/antora raddb src/tests)
perl -p -i -e 's/%blake2s_256\(/%hash.blake2s_256\(/g' $(git grep -l 'blake2s_256' doc/antora raddb src/tests)
perl -p -i -e 's/%blake2b_512\(/%hash.blake2b_512\(/g' $(git grep -l 'blake2b_512' doc/antora raddb src/tests)
perl -p -i -e 's/%sha3_224\(/%hash.sha3_224\(/g' $(git grep -l 'sha3_224' doc/antora raddb src/tests)
perl -p -i -e 's/%sha3_256\(/%hash.sha3_256\(/g' $(git grep -l 'sha3_256' doc/antora raddb src/tests)
perl -p -i -e 's/%sha3_384\(/%hash.sha3_384\(/g' $(git grep -l 'sha3_384' doc/antora raddb src/tests)
perl -p -i -e 's/%sha3_512\(/%hash.sha3_512\(/g' $(git grep -l 'sha3_512' doc/antora raddb src/tests)
perl -p -i -e 's/%tolower\(/%str.lower\(/g' $(git grep -l 'tolower' doc/antora raddb src/tests)
perl -p -i -e 's/%toupper\(/%str.upper\(/g' $(git grep -l 'toupper' doc/antora raddb src/tests)
perl -p -i -e 's/%urlquote\(/%url.quote\(/g' $(git grep -l 'urlquote' doc/antora raddb src/tests)
perl -p -i -e 's/%urlunquote\(/%url.unquote\(/g' $(git grep -l 'urlunquote' doc/antora raddb src/tests)
Arran Cudbard-Bell [Fri, 25 Apr 2025 18:36:29 +0000 (14:36 -0400)]
Store and restore log indentation when frames are popped
This helps us get back to sane indentation when we're forcefully cancelling frames.
Arran Cudbard-Bell [Fri, 25 Apr 2025 16:25:59 +0000 (12:25 -0400)]
Ensure insert is always initialised to quiet clang scan
Arran Cudbard-Bell [Fri, 25 Apr 2025 15:48:47 +0000 (11:48 -0400)]
Quiet clang scan complaining about how it's invoked. -c is redundant here.
Arran Cudbard-Bell [Fri, 25 Apr 2025 15:33:49 +0000 (11:33 -0400)]
Nuke chroot, it's likely not used and causes clang scan to complain
Arran Cudbard-Bell [Fri, 25 Apr 2025 13:48:00 +0000 (09:48 -0400)]
Ignore key.dovecot
Arran Cudbard-Bell [Fri, 25 Apr 2025 02:02:08 +0000 (22:02 -0400)]
No longer valid as slab elements are over-allocated
Arran Cudbard-Bell [Fri, 25 Apr 2025 01:56:27 +0000 (21:56 -0400)]
Use the standard slab allocator for requests
Arran Cudbard-Bell [Fri, 25 Apr 2025 00:09:11 +0000 (20:09 -0400)]
Just set fields in the worker config directly
Arran Cudbard-Bell [Fri, 25 Apr 2025 00:03:41 +0000 (20:03 -0400)]
Rename worker_create to worker_alloc so people don't have to search for it
Arran Cudbard-Bell [Fri, 25 Apr 2025 00:02:49 +0000 (20:02 -0400)]
Rename runnable_id to runnable
Arran Cudbard-Bell [Thu, 17 Apr 2025 19:58:34 +0000 (14:58 -0500)]
Use a sub-timer list to track request expiry
Nick Porter [Fri, 25 Apr 2025 08:42:02 +0000 (09:42 +0100)]
Keywords docs are under <version>/reference/unlang/...
Nick Porter [Fri, 25 Apr 2025 08:41:09 +0000 (09:41 +0100)]
Link to correct keyword docs
Nick Porter [Fri, 25 Apr 2025 08:24:10 +0000 (09:24 +0100)]
detached requests don't do time tracking
Nick Porter [Fri, 25 Apr 2025 08:23:28 +0000 (09:23 +0100)]
Check for request->client before checking request->client->cs
Alan T. DeKok [Thu, 24 Apr 2025 15:09:18 +0000 (11:09 -0400)]
don't set timeout if we have a TTY and lldb / gdb
so that the poor user doing "cut and paste" of test commands
doesn't have their debugger session suddenly disappear
Alan T. DeKok [Thu, 24 Apr 2025 13:14:27 +0000 (09:14 -0400)]
print out references to Antora keyword docs on parse errors
and use a reference to the actual version
Alan T. DeKok [Thu, 24 Apr 2025 11:38:56 +0000 (07:38 -0400)]
some modules can _only_ be used in one namespace
so we add the namespace to the module configuration, and then
check for it when we compile the reference to the module.
We also add a reference to the online documentation, so the user
knows what to do in order to fix the issue
Alan T. DeKok [Thu, 24 Apr 2025 11:22:04 +0000 (07:22 -0400)]
define RADIUSD_DOC_VERSION
so that any messages in the code can point to the correct
(and specific) revision of the online Antora documentation
and define macros to point to the online docs
Alan T. DeKok [Thu, 24 Apr 2025 11:19:44 +0000 (07:19 -0400)]
revert code missed in
95d32f66831f1
Alan T. DeKok [Thu, 24 Apr 2025 10:36:48 +0000 (06:36 -0400)]
don't free name twice
Alan T. DeKok [Wed, 23 Apr 2025 20:02:11 +0000 (16:02 -0400)]
add new function names, and notes on when they are deprecated.
for now, nothing complains if these are used. :(
Alan T. DeKok [Wed, 23 Apr 2025 19:32:58 +0000 (15:32 -0400)]
note that deprecated functions are "removed"
we will remove the functions later, once we verify that no one
is using them.
Alan T. DeKok [Thu, 24 Apr 2025 15:43:30 +0000 (11:43 -0400)]
let's print out error messages on error
Alan T. DeKok [Wed, 23 Apr 2025 15:45:42 +0000 (11:45 -0400)]
don't write to "inst" in thread_instantiate
Alan T. DeKok [Wed, 23 Apr 2025 13:43:19 +0000 (09:43 -0400)]
remove "track_connections" configuration.
TCP sockets are always connected. UDP sockets cannot really be
connected. Posix says that UDP packets for that dst IP/port
will always be delivered, no matter what the source port.
Nick Porter [Thu, 24 Apr 2025 11:31:35 +0000 (12:31 +0100)]
Update sample lua module configuration