+ diff -u ./net/ipv4/arp.c.APAPI ./net/ipv4/arp.c --- ./net/ipv4/arp.c.APAPI Tue Aug 12 13:00:59 2003 +++ ./net/ipv4/arp.c Tue Aug 12 14:32:40 2003 @@ -760,6 +760,18 @@ goto out; } +#define MAKE_MS_WINDOWS_HAPPY +#ifdef MAKE_MS_WINDOWS_HAPPY + /* Special case: IPv4 duplicate address detection packet (MS Windows) */ + if (inet_addr_type(sip) == RTN_LOCAL) { + printk("ARP: IPv4 duplicate address detection packet (MS Windows)\n"); + if (arp->ar_op == htons(ARPOP_REQUEST) && + inet_addr_type(tip) == RTN_LOCAL) + arp_send(ARPOP_REPLY,ETH_P_ARP,tip,dev,tip,sha,dev->dev_addr,dev->dev_addr); + goto out; + } +#endif + if (arp->ar_op == htons(ARPOP_REQUEST) && ip_route_input(skb, tip, sip, 0, dev) == 0) {