icmp echo patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi,

This probably falls under "bug for bug" compatibility:
"wine tracert" fails behind a Linux 2.2 masquerading firewall
(ipchains). This is because the received time-exceeded packet does not
contain the checksum of the original echo request but that of the
masqueraded package. Tracert in windows has no problem with that.

	dlls/icmp	: icmp_main.c
	Don't check the checksum of the original echo request 
	packet in the received reply packet. 

Rein.
-- 
Rein Klazes
rklazes@xs4all.nl
--- wine/dlls/icmp/icmp_main.c	Tue Aug 28 20:39:03 2001
+++ mywine/dlls/icmp/icmp_main.c	Tue Jan 15 18:24:06 2002
@@ -427,8 +427,10 @@
                     } else if ((rep_icmp_header->icmp_type!=ICMP_ECHO) ||
                         (rep_icmp_header->icmp_code!=0) ||
                         (rep_icmp_header->icmp_id!=id) ||
-                        (rep_icmp_header->icmp_seq!=seq) ||
-                        (rep_icmp_header->icmp_cksum!=cksum)) {
+                        /* windows doesn't check this checksum, else tracert */
+                        /* behind a Linux 2.2 masquerading firewall would fail*/
+                        /* (rep_icmp_header->icmp_cksum!=cksum) || */
+                        (rep_icmp_header->icmp_seq!=seq)) {
                         /* This was not a reply to one of our packets after all */
                         TRACE("skipping type,code=%d,%d id,seq=%d,%d cksum=%d\n",
                             rep_icmp_header->icmp_type,rep_icmp_header->icmp_code,

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux