Opened 11 years ago

Closed 11 years ago

#6302 closed defect (fixed)

libpurple doesn't download msn display pictures at login ...

Reported by: visionkrew Owned by: QuLogic
Milestone: Component: MSN
Version: Keywords: msn,missing,display,picture,buddy,icon
Cc:

Description

I use Adium with libpurple built from a fresh checkout from the im.pidgin.cpw.qulogic.msn branch (revision: e0c15c710af77a687e1adb624fdf03917bfef2fe). My findings are:

  1. When you sign in to MSN (so you were offline before), libpurple doesn't download your online buddies' current display pictures. The cached DPs will be shown, if they exist (if some of your buddies changed DPs while you were offline, you won't receive those updated DPs - you'll see the cached (and possibly outdated) ones.
  1. If your online buddies change DPs while you are online, you will receive the updated DPs almost instantly.
  1. If you are online and one of your buddies signs in (who was offline before), you will receive his/her actual DP almost instantly.

When signing in (so it would be time for libpurple to fetch the online users' DPs), Console log shows:

Jul 12 01:27:24 xyz [0x0-0x6a86a8].com.adiumX.adiumX[31904]: (process:31904): CRITICAL : purple_signal_emit_vargs: assertion `instance_data != NULL' failed
Jul 12 01:27:30: --- last message repeated 66 times ---
Jul 12 01:27:30 xyz [0x0-0x6a86a8].com.adiumX.adiumX[31904]: SocketRead?: read(5) error 0
Jul 12 01:27:30 xyz [0x0-0x6a86a8].com.adiumX.adiumX[31904]: SocketRead? err = -9802

Steps to reproduce the problem:

  1. Quit Adium
  2. Clear the display picture cache (delete ~/Library/Caches/Adium/Default?)
  3. Start adium, and sign in to MSN
  4. WAIT - you won't receive your currently online contacts DPs unless they sign out and sign in again, or they change DPs.

Attachments (3)

debug.log (208.1 KB) - added by visionkrew 11 years ago.
purple-msn-6302.diff (3.1 KB) - added by QuLogic 11 years ago.
Patch with extra debug messages for #6302.
adium.log (16.3 KB) - added by visionkrew 11 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 11 years ago by QuLogic

  • Owner changed from khc to QuLogic
  • pending changed from 0 to 1

I'm pretty sure that's an ignorable error. I need more of the debug log, from the beginning of when you sign on until about the first PNG (or round about when it seems to slow down). Don't forget to remove any emails or passwords. If you start at the first "USR OK", then your password won't be in it.

Changed 11 years ago by visionkrew

comment:2 Changed 11 years ago by QuLogic

It looks like you're getting an ILN command instead of NLN. I don't get any of those anymore, so perhaps the servers are in some sort of transition period. I should have fixed both of those commands in 0c821870b36ed3ba7154cae73378b33e18b814bd.

However, it looks like there's a trailing space on the ILN command. I'm not sure if g_strsplit will return an extra empty string for that. Try changing line 993 in notification.c from:

	if (cmd->param_count == 7)

to

	if (cmd->param_count >= 7)

comment:3 Changed 11 years ago by QuLogic

Actually, now that I read it over, it should stop counting at the first empty string, so even if g_strsplit did do that, it shouldn't matter.

If it works for you, great. Otherwise, try out this patch and post the debug log. I will only need (hopefully) the lines marked with "msn-6302".

Changed 11 years ago by QuLogic

Patch with extra debug messages for #6302.

comment:4 Changed 11 years ago by visionkrew

  • pending changed from 1 to 0

The >= patch is working fine, DPs are downloaded at login. Anyway, I attach the log file.

Changed 11 years ago by visionkrew

comment:5 Changed 11 years ago by QuLogic

Ah, OK, I was mistaken. It doesn't bypass that problem. Anyway, it should be fixed soon, then.

comment:6 Changed 11 years ago by qulogic@…

  • Resolution set to fixed
  • Status changed from new to closed

(In 39dae91304474426adc73b91a449946ae914b788):
Workaround a bug in MSN servers where it sends an extra space at the end of the ILN command. Also used g_strsplit_set so it doesn't accidentally drop command parameters when there are double spaces.

Fixes #6302.

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!