On Windows, `sendto()` ignores its destination parameters when provided with a connection-based socket (currently only SOCK_STREAM), even if they contain invalid data. This patch implements this behavior.
--
v3: ws2_32/tests: Add test for sendto() and recvfrom() on TCP sockets.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3186
Windows 10 [received support](https://devblogs.microsoft.com/commandline/af_unix-comes-to-window… for AF_UNIX sockets in Insider Build 17063. This merge request adds basic support for AF_UNIX sockets to ws2_32 and wineserver.
Of particular note is the difficulty in handling `sun_path`. Most of the functions that allow for translating Windows paths to Unix paths are not accessible from ws2_32. I considered the following options:
* Pass the Windows path to wineserver and do the conversion there.
* This is, as far as I can tell, not possible without major rearchitecting. wineserver does not have functions to translate Windows paths to Unix paths, for obvious reasons.
* Obtain the current working directory of the requesting process and temporarily change directories to there.
* This only handles relative paths and fails for absolute paths, UNC paths, etc.
* Conditionally change directories based on whether the path is relative or not.
* This is error-prone and wineserver does not have the requisite functions to do this cleanly.
I ultimately decided to pass the translated Unix path to wineserver, which changes directories to `dirname(path)`. It then provides `bind` and `connect` with `basename(path)`. This is not threadsafe, but wineserver is not (currently) multithreaded.
Abstract sockets are supported by this patch.
--
v31: ws2_32/tests: Add test for AF_UNIX sockets.
server: Fix getsockname() and accept() on AF_UNIX sockets.
server: Introduce error when attempting to connect() to abstract AF_UNIX sockets.
server: Allow for deletion of socket files.
ws2_32: Add support for AF_UNIX sockets.
ntdll/unix: Add support for AF_UNIX sockets to multiple functions.
ws2_32: Add afunix.h header.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786
Yeah, I don't particularly remember what I was trying to do with this... it may have been an attempt to formalize the list of HLSL maintainers and/or avoid the need for Henri to sign off on those patches.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/19#note_37232
It's probably as good a time as any to revisit this.
I don't think the project is quite large enough to really need this at this point; I think "git log" paints a fairly decent picture of who touches which code, and Wine essentially did fine without a maintainers file for the first two decades or so too. I could certainly be convinced the project would benefit from having this, but right now this feels a bit like a solution in search of a problem to me.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/19#note_37231
I think that's a libtool/automake thing. The vkd3d-compiler target will get the -lSPIRV-Tools-shared flag from libvkd3d-shader.la, but not the -L flag with the additional path, so ld won't know where to find libSPIRV-Tools-shared.so unless you e.g. set an appropriate LD_LIBRARY_PATH. Adding @SPIRV_TOOLS_LIBS@ to vkd3d_compiler_LDADD (and DEMOS_LDADD) avoids the issue at build time, but you'll still need to set LD_LIBRARY_PATH to run the resulting executable.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/52#note_37229