Mercurial > pidgin
comparison libpurple/protocols/yahoo/libymsg.c @ 28463: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
28462:61fd49ad0def | 28463: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 |