On 4/21/06, James Bunton <[EMAIL PROTECTED]> wrote:
> I'm about to release PyMSNt 0.11.1
> If anybody is able to test SVN trunk I'd appreciate any bug reports.

rev 140: (at least I think that's what's currently running - are you
still adding the functionality to see what version was launched)

          File "/usr/lib/python2.3/site-packages/twisted/internet/tcp.py",
line 351, in doRead
            return self.protocol.dataReceived(data)
          File "/usr/lib/python2.3/site-packages/twisted/protocols/basic.py",
line 232, in dataReceived
            return self.rawDataReceived(data)
          File "/home/norman/src/svn/PyMSNt/src/tlib/msn/msn.py", line
846, in rawDataReceived
            if not self.checkMessage(m):
          File "/home/norman/src/svn/PyMSNt/src/tlib/msn/msn.py", line
2184, in checkMessage
            self._handleP2PMessage(message)
          File "/home/norman/src/svn/PyMSNt/src/tlib/msn/msn.py", line
2127, in _handleP2PMessage
            slpLink.handlePacket(packet)
        exceptions.TypeError: 'NoneType' object is not callable

If it's been fixed already , then no worries.

--
- Norman Rasmussen
 - Email: [EMAIL PROTECTED]
 - Home page: http://norman.rasmussen.co.za/
From [EMAIL PROTECTED]  Mon Apr 24 06:04:44 2006
From: [EMAIL PROTECTED] (Norman Rasmussen)
Date: Mon Apr 24 06:04:48 2006
Subject: [py-transports] PyMSNt errors
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

Another one: (rev 141)

        --- <exception caught here> ---
          File 
"/usr/lib/python2.3/site-packages/twisted/internet/pollreactor.py",
line 160, in _doReadOrWrite
            why = selectable.doRead()
          File "/usr/lib/python2.3/site-packages/twisted/internet/tcp.py",
line 351, in doRead
            return self.protocol.dataReceived(data)
          File "/usr/lib/python2.3/site-packages/twisted/protocols/basic.py",
line 221, in dataReceived
            why = self.lineReceived(line)
          File "/home/norman/src/svn/PyMSNt/src/tlib/msn/msn.py", line
824, in lineReceived
            try: handler(params.split(' '))
          File "/home/norman/src/svn/PyMSNt/src/tlib/msn/msn.py", line
1188, in handle_FLN
            self.contactOffline(params[0])
          File "/home/norman/src/svn/PyMSNt/src/tlib/msn/msnw.py",
line 429, in contactOffline
            LogEvent(INFO, self.factory.msncon.ident)
        exceptions.AttributeError: 'NoneType' object has no attribute 'ident'


--
- Norman Rasmussen
 - Email: [EMAIL PROTECTED]
 - Home page: http://norman.rasmussen.co.za/
From [EMAIL PROTECTED]  Sun Apr 23 14:53:53 2006
From: [EMAIL PROTECTED] (James Bunton)
Date: Mon Apr 24 07:57:36 2006
Subject: [py-transports] PyMSNt: Fix avatars in Google Talk
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

On 18/04/2006, at 8:20 AM, Lars T. Mikkelsen wrote:

> On Mon, Apr 17, 2006 at 12:02:11AM +1000, James Bunton wrote:
>> Could you please apply this patch, then run
>> $ tail -f debug.log|grep avatarHashReceived
>
> Here's a snippet when changing the avatar two times:
>
> [2006-04-17 23:51:13] avatarHashReceived <my JID> <my transport> 
> b09b940ea9ab411a97d05d007e39cdb8348c0beb
> [2006-04-17 23:51:13] avatarHashReceived - retrieving vCard
> [2006-04-17 23:51:13] avatarHashReceived <my JID> <my transport> 
> b09b940ea9ab411a97d05d007e39cdb8348c0beb
> [2006-04-17 23:51:13] avatarHashReceived - retrieving vCard
> [2006-04-17 23:51:22] avatarHashReceived <my JID> <my transport> 
> 6f95d9f0b2bd164f19a281f975b036fe30393131
> [2006-04-17 23:51:22] avatarHashReceived - retrieving vCard
> [2006-04-17 23:51:23] avatarHashReceived <my JID> <my transport> 
> 6f95d9f0b2bd164f19a281f975b036fe30393131
>
>> Then muck around with Google Talk for a bit, and the results should
>> give us an idea whats going on.
>
> It seems I wasn't entirely correct in my previous description. 
> Apparently, the
> transport receives two "copies" of each presence stanza when the 
> avatar is set.
> However, this only occurs when changing avatar, and not when changing
> availability or status message. Furthermore, as far as I can tell from 
> the
> diagnostic log of Google Talk, the client only sends one "copy" of the 
> presence
> stanza, so I guess some server (most likely the Google Talk server) is
> duplicating some presence stanza.
>
> So when a presence stanza with a new avatar hash is received a vCard 
> update is
> triggered. If the duplicate presence stanza is received before the 
> answer to
> the first vCard update, a second vCard update is issued. I guess this 
> is also
> possible, however very unlikely, if a user changes his avatar and 
> immediately
> changes his status. I guess this doesn't really need any fixing in 
> PyMSNt after
> all.
>
> Best regards,
> Lars

I should be able to improve on this behaviour.
When doVCardUpdate is called, store the hash of the avatar we're trying 
to retrieve.
If doVCardUpdate is called with this hash again, return immediately.
When doVCardUpdate completes, blank the variable with the hash.

That should stop multiple retrievals for the same image. The only time 
this would give unnecessary retrievals is if somebody was quickly 
cycling through two images. Even then it would only retrieve a few more 
than necessary.

Thanks for diagnosing it.
It'd also be nice to find out where the extra presence stanza is coming 
from.

---

James

Reply via email to