libpurple/protocols/jabber/jabber.c

branch
cpw.darkrain42.xmpp.avatars
changeset 26530
8e0982e7198a
parent 26086
f26f6451c701
parent 26090
2b9ffd42e91f
child 26941
f01a88534d49
equal deleted inserted replaced
26528:3820f77c89fa 26530:8e0982e7198a
26 #include "cmds.h" 26 #include "cmds.h"
27 #include "connection.h" 27 #include "connection.h"
28 #include "conversation.h" 28 #include "conversation.h"
29 #include "debug.h" 29 #include "debug.h"
30 #include "dnssrv.h" 30 #include "dnssrv.h"
31 #include "imgstore.h"
31 #include "message.h" 32 #include "message.h"
32 #include "notify.h" 33 #include "notify.h"
33 #include "pluginpref.h" 34 #include "pluginpref.h"
34 #include "privacy.h" 35 #include "privacy.h"
35 #include "proxy.h" 36 #include "proxy.h"
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);

mercurial