Mercurial > pidgin
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) |