`getpeername()` is currently handled in ntdll. This merge request changes ntdll to forward `getpeername()` to wineserver. The implementation utilises new `peer_addr` and `peer_addr_len` fields in wineserver's `struct sock`.
This fixes multiple `todo_wine`s in `ws2_32/tests` and allows for more accurate peer names to be provided in case the address the socket is bound to on the Unix side does not match what `bind()` was called with on the Windows side.
*This merge request was originally intended to be included in !2786 (Add support for AF_UNIX sockets) but was split into its own merge request because this is not an insignificant change.*
--
v7: ws2_32/tests: Fix incorrect test (bug #47560)
ws2_32/tests: Remove todo_wine from now-successful tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3074
I think it will be better if you can report different driver versions for different vendors. For example, NVIDIA, AMD, and Intel drivers should have different versions. You can use gpu->vendor_id to differentiate them. For other vendors, either report a 1.0.0 version or simply don't add this property.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3104#note_36398
The goal of this MR is to set up the minimum necessary infrastructure to display the contents of some simple, software rendered windows. This involves two major steps:
1. Associate a window with a Wayland surface and give it the `xdg_toplevel` role, so that the compositor can display it. We also have to implement the required initial `xdg_surface` configuration sequence to be able to safely (i.e., without the compositor disconnecting us with an error) attach buffers to the surface in step (2).
2. Implement the `window_surface` interface for the Wayland driver. For now we provide a simple (and suboptimal) `window_surface_flush` implementation: for each flush we create a new `wl_shm` buffer, copy the whole window contents (ignoring damaged bounds for now) into it and attach it to the target Wayland surface. In the next MR I will optimize this implementation in multiple ways: a. implement a buffer queue to avoid constantly allocating new buffers b. respect the damaged bounds of the `window_surface` to minimize copying of data from the `window_surface` to the SHM buffer (and also for correctness) c. communicate damaged surface regions to the compositor to (potentially) allow more efficient texture uploads.
With this MR many (software-rendered) applications can now display dynamic content on screen. We can't interact with the apps yet, but we do get to enjoy `notepad` in all its blinking-cursor glory.
Thanks!
--
v4: winewayland.drv: Do not commit buffers to unconfigured surfaces.
winewayland.drv: Implement a simple window_surface flush.
winewayland.drv: Introduce window_surface for Wayland.
winewayland.drv: Ensure Wayland surface handlers don't access invalid data.
winewayland.drv: Basic Wayland toplevel surface support.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2944
`getpeername()` is currently handled in ntdll. This merge request changes ntdll to forward `getpeername()` to wineserver. The implementation utilises new `peer_addr` and `peer_addr_len` fields in wineserver's `struct sock`.
This fixes multiple `todo_wine`s in `ws2_32/tests` and allows for more accurate peer names to be provided in case the address the socket is bound to on the Unix side does not match what `bind()` was called with on the Windows side.
*This merge request was originally intended to be included in !2786 (Add support for AF_UNIX sockets) but was split into its own merge request because this is not an insignificant change.*
--
v6: ws2_32/tests: Remove todo_wine from now-successful tests.
server: Move getpeername() implementation from ntdll/unix.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3074
After commit b337c5b1a1757b2abbc90a7c6955d64242861ab9 builds on FreeBSD
see 115 instances of
include/windef.h:60: warning: "__fastcall" redefined
which comes from <stdio.h> including <sys/cdefs.h> which in turns has
#define __fastcall __attribute__((__fastcall__))
Simply #undef-ining __fastcall like we do for some other cases already
addresses this.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3091