[ekg2-commit] r4608 - trunk/plugins/icq: trunk/plugins/icq/icq_snac_handlers_01service.inc trunk/plugins/icq/icq_snac_handlers_03buddy.inc

SVN commit svn w toxygen.net
Sob, 6 Wrz 2008, 11:36:09 CEST


Author: wiechu
Date: 2008-09-06 11:36:09 +0200 (Sat, 06 Sep 2008)
New Revision: 4608

Modified:
   trunk/plugins/icq/icq_snac_handlers_01service.inc
   trunk/plugins/icq/icq_snac_handlers_03buddy.inc
Log:
    code complement


Modified: trunk/plugins/icq/icq_snac_handlers_01service.inc
===================================================================
--- trunk/plugins/icq/icq_snac_handlers_01service.inc	2008-09-05 22:29:57 UTC (rev 4607)
+++ trunk/plugins/icq/icq_snac_handlers_01service.inc	2008-09-06 09:36:09 UTC (rev 4608)
@@ -309,44 +309,54 @@
 	if (xstrcmp(s->uid+4, uin))
 		debug_error("icq_snac_service_reqinfo() Warning: Server thinks our UIN is %s, when it is %s\n", uin, s->uid+4);
 
-	/*
-	 * TLV(x01) User type?
-	 * TLV(x0C) Empty CLI2CLI Direct connection info
-	 * TLV(x0A) External IP
-	 * TLV(x0F) Number of seconds that user has been online
-	 * TLV(x03) The online since time.
-	 * TLV(x0A) External IP again
-	 * TLV(x22) Unknown
-	 * TLV(x1E) Unknown: empty.
-	 * TLV(x05) Member of ICQ since.
-	 * TLV(x14) Unknown
-	 */
 	tlvs = icq_unpack_tlvs(&databuf, &len, count);
 
 	/* XXX, miranda check dwRef. */
 	/* XXX, miranda saves */
 	for (t = tlvs; t; t = t->next) {
 		switch (t->type) {
-			case 0x03:
+			case 0x01:	/* User type */
+				if (tlv_length_check("icq_snac_service_reqinfo()", t, 2)) goto def;
+				debug_white("icq_snac_service_reqinfo() User type: 0x%x\n", t->nr);
+				break;
+
+			case 0x03:	/* The online since time */
 				if (tlv_length_check("icq_snac_service_reqinfo()", t, 4)) goto def;
-				debug_white("icq_snac_service_reqinfo() Logon TS: %u\n", t->nr);
+				debug_white("icq_snac_service_reqinfo() Logon time: %s\n", int2time_str("%Y-%m-%d %H:%M", t->nr));
 				break;
 
-			case 0x05:
+			case 0x05:	/* Member of ICQ since */
 				if (tlv_length_check("icq_snac_service_reqinfo()", t, 4)) goto def;
 				debug_white("icq_snac_service_reqinfo() ICQ Member since: %s\n", int2time_str("%Y-%m-%d %H:%M", t->nr));
 				break;
 
-			case 0x0A:
+			case 0x0a:	/* External IP */
 				if (tlv_length_check("icq_snac_service_reqinfo()", t, 4)) goto def;
 				debug_white("icq_snac_service_reqinfo() External IP: %u.%u.%u.%u\n", t->buf[0], t->buf[1], t->buf[2], t->buf[3]);
 				break;
 
+			case 0x0c: /* Empty CLI2CLI Direct connection info */
+				break;
+
+			case 0x0d: /* Our capabilities */
+				debug_white("icq_snac_service_reqinfo() Server knows %d our caps\n", t->len >> 4);
+				break;
+
+			case 0x0f:	/* Number of seconds that user has been online */
+				if (tlv_length_check("icq_snac_service_reqinfo()", t, 4)) goto def;
+				debug_white("icq_snac_service_reqinfo() Online: %u seconds.\n", t->nr);
+				break;
+
+			case 0x14:
+			case 0x1e:	/* We know that we don't know them */
+			case 0x22:
+				break;
+
 			/* XXX */
 
 			default:
 			    def:
-				debug_error("icq_snac_service_reqinfo() TLV[%u] datalen: %u\n", t->type, t->len);
+				debug_error("icq_snac_service_reqinfo() TLV[0x%x] datalen: %u\n", t->type, t->len);
 				icq_hexdump(DEBUG_WHITE, t->buf, t->len);
 		}
 	}

Modified: trunk/plugins/icq/icq_snac_handlers_03buddy.inc
===================================================================
--- trunk/plugins/icq/icq_snac_handlers_03buddy.inc	2008-09-05 22:29:57 UTC (rev 4607)
+++ trunk/plugins/icq/icq_snac_handlers_03buddy.inc	2008-09-06 09:36:09 UTC (rev 4608)
@@ -285,7 +285,7 @@
 				debug_white("icq_snac_buddy_online() %d seconds online\n", t->nr);
 				break;
 
-			case 0x19: /* */
+			case 0x19: /* short caps */
 			{
 				unsigned char *data = t->buf;
 				int d_len = t->len;



Więcej informacji o liście dyskusyjnej ekg2-commit