X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fs_bsd.c;h=cc77c7bc87f3dc68a340022234c2b2128bf18fc6;hp=7e3205af764cf2f3d72694d4d54363cb3b262f0f;hb=d13c7b5efd15eec19cbd08d00a3f65da03049868;hpb=e22c93b27e9f501b7869b310dff7df384e06f7e6 diff --git a/ircd/s_bsd.c b/ircd/s_bsd.c index 7e3205a..cc77c7b 100644 --- a/ircd/s_bsd.c +++ b/ircd/s_bsd.c @@ -615,11 +615,13 @@ static int read_packet(struct Client *cptr, int socket_ready) if (length > 0 && dbuf_put(&(cli_recvQ(cptr)), readbuf, length) == 0) return exit_client(cptr, cptr, &me, "dbuf_put fail"); - if (DBufLength(&(cli_recvQ(cptr))) > feature_int(FEAT_CLIENT_FLOOD)) + int HasUnlimitFlood = HasPriv(cptr, PRIV_UNLIMIT_FLOOD); + + if (DBufLength(&(cli_recvQ(cptr))) > feature_int(FEAT_CLIENT_FLOOD) && !HasUnlimitFlood) return exit_client(cptr, cptr, &me, "Excess Flood"); while (DBufLength(&(cli_recvQ(cptr))) && !NoNewLine(cptr) && - (IsTrusted(cptr) || cli_since(cptr) - CurrentTime < 10)) + (IsTrusted(cptr) || cli_since(cptr) - CurrentTime < 10 || HasUnlimitFlood)) { dolen = dbuf_getmsg(&(cli_recvQ(cptr)), cli_buffer(cptr), BUFSIZE); /*