Mercurial > pidgin
comparison src/protocols/msn/notification.c @ 5372:fa0217bec87e
[gaim-migrate @ 5748]
The mobile state should now reflect the server under all cases.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Wed, 14 May 2003 07:50:26 +0000 |
parents | 379beab3d157 |
children | 0436e39c70cf |
comparison
equal
deleted
inserted
replaced
5371:daaeaf4696a1 | 5372:fa0217bec87e |
---|---|
431 __bpr_cmd(MsnServConn *servconn, const char *command, const char **params, | 431 __bpr_cmd(MsnServConn *servconn, const char *command, const char **params, |
432 size_t param_count) | 432 size_t param_count) |
433 { | 433 { |
434 MsnSession *session = servconn->session; | 434 MsnSession *session = servconn->session; |
435 struct gaim_connection *gc = session->account->gc; | 435 struct gaim_connection *gc = session->account->gc; |
436 struct buddy *b; | |
437 const char *passport, *type, *value; | 436 const char *passport, *type, *value; |
438 int status = 0; | |
439 MsnUser *user; | 437 MsnUser *user; |
440 | 438 |
441 passport = params[1]; | 439 passport = params[1]; |
442 type = params[2]; | 440 type = params[2]; |
443 value = params[3]; | 441 value = params[3]; |
444 | 442 |
445 user = msn_users_find_with_passport(session->users, passport); | 443 user = msn_users_find_with_passport(session->users, passport); |
446 | 444 |
447 if (value != NULL) { | 445 if (value != NULL) { |
448 if (!strcmp(type, "MOB")) { | 446 if (!strcmp(type, "MOB")) |
449 if ((b = gaim_find_buddy(gc->account, passport)) != NULL) { | 447 user->mobile = (!strcmp(value, "Y")); |
450 if (GAIM_BUDDY_IS_ONLINE(b)) { | 448 else if (!strcmp(type, "MBE")) |
451 if (!strcmp(value, "Y")) | 449 user->allow_pages = (!strcmp(value, "Y")); |
452 status = (b->uc | (1 << 5)); | |
453 else if (!strcmp(value, "N")) | |
454 status = (b->uc ^ (1 << 5)); | |
455 | |
456 serv_got_update(gc, (char *)passport, 1, 0, 0, 0, status); | |
457 } | |
458 } | |
459 } | |
460 else if (!strcmp(type, "PHH")) | 450 else if (!strcmp(type, "PHH")) |
461 msn_user_set_home_phone(user, msn_url_decode(value)); | 451 msn_user_set_home_phone(user, msn_url_decode(value)); |
462 else if (!strcmp(type, "PHW")) | 452 else if (!strcmp(type, "PHW")) |
463 msn_user_set_work_phone(user, msn_url_decode(value)); | 453 msn_user_set_work_phone(user, msn_url_decode(value)); |
464 else if (!strcmp(type, "PHM")) | 454 else if (!strcmp(type, "PHM")) |
465 msn_user_set_mobile_phone(user, msn_url_decode(value)); | 455 msn_user_set_mobile_phone(user, msn_url_decode(value)); |
456 } | |
457 | |
458 if (!strcmp(type, "MOB") || !strcmp(type, "MBE")) { | |
459 struct buddy *b; | |
460 | |
461 if ((b = gaim_find_buddy(gc->account, passport)) != NULL) { | |
462 if (GAIM_BUDDY_IS_ONLINE(b)) | |
463 serv_got_update(gc, (char *)passport, 1, 0, 0, 0, b->uc); | |
464 } | |
466 } | 465 } |
467 | 466 |
468 return TRUE; | 467 return TRUE; |
469 } | 468 } |
470 | 469 |
667 session->lists.block = g_slist_copy(gc->account->deny); | 666 session->lists.block = g_slist_copy(gc->account->deny); |
668 | 667 |
669 while (session->lists.forward != NULL) { | 668 while (session->lists.forward != NULL) { |
670 MsnUser *user = session->lists.forward->data; | 669 MsnUser *user = session->lists.forward->data; |
671 struct buddy *b; | 670 struct buddy *b; |
672 | 671 |
673 b = gaim_find_buddy(gc->account, msn_user_get_passport(user)); | 672 b = gaim_find_buddy(gc->account, msn_user_get_passport(user)); |
674 | 673 |
675 session->lists.forward = g_slist_remove(session->lists.forward, | 674 session->lists.forward = g_slist_remove(session->lists.forward, |
676 user); | 675 user); |
677 | 676 |
707 } | 706 } |
708 | 707 |
709 b = gaim_buddy_new(gc->account, | 708 b = gaim_buddy_new(gc->account, |
710 msn_user_get_passport(user), NULL); | 709 msn_user_get_passport(user), NULL); |
711 | 710 |
712 b->proto_data = user; | |
713 | |
714 gaim_blist_add_buddy(b, g, NULL); | 711 gaim_blist_add_buddy(b, g, NULL); |
715 } | 712 } |
713 | |
714 b->proto_data = user; | |
716 | 715 |
717 serv_got_alias(gc, (char *)msn_user_get_passport(user), | 716 serv_got_alias(gc, (char *)msn_user_get_passport(user), |
718 (char *)msn_user_get_name(user)); | 717 (char *)msn_user_get_name(user)); |
719 } | 718 } |
720 } | 719 } |