mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-28 11:16:37 +02:00
596cf8e7de
See https://www.unrealircd.org/docs/Extended_server_bans Examples with ELINE: /ELINE ~a:TrustedAccount kg 0 This user can bypass kline/gline when using SASL /ELINE ~S:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef kgf 0 Trusted user with this certificate fingerprint It also works with bans, although this would be less common: /GLINE ~a:EvilAccount A more useful purpose would be to use ~r (realname): /GLINE ~r:*some*stupid*real*name* (Although you could already ban realnames via spamfilter 'u') For third party module coders: If you have an extban in group 3 (a "matcher"-extban) then you can opt-in to support this. You do so at extban registration time: req.options = EXTBOPT_TKL; or, if you already had another flag set, like for +I, then: req.options = EXTBOPT_INVEX|EXTBOPT_TKL; In any case, you set the .options before you call ExtbanAdd(). Note that if you do indicate support then your is_ok function will be called like: extban->is_ok(client, NULL, mask, EXBCHK_PARAM, MODE_ADD, EXBTYPE_TKL); Important here is the NULL channel (since there is none) Similarly your is_banned function will be called with BANCHK_CONNECT: extban->is_banned(client, NULL, banstr, BANCHK_JOIN, &msg, &errmsg); Here too, it is important to note that channel is NULL.