Armin Novak
e2b5f41b2c
[settings] regenerated getter with updated script
2022-12-22 18:50:05 +01:00
Armin Novak
204c43a22c
[tools] fixed settings getter generator
...
use proper default error return values by type
2022-12-22 18:50:05 +01:00
Armin Novak
22c47b7def
[server,proxy] use cached channel id
2022-12-22 15:09:03 +01:00
Armin Novak
c4bbe09649
[server,proxy] rewritten Stream_CheckAndLogRequiredLengthRx
...
make it windows compatible
2022-12-22 15:09:03 +01:00
Armin Novak
b614a2da37
[server,proxy] improve rdpdr channel logging
2022-12-22 15:09:03 +01:00
Armin Novak
37454c7420
[utils] improve rdpdr packet dump
2022-12-22 15:09:03 +01:00
Armin Novak
833a1b2d24
[channel,rdpdr] use wLog* for server logging
2022-12-22 15:09:03 +01:00
Armin Novak
d5c5473aa9
[channel,rdpdr] use wLog* for client logging
2022-12-22 15:09:03 +01:00
Armin Novak
b917dbad32
[winpr,stream] add length check helper
2022-12-22 15:09:03 +01:00
Armin Novak
318b55adc1
[rdpdr] filter empty device announce
2022-12-22 15:09:03 +01:00
Armin Novak
b988e8fba7
[server,proxy] fix rdpdr intercept mode
2022-12-22 15:09:03 +01:00
Armin Novak
7a95c7343d
[winpr,wlog] fixed noisy wlog filter
2022-12-22 15:09:03 +01:00
Armin Novak
c11f47db89
[server,shadow] do treat deactivate/reactivate
...
if a resolution change is required, run postconnect just as if it was
successful.
2022-12-22 15:09:03 +01:00
Armin Novak
5680a347d2
[server,proxy] fixed dump config elements
2022-12-22 15:09:03 +01:00
Armin Novak
c82ddbbcc4
[server,proxy] fixed logger namespace
2022-12-22 15:09:03 +01:00
Armin Novak
0e25f99602
Revert "[server,shadow] rdp_server_reactivate do not wait"
...
This reverts commit 34f44ce4a1
.
2022-12-22 15:09:03 +01:00
akallabeth
9a80afeb08
[client,cmdline] add support for .rdpw file extension
2022-12-21 16:11:57 +01:00
David Fort
b283daafd7
tls: cleanup and add some methods to do handshakes asynchronously
...
This patch does a few cleanups to allow creating TLS and DTLS contexts.
It also introduces tls_accept_ex and tls_connect_ex that can start the SSL handshake,
and it can be finished by calling tls_handshake
2022-12-19 10:46:06 +01:00
Armin Novak
d6ab9d5f63
[server,shadow] abort connection if a resize fails
...
The shadow server tries to resize the client to use a compatible
resolution. If that fails, e.g. if there is another resize request after
the disconnect/reconnect sequence, abort the connection.
2022-12-19 10:38:18 +01:00
Armin Novak
34f44ce4a1
[server,shadow] rdp_server_reactivate do not wait
...
in rdp_server_reactivate do not wait for the server to change state, let
the peer state machine handle that.
2022-12-19 10:38:18 +01:00
akallabeth
29c92af194
[channels,rdpgfx] fixed logger setup
2022-12-18 15:14:30 +01:00
akallabeth
06c070fc4d
[gfx] moved rdpgfx_get_codec_id_string to utils
...
the gfx related stringify helpers are nice to have outside the channel
too so that meaningful logmessages can be written.
2022-12-18 15:14:30 +01:00
akallabeth
b56bef23dd
[proxy] clean up config parser
...
* Use constant strings to identify sections, keys, bool, ...
2022-12-18 15:14:30 +01:00
akallabeth
76bd3ee8f8
[proxy] use proxy logging macros
...
use proxy logging macros so we know which session a message belongs to
2022-12-18 15:14:30 +01:00
akallabeth
59e644ea2e
[core] add state_run_continue function
...
this function is a helper to evaluate a state_run_t for repeated state
transition
2022-12-18 15:14:30 +01:00
akallabeth
784becd946
[winpr,image] add winpr_bitmap_write_ex
...
Added a helper function writing a bitmap from an image that has a stride
that is not width * <bytes per pixel>
2022-12-16 11:03:13 +01:00
akallabeth
9d6a06a197
[channels,rdpdr] fix misleading log entries
...
* Use __FUNCTION__ instead of copying the name to the message
* Fix freerdp_rdpdr_dtyp_string argument to get correct name
2022-12-16 09:42:44 +01:00
Armin Novak
37d7b98449
[channels,rdpdr] refactoring server callbacks
...
* Add callbacks for all messages exchanged between client and server
to allow server implementations to intercept them.
* Unify logging
* Add device tracking
2022-12-15 14:57:29 +01:00
akallabeth
3b5347e229
[channel,dvc] unify and log DVC callbacks
...
* Added a check function that logs errors if the required callbacks are
not set.
* Encapsulate calling in (static) helper functions
2022-12-15 14:57:29 +01:00
akallabeth
1f16250a7b
[channels,rdpsnd] prevend multiple OnOpen calls
...
due to the nature of the sound channel there are multiple listeners
waiting for the server to open the channel and most of them are called
by the server. Only open the channel once.
2022-12-15 14:57:29 +01:00
akallabeth
a2329281a4
[channels,rdpdr] fix possible surface leak
...
* Ensure DeleteSurface is called before CreateSurface: Under certain
conditions it is possible that there already exists a surface with the
same id as the new CreateSurface PDU. Delete the already existing
instance in that case before creating a new one.
* Simplify surface cleanup on shutdown: Use HashTable_Foreach
2022-12-15 14:57:29 +01:00
Armin Novak
df4c076946
[channels,rdpdr] abort on invalid device request
...
If a request references a non existing device abort.
2022-12-15 14:57:29 +01:00
Armin Novak
186e97e0a8
[channels,rdpdr] better logging of device manager
...
if a device could not be found print a better log message
2022-12-15 14:57:29 +01:00
Armin Novak
231babef5e
[channels,rdpdr] improve log message
...
try to stringify magic numbers in log message
2022-12-15 14:57:29 +01:00
akallabeth
b5e2c2a81d
[settings] added stringify function for RDPDR_RTYP_*
2022-12-15 14:57:29 +01:00
Armin Novak
51e49b4329
[winpr,asn] Fixed a compiler warning
...
WinPrAsn1DecReadEnumerated expects an argument of type
WinPrAsn1_ENUMERATED* so ensure the variable referenced is of said type.
2022-12-15 14:57:29 +01:00
Armin Novak
a8d3693b27
[core,credssp] fix conversion from unicode
...
there was a mixup in the conversion and WCHAR was treated as utf8.
2022-12-15 14:57:29 +01:00
Martin Fleisz
103c0a983c
core: Fix handling of alternate shell if set to an empty string
...
In case alternate shell was set to an empty string ("") the old code
would try to convert it to a WChar string. This resulted in a NULL
pointer being returned by `ConvertUtf8ToWCharAlloc` that was interpreted
as an error and the connection failed.
2022-12-15 11:56:05 +01:00
akallabeth
8c6ee2061b
[client,cmdline] fixed /gfx parsing
...
* Fixed a bug not activating AVC444 when requested
* Unified legacy /gfx-h264 parsing with /gfx
2022-12-15 11:20:34 +01:00
Bernhard Miklautz
e530999156
new [tls/server]: disable client side renegotiation
2022-12-15 11:06:19 +01:00
Armin Novak
3f63365652
[build] make LTO a configuration option
2022-12-14 16:09:46 +01:00
Armin Novak
74f273e593
[core,info] improve rdp_read_info_null_string
...
* Removed comments with invalid assumptions
* Added arguments to rdp_read_info_null_string to indicate if the string
is expected to be '\0' terminated and what is actually read for error
logs
2022-12-14 11:52:00 +01:00
Armin Novak
0a7d19ee7a
[core,info] 0 check cbClientAddress and cbClientDir
...
if one of the above values is 0 do not add the size for the '\0'
2022-12-14 11:52:00 +01:00
Armin Novak
87ae9dec0d
[core,info] ensure stream length
...
ensure the stream is large enough for all info packets
2022-12-14 11:52:00 +01:00
Armin Novak
8af5f15769
[core,info] enforce cbClientDir limits
...
the cbClientDir field limits defined in [MS-RDPBCGR] 2.2.1.11.1.1.1
Extended Info Packet (TS_EXTENDED_INFO_PACKET) are now properly enforced.
2022-12-14 10:30:36 +01:00
Armin Novak
0da0f5ca54
[core,info] enforce extended info limits
...
the cbClientAddress field limits defined in [MS-RDPBCGR]
2.2.1.11.1.1.1 Extended Info Packet (TS_EXTENDED_INFO_PACKET) are now
properly enforced.
2022-12-14 10:30:36 +01:00
akallabeth
4ab9fb4425
[channels,rdpsnd] Add PlayEx callback
...
This new callback is preferred over the older Play callback and provides
the AUDIO_FORMAT as additional argument.
2022-12-14 10:17:30 +01:00
akallabeth
8aa880c0ba
[channels,rdpsnd] Callback on server format
...
When the server sends the format list to the client call a device
callback that provides the details to the audio backend.
2022-12-14 10:17:30 +01:00
David Fort
a1febe11f0
multi-transport: refactor multi-transport handling
...
Prepare the parts of the code that handle multi-transport to really establish
UDP connections and manage alternative transports.
2022-12-13 15:54:33 +01:00
David Fort
67e1c2dccd
gcc: fix handling of multi-transport flags
...
Multi-transport flags must be merged between local and remote so that on both sides
we know the shared parameters. Also this patch sends multi-transport GCC block when
multi-transport is enabled.
2022-12-13 15:54:33 +01:00