icmp echo patch
Rein Klazes
rklazes at xs4all.nl
Tue Jan 15 11:55:06 CST 2002
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 at xs4all.nl
-------------- next part --------------
--- 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,
More information about the wine-patches
mailing list