[prev in list] [next in list] [prev in thread] [next in thread] 

List:       licq-cvs
Subject:    [Licq-cvs] r4447 - trunk/licq/src
From:       emostar () users ! sourceforge ! net
Date:       2006-06-15 10:40:51
Message-ID: 20060615104051.17582.qmail () mail ! thejon ! org
[Download RAW message or body]

Author: emostar
Date: 2006-06-15 19:40:50 +0900 (Thu, 15 Jun 2006)
New Revision: 4447

Modified:
   trunk/licq/src/icqd-srv.cpp
Log:
Don't crash on a strange server error.


Modified: trunk/licq/src/icqd-srv.cpp
===================================================================
--- trunk/licq/src/icqd-srv.cpp	2006-06-10 03:20:41 UTC (rev 4446)
+++ trunk/licq/src/icqd-srv.cpp	2006-06-15 10:40:50 UTC (rev 4447)
@@ -5889,23 +5889,34 @@
   {
     case ICQ_SNACxNEW_UIN_ERROR:
     {
-      gLog.Warn(tr("%sVerification required. Reconnecting...\n"), L_WARNxSTR);
+      if (m_szRegisterPasswd)
+      {
+        gLog.Warn(tr("%sVerification required. Reconnecting...\n"), L_WARNxSTR);
 
-      ICQEvent *e = DoneServerEvent(nSubSequence, EVENT_ERROR);
-      if (e)
-        delete e;
-      m_bVerify = true;
-      
-      // Reconnect now
-      char *szPasswd = strdup(m_szRegisterPasswd); // gets deleted in postLogoff
-      int nSD = m_nTCPSrvSocketDesc;
-      m_nTCPSrvSocketDesc = -1;
-      m_eStatus = STATUS_OFFLINE_MANUAL;
-      m_bLoggingOn = false; 
-      gSocketManager.CloseSocket(nSD);
-      postLogoff(nSD, NULL);
-      icqRegister(szPasswd);
-      free(szPasswd);
+        ICQEvent *e = DoneServerEvent(nSubSequence, EVENT_ERROR);
+        if (e)
+          delete e;
+        m_bVerify = true;
+        
+        // Reconnect now
+        char *szPasswd = strdup(m_szRegisterPasswd); // gets deleted in postLogoff
+        int nSD = m_nTCPSrvSocketDesc;
+        m_nTCPSrvSocketDesc = -1;
+        m_eStatus = STATUS_OFFLINE_MANUAL;
+        m_bLoggingOn = false; 
+        gSocketManager.CloseSocket(nSD);
+        postLogoff(nSD, NULL);
+        icqRegister(szPasswd);
+        free(szPasswd);
+      }
+      else
+      {
+        ICQEvent *e = DoneServerEvent(nSubSequence, EVENT_ERROR);
+        if (e)
+          delete e;
+        gLog.Error(tr("%sUnknown logon error. There appears to be an issue with the \
ICQ servers. Please try again later.\n"), L_ERRORxSTR); +      }
+
       break;
     }
     case ICQ_SNACxNEW_UIN:



_______________________________________________
Licq-cvs mailing list
Licq-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/licq-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic