]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/packet.c
Add topic TS and channel TS constraints for /LIST.
[irc/rqf/shadowircd.git] / src / packet.c
index fdba54e55935aaaa0cc934f03c388e9f82ef1c38..707ddbb5156da3288f4dab1b5e2191d0f26cb0a2 100644 (file)
@@ -21,7 +21,6 @@
  *  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"
@@ -99,7 +98,12 @@ parse_client_queued(struct Client *client_p)
        {
 
                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.
@@ -129,7 +133,7 @@ parse_client_queued(struct Client *client_p)
                        /* 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->
@@ -181,10 +185,10 @@ flood_recalc(void *unused)
        {
                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))
@@ -200,7 +204,7 @@ flood_recalc(void *unused)
 
                parse_client_queued(client_p);
                
-               if(unlikely(IsAnyDead(client_p)))
+               if(rb_unlikely(IsAnyDead(client_p)))
                        continue;
 
        }