| 539 norm_bud = g_strconcat("ocs/", temp, NULL); |
539 norm_bud = g_strconcat("ocs/", temp, NULL); |
| 540 break; |
540 break; |
| 541 case YAHOO_FEDERATION_IBM: |
541 case YAHOO_FEDERATION_IBM: |
| 542 norm_bud = g_strconcat("ibm/", temp, NULL); |
542 norm_bud = g_strconcat("ibm/", temp, NULL); |
| 543 break; |
543 break; |
| |
544 case YAHOO_FEDERATION_PBX: |
| |
545 norm_bud = g_strconcat("pbx/", temp, NULL); |
| |
546 break; |
| 544 case YAHOO_FEDERATION_NONE: |
547 case YAHOO_FEDERATION_NONE: |
| 545 norm_bud = g_strdup(temp); |
548 norm_bud = g_strdup(temp); |
| 546 break; |
549 break; |
| 547 } |
550 } |
| 548 if (yd->current_list15_grp) { |
551 if (yd->current_list15_grp) { |
| 831 fed_from = g_strconcat("ocs/", from, NULL); |
834 fed_from = g_strconcat("ocs/", from, NULL); |
| 832 break; |
835 break; |
| 833 case YAHOO_FEDERATION_IBM: |
836 case YAHOO_FEDERATION_IBM: |
| 834 fed_from = g_strconcat("ibm/", from, NULL); |
837 fed_from = g_strconcat("ibm/", from, NULL); |
| 835 break; |
838 break; |
| |
839 case YAHOO_FEDERATION_PBX: |
| |
840 fed_from = g_strconcat("pbx/", from, NULL); |
| |
841 break; |
| 836 case YAHOO_FEDERATION_NONE: |
842 case YAHOO_FEDERATION_NONE: |
| 837 default: |
843 default: |
| 838 break; |
844 break; |
| 839 } |
845 } |
| 840 |
846 |
| 842 serv_got_typing(gc, fed_from, 0, PURPLE_TYPING); |
848 serv_got_typing(gc, fed_from, 0, PURPLE_TYPING); |
| 843 else |
849 else |
| 844 serv_got_typing_stopped(gc, fed_from); |
850 serv_got_typing_stopped(gc, fed_from); |
| 845 |
851 |
| 846 if (fed_from != from) |
852 if (fed_from != from) |
| 847 g_free(fed_from); |
853 g_free(fed_from); |
| 848 |
854 |
| 849 } else if (!g_ascii_strncasecmp(msg, "GAME", strlen("GAME"))) { |
855 } else if (!g_ascii_strncasecmp(msg, "GAME", strlen("GAME"))) { |
| 850 PurpleBuddy *bud = purple_find_buddy(account, from); |
856 PurpleBuddy *bud = purple_find_buddy(account, from); |
| 851 |
857 |
| 852 if (!bud) { |
858 if (!bud) { |
| 997 im->fed_from = g_strconcat("ocs/",im->from, NULL); |
1003 im->fed_from = g_strconcat("ocs/",im->from, NULL); |
| 998 break; |
1004 break; |
| 999 case YAHOO_FEDERATION_IBM: |
1005 case YAHOO_FEDERATION_IBM: |
| 1000 im->fed_from = g_strconcat("ibm/",im->from, NULL); |
1006 im->fed_from = g_strconcat("ibm/",im->from, NULL); |
| 1001 break; |
1007 break; |
| |
1008 case YAHOO_FEDERATION_PBX: |
| |
1009 im->fed_from = g_strconcat("pbx/",im->from, NULL); |
| |
1010 break; |
| 1002 case YAHOO_FEDERATION_NONE: |
1011 case YAHOO_FEDERATION_NONE: |
| 1003 default: |
1012 default: |
| 1004 im->fed_from = g_strdup(im->from); |
1013 im->fed_from = g_strdup(im->from); |
| 1005 break; |
1014 break; |
| 1006 } |
1015 } |
| 1008 |
1017 |
| 1009 } |
1018 } |
| 1010 /* peer session id */ |
1019 /* peer session id */ |
| 1011 if (im && (pair->key == 11)) { |
1020 if (im && (pair->key == 11)) { |
| 1012 /* disconnect the peer if connected through p2p and sends wrong value for session id */ |
1021 /* disconnect the peer if connected through p2p and sends wrong value for session id */ |
| 1013 if( (im->fed == YAHOO_FEDERATION_NONE) && (pkt_type == YAHOO_PKT_TYPE_P2P) |
1022 if( (im->fed == YAHOO_FEDERATION_NONE) && (pkt_type == YAHOO_PKT_TYPE_P2P) |
| 1014 && (yd->session_id != strtol(pair->value, NULL, 10)) ) |
1023 && (yd->session_id != strtol(pair->value, NULL, 10)) ) |
| 1015 { |
1024 { |
| 1016 purple_debug_warning("yahoo","p2p: %s sent us message with wrong session id. Disconnecting p2p connection to peer\n", im->fed_from); |
1025 purple_debug_warning("yahoo","p2p: %s sent us message with wrong session id. Disconnecting p2p connection to peer\n", im->fed_from); |
| 1017 /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ |
1026 /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ |
| 1018 g_hash_table_remove(yd->peers, im->fed_from); |
1027 g_hash_table_remove(yd->peers, im->fed_from); |
| 4254 status = xmlnode_get_data(validate_data_child); |
4263 status = xmlnode_get_data(validate_data_child); |
| 4255 |
4264 |
| 4256 validate_data_child = xmlnode_get_child(validate_data_root, "carrier"); |
4265 validate_data_child = xmlnode_get_child(validate_data_root, "carrier"); |
| 4257 carrier = xmlnode_get_data(validate_data_child); |
4266 carrier = xmlnode_get_data(validate_data_child); |
| 4258 |
4267 |
| 4259 purple_debug_info("yahoo","SMS validate data: Mobile:%s, Status:%s, Carrier:%s\n", mobile_no, status, carrier); |
4268 purple_debug_info("yahoo", "SMS validate data: %s\n", webdata); |
| 4260 |
4269 |
| 4261 if( strcmp(status, "Valid") == 0) { |
4270 if (status && g_str_equal(status, "Valid") == 0) { |
| 4262 g_hash_table_insert(yd->sms_carrier, g_strdup_printf("+%s", mobile_no), g_strdup(carrier)); |
4271 g_hash_table_insert(yd->sms_carrier, |
| 4263 yahoo_send_im(sms_cb_data->gc, sms_cb_data->who, sms_cb_data->what, PURPLE_MESSAGE_SEND); |
4272 g_strdup_printf("+%s", mobile_no), g_strdup(carrier)); |
| 4264 } |
4273 yahoo_send_im(sms_cb_data->gc, sms_cb_data->who, |
| 4265 else { |
4274 sms_cb_data->what, PURPLE_MESSAGE_SEND); |
| 4266 g_hash_table_insert(yd->sms_carrier, g_strdup_printf("+%s", mobile_no), g_strdup("Unknown")); |
4275 } else { |
| 4267 purple_conversation_write(conv, NULL, _("Can't send SMS. Unknown mobile carrier."), PURPLE_MESSAGE_SYSTEM, time(NULL)); |
4276 g_hash_table_insert(yd->sms_carrier, |
| |
4277 g_strdup_printf("+%s", mobile_no), g_strdup("Unknown")); |
| |
4278 purple_conversation_write(conv, NULL, |
| |
4279 _("Can't send SMS. Unknown mobile carrier."), |
| |
4280 PURPLE_MESSAGE_SYSTEM, time(NULL)); |
| 4268 } |
4281 } |
| 4269 |
4282 |
| 4270 xmlnode_free(validate_data_child); |
4283 xmlnode_free(validate_data_child); |
| 4271 xmlnode_free(validate_data_root); |
4284 xmlnode_free(validate_data_root); |
| 4272 g_free(sms_cb_data->who); |
4285 g_free(sms_cb_data->who); |
| 4519 const char *fed_who = who; |
4533 const char *fed_who = who; |
| 4520 switch (fed) { |
4534 switch (fed) { |
| 4521 case YAHOO_FEDERATION_MSN: |
4535 case YAHOO_FEDERATION_MSN: |
| 4522 case YAHOO_FEDERATION_OCS: |
4536 case YAHOO_FEDERATION_OCS: |
| 4523 case YAHOO_FEDERATION_IBM: |
4537 case YAHOO_FEDERATION_IBM: |
| |
4538 case YAHOO_FEDERATION_PBX: |
| 4524 fed_who += 4; |
4539 fed_who += 4; |
| 4525 break; |
4540 break; |
| 4526 case YAHOO_FEDERATION_NONE: |
4541 case YAHOO_FEDERATION_NONE: |
| 4527 default: |
4542 default: |
| 4528 break; |
4543 break; |