Implement the function `IXMLDOMElement_removeAttributeNode`. Essentially
pass the hard work to `IXMLDOMNamedNodeMap_removeNamedItem`.
Use the fact, that attribute names are unique in elements.
One case that isn't checked is wheter or not the value of the provided
attribute match with the one stored in the dom-element.
This MR implements according to the tests introduced in https://gitlab.winehq.org/wine/wine/-/merge_requests/8928
--
v3: fix formatting of if clause
https://gitlab.winehq.org/wine/wine/-/merge_requests/9056
Allowing to use a simple event-like sync for the message queues.
--
v3: server: Use an internal event sync for message queues.
server: Remove mostly unnecessary thread own queue check.
server: Continuously poll on queue fd for driver events.
win32u: Notify wineserver after processing every driver events.
win32u: Return TRUE from ProcessEvents after emptying the event queue.
win32u: Check for pending hardware messages after processing events.
server: Use a dedicated internal bit for queued hardware messages.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9086
Allowing to use a simple event-like sync for the message queues.
--
v2: server: Use an internal event sync for message queues.
server: Remove mostly unnecessary thread own queue check.
server: Continuously poll on queue fd for driver events.
win32u: Notify wineserver after processing every driver events.
win32u: Return TRUE from ProcessEvents after emptying the event queue.
win32u: Check for pending hardware messages after processing events.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9086
On Wed Oct 1 23:57:24 2025 +0000, Paul Gofman wrote:
> I think the bug here is most likely in GetBestInterface() and should be
> fixed there (by using SOCKADDR_INET instead of struct sockaddr_in), and
> likely no bug in GetBestRoute2.
> TL;DL; Note GetBestRoute2 even zeroes output bestaddress in full and
> that is backed by the tests. Whether GetBestRoute2 accesses src and dst
> in full or shorter part in case of ipv4 is currently not tested, but I
> think it more likely does on Windows (and if I didn't have to fixup dst
> address in the concerned place I would just do 'connect( s, (struct
> sockaddr *)dst, sizeof(*dst) )' and that access would happen in ws2_32
> where it would copy the address for DeviceIoControl). That
> 'SOCKADDR_INET *' passed for dst, not a void pointer with explicit
> length, so from general sense it is totally valid to access the whole
> structure, and the implementation would naturally do it if it would, e.
> g., passing the address to nsiproxy or ws2_32 without interpreting here.
> Small chance that it doesn't access it on Windows of course, but I'd
> suggest we don't overdo it by testing this implementation detail on
> Windows in the absense of practical motivation, avoid adding extra code
> to GetBestRoute2 and just use the SOCKADDR_INET structure in GetBestInterface().
updated
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/9085#note_117392