comparison libpurple/protocols/yahoo/yahoo.c @ 19358:b3901a15147a

Fully fix #2654 by parsing the yahoo stealth information from the buddy list at logon time.
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 21 Aug 2007 18:30:58 +0000
parents f0c4b4fdbd16
children dbc4bdfb09a9
comparison
equal deleted inserted replaced
19357:0e1a2b80fc68 19358:b3901a15147a
564 break; 564 break;
565 case 241: /* another protocol user */ 565 case 241: /* another protocol user */
566 if (f) { 566 if (f) {
567 f->protocol = strtol(pair->value, NULL, 10); 567 f->protocol = strtol(pair->value, NULL, 10);
568 purple_debug_info("yahoo", "Setting protocol to %d\n", f->protocol); 568 purple_debug_info("yahoo", "Setting protocol to %d\n", f->protocol);
569 }
570 break;
571 case 317: /* Stealth Setting */
572 if (f && (strtol(pair->value, NULL, 10) == 2)) {
573 f->presence = YAHOO_PRESENCE_PERM_OFFLINE;
569 } 574 }
570 break; 575 break;
571 /* case 242: */ /* this seems related to 241 */ 576 /* case 242: */ /* this seems related to 241 */
572 /* break; */ 577 /* break; */
573 } 578 }
962 967
963 pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH_REQ_15, YAHOO_STATUS_AVAILABLE, 0); 968 pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH_REQ_15, YAHOO_STATUS_AVAILABLE, 0);
964 yahoo_packet_hash(pkt, "ssiii", 1, add_req->id, 5, add_req->who, 241, add_req->protocol, 969 yahoo_packet_hash(pkt, "ssiii", 1, add_req->id, 5, add_req->who, 241, add_req->protocol,
965 13, 1, 334, 0); 970 13, 1, 334, 0);
966 yahoo_packet_send_and_free(pkt, yd); 971 yahoo_packet_send_and_free(pkt, yd);
967 972
968 g_free(add_req->id); 973 g_free(add_req->id);
969 g_free(add_req->who); 974 g_free(add_req->who);
970 g_free(add_req->msg); 975 g_free(add_req->msg);
971 g_free(add_req); 976 g_free(add_req);
972 } 977 }
2263 case YAHOO_SERVICE_AUTH: 2268 case YAHOO_SERVICE_AUTH:
2264 yahoo_process_auth(gc, pkt); 2269 yahoo_process_auth(gc, pkt);
2265 break; 2270 break;
2266 case YAHOO_SERVICE_AUTH_REQ_15: 2271 case YAHOO_SERVICE_AUTH_REQ_15:
2267 yahoo_buddy_auth_req_15(gc, pkt); 2272 yahoo_buddy_auth_req_15(gc, pkt);
2268 break; 2273 break;
2269 case YAHOO_SERVICE_ADDBUDDY: 2274 case YAHOO_SERVICE_ADDBUDDY:
2270 yahoo_process_addbuddy(gc, pkt); 2275 yahoo_process_addbuddy(gc, pkt);
2271 break; 2276 break;
2272 case YAHOO_SERVICE_IGNORECONTACT: 2277 case YAHOO_SERVICE_IGNORECONTACT:
2273 yahoo_process_ignore(gc, pkt); 2278 yahoo_process_ignore(gc, pkt);
3732 3737
3733 if (!yahoo_privacy_check(gc, purple_buddy_get_name(buddy))) 3738 if (!yahoo_privacy_check(gc, purple_buddy_get_name(buddy)))
3734 return; 3739 return;
3735 3740
3736 f = yahoo_friend_find(gc, purple_buddy_get_name(buddy)); 3741 f = yahoo_friend_find(gc, purple_buddy_get_name(buddy));
3737 3742
3738 if (foo) 3743 if (foo)
3739 group = foo->name; 3744 group = foo->name;
3740 if (!group) { 3745 if (!group) {
3741 g = purple_buddy_get_group(buddy); 3746 g = purple_buddy_get_group(buddy);
3742 if (g) 3747 if (g)