- Based on !463
- _RunAndWait and exception handling implemented in later commits
@piotr
--
v2: msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
msvcr100: Make ExternalContextBase reference-counted.
msvcr100: Factor out the mapping of a context to a scheduler.
msvcr100: Factor out EXCEPTION_RECORD to exception_ptr conversion.
msvcr100: Move exception_ptr functions to a separate file.
msvcr100: Implement invalid_multiple_scheduling exception.
https://gitlab.winehq.org/wine/wine/-/merge_requests/464
ICMP over SOCK_DGRAM is already used in ndispproxy.sys. But apps may also use ICMP directly over SOCK_RAW (Hardspace: Shipbreaker is an example) and that requires admin privileges on Linux (or setcap cap_net_raw+ep on wineserver).
AF_INET / SOCK_RAW / IPPROTO_ICMP works on Windows without admin privileges.
Comments:
- IP, ICMP header structures and chksum() functions are taken from ndisproxy.sys:icmp_echo.c;
- ICMP over DGRAM, while designed specifically to allow ICMP without admin permissions, still needs some setup Linux, /proc/sys/net/ipv4/ping_group_range controls that. Such socket creation fails on Testbot Debian machines so I left skip() path in test_icmp();
- Linux substitute local port number instead of provided ICMP packet id, while the referenced game depends on reply id matching the id it provided in request. So the last part performs the fixup.
--
v4: ntdll: Compute checksum for ICMP over SOCK_DGRAM IP header.
ntdll: Fixup ICMP packet id if SOCK_DGRAM fallback is used.
ntdll: Support SOCK_RAW / IPPROTO_ICMP fallback over SOCK_DGRAM.
https://gitlab.winehq.org/wine/wine/-/merge_requests/384
ICMP over SOCK_DGRAM is already used in ndispproxy.sys. But apps may also use ICMP directly over SOCK_RAW (Hardspace: Shipbreaker is an example) and that requires admin privileges on Linux (or setcap cap_net_raw+ep on wineserver).
AF_INET / SOCK_RAW / IPPROTO_ICMP works on Windows without admin privileges.
Comments:
- IP, ICMP header structures and chksum() functions are taken from ndisproxy.sys:icmp_echo.c;
- ICMP over DGRAM, while designed specifically to allow ICMP without admin permissions, still needs some setup Linux, /proc/sys/net/ipv4/ping_group_range controls that. Such socket creation fails on Testbot Debian machines so I left skip() path in test_icmp();
- Linux substitute local port number instead of provided ICMP packet id, while the referenced game depends on reply id matching the id it provided in request. So the last part performs the fixup.
--
v3: ntdll: Compute checksum for ICMP over SOCK_DGRAM IP header.
ntdll: Fixup ICMP packet id if SOCK_DGRAM fallback is used.
ntdll: Support SOCK_RAW / IPPROTO_ICMP fallback over SOCK_DGRAM.
https://gitlab.winehq.org/wine/wine/-/merge_requests/384
For the first commit, note that as of now, there's a lot of tests that will fail on native if mshtml_test.exe is renamed to iexplore.exe, even with *all* the FeatureControl values for `iexplore.exe` removed, which leads me to believe there's a lot of other places where native mshtml hardcodes behavior based on the app name being `iexplore.exe`.
For the purposes of testing this, please skip all other tests and execute just the test_strict_mode() test, for example (which *should* fail on native if the executable is renamed to `iexplore.exe` instead).
I've actually literally searched the *entire* registry on a temporary VM for `iexplore` and removed all values with it, and it still showed such different behavior after the fact, so it must be hardcoded into mshtml.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/461
ICMP over SOCK_DGRAM is already used in ndispproxy.sys. But apps may also use ICMP directly over SOCK_RAW (Hardspace: Shipbreaker is an example) and that requires admin privileges on Linux (or setcap cap_net_raw+ep on wineserver).
AF_INET / SOCK_RAW / IPPROTO_ICMP works on Windows without admin privileges.
Comments:
- IP, ICMP header structures and chksum() functions are taken from ndisproxy.sys:icmp_echo.c;
- ICMP over DGRAM, while designed specifically to allow ICMP without admin permissions, still needs some setup Linux, /proc/sys/net/ipv4/ping_group_range controls that. Such socket creation fails on Testbot Debian machines so I left skip() path in test_icmp();
- Linux substitute local port number instead of provided ICMP packet id, while the referenced game depends on reply id matching the id it provided in request. So the last part performs the fixup.
--
v2: ntdll: Compute checksum for ICMP over SOCK_DGRAM IP header.
ntdll: Fixup ICMP packet id if SOCK_DGRAM fallback is used.
ntdll: Support SOCK_RAW / IPPROTO_ICMP fallback over SOCK_DGRAM.
ws2_32/tests: Test ICMP.
ws2_32: Add ipv4 raw socket protocol info.
https://gitlab.winehq.org/wine/wine/-/merge_requests/384