# HG changeset patch
# User William Pitcock <nenolod@dereferenced.org>
# Date 1340679646 18000
# Node ID bdd4a9ead475c21d78314cefbf39f9713c7d96ed
# Parent  6acdc37c65a7e06e13a70e30374d49f3495d0c69
- Remove dreamforge-ism from MODE query behaviour, bringing it in line
  with other current IRCd software.

diff -r 6acdc37c65a7 -r bdd4a9ead475 Changes
--- a/Changes	Mon Jun 25 21:46:18 2012 -0500
+++ b/Changes	Mon Jun 25 22:00:46 2012 -0500
@@ -2455,3 +2455,5 @@
   causing users to go through the generation process upon each install.
 - Win32 installer: Latest InnoSetup no longer supports Windows 95/98,
   so update Minversion to make the .iss compile.
+- Remove dreamforge-ism from MODE query behaviour, bringing it in line
+  with other current IRCd software.
diff -r 6acdc37c65a7 -r bdd4a9ead475 src/modules/m_mode.c
--- a/src/modules/m_mode.c	Mon Jun 25 21:46:18 2012 -0500
+++ b/src/modules/m_mode.c	Mon Jun 25 22:00:46 2012 -0500
@@ -172,8 +172,6 @@
 	    && parv[2][1] == '\0') || (parv[2][1] == 'b' && parv[2][2] == '\0'
 	    && (*parv[2] == '+' || *parv[2] == '-'))))
 	{
-		if (!IsMember(sptr, chptr) && !IsAnOper(sptr))
-			return 0;
 		/* send ban list */
 		for (ban = chptr->banlist; ban; ban = ban->next)
 			sendto_one(sptr, rpl_str(RPL_BANLIST), me.name,
@@ -189,7 +187,7 @@
 	    && parv[2][1] == '\0') || (parv[2][1] == 'e' && parv[2][2] == '\0'
 	    && (*parv[2] == '+' || *parv[2] == '-'))))
 	{
-		if (!IsMember(sptr, chptr) && !IsAnOper(sptr))
+		if (!is_half_op(sptr, chptr) && !IsAnOper(sptr))
 			return 0;
 		/* send exban list */
 		for (ban = chptr->exlist; ban; ban = ban->next)
@@ -259,7 +257,7 @@
 	    && parv[2][1] == '\0') || (parv[2][1] == 'I' && parv[2][2] == '\0'
 	    && (*parv[2] == '+' || *parv[2] == '-'))))
 	{
-		if (!IsMember(sptr, chptr) && !IsAnOper(sptr))
+		if (!is_half_op(sptr, chptr) && !IsAnOper(sptr))
 			return 0;
 		for (ban = chptr->invexlist; ban; ban = ban->next)
 			sendto_one(sptr, rpl_str(RPL_INVEXLIST), me.name,
