ayttm-commits
[Top][All Lists]
Advanced

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

[Ayttm-commits] CVS: ayttm/modules/workwizu workwizu.c,1.33,1.34


From: Colin Leroy <address@hidden>
Subject: [Ayttm-commits] CVS: ayttm/modules/workwizu workwizu.c,1.33,1.34
Date: Mon, 24 Mar 2003 08:44:54 -0500

Update of /cvsroot/ayttm/ayttm/modules/workwizu
In directory subversions:/tmp/cvs-serv32332/modules/workwizu

Modified Files:
        workwizu.c 
Log Message:
async connect for workwizu


Index: workwizu.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/modules/workwizu/workwizu.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- workwizu.c  17 Mar 2003 14:44:55 -0000      1.33
+++ workwizu.c  24 Mar 2003 13:44:52 -0000      1.34
@@ -63,6 +63,7 @@
 #include "plugin_api.h"
 #include "smileys.h"
 #include "globals.h"
+#include "tcp_util.h"
 
 #include "pixmaps/workwizu_online.xpm"
 #include "pixmaps/workwizu_away.xpm"
@@ -433,6 +434,8 @@
 {
        char *line;
        eb_local_account *account = 
find_local_account_by_handle(my_user->username, SERVICE_INFO.protocol_id);
+       if(!readable)
+               return;
        switch(connstate) {
                case CONN_CLOSED: 
                        eb_debug(DBG_WWZ,"uh? conn is closed\n");
@@ -440,7 +443,7 @@
                case CONN_WAITING_CHALLENGE:
                        line = sock_read(sock);
                        if (line == NULL) {
-                               do_error_dialog(_("Server doesn't answer"), 
+                               do_error_dialog(_("Server doesn't answer."), 
                                                _("Workwizu Error"));
                                eb_workwizu_logout(account);
                                return;
@@ -453,7 +456,7 @@
                case CONN_WAITING_USERINFO:
                        line = sock_read(sock);
                        if (line == NULL) {
-                               do_error_dialog(_("Bad authentication"), 
+                               do_error_dialog(_("Bad authentication."), 
                                                _("Workwizu Error"));
                                eb_workwizu_logout(account);
                                return;
@@ -609,26 +612,22 @@
   return(s);
 }
 
-void eb_workwizu_login (eb_local_account *account)
+void eb_workwizu_connected (int fd, int error, void *data)
 {
+       eb_local_account *account = (eb_local_account *)data;
        wwz_account_data *wad = (wwz_account_data *) 
account->protocol_local_account_data;
-       if (account->connected) 
-               return;
-       
-       my_user = g_new0(wwz_user, 1);
-       strcpy(my_user->username, account->handle);
-       strcpy(my_user->password, wad->password);
 
-       my_user->typing_handler = -1;
+       wad->sock = fd;
        
-       eb_debug(DBG_WWZ, "Logging in\n");
-       wad->sock = connect_socket(server, atoi(port));
        if (wad->sock == -1) {
                eb_debug(DBG_WWZ, "wad->sock=-1 !\n");
+               do_error_dialog(_("Server doesn't answer."), 
+                                               _("Workwizu Error"));
+               account->connecting=0;
+               eb_workwizu_logout(account);
                return;
        }
        ref_count++;
-       register_sock(wad->sock, 1, 0);
        if(account->status_menu)
        {
                /* Make sure set_current_state doesn't call us back */
@@ -636,7 +635,35 @@
                eb_set_active_menu_status(account->status_menu, WWZ_ONLINE);
        }
        account->connected=1;
+       account->connecting=0;
        connstate = CONN_WAITING_CHALLENGE;
+       register_sock(wad->sock, 1, 0);
+}
+
+void eb_workwizu_login (eb_local_account *account)
+{
+       wwz_account_data *wad = (wwz_account_data *) 
account->protocol_local_account_data;
+       if (account->connected || account->connecting) 
+               return;
+       
+       account->connecting = 1;
+       my_user = g_new0(wwz_user, 1);
+       strcpy(my_user->username, account->handle);
+       strcpy(my_user->password, wad->password);
+
+       my_user->typing_handler = -1;
+       
+       eb_debug(DBG_WWZ, "Logging in\n");
+       if (ay_socket_new_async(server, atoi(port), 
+                       (ay_socket_callback)eb_workwizu_connected, account) < 
0) {
+               eb_debug(DBG_WWZ, "cant connect socket");
+               do_error_dialog(_("Server doesn't answer."), 
+                                               _("Workwizu Error"));
+               account->connecting=0;
+               eb_workwizu_logout(account);
+               return;
+       }
+       
 }
 
 static void clean_up (int sock) 





reply via email to

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