Bug 71654 - [PATCH] ICQ User Info for temporary contacts is not automatically loaded
Summary: [PATCH] ICQ User Info for temporary contacts is not automatically loaded
Status: RESOLVED FIXED
Alias: None
Product: kopete
Classification: Applications
Component: ICQ and AIM Plugins (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
: 72901 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-01-02 08:43 UTC by Casey Allen Shobe
Modified: 2004-02-29 19:37 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
proposed patch to fix the problem (762 bytes, patch)
2004-01-18 06:51 UTC, Matt Rogers
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Casey Allen Shobe 2004-01-02 08:43:03 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources

How to reproduce:
- Add a new ICQ contact to your list; whether they are offline or online matters not.
- Open up a chat with this user.  Enable showing of the chat member list or send a message using a style that shows contactDisplayName.
- Note that the remote party's contactDisplayName is shown as their UIN.
- Right-click the contact, select User Info.  Close the window that appears.
- A nickname change notification will be shown in the chatwindow.  The chat member list will now show this nickname, and it will be used in the chatwindow as the contactDisplayName for all future messages.

What should happen:
- User information should be loaded automatically from the server upon addition to your list in the case that you add them first before messaging.
- User information should be loaded automatically from the server when an unknown contact messages you (and thus becomes a temporary contact).
Comment 1 Matt Rogers 2004-01-09 02:57:40 UTC
ok, reproduced this with a temporary contact (which is the only way i could reproduce it)
Comment 2 Matt Rogers 2004-01-18 06:51:45 UTC
Created attachment 4223 [details]
proposed patch to fix the problem

I've attached a patch. Please test it. It should solve the problem.
Comment 3 Jason Keirstead 2004-01-22 01:41:59 UTC
This bug stil happens with recent CVS and RC1.

Matt, was this patch put into CVS ever? If not, why not?

I find this very annoying with ICQ :P
Comment 4 Jason Keirstead 2004-01-22 01:42:15 UTC
*** Bug 72901 has been marked as a duplicate of this bug. ***
Comment 5 Stefan Gehn 2004-01-23 20:55:32 UTC
We first need queues for userinfo requests, otherwise we can run into problems when we flood the server with requests. also this shouldn't be special-cased for temp-contacts, instead do it for every newly created ICQContact that has an UIN as displayName().
Comment 6 Matt Rogers 2004-02-29 16:48:34 UTC
need to re-work the patch, might do that later today.
Comment 7 Matt Rogers 2004-02-29 17:27:55 UTC
CVS commit by mattr: 

Fix bug 71654. Fetch the user info for all contacts upon addition.
{BACKPORT]

CCMAIL: 71654-done@bugs.kde.org


  M +4 -0      oscaraccount.cpp   1.103.2.4


--- kdenetwork/kopete/protocols/oscar/oscaraccount.cpp  #1.103.2.3:1.103.2.4
@@ -789,4 +789,5 @@ bool OscarAccount::addContactToMetaConta
                         // need to normalize the contact name
                         engine()->sendAddBuddy(tocNormalize(contactId), internalGroup->name(), false);
+                        engine()->sendReqInfo( contactId.toULong() );
 
                         // Increase these counters, I'm not sure what this does
@@ -807,5 +808,8 @@ bool OscarAccount::addContactToMetaConta
                         // Get user status through BLM if contact is temporary (ICQ only)
                         if ( engine()->isICQ() )
+                        {
                                 engine()->sendAddBuddylist(tocNormalize(contactId));
+                                engine()->sendReqInfo( contactId.toULong() );
+                        }
 
                         // Set it's initial status


Comment 8 Stefan Gehn 2004-02-29 17:58:20 UTC
That patch is useless because ICQContact won't pick up that userinfo as it doesn't know the sequenceId of the request.

look at ICQContact constructor:

/*	if(name == displayName && account()->isConnected())
	{
		kdDebug(14200) << k_funcinfo << "ICQ Contact with no nickname, grabbing userinfo" << endl;
		requestUserInfo();
	}*/

THAT is the code which once did the fetch but it was disabled due to the missing rate limit.
Comment 9 Matt Rogers 2004-02-29 19:37:02 UTC
reenabled that piece of code in HEAD, will back out the other patches shortly