[ekg2-commit] r4184 - trunk/plugins/icq: trunk/plugins/icq/icq.c trunk/plugins/icq/icq_flap_handlers.c trunk/plugins/icq/icq_snac_handlers_01service.c trunk/plugins/icq/icq_snac_handlers_04message.c

SVN commit svn w toxygen.net
Wto, 5 Sie 2008, 13:12:06 CEST


Author: wiechu
Date: 2008-08-05 13:12:05 +0200 (Tue, 05 Aug 2008)
New Revision: 4184

Modified:
   trunk/plugins/icq/icq.c
   trunk/plugins/icq/icq_flap_handlers.c
   trunk/plugins/icq/icq_snac_handlers_01service.c
   trunk/plugins/icq/icq_snac_handlers_04message.c
Log:
    fix icq connection

Modified: trunk/plugins/icq/icq.c
===================================================================
--- trunk/plugins/icq/icq.c	2008-08-03 18:28:19 UTC (rev 4183)
+++ trunk/plugins/icq/icq.c	2008-08-05 11:12:05 UTC (rev 4184)
@@ -95,7 +95,6 @@
 
 void icq_session_connected(session_t *s) {
 	string_t pkt;
-
 	{
 		#define m_bAvatarsEnabled 0
 		#define m_bUtfEnabled 0
@@ -168,7 +167,7 @@
 
 		pkt = icq_pack("T", icq_pack_tlv(0x05, tlv_5->str, tlv_5->len));
 		
-		icq_makesnac(s, pkt, 0x01, 0x04, 0, 0);
+		icq_makesnac(s, pkt, 0x02, 0x04, 0, 0);
 		icq_send_pkt(s, pkt);
 
 		string_free(tlv_5, 1);
@@ -264,6 +263,7 @@
 		icq_makesnac(s, pkt, 0x01, 0x1E, 0, 0);
 		icq_send_pkt(s, pkt); pkt = NULL;
 	}
+
 	/* SNAC 1,11 */
 	pkt = icq_pack("I", (uint32_t) 0x00000000);
 	icq_makesnac(s, pkt, 0x01, 0x11, 0, 0);
@@ -273,7 +273,6 @@
 
 	/* Finish Login sequence */
 
-#if 0	/* XXX, wtf? */
 	pkt = string_init(NULL);
 
 	icq_pack_append(pkt, "WWI", (uint32_t) 0x22, (uint32_t) 0x01, (uint32_t) 0x0110161b);	/* imitate ICQ 6 behaviour */
@@ -290,7 +289,6 @@
 
 	icq_makesnac(s, pkt, 0x01, 0x02, 0, 0);
 	icq_send_pkt(s, pkt); pkt = NULL;
-#endif
 
 	debug_white(" *** Yeehah, login sequence complete\n");
 

Modified: trunk/plugins/icq/icq_flap_handlers.c
===================================================================
--- trunk/plugins/icq/icq_flap_handlers.c	2008-08-03 18:28:19 UTC (rev 4183)
+++ trunk/plugins/icq/icq_flap_handlers.c	2008-08-05 11:12:05 UTC (rev 4184)
@@ -164,6 +164,7 @@
 		str = icq_pack("I", (uint32_t) 1);			/* spkt.flap.pkt.login.id CLI_HELLO */
 		icq_pack_append(str, "T", icq_pack_tlv(0x06, j->cookie->str, j->cookie->len));
 
+#if 0	/* wo -- not necessary */
 		/* Pack client identification details. */
 		icq_pack_append(str, "T", icq_pack_tlv_str(0x03, "ICQ Client"));
 		icq_pack_append(str, "tW", icq_pack_tlv_word(0x16, 0x010a)); 			/* CLIENT_ID_CODE */
@@ -175,7 +176,7 @@
 		icq_pack_append(str, "T", icq_pack_tlv_str(0x0f, "en"));
 		icq_pack_append(str, "T", icq_pack_tlv_str(0x0e, "en"));
 		icq_pack_append(str, "tI", icq_pack_tlv_word(0x8003, 0x00100000));	/* Unknown */
-
+#endif
 		icq_makeflap(s, str, ICQ_FLAP_LOGIN);
 		icq_send_pkt(s, str); str = NULL;
 

Modified: trunk/plugins/icq/icq_snac_handlers_01service.c
===================================================================
--- trunk/plugins/icq/icq_snac_handlers_01service.c	2008-08-03 18:28:19 UTC (rev 4183)
+++ trunk/plugins/icq/icq_snac_handlers_01service.c	2008-08-05 11:12:05 UTC (rev 4184)
@@ -51,16 +51,19 @@
 	 * Miranda mimics the behaviour of ICQ 6 */
 
 	icq_pack_append(pkt, "WW", (uint32_t) 0x22, (uint32_t) 0x01);
-	icq_pack_append(pkt, "WW", (uint32_t) 0x01, (uint32_t) 0x04);
+	icq_pack_append(pkt, "WW", (uint32_t) 0x01, (uint32_t) 0x03);
 	icq_pack_append(pkt, "WW", (uint32_t) 0x13, (uint32_t) 0x04);
 	icq_pack_append(pkt, "WW", (uint32_t) 0x02, (uint32_t) 0x01);
 	icq_pack_append(pkt, "WW", (uint32_t) 0x03, (uint32_t) 0x01);
 	icq_pack_append(pkt, "WW", (uint32_t) 0x15, (uint32_t) 0x01);
 	icq_pack_append(pkt, "WW", (uint32_t) 0x04, (uint32_t) 0x01);
 	icq_pack_append(pkt, "WW", (uint32_t) 0x06, (uint32_t) 0x01);
+	icq_pack_append(pkt, "WW", (uint32_t) 0x08, (uint32_t) 0x01);
 	icq_pack_append(pkt, "WW", (uint32_t) 0x09, (uint32_t) 0x01);
 	icq_pack_append(pkt, "WW", (uint32_t) 0x0a, (uint32_t) 0x01);
 	icq_pack_append(pkt, "WW", (uint32_t) 0x0b, (uint32_t) 0x01);
+	icq_pack_append(pkt, "WW", (uint32_t) 0x0c, (uint32_t) 0x01);
+	icq_pack_append(pkt, "WW", (uint32_t) 0x25, (uint32_t) 0x01);
 
 	icq_makesnac(s, pkt, 0x01, 0x17, 0, 0);
 	icq_send_pkt(s, pkt);
@@ -102,9 +105,10 @@
 #endif
 
 		/* CLI_REQLISTS - we want to use SSI */
-		str = icq_pack("tW", icq_pack_tlv_word(0x0B, 0x000F));	/* mimic ICQ 6 */
-		icq_makesnac(s, str, 0x01, 0x02, 0, 0);
-		icq_send_pkt(s, str);
+//		str = icq_pack("tW", icq_pack_tlv_word(0x0B, 0x000F));	/* mimic ICQ 6 */
+		/* ?WO? 01,02 ??? */
+//		icq_makesnac(s, str, 0x01, 0x02, 0, 0);
+//		icq_send_pkt(s, str);
 
 #if 0
 		if (!wRecordCount) { /* CLI_REQROSTER */
@@ -153,8 +157,17 @@
 
 		/* temporary always send: CLI_REQROSTER */
 		str = string_init(NULL);
-		icq_makesnac(s, str, 0x13, 0x04, 0, 0);
+//		icq_makesnac(s, str, 0x13, 0x04, 0, 0);
+		icq_makesnac(s, str, 0x13, 0x02, 0, 0);
 		icq_send_pkt(s, str);
+
+		str = string_init(NULL);
+		
+		str = string_init(NULL);
+		icq_pack_append(str, "I", (uint32_t) 0x0000);
+		icq_pack_append(str, "I", (uint32_t) 0x0000);
+		icq_makesnac(s, str, 0x13, 0x05, 0, 0);
+		icq_send_pkt(s, str);
 #endif
 	}
 
@@ -168,7 +181,8 @@
 	                2 = Enable offline status message notification
 	                4 = Enable Avatars for offline contacts
 	 */
-	str = icq_pack("tW", icq_pack_tlv_word(0x05, 0x0003));	/* mimic ICQ 6 */
+//	str = icq_pack("tW", icq_pack_tlv_word(0x05, 0x0003));	/* mimic ICQ 6 */
+	str = string_init(NULL);
 	icq_makesnac(s, str, 0x03, 0x02, 0, 0);
 	icq_send_pkt(s, str);
 

Modified: trunk/plugins/icq/icq_snac_handlers_04message.c
===================================================================
--- trunk/plugins/icq/icq_snac_handlers_04message.c	2008-08-03 18:28:19 UTC (rev 4183)
+++ trunk/plugins/icq/icq_snac_handlers_04message.c	2008-08-05 11:12:05 UTC (rev 4184)
@@ -48,14 +48,32 @@
 	flags |= 0x00000008;
 #endif
 	/* SnacCliSeticbm() */
+flags = 0x0b;
 	pkt = icq_pack("WIWWWWW",
-		(uint32_t) 0x0000, (uint32_t) flags,		/* channel, flags */
+		(uint32_t) 0x0001, (uint32_t) flags,		/* channel, flags */
 		(uint16_t) 8000, (uint32_t) 999,		/* max-message-snac-size, max-sender-warning-level */
 		(uint32_t) 999, (uint32_t) 0,			/* max-rcv-warning-level, minimum message-interval-in-secons */
 		(uint32_t) 0);					/* unknown */
 	icq_makesnac(s, pkt, 0x04, 0x02, 0, 0);
 	icq_send_pkt(s, pkt);
 
+flags = 0x03;
+	pkt = icq_pack("WIWWWWW",
+		(uint32_t) 0x0002, (uint32_t) flags,		/* channel, flags */
+		(uint16_t) 8000, (uint32_t) 999,		/* max-message-snac-size, max-sender-warning-level */
+		(uint32_t) 999, (uint32_t) 0,			/* max-rcv-warning-level, minimum message-interval-in-secons */
+		(uint32_t) 0);					/* unknown */
+	icq_makesnac(s, pkt, 0x04, 0x02, 0, 0);
+	icq_send_pkt(s, pkt);
+
+	pkt = icq_pack("WIWWWWW",
+		(uint32_t) 0x0004, (uint32_t) flags,		/* channel, flags */
+		(uint16_t) 8000, (uint32_t) 999,		/* max-message-snac-size, max-sender-warning-level */
+		(uint32_t) 999, (uint32_t) 0,			/* max-rcv-warning-level, minimum message-interval-in-secons */
+		(uint32_t) 0);					/* unknown */
+	icq_makesnac(s, pkt, 0x04, 0x02, 0, 0);
+	icq_send_pkt(s, pkt);
+
 	return 0;
 }
 



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