<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Nah..</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">It should be tracked in the entry in the room I think, the entry can come from a ServerIn too..</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I am now reading the spec for how dialback should work with regards to subdomains, because I tried to use two_parties but of course they fail completely for the lookup, so I patched the test harness to always link conference just to try where it would fail, and now the dialback verify fails..</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Artur</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">On May 30, 2006, at 9:59 PM, Brad Fitzpatrick wrote:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Yes, you should track whether they're gc1.0 or MUC.  Perhaps another</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">per-connection field in Connection::ClientIn?</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR style=""></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR style=""></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">On Wed, 31 May 2006 <A href="mailto:commits@code.sixapart.com">commits@code.sixapart.com</A> wrote:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR style=""></DIV><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">get rid of the DirectedPrescene hook and just look on switch_incoming_client instead, remove the check for the x muc element since we need it to be compatible with gc1.0, maybe we should keep track of if this is a gc1.0 client or muc client, unsure if we need to care</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR style=""></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">U   trunk/lib/DJabberd/HookDocs.pm</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">U   trunk/lib/DJabberd/Plugin/MUC.pm</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">U   trunk/lib/DJabberd/Presence.pm</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR style=""></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR style=""></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Modified: trunk/lib/DJabberd/HookDocs.pm</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">===================================================================</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">--- trunk/lib/DJabberd/HookDocs.pm<SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 99, 18); ">        </SPAN>2006-05-31 04:34:55 UTC (rev 330)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">+++ trunk/lib/DJabberd/HookDocs.pm<SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 99, 18); ">        </SPAN>2006-05-31 04:42:45 UTC (rev 331)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">@@ -103,12 +103,5 @@</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">     des =&gt; "Called to request each hook chain item calls the given CODE with parameters (JID,DJabberd::Presence) for each full JID and last presence for that full JID that is based on the provided short JID (the first parameter).  Each hook chain item is just expected to call the CODE subref 0 or more times, then decline.",</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); "> };</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-$hook{'DirectedPresence'} = {</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-    args =&gt; ['Prescence'],</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-    callback =&gt; {</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-        decline =&gt; [],</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-    },</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-    des =&gt; "This callback is called whenever there is directed presence packets being sent",</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-};</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); "> 1;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">Modified: trunk/lib/DJabberd/Plugin/MUC.pm</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">===================================================================</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">--- trunk/lib/DJabberd/Plugin/MUC.pm<SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 99, 18); ">        </SPAN>2006-05-31 04:34:55 UTC (rev 330)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">+++ trunk/lib/DJabberd/Plugin/MUC.pm<SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 99, 18); ">        </SPAN>2006-05-31 04:42:45 UTC (rev 331)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">@@ -34,9 +34,9 @@</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">         my ($vh, $cb, $iq) = @_;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-        # XXX: shouldn't check for muc in x to support GC</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-        if(($iq-&gt;to_jid-&gt;domain           ne $self-&gt;{domain})</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-           || ($iq-&gt;first_child-&gt;element  ne '{<A href="http://jabber.org/protocol/muc}x'">http://jabber.org/protocol/muc}x'</A>)) {</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">+        if(!$iq-&gt;isa("DJabberd::Presence")</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">+           || !$iq-&gt;is_directed</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">+           || $iq-&gt;to_jid-&gt;domain ne $self-&gt;{domain}) {</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">             $cb-&gt;decline;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">             return;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">         }</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">@@ -50,10 +50,10 @@</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">         }</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">         $self-&gt;join_room($iq-&gt;to_jid-&gt;node, $iq-&gt;to_jid-&gt;resource, $iq-&gt;from_jid);</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">+        $cb-&gt;stop_chain;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">     };</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-    $vhost-&gt;register_hook("DirectedPresence",$dp);</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">+    $vhost-&gt;register_hook("switch_incoming_client", $dp);</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">     my $deliver = sub {</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">         my ($vhost, $cb, $stanza) = @_;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">Modified: trunk/lib/DJabberd/Presence.pm</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">===================================================================</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">--- trunk/lib/DJabberd/Presence.pm<SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 99, 18); ">        </SPAN>2006-05-31 04:34:55 UTC (rev 330)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">+++ trunk/lib/DJabberd/Presence.pm<SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 99, 18); ">        </SPAN>2006-05-31 04:42:45 UTC (rev 331)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">@@ -351,10 +351,6 @@</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">     if ($self-&gt;is_directed) {</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">         $conn-&gt;{directed_presence}-&gt;{$self-&gt;to_jid}++;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">         $self-&gt;deliver;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-        # TODO this hook is going away</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-        $conn-&gt;vhost-&gt;run_hook_chain(phase =&gt; "DirectedPresence",</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-                                     args =&gt;  [ $self ],</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">-                                     );</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">         return;</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ; color: rgb(0, 99, 18); ">     }</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR style="color: rgb(0, 99, 18); "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ; color: rgb(0, 99, 18); "><BR class="khtml-block-placeholder"></DIV></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>