Page 1 of 1

Channel Flooding Problem

Posted: Wed Apr 14, 2004 12:56 pm
by asphyxia
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

Posted: Wed Apr 14, 2004 10:37 pm
by codemastr
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.

Posted: Mon Apr 19, 2004 9:36 am
by asphyxia
Yeah, oper'ing the bot sorted it, though i share your thoughts about having it way =) The bot itself doesnt accept any commands from IRC so i guess that should'nt be too much of a problem.

Thanks very much for your help,

rgds,

asphy

Posted: Mon Apr 19, 2004 11:15 am
by asphyxia
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

Posted: Mon Apr 19, 2004 9:22 pm
by AngryWolf
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).

Posted: Mon Apr 19, 2004 10:12 pm
by Syzop
Actually check_for_target_limit is not what he is looking for.
Anyway, changing this stuff is dangerous and modifying unreal is not supported so I'm locking this topic.