comparison libpurple/protocols/yahoo/libymsg.c @ 29394:d1cecbc467c6

Support Yahoo !PingBox. Includes a couple warning fixes. Fixes #7347. committer: John Bailey <rekkanoryo@rekkanoryo.org>
author kartikmohta@gmail.com
date Tue, 09 Feb 2010 06:19:49 +0000
parents fa35d7029a14
children d77ecfe2b2c9 2b9db39bd7ed
comparison
equal deleted inserted replaced
29393:fa35d7029a14 29394:d1cecbc467c6
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);
4426 fed_who = who; 4435 fed_who = who;
4427 switch (fed) { 4436 switch (fed) {
4428 case YAHOO_FEDERATION_MSN: 4437 case YAHOO_FEDERATION_MSN:
4429 case YAHOO_FEDERATION_OCS: 4438 case YAHOO_FEDERATION_OCS:
4430 case YAHOO_FEDERATION_IBM: 4439 case YAHOO_FEDERATION_IBM:
4440 case YAHOO_FEDERATION_PBX:
4431 fed_who += 4; 4441 fed_who += 4;
4432 break; 4442 break;
4433 case YAHOO_FEDERATION_NONE: 4443 case YAHOO_FEDERATION_NONE:
4434 default: 4444 default:
4435 break; 4445 break;
4526 const char *fed_who = who; 4536 const char *fed_who = who;
4527 switch (fed) { 4537 switch (fed) {
4528 case YAHOO_FEDERATION_MSN: 4538 case YAHOO_FEDERATION_MSN:
4529 case YAHOO_FEDERATION_OCS: 4539 case YAHOO_FEDERATION_OCS:
4530 case YAHOO_FEDERATION_IBM: 4540 case YAHOO_FEDERATION_IBM:
4541 case YAHOO_FEDERATION_PBX:
4531 fed_who += 4; 4542 fed_who += 4;
4532 break; 4543 break;
4533 case YAHOO_FEDERATION_NONE: 4544 case YAHOO_FEDERATION_NONE:
4534 default: 4545 default:
4535 break; 4546 break;