Mercurial > pidgin
comparison libpurple/protocols/jabber/jabber.c @ 26537:d6a863df7884
propagate from branch 'im.pidgin.pidgin' (head 079a5ca1aa110ee9f6661eba31e5ea3f0b5a07e7)
to branch 'im.pidgin.cpw.darkrain42.xmpp.avatars' (head 120c877c682a4ab854a6b27743504a054b3cef23)
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sat, 11 Apr 2009 04:34:47 +0000 |
parents | df9042312063 242a8c97270b |
children | 7488da258ac8 |
comparison
equal
deleted
inserted
replaced
26536:d7bd1431b989 | 26537:d6a863df7884 |
---|---|
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" |
698 { | 699 { |
699 PurpleConnection *gc = purple_account_get_connection(account); | 700 PurpleConnection *gc = purple_account_get_connection(account); |
700 const char *connect_server = purple_account_get_string(account, | 701 const char *connect_server = purple_account_get_string(account, |
701 "connect_server", ""); | 702 "connect_server", ""); |
702 JabberStream *js; | 703 JabberStream *js; |
704 PurpleStoredImage *image; | |
703 JabberBuddy *my_jb = NULL; | 705 JabberBuddy *my_jb = NULL; |
704 | 706 |
705 gc->flags |= PURPLE_CONNECTION_HTML | | 707 gc->flags |= PURPLE_CONNECTION_HTML | |
706 PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY; | 708 PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY; |
707 js = gc->proto_data = g_new0(JabberStream, 1); | 709 js = gc->proto_data = g_new0(JabberStream, 1); |
736 if (!js->user->domain || *(js->user->domain) == '\0') { | 738 if (!js->user->domain || *(js->user->domain) == '\0') { |
737 purple_connection_error_reason (gc, | 739 purple_connection_error_reason (gc, |
738 PURPLE_CONNECTION_ERROR_INVALID_SETTINGS, | 740 PURPLE_CONNECTION_ERROR_INVALID_SETTINGS, |
739 _("Invalid XMPP ID. Domain must be set.")); | 741 _("Invalid XMPP ID. Domain must be set.")); |
740 return; | 742 return; |
743 } | |
744 | |
745 /* | |
746 * Calculate the avatar hash for our current image so we know (when we | |
747 * fetch our vCard and PEP avatar) if we should send our avatar to the | |
748 * server. | |
749 */ | |
750 if ((image = purple_buddy_icons_find_account_icon(account))) { | |
751 js->initial_avatar_hash = jabber_calculate_data_sha1sum(purple_imgstore_get_data(image), | |
752 purple_imgstore_get_size(image)); | |
753 purple_imgstore_unref(image); | |
741 } | 754 } |
742 | 755 |
743 if((my_jb = jabber_buddy_find(js, purple_account_get_username(account), TRUE))) | 756 if((my_jb = jabber_buddy_find(js, purple_account_get_username(account), TRUE))) |
744 my_jb->subscription |= JABBER_SUB_BOTH; | 757 my_jb->subscription |= JABBER_SUB_BOTH; |
745 | 758 |
1387 } | 1400 } |
1388 | 1401 |
1389 g_free(js->stream_id); | 1402 g_free(js->stream_id); |
1390 if(js->user) | 1403 if(js->user) |
1391 jabber_id_free(js->user); | 1404 jabber_id_free(js->user); |
1405 g_free(js->initial_avatar_hash); | |
1392 g_free(js->avatar_hash); | 1406 g_free(js->avatar_hash); |
1393 | 1407 |
1394 purple_circ_buffer_destroy(js->write_buffer); | 1408 purple_circ_buffer_destroy(js->write_buffer); |
1395 if(js->writeh) | 1409 if(js->writeh) |
1396 purple_input_remove(js->writeh); | 1410 purple_input_remove(js->writeh); |