mirror of
https://github.com/agessaman/meshcore-bot.git
synced 2026-08-25 03:50:03 +00:00
A flood_scopes of "*" alone leaves scope_keys empty while setting flood_scope_allow_global, and the loader already logs that as an active allowlist. The handler gated on scope_keys alone, so that configuration skipped authorisation entirely and admitted absent, uncorrelated and TRANSPORT_FLOOD traffic. The gate now fires when either is set, so "*" means global-only rather than everything. The scheduled-message duplicate check ran outside the write lock inside update_ini_values, so two concurrent creates for the same schedule could both pass and the second silently replace the first instead of getting the 409. Check and write are now one critical section, and delete is too. Repaired the delete path's error handling while moving it, so an OSError during the write is still a 500 rather than escaping.