Hi ppls,
I've searched high and low for a solution to this problem, perhaps im just looking in the wrong place and someone can point me in the right direction.
Problem is, I am running UnrealIRCD 3.2-RC2fix for a small community based around the game "Vendetta". We have developed a bot that relays game chat from within vendetta directly into a channel on irc. Most of the time this works perfectly. However, when vendetta gets really busy and ingame chat starts pouring out of the bot into irc, the first four or five lines come through right away, then each line of text after that comes through at about 1second intervals.
Obviously, messages start stacking up behind that, and the whole thing grinds to a halt for several minutes until the game gets quieter.
i've tried a variety of solutions, e.g. changing the recvq value in the .conf, and different args to the +f chanmode etc, but to no avail.
Is there ANY way i can get rid of this message limit?
Any help, pointers, source hacks or even rtfm's (with a chapter/page number if poss! =p) would be greatly appreciated!
many thanks,
asphy
Channel Flooding Problem
-
codemastr
- Former UnrealIRCd head coder
- Posts: 811
- Joined: Sat Mar 06, 2004 8:47 pm
- Location: United States
- Contact:
This is called "fake lag" it's not that the server is going slow, it'd detecting that your bot is flooding, and therefore begins to limit it. The easiest way to get around this would be to make the bot an oper. Though, making a bot an oper is generally a bad idea since anyone who has access to make the bot sends commands now has oper access.
-- codemastr
Yep, me again, being a pain!
After doing a little more reading, I understand that each message recieved from the client is assigned a penalty. Once the client exceeds a certain "penalty limit" then their messages are delayed until their penalty score is below the limit...
hopefully i've got that right... :-/
Question is, whereabouts in the source do i find these penalties? I've gone over it with a load of cat | grep's but im not really sure exatly what im looking for.
Alternatively, im willing to accept that i've got the wrong end of the stick, or perhaps the wrong stick completely =)
Dont want to waste anyones time with finding specific linenumbers and whatnot, but if anyone can narrow my search down to the filename or two, of the top of their head, it would be appreciated.
many thanks,
asphy
After doing a little more reading, I understand that each message recieved from the client is assigned a penalty. Once the client exceeds a certain "penalty limit" then their messages are delayed until their penalty score is below the limit...
hopefully i've got that right... :-/
Question is, whereabouts in the source do i find these penalties? I've gone over it with a load of cat | grep's but im not really sure exatly what im looking for.
Alternatively, im willing to accept that i've got the wrong end of the stick, or perhaps the wrong stick completely =)
Dont want to waste anyones time with finding specific linenumbers and whatnot, but if anyone can narrow my search down to the filename or two, of the top of their head, it would be appreciated.
many thanks,
asphy
Then you grepped improperly.
I'll give you a suggestion, BUT FIRST: read the Modifying UnrealIRCd topic, thanks.
Back to the original problem, a better command is:
grep -R "sptr->since" /home/dir/Unreal3.2
To be exact, what you are looking for is in s_user.c (check_for_target_limit).
grep -R "sptr->since" /home/dir/Unreal3.2
To be exact, what you are looking for is in s_user.c (check_for_target_limit).