]> git.ipfire.org Git - thirdparty/freeradius-server.git/log
thirdparty/freeradius-server.git
20 hours agoadd script to format files in raddb/ developer/alandekok master
Alan T. DeKok [Fri, 19 Jun 2026 19:44:09 +0000 (15:44 -0400)] 
add script to format files in raddb/

20 hours agomanually reformat in preparation for auto formatter
Alan T. DeKok [Fri, 19 Jun 2026 19:25:15 +0000 (15:25 -0400)] 
manually reformat in preparation for auto formatter

20 hours agomake unit_test_attribute print out "ERROR: " prefix for errors
Alan T. DeKok [Fri, 19 Jun 2026 16:45:19 +0000 (12:45 -0400)] 
make unit_test_attribute print out "ERROR: " prefix for errors
to more clearly distinguish them from correct output

20 hours agomanual minor formatting
Alan T. DeKok [Fri, 19 Jun 2026 16:49:48 +0000 (12:49 -0400)] 
manual minor formatting

in preparation for automatic formatting:

* commented-out configuration items have the comments on the
  first line

* commented-out configuration blocks use "##" at the start, to
  distinguish them from textual comments

* add ```...``` around code large code blocks in comments

23 hours agoCorrect module name developer/ndptech
Nick Porter [Thu, 18 Jun 2026 08:09:25 +0000 (09:09 +0100)] 
Correct module name

23 hours agoTrunk connections use connect_timeout, not connection_timeout
Nick Porter [Fri, 19 Jun 2026 16:38:43 +0000 (17:38 +0100)] 
Trunk connections use connect_timeout, not connection_timeout

2 days agodo checks at parse time, not when each socket opens
Alan T. DeKok [Thu, 18 Jun 2026 15:08:57 +0000 (11:08 -0400)] 
do checks at parse time, not when each socket opens

2 days agolib/ldap/state.c: fix copy-pasted/incomplete doxygen header (wrong @file, @brief...
Alexander Bainbridge-Sedivy [Wed, 17 Jun 2026 18:07:50 +0000 (14:07 -0400)] 
lib/ldap/state.c: fix copy-pasted/incomplete doxygen header (wrong @file, @brief, truncated comment)

2 days agolib/ldap/map: fix use-after-free in fr_ldap_map_getdn (freed vp appended on parse...
Alexander Bainbridge-Sedivy [Wed, 17 Jun 2026 16:12:31 +0000 (12:12 -0400)] 
lib/ldap/map: fix use-after-free in fr_ldap_map_getdn (freed vp appended on parse failure)

2 days agolib/ldap/directory: guard naming_contexts allocation with MEM() to avoid NULL deref...
Alexander Bainbridge-Sedivy [Wed, 17 Jun 2026 15:43:50 +0000 (11:43 -0400)] 
lib/ldap/directory: guard naming_contexts allocation with MEM() to avoid NULL deref on OOM

2 days agolib/ldap/control: fix off-by-one stack overflow in fr_ldap_control_merge (NULL termin...
Alexander Bainbridge-Sedivy [Wed, 17 Jun 2026 15:16:23 +0000 (11:16 -0400)] 
lib/ldap/control: fix off-by-one stack overflow in fr_ldap_control_merge (NULL terminator written past output array)

2 days agolib/ldap/bind: reject empty password in fr_ldap_bind_auth_async (LDAP unauthenticated...
Alexander Bainbridge-Sedivy [Wed, 17 Jun 2026 14:12:51 +0000 (10:12 -0400)] 
lib/ldap/bind: reject empty password in fr_ldap_bind_auth_async (LDAP unauthenticated bind = auth bypass)

2 days agolib/ldap/base.h: cast char to uint8_t before tolower() in fr_ldap_berval_strncasecmp...
Alexander Bainbridge-Sedivy [Wed, 17 Jun 2026 13:47:40 +0000 (09:47 -0400)] 
lib/ldap/base.h: cast char to uint8_t before tolower() in fr_ldap_berval_strncasecmp (signed-char UB)

2 days agolib/kafka/base.h: fix garbled GPL boilerplate ('kafkatribute') and truncated @brief
Alexander Bainbridge-Sedivy [Mon, 15 Jun 2026 20:01:13 +0000 (16:01 -0400)] 
lib/kafka/base.h: fix garbled GPL boilerplate ('kafkatribute') and truncated @brief

2 days agolib/io/load: re-apply pps overflow guard in load_timer as rate ramps up
Alexander Bainbridge-Sedivy [Mon, 15 Jun 2026 15:48:23 +0000 (11:48 -0400)] 
lib/io/load: re-apply pps overflow guard in load_timer as rate ramps up

2 days agolib/io/coord_pair: release request when time-tracking start fails in coord_pair_reque...
Alexander Bainbridge-Sedivy [Mon, 15 Jun 2026 15:04:19 +0000 (11:04 -0400)] 
lib/io/coord_pair: release request when time-tracking start fails in coord_pair_request_start (leak)

2 days agolib/io/control: fix NULL deref in fr_control_create when allocation fails
Alexander Bainbridge-Sedivy [Mon, 15 Jun 2026 14:19:31 +0000 (10:19 -0400)] 
lib/io/control: fix NULL deref in fr_control_create when allocation fails

2 days agolib/io/channel: seed message_interval EMA on first reply in fr_channel_send_reply
Alexander Bainbridge-Sedivy [Mon, 15 Jun 2026 14:06:42 +0000 (10:06 -0400)] 
lib/io/channel: seed message_interval EMA on first reply in fr_channel_send_reply

2 days agoeap_aka_sim/vector: NULL OPc dereference in vector_umts_from_ki() Milenage path ...
Alexander Bainbridge-Sedivy [Mon, 15 Jun 2026 13:19:30 +0000 (09:19 -0400)] 
eap_aka_sim/vector: NULL OPc dereference in vector_umts_from_ki() Milenage path (missing OP/OPc check)

2 days agoeap_aka_sim/module: use-after-free in mod_encode() checkcode error path (missing...
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 20:09:03 +0000 (16:09 -0400)] 
eap_aka_sim/module: use-after-free in mod_encode() checkcode error path (missing else)

2 days agoeap_aka_sim/encode: clear eap_packet->type.data on error paths to avoid dangling...
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 19:00:34 +0000 (15:00 -0400)] 
eap_aka_sim/encode: clear eap_packet->type.data on error paths to avoid dangling pointer / double-free

2 days agoeap/base.h: remove self-include and duplicate types.h includes
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 15:35:26 +0000 (11:35 -0400)] 
eap/base.h: remove self-include and duplicate types.h includes

2 days agocurl/xlat: fix leak of input box in uri.escape when curl_easy_escape fails
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 15:23:53 +0000 (11:23 -0400)] 
curl/xlat: fix leak of input box in uri.escape when curl_easy_escape fails

2 days agocurl/io: remove dead/misleading ternary in CURLINFO_TEXT debug logging
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 15:07:31 +0000 (11:07 -0400)] 
curl/io: remove dead/misleading ternary in CURLINFO_TEXT debug logging

2 days agobio/retry: remove duplicate fr_bio_retry_rewrite_t typedef in retry.h
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 14:31:06 +0000 (10:31 -0400)] 
bio/retry: remove duplicate fr_bio_retry_rewrite_t typedef in retry.h

2 days agobio/packet: fr_bio_packet_write_resume returns 'still blocked' (0) after a successful...
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 13:35:21 +0000 (09:35 -0400)] 
bio/packet: fr_bio_packet_write_resume returns 'still blocked' (0) after a successful resume when no app callback is set

2 days agobio/network: fix grammar in deny-overlaps error message ('is overlaps' -> 'overlaps')
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 13:29:11 +0000 (09:29 -0400)] 
bio/network: fix grammar in deny-overlaps error message ('is overlaps' -> 'overlaps')

2 days agobio/haproxy: fix duplicate RCSIDH identifier (lib_bio_fd_h -> lib_bio_haproxy_h)
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 13:25:45 +0000 (09:25 -0400)] 
bio/haproxy: fix duplicate RCSIDH identifier (lib_bio_fd_h -> lib_bio_haproxy_h)

2 days agobio/fd: clamp SO_RCVBUF/SO_SNDBUF on unsigned value to avoid negative setsockopt arg
Alexander Bainbridge-Sedivy [Fri, 12 Jun 2026 13:18:57 +0000 (09:18 -0400)] 
bio/fd: clamp SO_RCVBUF/SO_SNDBUF on unsigned value to avoid negative setsockopt arg

2 days agorlm bio/base: fix XDEBUG macro arity mismatch in NDEBUG builds
Alexander Bainbridge-Sedivy [Mon, 8 Jun 2026 20:58:12 +0000 (16:58 -0400)] 
rlm bio/base: fix XDEBUG macro arity mismatch in NDEBUG builds

2 days agorlm bio/base: fix misleading copy-paste comment in fr_bio_write_blocked
Alexander Bainbridge-Sedivy [Mon, 8 Jun 2026 20:31:59 +0000 (16:31 -0400)] 
rlm bio/base: fix misleading copy-paste comment in fr_bio_write_blocked

2 days agounit_test_map: fix dead error check masking earlier file failures
Alexander Bainbridge-Sedivy [Mon, 8 Jun 2026 18:42:04 +0000 (14:42 -0400)] 
unit_test_map: fix dead error check masking earlier file failures

2 days agounit_test_attribute: hex_to_bin matches nul terminator, silently accepting odd-length hex
Alexander Bainbridge-Sedivy [Mon, 8 Jun 2026 18:17:06 +0000 (14:17 -0400)] 
unit_test_attribute: hex_to_bin matches nul terminator, silently accepting odd-length hex

2 days agoradsnmp: handle stdin EOF in NEXT_LINE — fixes NULL deref in SET path and busy-loop...
Alexander Bainbridge-Sedivy [Mon, 8 Jun 2026 16:32:08 +0000 (12:32 -0400)] 
radsnmp: handle stdin EOF in NEXT_LINE — fixes NULL deref in SET path and busy-loop on pipe close

2 days agoradsniff: fix out-of-bounds access in rs_response_to_pcap circular buffer (post-incre...
Alexander Bainbridge-Sedivy [Mon, 8 Jun 2026 16:16:20 +0000 (12:16 -0400)] 
radsniff: fix out-of-bounds access in rs_response_to_pcap circular buffer (post-increment wrap)

2 days agoradsniff: fix off-by-one leaving RT (N+) retransmit bucket always reporting 0
Alexander Bainbridge-Sedivy [Mon, 8 Jun 2026 15:46:46 +0000 (11:46 -0400)] 
radsniff: fix off-by-one leaving RT (N+) retransmit bucket always reporting 0

2 days agoradmin: free readline buffer on 'skip blank lines' path in fr_radmin()
Alexander Bainbridge-Sedivy [Mon, 8 Jun 2026 14:14:47 +0000 (10:14 -0400)] 
radmin: free readline buffer on 'skip blank lines' path in fr_radmin()

2 days agoradlock: remove action passes negative sem_id to fr_sem_close() on error, masking...
Alexander Bainbridge-Sedivy [Mon, 8 Jun 2026 13:51:50 +0000 (09:51 -0400)] 
radlock: remove action passes negative sem_id to fr_sem_close() on error, masking the real error

2 days agono need to comment out whole sections in the cache module
Alan T. DeKok [Thu, 18 Jun 2026 13:37:12 +0000 (09:37 -0400)] 
no need to comment out whole sections in the cache module

unused sections are ignored.  Commenting out the section makes it
harder for the automatic formatter to work

2 days agouse standard indentation for everything
Alan T. DeKok [Wed, 17 Jun 2026 20:42:15 +0000 (16:42 -0400)] 
use standard indentation for everything

2 days agouse Asciidoc headings
Alan T. DeKok [Wed, 17 Jun 2026 20:15:54 +0000 (16:15 -0400)] 
use Asciidoc headings

3 days agoci: use GitHub App token for merge-upstream push
Arran Cudbard-Bell [Tue, 16 Jun 2026 23:42:50 +0000 (19:42 -0400)] 
ci: use GitHub App token for merge-upstream push

GITHUB_TOKEN cannot bypass Ruleset push restrictions. The freeradius-server-ci app (id 4072866) is installed on this repo and is a bypass actor in all branch protection rulesets.

3 days agorun "make doc.wrap"
Alan T. DeKok [Tue, 16 Jun 2026 21:53:00 +0000 (17:53 -0400)] 
run "make doc.wrap"

the files in raddb/ are not wrapped for now.  We can do that later,
after running a formatter on the input configuration files in the
raddb/ directory.  We can then run "conf2adoc", and update the
build rules to wrap the output adoc files after conversion.

after manual verification of many files, the content hasn't changed.

3 days agoremove malformed link
Alan T. DeKok [Tue, 16 Jun 2026 21:52:46 +0000 (17:52 -0400)] 
remove malformed link

3 days agopull the radiusd.conf.adoc file from radiusd.conf.in
Alan T. DeKok [Tue, 16 Jun 2026 15:51:56 +0000 (11:51 -0400)] 
pull the radiusd.conf.adoc file from radiusd.conf.in

which leaves a few `@foo@` still in the file, but oh well

3 days agowhitespace
Alan T. DeKok [Tue, 16 Jun 2026 15:51:36 +0000 (11:51 -0400)] 
whitespace

4 days agouse foo_config:: consistently
Alan T. DeKok [Tue, 16 Jun 2026 13:41:54 +0000 (09:41 -0400)] 
use foo_config:: consistently

instead of foo_config:, which does not render correctly

4 days agoadd missing $ for $Id:...$
Alan T. DeKok [Tue, 16 Jun 2026 13:34:13 +0000 (09:34 -0400)] 
add missing $ for $Id:...$

4 days agoCanonicalize 'Note:' to 'NOTE:'
Alan T. DeKok [Tue, 16 Jun 2026 13:30:58 +0000 (09:30 -0400)] 
Canonicalize 'Note:' to 'NOTE:'

perl -p -i -e 's/Note:/NOTE:/' $(git grep -l 'Note:' raddb/)

4 days agofix antora links
Alan T. DeKok [Tue, 16 Jun 2026 13:43:13 +0000 (09:43 -0400)] 
fix antora links

4 days agotweaks and updates
Alan T. DeKok [Tue, 16 Jun 2026 13:14:39 +0000 (09:14 -0400)] 
tweaks and updates

4 days agodocs-v4: Update processing packets section for v4. Update nav listing to match doc...
nolade [Fri, 12 Jun 2026 23:00:34 +0000 (19:00 -0400)] 
docs-v4: Update processing packets section for v4. Update nav listing to match doc title.

4 days agoadd and document "limit exec", too
Alan T. DeKok [Mon, 15 Jun 2026 18:35:08 +0000 (14:35 -0400)] 
add and document "limit exec", too

4 days agodon't push rules if the subsection can be missing
Alan T. DeKok [Mon, 15 Jun 2026 18:54:26 +0000 (14:54 -0400)] 
don't push rules if the subsection can be missing

4 days agoadd support for "limit files" in the "security" section
Alan T. DeKok [Mon, 15 Jun 2026 17:06:37 +0000 (13:06 -0400)] 
add support for "limit files" in the "security" section

to limit the access of %file.mkdir(), etc.

4 days agodon't reparse things which were already parsed
Alan T. DeKok [Mon, 15 Jun 2026 17:59:43 +0000 (13:59 -0400)] 
don't reparse things which were already parsed

4 days agothis buffer has to be thread-local, and not static
Alan T. DeKok [Mon, 15 Jun 2026 16:24:52 +0000 (12:24 -0400)] 
this buffer has to be thread-local, and not static

4 days agoremove unused headers
Alan T. DeKok [Mon, 15 Jun 2026 16:44:24 +0000 (12:44 -0400)] 
remove unused headers

6 days agoprint output directory too, for process tests
Alan T. DeKok [Sat, 13 Jun 2026 18:21:11 +0000 (21:21 +0300)] 
print output directory too, for process tests

6 days agodefine macro for common arguments
Alan T. DeKok [Sat, 13 Jun 2026 18:20:27 +0000 (21:20 +0300)] 
define macro for common arguments

6 days agotweak TFTP decoder for clearer error messages
Alan T. DeKok [Sat, 13 Jun 2026 10:48:32 +0000 (13:48 +0300)] 
tweak TFTP decoder for clearer error messages

6 days agoallow word wrapping for lists outside of nav.adoc
Alan T. DeKok [Fri, 12 Jun 2026 09:24:45 +0000 (12:24 +0300)] 
allow word wrapping for lists outside of nav.adoc

6 days agodon't word wrap lists in nav.adoc files
Alan T. DeKok [Fri, 12 Jun 2026 09:19:57 +0000 (12:19 +0300)] 
don't word wrap lists in nav.adoc files

6 days agodocs-v4: add kafka.adoc file to Antora index.
nolade [Thu, 11 Jun 2026 21:07:34 +0000 (17:07 -0400)] 
docs-v4: add kafka.adoc file to Antora index.

Added corresponding list entry on nav.adoc.
Reordered Logging modules alphabetically in Logging Modules table
and nav.adoc.

All files wrapped - no changed in logging.adoc except the wrap.

6 days agodocs: update wrap.py to handle any depth of nav list entries (4+).
nolade [Thu, 11 Jun 2026 21:19:31 +0000 (17:19 -0400)] 
docs: update wrap.py to handle any depth of nav list entries (4+).

6 days agoadd fr_filename_box_make_safe()
Alan T. DeKok [Thu, 11 Jun 2026 11:57:59 +0000 (14:57 +0300)] 
add fr_filename_box_make_safe()

which can be called as-is, as it calls the sbuff escape functions

6 days agoadd fr_sbuff_in_needs_escaping()
Alan T. DeKok [Thu, 11 Jun 2026 12:11:42 +0000 (15:11 +0300)] 
add fr_sbuff_in_needs_escaping()

which is often cheaper than brute-force escaping everything

6 days agomake rad_filename_box_make_safe() idempotent
Alan T. DeKok [Thu, 11 Jun 2026 11:46:20 +0000 (14:46 +0300)] 
make rad_filename_box_make_safe() idempotent

7 days agoci(multi-server): add workflow_dispatch for manual runs (#5886)
Marc-Andre Casavant [Fri, 12 Jun 2026 19:58:45 +0000 (15:58 -0400)] 
ci(multi-server): add workflow_dispatch for manual runs (#5886)

8 days agoClarify comments in sample redis module config
Nick Porter [Thu, 11 Jun 2026 15:07:51 +0000 (16:07 +0100)] 
Clarify comments in sample redis module config

9 days agoDocument missing parameters
Nick Porter [Thu, 11 Jun 2026 10:30:17 +0000 (11:30 +0100)] 
Document missing parameters

9 days agoAddress obsolete settings in Doxyfile
Nick Porter [Thu, 11 Jun 2026 10:17:02 +0000 (11:17 +0100)] 
Address obsolete settings in Doxyfile

9 days agoUse ROPTIONAL for TLS session debug - there may not be a request
Nick Porter [Thu, 11 Jun 2026 09:18:06 +0000 (10:18 +0100)] 
Use ROPTIONAL for TLS session debug - there may not be a request

9 days agoCorrect filename
Nick Porter [Thu, 11 Jun 2026 09:03:48 +0000 (10:03 +0100)] 
Correct filename

9 days agoadd API to discard old entries by state
Alan T. DeKok [Thu, 11 Jun 2026 03:42:24 +0000 (06:42 +0300)] 
add API to discard old entries by state

so that protocols which synthesize State can discard old states

9 days agomove fr_filename functions to file.c
Alan T. DeKok [Thu, 11 Jun 2026 07:39:21 +0000 (10:39 +0300)] 
move fr_filename functions to file.c

9 days agoadd fr_filename_ok() function
Alan T. DeKok [Thu, 11 Jun 2026 06:56:17 +0000 (09:56 +0300)] 
add fr_filename_ok() function

9 days agouse DEFINE instead o ATTRIBUTE for TFTP
Alan T. DeKok [Wed, 10 Jun 2026 13:00:58 +0000 (16:00 +0300)] 
use DEFINE instead o ATTRIBUTE for TFTP

there are no attribute numbers in the packet header

10 days agoallow zero-length arguments
Alan T. DeKok [Wed, 10 Jun 2026 11:31:53 +0000 (14:31 +0300)] 
allow zero-length arguments

and produce better error messages

10 days agoalwasy set the current time
Alan T. DeKok [Wed, 10 Jun 2026 11:27:41 +0000 (14:27 +0300)] 
alwasy set the current time

10 days agogo to next vp if we're ignoring this one
Alan T. DeKok [Wed, 10 Jun 2026 11:19:59 +0000 (14:19 +0300)] 
go to next vp if we're ignoring this one

and don't decode attribute 0 at the root, it's invalid

10 days agoallow encoding of raw options for DNS
Alan T. DeKok [Wed, 10 Jun 2026 11:10:26 +0000 (14:10 +0300)] 
allow encoding of raw options for DNS

10 days agoallow encoding of raw options
Alan T. DeKok [Wed, 10 Jun 2026 08:45:11 +0000 (11:45 +0300)] 
allow encoding of raw options

10 days agocheck dhcpv6_ok() before decoding relayed message
Alan T. DeKok [Wed, 10 Jun 2026 08:43:10 +0000 (11:43 +0300)] 
check dhcpv6_ok() before decoding relayed message

10 days agowhen encoding RADIUS in a foreign protocol, don't encode encrypted attributes
Alan T. DeKok [Wed, 10 Jun 2026 08:38:27 +0000 (11:38 +0300)] 
when encoding RADIUS in a foreign protocol, don't encode encrypted attributes

10 days agouse proper name for protocol being replaced
Alan T. DeKok [Wed, 10 Jun 2026 08:36:55 +0000 (11:36 +0300)] 
use proper name for protocol being replaced

10 days agoreturn underlying error rather than over-writing it
Alan T. DeKok [Wed, 10 Jun 2026 08:25:55 +0000 (11:25 +0300)] 
return underlying error rather than over-writing it

10 days agoDHCPv6 message type 0 is invalid
Alan T. DeKok [Wed, 10 Jun 2026 08:22:53 +0000 (11:22 +0300)] 
DHCPv6 message type 0 is invalid

10 days agofuzzer_util is now auto-generated
Alan T. DeKok [Wed, 10 Jun 2026 08:12:55 +0000 (11:12 +0300)] 
fuzzer_util is now auto-generated

10 days agoreturn invalid packet code for packets RADIUS can't encode
Alan T. DeKok [Wed, 10 Jun 2026 06:25:52 +0000 (09:25 +0300)] 
return invalid packet code for packets RADIUS can't encode

10 days agoadd round trip through encoder
Alan T. DeKok [Wed, 10 Jun 2026 05:07:15 +0000 (08:07 +0300)] 
add round trip through encoder

if decode is successful, try to encode it the data.

If encode is successful, try to decode the encoded data.

not enabled yet

11 days agoadd style guide
Alan T. DeKok [Tue, 9 Jun 2026 10:32:21 +0000 (13:32 +0300)] 
add style guide

11 days agoadd support for $VALUE{...} and $FILE{...}
Alan T. DeKok [Tue, 9 Jun 2026 07:20:13 +0000 (10:20 +0300)] 
add support for $VALUE{...} and $FILE{...}

which loads a single value (one line only) from a file, or loads
an entire file without change.

Add tests and documentation

11 days agoset the SECRET flag on secrets
Alan T. DeKok [Tue, 9 Jun 2026 07:18:37 +0000 (10:18 +0300)] 
set the SECRET flag on secrets

11 days agorelax tokenizer to allow more than $ENV{}
Alan T. DeKok [Tue, 9 Jun 2026 07:06:11 +0000 (10:06 +0300)] 
relax tokenizer to allow more than $ENV{}

11 days agodocs-v4: update sql_user tutorial for v4. Added steps and outputs for debugging.
nolade [Tue, 2 Jun 2026 22:10:08 +0000 (18:10 -0400)] 
docs-v4: update sql_user tutorial for v4. Added steps and outputs for debugging.

11 days agoUpdate to support ** and *** lists
Alan T. DeKok [Tue, 9 Jun 2026 06:09:46 +0000 (09:09 +0300)] 
Update to support ** and *** lists

11 days agodocs-v4: Update sql tutorial for v4.
nolade [Tue, 2 Jun 2026 21:21:54 +0000 (17:21 -0400)] 
docs-v4: Update sql tutorial for v4.

Includes steps for connecting & testing db connections.

12 days agoradict: fix NULL deref in da_print_info when recursively printing group/reference...
Alexander Bainbridge-Sedivy [Fri, 5 Jun 2026 20:02:43 +0000 (16:02 -0400)] 
radict: fix NULL deref in da_print_info when recursively printing group/reference attributes

which only happens if the rest of the dictionary code is broken.
But fixing this will quiet the static analyzer

12 days agoradclient.h: fix copy-paste doc comment on coa_reply field
Alexander Bainbridge-Sedivy [Fri, 5 Jun 2026 19:41:58 +0000 (15:41 -0400)] 
radclient.h: fix copy-paste doc comment on coa_reply field