diff options
Diffstat (limited to 'libpurple/protocols/oscar/family_buddy.c')
-rw-r--r-- | libpurple/protocols/oscar/family_buddy.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libpurple/protocols/oscar/family_buddy.c b/libpurple/protocols/oscar/family_buddy.c index 9ca1dfae07..7efd60e520 100644 --- a/libpurple/protocols/oscar/family_buddy.c +++ b/libpurple/protocols/oscar/family_buddy.c @@ -221,6 +221,18 @@ buddychange(OscarData *od, FlapConnection *conn, aim_module_t *mod, FlapFrame *f if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, &userinfo); + if (snac->subtype == SNAC_SUBTYPE_BUDDY_ONCOMING && + userinfo.capabilities & OSCAR_CAPABILITY_XTRAZ) { + PurpleAccount *account = purple_connection_get_account(od->gc); + PurpleBuddy *buddy = purple_find_buddy(account, userinfo.bn); + + if (buddy) { + PurplePresence *presence = purple_buddy_get_presence(buddy); + + if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_MOOD)) + icq_im_xstatus_request(od, userinfo.bn); + } + } aim_info_free(&userinfo); return ret; |