src/connection.c

changeset 6485
3c7ba18e32f1
parent 6468
7500be54656d
child 6507
ce503ec61af7
equal deleted inserted replaced
6484:b8558c29e331 6485:3c7ba18e32f1
27 #include "log.h" 27 #include "log.h"
28 #include "notify.h" 28 #include "notify.h"
29 #include "prefs.h" 29 #include "prefs.h"
30 #include "request.h" 30 #include "request.h"
31 #include "server.h" 31 #include "server.h"
32 #include "signals.h"
32 #include "sound.h" 33 #include "sound.h"
33 #include "util.h" 34 #include "util.h"
34 35
35 static GList *connections = NULL; 36 static GList *connections = NULL;
36 static GList *connections_connecting = NULL; 37 static GList *connections_connecting = NULL;
37 static GaimConnectionUiOps *connection_ui_ops = NULL; 38 static GaimConnectionUiOps *connection_ui_ops = NULL;
38 39
40 static int connections_handle;
39 41
40 GaimConnection * 42 GaimConnection *
41 gaim_connection_new(GaimAccount *account) 43 gaim_connection_new(GaimAccount *account)
42 { 44 {
43 GaimConnection *gc; 45 GaimConnection *gc;
149 return; 151 return;
150 } 152 }
151 153
152 gaim_connection_set_state(gc, GAIM_CONNECTING); 154 gaim_connection_set_state(gc, GAIM_CONNECTING);
153 155
156 gaim_signal_emit(gaim_connections_get_handle(), "signing-on", gc);
157
154 gaim_debug(GAIM_DEBUG_INFO, "connection", "Calling serv_login\n"); 158 gaim_debug(GAIM_DEBUG_INFO, "connection", "Calling serv_login\n");
155 159
156 connections = g_list_append(connections, gc); 160 connections = g_list_append(connections, gc);
157 161
158 serv_login(account); 162 serv_login(account);
178 182
179 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { 183 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) {
180 if (gaim_connection_get_state(gc) != GAIM_CONNECTING) 184 if (gaim_connection_get_state(gc) != GAIM_CONNECTING)
181 gaim_blist_remove_account(gaim_connection_get_account(gc)); 185 gaim_blist_remove_account(gaim_connection_get_account(gc));
182 186
187 gaim_signal_emit(gaim_connections_get_handle(), "signing-off", gc);
188
183 serv_close(gc); 189 serv_close(gc);
184 190
185 connections = g_list_remove(connections, gc); 191 connections = g_list_remove(connections, gc);
186 192
187 gaim_connection_set_state(gc, GAIM_DISCONNECTED); 193 gaim_connection_set_state(gc, GAIM_DISCONNECTED);
188 194
189 gaim_event_broadcast(event_signoff, gc); 195 gaim_signal_emit(gaim_connections_get_handle(), "signed-off", gc);
196
190 system_log(log_signoff, gc, NULL, 197 system_log(log_signoff, gc, NULL,
191 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); 198 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON);
192 199
193 /* 200 /*
194 * XXX This is a hack! Remove this and replace it with a better event 201 * XXX This is a hack! Remove this and replace it with a better event
272 GaimWindow *win = (GaimWindow *)wins->data; 279 GaimWindow *win = (GaimWindow *)wins->data;
273 gaim_conversation_update(gaim_window_get_conversation_at(win, 0), 280 gaim_conversation_update(gaim_window_get_conversation_at(win, 0),
274 GAIM_CONV_ACCOUNT_ONLINE); 281 GAIM_CONV_ACCOUNT_ONLINE);
275 } 282 }
276 283
277 gaim_event_broadcast(event_signon, gc); 284 gaim_signal_emit(gaim_connections_get_handle(), "signed-on", gc);
285
278 system_log(log_signon, gc, NULL, 286 system_log(log_signon, gc, NULL,
279 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); 287 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON);
280 288
281 #if 0 289 #if 0
282 /* away option given? */ 290 /* away option given? */
445 { 453 {
446 return connections_connecting; 454 return connections_connecting;
447 } 455 }
448 456
449 void 457 void
458 gaim_connections_init(void)
459 {
460 void *handle = gaim_connections_get_handle();
461
462 gaim_signal_register(handle, "signing-on", gaim_marshal_VOID__POINTER);
463 gaim_signal_register(handle, "signed-on", gaim_marshal_VOID__POINTER);
464 gaim_signal_register(handle, "signing-off", gaim_marshal_VOID__POINTER);
465 gaim_signal_register(handle, "signed-off", gaim_marshal_VOID__POINTER);
466 }
467
468 void
469 gaim_connections_uninit(void)
470 {
471 gaim_signals_unregister_by_instance(gaim_connections_get_handle());
472 }
473
474 void *
475 gaim_connections_get_handle(void)
476 {
477 return &connections_handle;
478 }
479
480 void
450 gaim_set_connection_ui_ops(GaimConnectionUiOps *ops) 481 gaim_set_connection_ui_ops(GaimConnectionUiOps *ops)
451 { 482 {
452 connection_ui_ops = ops; 483 connection_ui_ops = ops;
453 } 484 }
454 485
455 GaimConnectionUiOps * 486 GaimConnectionUiOps *
456 gaim_get_connection_ui_ops(void) 487 gaim_get_connection_ui_ops(void)
457 { 488 {
458 return connection_ui_ops; 489 return connection_ui_ops;
459 } 490 }
460

mercurial