Commit Graph
22 Commits
Author SHA1 Message Date
Timo Kreuzer 1cf31524d5 [REACTOS] Stop using non-conforming swprintf / vswprintf
Use the underscored versions instead.
2026-05-07 06:27:58 +00:00
Ivan Georgiev a70f59b0dd [DRIVERS] Replace obsolete RtlConvert*ToLargeInteger calls with inline equivalents (#8721)
RtlConvertUlongToLargeInteger and RtlConvertLongToLargeInteger are
obsolete NT routines that assign a 32-bit integer to LARGE_INTEGER.QuadPart.
Replace all driver/DLL usages with inline .QuadPart assignments or
standard C/C++ casts. This removes unnecessary function calls.

CORE-19438
2026-03-14 13:29:02 +03:00
Mikhail Tyukin c5c0e5987d [MSAFD][AFD] Implement WSPConnectEx and SO_UPDATE_CONNECT_CONTEXT (#8636)
- Update AFD to use the shared structure
- Fix AFD get context to match windows behavior
- implement SO_UPDATE_CONNECT_CONTEXT

CORE-17174
CORE-16335
2026-02-04 00:14:55 -06:00
Mikhail Tyukin 4e7a64b3ec [MSAFD][AFD] Asynchronous connection support (#8573)
* [MSAFD] async support

- Allow APCs to be processed while waiting for blocking IO
- Remove SleepEx hacks

[MSAFD][AFD][TCPIP] Patch CORE-12152

Original author: Peter Hater <[email protected]>

TCPConnect: Always copy bind address into connection.

[MSAFD] SetSocketInformation: Remove unnecessary TRACE code blocks

[MSAFD] AfdRecvAPC and AfdSendAPC: Remove unnecessary NULL checks

[MSAFD] WSPRecv, WSPRecvFrom and WSPSend: Fix leaks and fix IOCTL input buffer handling

[MSAFD] Rewrite WSPSendTo

[MSAFD] Rewrite WSPConnect and AfdConnectAPC

[MSAFD] Remove hacky SleepEx calls

[MSAFD] Don't wait with no timeout

[MSAFD] send/receive: Fixes for overlapped socket

- Fix IOCTL buffers handling
- Allow APC to be processed

[MSAFD] connect: Fixes for async connect

- Allow APC to be processed
- Remove "mark as connected" hack for non-blocking socket

[MSAFD] Get/SetSocketInformation: Fixes for overlapped socket

- Fix IOCTL buffer handling
- Allow APC to be processed

[MSAFD] APC fixes

Fix New Moon 28 crash on website ads.

[MSAFD] Code cleanup

- Rename APC context data type
- Rename APC functions (Afd* -> Msafd*)
- Add SAL annotation
- BUGBUG -> FIXME
- Use sizeof(*ptr) instead of sizeof(type)
- Fix debug prints

[MSAFD] Add comment for SleepEx hacks

[MSAFD] WSPGetOverlappedResult: Fix failed ws2_32:recv tests

[MSAFD] WSPConnect: Fix IOCTL status handling

[MSAFD] send/receive: Simplify IOCTL status handling

[MSAFD] Get/SetSocketInformation: Simplify IOCTL status handling

Co-Authored-By: Emmanuel Gonzalez <[email protected]>
Co-Authored-By: Julio Carchi Ruiz <[email protected]>

* [MSAFD] Fixes
- pass overlapped structure pointer to apc context when there no completion routine. .NET expects this behavior
- Fix WSPGetOverlappedResult to return flags and status code upon failure
---------
Original author: Peter Hater <[email protected]>
Co-authored-by: Thamatip Chitpong <[email protected]>
Co-authored-by: Emmanuel Gonzalez <[email protected]>
Co-authored-by: Julio Carchi Ruiz <[email protected]>
2026-01-18 13:42:24 -06:00
442f5dfab5 [MSAFD] Fix non-blocking sockets support for recv() (#5575) CORE-14486
Currently ReactOS' winsock2 implementation lacks of non-blocking sockets support for recv() apicall, this causes that applications that make use of this feature can lead to unexpected behaviors, one of them is Nginx web server, which uses non-blocking sockets when serving pages through Https protocol.
CORE-14486

It also brings us significantly closer in master head to running Firefox 52, Mypal 29.3.0 and New Moon 28 browser, where the latter allows to connect to mattermost from within ReactOS.
In master head an additional reg file is needed to stop us from exporting specific NT6+ APIs, but in older releases all that should work out of the box with this brilliant patch.


Co-authored-by: Julio Carchi Ruiz <[email protected]>
Co-authored-by: Stanislav Motylkov <[email protected]>
2023-08-17 23:13:13 +02:00
Doug Lyons 2f43d9c183 [MSAFD] Work around regression of CORE-18848 from 0.4.12-dev-693-g2b1f6c8 (#5102)
Fix winetest for ws2_32:sock that crashes on 'test_AcceptEX' by modifying return values of WSPIoctl for 'case SIO_GET_EXTENSION_FUNCTION_POINTER'
2023-03-08 21:47:45 +01:00
Serge Gautherie 03422451b3 [REACTOS] Add '\n' to debug logs
on TRACE, WARN, FIXME and ERR calls.

Plus a few nit picks.
2022-05-04 03:28:38 +03:00
Hermès Bélusca-Maïto 9393fc320e [FORMATTING] Remove trailing whitespace. Addendum to 34593d93.
Excluded: 3rd-party code (incl. wine) and most of the win32ss.
2021-09-13 03:52:22 +02:00
Joachim Henze 666fe66fe9 [MSAFD] Workaround regression CORE-15804
To fix 'MSTSC fails to connect with error "ERROR: Bad packet header"'
which regressed by 0.4.12-dev-752-g
6bc61f63f1

In 0.4.12 and 0.4.13 releases I totally reverted
Pierre Schweitzer's work instead.

Thanks to Doug Lyons, author of this new workaround,
we can keep Pierre's work.
We think MSAFD is a better place to workaround than
our MSTSC binary, because our MSTSC runs fine on
W2K3SP2.

I will backport this new workaround also into 0.4.14RC.
2020-05-13 02:39:37 +02:00
Serge Gautherie a8236e3fa9 [MSAFD] SizeOf*Buffer: Type is ULONG, not INT/DWORD 2019-10-19 10:50:03 +02:00
Serge Gautherie 3f0ba492ad [MSAFD] WSPSetSockOpt(): Fix a copypasta
Addendum to 6bc61f63f1.

CORE-15804
2019-10-17 08:18:43 +02:00
Jérôme Gardou 23373acbb9 [CMAKE] Use modules instead of shared libraries
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.

On my system, this reduces the configure-time by a factor of two.
2019-04-06 17:43:38 +02:00
Pierre Schweitzer 6ee2f9882c [MSAFD] Don't leak event while querying/setting socket options 2019-02-25 22:34:29 +01:00
Pierre Schweitzer 6bc61f63f1 [MSAFD] Implement socket options SO_SNDBUF and SO_RCVBUF 2019-02-25 22:34:29 +01:00
Pierre Schweitzer f6c50cb93d [MSAFD] Make WSPSetSockOpt() SO_RCVBUF stub return success 2019-02-24 21:25:39 +01:00
Pierre Schweitzer 2b1f6c8b0d [MSAFD] Add an initial implementation of SIO_GET_EXTENSION_FUNCTION_POINTER IOCTL
Also stub the related functions the IOCTL will return, namely: WSAID_ACCEPTEX,
WSAID_CONNECTEX, WSAID_DISCONNECTEX, WSAID_GETACCEPTEXSOCKADDRS

This will allow Steam client not to fail in an ASSERT
related to the Steam client PlatformSocketsInit function.

Even though, this doesn't fix Steam running on ReactOS since its UI requires
a Windows 7 API from Kernel32: SetThreadErrorMode().

Nota: its crash got fixed thanks to the Wine sync done recently.

CORE-14966
2019-02-16 13:51:32 +01:00
Timo Kreuzer 0f8439aa71 [DLLS] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Stanislav Motylkov 63ad8a71c0 [IPHLPAPI] Fix IcmpSendEcho output when host is not reachable
- Add missing error code to DDK/NDIS
- Fix error code in IP driver
- Patch MSAFD to reply correct WSA error code
- Fix IcmpSendEcho function
  - Fix returning error code in ICMP_ECHO_REPLY (see MSDN)
  - Fix returning host address (using GetBestInterface and GetIpAddrTable functions)
- Fix GetBestRoute function (it is used by GetBestInterface)

Relates to #318 and CORE-14241
2018-01-31 17:28:21 +00:00
Thomas Faber bf5e33201e [MSAFD] Avoid magic numbers in NtCreateEvent calls. 2018-01-10 11:26:21 +01:00
Amine Khaldi f6108f3187 [MSAFD] Move the default debug channel to msafd.h. 2017-12-09 13:24:35 +01:00
Amine Khaldi 5a14845970 [MSAFD] Properly define SockAsyncThread() and avoid the cast. CORE-11799 (#94) 2017-10-27 23:47:30 +01:00
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00