Task/normalizeextban#1920
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9c4c8e6d3b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| for mask in dynamic_masks: | ||
| wait_for( | ||
| lambda mask=mask: tcl_bridge.eval_ok( | ||
| f'ischanban "{dyn_chan}" "{mask}"' |
There was a problem hiding this comment.
Brace dollar-prefixed masks in Tcl assertions
When mask is $a:geo (and similarly in the static-channel loop below), this sends ischanban "#dyn" "$a:geo" to Tcl. Tcl still performs variable substitution inside double quotes, so it tries to read variable a and the bridge raises before the wait can observe the ban. Use braces or otherwise Tcl-escape the mask before evaluating the command.
Useful? React with 👍 / 👎.
Found by: Robby
Patch by: Geo
Fixes: #1914
One-line summary:
Have extbans follow normal ban expiration
Additional description (if needed):
The original intent, as included in the documentation ;) , was to only expire extbans that eggdrop itself could take some action on (ie, removing a user from the channel due to a matching hostmask). Because there are many conflicting extban modes and no clear intent for ircds to add flags similar to ACCOUNTEXTBAN, discussion moved to treating extbans just like normal bans, and respecting the dynamicban channel setting. If a user wants an extban to be set that is not removed even though dynamicbans is set, then it needs to have the sticky flag added to it so that it is not removed.