You know the issue that when you enter a channel and a client is +o and
+v, and he deops himself, most clients will not show him moded at all
(the +v is not shown until you perform a /names <channel>). The issue is
located in the fact that ircu does not transmit both modes to the
client upon join. By sending both modes if they apply the client is
aware of them, and will show the client having both +vo as such, thus
when he deops himself the client is already aware of him being +v'd and
will correctly parse this. Patches tested with all major IRC clients and
turned out to be ok, not breaking the clients in any way.

Please note that if you commit it, please check the diffheaders, as I
run a separate cvs tree on sf.net as well (wich does get synced with
undernet-ircu).

Enjoy,
OUTsider
Index: ChangeLog
===================================================================
RCS file: /cvsroot/scarynet/ircu2.10/ChangeLog,v
retrieving revision 1.2
diff -b -u -d -r1.2 ChangeLog
--- ChangeLog   19 Oct 2002 06:44:32 -0000      1.2
+++ ChangeLog   19 Oct 2002 06:47:57 -0000
@@ -1,3 +1,9 @@
+2002-10-19  Alexander Maassen <[EMAIL PROTECTED]>
+
+        * ircd/m_names.c: Fixed some client issues regarding clients not
+       decently recognizing nicks on join if voiced and opped, fixed this
+       by transmitting both settings if applicable.
+       
 2002-10-10  Perry Lorier <[EMAIL PROTECTED]>
 
        * ircd/ircd_relay.c: X doesn't announce +s yet, we can't enable this
Index: ircd/m_names.c
===================================================================
RCS file: /cvsroot/scarynet/ircu2.10/ircd/m_names.c,v
retrieving revision 1.1.1.1
diff -b -u -d -r1.1.1.1 m_names.c
--- ircd/m_names.c      15 Oct 2002 16:27:39 -0000      1.1.1.1
+++ ircd/m_names.c      19 Oct 2002 06:47:59 -0000
@@ -165,6 +165,11 @@
       strcat(buf, "!");
       idx++;
     }
+    else if (IsChanOp(member) && HasVoice(member))
+    {
+      strcat(buf, "@+");
+      idx++;
+    }
     else if (IsChanOp(member))
     {
       strcat(buf, "@");

Reply via email to