]>
git.ipfire.org Git - thirdparty/freeradius-server.git/log
Alan T. DeKok [Wed, 20 Dec 2023 15:41:40 +0000 (10:41 -0500)]
re-enable nested (sort of)
for now, only create an empty structural attribute. Don't parse
the RHS as a list of pairs. Don't allow relative names like
".foo"
Alan T. DeKok [Wed, 20 Dec 2023 15:34:18 +0000 (10:34 -0500)]
update depdendicies so rlm_sql is rebuilt before running sql tests
Alan T. DeKok [Wed, 20 Dec 2023 15:12:30 +0000 (10:12 -0500)]
rename for clarity
Alan T. DeKok [Wed, 20 Dec 2023 15:05:35 +0000 (10:05 -0500)]
update to use maps instead of vps
call map_afrom_fields() for the various SQL fields.
call radius_legacy_map_cmp() and radius_legacy_map_apply() to
do the actual work.
It does not currently handle nested attributes, so the nested
tests have been omitted. It also needs some minor cleanups
Alan T. DeKok [Wed, 20 Dec 2023 15:04:51 +0000 (10:04 -0500)]
add map_afrom_fields() which will be used by SQL
Alan T. DeKok [Wed, 20 Dec 2023 14:12:12 +0000 (09:12 -0500)]
if we can't find the vp, add it when requested
Alan T. DeKok [Wed, 20 Dec 2023 14:10:25 +0000 (09:10 -0500)]
leave fewer unresolved tmpls at runtime
If it's runtime, then we know an enum name can't possibly match
at some point in the future. We we just parse it now as the
expected data type.
Alan T. DeKok [Tue, 19 Dec 2023 19:47:04 +0000 (14:47 -0500)]
re-add !* and =* for backwards compatibility
Alan T. DeKok [Tue, 19 Dec 2023 15:04:24 +0000 (10:04 -0500)]
use consistent filenames
Alan T. DeKok [Tue, 19 Dec 2023 14:05:16 +0000 (09:05 -0500)]
auto-link files in doc/antora
so that the input file can give the full filename, but the asciidoc
files contain a proper antora xref link
Alan T. DeKok [Tue, 19 Dec 2023 13:30:12 +0000 (08:30 -0500)]
update and clarify the documentation
Florian Weimer [Tue, 19 Dec 2023 06:56:42 +0000 (07:56 +0100)]
configure: Fix type of argument to backtrace_symbols
The backtrace_symbols function expects a pointer to an array of
void * values, not a pointer to an array of a single element.
Removing the address operator ensures that the right type is used.
This avoids an unconditional failure of this probe with compilers
that treat incompatible pointer types as a compilation error.
Nick Porter [Tue, 19 Dec 2023 08:02:14 +0000 (08:02 +0000)]
Remove man page from RHEL packaging
Alan T. DeKok [Tue, 19 Dec 2023 01:43:36 +0000 (20:43 -0500)]
add new-style documentation, and remove the old docs
Alan T. DeKok [Tue, 19 Dec 2023 01:14:10 +0000 (20:14 -0500)]
add notes on automatic casting
Alan T. DeKok [Mon, 18 Dec 2023 23:57:31 +0000 (18:57 -0500)]
<cast> is not supported
Alan T. DeKok [Mon, 18 Dec 2023 23:14:45 +0000 (18:14 -0500)]
add more data types to htrie hint
Alan T. DeKok [Mon, 18 Dec 2023 22:28:33 +0000 (17:28 -0500)]
move regex comparisons to calc.c code
Alan T. DeKok [Mon, 18 Dec 2023 21:11:10 +0000 (16:11 -0500)]
don't use stack-local buffer
Nick Porter [Mon, 18 Dec 2023 15:33:44 +0000 (15:33 +0000)]
Avoid spurious debug output
Alan T. DeKok [Mon, 18 Dec 2023 14:19:09 +0000 (09:19 -0500)]
use cast instead of copy
which allows us to copy differing src/dst types
Alan T. DeKok [Mon, 18 Dec 2023 13:48:44 +0000 (08:48 -0500)]
hoist legacy map comparison code to pairmove.c
and add support for more functionality:
* we call calc cmp functions, not value cmp functions, so that
comparisons of different types can be automatically upcast
* xlats are now supported again
* inter-attribute comparisons are now supported
Nick Porter [Mon, 18 Dec 2023 12:13:32 +0000 (12:13 +0000)]
%<alnum> is the start of a function - so use %% for literal %
Nick Porter [Mon, 18 Dec 2023 11:22:40 +0000 (11:22 +0000)]
xlat args are static
Nick Porter [Mon, 18 Dec 2023 11:20:24 +0000 (11:20 +0000)]
Complete 3gpp_pseudonym -> 3gpp_temporary_id
Nick Porter [Mon, 18 Dec 2023 11:01:04 +0000 (11:01 +0000)]
Xlats can begin with digits (e.g. %3gpp_...)
Nick Porter [Mon, 18 Dec 2023 10:57:46 +0000 (10:57 +0000)]
Add fr_sbuff_is_alnum
Alan T. DeKok [Mon, 18 Dec 2023 01:06:30 +0000 (20:06 -0500)]
-Wunused
Alan T. DeKok [Mon, 18 Dec 2023 00:52:25 +0000 (19:52 -0500)]
typo
Alan T. DeKok [Mon, 18 Dec 2023 00:38:18 +0000 (19:38 -0500)]
add expansion of RHS for reply items
Alan T. DeKok [Mon, 18 Dec 2023 00:09:32 +0000 (19:09 -0500)]
Add more functionality.
Allow inter-attribute comparisons in the "users" file.
Allow list references in the reply list.
Alan T. DeKok [Sun, 17 Dec 2023 23:52:10 +0000 (18:52 -0500)]
verify that the RHS is static data
Alan T. DeKok [Sun, 17 Dec 2023 23:14:41 +0000 (18:14 -0500)]
make sure to handle nested, too
and add tests so that everything is parented correctly
Alan T. DeKok [Sun, 17 Dec 2023 23:06:47 +0000 (18:06 -0500)]
fix ordering issues by reordering the editing list
The old radius_pairmove() function went through a lot of work to
avoid deleting attributes it just added. For example, if it had
"add" followed by "delete", it wouldn't delete the attribute which
it had just added.
That functionality in rlm_files broke when the subnet functionality
was added, as the call to radius_pairmove() was placed inside
of the loop over maps, instead of after it.
Instead of going through all kinds of crazy work again at run time,
we instead just reorder the list when sanitizing it.
Deletions are placed first. Then set (which is partially delete)
and then any other add operations.
That way we know that we are never deleting an attribute which we
just added.
Alan T. DeKok [Sun, 17 Dec 2023 22:38:02 +0000 (17:38 -0500)]
start of new pairmove API
which will (eventually) take LHS / op / RHS, so that it can be
called from SQL with fields.
Update rlm_files to call the new API, so that it no longer creates
an intermediate VP, and just passes the map to the new API.
Update rlm_files to move the "update control" attributes to the
reply list. The new API will look at the tmpl to find the correct
request and list context.
Alan T. DeKok [Sun, 17 Dec 2023 19:00:40 +0000 (14:00 -0500)]
the operator !* is not allowed as a reply item
the code silently ignored it, but the documentation said that
it's not allowed.
Nick Porter [Fri, 15 Dec 2023 21:11:54 +0000 (21:11 +0000)]
Only create map when update section exists
Nick Porter [Fri, 15 Dec 2023 20:49:10 +0000 (20:49 +0000)]
Allocate enough space for trailing NULL
Nick Porter [Fri, 15 Dec 2023 20:48:22 +0000 (20:48 +0000)]
Simplify policy since failed edits will fail the section
Nick Porter [Fri, 15 Dec 2023 16:56:13 +0000 (16:56 +0000)]
call_env->user_map is always populated
Nick Porter [Fri, 15 Dec 2023 16:54:52 +0000 (16:54 +0000)]
Always expand LDAP update maps
Ensuring that the `expanded` structure is correctly populated.
Nick Porter [Fri, 15 Dec 2023 16:51:34 +0000 (16:51 +0000)]
Use CALL_ENV_FLAG_PARSE_MISSING for LDAP update sections
To ensure map_pair_list_t is always created
Nick Porter [Fri, 15 Dec 2023 16:50:30 +0000 (16:50 +0000)]
Add CALL_ENV_FLAG_PARSE_MISSING
For the case where the parser should still run for missing sections - to
run the parsing callback function.
Alan T. DeKok [Fri, 15 Dec 2023 14:18:36 +0000 (09:18 -0500)]
update docs
Alan T. DeKok [Fri, 15 Dec 2023 02:20:24 +0000 (21:20 -0500)]
allow "catch" to have multiple rcodes
Alan T. DeKok [Thu, 14 Dec 2023 21:43:59 +0000 (16:43 -0500)]
add compilation for try / catch
along with docs and test cases
Alan T. DeKok [Thu, 14 Dec 2023 18:01:57 +0000 (13:01 -0500)]
implement try / catch
there's no compilation, but the intended functionality is present.
Alan T. DeKok [Thu, 14 Dec 2023 16:27:21 +0000 (11:27 -0500)]
finalize docs a bit
Alan T. DeKok [Thu, 14 Dec 2023 15:08:42 +0000 (10:08 -0500)]
remove unnecessary fall-through
Alan T. DeKok [Thu, 14 Dec 2023 15:07:42 +0000 (10:07 -0500)]
don't reset module on resume.
it breaks the debug output
Alan T. DeKok [Thu, 14 Dec 2023 14:11:01 +0000 (09:11 -0500)]
uncomment checks
Alan T. DeKok [Thu, 14 Dec 2023 13:53:08 +0000 (08:53 -0500)]
make edits return fail when aborting the edit changes
make transactions default to "fail=1", which is much more useful
than bailing (for now).
remove auto-grouping of edits in a "group", and require the use
of "transaction"
Clean up the tests so that they pass under the new framework
update documentation to match
Alan T. DeKok [Thu, 14 Dec 2023 02:02:53 +0000 (21:02 -0500)]
set default action return codes to "fail=1"
because otherwise most tests will have to manually set an "actions"
block
Alan T. DeKok [Thu, 14 Dec 2023 00:42:37 +0000 (19:42 -0500)]
call cf_canonicalize_error() for consistency
Alan T. DeKok [Thu, 14 Dec 2023 00:01:33 +0000 (19:01 -0500)]
add cf_ wrapper for fr_canonicalize_error()
Alan T. DeKok [Wed, 13 Dec 2023 21:54:58 +0000 (16:54 -0500)]
add the "transaction" keyword.
For now, the compile hack "all_edits" remains. It should be
removed once the tests have been updated to use transactions
Alan T. DeKok [Wed, 13 Dec 2023 15:20:12 +0000 (10:20 -0500)]
document priorities
Alan T. DeKok [Tue, 12 Dec 2023 21:15:56 +0000 (16:15 -0500)]
allow for nested edit lists
Alan T. DeKok [Tue, 12 Dec 2023 13:34:58 +0000 (08:34 -0500)]
split out string functions into their own files
Alan T. DeKok [Tue, 12 Dec 2023 15:39:28 +0000 (10:39 -0500)]
clarify example
Alan T. DeKok [Tue, 12 Dec 2023 13:34:35 +0000 (08:34 -0500)]
notes for the future for string casting
Arran Cudbard-Bell [Wed, 13 Dec 2023 20:13:50 +0000 (14:13 -0600)]
Allow encoding name_only attributes if the data is going to be consumed internally
Nick Porter [Wed, 13 Dec 2023 08:04:42 +0000 (08:04 +0000)]
Align function prototypes with the functions
Alan T. DeKok [Tue, 12 Dec 2023 12:18:58 +0000 (07:18 -0500)]
functions are single-thing expansions, too
Nick Porter [Mon, 11 Dec 2023 20:20:41 +0000 (20:20 +0000)]
Check return (CID #
1559169 )
Alan T. DeKok [Mon, 11 Dec 2023 19:41:37 +0000 (14:41 -0500)]
add test for acct_unique policy
and re-add commas in between fields. Which makes it harder for
malicious actors to mangle multiple fields together.
The real solution is to make md5() take varargs, and then do the MD5
separately for each argument. And to pass the values as raw
value-boxes, instead of as printable strings
Alan T. DeKok [Mon, 11 Dec 2023 19:58:13 +0000 (14:58 -0500)]
remove last vestige of %string(...)
and correct the filter_password policy so that it works
Alan T. DeKok [Mon, 11 Dec 2023 19:25:58 +0000 (14:25 -0500)]
deprecate %string(...).
We should instead use %{(string) (...)}
Alan T. DeKok [Sun, 10 Dec 2023 13:23:02 +0000 (08:23 -0500)]
add more upcast corner cases
Nick Porter [Mon, 11 Dec 2023 18:32:18 +0000 (18:32 +0000)]
Correct accouning unique id policy
Nick Porter [Mon, 11 Dec 2023 17:30:47 +0000 (17:30 +0000)]
Fail sample load Cookie if no cookie retrieved
Nick Porter [Mon, 11 Dec 2023 12:12:16 +0000 (12:12 +0000)]
Update sample virtual server to reflect new load Cookie behaviour
Nick Porter [Mon, 11 Dec 2023 12:03:17 +0000 (12:03 +0000)]
Add a timed event to retry "load Cookie" on failure
Nick Porter [Mon, 11 Dec 2023 11:53:48 +0000 (11:53 +0000)]
If "load Cookie" returns a failure code change reply packet type
Nick Porter [Mon, 11 Dec 2023 10:03:49 +0000 (10:03 +0000)]
Move sending of fake "load Cookie" packets to a function
So it can be used by a timer event if the initial load fails
Nick Porter [Mon, 11 Dec 2023 09:50:24 +0000 (09:50 +0000)]
Typos
Alan T. DeKok [Fri, 8 Dec 2023 19:17:42 +0000 (14:17 -0500)]
Revert "Tighten scope on addr"
This reverts commit
3523ad74f62e23b7254a464c2e026d86a610acfe .
just leave it hoisted to the top of the function, where it causes
the least amount of problems.
Alan T. DeKok [Fri, 8 Dec 2023 19:01:16 +0000 (14:01 -0500)]
add operations and upcast on combo-ips and prefixes
Alan T. DeKok [Fri, 8 Dec 2023 16:07:10 +0000 (11:07 -0500)]
allow combo-ip/prefix to be input types
Nick Porter [Fri, 8 Dec 2023 15:00:44 +0000 (15:00 +0000)]
Avoid misleading errors in tmpl tokenizing
When resolving an internal attriubute, often a lookup will first have
been done in a protocol dictionary, which results in an error being
recorded.
However, if the attribute was subsequently found in the internal
dictionary, that error is meaningless - but will still be printed if
something else causes errors to print.
Nick Porter [Fri, 8 Dec 2023 14:57:33 +0000 (14:57 +0000)]
Internal attributes can be inside group attributes
Nick Porter [Fri, 8 Dec 2023 14:21:05 +0000 (14:21 +0000)]
Ensure pairs sent to internal encoder are nested correctly
Nick Porter [Fri, 8 Dec 2023 14:02:40 +0000 (14:02 +0000)]
If we've got a cookie, send it back
Relying on the rcode does not match any other encoders. If we need to
make the cookie return optional, it should be based on
request->reply->code
Alan T. DeKok [Fri, 8 Dec 2023 13:32:44 +0000 (08:32 -0500)]
clean up and normalize error messages
Alan T. DeKok [Fri, 8 Dec 2023 13:12:09 +0000 (08:12 -0500)]
macro is unused
Alan T. DeKok [Fri, 8 Dec 2023 13:11:26 +0000 (08:11 -0500)]
unused is used
Alan T. DeKok [Fri, 8 Dec 2023 13:05:38 +0000 (08:05 -0500)]
remove unused variable
Alan T. DeKok [Fri, 8 Dec 2023 12:57:06 +0000 (07:57 -0500)]
clean up error handling in exec oneshot
so that the it saves an fr_strerror(), and all callers use
RPEDEBUG() to describe the error. This gives a consistent
behavior
Arran Cudbard-Bell [Thu, 7 Dec 2023 19:40:22 +0000 (13:40 -0600)]
WS
Arran Cudbard-Bell [Thu, 7 Dec 2023 19:39:41 +0000 (13:39 -0600)]
Tighten scope on addr
Alan T. DeKok [Thu, 7 Dec 2023 19:22:26 +0000 (14:22 -0500)]
hoist declaration to quiet analyzer
Arran Cudbard-Bell [Thu, 7 Dec 2023 18:40:32 +0000 (12:40 -0600)]
Fix support for outer, and fix support for caller and subrequests in conditions
Alan T. DeKok [Thu, 7 Dec 2023 17:32:59 +0000 (12:32 -0500)]
add tests for combo-ip comparisons
Alan T. DeKok [Thu, 7 Dec 2023 17:26:24 +0000 (12:26 -0500)]
add combo-ip and combo-prefix to upcast_cmp
Alan T. DeKok [Thu, 7 Dec 2023 17:25:38 +0000 (12:25 -0500)]
update fr_value_box_cmp_op() to handle combo-ip and combo-prefix
Alan T. DeKok [Thu, 7 Dec 2023 17:25:01 +0000 (12:25 -0500)]
parse combo-ip and combo-ip
Arran Cudbard-Bell [Thu, 7 Dec 2023 15:12:17 +0000 (09:12 -0600)]
Add timer slop to redis tests for macOS
Arran Cudbard-Bell [Thu, 7 Dec 2023 15:11:17 +0000 (09:11 -0600)]
It's fine/useful to be able to cast to combo ip addr/prefix attributes and back again
We usually don't care what address family an IP is unless we're putting it on the wire.
Arran Cudbard-Bell [Thu, 7 Dec 2023 14:59:42 +0000 (08:59 -0600)]
call_env needs to manipulate rules too
Arran Cudbard-Bell [Thu, 7 Dec 2023 04:08:19 +0000 (22:08 -0600)]
Parse requested addr as an IP address