* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
- * $Id: packet.c 3446 2007-05-14 22:21:16Z jilles $
*/
#include "stdinc.h"
#include "s_conf.h"
#include "ircd.h"
#include "parse.h"
#include "packet.h"
-#include "irc_string.h"
+#include "match.h"
#include "hook.h"
#include "send.h"
{
if(IsOper(client_p) && ConfigFileEntry.no_oper_flood)
- checkflood = 0;
+ {
+ if (ConfigFileEntry.true_no_oper_flood)
+ checkflood = -1;
+ else
+ checkflood = 0;
+ }
/*
* Handle flood protection here - if we exceed our flood limit on
* messages in this loop, we simply drop out of the loop prematurely.
/* allow opers 4 times the amount of messages as users. why 4?
* why not. :) --fl_
*/
- else if(client_p->localClient->sent_parsed >= (4 * client_p->localClient->allow_read))
+ else if(client_p->localClient->sent_parsed >= (4 * client_p->localClient->allow_read) && checkflood != -1)
break;
dolen = rb_linebuf_get(&client_p->localClient->
{
client_p = ptr->data;
- if(unlikely(IsMe(client_p)))
+ if(rb_unlikely(IsMe(client_p)))
continue;
- if(unlikely(client_p->localClient == NULL))
+ if(rb_unlikely(client_p->localClient == NULL))
continue;
if(IsFloodDone(client_p))
parse_client_queued(client_p);
- if(unlikely(IsAnyDead(client_p)))
+ if(rb_unlikely(IsAnyDead(client_p)))
continue;
}
*/
length = rb_read(client_p->localClient->F, readBuf, READBUF_SIZE);
- if(length <= 0)
+ if(length < 0)
{
- if(length < 0 && rb_ignore_errno(errno))
- {
+ if(rb_ignore_errno(errno))
rb_setselect(client_p->localClient->F,
RB_SELECT_READ, read_packet, client_p);
- } else
+ else
error_exit_client(client_p, length);
return;
}
- if(length == 0)
+ else if(length == 0)
{
error_exit_client(client_p, length);
return;