comparison libpurple/connection.c @ 27666:a08e84032814

merge of '2348ff22f0ff3453774b8b25b36238465580c609' and 'e76f11543c2a4aa05bdf584f087cbe3439029661'
author Paul Aurich <paul@darkrain42.org>
date Sun, 12 Jul 2009 05:43:38 +0000
parents aa2a2eae9c3e
children 815d9ce1a8b0
comparison
equal deleted inserted replaced
27186:048bcf41deef 27666:a08e84032814
307 purple_account_set_connection(account, NULL); 307 purple_account_set_connection(account, NULL);
308 308
309 g_free(gc->password); 309 g_free(gc->password);
310 g_free(gc->display_name); 310 g_free(gc->display_name);
311 311
312 if (gc->disconnect_timeout) 312 if (gc->disconnect_timeout > 0)
313 purple_timeout_remove(gc->disconnect_timeout); 313 purple_timeout_remove(gc->disconnect_timeout);
314 314
315 PURPLE_DBUS_UNREGISTER_POINTER(gc); 315 PURPLE_DBUS_UNREGISTER_POINTER(gc);
316 g_free(gc); 316 g_free(gc);
317 } 317 }
513 } 513 }
514 514
515 static gboolean 515 static gboolean
516 purple_connection_disconnect_cb(gpointer data) 516 purple_connection_disconnect_cb(gpointer data)
517 { 517 {
518 PurpleAccount *account = data; 518 PurpleAccount *account;
519 char *password = g_strdup(purple_account_get_password(account)); 519 PurpleConnection *gc;
520 char *password;
521
522 account = data;
523 gc = purple_account_get_connection(account);
524
525 gc->disconnect_timeout = 0;
526
527 password = g_strdup(purple_account_get_password(account));
520 purple_account_disconnect(account); 528 purple_account_disconnect(account);
521 purple_account_set_password(account, password); 529 purple_account_set_password(account, password);
522 g_free(password); 530 g_free(password);
531
523 return FALSE; 532 return FALSE;
524 } 533 }
525 534
526 void 535 void
527 purple_connection_error(PurpleConnection *gc, const char *text) 536 purple_connection_error(PurpleConnection *gc, const char *text)
562 purple_debug_error("connection", "purple_connection_error_reason called with NULL description\n"); 571 purple_debug_error("connection", "purple_connection_error_reason called with NULL description\n");
563 description = _("Unknown error"); 572 description = _("Unknown error");
564 } 573 }
565 574
566 /* If we've already got one error, we don't need any more */ 575 /* If we've already got one error, we don't need any more */
567 if (gc->disconnect_timeout) 576 if (gc->disconnect_timeout > 0)
568 return; 577 return;
569 578
570 gc->wants_to_die = purple_connection_error_is_fatal (reason); 579 gc->wants_to_die = purple_connection_error_is_fatal (reason);
571 580
572 ops = purple_connections_get_ui_ops(); 581 ops = purple_connections_get_ui_ops();