]>
git.ipfire.org Git - thirdparty/freeradius-server.git/log
Alan T. DeKok [Tue, 23 Nov 2021 20:46:01 +0000 (15:46 -0500)]
if we allow %() and %{}, then parse both
Alan T. DeKok [Tue, 23 Nov 2021 19:41:31 +0000 (14:41 -0500)]
remove check for now
Alan T. DeKok [Tue, 23 Nov 2021 17:43:15 +0000 (12:43 -0500)]
mark up a bunch of functions as PURE.
Nothing uses the flag yet, but that's coming.
Note that any function which uses 'request->foo' at runtime
is NOT pure. However, the xlat functions MAY use RDEBUG, REDEBUG,
or other R macros
Alan T. DeKok [Tue, 23 Nov 2021 17:30:36 +0000 (12:30 -0500)]
pass xlat_flags_t to xlat_register()
so that we can pass both needs_async && pure
Alan T. DeKok [Tue, 23 Nov 2021 17:26:38 +0000 (12:26 -0500)]
pure functions cannot require async resolution
they must operate only on things in memory
Alan T. DeKok [Tue, 23 Nov 2021 15:47:36 +0000 (10:47 -0500)]
rename XLAT_LITERAL to XLAT_BOX
we already have XLAT_VIRTUAL, so we might as well avoid
XLAT_VALUE_BOX. But that can be changed at any time.
Updated comments and functions to make it clear which things
are strings, and which things are literal values (i.e. boxes)
Alan T. DeKok [Tue, 23 Nov 2021 15:19:12 +0000 (10:19 -0500)]
add value_box to xlat node, and make XLAT_LITERAL use it
right now we don't pass (or therefore use) any tainting flag.
That should arguably be fixed.
Alan T. DeKok [Mon, 22 Nov 2021 20:13:35 +0000 (15:13 -0500)]
now that we don't mangle things, put these into a union
because there's no reason to have all of the field available
for all of the xlat types
Alan T. DeKok [Mon, 22 Nov 2021 20:11:07 +0000 (15:11 -0500)]
we don't need to store node->attr for virtual attributes
the function itself defines what to do
Alan T. DeKok [Mon, 22 Nov 2021 20:09:19 +0000 (15:09 -0500)]
minor reformatting, and use common function
Alan T. DeKok [Sun, 21 Nov 2021 22:28:17 +0000 (17:28 -0500)]
minor cleanups, and add calculations for booleans
it's still not clear what to do for IFIDs and ethernet addresses.
IFIDs are site-local integers, and likely should just be treated
as opaque blobs.
we may want to allow editing ethernet addresses, by splitting
them into OUI, or by merging OUI and trailing bits. But for now
the caller might as well just convert them to octets, do the
opertions, and convert them back.
Alan T. DeKok [Sat, 20 Nov 2021 19:59:15 +0000 (14:59 -0500)]
add preliminary support for and/or
we likely also want to allow
ipaddr AND integer -> ipv4prefix
tho that' a little more work to figure stuff out
Alan T. DeKok [Sat, 20 Nov 2021 17:52:39 +0000 (12:52 -0500)]
typo: don't NUL terminate octet strings
Alan T. DeKok [Sat, 20 Nov 2021 17:38:41 +0000 (12:38 -0500)]
add cast to shut up warnings
Alan T. DeKok [Sat, 20 Nov 2021 17:37:47 +0000 (12:37 -0500)]
this is only for clang
Alan T. DeKok [Sat, 20 Nov 2021 16:24:54 +0000 (11:24 -0500)]
try to shut up clang
Alan T. DeKok [Sat, 20 Nov 2021 16:18:55 +0000 (11:18 -0500)]
we only need to clear values, not the whole thing
Alan T. DeKok [Sat, 20 Nov 2021 16:09:35 +0000 (11:09 -0500)]
subtraction is the inverse of addition
Alan T. DeKok [Sat, 20 Nov 2021 16:18:06 +0000 (11:18 -0500)]
clear the right thing
Alan T. DeKok [Sat, 20 Nov 2021 16:02:43 +0000 (11:02 -0500)]
add unary operation function
Alan T. DeKok [Sat, 20 Nov 2021 14:46:00 +0000 (09:46 -0500)]
add tests for assignment operations
Alan T. DeKok [Sat, 20 Nov 2021 14:18:14 +0000 (09:18 -0500)]
add binary op array
Alan T. DeKok [Sat, 20 Nov 2021 14:13:15 +0000 (09:13 -0500)]
add function to manage assignment operations
Alan T. DeKok [Sat, 20 Nov 2021 14:12:58 +0000 (09:12 -0500)]
add MUL and DIV
and rename errors due to floating point issues
Alan T. DeKok [Fri, 19 Nov 2021 21:43:46 +0000 (16:43 -0500)]
add and use fr_value_box_cast_to_float()
Alan T. DeKok [Fri, 19 Nov 2021 21:28:49 +0000 (16:28 -0500)]
set output on success, not on error
Alan T. DeKok [Fri, 19 Nov 2021 21:12:05 +0000 (16:12 -0500)]
rename function
we will later have unary / self-modifying functions. So it's
best to have consistent names from the start
Alan T. DeKok [Fri, 19 Nov 2021 21:00:29 +0000 (16:00 -0500)]
create and use T_ADD, T_SUB, T_MUL, and T_DIV
note that we don't (yet) add them to fr_tokens_table[]
That's because attribute names have "-" in them. Adding "-" as
a token means that we no longer parse attribute names in the
same way.
The solution is likely to update the various pair parsers to
avoid the 1999-era gettoken() APIs, and instead use more modern
equivalents.
For now, we just define and use add/sub/mul/div for the various
calc tests.
Alan T. DeKok [Fri, 19 Nov 2021 20:33:09 +0000 (15:33 -0500)]
move T_OP_PREPEND
so that it's with the other assignment operators
Alan T. DeKok [Fri, 19 Nov 2021 20:20:52 +0000 (15:20 -0500)]
update use of T_TOKEN_LAST
it's not part of the enum, it's the number of elements in the enum
Alan T. DeKok [Fri, 19 Nov 2021 20:16:21 +0000 (15:16 -0500)]
use token-dependent initializers.
don't depend on implicit ordering
Alan T. DeKok [Fri, 19 Nov 2021 19:49:40 +0000 (14:49 -0500)]
T_OP_ADD / T_OP_SUB -> T_OP_ADD_EQ / T_OP_SUB_EQ
because they have an equals sign, too. This change is in preparation
for allowing many more tokens
Alan T. DeKok [Fri, 19 Nov 2021 19:42:39 +0000 (14:42 -0500)]
Revert "add debugging to see if we can find out where it's crashing"
This reverts commit
3baea0df017f1b3ccd47472071517bab2e1fef05 .
suspicions about the source of the issue were correct.
Alan T. DeKok [Fri, 19 Nov 2021 15:50:31 +0000 (10:50 -0500)]
doesn't hurt to free this
Alan T. DeKok [Fri, 19 Nov 2021 15:38:26 +0000 (10:38 -0500)]
return the VP only if the allocate_update was successful
Alan T. DeKok [Fri, 19 Nov 2021 15:05:32 +0000 (10:05 -0500)]
more used / unused
when we cast to a fixed-size leaf type, we never allocate
memory.
Jorge Pereira [Fri, 19 Nov 2021 14:32:57 +0000 (11:32 -0300)]
GNU Makefile can't handle directories (#4314)
Alan T. DeKok [Fri, 19 Nov 2021 14:30:12 +0000 (09:30 -0500)]
rearrange to have integer tests first
Alan T. DeKok [Fri, 19 Nov 2021 14:16:30 +0000 (09:16 -0500)]
remove duplicate flags merge.
it's already done at the bottom of the loop
Alan T. DeKok [Fri, 19 Nov 2021 14:11:04 +0000 (09:11 -0500)]
prepare for pure xlats
Alan T. DeKok [Thu, 18 Nov 2021 21:59:28 +0000 (16:59 -0500)]
might as well make this larger
Alan T. DeKok [Thu, 18 Nov 2021 21:55:54 +0000 (16:55 -0500)]
add debugging to see if we can find out where it's crashing
once we find it, this commit will be reverted
Alan T. DeKok [Thu, 18 Nov 2021 20:35:17 +0000 (15:35 -0500)]
shut up clang scan
Alan T. DeKok [Thu, 18 Nov 2021 19:40:42 +0000 (14:40 -0500)]
catch more corner cases
about the only time we can't handle overflow is when we do things
like
uint64 foo - int64 INT64_MIN -> uint64
arguably the RHS should be converted to uint64. Perhaps we'll
do that as a later step.
Alan T. DeKok [Thu, 18 Nov 2021 19:24:22 +0000 (14:24 -0500)]
more checks and add calc_integer_size
Alan T. DeKok [Thu, 18 Nov 2021 18:37:36 +0000 (13:37 -0500)]
more tests and cleanups
Alan T. DeKok [Thu, 18 Nov 2021 17:59:08 +0000 (12:59 -0500)]
add integer to integer math
with upcasting of intermediate results to the largest integer
type which can hold the value. And then finally cast to the
final type when we have the result.
Alan T. DeKok [Thu, 18 Nov 2021 01:26:59 +0000 (20:26 -0500)]
now that the base errors are better, rely on them
instead of doubling up on errors
Alan T. DeKok [Wed, 17 Nov 2021 22:10:09 +0000 (17:10 -0500)]
Revert "shut up clang on OSX"
This reverts commit
c9e90a0435e271e397edbbdb8971a905cff0f108 .
nope. causes all kinds of other errors
Alan T. DeKok [Wed, 17 Nov 2021 21:37:40 +0000 (16:37 -0500)]
shut up clang on OSX
Alan T. DeKok [Wed, 17 Nov 2021 19:48:46 +0000 (14:48 -0500)]
return correct error
Alan T. DeKok [Wed, 17 Nov 2021 19:45:07 +0000 (14:45 -0500)]
give humanly readable error message
Alan T. DeKok [Wed, 17 Nov 2021 19:31:57 +0000 (14:31 -0500)]
use sbuffs and check sbuff usage
Alan T. DeKok [Wed, 17 Nov 2021 19:44:16 +0000 (14:44 -0500)]
advance the input buffer, so we know what was parsed
Alan T. DeKok [Wed, 17 Nov 2021 19:09:01 +0000 (14:09 -0500)]
remove unused assignment
Alan T. DeKok [Wed, 17 Nov 2021 18:25:16 +0000 (13:25 -0500)]
reorder types
the ordered table in value.c didn't match the fr_type_t enum.
We now have all integer types together. All unsigned types
together. And all signed types together.
Alan T. DeKok [Wed, 17 Nov 2021 18:15:06 +0000 (13:15 -0500)]
parse only as much as necessary for IP addresses and prefixes
Alan T. DeKok [Wed, 17 Nov 2021 18:05:38 +0000 (13:05 -0500)]
add rules for ip addresses, hostnames, and prefixes
Alan T. DeKok [Wed, 17 Nov 2021 17:26:20 +0000 (12:26 -0500)]
we don't need host name lookups
Alan T. DeKok [Wed, 17 Nov 2021 17:24:58 +0000 (12:24 -0500)]
inet_pton() on OSX doesn't accept "127.0" as 127.0.0.0
despite what the documentation says.
But getaddrinfo() does accept it. So when we turn off hostname
lookups, IP address parsing fails.
Work around it by just doing the work ourselves.
Alan T. DeKok [Tue, 16 Nov 2021 21:06:04 +0000 (16:06 -0500)]
start of calculation and comparison API
Alan T. DeKok [Tue, 16 Nov 2021 17:03:41 +0000 (12:03 -0500)]
fix typo: left not right
Alan T. DeKok [Tue, 16 Nov 2021 17:03:17 +0000 (12:03 -0500)]
use correct name
Alan T. DeKok [Tue, 16 Nov 2021 16:26:55 +0000 (11:26 -0500)]
move "parse type + value" into common function
in preparation for adding new functionality
Alan T. DeKok [Tue, 16 Nov 2021 01:15:50 +0000 (20:15 -0500)]
ensure tokens table are the correct size
and use better initializers, so that we can reorder the tokens
without having to manually reorder multiple arrays
Alan T. DeKok [Tue, 16 Nov 2021 00:44:39 +0000 (19:44 -0500)]
add more data types to "cast to bool"
Alan T. DeKok [Tue, 16 Nov 2021 00:40:23 +0000 (19:40 -0500)]
T_HASH is the end of equality operators
this change means we can add new operators without changing this
definition
Alan T. DeKok [Sun, 14 Nov 2021 19:58:23 +0000 (14:58 -0500)]
add function to insert list after another one
Alan T. DeKok [Sun, 14 Nov 2021 13:58:40 +0000 (08:58 -0500)]
better error messages for inline attribute editing
Alan T. DeKok [Sun, 14 Nov 2021 03:07:15 +0000 (22:07 -0500)]
add fr_edit_list_free_children()
which will clear the children of a structural type
Alan T. DeKok [Sat, 13 Nov 2021 18:38:19 +0000 (13:38 -0500)]
"edit value then delete" gets moved to the tail of the edit list
Alan T. DeKok [Sat, 13 Nov 2021 18:31:26 +0000 (13:31 -0500)]
add insert/delete tests
Alan T. DeKok [Sat, 13 Nov 2021 18:19:28 +0000 (13:19 -0500)]
add "edit value then delete" tests
Alan T. DeKok [Sat, 13 Nov 2021 18:30:14 +0000 (13:30 -0500)]
re-init the deleted pairs list on abort
because the pairs will be moved to their correct place by
edit_undo()
Alan T. DeKok [Sat, 13 Nov 2021 18:13:02 +0000 (13:13 -0500)]
don't re-insert edit structure on "value then delete"
Alan T. DeKok [Sat, 13 Nov 2021 17:53:53 +0000 (12:53 -0500)]
add replace_value() and tweak API
Alan T. DeKok [Sat, 13 Nov 2021 13:50:34 +0000 (08:50 -0500)]
add hint for edit list size
so that all of the edits can (generally) live in a contiguous
region of memory, and then be freed all at once.
Alan T. DeKok [Sat, 13 Nov 2021 13:44:57 +0000 (08:44 -0500)]
if we free on abort, we might as well make commit into free
Alan T. DeKok [Fri, 12 Nov 2021 21:50:32 +0000 (16:50 -0500)]
no need to call talloc_free() after aborting the edits
Terry Burton [Fri, 12 Nov 2021 23:19:34 +0000 (23:19 +0000)]
Scheduled fuzzing: Merge and push pack the corpus (#4313)
Alan T. DeKok [Fri, 12 Nov 2021 21:43:47 +0000 (16:43 -0500)]
remove dead store
Alan T. DeKok [Fri, 12 Nov 2021 21:32:06 +0000 (16:32 -0500)]
we can't edit values of structural pairs
Alan T. DeKok [Fri, 12 Nov 2021 21:21:56 +0000 (16:21 -0500)]
insert_after tests
Alan T. DeKok [Fri, 12 Nov 2021 21:21:45 +0000 (16:21 -0500)]
minor notes
Alan T. DeKok [Fri, 12 Nov 2021 21:19:28 +0000 (16:19 -0500)]
don't free VP, pair_delete() does that
Alan T. DeKok [Fri, 12 Nov 2021 20:56:40 +0000 (15:56 -0500)]
rearrange / rename API, and add fr_edit_list_replace()
Alan T. DeKok [Fri, 12 Nov 2021 16:34:23 +0000 (11:34 -0500)]
remove INSERT_BEFORE, and update API
Alan T. DeKok [Fri, 12 Nov 2021 16:26:58 +0000 (11:26 -0500)]
we only need INSERT as insert after
Alan T. DeKok [Fri, 12 Nov 2021 16:25:50 +0000 (11:25 -0500)]
try to shut up clang scan
Alan T. DeKok [Thu, 11 Nov 2021 22:13:05 +0000 (17:13 -0500)]
add edit lists and tests
so that we can edit lists "in place", and then undo the edits
if anything goes wrong.
Alan T. DeKok [Thu, 11 Nov 2021 21:57:26 +0000 (16:57 -0500)]
functions return fr_pair_t*, not void*
Alan T. DeKok [Thu, 11 Nov 2021 21:52:25 +0000 (16:52 -0500)]
check correct variable, and allow "pos" to be NULL
which lets us insert things at the start of the list.
Arran Cudbard-Bell [Fri, 12 Nov 2021 02:06:02 +0000 (20:06 -0600)]
Tidy up ephemeral module_ctx_t struct creation
Arran Cudbard-Bell [Thu, 11 Nov 2021 22:23:09 +0000 (16:23 -0600)]
Correct fix for rlm_sql_cassandra
Arran Cudbard-Bell [Thu, 11 Nov 2021 22:13:44 +0000 (16:13 -0600)]
Unbound needs the inst name for xlats
Arran Cudbard-Bell [Thu, 11 Nov 2021 22:12:02 +0000 (16:12 -0600)]
Sync up module and instance data name
Arran Cudbard-Bell [Thu, 11 Nov 2021 22:10:26 +0000 (16:10 -0600)]
Fix arguments to cassandra
Arran Cudbard-Bell [Thu, 11 Nov 2021 22:01:08 +0000 (16:01 -0600)]
Use correct mctx fields in rlm_rest
Arran Cudbard-Bell [Thu, 11 Nov 2021 21:05:18 +0000 (15:05 -0600)]
Mark command_encode_dns_labels as nonnull
Arran Cudbard-Bell [Thu, 11 Nov 2021 21:00:46 +0000 (15:00 -0600)]
Use structures to pass arguments to instantiation and detach functions