View Issue Details

IDProjectCategoryView StatusLast Update
0003145unrealircdpublic2007-03-03 14:00
ReporterdjGrrr Assigned ToTrocotronic  
Status resolvedResolutionfixed 
Platform*OS*OS Version*
Product Version3.2.5 
Fixed in Version3.3-alpha0 
Summary0003145: too many target protection is not configureable or excemptable
Description[23:47:03] (unmatched::raw439) 439 botnick Stim :Message target change too fast. Please wait 28 seconds

this keeps happening with one of my bots, because its inviting a bunch of people really quickly, and i need it to be able to do so without being throttled like that, its excempt from fake lag, but this still happens.

the offending code is in s_user.c:
    if (TStime() < sptr->nexttarget)
        sptr->since += TARGET_DELAY; /* lag them up */
        sptr->nexttarget += TARGET_DELAY;
        sendto_one(sptr, err_str(ERR_TARGETTOOFAST),, sptr->name,
            name, sptr->nexttarget - TStime());

        return 1;

i think this really needs a way to become excempt from, like an "exception target" block in the config file, maybe for 3.2.7 ? :D

also, it seems global opers are not even excempt to this, so that would also be nice
Steps To Reproducejust change targets (ie message/invite a lot of different users at a time) really quickly while being
TagsNo tags attached.
3rd party modules



2006-12-16 20:27

reporter   ~0012829

int check_for_target_limit(aClient *sptr, void *target, const char *name)
    u_char hash = (tmp * tmp) >> 12;

    if (IsAnOper(sptr))
        return 0;

    if (TStime() < sptr->nexttarget)
        sptr->since += TARGET_DELAY; /* lag them up */
        sptr->nexttarget += TARGET_DELAY;
        sendto_one(sptr, err_str(ERR_TARGETTOOFAST),, sptr->name,
            name, sptr->nexttarget - TStime());

        return 1;


it seems that any oper still excepted from max targets limit, fix me if i wrong


2006-12-16 20:29

reporter   ~0012830

hmmm, sorry, only looked at it very quickly :P

theres still the issue of allowing certain clients to be excempt from it without being opered, maybe a class option like nofakelag (notargetlag or something similar)


2007-01-01 12:29

reporter   ~0012964

I am now working on a patch that adds another class option, that is only available with FAKELAG_CONFIGURABLE defined, since, nofakelag and notargetlag are a lot the same and can be destructive if used improperly, i figured it was best to use a single define for them :)

2007-01-01 13:06


notargetlag.patch (3,924 bytes)


2007-03-03 14:00

reporter   ~0013261

Done in 2340

Issue History

Date Modified Username Field Change
2006-12-14 16:53 djGrrr New Issue
2006-12-14 17:26 syzop Status new => acknowledged
2006-12-16 20:27 avb Note Added: 0012829
2006-12-16 20:29 djGrrr Note Added: 0012830
2007-01-01 12:29 djGrrr Note Added: 0012964
2007-01-01 13:06 djGrrr File Added: notargetlag.patch
2007-01-23 06:55 Trocotronic Status acknowledged => assigned
2007-01-23 06:55 Trocotronic Assigned To => Trocotronic
2007-03-03 14:00 Trocotronic Status assigned => resolved
2007-03-03 14:00 Trocotronic Fixed in Version => 3.3-alpha0
2007-03-03 14:00 Trocotronic Resolution open => fixed
2007-03-03 14:00 Trocotronic Note Added: 0013261