Changeset 100

Show
Ignore:
Timestamp:
06/25/04 15:31:13 (4 years ago)
Author:
jajcus
Message:

- don't use two (or more) different IRCUser instances for one Jabber user

(fixes "disconnection on connection")

- don't try to include user and host in the IRC user's "real JID" if they are not known
- a bit more of debug code added

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/jjigw/channel.py

    r88 r100  
    4545            self.encoding=session.default_encoding 
    4646        self.modes={} 
    47         self.users=[self.session.get_user()
     47        self.users=[self.session.user
    4848        self.muc=0 
    4949        self.requests=RequestQueue(10) 
     
    143143 
    144144    def nick_changed(self,oldnick,user): 
     145        self.debug("Nick changed: %r -> %r" % (oldnick,user.nick)) 
    145146        p_unaval=self.get_user_presence(user,nick=user.nick,status=303) 
    146147        p_unaval.set_type("unavailable") 
     
    306307        else: 
    307308            actor_jid=None 
     309        self.debug("Mode changed: %r by %r" % (user.nick,actor_jid)) 
    308310        p=self.get_user_presence(user,actor_jid) 
    309311        if actor: 
  • trunk/jjigw/ircsession.py

    r95 r100  
    7373        self.users={} 
    7474        self.raw_channel=0 
    75         self.user=IRCUser(self,nick) 
     75        self.user=self.get_user(nick) 
    7676        self.thread.start() 
    7777 
     
    104104            self.lock.release() 
    105105 
    106     def get_user(self,prefix=None,create=1): 
    107         if prefix: 
    108             if "!" in prefix: 
    109                 nick=prefix.split("!",1)[0] 
    110             else: 
    111                 nick=prefix 
    112             if not self.network.valid_nick(nick,0): 
    113                 return None 
    114         else: 
    115             prefix=self.nick 
    116             nick=self.nick 
     106    def get_user(self,prefix,create=1): 
     107        if "!" in prefix: 
     108            nick=prefix.split("!",1)[0] 
     109        else: 
     110            nick=prefix 
     111        if not self.network.valid_nick(nick,0): 
     112            return None 
    117113        nnick=normalize(nick) 
    118114        if self.users.has_key(nnick): 
  • trunk/jjigw/ircuser.py

    r71 r100  
    111111 
    112112    def jid(self): 
     113        if self.user and self.host: 
     114            res=unicode(self.user+'@'+self.host,self.session.default_encoding,"replace") 
     115        else: 
     116            res=u"" 
    113117        return JID(nick_to_node(self.nick,self.session.default_encoding), 
    114                 self.session.network.jid.domain, 
    115                 unicode(self.user+'@'+self.host,self.session.default_encoding,"replace")) 
     118                self.session.network.jid.domain,res) 
    116119 
    117120    def __repr__(self): 
    118         return "<IRCUser %r>" % (self.nick,
     121        return "<IRCUser %r: %r>" % (id(self),self.nick
    119122 
    120123    def debug(self,msg):