]> andersk Git - libfaim.git/commitdiff
UNKNOWN CONNECTION TYPE bugfix.
authormid <mid>
Mon, 3 Jan 2000 04:10:46 +0000 (04:10 +0000)
committermid <mid>
Mon, 3 Jan 2000 04:10:46 +0000 (04:10 +0000)
CHANGES
aim_conn.c
aim_rxhandlers.c

diff --git a/CHANGES b/CHANGES
index e1bd75dcf72159f4c65a0996a9ae82f871b0aeda..4687f5ec162881e9db0f44b6e5d9d8704ad5e848 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,12 @@
 
 No release numbers
 ------------------
+ - Mon Jan  3 04:07:55 UTC 2000
+   - Fixed bug in aim_snac.c
+   - Fixed condition where commands read from connections that have 
+       been closed were still left in the queue.  Now cancelled.
+   - Added some printfs to aim_info to get more informative crahes
+
  - Sun Jan  2 10:31:19 UTC 2000
    - Cleanups in aim_info.c
    - Can compile with -Ddebug=100 again
index ee2418c12c1cc731638667a88a7d2a1370e184ff..b47b42b430bc20e0796c93a0b70ca58a6689093d 100644 (file)
@@ -248,7 +248,7 @@ void aim_session_init(struct aim_session_t *sess)
   memset(sess->logininfo.cookie, 0x00, AIM_COOKIELEN);
   sess->logininfo.email = NULL;
   sess->logininfo.regstatus = 0x00;
-  
+
   for (i = 0; i < AIM_CONN_MAX; i++)
     {
       sess->conns[i].fd = -1;
index 9fa45d9ee1826e2533b769f0ca46aa1d246f6a67..03314330512266af359083db0f689030ece1315b 100644 (file)
@@ -311,8 +311,21 @@ int aim_rxdispatch(struct aim_session_t *sess)
       workingPtr = sess->queue_incoming;
       for (i = 0; workingPtr != NULL; i++)
        {
+         /*
+          * XXX: This is still fairly ugly.
+          */
          switch(workingPtr->conn->type)
            {
+           case -1:
+             /*
+              * This can happen if we have a queued command
+              * that was recieved after a connection has 
+              * been terminated.  In which case, the handler
+              * list has been cleared, and there's nothing we
+              * can do for it.  We can only cancel it.
+              */
+             workingPtr->handled = 1;
+             break;
            case AIM_CONN_TYPE_AUTH:
              {
                u_long head;
@@ -561,7 +574,7 @@ int aim_rxdispatch(struct aim_session_t *sess)
              }
              break;
            default:
-             printf("\nAHHHHH! UNKNOWN CONNECTION TYPE! (0x%02x)\n\n", workingPtr->conn->type);
+             printf("\nAHHHHH! UNKNOWN CONNECTION TYPE! (type = %d, fd = %d, channel = %02x, commandlen = %02x)\n\n", workingPtr->conn->type, workingPtr->conn->fd, workingPtr->type, workingPtr->commandlen);
              workingPtr->handled = aim_callhandler_noparam(sess, workingPtr->conn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_UNKNOWN, workingPtr);
              break;
            }
This page took 0.046 seconds and 5 git commands to generate.