Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
TS6 bans not implemented #32
juno bans are global and negotiated during burst with the bursting server as the command source. TS6 remote ban commands have to come from a user source.
Created a ban agent user which opers up and is used for the source of the K/DLINE commands. It quits immediately after burst.
Summary of the TS6 ban implementation
Bans are sent to TS6 servers on burst. Because certain ban commands only support a user source, a ban agent bot may be introduced to set the bans and then exit.
The duration sent to TS6 servers is variable based on the difference between the expiration time and the duration, since we cannot propagate an expiration time. The TS6 server will ignore any bans which already exist for the given mask, which is perfect for our purposes. An exception to this is the newer BAN command which does allow propagation of expiry times and is used when available.
Ban::TS6 uses the charybdis-style BAN command when possible. Alternatively KLINE and INCLINE may be used when the KLN and UKLN capabilities are available. Otherwise, it uses ENCAP KLINE and ENCAP UNKLINE. DLINEs always use ENCAP and therefore always require a ban agent during burst.
Note that, because some charybdis server bans are local-only, the TS6 server may not burst its own bans (such as D-Lines, or even K-Lines if the BAN capability is not available). However, ban commands are handled such that AKILLs (which have target
Other changes in Ban