| 706 { |
707 { |
| 707 PurpleConnection *gc = purple_account_get_connection(account); |
708 PurpleConnection *gc = purple_account_get_connection(account); |
| 708 const char *connect_server = purple_account_get_string(account, |
709 const char *connect_server = purple_account_get_string(account, |
| 709 "connect_server", ""); |
710 "connect_server", ""); |
| 710 JabberStream *js; |
711 JabberStream *js; |
| |
712 PurpleStoredImage *image; |
| 711 JabberBuddy *my_jb = NULL; |
713 JabberBuddy *my_jb = NULL; |
| 712 |
714 |
| 713 gc->flags |= PURPLE_CONNECTION_HTML | |
715 gc->flags |= PURPLE_CONNECTION_HTML | |
| 714 PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY; |
716 PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY; |
| 715 js = gc->proto_data = g_new0(JabberStream, 1); |
717 js = gc->proto_data = g_new0(JabberStream, 1); |
| 740 if (!js->user->domain || *(js->user->domain) == '\0') { |
742 if (!js->user->domain || *(js->user->domain) == '\0') { |
| 741 purple_connection_error_reason (gc, |
743 purple_connection_error_reason (gc, |
| 742 PURPLE_CONNECTION_ERROR_INVALID_SETTINGS, |
744 PURPLE_CONNECTION_ERROR_INVALID_SETTINGS, |
| 743 _("Invalid XMPP ID. Domain must be set.")); |
745 _("Invalid XMPP ID. Domain must be set.")); |
| 744 return; |
746 return; |
| |
747 } |
| |
748 |
| |
749 /* |
| |
750 * Calculate the avatar hash for our current image so we know (when we |
| |
751 * fetch our vCard and PEP avatar) if we should send our avatar to the |
| |
752 * server. |
| |
753 */ |
| |
754 if ((image = purple_buddy_icons_find_account_icon(account))) { |
| |
755 js->initial_avatar_hash = jabber_calculate_data_sha1sum(purple_imgstore_get_data(image), |
| |
756 purple_imgstore_get_size(image)); |
| |
757 purple_imgstore_unref(image); |
| 745 } |
758 } |
| 746 |
759 |
| 747 if((my_jb = jabber_buddy_find(js, purple_account_get_username(account), TRUE))) |
760 if((my_jb = jabber_buddy_find(js, purple_account_get_username(account), TRUE))) |
| 748 my_jb->subscription |= JABBER_SUB_BOTH; |
761 my_jb->subscription |= JABBER_SUB_BOTH; |
| 749 |
762 |
| 1379 } |
1392 } |
| 1380 |
1393 |
| 1381 g_free(js->stream_id); |
1394 g_free(js->stream_id); |
| 1382 if(js->user) |
1395 if(js->user) |
| 1383 jabber_id_free(js->user); |
1396 jabber_id_free(js->user); |
| |
1397 g_free(js->initial_avatar_hash); |
| 1384 g_free(js->avatar_hash); |
1398 g_free(js->avatar_hash); |
| 1385 |
1399 |
| 1386 purple_circ_buffer_destroy(js->write_buffer); |
1400 purple_circ_buffer_destroy(js->write_buffer); |
| 1387 if(js->writeh) |
1401 if(js->writeh) |
| 1388 purple_input_remove(js->writeh); |
1402 purple_input_remove(js->writeh); |