Commit Graph

4505 Commits

Author SHA1 Message Date
Armin Novak
3c72cc3306 Refactored rdpdr and dependent channels
* Move parsing code to core library
* Move definitions to public API to allow access from outside
* Move smartcard related parsing to core library
2022-01-11 12:34:43 +01:00
akallabeth
8c543b1de2 Added smartcard emulation layer 2022-01-11 12:34:43 +01:00
Armin Novak
98348ef62a Removed ndr.h from WinPR 2021-12-23 14:27:12 +01:00
Armin Novak
3de6af34ed Removed unused module winhttp 2021-12-23 14:27:12 +01:00
Armin Novak
0fb83a304d Adjusted channelID and server SetVolume data types 2021-12-20 08:11:00 +01:00
Armin Novak
f3df9a520e Fixed H264 related warnings 2021-12-20 08:11:00 +01:00
akallabeth
feb6d9ae5c
Set last error on activation timeout (#7502) 2021-12-17 17:28:41 +01:00
Armin Novak
e5ce4b49e7 Added logging in gcc_write_client_monitor_data 2021-12-17 10:06:54 +01:00
akallabeth
2d9416e499 gcc core data cleanup 2021-12-16 12:54:53 +01:00
akallabeth
19ee9f0cce Fix freerdp_channels_process_message cleanup
Not all code paths did clean up the message, specifically WMQ_QUIT
2021-12-16 10:53:17 +01:00
Armin Novak
d248b635a5 Added Redirect callback 2021-12-15 14:38:13 +01:00
Armin Novak
b545094664 Cleaned up redirection code 2021-12-15 14:38:13 +01:00
Armin Novak
bb0eeeb264 Use stack string buffer for ClientHostname and ID 2021-12-15 13:36:15 +01:00
Armin Novak
007e061f77 Fixed capability debugging 2021-12-15 13:36:15 +01:00
akallabeth
97ae26d47f Fixed rdp_write_logon_info_v2:
Set size field according to
[MS-RDPBCGR] 2.2.10.1.1.2 Logon Info Version 2 (TS_LOGON_INFO_VERSION_2)
2021-12-15 13:36:15 +01:00
akallabeth
9d7e2cc3d0 Code refactoring, use initializer instead of memset 2021-12-15 13:36:15 +01:00
akallabeth
94685c9482 Updated freerdp_settings_set_string
Allow NULL argument with length, creates an empty string
2021-12-15 13:36:15 +01:00
David Fort
a6cadd6f97 winpr: fix compilation for mingw
Depending on the version of mingw some export macro aren't always defined.
2021-12-14 14:12:01 +01:00
Armin Novak
874f47f01e Added more error checks to nego 2021-12-14 13:46:34 +01:00
Armin Novak
72d6671d5f Improved bitmap chache input checks 2021-12-14 13:46:34 +01:00
akallabeth
1265114be7
Fixed freerdp_disconnect (#7479)
Added a missing call to freerdp_abort_connect to ensure all
threads terminate in an orderly fashion
2021-12-06 09:41:05 +01:00
Fabian Vogt
10ee86527a Make H.264 codec optional during runtime
It's possible that FreeRDP was built against FFmpeg, but it doesn't support
H.264. In that case, just continue without H.264 support instead of failing
hard before even trying to connect.

This is especially useful for Linux distributions which can't ship H.264
support in FFmpeg out of the box (patent issues), but allow enabling H.264
later by installing a version of FFmpeg which has it enabled.
2021-12-06 09:19:52 +01:00
akallabeth
b008e83179 Fixed API const correctness 2021-12-01 10:28:53 +01:00
Armin Novak
3325ac450e Fixed #7454: When error_info is received abort
If an error_info with a failure is received, call
freerdp_abort_connect to terminate the connection.
2021-11-30 08:20:29 +01:00
akallabeth
6ee60ea15a Fixed various warnings 2021-11-30 08:20:19 +01:00
akallabeth
e13efff01a
Abort transport_read_layer loop when abortEvent is set. (#7464) 2021-11-26 12:30:43 +01:00
akallabeth
5537667e0c
Removed WINPR_ASSERT with wrong assertions. (#7444) 2021-11-16 14:03:53 +01:00
David Fort
67986ea298 Fix compilation with mingw
This patch addresses some issues when compiling against mingw. With these changes
FreeRDP can be compiled out-of-the box on a Ubuntu 20.04.
2021-11-15 09:23:16 +01:00
Armin Novak
67f632982a Fixed YUV decoder API
Need to verify widht and height more rigorously.
2021-11-15 09:23:00 +01:00
akallabeth
755f2ce218 Ignore redirection password in case of smartcard auth 2021-11-05 13:00:21 +01:00
akallabeth
58b24f13fe
Add an option to add the plugin and extension to rpath (#7425) 2021-11-04 08:59:38 +01:00
Armin Novak
69ff22e2a3 Fixed #7332: Missing NULL check 2021-11-02 09:52:01 +01:00
Steve Pronovost
78fd3b8d6c Code review feedback from FreeRDP folks
Before rolling into path for easy review.
2021-10-21 13:11:21 +02:00
Steve Pronovost
49d9e61884 Fix protocol violation when uploading large ICON
When uploading large ICON (96x96), we end up growing the stream
mid-update. Stream_EnsureCapacity end up reallocating the stream
with a larger capacity to accomodate the large ICON size, but in
doing so, also updating the sealed length for the data currently in
the stream. This breaks the assumption between update_begin_paint
and update_end_paint where the sealed lenght is used to keep track
of the location where we need to update the orders counts after
we're done accumulating update. As a result of the growth and lost
of that location, the number of orders is written to the wrong
location and the resulting stream is invalid which result in a
protocol violation and a connection drop.

The current fix uses a new offsetOrder in the update object to
keep track of where update_end_paint needs to write the number
of orders contained. I think a better fix would be for
Stream_EnsureCapacity to preserve the sealead length of the
stream on growth, but this has a much more significant impact and
careful analysis needs to be done to ensure this doesn't violate
other assumption. Need to follow up with FreeRDP developer to get
their take on this one.
2021-10-21 13:11:21 +02:00
Steve Pronovost
dba2a7e4a6 Add support for HyperV socket connection
This commit add support for connection over HyperV socket (hvsock) which are
used in scenario like WSLg on Windows. hvsock requires accept and close
to monitor in addition to read. Also mark hvsock connection as local.
2021-10-21 13:11:21 +02:00
Steve Pronovost
592f8d95be Fix connection negotiation with mstsc/msrdc
mstsc/msrdc includes an optional correlation info
(RDP_NEG_CORRELATION_INFO) during connection negotiation. This confuses
FreeRDP which interpret this as a cookie and eventually fails the
negotiation, preventing a successful connection to these RDP client.

This commit addresses 3 things.

1) When processing connection token or cookie, skip if the remaining
bytes are neither.
2) After processing the RDP_NEG_REQ info, skip the optional correlation
info (RDP_NEG_CORRELATION_INFO) if one is present.
3) Allow local connection without server certificate when the client
inherently trust the server.
2021-10-21 13:11:21 +02:00
akallabeth
a71235be74
Cert update fix (#7382)
* Fixed certificate thumbprint default format

* Fixed VerifyChangedCertificateEx call arguments
2021-10-21 09:07:52 +02:00
Alexandru Bagu
95cb4672b3 fix build issues for VS2010 2021-10-20 08:35:16 +02:00
Alexandru Bagu
07ea60e960 add optional support for win32 console
* add option to build as console by using WITH_WIN_CONSOLE
* add passphrase read from stdin for Win32
* fix windows authentication with stdin password
* allow redirected stdin to be used for stdin input
* flush stdout to help with automation
* use stdin when /from-stdin is present
* add error log for stdin flag but stdin redirected
2021-10-20 08:35:16 +02:00
Armin Novak
0e991a1078 Use original height for h264 context, but allocate padded height. 2021-10-19 15:41:49 +02:00
Armin Novak
76c419e690 Remember avc420 allocation width and height 2021-10-19 15:41:49 +02:00
Armin Novak
5037659859 Fixed freerdp_device_clone for serial devices 2021-10-18 16:09:13 +02:00
Armin Novak
ceee946e0b Fixed warnings 2021-10-18 16:09:13 +02:00
Armin Novak
95d9365dc8 Fixed warnings 2021-10-18 16:09:13 +02:00
Armin Novak
ed11a22edb Fixed device copy 2021-10-18 16:09:13 +02:00
Armin Novak
be0433a1fb Use freerdp_settings_set_pointer_len instead of calloc 2021-10-18 14:48:27 +02:00
Armin Novak
0848ad1a71 Use realloc and Stream_StaticConstInit for certificate 2021-10-18 14:48:27 +02:00
Armin Novak
d491031be2 Fixed copy of ServerCertificate 2021-10-18 14:48:27 +02:00
Armin Novak
dec4cb4d73 Fixed rdpdr device name setting 2021-10-18 12:49:38 +02:00
Armin Novak
990400aedd Close SVC channels in WTSVirtualChannelClose 2021-10-18 12:49:38 +02:00