summaryrefslogtreecommitdiff
path: root/libpurple/protocols/oscar/family_buddy.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpurple/protocols/oscar/family_buddy.c')
-rw-r--r--libpurple/protocols/oscar/family_buddy.c12
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;