Commit Graph

783 Commits

Author SHA1 Message Date
Marc-André Moreau
4e14e7d41e freerdp-client: don't enable vmconnect mode based on PCB field presence in .RDP file 2021-02-11 15:05:53 -05:00
Martin Fleisz
21158c0e8b
Merge pull request #6537 from akallabeth/kbd_remap
Added option to remap scancodes
2021-02-05 09:31:45 +01:00
Ondrej Holy
d7566f5f5a
client: Fix exit codes for /help and similar option (#6741)
* client: Fix exit codes for /help and similar option

Currently, non-zero exit code is returned for /version, /buildconfig, /help,
/monitor-list, /kbd-list and /kbd-lang-list command-line options for several
clients. This is against conventions because 0 is usually returned in
such cases. Also, there is potentially another problem that the returned
codes overflow on UNIX systems (where the exit code is a number between 0
and 255). Let's fix the clients to return 0 in the mentioned cases to honor
conventions and 1 for the command-line parsing errors (or -1 for clients
who already use that value).

Fixes: https://github.com/FreeRDP/FreeRDP/issues/6686

* Refactored freerdp_client_settings_command_line_status_print_ex

Now returns 0 if help or version information was requested.

* Do not eliminate original error status.

Co-authored-by: akallabeth <akallabeth@posteo.net>
2021-01-22 09:44:55 +01:00
akallabeth
c865c4eb64 Added support for file:// urls for rdp files 2020-12-23 12:29:37 +01:00
akallabeth
9b8d16b332 Allow autoreconnect for ERRINFO_GRAPHICS_SUBSYSTEM_FAILED
As discussed in #4717 allow autoreconnect to succeed if that
specific error code was returned as disconnection reason.
2020-11-27 09:10:41 +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
akallabeth
f032be12d2 Fixed printf format 2020-11-17 08:53:42 +01:00
Martin Fleisz
f3591485bd client/common: Always set gatewayprofileusagemethod to 1
mstsc will only load our gateway settings if gatewayprofileusagemethod
is set to 1. Otherwise it will always set the option "Auto-detect RD
Gateway server settings" and ignore the other gateway settings in the
rdp file.
2020-11-13 11:44:19 +01:00
Martin Fleisz
60317154a3 client/common: Several fixes for the rdp file parser
This PR fixes various issues in the rdp file parser:
- NetworkAutoDetect was written inverted
- GatewayHostname was missing the port info (if not default)
- Several settings were left out when populating the file struct
2020-11-12 18:13:12 +01:00
Armin Novak
d7bf6553c5 Added option to remap scancodes 2020-10-29 18:44:32 +01:00
Martin Fleisz
0f70aa2f43
Merge pull request #6415 from akallabeth/proxy_settings_api
Use freerdp_settings_[s|g]et* api to access proxy vaiables.
2020-08-05 11:47:05 +02:00
akallabeth
44ea09e7ad Use freerdp_settings_[s|g]et* api to access proxy vaiables.
Fixes #6414
2020-08-05 11:29:00 +02:00
Martin Fleisz
d87d351c00 Add GatewayMessageType to public API 2020-08-04 15:58:48 +02:00
Martin Fleisz
3753f0ea9c Implement gateway message callback for Windows, Wayland and X11 clients 2020-08-04 15:58:48 +02:00
Bernhard Miklautz
1628939227 fix [client channels]: move exported API calls to client/common
The functions mappedGeometryRef and mappedGeometryUnref are API
functions ([1]) but were implemented in the geometry channel.
In case FreeRDP was built with BUILTIN_CHANNELS=OFF those functions
weren't available globally but used by the video channel.

Now the functions are fixed part of the freerdp-client library and
therefore available for all channels.

[1] exported in freerdp/client/geometry.h

Fixes #6236
2020-06-17 12:59:41 +02:00
Kobi
0cb7ada6de
Merge pull request #6208 from akallabeth/accept_cert_io
Read newline from stdio on certificate accept
2020-05-25 13:25:39 +03:00
akallabeth
81765e71f3 Fixed BehaviourSanitizer warning in rdp parser 2020-05-20 15:10:07 +02:00
akallabeth
5b842bc7a7 Read newline from stdio on certificate accept 2020-05-20 11:57:01 +02:00
akallabeth
7890833af8 Replaced strtok with strtok_s 2020-05-18 11:39:22 +02:00
Martin Fleisz
953fc03031
Merge pull request #6138 from akallabeth/rdp_file_message_fix
Fixed warning messages for RDP file options
2020-05-05 12:21:15 +02:00
akallabeth
5f5bf10703 Fixed warning messages for RDP file options
networkautodetect and bandwidthautodetect are both boolean options
which must match each other. Added adequate warnings.
2020-05-05 10:43:33 +02:00
David Fort
5b98aa7515
Merge pull request #6063 from akallabeth/expert_settings
Added expert settings /tune and /tune-list
2020-05-04 12:09:39 +02:00
Lukas Fink
060253c9fa Added ability to add usb devs via id and addr simultaneously
It is now possible to add usb devices both via vid+pid and via bus+addr
at the same time. To do this, the ids are directly
given to the corresponding command line options:
/usb🆔<vid+pids>,addr:<bus+addrs>
The dev option still works like before: /usb:id,dev:<vid+pids> or
/usb:addr,dev:<bus+addrs>
2020-04-26 19:09:13 +02:00
akallabeth
b094d52d0b Fixed #6099: Add a flag for legacy hash entries
If a legacy entry is found in certificate hash store print
additional information to the user informing about the change
with FreeRDP 2.0
2020-04-22 18:14:39 +02:00
akallabeth
0a86090ff1 Fix initialization of LargePointer flags
Capability exchange is first reading server capabilities,
mask these with local settings and send only what both support.
2020-04-22 11:10:56 +02:00
Armin Novak
58be47bc63 Added expert settings /tune and /tune-list 2020-04-21 17:30:24 +02:00
Martin Fleisz
9223eea61e
Merge pull request #5974 from akallabeth/cmd_avc420_fix
Cmd avc420 fix
2020-04-02 08:41:47 +02:00
Martin Fleisz
ca34fe4c12
Merge pull request #5985 from akallabeth/log_version_debug
Added buildconfig output to debug log level.
2020-03-26 09:55:46 +01:00
Martin Fleisz
43d3f89ce7
Merge pull request #5988 from akallabeth/rdp_parser_leak
Fixed memory leak in rdp file parser.
2020-03-24 12:17:05 +01:00
akallabeth
fdf151698d Fixed memory leak in rdp file parser. 2020-03-23 16:06:26 +01:00
akallabeth
453372a4bf Add option to adjust the tcp ack timeout
On high latency links the default of 9 second timeout might be too
strict. Adjusting this for all users will result in a long time
for connections to fail, so let these with high latency links
adjust the value manually.
2020-03-23 08:59:38 +01:00
akallabeth
82449a9c7d Added buildconfig output to debug log level. 2020-03-20 13:05:01 +01:00
akallabeth
efb588db04
Added deprecation warning to gfx-h264 2020-03-15 10:33:53 +01:00
akallabeth
1441e78b70
Fixed gfx-h264 option parsing. 2020-03-15 10:33:34 +01:00
Armin Novak
90bc3e793a Fixed missing config include. 2020-03-09 14:57:20 +01:00
Armin Novak
6ac1b6d78e Fixed strncmp, use _strnicmp 2020-03-06 11:37:35 +01:00
Armin Novak
316fb38e67 Added new option /cert that unifies all.
* The mess with /cert-tofu, /cert-ignore et al is now unified in
  a single option.
* Added the option to add fingerprint:<hash>:<hex string> multiple
  times to /cert to build a list of accepted certificate
  fingerprints
* Added a deprecation warning to older /cert-* options
2020-03-06 11:37:35 +01:00
Armin Novak
4eb4f58fbb Updated CMake channel detection
* Now both, dynamic and static channel entries can be defined by
  a single channel.
* Added better logging to distinguish between static and dynamic
  channel messages.
2020-02-28 12:53:39 +01:00
Martin Fleisz
da354feed0 Add dynamic channel part for rdpsnd channel 2020-02-28 12:53:39 +01:00
Armin Novak
829497b313 Made CHANNEL_TSMF optional and deprecated. 2020-02-26 13:56:43 +01:00
Ondrej Holy
3240485bfd Do not advertise /usb in help output if the channel is not built
The help output advertise an option and an example for usb redirection
regardless of the fact whether the urbdrc channel was built or not.
This is confusing for people. Let's do not show /usb in help if it is
not built.
2020-02-26 13:51:52 +01:00
Martin Fleisz
7ae8a158a0
Merge pull request #5707 from akallabeth/kbd_codepage
Added KeyboardCodePage option
2020-02-25 14:50:51 +01:00
Armin Novak
30275e7ac3 Added keyboard language codepages and listing option 2020-02-21 11:57:36 +01:00
Martin Fleisz
e304428a5f
Merge pull request #5857 from akallabeth/scanbuild_fixes
Scanbuild fixes
2020-02-12 10:16:54 +01:00
David Fort
245fc6014d
Merge pull request #5830 from akallabeth/smartcard_updates
Smartcard updates
2020-02-07 14:11:00 +01:00
Armin Novak
ddcc5ae768 Fixed copy of opaque data
do not use strcncpy for opaque data.
2020-01-23 10:12:12 +01:00
Armin Novak
5a51f97ce0 Added NULL checks to silence clang-scanbuild. 2020-01-23 10:12:12 +01:00
Armin Novak
2cb022a922 Fixed NULL dereference. 2020-01-23 10:12:12 +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
Kobi Mizrachi
8c5d96784d cmdline: export CommandLineParseCommaSeparatedValues 2020-01-22 14:18:21 +01:00
Martin Fleisz
263d74ee29
Merge pull request #5783 from akallabeth/gfx_mask_arg
Added /gfx and /gfx-h264 option mask=<value>
2020-01-16 10:02:15 +01:00
David Fort
30d6e25def
Merge pull request #5750 from akallabeth/encomsp_auto
Encomsp automatic input control && cleanups
2020-01-15 13:56:00 +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
1d9722f8d8 Added /gfx and /gfx-h264 option mask=<value>
With this new option the gfx capability set can be masked to only
announce older versions of the protocol if required.
(Fixes #5771)
2020-01-14 07:56:54 +01:00
Armin Novak
4f5eaedf7e Added command line option client-build-number
The smartcard channel behaviour is influenced by what build number
is announced, expose this setting to modify by interested users.
2020-01-13 10:50:14 +01:00
David Fort
31a4e2ad8b
Merge pull request #5745 from akallabeth/urbdrc_rewrite
Urbdrc rewrite
2020-01-06 09:23:45 +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
Martin Fleisz
71feb974ac
Merge pull request #5739 from akallabeth/improve_function_hiding
Improve function hiding
2019-12-02 11:31:35 +01:00
Armin Novak
7c243da6e1 Remove symbols exported by accident. 2019-12-02 10:57:31 +01:00
Pål Håland
fc992ee740 SmartSizingWidth and SmartSizingHeight in RDP file:
Adding this option to use the DesktopHeight and DesktopWidth as
parameters for the SmartSizingWidth and SmartSizingHeight, as there
are no options for that in standard RDP files.

Equivalent of doing /smart-sizing:WxH
2019-11-29 11:14:55 +01:00
Armin Novak
ce5661ce60 Added RDP file option 'desktop size id:i:' support. 2019-11-29 09:09:30 +01:00
Armin Novak
c5e261e066 Added new command line swith for automatich assistance control. 2019-11-25 10:32:55 +01:00
Armin Novak
2d87a84991 Use new URBDRC constants in command line parser. 2019-11-22 10:56:21 +01:00
Armin Novak
a5bebd3c65 Fixed scanbuild warnings. 2019-11-20 09:17:08 +01:00
Armin Novak
da87247d61 Added KeyboardCodePage option
Thanks to @byteboon for the hint.
2019-11-07 19:57:07 +01:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Martin Fleisz
bc39b32d20
Merge pull request #5685 from akallabeth/multi_instance_arg_parse
COMMAND_LINE_ARGUMENT structs contain parser results, use one per instance
2019-11-06 09:09:22 +01:00
Armin Novak
b7a12474dc Removed invalid use of strnlen 2019-11-05 11:30:26 +01:00
Armin Novak
27df243a33 Fixed int/size_t use for channel add functions. 2019-10-29 12:58:06 +01:00
Armin Novak
cda3d081e3 Fixed tmpnam warning. 2019-10-29 12:58:05 +01:00
Armin Novak
f01e042211 Code cleanups (strlen, casts, size_t, ...) 2019-10-29 11:58:43 +01:00
Armin Novak
0c87eaee4d COMMAND_LINE_ARGUMENT structs contain parser results, use one per instance
Remove the old global structs as the parser modifies them. When using
multiple instances in the same process space this could break parsing.
2019-10-28 13:30:05 +01:00
Martin Fleisz
9e32899347
Merge pull request #5676 from akallabeth/hotplug_leak_fix
Hotplug leak fix
2019-10-28 13:06:36 +01:00
Armin Novak
8af4ddc5f2 Fix #5687: check for file extensions case insensitive. 2019-10-25 14:23:01 +02:00
Armin Novak
1bb63eddf4 Removed experimental warning from gfx 2019-10-24 15:04:48 +02:00
Martin Fleisz
30a92e85b8 common: Fix handling of redirectdrives setting 2019-10-01 15:56:22 +02:00
Martin Fleisz
89841fce03
Merge pull request #5616 from akallabeth/drive_prefer_absolute_path
Fix #5603: Prefer absolute path for /drive: syntax.
2019-10-01 11:40:38 +02:00
Armin Novak
c904a4c5cd Trim all RDP file string options except passwords. 2019-09-27 09:09:59 +02:00
Armin Novak
b1d0eaff6d Fix #5603: Prefer absolute path for /drive: syntax. 2019-09-24 16:42:27 +02:00
Martin Fleisz
db2ac11828
Merge pull request #5615 from akallabeth/rdp_relaxed_parse
Added option to parse RDP files relaxed.
2019-09-24 16:27:54 +02:00
Armin Novak
04a7c068d8 Added option to parse RDP files relaxed. 2019-09-24 16:11:43 +02:00
akallabeth
3edadef768 Fix #5593: Do not use diagnostics pragma inside functions 2019-09-22 16:37:52 +02:00
Armin Novak
73897ebd3b Tighter error checking for integer options in RDP file. 2019-09-11 14:24:00 +02:00
Armin Novak
7dc47bca4f Compare rdp file options case insensitive 2019-09-11 10:26:37 +02:00
Armin Novak
18ec98c402 Set default connection type to autodetect for RDP files. 2019-09-05 12:20:40 +02:00
Armin Novak
c6d9bfce42 Allow /drive:<name>,* syntax.:wq 2019-08-30 13:50:33 +02:00
Martin Fleisz
29f914f178
Merge pull request #5541 from akallabeth/rdp_file_full_drivestoredirect_parsing
Rdp file full drivestoredirect parsing
2019-08-30 11:29:06 +02:00
Armin Novak
09c61dc465 Fix #5554: audin is a dynamic channel 2019-08-29 18:46:49 +02:00
Armin Novak
a93b15fdef Sanitize drive redirection names. 2019-08-29 17:53:36 +02:00
Armin Novak
6c17d138bd Read and write RDP file 'prompt for credentials' 2019-08-27 12:24:28 +02:00
Armin Novak
fdf1715213 Unified DriveStoreRedirect parsing. 2019-08-23 12:06:21 +02:00
Armin Novak
d8bf05367b Added support for drivestoreredirect:s:<path>(<path>) syntax 2019-08-23 11:18:32 +02:00
Armin Novak
0af53bff9b Allow DynamicDrives as special option for /drive 2019-08-23 10:27:01 +02:00
Armin Novak
35cb729f31 Added drivestoredirect option value parser 2019-08-23 10:27:01 +02:00
Armin Novak
3dec88f5e3 added BandwidthAutoDetect parsing. 2019-08-22 16:13:04 +02:00
Armin Novak
f0ee2cbb97 Automatically activate GFX and RFX codec support on autodetect. 2019-08-22 16:13:04 +02:00
Martin Fleisz
0a4bc1ff94
Merge pull request #5523 from akallabeth/rdp_parser_null_checks
Rdp parser null checks
2019-08-20 16:50:55 +02:00
Louis Sautier
60152291b3 client: proxy: allow passing SOCKS5 proxies as env. vars 2019-08-20 14:06:38 +02:00
Martin Fleisz
81cb0a7ee5 client/common: Remove incorrect prompt for creds parsing (#5528)
"prompt for credentials on client" was incorrectly merged together with
"prompt for credentials" into a single setting. However the first option
determines if the client should prompt for credentials if the remote
server does not support server authentication. "prompt for credentials"
on the other hand determines if the client should use any previously
stored credentials or if it should always prompt for them.
2019-08-20 10:07:10 +02:00