ayttm-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Ayttm-commits] CVS: ayttm/modules/icq-toc icq-toc.c,1.12,1.13


From: Colin Leroy <address@hidden>
Subject: [Ayttm-commits] CVS: ayttm/modules/icq-toc icq-toc.c,1.12,1.13
Date: Mon, 24 Mar 2003 04:54:38 -0500

Update of /cvsroot/ayttm/ayttm/modules/icq-toc
In directory subversions:/tmp/cvs-serv25056/modules/icq-toc

Modified Files:
        icq-toc.c 
Log Message:
Implement async connect
Fix status keeping online when login errors happene


Index: icq-toc.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/modules/icq-toc/icq-toc.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- icq-toc.c   23 Mar 2003 12:22:43 -0000      1.12
+++ icq-toc.c   24 Mar 2003 09:54:36 -0000      1.13
@@ -153,17 +153,18 @@
        char icq_info[MAX_PREF_LEN]; 
         char password[255];
         int fd;
-               toc_conn * conn;
-               int input;
-               int keep_alive;
-               int status;
+       toc_conn * conn;
+       int input;
+       int keep_alive;
+       int status;
+       int connect_tag;
 };
 
 enum
 {
-       icq_ONLINE=0,
-       icq_AWAY=1,
-       icq_OFFLINE=2
+       ICQ_ONLINE=0,
+       ICQ_AWAY=1,
+       ICQ_OFFLINE=2
 };
 
 
@@ -260,7 +261,6 @@
        eb_debug(DBG_TOC, "eb_icq_disconnect %d %d\n", conn->fd, conn->seq_num);
        if(ela) {
                eb_icq_logout(ela);
-               eb_icq_login(ela);
        }
        else
                g_warning("NULL account associated with icq connection");
@@ -412,21 +412,21 @@
        }
 
 
-       if (online && (aad->status == icq_OFFLINE))
+       if (online && (aad->status == ICQ_OFFLINE))
        {
-               aad->status = icq_ONLINE;
+               aad->status = ICQ_ONLINE;
                buddy_login(ea);
        }
-       else if(!online && (aad->status != icq_OFFLINE))
+       else if(!online && (aad->status != ICQ_OFFLINE))
        {
-               aad->status = icq_OFFLINE;
+               aad->status = ICQ_OFFLINE;
                buddy_logoff(ea);
        }
 
        if (online && unavailable)
-               aad->status = icq_AWAY;
+               aad->status = ICQ_AWAY;
        else if (online)
-               aad->status = icq_ONLINE;
+               aad->status = ICQ_ONLINE;
 
        aad->evil = evil;
        aad->idle_time = idle;
@@ -473,7 +473,7 @@
                struct eb_icq_account_data * aad = g_new0(struct 
eb_icq_account_data, 1);
                strncpy(ea->handle, user, 255);
                ea->service_id = ela->service_id;
-               aad->status = icq_OFFLINE;
+               aad->status = ICQ_OFFLINE;
                ea->protocol_account_data = aad;
 
                add_unknown(ea);
@@ -560,7 +560,7 @@
                        struct eb_icq_account_data * aad = g_new0(struct 
eb_icq_account_data, 1);
                        strncpy(ea->handle, user, 255);
                        ea->service_id = ela->service_id;
-                       aad->status = icq_OFFLINE;
+                       aad->status = ICQ_OFFLINE;
                        ea->protocol_account_data = aad;
                        
                        add_unknown(ea);
@@ -590,8 +590,8 @@
        struct eb_icq_account_data * aad = account->protocol_account_data;
 
        if(ref_count <= 0 )
-               aad->status = icq_OFFLINE;
-       return aad->status != icq_OFFLINE;
+               aad->status = ICQ_OFFLINE;
+       return aad->status != ICQ_OFFLINE;
 }
 
 static void eb_icq_accept_invite( eb_local_account * account, void * 
invitation )
@@ -662,7 +662,7 @@
        a->protocol_account_data = aad;
        strncpy(a->handle, account, 255);
        a->service_id = SERVICE_INFO.protocol_id;
-       aad->status = icq_OFFLINE;
+       aad->status = ICQ_OFFLINE;
 
        return a;
 }
@@ -712,23 +712,36 @@
        alad = (struct eb_icq_local_account_data 
*)account->protocol_local_account_data;
 
 
-       alad->conn = icqtoc_signon( account->handle, alad->password,
-                             icq_server, atoi(icq_port), alad->icq_info);
+       /*alad->connect_tag = activity_window_new(buff);*/
 
+       icqtoc_signon( account->handle, alad->password,
+                             icq_server, atoi(icq_port), alad->icq_info);
+       
+       progress_window_close (alad->connect_tag);
+}
 
+static void eb_icq_logged_in (toc_conn *conn) 
+{
+       struct eb_icq_local_account_data * alad;
+       eb_local_account *ela = find_local_account_by_handle(conn->username, 
SERVICE_INFO.protocol_id);
+       alad = (struct eb_icq_local_account_data 
*)ela->protocol_local_account_data;
+       alad->conn = conn;
+       
        if(!alad->conn)
        {
                g_warning("FAILED TO CONNECT TO icq SERVER!!!!!!!!!!!!");
+               eb_icq_logout(ela);
                return;
        }
        if(alad->conn->fd == -1 )
        {
                g_warning("eb_icq UNKNOWN CONNECTION PROBLEM");
+               eb_icq_logout(ela);
                return;
        }
        eb_debug(DBG_TOC, "eb_icq_login %d %d\n", alad->conn->fd, 
alad->conn->seq_num );
-       alad->conn->account = account;
-       alad->status = icq_ONLINE;
+       alad->conn->account = ela;
+       alad->status = ICQ_ONLINE;
        ref_count++;
        alad->input = eb_input_add(alad->conn->fd, EB_INPUT_READ, 
eb_icq_callback, alad);
                
@@ -736,16 +749,16 @@
 
        is_setting_state = 1;
        
-       if(account->status_menu)
-               eb_set_active_menu_status(account->status_menu, icq_ONLINE);
+       if(ela->status_menu)
+               eb_set_active_menu_status(ela->status_menu, ICQ_ONLINE);
 
        is_setting_state = 0;
-       account->connecting = 0;
-       account->connected = 1;
+       ela->connecting = 0;
+       ela->connected = 1;
        
-       icqtoc_add_buddy(alad->conn,account->handle,
+       icqtoc_add_buddy(alad->conn,ela->handle,
                        "Unknown");
-       icq_buddies = l_list_append(icq_buddies, account->handle);
+       icq_buddies = l_list_append(icq_buddies, ela->handle);
                                                                  
 }
 
@@ -771,23 +784,20 @@
                icqtoc_signoff(alad->conn);
                g_free(alad->conn);
                alad->conn = NULL;
-       }
-       else
-       {
-               return;
+               ref_count--;
        }
 #if 0
        if(account->status_menu)
-               eb_set_active_menu_status(account->status_menu, icq_ONLINE);
+               eb_set_active_menu_status(account->status_menu, ICQ_ONLINE);
 #endif
-       alad->status=icq_OFFLINE;
-       ref_count--;
+       alad->status=ICQ_OFFLINE;
+       
        account->connected = 0;
 
        is_setting_state = 1;
 
        if(account->status_menu)
-               eb_set_active_menu_status(account->status_menu, icq_OFFLINE);
+               eb_set_active_menu_status(account->status_menu, ICQ_OFFLINE);
 
        is_setting_state = 0;
        
@@ -845,7 +855,7 @@
 
     ela->service_id = SERVICE_INFO.protocol_id;
     ela->protocol_local_account_data = ala;
-       ala->status = icq_OFFLINE;
+       ala->status = ICQ_OFFLINE;
        eb_debug(DBG_TOC, "eb_icq_read_local_config: returning %p\n", ela);
 
     return ela;
@@ -871,7 +881,7 @@
     eb_account * ea = g_new0(eb_account, 1 );
     struct eb_icq_account_data * aad =  g_new0(struct eb_icq_account_data,1);
        
-       aad->status = icq_OFFLINE;
+       aad->status = ICQ_OFFLINE;
 
     /*you know, eventually error handling should be put in here*/
     strncpy(ea->handle, value_pair_get_value( config, "NAME"), 255);
@@ -928,13 +938,13 @@
        }
 
        switch(state) {
-       case icq_ONLINE:
+       case ICQ_ONLINE:
                if (account->connected == 0 && account->connecting == 0) {
                        eb_icq_login(account);
                }
                icqtoc_set_away(alad->conn, NULL);
                break;
-       case icq_AWAY:
+       case ICQ_AWAY:
                if (account->connected == 0 && account->connecting == 0) {
                        eb_icq_login(account);
                }
@@ -945,7 +955,7 @@
                } else
                        icqtoc_set_away(alad->conn, _("User is currently 
away"));
                break;
-       case icq_OFFLINE:
+       case ICQ_OFFLINE:
                if (account->connected == 1) {
                        eb_icq_logout(account);
                }
@@ -962,11 +972,11 @@
 
        if (message) {
                if(account->status_menu)
-                       eb_set_active_menu_status(account->status_menu, 
icq_AWAY);
+                       eb_set_active_menu_status(account->status_menu, 
ICQ_AWAY);
                icqtoc_set_away(alad->conn, message);
        } else {
                if(account->status_menu)
-                       eb_set_active_menu_status(account->status_menu, 
icq_ONLINE);
+                       eb_set_active_menu_status(account->status_menu, 
ICQ_ONLINE);
        }
 }
 
@@ -976,7 +986,7 @@
        
        aad = account->protocol_account_data;
 
-       if (aad->status == icq_ONLINE)
+       if (aad->status == ICQ_ONLINE)
                return icq_online_xpm;
        else
                return icq_away_xpm;
@@ -1187,7 +1197,8 @@
        icqtoc_user_info = eb_icq_user_info;
        icqtoc_new_user = eb_icq_new_user;
        icqtoc_new_group = eb_icq_new_group;
-
+       icqtoc_logged_in = eb_icq_logged_in;
+       
        sc = g_new0( struct service_callbacks, 1 );
        sc->query_connected = eb_icq_query_connected;
        sc->login = eb_icq_login;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]