Bug 126754 - ICQ is unable to connect automaticaly if the network is not available during the startup
Summary: ICQ is unable to connect automaticaly if the network is not available during ...
Status: RESOLVED FIXED
Alias: None
Product: kopete
Classification: Unmaintained
Component: ICQ and AIM Plugins (other bugs)
Version First Reported In: unspecified
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-04 21:40 UTC by Martin Mrazik
Modified: 2006-07-30 22:43 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Mrazik 2006-05-04 21:40:57 UTC
Version:            (using KDE KDE 3.5.1)
Installed from:    SuSE RPMs

Consider the following scenario:

You start your KDE session without internet connection available. Your kopete
starts and the ICQ icon is indicating that it is trying to connect. So far
good.

You configure your internet connection (e.g. using knetworkmanager). Internet
works, but the ICQ icon is still indicating it is trying to connect. However it
never connects.

Workaround that works: click on the ICQ icon and select status "Offline". Click
again and select "Online" - ICQ is able to connect and works fine. 

This "feature" is quite annoying. At least it would be great if it switched to
the "Offline" mode automaticaly after some timeout. This bahviour is confusing
because it indicates to the user that kopete is working on the connection but
actually never connects.
Comment 1 Roman Jarosz 2006-07-30 22:43:45 UTC
SVN commit 567996 by rjarosz:

Backport fix for bug when ICQ or AIM status icon stays turning forever if connection is closed on login

BUG: 126754



 M  +4 -1      client.cpp  


--- branches/KDE/3.5/kdenetwork/kopete/protocols/oscar/liboscar/client.cpp #567995:567996
@@ -1049,8 +1049,11 @@
     if ( !c )
         return;
 
-    if ( c->isSupported( 0x0002 ) )
+    if ( c->isSupported( 0x0002 ) ||
+         d->stage == ClientPrivate::StageOne ) //emit on login
+    {
         emit socketError( code, string );
+    }
 
     //connection is deleted. deleteLater() is used
     d->connections.remove( c );