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);