]> git.ipfire.org Git - thirdparty/freeradius-server.git/log
thirdparty/freeradius-server.git
6 hours agoremove EXT_DA_STACK developer/alandekok master
Alan T. DeKok [Sat, 3 Jan 2026 01:30:42 +0000 (20:30 -0500)] 
remove EXT_DA_STACK

as it turns out, the da_stack was never initialized at the root,
and therefore was never set.  so the "cache da_stack" code was
never executed.

now that we have da->parent, we can remove the cached da_stack,
and start getting rid of the entire concept.

The da_stack is only used in the encoders, and even then many of
the encoder functions do little more than ensure it's updated
as we walk the cursor.

the only real value is in thing like the VSAs, where we have to
encode multiple layers of attributes.  So we could likely just
ignore the entire da_stack for most of the encoders, and only
create it in the few (VSA) things where it's needed.

6 hours agoEXT_CHILD is for children by number, and has no namespace
Alan T. DeKok [Sat, 3 Jan 2026 01:23:24 +0000 (20:23 -0500)] 
EXT_CHILD is for children by number, and has no namespace

arguably we could unify the two structures, as a structural type
always has both.

6 hours agocatch the case where both operands may be NULL
Alan T. DeKok [Sat, 3 Jan 2026 00:47:37 +0000 (19:47 -0500)] 
catch the case where both operands may be NULL

@todo - we should really be passing the expected _output_ data
type in, but this change seems to be OK for now.

15 hours agotemporary patch which can be used for testing $(fork-bg ...)
Alan T. DeKok [Fri, 2 Jan 2026 16:10:18 +0000 (11:10 -0500)] 
temporary patch which can be used for testing $(fork-bg ...)

once the functionality works, this file should be deleted.

15 hours agocreate $(fork-bg ) function and glue it into the build system.
Alan T. DeKok [Thu, 1 Jan 2026 17:11:21 +0000 (12:11 -0500)] 
create $(fork-bg ) function and glue it into the build system.

which mostly works, sort of.

It allows environent variables to be passed in.  It parses the
command-line options, including quoted strings.

But the interaction with GNU make is somewhat lacking.

changing src/tests/radiusd.mk to use it shows some oddities.

* we have to use $$(fork-bg ...) there, in order to delay the
  running of the fork until the target rule is run, not when the
  function is defined

* radiusd needs to get passed '-r', so that it reads from stdin for
  radmin.  And therefore when make exits, the input pipe should be
  closed, and (after the recent radmin changes), radiusd exits.
  Note that we must use pipe() and not socketpair().  A socketpair
  is a unix socket which sticks around after the process has
  exited.  In contrast, a pipe() is closed then the parent process
  exits.

* we can see if the exec failed, but we can't see if the program
  later exited with an error.  This could perhaps be fixed by
  adding another function $(fork-running KEY).  which would have
  to check if the stdout socket was writeable, and try to write
  one byte to it?  if we get ECONNRESET, then we know that the
  program has exited.

* $(fork-bg returns immediately, and not when the program is
  fully functional.  This means that radclient runs right away,
  even before the server is ready.  We should probably update the
  code to read data from the program.  If we can get at least one
  byte of data, then the program must be running.  If the read
  fails, then it's likely that the program has exited.

It's not clear right now how to add in those checks in a way that
is both easy to understand, and easy to implement in some gnu make
framework.

Perhaps we could push the tests over to a child thread, and have
it select(max,NULL,NULL,errorfds) to see if the socket has gone
away.  Than, it could flag the internal memory structure as
"child exited".

But that then doesn't provide a way for it to send some kind of
signal back to Make, so that it can run something which catches
the "failed to start program" error case.

17 hours agotweak radmin messages
Alan T. DeKok [Fri, 2 Jan 2026 13:41:12 +0000 (08:41 -0500)] 
tweak radmin messages

show when the radmin interface is starting and stopping.

give better errors when things go wrong

19 hours agotweak using more evals, in preparation for moving to fork
Alan T. DeKok [Fri, 2 Jan 2026 12:17:07 +0000 (07:17 -0500)] 
tweak using more evals, in preparation for moving to fork

19 hours agofix typo
Alan T. DeKok [Fri, 2 Jan 2026 11:41:17 +0000 (06:41 -0500)] 
fix typo

20 hours agocheck for errors on dup/cloexec
Alan T. DeKok [Fri, 2 Jan 2026 11:37:17 +0000 (06:37 -0500)] 
check for errors on dup/cloexec

they're rare, but are technically possible

20 hours agomove more code to macros
Alan T. DeKok [Fri, 2 Jan 2026 11:33:36 +0000 (06:33 -0500)] 
move more code to macros

30 hours agoallow radmin to read/write to the console
Alan T. DeKok [Fri, 2 Jan 2026 00:31:49 +0000 (19:31 -0500)] 
allow radmin to read/write to the console

if we're not running in debug mode, the various log APIs close
stdin/stdout/stderr in order to prevent exec'd programs from
mangling them.  However, this operation also mangles the file
descriptors which are needed by radmin.

So we dup the file descriptors, and tell radmin / readline to use
the new ones.

31 hours agoadd fr_cloexec()
Alan T. DeKok [Fri, 2 Jan 2026 00:37:05 +0000 (19:37 -0500)] 
add fr_cloexec()

37 hours agoAdd support for backticked expansions in legacy file formats, in certain situations developer/arr2036
Arran Cudbard-Bell [Thu, 1 Jan 2026 18:23:35 +0000 (18:23 +0000)] 
Add support for backticked expansions in legacy file formats, in certain situations

This lets us add dynamic values in certain situations.  Output from exec is limited to a single line (for now).

37 hours agoraduat: Switch to using arrays for file lists
Arran Cudbard-Bell [Thu, 1 Jan 2026 12:05:29 +0000 (12:05 +0000)] 
raduat: Switch to using arrays for file lists

37 hours agoraduat: Apparently there are issues with -a and -o?
Arran Cudbard-Bell [Thu, 1 Jan 2026 12:03:28 +0000 (12:03 +0000)] 
raduat: Apparently there are issues with -a and -o?

37 hours agoraduat: Remove dup
Arran Cudbard-Bell [Thu, 1 Jan 2026 11:37:26 +0000 (11:37 +0000)] 
raduat: Remove dup

37 hours agoraduat: Use arrays for role_types
Arran Cudbard-Bell [Thu, 1 Jan 2026 11:32:11 +0000 (11:32 +0000)] 
raduat: Use arrays for role_types

37 hours agoraduat: WS
Arran Cudbard-Bell [Thu, 1 Jan 2026 11:19:29 +0000 (11:19 +0000)] 
raduat: WS

37 hours agoraduat: Add option to quietly skip tests for hosts we don't have cluster or role...
Arran Cudbard-Bell [Thu, 1 Jan 2026 11:10:14 +0000 (11:10 +0000)] 
raduat: Add option to quietly skip tests for hosts we don't have cluster or role definitions for

37 hours agoraduat: Rename help function
Arran Cudbard-Bell [Thu, 1 Jan 2026 11:05:23 +0000 (11:05 +0000)] 
raduat: Rename help function

37 hours agoraduat: Print the actual default value for parallel
Arran Cudbard-Bell [Thu, 1 Jan 2026 10:57:25 +0000 (10:57 +0000)] 
raduat:  Print the actual default value for parallel

37 hours agoraduat: Allow custom splitting on FQDN. Use a single var for cluster matching and...
Arran Cudbard-Bell [Wed, 31 Dec 2025 19:44:55 +0000 (19:44 +0000)] 
raduat: Allow custom splitting on FQDN.  Use a single var for cluster matching and as the destination for where we send test packets

37 hours agoraduat: Remove useless semicolon
Arran Cudbard-Bell [Wed, 31 Dec 2025 19:31:48 +0000 (19:31 +0000)] 
raduat: Remove useless semicolon

37 hours agoraduat: Clean up temporary files on exit
Arran Cudbard-Bell [Wed, 31 Dec 2025 19:02:31 +0000 (19:02 +0000)] 
raduat:  Clean up temporary files on exit

37 hours agoraduat: Use the computed file name
Arran Cudbard-Bell [Wed, 31 Dec 2025 19:02:13 +0000 (19:02 +0000)] 
raduat: Use the computed file name

37 hours agoraduat: Fix redirection of output
Arran Cudbard-Bell [Wed, 31 Dec 2025 19:02:04 +0000 (19:02 +0000)] 
raduat: Fix redirection of output

37 hours agoraduat: Avoid setting a default role
Arran Cudbard-Bell [Wed, 31 Dec 2025 18:59:23 +0000 (18:59 +0000)] 
raduat: Avoid setting a default role

37 hours agoraduat: Clusters should be the basename of the path not the entire path
Arran Cudbard-Bell [Wed, 31 Dec 2025 18:57:15 +0000 (18:57 +0000)] 
raduat: Clusters should be the basename of the path not the entire path

37 hours agoraduat: "which" is apparently not portable...
Arran Cudbard-Bell [Wed, 31 Dec 2025 18:56:22 +0000 (18:56 +0000)] 
raduat: "which" is apparently not portable...

37 hours agoraduat: Fix some quoting issues
Arran Cudbard-Bell [Wed, 31 Dec 2025 18:55:43 +0000 (18:55 +0000)] 
raduat: Fix some quoting issues

37 hours agoclean up and simplify rules to build makefile libraries
Alan T. DeKok [Thu, 1 Jan 2026 16:44:25 +0000 (11:44 -0500)] 
clean up and simplify rules to build makefile libraries

39 hours agosimplify the build rules
Alan T. DeKok [Thu, 1 Jan 2026 16:08:40 +0000 (11:08 -0500)] 
simplify the build rules

remove unnecessary comments and examples.

move common definitions to a common.mk file

simplify the use of $(filter-out ...)

filter out "--rtlib=.." from the LDFLAGS.  This change prevents
linking errors when building with the sanitizers enabled.

40 hours agoremove reference to file that no longer exists
Alan T. DeKok [Thu, 1 Jan 2026 14:46:58 +0000 (09:46 -0500)] 
remove reference to file that no longer exists

40 hours agoremove reference to v3
Alan T. DeKok [Thu, 1 Jan 2026 14:46:02 +0000 (09:46 -0500)] 
remove reference to v3

and point to local documentation

40 hours agotweak the build instructions for v4
Alan T. DeKok [Thu, 1 Jan 2026 14:43:49 +0000 (09:43 -0500)] 
tweak the build instructions for v4

and remove all references to v3

41 hours agoupdate links and documentation
Alan T. DeKok [Thu, 1 Jan 2026 14:39:04 +0000 (09:39 -0500)] 
update links and documentation

41 hours agothe logging functions need $(...) for them to be evaluated
Alan T. DeKok [Thu, 1 Jan 2026 13:48:32 +0000 (08:48 -0500)] 
the logging functions need $(...) for them to be evaluated

and for some reason there are CRs added.  So delete those, too

41 hours agomark unused attribute as unused
Alan T. DeKok [Thu, 1 Jan 2026 13:47:51 +0000 (08:47 -0500)] 
mark unused attribute as unused

2 days agoexit the server when the radmin interface hits EOF
Alan T. DeKok [Wed, 31 Dec 2025 17:34:37 +0000 (12:34 -0500)] 
exit the server when the radmin interface hits EOF

2 days agoclean up more parallelization on the tests
Alan T. DeKok [Wed, 31 Dec 2025 15:05:21 +0000 (10:05 -0500)] 
clean up more parallelization on the tests

we don't need serialization for the directories

2 days agoserialize tests in each directory, too
Alan T. DeKok [Wed, 31 Dec 2025 14:32:53 +0000 (09:32 -0500)] 
serialize tests in each directory, too

Each directory uses different ports, so perhaps the directories
can be run in parallel.

But the files in each directory all use the same port, so the
files need to be run in series.

2 days agouse constant time comparisons
Alan T. DeKok [Wed, 31 Dec 2025 13:30:09 +0000 (08:30 -0500)] 
use constant time comparisons

2 days agoreserve 20 ports for each "radiusd", not 1:
Alan T. DeKok [Wed, 31 Dec 2025 13:19:14 +0000 (08:19 -0500)] 
reserve 20 ports for each "radiusd", not 1:

2 days agohave tests explicitly depend on each other.
Alan T. DeKok [Wed, 31 Dec 2025 12:57:43 +0000 (07:57 -0500)] 
have tests explicitly depend on each other.

this is the first step in parallelization.

2 days agotweaks and fixes
Alan T. DeKok [Wed, 31 Dec 2025 12:29:28 +0000 (07:29 -0500)] 
tweaks and fixes

2 days agoallow some module tests to be run in parallel
Alan T. DeKok [Wed, 31 Dec 2025 12:23:10 +0000 (07:23 -0500)] 
allow some module tests to be run in parallel

3 days agoautomatically add ref=@.OID-Tree to types with oid_and_value
Alan T. DeKok [Tue, 30 Dec 2025 16:54:33 +0000 (11:54 -0500)] 
automatically add ref=@.OID-Tree to types with oid_and_value

so that we don't have to litter it all through the code

3 days agobe more forgiving about setting data types
Alan T. DeKok [Tue, 30 Dec 2025 17:06:51 +0000 (12:06 -0500)] 
be more forgiving about setting data types

3 days agorename "is_oid_leaf" to "leaf"
Alan T. DeKok [Tue, 30 Dec 2025 16:29:25 +0000 (11:29 -0500)] 
rename "is_oid_leaf" to "leaf"

which is less confusing.

The "leaf" property means that when we're encoding a nested set
of attributes, we encode the OIDs until we hit one which has the
"leaf" property set.  We then encode the OID of this attribute,
along with its value.

3 days agouse memcpy, as we've already checked the lengths
Alan T. DeKok [Tue, 30 Dec 2025 14:12:12 +0000 (09:12 -0500)] 
use memcpy, as we've already checked the lengths

3 days agoRevert "don't use strncpy()"
Alan T. DeKok [Tue, 30 Dec 2025 14:11:59 +0000 (09:11 -0500)] 
Revert "don't use strncpy()"

This reverts commit d70dd19fd7a9a5c42852eccd7ce0681d526e69e8.

3 days agoMove support libraries into freeradius-common
Arran Cudbard-Bell [Tue, 30 Dec 2025 13:53:59 +0000 (13:53 +0000)] 
Move support libraries into freeradius-common

These are required by the server, but unfortunately due to the number of cross-dependencies, it's very hard to separate them, and at the moment installing something like freeradius-utils, pulls in the main daemon too.

3 days agomake provisions for printing aliases instead of long names
Alan T. DeKok [Tue, 30 Dec 2025 13:22:03 +0000 (08:22 -0500)] 
make provisions for printing aliases instead of long names

for now, we're only _shortening_ the name if we're also _flattening_
it.

3 days agoallow aliases to be added to groups
Alan T. DeKok [Tue, 30 Dec 2025 12:54:35 +0000 (07:54 -0500)] 
allow aliases to be added to groups

but only by protocol libraries, not by user-editable dictionaries

3 days agoban strncpy()
Alan T. DeKok [Tue, 30 Dec 2025 12:05:34 +0000 (07:05 -0500)] 
ban strncpy()

3 days agojust use memcpy, and manually check for lengths
Alan T. DeKok [Tue, 30 Dec 2025 12:52:14 +0000 (07:52 -0500)] 
just use memcpy, and manually check for lengths

3 days agoupdate comment
Alan T. DeKok [Tue, 30 Dec 2025 12:14:40 +0000 (07:14 -0500)] 
update comment

3 days agojust use strlcpy()
Alan T. DeKok [Tue, 30 Dec 2025 12:03:25 +0000 (07:03 -0500)] 
just use strlcpy()

3 days agodon't use strncpy() to copy binary data
Alan T. DeKok [Tue, 30 Dec 2025 12:03:07 +0000 (07:03 -0500)] 
don't use strncpy() to copy binary data

3 days agoremove non-existent directory
Alan T. DeKok [Tue, 30 Dec 2025 12:02:51 +0000 (07:02 -0500)] 
remove non-existent directory

3 days agodon't use strncpy()
Alan T. DeKok [Tue, 30 Dec 2025 11:58:54 +0000 (06:58 -0500)] 
don't use strncpy()

the code jumps through all kinds of hoops rather than just
calling a sane API.

3 days agofix write and read, make DISCARD sticky. Fixes #5668
Alan T. DeKok [Tue, 30 Dec 2025 11:45:33 +0000 (06:45 -0500)] 
fix write and read, make DISCARD sticky.  Fixes #5668

Manual merge and tweaks.

4 days agoadd "root" refs to FR_TYPE_ATTR
Alan T. DeKok [Mon, 29 Dec 2025 19:10:40 +0000 (14:10 -0500)] 
add "root" refs to FR_TYPE_ATTR

and use in DER.  The "root" ref is to the OID tree, and is largely
a work-around for the fact that the OIDs are not in their own
dictionary.

We also update the value-box code to get the correct enumv, and
then that lets the tests both drop any "OID-Tree" prefix from the
expected output, and also updates the "can't find OID" message to
refer to "OID-Tree" instead of the DER root.

Also add aliases in the DER root from "iso" to "OID-Tree.iso",
so that we the parser doesn't need to know anything about the enums
for FR_TYPE_ATTR

4 days agofix typos in error message
Alan T. DeKok [Mon, 29 Dec 2025 13:09:50 +0000 (08:09 -0500)] 
fix typos in error message

4 days agoallow some groups to print attributes as "flat"
Alan T. DeKok [Mon, 29 Dec 2025 12:21:40 +0000 (07:21 -0500)] 
allow some groups to print attributes as "flat"

For now, we add a special attribute flag "allow_flat", which
causes the attributes to be printed as a flat list.  But only when
there is only one child.  e.g. when we have:

Vendor-Specific = { Cisco = { AVPair = 1 } }

we can now sometimes print it as

Vendor-Specific.Cisco.AVPair = 1

for now, this is only done for attributes of type 'group', in order
to support the DER code.  We don't change the output for all
protocols, as doing so would involve a lot of changes to the tests.
The different output may also confuse the average admin, who would
sometimes see nested attributes, and sometimes flat ones, for no
apparent reason.

The parser has already been updated to take a flat definition
(as above), and create the fully nested version.

4 days agotweak fault handler setup
Alan T. DeKok [Mon, 29 Dec 2025 12:18:44 +0000 (07:18 -0500)] 
tweak fault handler setup

5 days agohoist "print name" to its own function
Alan T. DeKok [Sun, 28 Dec 2025 20:45:53 +0000 (15:45 -0500)] 
hoist "print name" to its own function

in preparation for DER nesting changes

5 days agotweak cast parsing and produce a bit better errors
Alan T. DeKok [Sun, 28 Dec 2025 12:45:09 +0000 (07:45 -0500)] 
tweak cast parsing and produce a bit better errors

6 days agoclean up and unify "get namespace from tmpl_rules_t"
Alan T. DeKok [Sat, 27 Dec 2025 17:30:00 +0000 (12:30 -0500)] 
clean up and unify "get namespace from tmpl_rules_t"

6 days agoallow t_rules to be NULL
Alan T. DeKok [Sat, 27 Dec 2025 13:54:21 +0000 (08:54 -0500)] 
allow t_rules to be NULL

6 days agohoist code to function
Alan T. DeKok [Sat, 27 Dec 2025 13:51:15 +0000 (08:51 -0500)] 
hoist code to function

6 days agonamespace and t_rules should never be NULL.
Alan T. DeKok [Sat, 27 Dec 2025 12:19:56 +0000 (07:19 -0500)] 
namespace and t_rules should never be NULL.

CID #1677875 and CID #1677874

7 days agocheck length of extend_lowat
Alan T. DeKok [Fri, 26 Dec 2025 16:00:21 +0000 (11:00 -0500)] 
check length of extend_lowat

7 days agoprint input if asked in debug mode
Alan T. DeKok [Fri, 26 Dec 2025 10:16:00 +0000 (05:16 -0500)] 
print input if asked in debug mode

7 days agouse new functions to decode IP addresses and prefixes
Alan T. DeKok [Thu, 25 Dec 2025 19:46:31 +0000 (14:46 -0500)] 
use new functions to decode IP addresses and prefixes

add test from fuzzer, and update RADIUS IPv6 prefix decode test.

7 days agoadd function to decode IP addresses from network
Alan T. DeKok [Thu, 25 Dec 2025 18:45:16 +0000 (13:45 -0500)] 
add function to decode IP addresses from network

which takes more arguments than the mroe generic function
fr_value_box_from_network().  This flexibility makes it useful
for protocols which do not have a "standard" way to encode IP
addresses / prefixes

8 days agoadd more PAIR_ALLOCED() macros
Alan T. DeKok [Thu, 25 Dec 2025 18:04:38 +0000 (13:04 -0500)] 
add more PAIR_ALLOCED() macros

so that when something goes bad in pair_verify(), we know which
part of the code broke things

8 days agoset up fault handler for fuzzers
Alan T. DeKok [Thu, 25 Dec 2025 17:53:17 +0000 (12:53 -0500)] 
set up fault handler for fuzzers

8 days agoonly call the backtrace functions if they were initialized
Alan T. DeKok [Thu, 25 Dec 2025 17:49:07 +0000 (12:49 -0500)] 
only call the backtrace functions if they were initialized

8 days agouse correct return code
Alan T. DeKok [Thu, 25 Dec 2025 16:38:55 +0000 (11:38 -0500)] 
use correct return code

8 days agodefine more enumerataion values to quiet compiler
Alan T. DeKok [Thu, 25 Dec 2025 16:37:03 +0000 (11:37 -0500)] 
define more enumerataion values to quiet compiler

8 days agowe don't need to add the redis directory to the includes
Alan T. DeKok [Thu, 25 Dec 2025 16:18:52 +0000 (11:18 -0500)] 
we don't need to add the redis directory to the includes

it's already linked in from src/include/redis

8 days agoremove extra ';'
Alan T. DeKok [Thu, 25 Dec 2025 16:18:18 +0000 (11:18 -0500)] 
remove extra ';'

8 days agoquiet more compile warnings
Alan T. DeKok [Thu, 25 Dec 2025 16:17:45 +0000 (11:17 -0500)] 
quiet more compile warnings

8 days agothese should be static
Alan T. DeKok [Thu, 25 Dec 2025 16:14:44 +0000 (11:14 -0500)] 
these should be static

8 days agothis should be static
Alan T. DeKok [Thu, 25 Dec 2025 16:13:17 +0000 (11:13 -0500)] 
this should be static

8 days agocomment out migration options.
Alan T. DeKok [Thu, 25 Dec 2025 16:10:40 +0000 (11:10 -0500)] 
comment out migration options.

-S foo is now ignored.  It should be removed before the official
release.

8 days agothis should be static
Alan T. DeKok [Thu, 25 Dec 2025 16:05:07 +0000 (11:05 -0500)] 
this should be static

8 days agoremove redundant ';' when using slab macros
Alan T. DeKok [Thu, 25 Dec 2025 16:01:17 +0000 (11:01 -0500)] 
remove redundant ';' when using slab macros

8 days agocast to avoid -Wcomma warning
Alan T. DeKok [Thu, 25 Dec 2025 15:55:39 +0000 (10:55 -0500)] 
cast to avoid -Wcomma warning

8 days agocasts and tweaks to avoid -Wpedantic
Alan T. DeKok [Thu, 25 Dec 2025 15:53:41 +0000 (10:53 -0500)] 
casts and tweaks to avoid -Wpedantic

8 days agothis definition can be static
Alan T. DeKok [Thu, 25 Dec 2025 15:43:12 +0000 (10:43 -0500)] 
this definition can be static

8 days agoclean up and clarify namespace issues
Alan T. DeKok [Thu, 25 Dec 2025 15:35:38 +0000 (10:35 -0500)] 
clean up and clarify namespace issues

both for structural attribute to child , and for groups of

protocol/internal -> internal/protocol

in preparation for supporting "flat" attributes in some groups

8 days agoensure that variable is initialized
Alan T. DeKok [Thu, 25 Dec 2025 15:12:51 +0000 (10:12 -0500)] 
ensure that variable is initialized

8 days agolimit the "name2" for update sections in modules
Alan T. DeKok [Thu, 25 Dec 2025 13:05:04 +0000 (08:05 -0500)] 
limit the "name2" for update sections in modules

since we no longer support full-featured "update" sections, there
is no point in supporting full paths (outer, parent, etc.) in
update sections.  Plus, none of the modules use them.

So rather than either confusing the admin, or allowing them to do
something which might not work, we just return a compile-time
error.

The deleted code was also the only code (other then tests) that
called tmpl_request_ref_list_afrom_substr().  This cleanup will
allow us to fix the tmpl code for ""flat" groups

8 days agoupdate sections don't take a second name
Alan T. DeKok [Thu, 25 Dec 2025 12:36:07 +0000 (07:36 -0500)] 
update sections don't take a second name

8 days agomissed in previous commit
Alan T. DeKok [Thu, 25 Dec 2025 12:30:22 +0000 (07:30 -0500)] 
missed in previous commit

9 days agohoist "is attribute request/reply/control/" checks to common function
Alan T. DeKok [Wed, 24 Dec 2025 16:17:10 +0000 (11:17 -0500)] 
hoist "is attribute request/reply/control/" checks to common function

9 days agothis variable can be made static
Alan T. DeKok [Wed, 24 Dec 2025 16:07:44 +0000 (11:07 -0500)] 
this variable can be made static

9 days agolimit request qualifier parsing.
Alan T. DeKok [Tue, 23 Dec 2025 19:30:16 +0000 (20:30 +0100)] 
limit request qualifier parsing.

don't allow "current", as it doesn't make sense for people to
specify it.  The default is always current.

Don't allow "outer.parent" or "parent.outer".  Those don't make
sense, either.