jabber-irc (0.4cvs20080505-1.1) adhoc.py

Summary

 adhoc.py |   14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

    
download this patch

Patch contents

--- jabber-irc-0.4cvs20080505.orig/adhoc.py
+++ jabber-irc-0.4cvs20080505/adhoc.py
@@ -1,4 +1,4 @@
-# $Id: adhoc.py,v 1.3 2007/08/29 09:14:31 normanr Exp $
+# $Id: adhoc.py,v 1.4 2007/12/18 21:34:38 normanr Exp $
 
 import sys, xmpp
 from xmpp.protocol import *
@@ -98,6 +98,7 @@
     def _DiscoHandler(self,conn,event,type):
         """The handler for discovery events"""
         fromjid = event.getFrom().getStripped().__str__()
+        resource = event.getFrom().getResource()
         to = event.getTo()
         room = irc_ulower(to.getNode())
         try:
@@ -107,7 +108,10 @@
             channel=''
             server=room
             sys.exc_clear()
-        if channel == '' and (not self.transport.users.has_key(fromjid) or not self.transport.users[fromjid].has_key(server)):
+        if channel == '' and not (
+                self.transport.users.has_key(fromjid) and
+                self.transport.users[fromjid].has_key(server) and
+                self.transport.users[fromjid][server].xresources.has_key(resource)):
             return xmpp.commands.Command_Handler_Prototype._DiscoHandler(self,conn,event,type)
         else:
             return None
@@ -154,6 +158,7 @@
     def _DiscoHandler(self,conn,event,type):
         """The handler for discovery events"""
         fromjid = event.getFrom().getStripped().__str__()
+        resource = event.getFrom().getResource()
         to = event.getTo()
         room = irc_ulower(to.getNode())
         try:
@@ -163,7 +168,10 @@
             channel=''
             server=room
             sys.exc_clear()
-        if channel == '' and self.transport.users.has_key(fromjid) and self.transport.users[fromjid].has_key(server):
+        if channel == '' and (
+                self.transport.users.has_key(fromjid) and
+                self.transport.users[fromjid].has_key(server) and
+                self.transport.users[fromjid][server].xresources.has_key(resource)):
             return xmpp.commands.Command_Handler_Prototype._DiscoHandler(self,conn,event,type)
         else:
             return None