Bug 53072 - ICQ plugin does not try to connect
Summary: ICQ plugin does not try to connect
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:
Depends on:
Blocks:
 
Reported: 2003-01-16 18:55 UTC by Pierre-Etienne Messier
Modified: 2003-06-04 20:10 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
kopeterc that works with msn and icq - replace XXXXX and NNNNNNN with what is appropriate for your situation. DO NOT CHANGE the settings afterwards otherwise only msn will work ! (4.50 KB, text/plain)
2003-02-11 12:45 UTC, Pascal Cavy
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pierre-Etienne Messier 2003-01-16 18:55:11 UTC
Version:           0.5.8cvs >=20021020 (using KDE KDE 3.0.99)
Installed from:    Compiled From Sources
Compiler:          gcc 3.2 
OS:          Linux

Sometimes (but quite everyday now) the ICQ plugin won't try to connect to the ICQ server.  Example: I open Kopete, the ICQ flower remains grey (auto connect == on).  If I change the status (left click, Online) for instance, nothing at all happens.  In the Konsole though, I get this output (after clicking on Online):

kopete: [ICQProtocol] slotGoOnline()
kopete: [ICQProtocol] status did not change, aborting statusChange()

The situation is the same with only the ICQ plugin loaded as well as with many plugins loaded, like Jabber and Yahoo.

Sometimes, after unloading and loading the plugins, ICQ will connect.  I can't explain why.

Uninstalling Kopete, download the sources and recompiling it does not help at all.  Only unload/load the plugins (sometimes for a few times, sometimes for a lot of times) seems to help.

While Kopete can't connect to ICQ, others IM, Gaim for instance, will connect flawlessly to ICQ.
Comment 1 Martijn Klingens 2003-01-16 21:23:06 UTC
Subject: Re: [Kopete-devel] Re:  New: ICQ plugin does not try to connect

On Thursday 16 January 2003 20:38, Unai Garro wrote:
> Exactly the same happens to me here. It works with no problem if I disable
> the "autoconnect" function though.
>
> If autoconnect is enabled, then the only way to force it to connect is:
> disable the plugin, close kopete, rerun, and enable the plugin back.

Looks a LOT like the problems I had with the AIM TOC plugin and autoconnect.

My local CVS copy has too much local changes for a proper patch 
(icqprotocol.cpp is changed already), but does changing

  if ( mPrefs->autoConnect() )
  {
      kdDebug(14110) << "[ICQProtocol] autoconnect..." << endl;
-     connect();
+     QTimer::singleShot( 0, this, SLOT( connect() ) );
  }

in the constructor in ICQProtocol.cpp solve the issue?

Comment 2 Unai Garro 2003-01-17 04:43:16 UTC
The patch you suggested solved the problem at least for me. Could you please commit this to  
CVS?  
Comment 3 Hamish Rodda 2003-01-17 05:45:13 UTC
Committed. 
Comment 4 Pierre-Etienne Messier 2003-02-02 20:39:24 UTC
Since the patch, yes it works (thanks).  But, at least for me, it seems only to
work with the Yahoo plugin loaded and set on auto connect.  If both are set to
auto-connect, ICQ will connect.  If I just load the ICQ plugin, ICQ won't connect.

I tried to uninstall Kopete, deleted all entries regarding kopete in my ~.kde/
directory (in share/apps/, share/config/ and share/config/session/).  Then
downloaded the fresh CVS, compiled it and installed it.  First I only loaded the
ICQ plugin, entered my infos and set it to auto-connect.  Closed Kopete then
opened it again.  Didn't connect.  I loaded the Yahoo plugin, entered my infos
and set it to auto-connect too.  Closed Kopete again, opened it and both
connected (ICQ downloaded my contact list as it would do usually).  So I can't
use the ICQ plugin without the Yahoo one, which makes kinda no sense...

Oh and a small note : when ICQ downloaded my contact list, it downloaded it
twice, my contact were in the General folder and in the top level.  Moving them
all in General and saving the contact list did the trick.  I don't have that
luck with Yahoo though, my contact keep adding to the top-level (well, in a
folder with no name) at each Kopete startup.

I'm currently using 0.5.8cvs >=20030131 and KDE 3.1, compiled with gcc 3.2.1
Comment 5 nbetcher 2003-02-06 01:42:27 UTC
Can you try CVS again? What glibc version are you using (including package revision 
from your distro)? 
Comment 6 Pierre-Etienne Messier 2003-02-06 03:13:01 UTC
Subject: Re:  ICQ plugin does not try to connect         

> Can you try CVS again? What glibc version are you using (including package
> revision 
> from your distro)?

After the reception of this message, I uninstalled Kopete, CVS and compiled it
(I did not delete my preferences though.  Should I try ?).  The problem is
still there (ICQ will connect only if the Yahoo plugin is loaded).

I'm using the latest Glibc from Mandrake Cooker (2.3.1 - the package seems to
be glibc-2.3.1-7mdk.i586.rpm).

__________________________________________________________
L
Comment 7 Pierre-Etienne Messier 2003-02-06 03:23:08 UTC
Small update : If I start Kopete with ICQ and Yahoo loaded, ICQ connect.  If I
go offline for both, unload Yahoo, and try to make ICQ online, it will work. 
Then, if I close Kopete and open it again, ICQ won't connect.

The main thing is, I don't want to use Yahoo anymore (I just tried it as a
test!) but I must load it to use ICQ... :)  Jabber does not have any problem though.
Comment 8 nbetcher 2003-02-06 04:24:00 UTC
Can you see if there is a new package revision of glibc 2.3.1 from cooker? If not, can 
you downgrade a few package revisions and see if that helps? There was a known 
problem with a certain packaging of 2.3.1 in debian that caused such symtoms. 
Comment 9 Martijn Klingens 2003-02-06 10:10:29 UTC
Subject: Re: [Kopete-devel]  ICQ plugin does not try to connect

On Thursday 06 February 2003 03:23, Pierre-�ienne wrote:
> Small update : If I start Kopete with ICQ and Yahoo loaded, ICQ connect.  If
> I go offline for both, unload Yahoo, and try to make ICQ online, it will
> work. Then, if I close Kopete and open it again, ICQ won't connect.

This really sounds like the glibc bug that breaks QDNS. Some versions of glibc 
2.3.1 are broken.

Kopete-devel: What glibc for debian was needed to fix this? Is this available 
for Mandrake too?

Comment 10 Stefan Gehn 2003-02-07 14:26:05 UTC
2.3.1-5 till 2.3.1-8 were broken iirc (note, these are debian package-revisions!), so 
anything using a very recent glibc-snapshot should work again, the debian-changelog did 
not really contain anything that could have broken/fixed it. 
Comment 11 Pascal Cavy 2003-02-11 11:27:07 UTC
I have exactly the same biiiiiig problem with mandrake 
my glibc package is glibc-2.3.1-7mdk 
 
I have opened a bug on  https://qa.mandrakesoft.com/show_bug.cgi?id=1549 
to investigate on a glibc update 
Comment 12 Pascal Cavy 2003-02-11 12:45:27 UTC
Created attachment 931 [details]
kopeterc that works with msn and icq - replace XXXXX and NNNNNNN with what is appropriate for your situation.
DO NOT CHANGE the settings afterwards otherwise only msn will work !

this config file works with msn (auto) and icq (manual)
Comment 13 Martijn Klingens 2003-02-11 12:53:02 UTC
Subject: Re: [Kopete-devel]  ICQ plugin does not try to connect

On Tuesday 11 February 2003 12:47, owner@bugs.kde.org wrote:
> kopeterc that works with msn and icq - replace XXXXX and NNNNNNN with what
> is appropriate for your situation. DO NOT CHANGE the settings afterwards
> otherwise only msn will work !

Which of these settings is the troublesome one?
Comment 14 Pascal Cavy 2003-02-11 13:05:58 UTC
Subject: Re:  ICQ plugin does not try to connect

> Which of these settings is the troublesome one?

With this config :
- icq cannot auto connect but manually connecting is OK
- msn is connecting auto

If you add OSCAR for example 
then stop kopete (you might have a crash)
then restart kopete
then icq will never work again...


Comment 15 Martijn Klingens 2003-02-11 21:09:02 UTC
Subject: Re: [Kopete-devel]  ICQ plugin does not try to connect

I was trying to add the same workaround to ICQ that MSN has, but to my 
disgrace I saw that kopete/protocols/icq_new/client.cpp has an explicit 
'#undef HAVE_KEXTSOCK_H'. Does anyone have any idea why that is?

To the people who experience the problems with Mandrake Cooker: does changing 
this line (at the top of the file) into an explicit '#define HAVE_KEXTSOCK_H' 
solve the problems? If so, I guess we should readd it again.

Comment 16 Pierre-Etienne Messier 2003-02-12 02:11:59 UTC
No it doesn't solve any problem it creates one bigger : it won't compile :)

Here's the output : 
client.cpp:366: prototype for
`ICQClientSocket::ICQClientSocket(KExtendedSocket*)' does not match any in class
`ICQClientSocket'
client.h:60: candidates are: ICQClientSocket::ICQClientSocket(const
ICQClientSocket&)
client.h:66:                 ICQClientSocket::ICQClientSocket(QSocket* = 0)
client.cpp: In constructor `ICQClientSocket::ICQClientSocket(KExtendedSocket*)':
client.cpp:367: cannot convert `KExtendedSocket*' to `QSocket*' in assignment
client.cpp:370: cannot convert `KExtendedSocket*' to `QSocket*' in assignment
client.cpp:371: no matching function for call to
`QSocket::setSocketFlags(KExtendedSocket::Flags)'
client.cpp:389: no matching function for call to `QSocket::enableRead(bool)'
client.cpp: In member function `virtual void ICQClientSocket::close()':
client.cpp:402: no matching function for call to `QSocket::closeNow()'
client.cpp: In member function `virtual void ICQClientSocket::connect(const
char*, int)':
client.cpp:442: no matching function for call to `QSocket::setAddress(const
char*&, int&)'
client.cpp:443: no matching function for call to `QSocket::lookup()'
client.cpp:446: no matching function for call to `QSocket::startAsyncConnect()'
client.cpp: In member function `void ICQClientSocket::slotConnected()':
client.cpp:459: no matching function for call to `QSocket::setBlockingMode(bool)'
client.cpp:460: no matching function for call to `QSocket::enableRead(bool)'
client.cpp: In member function `virtual long unsigned int
ICQClientSocket::localHost()':
client.cpp:489: no matching function for call to `QSocket::localAddress()'
client.cpp: In constructor `ICQServerSocket::ICQServerSocket(short unsigned int,
short unsigned int)':
client.cpp:521: cannot convert `KExtendedSocket*' to `QSocketDevice*' in assignment
client.cpp:522: no matching function for call to
`ICQServerSocket::connect(QSocketDevice*&, const char[15], ICQServerSocket*
const, const char[13])'
/usr/lib/qt3/include/qobject.h:116: candidates are: static bool
QObject::connect(const QObject*, const char*, const QObject*, const char*)
/usr/lib/qt3/include/qobject.h:227:                 bool QObject::connect(const
QObject*, const char*, const char*) const
client.cpp:525: no matching function for call to
`QSocketDevice::setBlockingMode(bool)'
client.cpp:526: no matching function for call to
`QSocketDevice::setSocketFlags(KExtendedSocket::Flags)'
client.cpp:527: no matching function for call to `QSocketDevice::setPort(short
unsigned int&)'
client.cpp:528: no matching function for call to `QSocketDevice::listen()'
/usr/lib/qt3/include/qsocketdevice.h:95: candidates are: virtual bool
QSocketDevice::listen(int)
client.cpp: In member function `void ICQServerSocket::slotActivated()':
client.cpp:586: no matching function for call to
`QSocketDevice::accept(KExtendedSocket*&)'
/usr/lib/qt3/include/qsocketdevice.h:96: candidates are: virtual int
QSocketDevice::accept()
client.cpp:589: no matching function for call to
`ICQClientSocket::ICQClientSocket(KExtendedSocket*&)'
client.h:60: candidates are: ICQClientSocket::ICQClientSocket(const
ICQClientSocket&)
client.h:66:                 ICQClientSocket::ICQClientSocket(QSocket* = 0)
make[3]: *** [client.lo] Erreur 1
Comment 17 Martijn Klingens 2003-02-12 09:51:16 UTC
Subject: Re: [Kopete-devel]  ICQ plugin does not try to connect

On Wednesday 12 February 2003 02:12, Pierre-�ienne wrote:
> client.h:60: candidates are: ICQClientSocket::ICQClientSocket(const
> ICQClientSocket&)
> client.h:66:                 ICQClientSocket::ICQClientSocket(QSocket* = 0)

Ugh... is the same #undef also in client.h? If so, please change it there as 
well and try again. If that doesn't work I'll try to create a formal patch 
when I'm back home tonight.
Comment 18 Pierre-Etienne Messier 2003-02-12 12:48:51 UTC
Great news : it seems to work (changing this line to #define in client.cpp and
client.h) !  I can't say much right now because no one is online in my ICQ
contact list, but it connects well with only the ICQ plugin loaded !
Comment 19 Pascal Cavy 2003-02-12 13:01:32 UTC
Subject: Re:  ICQ plugin does not try to connect

good news,
 can you try now with 2 protocols, ICQ and MSN in auto connect ?

Comment 20 Pierre-Etienne Messier 2003-02-12 16:43:30 UTC
I'm not at home right now, but when I sumbitted my last message I forgot to say 
that I tried to connect with ICQ loaded, and the ICQ and Jabber (I don't have 
MSN and don't want it :P), it worked fine !
Comment 21 Pascal Cavy 2003-02-14 00:28:55 UTC
# rpm -q glibc 
glibc-2.3.1-8mdk 
 
 
this level solves all my connection problems on mandrake ! 
 
Comment 22 Pierre-Etienne Messier 2003-02-14 03:12:00 UTC
Just upgraded my glibc too, still works fine (I am currently running Kopete with
the changes in the client.cpp/.h as said before).

So I think you can modify the CVS to #define theses lines (as I don't think
there is a problem using #define (I saw none up to now).  But #undef was there,
what was its actual purpose ?).  Then, the bug can be marked as "resolved".
Comment 23 Stefan Gehn 2003-03-02 19:32:43 UTC
CVS now uses kextsock so the bug should be fixed.