]>
git.ipfire.org Git - thirdparty/freeradius-server.git/log
Alan T. DeKok [Sun, 8 Oct 2023 12:03:26 +0000 (08:03 -0400)]
more "get rid of expr"
Alan T. DeKok [Sun, 8 Oct 2023 12:03:57 +0000 (08:03 -0400)]
get rid of backticks in tests
Alan T. DeKok [Sun, 8 Oct 2023 12:00:32 +0000 (08:00 -0400)]
don't pull casts into in-place expressions
because that would change how the text inside of the expression
is parsed, and we don't want that
Alan T. DeKok [Sun, 8 Oct 2023 00:47:59 +0000 (20:47 -0400)]
don't allow unresolved functions at runtime
because otherwise xlat_resolve() will call xlat_bootstrap_func(),
which modifies the xlat_inst_tree at runtime, from a child thread
Alan T. DeKok [Sun, 8 Oct 2023 00:32:42 +0000 (20:32 -0400)]
just move everything to xlat_bootstrap()
Alan T. DeKok [Sat, 7 Oct 2023 21:58:11 +0000 (17:58 -0400)]
quiet static analyzer
Alan T. DeKok [Sat, 7 Oct 2023 21:29:21 +0000 (17:29 -0400)]
add xlat wrapper function for bootstrap / instantiate ephemeral
* xlat_bootstrap() - when reading the configuration files
pretty much only called by xlat_redundant()
* xlat_instantiate_ephemeral() - when we have a #request_t and
are parsing things at run-time
* xlat_finalize() - when we have a #tmpl_rules_t, and we're not
sure if we're run-time or config load time.
The issue is that the various xlat tokenize funtions call each
other in different combinations. The only way to consistently
know if we're run-time or config time is via the #tmpl_rules_t.
This change (also via previous commits) allows us to get rid of
the various public tokenize_ephemeral() functions, which were
confusing the issue.
Alan T. DeKok [Sat, 7 Oct 2023 18:18:34 +0000 (14:18 -0400)]
ensure runtime_el is set
and instantiate ephemeral xlats in tmpl_tokenize
Alan T. DeKok [Sat, 7 Oct 2023 15:00:46 +0000 (11:00 -0400)]
move to xlat_tokenize(), as ephemeral checks are in t_rules
Alan T. DeKok [Sat, 7 Oct 2023 14:49:35 +0000 (10:49 -0400)]
get rid of tokenize_ephemeral_expression()
and just rely on t_rules->xlat.runtime_el
Alan T. DeKok [Sat, 7 Oct 2023 14:34:51 +0000 (10:34 -0400)]
make cmp return bool and fix associated tests
Alan T. DeKok [Sat, 7 Oct 2023 14:34:13 +0000 (10:34 -0400)]
use t_rules->xlat.runtime_el
Alan T. DeKok [Sat, 7 Oct 2023 13:07:45 +0000 (09:07 -0400)]
more set head->el
Alan T. DeKok [Sat, 7 Oct 2023 12:19:18 +0000 (08:19 -0400)]
it's an expansion
Alan T. DeKok [Fri, 6 Oct 2023 23:42:48 +0000 (19:42 -0400)]
notes on quoting
Nick Porter [Fri, 6 Oct 2023 20:58:11 +0000 (21:58 +0100)]
Delete from correct table
Nick Porter [Fri, 6 Oct 2023 19:53:34 +0000 (20:53 +0100)]
Alternation fixes
Alan T. DeKok [Fri, 6 Oct 2023 17:21:28 +0000 (13:21 -0400)]
don't do too much optimization for logical or
Nick Porter [Fri, 6 Oct 2023 15:46:54 +0000 (16:46 +0100)]
NAK clients don't have a connection - report the src IP instead
Nick Porter [Fri, 6 Oct 2023 15:11:45 +0000 (16:11 +0100)]
Blank correct pairs in dynamic client requests
Nick Porter [Fri, 6 Oct 2023 15:10:01 +0000 (16:10 +0100)]
Run correct section when new client fails
Nick Porter [Fri, 6 Oct 2023 14:49:34 +0000 (15:49 +0100)]
Bad DN LDAP response is really notfound, not fail
Alan T. DeKok [Fri, 6 Oct 2023 12:58:25 +0000 (08:58 -0400)]
push event list down to ephemeral expressions
Alan T. DeKok [Fri, 6 Oct 2023 12:33:31 +0000 (08:33 -0400)]
remove extraneous empty line
Alan T. DeKok [Fri, 6 Oct 2023 12:28:30 +0000 (08:28 -0400)]
don't use bare words in || expansions
Alan T. DeKok [Fri, 6 Oct 2023 12:25:41 +0000 (08:25 -0400)]
more move to new function syntax
Alan T. DeKok [Fri, 6 Oct 2023 12:16:54 +0000 (08:16 -0400)]
get rid of old function syntax everywhere except old examples
Alan T. DeKok [Fri, 6 Oct 2023 11:50:34 +0000 (07:50 -0400)]
more remove alternation
this time where the second argument is just a string, and not
an attribute reference
perl -p -i -e 's/%{%{([^%{}]+)}:-([^%{}]+)}/%{\&$1 || $2}/g' $(git grep -l ':-' raddb/)
and then re-build the antora docs from the raddb sources
Alan T. DeKok [Fri, 6 Oct 2023 11:45:59 +0000 (07:45 -0400)]
remove much alternation
perl -p -i -e 's/%{%{([^%{}]+)}:-%{([^%{}]+)}}/%{\&$1 || \&$2}/g' $(git grep -l ':-' raddb/)
and then re-build the antora docs from the raddb sources
Alan T. DeKok [Fri, 6 Oct 2023 11:43:17 +0000 (07:43 -0400)]
typos
Jorge Pereira [Wed, 4 Oct 2023 16:43:11 +0000 (13:43 -0300)]
totp: The fr_totp_cmp() expects token in call_env 'user_password'
Which is taken from control.TOTP.From-User
Jorge Pereira [Wed, 4 Oct 2023 16:42:09 +0000 (13:42 -0300)]
totp: Fix call_env setting
The 'nullable' field should be true.
Alan T. DeKok [Thu, 5 Oct 2023 19:46:20 +0000 (15:46 -0400)]
note that you don't always have to use %concat()
"+" is usually better.
Alan T. DeKok [Thu, 5 Oct 2023 19:46:12 +0000 (15:46 -0400)]
add more tests
Jorge Pereira [Wed, 4 Oct 2023 22:10:31 +0000 (19:10 -0300)]
move to %func(args) everywhere in raddb/*
Nick Porter [Fri, 6 Oct 2023 08:22:53 +0000 (09:22 +0100)]
xlat cmp requires both arguments
Alan T. DeKok [Thu, 5 Oct 2023 19:08:27 +0000 (15:08 -0400)]
handle multiple values better with list on the RHS
If we have :=, then create multiple values.
if we have other operators, then only create the first one,
and then apply the operations to it
don't create multiple copies of local variables
Alan T. DeKok [Thu, 5 Oct 2023 18:48:56 +0000 (14:48 -0400)]
split out comparison from binary ops
there's no real reason for them to be the same
Alan T. DeKok [Thu, 5 Oct 2023 18:48:39 +0000 (14:48 -0400)]
allow n-ary operations for time delta, too
Alan T. DeKok [Thu, 5 Oct 2023 14:09:12 +0000 (10:09 -0400)]
add calc n-ary op, for add, or, and, xor, etc.
This should make expressions a bit more efficient, as there will
be fewer intermediate nodes, and more work will be done at parse
time.
The expr wrappers aren't done, so that needs adding. We will have
to do some cleanups of the resolve, etc. code for that to be best.
The logical operators || and && aren't implemented in calc.c,
because they are short-circuit operators, and calc.c gets a fully
evaluated list of value-boxes.
That being said, it's likely not much work to add short-circuit
operators to the calc.c code.
Nick Porter [Thu, 5 Oct 2023 18:33:58 +0000 (19:33 +0100)]
Revert to real dictionary if that's where the attribute is found
Alan T. DeKok [Wed, 4 Oct 2023 15:15:35 +0000 (11:15 -0400)]
hoist the attr ref fixups to be more specific
Alan T. DeKok [Wed, 4 Oct 2023 15:10:00 +0000 (11:10 -0400)]
one more case of fill in attribute ref for aliases
Alan T. DeKok [Wed, 4 Oct 2023 14:50:43 +0000 (10:50 -0400)]
don't use `...`, in preparation for moving to %exec()
Alan T. DeKok [Wed, 4 Oct 2023 14:48:49 +0000 (10:48 -0400)]
clean up after other fix
using
if (&reply.WiMAX.Capability.Release == "foo")
will now parse correctly, but will fail at run time. The
Release attribute should be parented by Capability, but it is not.
So we need more tests for aliases :(
Alan T. DeKok [Wed, 4 Oct 2023 14:34:32 +0000 (10:34 -0400)]
allow lists to be updated from exec
Alan T. DeKok [Wed, 4 Oct 2023 12:31:40 +0000 (08:31 -0400)]
remove old expansions from docs and tests
Alan T. DeKok [Wed, 4 Oct 2023 12:22:57 +0000 (08:22 -0400)]
remove final reference to string: expansion
Alan T. DeKok [Wed, 4 Oct 2023 00:55:24 +0000 (20:55 -0400)]
more formatting
Alan T. DeKok [Wed, 4 Oct 2023 00:54:13 +0000 (20:54 -0400)]
we don't support vendor name as a flag.
Alan T. DeKok [Wed, 4 Oct 2023 00:49:04 +0000 (20:49 -0400)]
run through the formatter
Alan T. DeKok [Wed, 4 Oct 2023 00:48:30 +0000 (20:48 -0400)]
allow "parent = ..." in extended attribute vendor format
James Jones [Tue, 3 Oct 2023 19:52:37 +0000 (14:52 -0500)]
Add validation for attrlen (CID #504038)
To satisfy coverity that attrlen is validated, insist that the
sum of the attrlen values doesn't exceed what's left of the
packet length after the header. It's done inside the loop so
each new attrlen value is checked to make coverity happy.
Alan T. DeKok [Tue, 3 Oct 2023 20:14:54 +0000 (16:14 -0400)]
switch over the correct type
Alan T. DeKok [Tue, 3 Oct 2023 19:32:50 +0000 (15:32 -0400)]
use correct API
Alan T. DeKok [Tue, 3 Oct 2023 19:32:50 +0000 (15:32 -0400)]
use correct API
Alan T. DeKok [Tue, 3 Oct 2023 16:26:31 +0000 (12:26 -0400)]
people shouldn't use common names
James Jones [Tue, 3 Oct 2023 16:09:30 +0000 (11:09 -0500)]
Update comment on reference for VLAN Query Protocol (#5198)
http://www.hackingciscoexposed.com/pdf/chapter12.pdf gives a 404,
and isn't in the Wayback Machine, so we replace it with title,
authors, publisher and date of the book.
Alan T. DeKok [Tue, 3 Oct 2023 15:58:26 +0000 (11:58 -0400)]
quiet compiler
Alan T. DeKok [Tue, 3 Oct 2023 15:51:25 +0000 (11:51 -0400)]
ensure strings and octets are initialized
Alan T. DeKok [Tue, 3 Oct 2023 15:45:37 +0000 (11:45 -0400)]
add alias for IP-Port-*
Alan T. DeKok [Tue, 3 Oct 2023 15:19:29 +0000 (11:19 -0400)]
add aliases for vendors
Alan T. DeKok [Tue, 3 Oct 2023 14:48:31 +0000 (10:48 -0400)]
allow alias Cisco -> Vendor-Specific.Cisco
because we don't hate our end users enough to force them to
write huge long strings every time
Alan T. DeKok [Tue, 3 Oct 2023 12:42:14 +0000 (08:42 -0400)]
some auto-conversion
perl -p -i -e 's/%{([a-zA-Z0-9._-]+):([^%{}]+)}/%$1($2)/g' $(git grep -l '%{[^:}]\+:' src/tests/keywords/)
with manual cleanups of things which don't work
Alan T. DeKok [Tue, 3 Oct 2023 12:39:38 +0000 (08:39 -0400)]
handle all types of input args
Alan T. DeKok [Tue, 3 Oct 2023 12:27:19 +0000 (08:27 -0400)]
more conversion to new function format
Alan T. DeKok [Tue, 3 Oct 2023 12:27:05 +0000 (08:27 -0400)]
note deprecated functions
Alan T. DeKok [Mon, 2 Oct 2023 19:04:22 +0000 (15:04 -0400)]
note that %expr is no longer needed
Alan T. DeKok [Mon, 2 Oct 2023 13:04:33 +0000 (09:04 -0400)]
cmp functions have required arguments
Alan T. DeKok [Mon, 2 Oct 2023 12:32:48 +0000 (08:32 -0400)]
update for new behavior
Alan T. DeKok [Mon, 2 Oct 2023 12:22:43 +0000 (08:22 -0400)]
note that these aren't for v4
Alan T. DeKok [Mon, 2 Oct 2023 12:17:32 +0000 (08:17 -0400)]
don't use (&foo || 0) for numerical types. It's now just &foo
Alan T. DeKok [Mon, 2 Oct 2023 12:10:26 +0000 (08:10 -0400)]
add support for missing arguments to binary op
at least for strings, octets, and numerical types
That way we don't need to do
&foo = &bar - (&baz || 0)
and we can instead just do
&foo = &bar - &baz
Alan T. DeKok [Mon, 2 Oct 2023 11:41:22 +0000 (07:41 -0400)]
more cleanups
Alan T. DeKok [Sun, 1 Oct 2023 17:45:33 +0000 (13:45 -0400)]
get rid of some alternation
github-actions[bot] [Mon, 2 Oct 2023 09:35:07 +0000 (09:35 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/radius.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:58 +0000 (09:34 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv4.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:52 +0000 (09:34 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/tacacs.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:50 +0000 (09:34 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/dns.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:46 +0000 (09:34 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv6.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:38 +0000 (09:34 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/bfd.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:34 +0000 (09:34 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/util.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:31 +0000 (09:34 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/tftp.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:28 +0000 (09:34 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/vmps.tar
Alan T. DeKok [Sun, 1 Oct 2023 17:37:33 +0000 (13:37 -0400)]
clean up and start removing %{expr:}
Alan T. DeKok [Sun, 1 Oct 2023 17:34:07 +0000 (13:34 -0400)]
move funtion to the only place which uses it
Alan T. DeKok [Sun, 1 Oct 2023 15:43:06 +0000 (11:43 -0400)]
now that we have more fixes, use %{... expr ...} in more places
Alan T. DeKok [Sun, 1 Oct 2023 14:43:30 +0000 (10:43 -0400)]
minor fixes
if we have a cast, then we don't have an enumv, and we can't
parse the data as being an enum name.
if we have a subexpression, (...), then we don't do math on
enum names, so remove the enum there, too.
Pass the resulting rules recursively to the parser
Alan T. DeKok [Sun, 1 Oct 2023 14:26:49 +0000 (10:26 -0400)]
note that %expr() has (or will be) removed
Alan T. DeKok [Sun, 1 Oct 2023 14:26:31 +0000 (10:26 -0400)]
don't include trailing '}' in name, and be sure to set flags
Alan T. DeKok [Sun, 1 Oct 2023 14:26:11 +0000 (10:26 -0400)]
be more careful about parsing %{1}
Alan T. DeKok [Sun, 1 Oct 2023 14:25:26 +0000 (10:25 -0400)]
we can't in general copy xlats.
because they need resolving. And copying an xlat means that
the xlat does not appear in the instance tree
Alan T. DeKok [Sun, 1 Oct 2023 14:24:49 +0000 (10:24 -0400)]
add CC_HINT
Alan T. DeKok [Sun, 1 Oct 2023 14:20:33 +0000 (10:20 -0400)]
don't copy arguments, just talloc_steal() them
because copying could require lots of memory allocations.
So even if talloc_steal() is inefficient, it's likely not much
worse than allocating and copying entire data structures
Alan T. DeKok [Sun, 1 Oct 2023 13:37:13 +0000 (09:37 -0400)]
more notes on local variables
Alan T. DeKok [Sun, 1 Oct 2023 12:54:20 +0000 (08:54 -0400)]
allow expressions in %{...} xlats
Alan T. DeKok [Sat, 30 Sep 2023 23:44:01 +0000 (19:44 -0400)]
Revert "move to new function syntax"
This reverts commit
8486d69f44cd6ac200617b103feb9a0d5c512fd0 .
rever this until we update alternation syntax, too.
The parser keys off of %{ or %( for expansions, and does not
like the new function syntax
Alan T. DeKok [Sat, 30 Sep 2023 20:25:16 +0000 (16:25 -0400)]
move to new function syntax
Alan T. DeKok [Sat, 30 Sep 2023 20:14:25 +0000 (16:14 -0400)]
move more to new function syntax
Alan T. DeKok [Sat, 30 Sep 2023 20:12:33 +0000 (16:12 -0400)]
move policies to new function syntax