Maybe I&#39;m missing something, but the only case I found that required extra wineserver work was for handling asynchronous ReadFile requests (since these requests don&#39;t go through the ws2_32 path, see patch 6).  Using ReadFile like that is technically something you&#39;re not supposed to do, but we all know that means that someone&#39;s done it anyway.  For everything else (send, recv, select) the proposed technique just requires a check to see if IP_PKTINFO is enabled so it can throw out the packet if it doesn&#39;t match the socket&#39;s interface.<br>
<br>The kernel developers have made it clear that they&#39;re not going to do anything to change the situation (and even if they did, it wouldn&#39;t work under BSD or Mac OS X), so it seems to me like the change has to be in Wine.  It would also be possible to override the appropriate calls by replacing the different dynamically loaded symbols, though doing so seems like an awkward approach since Wine is already meant to be a compatibility layer.  I would really like to see this issue get resolved, so I&#39;m willing to
put whatever work into fixing this that&#39;s necessary to get it done right.<br><br>Erich Hoover<br><a href="mailto:ehoover@mines.edu">ehoover@mines.edu</a><br><br><div class="gmail_quote">On Sat, Oct 10, 2009 at 2:31 AM, Alexandre Julliard <span dir="ltr">&lt;<a href="mailto:julliard@winehq.org">julliard@winehq.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">Erich Hoover &lt;<a href="mailto:ehoover@mines.edu">ehoover@mines.edu</a>&gt; writes:<br>

<br>
&gt; The maintainer has pretty much &quot;put his foot down&quot; on the matter (several<br>
&gt; times actually, here&#39;s a nicer one):<br>
&gt; <a href="http://www.mail-archive.com/linux-net@vger.kernel.org/msg01306.html" target="_blank">http://www.mail-archive.com/linux-net@vger.kernel.org/msg01306.html</a><br>
&gt;<br>
&gt; This is rather embarrasing, but apparently I left server/protocol.def out of<br>
&gt; the patchset.  I could have sworn I tested these patches on a clean git, but<br>
&gt; apparently I made a mistake.  Is there any chance that this mistake is the<br>
&gt; reason for the rejection?  The additional code in these patches is only<br>
&gt; utilized (sans a call to getsockopt) on UDP broadcast sockets that have been<br>
&gt; bound to a specific interface.  According to the kernel devs, this behavior<br>
&gt; is what IP_PKTINFO is meant to do and that they have no intention of adding<br>
&gt; an additional feature that does exactly the same thing.<br>
<br>
</div>I don&#39;t think you can do that reliably in user space, at least not in<br>
the Wine architecture. You&#39;d have to put all the network I/O in the<br>
wineserver, and performance would suck. The kernel devs objection would<br>
work if it could be done directly inside the app, but I don&#39;t see a way<br>
to do that cleanly inside the Wine network layer.<br>
<font color="#888888"><br>
--<br>
Alexandre Julliard<br>
<a href="mailto:julliard@winehq.org">julliard@winehq.org</a><br>
</font></blockquote></div><br>