diff src/protocols/oscar/info.c @ 2866:6d62d4520460

[gaim-migrate @ 2879] try that committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Mon, 10 Dec 2001 00:48:27 +0000
parents 9fc65bb80596
children 93e2c99ccf50
line wrap: on
line diff
--- a/src/protocols/oscar/info.c	Mon Dec 10 00:14:07 2001 +0000
+++ b/src/protocols/oscar/info.c	Mon Dec 10 00:48:27 2001 +0000
@@ -106,7 +106,7 @@
 	return ui->sessionlen;
 }
 
-faim_export int aim_userinfo_hascap(aim_userinfo_t *ui, fu16_t cap)
+faim_export int aim_userinfo_hascap(aim_userinfo_t *ui, fu32_t cap)
 {
 
 	if (!ui || !ui->capspresent)
@@ -117,11 +117,18 @@
 
 
 /*
- * Capability blocks.  
+ * Capability blocks. 
+ *
+ * These are CLSIDs. They should actually be of the form:
+ *
+ * {0x0946134b, 0x4c7f, 0x11d1,
+ *  {0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}},
+ *
+ * But, eh.
  */
 static const struct {
-	unsigned short flag;
-	unsigned char data[16];
+	fu32_t flag;
+	fu8_t data[16];
 } aim_caps[] = {
 
 	/*
@@ -165,6 +172,10 @@
 	 {0x09, 0x46, 0x13, 0x48, 0x4c, 0x7f, 0x11, 0xd1,
 	  0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
 
+	{AIM_CAPS_ICQSERVERRELAY,
+	 {0x09, 0x46, 0x13, 0x49, 0x4c, 0x7f, 0x11, 0xd1,
+	  0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
+
 	/*
 	 * Indeed, there are two of these.  The former appears to be correct, 
 	 * but in some versions of winaim, the second one is set.  Either they 
@@ -186,6 +197,18 @@
 	 {0x09, 0x46, 0x13, 0x4f, 0x4c, 0x7f, 0x11, 0xd1,
 	  0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
 
+	{AIM_CAPS_ICQRTF,
+	 {0x97, 0xb1, 0x27, 0x51, 0x24, 0x3c, 0x43, 0x34, 
+	  0xad, 0x22, 0xd6, 0xab, 0xf7, 0x3f, 0x14, 0x92}},
+
+	{AIM_CAPS_ICQUNKNOWN,
+	 {0x2e, 0x7a, 0x64, 0x75, 0xfa, 0xdf, 0x4d, 0xc8,
+	  0x88, 0x6f, 0xea, 0x35, 0x95, 0xfd, 0xb6, 0xdf}},
+
+	{AIM_CAPS_EMPTY,
+	 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
+
 	{AIM_CAPS_LAST}
 };
 
@@ -194,9 +217,9 @@
  * are not naturally bounded.
  * 
  */
-faim_internal fu16_t aim_getcap(aim_session_t *sess, aim_bstream_t *bs, int len)
+faim_internal fu32_t aim_getcap(aim_session_t *sess, aim_bstream_t *bs, int len)
 {
-	fu16_t flags = 0;
+	fu32_t flags = 0;
 	int offset;
 
 	for (offset = 0; aim_bstream_empty(bs) && (offset < len); offset += 0x10) {
@@ -224,7 +247,7 @@
 	return flags;
 }
 
-faim_internal int aim_putcap(aim_bstream_t *bs, fu16_t caps)
+faim_internal int aim_putcap(aim_bstream_t *bs, fu32_t caps)
 {
 	int i;