Attached is a patch I have been working to fix Bug #7929 (C&amp;C 3 network does not work).  This patch replaces interface-specific bind requests (on UDP datagrams only) with a global bind and stores the interface index.  The patch then uses IP_PKTINFO to set the outgoing interface and filter incoming packets based on interface (checking against the stored interface index from the initial bind).  Additionally, the patch peeks at packets in &quot;select&quot; and asynchronous I/O operations to ensure that spurious wakeups do not occur when a packet comes in from the wrong interface.<br>
<br>I intend to split the patch into the following pieces:<br>1) UDP broadcast tests (used for making sure everything works)<br>
2) The &quot;bare essentials&quot; (storing and retrieving the interface index, and setting/filtering the interface)<br>3) Ensure &quot;select&quot; does not wake up on packets with an interface mismatch<br>4) Ensure Async WSARecv does not wake up on packets with an interface mismatch<br>

5) Ensure Async ReadFile does not wake up on packets with an interface mismatch<br><br>I would greatly appreciate any comments people have on this patch.  Thanks so much!<br><br>Erich Hoover<br><a href="mailto:ehoover@mines.edu">ehoover@mines.edu</a><br>