Correctly skip non-servers when evaluating C-rules.
authorMichael Poole <mdpoole@troilus.org>
Fri, 1 Jun 2012 01:21:28 +0000 (21:21 -0400)
committerMichael Poole <mdpoole@troilus.org>
Fri, 1 Jun 2012 01:21:28 +0000 (21:21 -0400)
IsMe(acptr) implies !IsServer(acptr), contrary to the apparent
assumption in crule_connected() and crule_via().

ChangeLog
ircd/crule.c

index f2f82825169e7ac8d52759a17679308a771b248c..eb654362a6573bba8c6d7aa638bc2f5b205257e8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-04-29  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/crule.c (crule_connected): Fix logic for ignoring
+       non-server Client structures.
+       (crule_via): Likewise.
+
 2012-04-29  Michael Poole <mdpoole@troilus.org>
 
        * */.cvsignore: Rename to .gitignore.
index 6cfb8ab935fcfd1136931a9e4e10e633a0645c2f..1a1fd2150e53a46cbf8224b771d703bb8d2d6a6e 100644 (file)
@@ -228,7 +228,7 @@ static int crule_connected(int numargs, void *crulearg[])
   /* taken from m_links */
   for (acptr = GlobalClientList; acptr; acptr = cli_next(acptr))
   {
-    if (!IsServer(acptr) && !IsMe(acptr))
+    if (!IsServer(acptr) || IsMe(acptr))
       continue;
     if (match((char *)crulearg[0], cli_name(acptr)))
       continue;
@@ -276,7 +276,7 @@ static int crule_via(int numargs, void *crulearg[])
   /* adapted from m_links */
   for (acptr = GlobalClientList; acptr; acptr = cli_next(acptr))
   {
-    if (!IsServer(acptr) && !IsMe(acptr))
+    if (!IsServer(acptr) || IsMe(acptr))
       continue;
     if (match((char *)crulearg[1], cli_name(acptr)))
       continue;