comparison libpurple/protocols/yahoo/libymsg.c @ 28836:7b88cc6c3f7a

Cannot send a file to a federated user on yahoo.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sun, 01 Nov 2009 02:56:44 +0000
parents 380c77dad7b4
children 99b9c9ee7363
comparison
equal deleted inserted replaced
28835:61fd49ad0def 28836:7b88cc6c3f7a
4365 g_free(msg2); 4365 g_free(msg2);
4366 return -E2BIG; 4366 return -E2BIG;
4367 } 4367 }
4368 } 4368 }
4369 4369
4370 if (who[3] == '/') { 4370 fed = yahoo_get_federation_from_name(who);
4371 if (!g_ascii_strncasecmp(who, "msn/", 4)) {
4372 fed = YAHOO_FEDERATION_MSN;
4373 }
4374 else if (!g_ascii_strncasecmp(who, "ocs/", 4)) {
4375 fed = YAHOO_FEDERATION_OCS;
4376 }
4377 else if (!g_ascii_strncasecmp(who, "ibm/", 4)) {
4378 fed = YAHOO_FEDERATION_IBM;
4379 }
4380 }
4381 4371
4382 if (who[0] == '+') { 4372 if (who[0] == '+') {
4383 /* we have an sms to be sent */ 4373 /* we have an sms to be sent */
4384 gchar *carrier = NULL; 4374 gchar *carrier = NULL;
4385 const char *alias = NULL; 4375 const char *alias = NULL;
4507 YahooData *yd = gc->proto_data; 4497 YahooData *yd = gc->proto_data;
4508 struct yahoo_p2p_data *p2p_data; 4498 struct yahoo_p2p_data *p2p_data;
4509 YahooFederation fed = YAHOO_FEDERATION_NONE; 4499 YahooFederation fed = YAHOO_FEDERATION_NONE;
4510 struct yahoo_packet *pkt = NULL; 4500 struct yahoo_packet *pkt = NULL;
4511 4501
4512 if (who[3] == '/') { 4502 fed = yahoo_get_federation_from_name(who);
4513 if (!g_ascii_strncasecmp(who, "msn/", 4)) {
4514 fed = YAHOO_FEDERATION_MSN;
4515 }
4516 else if (!g_ascii_strncasecmp(who, "ocs/", 4)) {
4517 fed = YAHOO_FEDERATION_OCS;
4518 }
4519 else if (!g_ascii_strncasecmp(who, "ibm/", 4)) {
4520 fed = YAHOO_FEDERATION_IBM;
4521 }
4522 }
4523 4503
4524 /* Don't do anything if sms is being typed */ 4504 /* Don't do anything if sms is being typed */
4525 if( strncmp(who, "+", 1) == 0 ) 4505 if( strncmp(who, "+", 1) == 0 )
4526 return 0; 4506 return 0;
4527 4507
4809 fed_bname = bname = purple_buddy_get_name(buddy); 4789 fed_bname = bname = purple_buddy_get_name(buddy);
4810 if (!purple_privacy_check(purple_connection_get_account(gc), bname)) 4790 if (!purple_privacy_check(purple_connection_get_account(gc), bname))
4811 return; 4791 return;
4812 4792
4813 f = yahoo_friend_find(gc, bname); 4793 f = yahoo_friend_find(gc, bname);
4814 if (bname[3] == '/') { 4794 fed = yahoo_get_federation_from_name(bname);
4795 if (fed != YAHOO_FEDERATION_NONE)
4815 fed_bname += 4; 4796 fed_bname += 4;
4816 if (!g_ascii_strncasecmp(bname, "msn/", 4)) {
4817 fed = YAHOO_FEDERATION_MSN;
4818 }
4819 else if (!g_ascii_strncasecmp(bname, "ocs/", 4)) {
4820 fed = YAHOO_FEDERATION_OCS;
4821 }
4822 else if (!g_ascii_strncasecmp(bname, "ibm/", 4)) {
4823 fed = YAHOO_FEDERATION_IBM;
4824 }
4825 }
4826 4797
4827 g = purple_buddy_get_group(buddy); 4798 g = purple_buddy_get_group(buddy);
4828 if (g) 4799 if (g)
4829 group = purple_group_get_name(g); 4800 group = purple_group_get_name(g);
4830 else 4801 else
4932 return; 4903 return;
4933 4904
4934 if (!who || who[0] == '\0') 4905 if (!who || who[0] == '\0')
4935 return; 4906 return;
4936 4907
4937 if (who[3] == '/') { 4908 fed = yahoo_get_federation_from_name(who);
4938 if (!g_ascii_strncasecmp(who, "msn/", 4)) { 4909
4939 fed = YAHOO_FEDERATION_MSN;
4940 }
4941 else if (!g_ascii_strncasecmp(who, "ocs/", 4)) {
4942 fed = YAHOO_FEDERATION_OCS;
4943 }
4944 else if (!g_ascii_strncasecmp(who, "ibm/", 4)) {
4945 fed = YAHOO_FEDERATION_IBM;
4946 }
4947 }
4948
4949 pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, YAHOO_STATUS_AVAILABLE, yd->session_id); 4910 pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, YAHOO_STATUS_AVAILABLE, yd->session_id);
4950 4911
4951 if(fed) 4912 if(fed)
4952 yahoo_packet_hash(pkt, "ssis", 1, purple_connection_get_display_name(gc), 7, who+4, 241, fed, 13, "1"); 4913 yahoo_packet_hash(pkt, "ssis", 1, purple_connection_get_display_name(gc), 7, who+4, 241, fed, 13, "1");
4953 else 4914 else
4964 if (!yd->logged_in) 4925 if (!yd->logged_in)
4965 return; 4926 return;
4966 4927
4967 if (!who || who[0] == '\0') 4928 if (!who || who[0] == '\0')
4968 return; 4929 return;
4969 if (who[3] == '/') { 4930 fed = yahoo_get_federation_from_name(who);
4970 if (!g_ascii_strncasecmp(who, "msn/", 4)) { 4931
4971 fed = YAHOO_FEDERATION_MSN;
4972 }
4973 else if (!g_ascii_strncasecmp(who, "ocs/", 4)) {
4974 fed = YAHOO_FEDERATION_OCS;
4975 }
4976 else if (!g_ascii_strncasecmp(who, "ibm/", 4)) {
4977 fed = YAHOO_FEDERATION_IBM;
4978 }
4979 }
4980 pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, YAHOO_STATUS_AVAILABLE, yd->session_id); 4932 pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, YAHOO_STATUS_AVAILABLE, yd->session_id);
4981 4933
4982 if(fed) 4934 if(fed)
4983 yahoo_packet_hash(pkt, "ssis", 1, purple_connection_get_display_name(gc), 7, who+4, 241, fed, 13, "2"); 4935 yahoo_packet_hash(pkt, "ssis", 1, purple_connection_get_display_name(gc), 7, who+4, 241, fed, 13, "2");
4984 else 4936 else