there are many issues with unreal, since i had a chance to build my own unreal services i stumbled a lot of sync issues.<br>here are some issues, some of which (but not all) are already handled:<br><br>+b can be overridden or be desynced.
<br>here are the reasons i remember for overrides:<br>user who gets an /invite (services invite too in ajoin etc)<br>user who has +e *!*@*<br>+e can include shit loads of extensions i.e. +e ~c:#opers or ~r:gekos<br>+I acts like /invite and also may include weird extensions
<br>and when u handle all that you need to start taking into account services timestamp desync handler,<br>generally speaking, if your timestamp is higher than the one the ircd sends you, you need to discard your modes, if they are identical, you need to do an awkward merge, and if you have a lower value discard everything the server just told you.
<br>btw, are time desyncs (TS) taking into account here? usually not an issue when services link to localhost, but i&#39;ve seen different setups.<br>sounds simple? sure, just a couple more ideas<br>my implementation unsets a ban after 5 minutes, to avoid ban list getting filled, and akicks/restricts always set a ban in *!*@host form to avoid dbls.
<br>some modules allow opers to override but that&#39;s obvious.<br>i&#39;ve still didn&#39;t have a chance to figure out the new maskign module (thanks ircd for sending * instead of the actual value) so i do USERHOST nick1 nick2 nick3 on every connect to get in sync.
<br><br>i&#39;ve implemented ALL of that, and guess what, on extremely rare occasions, i still get a desync issue (my services think ban is set but it&#39;s not).<br>i&#39;m pretty sure it&#39;s just a protocol compatibility issue and not the services fault (although implementing more of the protocol would help), so my solution is to set +f with user join flood protection that bans users and unsets the bans after 5 minutes.
<br><br><br><div class="gmail_quote">On Jan 6, 2008 2:05 AM, Robin Burchell &lt;<a href="mailto:robin@en2no.com">robin@en2no.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
No +I masks, three +e masks are set, neither of which match me..<br><br>#helpers *!*@<a href="http://herring.chatspike.net" target="_blank">herring.chatspike.net</a> set by Om (Sat Nov 03 23:13:31)<br>#helpers *!*@<a href="http://helper.chatspike.net" target="_blank">
helper.chatspike.net</a> set by Om (Sat Nov 03 23:13:27)<br>#helpers *!*@<a href="http://tortoisegod.chatspike.net" target="_blank">tortoisegod.chatspike.net</a> set by Om (Sat Nov 03 23:13:21)<br>#helpers End of Channel Exception List
<br>-<br>#helpers End of Channel Invite Exception List<br><br>w00t is <a href="mailto:w00t@globop.chatspike.net">w00t@globop.chatspike.net</a> * Master of all trades; jack of none<br>&lt;- being me.<br><br>Explicit invite - (as in /invite?) - aren&#39;t used on that channel. It&#39;s
<br>also perhaps worthy of note that /invite only overrides ban on some<br>software.<br><br>I imagine the problem was caused as some IRCds will propegate the ban<br>anyway (no duplicates checking) from a server to server link, so I
<br>guess that could be construed as a problem of sorts, though not a<br>major one.<br><br>Given the infrequency of this problem, I don&#39;t mind waiting until the<br>list archives are back up for you to check, by all means. :)
<br><div><div></div><div class="Wj3C7c"><br>On Jan 5, 2008 11:52 PM, Andrew Church &lt;<a href="mailto:achurch@achurch.org">achurch@achurch.org</a>&gt; wrote:<br>&gt; &gt;I understand it must be frustrating to have an issue like this that&#39;s
<br>&gt; &gt;so hard to track down, but it is equally frustrating to get bit in the<br>&gt; &gt;ass by it. Isn&#39;t it wise to assume that if they are joining an<br>&gt; &gt;existing channel that a ban matching them doesn&#39;t exist anyway
<br>&gt; &gt;(otherwise how are they joining?)<br>&gt;<br>&gt; +e, +I, explicit INVITE, possibly other methods. &nbsp;Originally, I didn&#39;t<br>&gt; bother checking for the ban, but apparently it caused a problem, because<br>
&gt; I added the check in 4.5pre0:<br>&gt;<br>&gt; 2001/01/11 &nbsp; &nbsp; &nbsp;Fixed duplicate adding of bans when auto-kicking a user<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; from a channel. &nbsp;Reported by James &lt;<a href="mailto:daemus@evilcode.com">
daemus@evilcode.com</a>&gt;<br>&gt; --- chanserv.c &nbsp;11 Jan 2001 00:03:56 -0000 &nbsp; &nbsp; &nbsp;1.10<br>&gt; +++ chanserv.c &nbsp;11 Jan 2001 04:29:13 -0000 &nbsp; &nbsp; &nbsp;1.11<br>&gt; @@ -670,10 +670,13 @@<br>&gt; &nbsp;#else<br>&gt; &nbsp; &nbsp; &nbsp;}<br>&gt; &nbsp;#endif
<br>&gt; - &nbsp; &nbsp;av[1] = &quot;+b&quot;;<br>&gt; - &nbsp; &nbsp;av[2] = mask;<br>&gt; - &nbsp; &nbsp;send_cmd(s_ChanServ, &quot;MODE %s +b %s %lu&quot;, chan, mask, time(NULL));<br>&gt; - &nbsp; &nbsp;do_cmode(s_ChanServ, 3, av);<br>&gt; + &nbsp; &nbsp;/* Apparently invites can get around bans, so check for ban first */
<br>&gt; + &nbsp; &nbsp;if (!chan_has_ban(mask)) {<br>&gt; + &nbsp; &nbsp; &nbsp; av[1] = &quot;+b&quot;;<br>&gt; + &nbsp; &nbsp; &nbsp; av[2] = mask;<br>&gt; + &nbsp; &nbsp; &nbsp; send_cmd(s_ChanServ, &quot;MODE %s +b %s %lu&quot;, chan, mask, time(NULL));<br>&gt; + &nbsp; &nbsp; &nbsp; do_cmode(s_ChanServ, 3, av);
<br>&gt; + &nbsp; &nbsp;}<br>&gt; &nbsp; &nbsp; &nbsp;free(mask);<br>&gt; &nbsp; &nbsp; &nbsp;send_cmd(s_ChanServ, &quot;KICK %s %s :%s&quot;, chan, user-&gt;nick, reason);<br>&gt; &nbsp; &nbsp; &nbsp;if (stay) {<br>&gt;<br>&gt; The list archives are down at the moment, so I can&#39;t check exactly what
<br>&gt; the problem was, whether it was a serious issue or just cosmetic; I&#39;m<br>&gt; hesitant to remove the check without knowing more. &nbsp;(Of course, you&#39;re<br>&gt; welcome to try removing it yourself and seeing what happens.)
<br>&gt;<br>&gt;<br>&gt; &nbsp; --Andrew Church<br>&gt; &nbsp; &nbsp; <a href="mailto:achurch@achurch.org">achurch@achurch.org</a><br>&gt; &nbsp; &nbsp; <a href="http://achurch.org/" target="_blank">http://achurch.org/</a><br>&gt;<br></div></div>
<div><div></div><div class="Wj3C7c">&gt; ------------------------------------------------------------------<br>&gt; To unsubscribe or change your subscription options, visit:<br>&gt; <a href="http://lists.ircservices.za.net/mailman/listinfo/ircservices" target="_blank">
http://lists.ircservices.za.net/mailman/listinfo/ircservices</a><br>&gt;<br><br><br><br>--<br>Robin Burchell<br>mob: +447702671419<br>msn: <a href="mailto:msn@viroteck.net">msn@viroteck.net</a><br>web: <a href="http://www.en2no.com" target="_blank">
http://www.en2no.com</a><br>------------------------------------------------------------------<br>To unsubscribe or change your subscription options, visit:<br><a href="http://lists.ircservices.za.net/mailman/listinfo/ircservices" target="_blank">
http://lists.ircservices.za.net/mailman/listinfo/ircservices</a><br></div></div></blockquote></div><br><br clear="all"><br>-- <br>Best Regards,<br><br>Anton Wolkov<br>Information Security Expert | BugSec Ltd.<br>Mobile: 054-7703580 | Office: 03-9622655
<br>Visit us at our web site: <a href="http://www.bugsec.com">www.bugsec.com</a>