akallabeth
82a43ef4dc
[core,client] add channel poll registration API
...
Add a new API that allows channels to register/unregister an
event-handle along with a callback function to be called by the RDP main
thread.
This allows background processing of channel specifics without the need
for a channel specific thread.
2024-09-24 10:10:52 +02:00
akallabeth
239440e28d
[warnings] remove or comment unused macros
2024-09-20 18:49:38 +02:00
Armin Novak
c7c84682e1
[warnings] fix mismatched-dealloc
...
Some allocator functions have an error path where the corresponding free
function is called. Since the memory in the allocator function was
allocated using malloc/calloc the free function does not match. Silence
warnings with pragma macros
2024-09-18 15:35:28 +02:00
Vic Lee
5f37b54847
[core,gateway] migrate rpc gateway to use new transport layer.
2024-09-18 15:39:34 +08:00
akallabeth
586f40631f
[warnings] fix shorten-64-to-32
2024-09-17 16:13:48 +02:00
akallabeth
c7efbf5b8e
[core,proxy] fix nonblocking BIO reads
...
* In case of non-blocking BIO layers the proxy read functions bailed
out with an error. Retry reading in that case unless the
TcpConnectTimeout is exceeded
* Terminate proxy read operations if rdpContext::abortEvent is set
2024-09-17 10:37:19 +02:00
akallabeth
f2e90eca34
[windows,32bit] fix VCAPITYPE consistency
...
Fixes #10581
2024-09-16 14:15:59 +02:00
akallabeth
a19305569d
[assert] fix ULONG_MAX use
...
most of the time this was used to check ULONG limits. Replace with
correct UINT32_MAX
2024-09-16 08:22:40 +02:00
akallabeth
bb242b9a89
[return checks] fix use of WaitForSingleObject
2024-09-16 08:22:37 +02:00
akallabeth
965d231e49
[return checks] fix use of CloseHandle
2024-09-16 08:22:31 +02:00
akallabeth
cd18dea174
[return checks] fix use of unicode functions
2024-09-16 06:48:26 +02:00
akallabeth
f655843260
[return checks] fix use of rdpSettings getter/setter
2024-09-16 06:48:23 +02:00
akallabeth
c0d06c782b
[return checks] fix missing checks
...
* Stream_EnsureRemainingCapacity
* rdp_client_transition_to_state
2024-09-16 06:48:19 +02:00
akallabeth
94020c183c
[return checks] fix use of ResetEvent
2024-09-16 06:48:09 +02:00
akallabeth
7d67b8e204
[return checks] fix use of SetEvent
2024-09-16 06:47:58 +02:00
akallabeth
0de75b305c
[warnings] fix unchecked return
2024-09-15 10:19:56 +02:00
akallabeth
ba41d5e532
[warnings] fix unchecked return
2024-09-15 09:08:02 +02:00
akallabeth
8b6091a007
[winpr,wtsapi] improve API usage
...
* Mark WTSVirtualChannelOpen and WTSVirtualChannelOpenEx with
WINPR_ATTR_MALLOC to enforce compiler checks for resource cleanup
* Fix unused result warnings, use the result or cast to (void) where not
requierd
2024-09-14 21:29:31 +02:00
akallabeth
a1cef8dd85
[warnings] silence and fix unused results
2024-09-14 21:29:28 +02:00
akallabeth
9cfd748b63
[core,nla] nla_read_TSRemoteGuardPackageCred
...
* fix maybe uninitialized arguments
* fix return in case of invalid packet
2024-09-14 21:29:24 +02:00
akallabeth
d5b41bb8a0
[warnings] fix casts
...
* Add macro WINPR_REINTERPRET_CAST to cast (checked) from type A to B
* Fix cast warnings
2024-09-14 08:24:51 +02:00
akallabeth
d7f6cf90b4
[core,nla] add missing static for function
2024-09-14 08:24:43 +02:00
akallabeth
71080e61b0
[warnings] fix a bunch of them
...
* fix uninitialized variable warnings
* modivy ndr_context_* functions to utilize WINPR_ATTR_MALLOC
* build_krbtgt use winpr_asprintf
* add proper Stream_Write_UINT64_BE
2024-09-14 08:24:28 +02:00
akallabeth
16cec716e0
[strtok] replace function with strtok_s
...
Since strtok is not thread safe replace it with strtok_s (WinPR wrapper
around strtok_r for systems not supporting the ISO function names)
2024-09-13 21:19:17 +02:00
akallabeth
7ef9345743
Merge pull request #10549 from hardening/rcg2
...
core, channels: client-side remote credential guard
2024-09-13 08:24:14 +02:00
akallabeth
163aec7e2b
[warnings] fix documentation command unknown
2024-09-12 21:21:41 +02:00
akallabeth
c84655cd62
[warnings] remove const params
...
Avoid const TYPE* const type declarations
2024-09-12 14:29:25 +02:00
akallabeth
7ebefc505f
[warnings] fix some msbuild warnings
2024-09-12 13:32:41 +02:00
akallabeth
e00661d338
[warnings] fix dead store warnings
2024-09-12 13:29:46 +02:00
akallabeth
c9b0c9ecd5
[warnings] remove unused variables
2024-09-12 10:08:10 +02:00
akallabeth
cc6850bf21
[warnings] fix format nonliteral
...
add pragma to suppress format nonliteral warnings where appropriate
2024-09-12 09:08:53 +02:00
akallabeth
384cd284d8
[warnings] use WINPR_CAST_CONST_AWAY
...
on locations that require (ugly) const to non const casts usw
WINPR_CAST_CONST_AWAY to do proper compiler specific casts to avoid
warnings
2024-09-11 23:41:50 +02:00
akallabeth
265246cdfc
[core,activation] allocate buffer with calloc
2024-09-11 21:03:20 +02:00
akallabeth
ae95b66922
[warnings] fix portability [cm]alloc size 0
2024-09-11 20:50:33 +02:00
akallabeth
403ee7ad4c
[core,activation] simplify rdp_write_client_persistent_key_list_pdu
2024-09-11 20:48:46 +02:00
David Fort
a4bd5ba886
core, channels: client-side remote credential guard
...
This patch implements the client-side part of the remote credential guard feature
as described in MS-RDPEAR. The 2 main changes are: shipping the TSRemoteGuardaCreds in
NLA, and implement the rdpear channel that allows LSASS to remote all the calls to
our client. For now it's UNIX only as the windows implementation would be implemented
in a completely different way.
To test, you may establish you ccache and then connect with (RCG enabled on the server):
xfreerdp /remoteGuard /u:<user> /d:<domain> /v<server>
That should log you in, and in the session you should not be asked for credentials when
doing mstsc /remoteGuard /v:<other server>.
2024-09-11 17:15:11 +02:00
akallabeth
4253426e48
[core,transport] follow up to #10576
...
document the behaviour and reference the place it is used to avoid
confusion on future code review
2024-09-09 13:43:43 +02:00
Vic Lee
929e4bdf8d
[core,transport] fix ssl info callback function signature and some warnings.
2024-09-09 17:42:14 +08:00
akallabeth
02d9d56536
Merge pull request #10563 from llyzs/transport_io
...
Add new transport io layer design and support custom socket.
2024-09-06 15:18:20 +02:00
Vic Lee
ae05778644
[core,transport] add new transport io layer design and support custom socket.
2024-09-05 20:59:21 +08:00
akallabeth
6a1c3b4545
[function pointer] use macro for GetProcAddress
...
Cast all results of GetProcAddress with WINPR_FUNC_PTR_CAST
2024-09-04 21:31:48 +02:00
akallabeth
245afb706c
[function pointers] unify casts with macro
2024-09-04 20:06:45 +02:00
akallabeth
f3d84d4557
[warnings] use ARRAYSIZE macro
2024-09-03 15:10:58 +02:00
akallabeth
baa70d1ab6
[warnings] fix compare integers of different signs
2024-09-03 15:10:46 +02:00
akallabeth
5a4a1a40ad
fix declaration and implementation parameter names
2024-09-03 12:24:53 +02:00
akallabeth
f7fd817d1c
[warnings] fix redundant casting
2024-09-03 12:24:51 +02:00
Armin Novak
fe4cb6de65
[warnings] fix float/double warnings
2024-09-02 16:20:20 +02:00
akallabeth
5887f8a558
[warnings] suppress warnings
...
Some warnings can not be solved as they depend on external libraries or
limitations of the C standard.
Suppress these warnings selectively
2024-08-30 15:40:16 +02:00
akallabeth
190929c018
[warnings] fix function pointer casts
2024-08-30 15:40:01 +02:00
akallabeth
f22018302f
[warnings] revert some mismatching function declarations
2024-08-30 08:39:30 +02:00
akallabeth
bd637c6cd1
[warnings] fix various clang-tidy warnings
2024-08-29 17:13:50 +02:00
akallabeth
36c3184a0f
[warnings] fix clang-tidy issues in libfreerdp
2024-08-29 15:34:22 +02:00
akallabeth
9c9d74e920
[warnings] fix redundant casts
2024-08-29 12:03:09 +02:00
akallabeth
15456e1ee1
[warnings] fix implicit widening conversion
2024-08-29 10:47:20 +02:00
akallabeth
4439240fd3
Merge pull request #10525 from akallabeth/warn-fixes-err33-c
...
[warnings] fix cert-err33-c
2024-08-29 10:35:57 +02:00
akallabeth
1d33095500
[warnings] fix cert-err33-c
...
Fix unused return values, cast to void if on purpose
2024-08-29 10:19:27 +02:00
akallabeth
622fcc7025
[warnings] fix types and guards
...
Fix some broken define guards and a wrong return type
2024-08-29 09:53:48 +02:00
akallabeth
eeba99d73e
Merge pull request #10523 from akallabeth/autoreconnect-fix
...
[core,client] flush pending channel messages
2024-08-28 16:42:05 +02:00
akallabeth
380c5808a0
Merge pull request #10518 from akallabeth/clang-tidy-cleanup
...
Clang tidy cleanup
2024-08-28 16:36:16 +02:00
akallabeth
4ccfbc96ac
[core,client] flush pending channel messages
...
on disconnect flush all pending messages to avoid sending on reconnect.
2024-08-28 14:13:28 +02:00
Armin Novak
03449da9e9
[warnings] fix uninitialized variables
2024-08-28 10:46:40 +02:00
Armin Novak
d71af44bb1
[warnings] disable warnings for generated code
...
* Disable clang-tidy in test build directories
* Disable compiler warnings for test binary directories.
These contain generated code we can not change, so the warnings are just noise
2024-08-28 09:18:30 +02:00
David Fort
f1b299c3e2
core: relax check in freerdp_peer_new
...
Not all socket kinds have the TCP_NODELAY option (especially local UNIX sockets),
so don't make the setsockopt fatal.
2024-08-26 19:53:49 +02:00
akallabeth
679de71056
[core,nla] remove platform guards for PasswordHash
...
Fixes #10507 : do not ask for password if PasswordHash is supplied on
windows.
2024-08-26 09:23:55 +02:00
Armin Novak
17d44e847f
[coverity] fix various warnings
2024-08-21 09:47:34 +02:00
akallabeth
4286a4c164
[core,tcp] retry all DNS entries until success
...
When resolving some DNS name with getaddrinfo try all returned entries
matching the configuration (IPv4|IPv6|any) until the socket can be
connected. Fixes #5335
2024-08-20 13:10:12 +02:00
akallabeth
63d87dcf18
[core,update] ensure EndPaint before DesktopResize
...
When DesktopResize is called EndPaint might not have been. Ensure the
update-lock is released and data flushed before resizing.
2024-08-20 09:54:56 +02:00
akallabeth
11b7ca4753
fix #10449
2024-08-08 08:16:40 +02:00
akallabeth
86f2b1e26a
[core,capabilities] skip stream bytes read in substream
2024-07-25 11:19:15 +02:00
akallabeth
2f5570cd67
Merge pull request #10423 from akallabeth/action_script
...
[client,X11] fix ActionScript
2024-07-25 10:00:26 +02:00
Armin Novak
44b07721ec
[client,X11] fix ActionScript
...
* Unify script calls
* Update documentation
* Fix home directory
2024-07-25 09:42:03 +02:00
Armin Novak
f167ccff4e
[core,capabilities] Fix SurfaceCommandsSupported
...
* Initialize in settings_new with everything supported
* merge client & server settings
* Write capabilities from current SurfaceCommandsSupported setting
2024-07-24 21:54:54 +02:00
Armin Novak
850389de44
[core,capabilities] pass RemoteFxRlgrMode and RemoteFxCodecMode
2024-07-24 21:54:51 +02:00
Armin Novak
22585a31ce
[core,capabilities] fix NSCodecId and SurfaceCommandsSupported parsing
2024-07-24 21:54:42 +02:00
Armin Novak
96b945aa83
[settings] Added SurfaceCommandsSupported setting
2024-07-24 21:54:39 +02:00
Armin Novak
e888769bf6
[core,capabilities] fix RFX capability parsing
...
* Require SURFCMDS_STREAM_SURFACE_BITS
* Improve error logging
* Improve content length checks
2024-07-24 21:54:30 +02:00
Armin Novak
268bf25f02
[settings] add RemoteFxRlgrMode setting
2024-07-24 21:54:26 +02:00
Armin Novak
9e71b423cd
[warnings] fix various compiler warnings
2024-07-24 11:08:20 +02:00
akallabeth
776083234b
[warnings] fix unused-but-set-variable
2024-07-23 09:14:19 +02:00
Armin Novak
a332613ea1
[core,update] force deactivate AsyncUpdate
...
With recent releases various race conditions with AsyncUpdate have been
found. As there is no easy way to properly fix this deactivate it for
the time being and warn users about it.
2024-07-22 10:24:11 +02:00
akallabeth
3cd3f9a126
[core,gateway] add NULL checks in send function
2024-07-16 15:45:27 +02:00
David Fort
bbb6adc9c4
[core] also recognize mth:// routing token
...
With Azure you also have some routing token of the form mth://xxxxxxx, so accept
these as token.
2024-07-09 11:07:06 +02:00
akallabeth
17d195b7a6
[core,capabilities] fix CapsProtocolVersion
...
if the wrong version 0x0000 is sent (older FreeRDP based servers)
correct the value to TS_CAPS_PROTOCOLVERSION (0x0200) along with a
warning message.
2024-07-06 12:48:11 +02:00
Armin Novak
7a245a5949
[core,gateway] fix reading TSG strings
...
The [MS-TSGU] 2.2.9.2.1.6 TSG_PACKET_QUARENC_RESPONSE::certChainLen
represents the number of WCHAR not the size in bytes.
2024-07-03 15:37:44 +02:00
akallabeth
438cf4b333
[core,gateway] fix freerdp_tls_new call
2024-07-02 11:48:54 +02:00
akallabeth
7b7bea276c
Merge pull request #10327 from mfleisz/fix/auth-last-error
...
core: Fix handling of logon errors during nla_client_begin
2024-07-01 17:16:38 +02:00
Martin Fleisz
d8cd7c2f38
core: Fix handling of logon errors during nla_client_begin
...
Under certain circumstances `InitializeSecurityContext` returns an error
if a wrong password was provided. This PR checks the returned status
code and correctly sets the last error code. This allows a client
application to ask the user again for credentials.
A scenario where this happens is when a user tries to connect with a wrong
password and both machines are joined to the same domain.
2024-07-01 14:54:53 +02:00
akallabeth
ab39072ce9
[core,tcp] fix memory leak
2024-07-01 11:07:39 +02:00
akallabeth
562fa8a03d
[core,tcp] Improve IPv4 or IPv6 connect
...
* Fix +ipv6 option, now fall back to IPv4 if no IPv6 entry found
* Add new option ForceIPvX to fail connect if no such entry is found
2024-06-28 09:07:33 +02:00
akallabeth
431a96fe85
[core,gateway] properly log location
2024-06-27 08:46:48 +02:00
akallabeth
1de8f5a7aa
[core,gateway] pass rdpContext
...
* pass rdpContext to freerdp_tls_new
* check freerdp_shall_disconnect_context in http_response_recv
2024-06-27 08:42:08 +02:00
akallabeth
559e770982
[gateway,http] implement proper timeouts
...
Implement request timeouts in http_response_recv, use TcpConnectTimeout
as default
2024-06-26 22:53:09 +02:00
akallabeth
3c4c827358
[winpr,timezone] Fix GetDynamicTimeZoneInformation
...
* Improve logging, use single function to dump data.
* Use GetDynamicTimeZoneInformation as man getter,
GetTimeZoneInformation only retrieves a subset.
2024-06-26 20:59:43 +02:00
akallabeth
9b89d8fa23
[core,timezone] improve timezone logging
...
* Unify logging to single function
* Add helpers to format magic numbers as strings
2024-06-26 20:37:41 +02:00
akallabeth
370975cbd4
Merge pull request #10288 from akallabeth/http_read_timeout
...
[core,gateway] use TcpConnectTimeout for read as well
2024-06-25 09:17:06 +02:00
Armin Novak
0810e7d944
[core,settings] enable SupportDynamicTimeZone
...
FreeRDP based clients & servers support it. If a remote does not support
it it is not send/received.
2024-06-24 14:38:39 +03:00
Armin Novak
c4fe6e78e5
[core,tcp] return errno ETIMEDOUT on timeout
...
BIO_C_WAIT_READ and BIO_C_WAIT_WRITE now set errno = ETIMEDOUT
if a timeout occurred.
2024-06-24 10:45:12 +02:00
Armin Novak
8df1a9a52a
[core,tcp] replace macros with inline functions
2024-06-24 10:43:24 +02:00
akallabeth
66f31e5bb9
[core,gateway] use TcpConnectTimeout for read as well
...
http_response_recv might never receive an answer, so do wait for input
and fail if the timeout is exceeded.
2024-06-24 10:38:52 +02:00
akallabeth
e3809650bb
[core,keyboard] Prefer FreeRDP_KeyboardCodePage
...
if FreeRDP_KeyboardCodePage is set use the default keyboard layout for
the codepage instead of the autodetected one.
2024-06-20 10:27:50 +02:00