2 # Parent 6c1e0a6d0283dbbc3aeef7884308bd4223611c0d
4 diff -r 6c1e0a6d0283 ircd/parse.c
5 --- a/ircd/parse.c Sat Jul 13 23:24:56 2013 +0100
6 +++ b/ircd/parse.c Sat Jul 13 23:26:11 2013 +0100
8 paramcount = mptr->parameters;
9 i = bufend - ((s) ? s : ch);
11 - if ((mptr->flags & MFLG_SLOW) || !IsAnOper(cptr))
12 - cli_since(cptr) += (2 + i / 120);
13 + if ((mptr->flags & MFLG_SLOW) || !IsAnOper(cptr)) {
14 + if (IsAnOper(cptr)) {
15 + cli_since(cptr) += 1;
17 + cli_since(cptr) += (2 + i / 120);
22 * Allow only 1 msg per 2 seconds
23 * (on average) to prevent dumping.
24 diff -r 6c1e0a6d0283 ircd/s_bsd.c
25 --- a/ircd/s_bsd.c Sat Jul 13 23:24:56 2013 +0100
26 +++ b/ircd/s_bsd.c Sat Jul 13 23:26:11 2013 +0100
28 unsigned int length = 0;
32 + !(IsUser(cptr) && !IsOper(cptr) &&
33 DBufLength(&(cli_recvQ(cptr))) > feature_int(FEAT_CLIENT_FLOOD))) {
34 switch (os_recv_nonb(cli_fd(cptr), readbuf, sizeof(readbuf), &length)) {
37 if (length > 0 && dbuf_put(&(cli_recvQ(cptr)), readbuf, length) == 0)
38 return exit_client(cptr, cptr, &me, "dbuf_put fail");
40 - if (DBufLength(&(cli_recvQ(cptr))) > feature_int(FEAT_CLIENT_FLOOD))
42 + if (DBufLength(&(cli_recvQ(cptr))) > feature_int(FEAT_CLIENT_FLOOD)
44 return exit_client(cptr, cptr, &me, "Excess Flood");
47 while (DBufLength(&(cli_recvQ(cptr))) && !NoNewLine(cptr) &&
48 (IsTrusted(cptr) || cli_since(cptr) - CurrentTime < 10))