changeset 22127:91a4506b5808

merge of '15fcc72f6db29d572909078a86fb269698314506' and 'cb5f23cc7be3a9e456a66f0a9325074c5fc23bc1'
author Mark Doliner <mark@kingant.net>
date Wed, 16 Jan 2008 07:37:39 +0000
parents 22908b354baf (diff) 70c84d8ccc57 (current diff)
children c7da54111ea0
files
diffstat 3 files changed, 7 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/oscar/family_buddy.c	Wed Jan 16 07:32:39 2008 +0000
+++ b/libpurple/protocols/oscar/family_buddy.c	Wed Jan 16 07:37:39 2008 +0000
@@ -219,8 +219,9 @@
 	if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
 		ret = userfunc(od, conn, frame, &userinfo);
 
-	if (snac->subtype == SNAC_SUBTYPE_BUDDY_ONCOMING)
-		aim_locate_requestuserinfo(od, userinfo.sn);
+	if (snac->subtype == SNAC_SUBTYPE_BUDDY_ONCOMING && userinfo.flags & AIM_FLAG_AWAY)
+		aim_locate_autofetch_away_message(od, userinfo.sn);
+
 	aim_info_free(&userinfo);
 
 	return ret;
--- a/libpurple/protocols/oscar/family_locate.c	Wed Jan 16 07:32:39 2008 +0000
+++ b/libpurple/protocols/oscar/family_locate.c	Wed Jan 16 07:37:39 2008 +0000
@@ -386,11 +386,11 @@
 }
 
 void
-aim_locate_requestuserinfo(OscarData *od, const char *sn)
+aim_locate_autofetch_away_message(OscarData *od, const char *sn)
 {
 	struct userinfo_node *cur;
 
-	/* Make sure we haven't already requested info for this buddy */
+	/* Make sure we haven't already made an info request for this buddy */
 	for (cur = od->locate.requested; cur != NULL; cur = cur->next)
 		if (aim_sncmp(sn, cur->sn) == 0)
 			return;
@@ -401,7 +401,7 @@
 	cur->next = od->locate.requested;
 	od->locate.requested = cur;
 
-	aim_locate_getinfoshort(od, cur->sn, 0x00000003);
+	aim_locate_getinfoshort(od, cur->sn, 0x00000002);
 }
 
 aim_userinfo_t *aim_locate_finduserinfo(OscarData *od, const char *sn) {
--- a/libpurple/protocols/oscar/oscar.h	Wed Jan 16 07:32:39 2008 +0000
+++ b/libpurple/protocols/oscar/oscar.h	Wed Jan 16 07:37:39 2008 +0000
@@ -1074,7 +1074,7 @@
 /* 0x000f */ int aim_locate_setinterests(OscarData *od, const char *interest1, const char *interest2, const char *interest3, const char *interest4, const char *interest5, guint16 privacy);
 /* 0x0015 */ int aim_locate_getinfoshort(OscarData *od, const char *sn, guint32 flags);
 
-void aim_locate_requestuserinfo(OscarData *od, const char *sn);
+void aim_locate_autofetch_away_message(OscarData *od, const char *sn);
 guint32 aim_locate_getcaps(OscarData *od, ByteStream *bs, int len);
 guint32 aim_locate_getcaps_short(OscarData *od, ByteStream *bs, int len);
 void aim_info_free(aim_userinfo_t *);