]>
git.ipfire.org Git - thirdparty/freeradius-server.git/log
James Jones [Thu, 14 Jan 2021 22:20:59 +0000 (16:20 -0600)]
Give access to type size info without explicit use of dict_attr_sizes[]
The change provides min_size() and max_size() macros and a Boolean
function, is_fixed_size(). All take an fr_type_t value and do the
subscripting of dict_attr_sizes for the user. References to
dict_attr_sizes[] other than definition and initialization have
been changed to use these, to exercise them and I believe make
the intent of the rewritten code clearer.
Nick Porter [Fri, 15 Jan 2021 14:21:27 +0000 (14:21 +0000)]
Add fr_pair_list_empty() to test for empty lists of fr_pair_ts (#3846)
In anticipation of migration to dlists
Alan T. DeKok [Fri, 15 Jan 2021 14:18:45 +0000 (09:18 -0500)]
don't install local HTML files
Alan T. DeKok [Fri, 15 Jan 2021 14:17:15 +0000 (09:17 -0500)]
just do "adoc -> man" into the local "man" directory
where they can be commited to git, like the "conf -> adoc"
conversions, and where the "install" process no longer needs
asciidoctor or pandoc
Alan T. DeKok [Fri, 15 Jan 2021 14:05:41 +0000 (09:05 -0500)]
printf \t is more portable
Alan T. DeKok [Fri, 15 Jan 2021 01:28:36 +0000 (20:28 -0500)]
add support for casts on existence checks on cond_eval()
the parser doesn't support it yet, and there are no test cases.
but it should eventually work.
Alan T. DeKok [Thu, 14 Jan 2021 15:31:03 +0000 (10:31 -0500)]
clear out vpt for the NULL case
Alan T. DeKok [Thu, 14 Jan 2021 15:06:36 +0000 (10:06 -0500)]
quiet here, too
Alan T. DeKok [Thu, 14 Jan 2021 14:50:25 +0000 (09:50 -0500)]
quiet clang scan
Alan T. DeKok [Thu, 14 Jan 2021 14:33:29 +0000 (09:33 -0500)]
suppress 'make install' doc if there's no asciidoctor or pandoc
Alan T. DeKok [Thu, 14 Jan 2021 13:54:19 +0000 (08:54 -0500)]
more gratuitous renaming to keep people happy
and comment the code to explain why it's not *quite* the same
as the grandparent commit
Arran Cudbard-Bell [Thu, 14 Jan 2021 12:14:14 +0000 (12:14 +0000)]
Might not have any capture data
Arran Cudbard-Bell [Thu, 14 Jan 2021 11:53:19 +0000 (11:53 +0000)]
Don't free runtime-compiled regular expressions if they've been assigned to the request
Arran Cudbard-Bell [Thu, 14 Jan 2021 11:06:42 +0000 (11:06 +0000)]
Fix typo in build framework which stopped regex named capture groups running with libpcre2
Arran Cudbard-Bell [Wed, 13 Jan 2021 22:10:05 +0000 (22:10 +0000)]
Different way of doing sanity checks for regexes
Alan T. DeKok [Wed, 13 Jan 2021 21:41:39 +0000 (16:41 -0500)]
install the docs on `make install` target
Alan T. DeKok [Wed, 13 Jan 2021 21:41:11 +0000 (16:41 -0500)]
normalize paths before sort (i.e. unique), not after
Arran Cudbard-Bell [Wed, 13 Jan 2021 19:31:34 +0000 (19:31 +0000)]
Strip unused args from cond_do_regex
Alan T. DeKok [Wed, 13 Jan 2021 17:53:23 +0000 (12:53 -0500)]
precompile regexes
so that we don't expand and compile the RHS of TMPL_TYPE_REGEX_XLAT
for every attribute we're trying to match
Alan T. DeKok [Wed, 13 Jan 2021 17:51:51 +0000 (12:51 -0500)]
fix installation of "man" files.
make "install.man" also do "install.doc.man"
remove the "order dependency" on the "man" directory, and add in
a manual "mkdir".
The top-level Makefile has a wildcard rule for the man files
which just happens to match the directories, because GNU Make is
too stupid to know what's a directory and what's a file
Alexis La Goutte [Wed, 13 Jan 2021 13:24:32 +0000 (14:24 +0100)]
Update Palo Alto Dictonary (#3842)
From https://docs.paloaltonetworks.com/resources/radius-dictionary.html
Alan T. DeKok [Tue, 12 Jan 2021 21:22:22 +0000 (16:22 -0500)]
remove unused function
Alan T. DeKok [Tue, 12 Jan 2021 20:48:14 +0000 (15:48 -0500)]
allow (&LDAP-Group == &Filter-Id)
with the appropriate casts!
Alan T. DeKok [Tue, 12 Jan 2021 20:47:47 +0000 (15:47 -0500)]
ensure that the RHS is cast to the correct data type
Alan T. DeKok [Tue, 12 Jan 2021 15:50:07 +0000 (10:50 -0500)]
add new attr to attr comparison functions
which removes all of the old code.
also update the "switch" handler to create conditions which
match what the cond_eval() code is expecting
Alan T. DeKok [Tue, 12 Jan 2021 13:13:27 +0000 (08:13 -0500)]
forbid list / regex for switch / case
we can _probably_ allow regexes for case, but that requires
additional changes to switch.c. The condition created there
must satisfy the requirements of the run-time evaluator
Alan T. DeKok [Tue, 12 Jan 2021 13:12:38 +0000 (08:12 -0500)]
hoist more sanity checks to cond_promote_values()
and ensure that for regexes, LHS is always cast to string.
This ensures less work for the run-time evaluator.
Alan T. DeKok [Mon, 11 Jan 2021 21:04:41 +0000 (16:04 -0500)]
clear box _before_ exiting
Alan T. DeKok [Mon, 11 Jan 2021 19:13:42 +0000 (14:13 -0500)]
add and/or to cond_debug()
Alan T. DeKok [Mon, 11 Jan 2021 15:32:22 +0000 (10:32 -0500)]
remove check_list from paircmp() functions
now that prefix / suffix are gone, it's no longer needed
Alan T. DeKok [Mon, 11 Jan 2021 14:05:47 +0000 (09:05 -0500)]
remove Prefix and Suffix comparisons
nothing in the default config uses them any more.
They are historical crap and should have been removed a while ago.
Alan T. DeKok [Mon, 11 Jan 2021 13:57:23 +0000 (08:57 -0500)]
define and use paircmp_virtual()
which only takes one VP, and only does comparisons to virtual
attributes.
This is the first step in getting rid of the old paircmp() API
Jorge Pereira [Tue, 12 Jan 2021 09:11:10 +0000 (06:11 -0300)]
fr_ext_debug() Fix invalid reference (#3840)
Emil Renner Berthing [Mon, 11 Jan 2021 19:22:37 +0000 (20:22 +0100)]
Add Key Identifier extensions to server.cnf
The Intel Wireless Daemon (iwd, alternative to wpa_supplicant) heavily
relies on Linux kernel interfaces for all its crypto, but the Linux
kernel doesn't seem to accept certificates without these extensions and
hence TLS will fail without them.
Arran Cudbard-Bell [Mon, 11 Jan 2021 18:06:36 +0000 (18:06 +0000)]
Because we're not allocating radiuses
Alan T. DeKok [Mon, 11 Jan 2021 03:38:22 +0000 (22:38 -0500)]
added cond_realize_tmpl()
which does a bit more than the previous code in order to
realize a tmpl
commented out for now, but all of the tests pass
Alan T. DeKok [Sun, 10 Jan 2021 20:07:52 +0000 (15:07 -0500)]
add assertion and ensure data has the correct type.
because it has always been parsed as a real data type, we
no longer need / print a cast.
Alan T. DeKok [Sun, 10 Jan 2021 19:57:43 +0000 (14:57 -0500)]
we no longer allow unresolved tmpls in the cond_eval()
Alan T. DeKok [Sun, 10 Jan 2021 19:33:53 +0000 (14:33 -0500)]
move to switch statements / arrays
so that types don't need to be ordered
Alan T. DeKok [Sun, 10 Jan 2021 17:40:08 +0000 (12:40 -0500)]
allow bare words for xlat's
Alan T. DeKok [Sun, 10 Jan 2021 15:23:10 +0000 (10:23 -0500)]
allow string/octets cast for regexes
and if there's no cast, add a cast to string. This change
removes one more run-time check.
Alan T. DeKok [Sun, 10 Jan 2021 15:06:21 +0000 (10:06 -0500)]
all tmpls have now been resolved
Alan T. DeKok [Sun, 10 Jan 2021 14:59:04 +0000 (09:59 -0500)]
hoist "move attr to LHS" from normalise to promote function
because promotion is called from the unlang compiler, and
normalise isn't.
We don't really need to normalise conditions with dynamically
defined attributes. It's useful and nice, but not critical.
Alan T. DeKok [Sun, 10 Jan 2021 14:52:56 +0000 (09:52 -0500)]
ensure that the LHS of regexes are resolved
by casting them to strings, so it's explicit what we are comparing
against.
Alan T. DeKok [Sun, 10 Jan 2021 14:38:19 +0000 (09:38 -0500)]
allow RHS cast
because most of the time we can just promote things as necessary
Alan T. DeKok [Sun, 10 Jan 2021 14:34:03 +0000 (09:34 -0500)]
treat TMPL_TYPE_EXEC as FR_TYPE_STRING, too
Alan T. DeKok [Sat, 9 Jan 2021 22:21:52 +0000 (17:21 -0500)]
resolve ALL tmpls before passing them to cond_eval()
which means that cond_eval() just has to "realize" the tmpls
before evaluating. Which makes its life a lot easier.
We also add assertions to cond_eval() in order to force that
all of the callers have realized the tmpls.
It makes no sense to call cond_eval() on things which are
tmpl_is_unresolved(). *Someone* should have determined what that
thing is.
Alan T. DeKok [Sat, 9 Jan 2021 22:20:34 +0000 (17:20 -0500)]
xlats are strings for the purpose of conditional comparisons
Alan T. DeKok [Sat, 9 Jan 2021 22:19:37 +0000 (17:19 -0500)]
don't parse double/single quoted strings as booleans
we should instead use 0/1 or bare true/false
Alan T. DeKok [Sat, 9 Jan 2021 21:51:04 +0000 (16:51 -0500)]
ensure that the "case" tmpl is always resolved
Alan T. DeKok [Sat, 9 Jan 2021 20:46:37 +0000 (15:46 -0500)]
expose fr_cond_promote_types() and call it from unlang pass2
so that we can do all of the normalizations / checks necessary,
and not just whatever hacks have gone into the compiler
Alan T. DeKok [Sat, 9 Jan 2021 20:38:18 +0000 (15:38 -0500)]
remove unused variables
Alan T. DeKok [Sat, 9 Jan 2021 19:57:51 +0000 (14:57 -0500)]
remove old functions and simplify
we now have cond_cast_tmpl(), which casts a tmpl_t, and resolves
it if necessary. It also checks for IP addr -> prefix casting,
as that depends on the values, and can't be done in fr_type_promote()
We now also have cond_promote_types(), which checks LHS / RHS
for casts, ensures that they're compatible, and calls cond_cast_tmpl()
in order to cast the LHS / RHS tmpl to the appropriate type.
As a result, some unit tests have changed. Generally more things
are now allowed, as the compiler is smarter.
The one (minor) regression is that we don't do compile-time checks
for things like (&Attr-uint8 > 256), which should arguably be a
parse error. Instead, the RHS is a 16-bit value, so we promote
the LHS to a 16-bit value. It ends up being a run-time check
which is always false.
Alan T. DeKok [Fri, 8 Jan 2021 22:56:04 +0000 (17:56 -0500)]
update cond_promote_types() to resolve unresolved tmpls
which changes the test outputs a bit, but that seems OK
Alan T. DeKok [Fri, 8 Jan 2021 22:41:17 +0000 (17:41 -0500)]
use fr_type_promote() in condition tokenizer
and update one test: we can cast a "string" to "ipaddr"
for comparisons
Alan T. DeKok [Fri, 8 Jan 2021 21:03:29 +0000 (16:03 -0500)]
add fr_type_promote()
which returns what data type should be used when we have two
different data types in a comparison.
Note that the output data type _may_ be different from either
of the input data types!
Note also that there may be failures at run-time, if the values
don't fit.
Alan T. DeKok [Fri, 8 Jan 2021 16:31:43 +0000 (11:31 -0500)]
hoist checks to common code
Alan T. DeKok [Fri, 8 Jan 2021 16:22:00 +0000 (11:22 -0500)]
don't parse "Foo-Bar" as an attribute for tmpl_is_unresolved()
v4 requires "&" prefixes. So "&Foo-Bar" is tmpl_is_attr_unresolved()
Alan T. DeKok [Fri, 8 Jan 2021 15:47:50 +0000 (10:47 -0500)]
clean up checks for regex
it's never allowed on the RHS. and casts aren't allowed
Alan T. DeKok [Fri, 8 Jan 2021 15:23:17 +0000 (10:23 -0500)]
fix name
Alan T. DeKok [Fri, 8 Jan 2021 14:50:21 +0000 (09:50 -0500)]
have tmpl_cast_set() call fr_type_cast()
and update tests to match.
Alan T. DeKok [Fri, 8 Jan 2021 14:49:49 +0000 (09:49 -0500)]
add fr_type_cast()
which checks if you can cast type src->dst
Alan T. DeKok [Fri, 8 Jan 2021 13:52:33 +0000 (08:52 -0500)]
move 'size' to be with unsigned ints
Arran Cudbard-Bell [Fri, 8 Jan 2021 15:02:36 +0000 (15:02 +0000)]
Fix rlm_smtp
Arran Cudbard-Bell [Fri, 8 Jan 2021 14:54:22 +0000 (14:54 +0000)]
Typo
Arran Cudbard-Bell [Fri, 8 Jan 2021 14:49:12 +0000 (14:49 +0000)]
More fixups for the raw api in dhcpclient
Arran Cudbard-Bell [Fri, 8 Jan 2021 14:10:26 +0000 (14:10 +0000)]
Move remaining list heads out of fr_radius_packet_t into the request_t
Arran Cudbard-Bell [Fri, 8 Jan 2021 14:02:50 +0000 (14:02 +0000)]
Use pair list abstraction macros in more places
Arran Cudbard-Bell [Fri, 8 Jan 2021 14:02:24 +0000 (14:02 +0000)]
Request can be const when passed to log_rdebug_enabled
Arran Cudbard-Bell [Thu, 7 Jan 2021 22:34:35 +0000 (22:34 +0000)]
Quiet clang scan
Alan T. DeKok [Thu, 7 Jan 2021 21:45:38 +0000 (16:45 -0500)]
use FR_TYPE_VALUE
Arran Cudbard-Bell [Thu, 7 Jan 2021 20:57:40 +0000 (20:57 +0000)]
More dhcpclient fixes
Alan T. DeKok [Thu, 7 Jan 2021 21:05:12 +0000 (16:05 -0500)]
typo
Alan T. DeKok [Thu, 7 Jan 2021 20:50:42 +0000 (15:50 -0500)]
remove PACKAGE_* definitions from config.h.in
likely added by running "autoconf" locally, instead of doing
"make reconfig" at the top level.
We don't use PACKAGE_* definitions for anything, and they
should only be defined at the top level. i.e. the package is
"freeradius-server", and not "whatever module this happens to be"
Alan T. DeKok [Thu, 7 Jan 2021 20:41:36 +0000 (15:41 -0500)]
remove c->cast from everything
Alan T. DeKok [Thu, 7 Jan 2021 20:28:03 +0000 (15:28 -0500)]
we never allowed casts for existence checks
Alan T. DeKok [Thu, 7 Jan 2021 20:26:07 +0000 (15:26 -0500)]
remove c->cast from switch statements
Alan T. DeKok [Thu, 7 Jan 2021 20:02:52 +0000 (15:02 -0500)]
remove c->cast from pass2_fixup_cond_map()
Alan T. DeKok [Thu, 7 Jan 2021 18:18:51 +0000 (13:18 -0500)]
remove all references to c->cast from conditional evaluations
which means that we only rely on the LHS tmpl casting
Alan T. DeKok [Thu, 7 Jan 2021 18:10:08 +0000 (13:10 -0500)]
ensure that c->data.map->lhs->cast matches c->cast
Alan T. DeKok [Thu, 7 Jan 2021 17:49:06 +0000 (12:49 -0500)]
move more normalisation to cond_normalise()
Alan T. DeKok [Thu, 7 Jan 2021 17:18:37 +0000 (12:18 -0500)]
update error messages
Alan T. DeKok [Thu, 7 Jan 2021 15:28:26 +0000 (10:28 -0500)]
check tmpl types for casting
there's no reason to cast a regex to anything. casts only apply
to data types (data, attr, exec, xlat)
and update tests to match
Arran Cudbard-Bell [Thu, 7 Jan 2021 20:48:26 +0000 (20:48 +0000)]
Separate requests from packets in dhcpclient
Arran Cudbard-Bell [Thu, 7 Jan 2021 20:46:45 +0000 (20:46 +0000)]
request|reply_pairs already used
Arran Cudbard-Bell [Thu, 7 Jan 2021 19:04:09 +0000 (19:04 +0000)]
Remove dependency on packet->vps for radsnmp
Arran Cudbard-Bell [Thu, 7 Jan 2021 18:51:28 +0000 (18:51 +0000)]
Fixup radsniff to use packet lists distinct from packets
Arran Cudbard-Bell [Wed, 6 Jan 2021 17:54:01 +0000 (17:54 +0000)]
Fix packet verify to take a separate list pointer
Arran Cudbard-Bell [Wed, 6 Jan 2021 17:51:36 +0000 (17:51 +0000)]
...and some more
James Jones [Thu, 7 Jan 2021 01:26:21 +0000 (19:26 -0600)]
Make _fr_dbuff_init() and FR_DBUFF_TMP() set the buff field (#3837)
Arran Cudbard-Bell [Wed, 6 Jan 2021 17:49:00 +0000 (17:49 +0000)]
...and some more
Arran Cudbard-Bell [Wed, 6 Jan 2021 17:47:38 +0000 (17:47 +0000)]
Clean up uses of request->state
Arran Cudbard-Bell [Wed, 6 Jan 2021 17:42:48 +0000 (17:42 +0000)]
Pass list headers (separate from packets) into radius encoding/decoding functions
This is with a view of removing packet->vps, and moving it to request_t, after which we can maybe merge all the list heads under a single root.
Arran Cudbard-Bell [Wed, 6 Jan 2021 16:56:29 +0000 (16:56 +0000)]
Better names for some tmpl functions
Arran Cudbard-Bell [Wed, 6 Jan 2021 16:54:05 +0000 (16:54 +0000)]
Fix fr_packet_log to take a separate list
Nicolas Quiniou-Briand [Wed, 6 Jan 2021 11:18:03 +0000 (12:18 +0100)]
add HW-Ext-Specific RADIUS attribute for bounce port using CoA (#3833)
Alan T. DeKok [Tue, 5 Jan 2021 19:42:40 +0000 (14:42 -0500)]
catch more edge conditions in cond_eval()
and fixup parenting after normalization
James Jones [Tue, 5 Jan 2021 19:00:21 +0000 (13:00 -0600)]
Add code that honors the "max" field in fr_sbuff_uctx_file_t (#3786)
Note: buffering in the FILE may cause it to read more bytes
than the sbuff will be allowed to access.
James Jones [Tue, 5 Jan 2021 17:42:18 +0000 (11:42 -0600)]
Simplify internal_encode(). (#3830)
With a child dbuff to encode data into,
1. We needn't repeat ourselves with FR_DBUFF_RESERVE().
2. The length of the data when it's encoded is just the
used portion of the child dbuff.
We also switched to fr_dbuff_in_memcpy() to get the data length
into the dbuff; it gets rid of the clutter of FR_DBUFF_TMP().
James Jones [Tue, 5 Jan 2021 17:15:44 +0000 (11:15 -0600)]
Propagate shifted from parent to child (#3828)