comparison libpurple/protocols/yahoo/yahoo.c @ 27187:52afd38e64d4

Create a string only when necessary. Fixes a small possible leak.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 27 Jun 2009 09:08:56 +0000
parents 48df71b5cfd1
children c0f1ae3e16e0
comparison
equal deleted inserted replaced
27186:25db53cfc12c 27187:52afd38e64d4
743 YahooFriend *f = NULL; 743 YahooFriend *f = NULL;
744 GSList *l = pkt->hash; 744 GSList *l = pkt->hash;
745 gint val_11 = 0; 745 gint val_11 = 0;
746 struct yahoo_data *yd = gc->proto_data; 746 struct yahoo_data *yd = gc->proto_data;
747 gboolean msn = FALSE; 747 gboolean msn = FALSE;
748 char *msn_from = NULL;
749 748
750 account = purple_connection_get_account(gc); 749 account = purple_connection_get_account(gc);
751 750
752 while (l) { 751 while (l) {
753 struct yahoo_pair *pair = l->data; 752 struct yahoo_pair *pair = l->data;
776 /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ 775 /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */
777 g_hash_table_remove(yd->peers, from); 776 g_hash_table_remove(yd->peers, from);
778 return; 777 return;
779 } 778 }
780 779
781 if(msn)
782 msn_from = g_strconcat("msn/", from, NULL);
783
784 if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING")) 780 if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING"))
785 && (purple_privacy_check(account, from))) 781 && (purple_privacy_check(account, from)))
786 { 782 {
787 if(msn) { 783 if(msn) {
784 char *msn_from = g_strconcat("msn/", from, NULL);
788 if (*stat == '1') 785 if (*stat == '1')
789 serv_got_typing(gc, msn_from, 0, PURPLE_TYPING); 786 serv_got_typing(gc, msn_from, 0, PURPLE_TYPING);
790 else 787 else
791 serv_got_typing_stopped(gc, msn_from); 788 serv_got_typing_stopped(gc, msn_from);
789 g_free(msn_from);
792 } 790 }
793 else { 791 else {
794 if (*stat == '1') 792 if (*stat == '1')
795 serv_got_typing(gc, from, 0, PURPLE_TYPING); 793 serv_got_typing(gc, from, 0, PURPLE_TYPING);
796 else 794 else
820 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, from, account); 818 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, from, account);
821 char *buf = g_strdup_printf(_("%s has sent you a webcam invite, which is not yet supported."), from); 819 char *buf = g_strdup_printf(_("%s has sent you a webcam invite, which is not yet supported."), from);
822 purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM|PURPLE_MESSAGE_NOTIFY, time(NULL)); 820 purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM|PURPLE_MESSAGE_NOTIFY, time(NULL));
823 g_free(buf); 821 g_free(buf);
824 } 822 }
825
826 g_free(msn_from);
827 } 823 }
828 824
829 825
830 struct _yahoo_im { 826 struct _yahoo_im {
831 char *from; 827 char *from;