]> git.ipfire.org Git - thirdparty/freeradius-server.git/commit
listen: disarm the timers when closing a virtual listener developer/arr2036 master
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 28 Jul 2026 01:07:22 +0000 (19:07 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 28 Jul 2026 01:20:51 +0000 (19:20 -0600)
commit0b778ffcd109b4590b056c48822beff77a46927b
tree0768297ec1affa994ad99f5ec990d62e9065562e
parent077f4d8c987e7eebcc137969b0b0193fc8aeac67
listen: disarm the timers when closing a virtual listener

proto_load_step and proto_cron_crontab drive themselves from timers rather than from their fd, and neither had a close callback, so nothing stopped them when the listener was closed. The load generator kept manufacturing packets and handing them to fr_network_send_request() after the network had signalled the workers to close, which the assert added there caught.

Both now close the fd and remove their timer.  Of the remaining app_io modules with timers, proto_detail_file, proto_detail_work and proto_ldap_sync_ldap have a close callback that does not obviously disarm anything, and are worth a look.
src/listen/cron/proto_cron_crontab.c
src/listen/load/proto_load_step.c