Hello, in the past i randomly got disconnected from ICQ network, licq simply went offline. we discussed this on irc and found that we all had a "unknown service family subtype: 000b" in the logs a few seconds before we get disconnected. it is the remote server that closes the connection, not licq.
after some research we found that 0x000b service family subtype most likely means the server is going to disconnect/shutdown/beeing maintained or something like this. (Some documents interpret 0x000b as "Server pause"... hm) The attached patch should make licq change the server and reconnect when it receives such a signal from the server. unfortunately i have no way to reproduce this, maybe someone else knows more about it. jon? any idea? Bye, Thomas
Index: src/icqd-srv.cpp =================================================================== RCS file: /cvsroot/licq/licq/src/icqd-srv.cpp,v retrieving revision 1.92 diff -u -3 -p -r1.92 icqd-srv.cpp --- src/icqd-srv.cpp 18 Jan 2003 01:29:31 -0000 1.92 +++ src/icqd-srv.cpp 7 Feb 2003 13:06:08 -0000 @@ -1653,6 +1653,15 @@ void CICQDaemon::ProcessServiceFam(CBuff break; } + case ICQ_SNACxSUB_PAUSE: + { + // Server is going to disconnect/pause (maintainance?) + // lets change servers and reconnect. + gLog.Info("%sServer is going to disconnect/pause. Lets reconnect to another one.\n", L_SRVxSTR); + icqRelogon(true); + break; + } + default: gLog.Warn("%sUnknown Service Family Subtype: %04hx\n", L_SRVxSTR, nSubtype); break;
msg02022/pgp00000.pgp
Description: signature