Commit Graph

294 Commits

Author SHA1 Message Date
akallabeth 97e183d082 With #8292 ClusterInfoFlags became application settable
This pull adds the (previously lost) default value to keep compatible
with older code that does not care about that field.
2022-10-14 09:41:54 +02:00
Armin Novak 3cf0bb91d6 Updated supported RDP versions
* New defines for 10.8, 10.9, 10.10, 10.11 protocol versions
* New function returning a string representation of the protocol version
* Use 10.11 by default now
2022-10-12 21:42:12 +02:00
akallabeth ed0f258423 Use GFX small cache by default
RAILS does have some problems if this is not enabled and there is
no real benefit for not setting it, so default it
2022-10-06 16:20:47 +02:00
Armin Novak b2df9207e4 Fixed #8054: multimonitor settings 2022-07-07 14:24:07 +00:00
David Véron a3712521a8 TLS version control
* added settings for minimal and maximal TLS versions supported
* refactorisation of the force TLSv1.2 setting
2022-07-07 07:13:11 +00:00
akallabeth cb96e6143d Fixed -Wshadow warnings 2022-06-30 10:49:02 +02:00
Armin Novak 40ae6731c9 Fixed issues with settings clone 2022-06-27 14:27:12 +02:00
akallabeth 7bb1bc08c2
Settings getter (#7870)
* Added settings key helper tests

* Added test for freerdp_settings_set_value_for_name

* Added freerdp_device_equal and tests for freerdp_device_*
2022-05-02 14:20:12 +02:00
akallabeth ec699f6c75 scanbuild fixes 2022-04-28 12:37:19 +02:00
akallabeth 73cdcdfe09
Logging and parser fixes (#7796)
* Fixed remdesk settings pointer

* Fixed sign warnings in display_write_monitor_layout_pdu

* Use freerdp_abort_connect_context and freerdp_shall_disconnect_context

* Added and updates settings

* info assert/dynamic timezone

* mcs assert/log/flags

* Fixed and added assertions for wStream

* Unified stream length checks

* Added new function to check for lenght and log
* Replace all usages with this new function

* Cleaned up PER, added parser logging

* Cleaned up BER, added parser logging

* log messages

* Modified Stream_CheckAndLogRequiredLengthEx

* Allow custom format and options
* Add Stream_CheckAndLogRequiredLengthExVa for prepared va_list

* Improved Stream_CheckAndLogRequiredLength

* Now have log level adjustable
* Added function equivalents for existing logger
* Added a backtrace in case of a failure is detected

* Fixed public API input checks
2022-04-19 14:29:17 +02:00
Armin Novak e5b50c550b Use GetComputerName instead of gethostname 2022-03-22 10:59:58 +01:00
Armin Novak 4d03d7c0bf Freerdp remove #ifdef HAVE_CONFIG_H 2022-03-03 11:26:48 +01:00
Armin Novak b2ad47a809 Reorganized FreeRDP headers 2022-03-03 11:26:48 +01:00
David Fort cb351a099d Enable smartcard NLA logon 2022-02-24 08:52:25 +01:00
Armin Novak bf9f1eccc1 Fixed issued with mingw build 2022-02-18 08:38:28 +01:00
Armin Novak e6877e8135 Hardened registry read in settings 2022-02-15 13:43:36 +00:00
Armin Novak 339cdded45 Fixed memory sanitizer warnings 2022-01-11 14:32:18 +01:00
Armin Novak d491031be2 Fixed copy of ServerCertificate 2021-10-18 14:48:27 +02:00
Armin Novak 7d80c74e97 Cleaned up RDPDR channel interhitance
* All channels inheriting from RDPDR_DRIVE base struct
* Add functions to create/free a new device of a type
* Fixed settings array resize code, prevent 0 sizes
2021-10-18 09:21:02 +02:00
Armin Novak 73fbbcf0fb Fixed const warnings 2021-10-14 13:04:59 +02:00
akallabeth 41aaafef77 Added unicode input for xfreerdp 2021-09-17 07:21:45 +02:00
Armin Novak f515bd4560 Fixed shadowing and type errors 2021-08-24 10:45:57 +02:00
akallabeth 6deb65175f Added GFX planar and rfx encoder to shadow 2021-07-01 11:56:17 +02:00
Armin Novak f1dc3a0494 Fixed use of deprecated function 2021-06-21 13:27:39 +02:00
Armin Novak 2a91afb0cf Added adjustable tcp connect timeout 2021-06-08 08:21:47 +02:00
akallabeth b494a193db Refactored certificate API:
* Proper encapsulation
* known_hosts2 backend extended (storing PEM)
* New backend storing each host certificate in a file
2021-05-11 08:00:18 +02:00
Biswapriyo Nath 3a1168cbda Check _MSC_VER for MSVC specific pragma directives. 2021-04-28 17:11:31 +02:00
Armin Novak 5fc2290c03 Added option to disable gateway websocket support 2021-03-08 14:33:05 +01:00
akallabeth fd902fb345
Win fixes multiple warnings + YUV decoder crash (#6873)
* Fixed conditional reading of regisrty values.

* Fixed sign warnings

* Removed use of deprecated settings functions

* added missing include

* Removed unused functions.

* Refactored registry reading functions

* Fixed TCHAR preprocessor for printf

* Fixed compilation warnings.

* Added bounding rectangle check for multithreadded yuv decoder

* Ensure yuv step calculation height is always >0

* Deactivate multithreadded YUV decoder until artifacts are fixed.
2021-03-08 12:48:22 +01:00
akallabeth c67e4df96b Added getter/setter for settings 2021-03-01 11:03:52 +01:00
akallabeth 6a908d8115 Fixed formatting and source/destination length use 2021-02-12 12:00:58 +01:00
mingfang 99fa312079 libfreerdp: core: deep copy ServerCertificate 2021-02-12 12:00:58 +01:00
Martin Fleisz e2620f0faa core: Enable network auto detection by default 2021-02-04 15:23:57 +01:00
Armin Novak 8187ab7732 Fix ColorFidelity use 2021-01-18 09:41:13 +01:00
Armin Novak 57b58df806 Fix color fidelity issues with windows 7 2021-01-13 16:10:05 +01:00
bolt 03ced3d8f0 Add support for -grab-mouse, to prevent the client from moving the user's pointer 2020-11-20 09:40:00 +01:00
Simon Tatham 1dc8198803 Command-line option to choose an X selection.
I personally find it more convenient to have pasted data written to
the X11 PRIMARY selection, so that I can paste it with a fast middle-
button click, than to write to CLIPBOARD which typically needs a key
sequence or menu action.

This commit adds a command-line option to let me express that
preference: now I can say "/clipboard:use-selection:PRIMARY" on the
command line, which not only enables clipboard transfer but also says
which X selection I want it to talk to. The previous options
"+clipboard" and "-clipboard" are also still supported.
2020-11-20 08:34:20 +01:00
Armin Novak 816e792e3f Fixed unit tests run under memory sanitizer 2020-09-07 10:42:28 +02:00
akallabeth 4d7cddd7c6 Use settings string setter to overwrite computername 2020-09-02 12:13:20 +02:00
akallabeth 319afb082b Refactored settings clone/free, extended tests 2020-05-20 15:10:07 +02:00
akallabeth cf2f674283 Initialize KeyboardHook with define instead of magic number 2020-03-18 17:22:08 +01:00
Armin Novak d3b36ab299 Added CertificateAcceptedFingerprints to settings 2020-03-06 11:37:35 +01:00
Martin Fleisz baca062321 core: Fix and extend populate rdp file from settings
This PR contains the following changes:
- Get rid of unused SettingsModified array (kept in the settings struct for ABI
compatibility)
- Fix and extend freerdp_client_populate_rdp_file_form_settings (wrote <null> strings to the rdp file, missed a lot of settings)
- Set KeyboardHook default value to 2 (hook in fullscreen) just as mstsc
does
2020-01-22 14:18:30 +01:00
Armin Novak 4766f5204b Enabled YCoCg for planar. 2020-01-14 14:23:43 +01:00
David Fort 0cc3af2282
Merge pull request #5796 from akallabeth/rdp_10_7_large_pointers
Added RDP 10.7 large pointer support
2020-01-14 10:17:13 +01:00
Armin Novak c24da9e856 Fixed freerdp_settings_new error cleanup. 2020-01-07 10:49:17 +01:00
Armin Novak 323491dab1 Support for RDP protocol version 10.7
* Adds support for 10.7 protocol version
* Uses it as client default

Signed-off-by: Armin Novak <armin.novak@thincast.com>
2019-12-19 09:54:11 +01:00
Armin Novak 182d0ce548 Added RDP 10.7 large pointer support
* Implements [MS-RDPBCGR] version 51 large pointer support.
* Logs unknown large pointer capability flags as warning.

Signed-off-by: Armin Novak <armin.novak@thincast.com>
2019-12-19 09:53:40 +01:00
Armin Novak 6482a638f4 Increased client build number
According to [MS-RDPESC] 1.7 Versioning and Capability Negotiation
the client build is used to determine feature / behaviour.
Announce something more modern than Windows XP SP3.

Signed-off-by: Armin Novak <armin.novak@thincast.com>
2019-12-18 12:22:18 +01:00
Armin Novak 639174e7d3 Added configurable TcpKeepAliveDelay setting. 2019-11-07 16:07:18 +01:00
Armin Novak 09dd01a78f Implemented configurable tcp keepalive and timeout detection 2019-11-07 13:03:33 +01:00
Armin Novak 72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Martin Fleisz 645cd3208f core: Fix handling of PromptForCredentials setting
The prompt for credentials setting was incorrectly used in FreeRDP. If
this setting is set to 1 in a rdp file the client should prompt for
credentials even if it has credentials stored for this connection. If
the setting is set to 0 the client should either use the stored
credentials (if present) or ask for username/password otherwise.
This PR changes the old handling (if PromptForCredentials was set to 0
no credential prompting was done) to the desired behavior.
2019-08-20 16:25:08 +02:00
kubistika 749c88ab0d libfreerdp: core: copy redirection info in freerdp_settings_copy 2019-08-14 19:39:34 +02:00
kubistika 13fb3ffc39 libfreerdp: core: fix const correctness of freerdp_settings_clone 2019-07-17 16:20:42 +02:00
kubistika c1aa6f2584 libfreerdp: settings: Fix formatting in freerdp_settings_copy 2019-07-16 13:47:35 +02:00
kubistika 0c35442843 libfreerdp: settings: call key_clone in freerdp_settings_copy 2019-07-16 13:47:35 +02:00
Armin Novak 1916da35ee Added freerdp_settings_copy 2019-07-16 13:47:35 +02:00
Armin Novak 3b38479ec5 Added PromptForCredentials setting. 2019-07-15 12:01:30 +02:00
Armin Novak 2cc714a57d Updated RAILS implementation
* Implement new messages and callbacks
* Announce most recent channel features
* Added settings to configure flags to announce
2019-05-08 17:25:15 +02:00
Armin Novak f51a9bafcc Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak 69f4c4b4af Fixed version magic mismatch with [MS-RDPBCGR] 2019-02-27 16:30:55 +01:00
Armin Novak 753b9c7ce9 Enable server heartbeat PDU by default. 2019-02-07 10:10:57 +01:00
Armin Novak 7610917a48 Disabled offscreen and bitmap cache by default. 2019-02-07 10:10:57 +01:00
Martin Fleisz abd5cf51ff
Merge pull request #5180 from chipitsine/coverity
resolve several issues found by coverity
2019-01-07 15:21:03 +01:00
Ilya Shipitsin e14ba2018f remove identical code, found by coverity 2019-01-04 20:55:28 +05:00
Hendrik Woltersdorf f561ef957e enable fonts smoothing per default 2018-12-29 09:16:05 +01:00
Armin Novak 6a9fa3dcbd Refactored floatbar, extended command line settings. 2018-12-07 15:22:28 +01:00
Armin Novak 7d89ea22d4 Unified initialization of OrderSupport
Added a library internal function freerdp_settings_set_default_order_support
which initializes the OrderSupport array of settings.
Now clients no longer need to set this up on their own, if they
do not implement their own hardware accelerated order processing.
2018-11-23 10:11:50 +01:00
Bernhard Miklautz b7354ce438
Merge pull request #4940 from akallabeth/check_window_order_support
Added checks for order type window support.
2018-11-19 09:15:14 +00:00
David Fort e118d14f6a cmdline: add window-position argument to set initial window position
This is useful if you want the window to be at a given position. The patch also mutualizes
the parsing of <xpos>x<ypos> or <width>x<height> arguments.
2018-11-15 14:40:03 +01:00
Armin Novak c0b13cf43f Added checks for order type window support. 2018-11-15 09:52:50 +01:00
Armin Novak 138eb13fea Updated RDP_VERSION definitions. 2018-11-14 10:14:48 +01:00
Bernhard Miklautz 1222e7060b new [crypto/tls]: add support to set tls security level
The newly introduced option /tls-seclevel can be used to set the tls
security level on systems with openssl >= 1.1.0 or libressl.
As default level 1 is used as higher levels might prohibit connections
to older systems.
2018-11-08 11:13:15 +01:00
Armin Novak 88bd262134 Send brush support level from settings. 2018-10-16 13:48:29 +02:00
Armin Novak ca3fb26230 Deactivated unimplemented orders. 2018-10-15 15:22:50 +02:00
Armin Novak f88ed950d3 Fixed various issues with primary orders. 2018-10-15 14:30:58 +02:00
akallabeth 0b8a66188c
Merge pull request #4865 from mmattes/feature/floatbar
Feature/floatbar for X11
2018-09-25 16:34:20 +02:00
Armin Novak dfb1049653 Fix #4851: Software GDI is now default 2018-09-20 10:44:03 +02:00
Markus Mattes 21e4804a7f implemented floatbar for x11 2018-09-18 21:25:51 +02:00
Armin Novak 0de43c8b85 Added /smartcard-logon option to set flag. (Stripped version of #4837 by @informatimago) 2018-09-04 15:50:03 +02:00
Armin Novak 77eb93b4b7 Made internal functions static to help compiler optimize. 2018-07-10 12:21:38 +02:00
Armin Novak c9cebf6ed6 Remember accepted PEM cert to avoid unnecessary user input. 2018-07-10 11:27:58 +02:00
Mariusz Zaborski 00374382d9 There is no reason to restrict nSize to 2 the hostname can be empty on
UNIX-like machines.
2018-04-06 21:07:51 +02:00
Jacco Braat b592684734 Added to rdp file parsing: gatewayaccesstoken:s:<token>
Added to commandline parsing: /gat:<token>
Added GatewayAccessToken to sings
2018-02-15 10:56:57 +01:00
Brent Collins d98b88642b Add new command-line option to force xfreerdp into a fips compliant mode.
This option will ensure that NLA is disabled(since NTLM uses weak crypto algorithms), FIPS
encryption is enabled, and ensure fips mode is enabled for openssl.

Selectively override specific uses of MD5/RC4 with new API calls specifically tailored to override FIPS.

Add comments on why overriding the use of these algorithms under FIPS is acceptable for the locations where overrides happen.

Remove check of server proprietary certificate which was already being ignore to avoid use of MD5.

Initialize winpr openssl earlier to ensure fips mode is set before starting using any crypto algorithms.
2017-11-17 12:43:06 +01:00
Bernhard Miklautz 15c7cb8cb2 Enable clipboard channel per default 2017-09-27 09:45:07 +02:00
Armin Novak 0490aeb018 Fixed clang malloc integer overflow warnings. 2017-07-20 09:29:48 +02:00
Armin Novak f414522b7a Added setting for QoeAck. 2017-05-18 14:07:09 +02:00
David Fort 815c97efb2 The LongCredentials capability were not parsed or used 2017-03-02 00:39:08 +01:00
David Fort 67607ce916 Take in account and set the LogonNotify flag
This flag was not read in the server case and was always sent in the
case of a client.
2017-03-02 00:29:48 +01:00
Armin Novak b11de26f98 Fixed GetComputerNameExA return checks. 2017-02-27 11:49:53 +01:00
akallabeth 8a22052b61 Fixed memory leaks. 2017-02-25 08:35:37 +01:00
akallabeth 705c0c1e12 Fixed GetComputerNameExA calls. #3815 2017-02-24 21:58:08 +01:00
Volth c333aa359f Add command line option to override action script path 2017-02-17 13:09:32 +00:00
Volth e7487cea27 Add command line option to override action script path 2017-02-08 08:30:24 +00:00
Jakub Adam 463cb41596 Allow custom MultifragMaxRequestSize in server mode
FreeRDP calculates default request size in server mode based upon
the desktop resolution. In practice, however, I've found clients (namely
MS Lync 2013) which would show only a black screen when the value is
greater than 0x3EFFFF.

This change allows to override the default in such special cases by
assigning a different value to server->settings->MultifragMaxRequestSize
after the shadow server structure is initialized in shadow_server_new().
2017-01-11 16:36:05 +01:00
Christian Plattner 58ef7cc42d More abstracted proxy handling 2016-12-10 23:13:35 +01:00
Christian Plattner 5d10b3bf5b Merge branch 'gateway-http-bugfix'
Conflicts:
	client/common/cmdline.c
	include/freerdp/settings.h
	libfreerdp/common/settings.c
	libfreerdp/core/settings.c
	libfreerdp/core/tcp.c
	libfreerdp/core/transport.c
2016-12-09 20:43:02 +01:00
David Fort 71fd5cc148 Limit the time passed in transport check loop
This patch make it possible to limit the time that is passed when we call
XXX_check_fds functions. This should smooth the treatment between handling inputs
and handling incoming bitmap updates.
The default maximum time is set to 100 ms.
2016-10-14 15:12:48 +02:00