]> git.ipfire.org Git - thirdparty/freeradius-server.git/log
thirdparty/freeradius-server.git
22 months agomore "get rid of expr"
Alan T. DeKok [Sun, 8 Oct 2023 12:03:26 +0000 (08:03 -0400)] 
more "get rid of expr"

22 months agoget rid of backticks in tests
Alan T. DeKok [Sun, 8 Oct 2023 12:03:57 +0000 (08:03 -0400)] 
get rid of backticks in tests

22 months agodon't pull casts into in-place expressions
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

22 months agodon't allow unresolved functions at runtime
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

22 months agojust move everything to xlat_bootstrap()
Alan T. DeKok [Sun, 8 Oct 2023 00:32:42 +0000 (20:32 -0400)] 
just move everything to xlat_bootstrap()

22 months agoquiet static analyzer
Alan T. DeKok [Sat, 7 Oct 2023 21:58:11 +0000 (17:58 -0400)] 
quiet static analyzer

22 months agoadd xlat wrapper function for bootstrap / instantiate ephemeral
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.

22 months agoensure runtime_el is set
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

22 months agomove to xlat_tokenize(), as ephemeral checks are in t_rules
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

22 months agoget rid of tokenize_ephemeral_expression()
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

22 months agomake cmp return bool and fix associated tests
Alan T. DeKok [Sat, 7 Oct 2023 14:34:51 +0000 (10:34 -0400)] 
make cmp return bool and fix associated tests

22 months agouse t_rules->xlat.runtime_el
Alan T. DeKok [Sat, 7 Oct 2023 14:34:13 +0000 (10:34 -0400)] 
use t_rules->xlat.runtime_el

22 months agomore set head->el
Alan T. DeKok [Sat, 7 Oct 2023 13:07:45 +0000 (09:07 -0400)] 
more set head->el

22 months agoit's an expansion
Alan T. DeKok [Sat, 7 Oct 2023 12:19:18 +0000 (08:19 -0400)] 
it's an expansion

22 months agonotes on quoting
Alan T. DeKok [Fri, 6 Oct 2023 23:42:48 +0000 (19:42 -0400)] 
notes on quoting

22 months agoDelete from correct table
Nick Porter [Fri, 6 Oct 2023 20:58:11 +0000 (21:58 +0100)] 
Delete from correct table

22 months agoAlternation fixes
Nick Porter [Fri, 6 Oct 2023 19:53:34 +0000 (20:53 +0100)] 
Alternation fixes

22 months agodon't do too much optimization for logical or
Alan T. DeKok [Fri, 6 Oct 2023 17:21:28 +0000 (13:21 -0400)] 
don't do too much optimization for logical or

22 months agoNAK clients don't have a connection - report the src IP instead
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

22 months agoBlank correct pairs in dynamic client requests
Nick Porter [Fri, 6 Oct 2023 15:11:45 +0000 (16:11 +0100)] 
Blank correct pairs in dynamic client requests

22 months agoRun correct section when new client fails
Nick Porter [Fri, 6 Oct 2023 15:10:01 +0000 (16:10 +0100)] 
Run correct section when new client fails

22 months agoBad DN LDAP response is really notfound, not fail
Nick Porter [Fri, 6 Oct 2023 14:49:34 +0000 (15:49 +0100)] 
Bad DN LDAP response is really notfound, not fail

22 months agopush event list down to ephemeral expressions
Alan T. DeKok [Fri, 6 Oct 2023 12:58:25 +0000 (08:58 -0400)] 
push event list down to ephemeral expressions

22 months agoremove extraneous empty line
Alan T. DeKok [Fri, 6 Oct 2023 12:33:31 +0000 (08:33 -0400)] 
remove extraneous empty line

22 months agodon't use bare words in || expansions
Alan T. DeKok [Fri, 6 Oct 2023 12:28:30 +0000 (08:28 -0400)] 
don't use bare words in || expansions

22 months agomore move to new function syntax
Alan T. DeKok [Fri, 6 Oct 2023 12:25:41 +0000 (08:25 -0400)] 
more move to new function syntax

22 months agoget rid of old function syntax everywhere except old examples
Alan T. DeKok [Fri, 6 Oct 2023 12:16:54 +0000 (08:16 -0400)] 
get rid of old function syntax everywhere except old examples

22 months agomore remove alternation
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

22 months agoremove much alternation
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

22 months agotypos
Alan T. DeKok [Fri, 6 Oct 2023 11:43:17 +0000 (07:43 -0400)] 
typos

22 months agototp: The fr_totp_cmp() expects token in call_env 'user_password'
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

22 months agototp: Fix call_env setting
Jorge Pereira [Wed, 4 Oct 2023 16:42:09 +0000 (13:42 -0300)] 
totp: Fix call_env setting

The 'nullable' field should be true.

22 months agonote that you don't always have to use %concat()
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.

22 months agoadd more tests
Alan T. DeKok [Thu, 5 Oct 2023 19:46:12 +0000 (15:46 -0400)] 
add more tests

22 months agomove to %func(args) everywhere in raddb/*
Jorge Pereira [Wed, 4 Oct 2023 22:10:31 +0000 (19:10 -0300)] 
move to %func(args) everywhere in raddb/*

22 months agoxlat cmp requires both arguments
Nick Porter [Fri, 6 Oct 2023 08:22:53 +0000 (09:22 +0100)] 
xlat cmp requires both arguments

22 months agohandle multiple values better with list on the RHS
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

22 months agosplit out comparison from binary ops
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

22 months agoallow n-ary operations for time delta, too
Alan T. DeKok [Thu, 5 Oct 2023 18:48:39 +0000 (14:48 -0400)] 
allow n-ary operations for time delta, too

22 months agoadd calc n-ary op, for add, or, and, xor, etc.
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.

22 months agoRevert to real dictionary if that's where the attribute is found
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

22 months agohoist the attr ref fixups to be more specific
Alan T. DeKok [Wed, 4 Oct 2023 15:15:35 +0000 (11:15 -0400)] 
hoist the attr ref fixups to be more specific

22 months agoone more case of fill in attribute ref for aliases
Alan T. DeKok [Wed, 4 Oct 2023 15:10:00 +0000 (11:10 -0400)] 
one more case of fill in attribute ref for aliases

22 months agodon't use `...`, in preparation for moving to %exec()
Alan T. DeKok [Wed, 4 Oct 2023 14:50:43 +0000 (10:50 -0400)] 
don't use `...`, in preparation for moving to %exec()

22 months agoclean up after other fix
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 :(

22 months agoallow lists to be updated from exec
Alan T. DeKok [Wed, 4 Oct 2023 14:34:32 +0000 (10:34 -0400)] 
allow lists to be updated from exec

22 months agoremove old expansions from docs and tests
Alan T. DeKok [Wed, 4 Oct 2023 12:31:40 +0000 (08:31 -0400)] 
remove old expansions from docs and tests

22 months agoremove final reference to string: expansion
Alan T. DeKok [Wed, 4 Oct 2023 12:22:57 +0000 (08:22 -0400)] 
remove final reference to string: expansion

22 months agomore formatting
Alan T. DeKok [Wed, 4 Oct 2023 00:55:24 +0000 (20:55 -0400)] 
more formatting

22 months agowe don't support vendor name as a flag.
Alan T. DeKok [Wed, 4 Oct 2023 00:54:13 +0000 (20:54 -0400)] 
we don't support vendor name as a flag.

22 months agorun through the formatter
Alan T. DeKok [Wed, 4 Oct 2023 00:49:04 +0000 (20:49 -0400)] 
run through the formatter

22 months agoallow "parent = ..." in extended attribute vendor format
Alan T. DeKok [Wed, 4 Oct 2023 00:48:30 +0000 (20:48 -0400)] 
allow "parent = ..." in extended attribute vendor format

22 months agoAdd validation for attrlen (CID #504038)
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.

22 months agoswitch over the correct type
Alan T. DeKok [Tue, 3 Oct 2023 20:14:54 +0000 (16:14 -0400)] 
switch over the correct type

22 months agouse correct API
Alan T. DeKok [Tue, 3 Oct 2023 19:32:50 +0000 (15:32 -0400)] 
use correct API

22 months agouse correct API
Alan T. DeKok [Tue, 3 Oct 2023 19:32:50 +0000 (15:32 -0400)] 
use correct API

22 months agopeople shouldn't use common names
Alan T. DeKok [Tue, 3 Oct 2023 16:26:31 +0000 (12:26 -0400)] 
people shouldn't use common names

22 months agoUpdate comment on reference for VLAN Query Protocol (#5198)
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.

22 months agoquiet compiler
Alan T. DeKok [Tue, 3 Oct 2023 15:58:26 +0000 (11:58 -0400)] 
quiet compiler

22 months agoensure strings and octets are initialized
Alan T. DeKok [Tue, 3 Oct 2023 15:51:25 +0000 (11:51 -0400)] 
ensure strings and octets are initialized

22 months agoadd alias for IP-Port-*
Alan T. DeKok [Tue, 3 Oct 2023 15:45:37 +0000 (11:45 -0400)] 
add alias for IP-Port-*

22 months agoadd aliases for vendors
Alan T. DeKok [Tue, 3 Oct 2023 15:19:29 +0000 (11:19 -0400)] 
add aliases for vendors

22 months agoallow alias Cisco -> Vendor-Specific.Cisco
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

22 months agosome auto-conversion
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

22 months agohandle all types of input args
Alan T. DeKok [Tue, 3 Oct 2023 12:39:38 +0000 (08:39 -0400)] 
handle all types of input args

22 months agomore conversion to new function format
Alan T. DeKok [Tue, 3 Oct 2023 12:27:19 +0000 (08:27 -0400)] 
more conversion to new function format

22 months agonote deprecated functions
Alan T. DeKok [Tue, 3 Oct 2023 12:27:05 +0000 (08:27 -0400)] 
note deprecated functions

22 months agonote that %expr is no longer needed
Alan T. DeKok [Mon, 2 Oct 2023 19:04:22 +0000 (15:04 -0400)] 
note that %expr is no longer needed

22 months agocmp functions have required arguments
Alan T. DeKok [Mon, 2 Oct 2023 13:04:33 +0000 (09:04 -0400)] 
cmp functions have required arguments

22 months agoupdate for new behavior
Alan T. DeKok [Mon, 2 Oct 2023 12:32:48 +0000 (08:32 -0400)] 
update for new behavior

22 months agonote that these aren't for v4
Alan T. DeKok [Mon, 2 Oct 2023 12:22:43 +0000 (08:22 -0400)] 
note that these aren't for v4

22 months agodon't use (&foo || 0) for numerical types. It's now just &foo
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

22 months agoadd support for missing arguments to binary op
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

22 months agomore cleanups
Alan T. DeKok [Mon, 2 Oct 2023 11:41:22 +0000 (07:41 -0400)] 
more cleanups

22 months agoget rid of some alternation
Alan T. DeKok [Sun, 1 Oct 2023 17:45:33 +0000 (13:45 -0400)] 
get rid of some alternation

22 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/radius.tar
github-actions[bot] [Mon, 2 Oct 2023 09:35:07 +0000 (09:35 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/radius.tar

22 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv4.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:58 +0000 (09:34 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv4.tar

22 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/tacacs.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:52 +0000 (09:34 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/tacacs.tar

22 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/dns.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:50 +0000 (09:34 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/dns.tar

22 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv6.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:46 +0000 (09:34 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv6.tar

22 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/bfd.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:38 +0000 (09:34 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/bfd.tar

22 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/util.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:34 +0000 (09:34 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/util.tar

22 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/tftp.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:31 +0000 (09:34 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/tftp.tar

22 months agoScheduled fuzzing: Update src/tests/fuzzer-corpus/vmps.tar
github-actions[bot] [Mon, 2 Oct 2023 09:34:28 +0000 (09:34 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/vmps.tar

22 months agoclean up and start removing %{expr:}
Alan T. DeKok [Sun, 1 Oct 2023 17:37:33 +0000 (13:37 -0400)] 
clean up and start removing %{expr:}

22 months agomove funtion to the only place which uses it
Alan T. DeKok [Sun, 1 Oct 2023 17:34:07 +0000 (13:34 -0400)] 
move funtion to the only place which uses it

22 months agonow that we have more fixes, use %{... expr ...} in more places
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

22 months agominor fixes
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

22 months agonote that %expr() has (or will be) removed
Alan T. DeKok [Sun, 1 Oct 2023 14:26:49 +0000 (10:26 -0400)] 
note that %expr() has (or will be) removed

22 months agodon't include trailing '}' in name, and be sure to set flags
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

22 months agobe more careful about parsing %{1}
Alan T. DeKok [Sun, 1 Oct 2023 14:26:11 +0000 (10:26 -0400)] 
be more careful about parsing %{1}

22 months agowe can't in general copy xlats.
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

22 months agoadd CC_HINT
Alan T. DeKok [Sun, 1 Oct 2023 14:24:49 +0000 (10:24 -0400)] 
add CC_HINT

22 months agodon't copy arguments, just talloc_steal() them
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

22 months agomore notes on local variables
Alan T. DeKok [Sun, 1 Oct 2023 13:37:13 +0000 (09:37 -0400)] 
more notes on local variables

22 months agoallow expressions in %{...} xlats
Alan T. DeKok [Sun, 1 Oct 2023 12:54:20 +0000 (08:54 -0400)] 
allow expressions in %{...} xlats

22 months agoRevert "move to new function syntax"
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

22 months agomove to new function syntax
Alan T. DeKok [Sat, 30 Sep 2023 20:25:16 +0000 (16:25 -0400)] 
move to new function syntax

22 months agomove more to new function syntax
Alan T. DeKok [Sat, 30 Sep 2023 20:14:25 +0000 (16:14 -0400)] 
move more to new function syntax

22 months agomove policies to new function syntax
Alan T. DeKok [Sat, 30 Sep 2023 20:12:33 +0000 (16:12 -0400)] 
move policies to new function syntax