nenolod moved the "check all users against all TKL's" check to m_tkl (or one of the functions in that file). It is now being called for each and every *LINE that is added.
Previously it simply set a flag if any TKL was added and we checked for TKL's inside the ircd loop if that flag was set.

We really need to restore the original behavior. Not sure what he was thinking at that time......

Tags

No tags attached.

3rd party modules

Activities

Yeah. Say a server links in and adds 1000 *LINES. Previously this would mean that these 1000 *LINES are checked against all local users once if the burst was fast enough, or a number of times, like after 100, 200, 300, etc.. so 10 times (probably more realistic).

Then nenolod did this in m_tkl.c:
/* The TKL check is now run immediately, because there is not much value in postponing
* the check. It just made check_pings() more complex than it should be. --nenolod
*/
check_tkls();

Say we have 1000 local users. With his change:
* when the first *LINE is added, all TKL's (say: 1) is checked against all 1000 users
* when the second *LINE is added, all TKL's (now 2) are checked against all 1000 users
...
* when the 1000th *LINE is added, all TKL's (now 1000) are checked against all 1000 users

So previously there were like 100+200+300..1000 checks times 1000 users = 5.5 million (+/-)
Now with his change there are 1+2+3+...1000 checks times 1000 users = 500.5 million