--- a/src/protocols/oscar/locate.c Mon Jan 31 23:54:25 2005 -0500
+++ b/src/protocols/oscar/locate.c Tue Feb 01 00:18:35 2005 -0500
@@ -743,7 +743,7 @@
case 0x0002: { /* An available message */
outinfo->avail_len = aimbs_get16(bs);
outinfo->avail = aimbs_getstr(bs, outinfo->avail_len);
--- a/src/protocols/oscar/oscar.c Mon Jan 31 23:54:25 2005 -0500
+++ b/src/protocols/oscar/oscar.c Tue Feb 01 00:18:35 2005 -0500
@@ -2965,12 +2965,21 @@
bi->ico_informed = FALSE;
bi->ipaddr = info->icqinfo.ipaddr;
- /* Available message stuff */
+ * Handle the available message. If info->avail is NULL then the user + * may or may not have an available message, so don't do anything. If + * info->avail is set to the empty string, then the user's client DOES + * support available messages and the user DOES NOT have one set. + * Otherwise info->avail contains the available message. - bi->availmsg = oscar_encoding_to_utf8(info->avail_encoding, info->avail, info->avail_len);
+ if (info->avail[0] != '\0') + bi->availmsg = oscar_encoding_to_utf8(info->avail_encoding, info->avail, info->avail_len); /* Server stored icon stuff */
@@ -5704,10 +5713,9 @@
OscarData *od = (OscarData *)gc->proto_data;
+ oscar_set_away_aim(gc, od, state, message); oscar_set_away_icq(gc, od, state, message);
- oscar_set_away_aim(gc, od, state, message);