Commit Graph

2250 Commits

Author SHA1 Message Date
Martin Fleisz 79fb38da84 core: Remove connection type manipulation in gcc_write_client_core_data
Removes the changes to connection type in gcc_write_client_core_data and
adds some checks if network detection is enabled when receiving network
detection requests.
2021-02-04 10:43:51 +01:00
Vic Lee a1566574a3 progressive: fix multiple regions in one gfx frame. 2021-02-04 09:16:23 +01:00
akallabeth dfec6228e4 Added OrderInfo callback for primary, seconardy and altsec orders
This allows gathering statistics about which orders have been
received
2021-01-26 20:00:23 +01:00
akallabeth f3dad4106a Fixed support for huge files in clipboard 2021-01-25 08:43:46 +01:00
Martin Fleisz bd7b43a7d0
Merge pull request #6723 from akallabeth/color_fidelity_fix
Color fidelity fix
2021-01-19 14:14:47 +01:00
jackyzy823 d537988f28 x11: add support for remote to local clipboard file copy 2021-01-18 19:13:56 +01:00
Armin Novak 6a2ae388f8 Added settings dump function 2021-01-18 18:46:04 +01:00
Martin Fleisz 68dfa353b8 locale: Fix keyboard detection on MacOS 2021-01-18 16:53:02 +01:00
Armin Novak 87e89bc719 Fixed pcap capture function const correctness 2021-01-18 09:41:13 +01:00
Armin Novak 8187ab7732 Fix ColorFidelity use 2021-01-18 09:41:13 +01:00
akallabeth e3445eefab Fixed progressive decoding without subbanddiff 2020-12-15 14:47:05 +01:00
akallabeth 25a8abc4eb Cleaned up rfx API 2020-12-14 17:44:30 +01:00
akallabeth 0c96c3a71c Moved clipboard hasHugeFileSupport to end of struct 2020-12-04 14:09:28 +01:00
akallabeth 4d1a7cf5fa Renamed RDPEI flags due to problems with windows headers 2020-11-30 13:54:33 +01:00
Armin Novak d493cf6f07 Cleaned up rdpei channel, updated to current spec. 2020-11-23 10:29:47 +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 d7bf6553c5 Added option to remap scancodes 2020-10-29 18:44:32 +01:00
Martin Fleisz cec261c4db Cleanup internal channel management
This PR gets rid of some unneeded/unused field and functions in the
channel handling code. It also makes it possible to call
VirtualChannelWrite from any thread like the Windows API allows. The
only restriction is that the channel must be initialized
(VirtualChannelInit) from the same thread that called freerdp_connect.
2020-10-29 15:53:32 +01:00
kubistika 437bfeb588 include: rdpgfx: add extern C for public API 2020-10-06 13:22:17 +03:00
Kobi Mizrachi e0fa47f3b3 server: add WTSVirtualChannelManagerCheckFileDescriptorEx API 2020-10-06 13:17:38 +03:00
akallabeth f282c55c7a Added clipboard CB_HUGE_FILE_SUPPORT_ENABLED flag 2020-09-29 09:03:49 +02:00
kubistika 508ba9201f core: server: add API to get peer accepted channel names 2020-09-21 14:16:22 +03:00
akallabeth 1546a8b655 Fixed naming of FILEDESCRIPTORW 2020-09-18 12:49:54 +02:00
Armin Novak 3b63903d3f Removed obsolete connectErrorCode 2020-09-16 10:21:15 +02:00
Alexandr cf2daeb01d
cleanup of https://github.com/FreeRDP/FreeRDP/pull/6448 (#6455)
* Implemented switchable transport layer

Co-authored-by: akallabeth <akallabeth@posteo.net>
2020-09-02 13:37:04 +02:00
Armin Novak 75aab487e2 Added duplicate initialization check for plugins. 2020-08-10 16:17:44 +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
Kobi Mizrachi 004c2f49e4 rail: server: add API to set railHandshakeExflags 2020-07-07 15:31:20 +03:00
Kobi Mizrachi 5d39200cd7 libfreerdp: core: add ServerHeartbeat callback 2020-07-07 09:57:53 +02:00
akallabeth 431570ffb2 Added scancodes for launch keys 2020-05-27 15:42:45 +02:00
Bernhard Miklautz 3e89574205
Merge pull request #6124 from akallabeth/speedup
Unify inline and some warning fixes
2020-05-05 15:34:38 +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
akallabeth 2bc0157b01 Unified INLINE definition 2020-04-27 08:19:42 +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
Armin Novak 58be47bc63 Added expert settings /tune and /tune-list 2020-04-21 17:30:24 +02:00
akallabeth a3996af062 Refactored gdi region
* Added a unit test
* Fixed const correctness of function arguments
* Added return values for all functions
2020-04-09 18:00:51 +02:00
akallabeth 88ad9ca56b Fix sending/receiving surface bits command.
* Pass on proper command type to application
* On send let the server implementation decide to send
   2.2.9.2.1 Set Surface Bits Command (TS_SURFCMD_SET_SURF_BITS) or
   2.2.9.2.2 Stream Surface Bits Command (TS_SURFCMD_STREAM_SURF_BITS)
Thanks to @viniciusjarina for tracing the issue down.
2020-04-03 12:00:53 +02:00
Armin Novak 3ba66db99d Unify pReceiveChannelData and psPeerReceiveChannelData
Fix definitions of the two function pointers.
Use and definition did not match, fix that.
Will create warnings in external projects
2020-03-10 12:21:14 +01:00
Armin Novak d5b5088eac Fixed misinterpretation of SendChannelData
SendChannelData was defined with a return value of type int, but
used as BOOL everywhere. Fix the definition to match use.
2020-03-10 12:21:14 +01:00
Armin Novak 9c999b7135 Added raw function wrapping X509_digest 2020-03-06 11:37:35 +01:00
Armin Novak 2be6e4117f Let ssl backend handle hash checks. 2020-03-06 11:37:35 +01:00
Armin Novak d3b36ab299 Added CertificateAcceptedFingerprints to settings 2020-03-06 11:37:35 +01:00
Armin Novak d7ba252cd7 Fixed arguments for peer->ReceiveChannelData 2020-03-04 14:52:19 +01:00
Armin Novak b3179174ec Fixed function pointer const correctness. 2020-03-04 14:44:03 +01:00
Martin Fleisz da354feed0 Add dynamic channel part for rdpsnd channel 2020-02-28 12:53:39 +01:00
Martin Fleisz 45e0fdde20
Merge pull request #5915 from akallabeth/gfx_versions
Updated RDPGFX_CAPVERSION_106 according to errata 2018-12-10
2020-02-26 14:48:41 +01:00
Martin Fleisz 10d1146049
Merge pull request #5906 from akallabeth/tsmf_disable_for_good
Made CHANNEL_TSMF optional and deprecated.
2020-02-26 14:41:46 +01:00
Armin Novak 2cd36a042a Updated RDPGFX_CAPVERSION_106 according to errata 2018-12-10 2020-02-26 14:37:10 +01:00
Norbert Federa ceb015a6bb egfx: the gfx reset grahics pdu is optional
Since the EGFX Reset Graphics PDU seems to be optional,
the graphicsReset variable (which is updated in that PDU's handler)
should be removed from the rdp_gdi struct with the next change
in public headers (as in freerdp v3).
There are still some clients that expect and check it and therefore
we keep it for now, initialized with TRUE.

sdas
2020-02-26 13:57:12 +01:00
Armin Novak 829497b313 Made CHANNEL_TSMF optional and deprecated. 2020-02-26 13:56:43 +01:00
Kobi Mizrachi 9417350d92 core: channels: add API to get channel name/id 2020-02-26 11:47:01 +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
Armin Novak f933cafa93 Added some callbacks to dynamic channel
* Allow listener removal of channel during runtime
* Allow retrieval of channel name
2020-02-18 11:14:05 +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
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
Kobi Mizrachi b2fad50cd3 server: proxy: rewrite modules API
* Add support for C++ plugins.
* Seperate between a "module" and a "plugin": a module is a shared
library that exposes a function called "proxy_module_entry_point". This
function gets a parameter to `proxyPluginsManager*`, which can be used to
register plugins.
* Refine the API of the modules infrastructure:
 * use proxyData* instead of rdpContext* when firing a hook or calling a filter.
 * use clearer names.
* Instead of having to specify a path for each module to be loaded in
the configuration, the proxy now loads modules from specificed
directory, using the CMAKE variable PROXY_PLUGINDIR.
* Add an option to specify required plugins: plugins that the proxy
wouldn't start without having them fully loaded.
2020-01-14 07:58:47 +01:00
Kobi Mizrachi 29dee84a2b rail/server: rename rdpContext to rdpcontext
Fixes a compilation error when mixing c++ and c code.
2020-01-14 07:58:47 +01:00
Armin Novak 895cb8f944 Added macro freerdp_set_last_error_if_not
This macro replaces the multiple instances where the current
error state is checked before setting an optional error state.

Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-09 10:34:27 +01:00
Martin Fleisz f7f2ab302f
Merge pull request #5819 from akallabeth/last_error_informative
make Last error more informative
2020-01-09 08:47:09 +01:00
Armin Novak 7d252cdc8e Added freerdp_set_last_error_ex function
This new function allows better logging of call locations
for errors. Additionally added freerdp_set_error_log macro
to record function, file and line the error was set.

Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-08 17:39:25 +01:00
Armin Novak f720ec5383 RDPSND device API refinements
* Added default format callback for rdpsnd backend to allow
  different default input formats (different samplerates, ...)
* Made WINMM backend in flight packet limitation a compile time
  option
* Fixed missing buffer copy in winmm backend

Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-08 17:14:09 +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 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 947645520d Removed touch input channel thread
The touch input channel only sends small events (touch points et al)
and therefore does not require a heavy processing thread.
2019-12-18 11:36:12 +01:00
Mati Shabtay 4dacb57f6f rail server: implement channel code for rail server
* Split common functionality from client code
* Clean up client code and use proper defines for constants
* Implements the channel code to read/write server side
  messages.
2019-12-12 11:10:44 +01:00
Armin Novak c5e261e066 Added new command line swith for automatich assistance control. 2019-11-25 10:32:55 +01:00
Armin Novak 2691532061 Fixed const correctness of encomsp functions. 2019-11-25 09:39:21 +01:00
Armin Novak b3a3a6b9c2 Fixed intialization of opencl primitives and warnings. 2019-11-22 13:21:39 +01:00
David Fort 6123920a2e opencl: inline the openCL program in the source code 2019-11-22 13:21:39 +01:00
Armin Novak 0a3721587a Cleaned up primitives code. 2019-11-22 13:21:39 +01:00
David Fort 5f0943f0fe primitives: add openCL support
This patch adds the basic infrastructure to have openCL acceleration.
For now only YUV2RGB is implemented but other operations could be
implemented.
The primitives have been massively reworked so that we have an autodetect
mode that will pick the best implementation automatically by performing a
benchmark.

Sponsored-by: Rangee Gmbh(http://www.rangee.com)
2019-11-22 13:21:39 +01:00
Armin Novak 0927d7aa50 Rewrite of urbdrc channel.
* Fix command line parsing
* Properly handle channel creation/destruction
* Use wStream API for parsing
2019-11-22 10:56:21 +01:00
Armin Novak 210b40a54f Removed msusb from library. 2019-11-22 10:33:39 +01:00
Martin Fleisz b97c6d87c3
Merge pull request #5706 from akallabeth/tcp_keepalive
Configurable Tcp keepalive
2019-11-19 10:03:00 +01:00
Armin Novak 6e1a396aa4 rdpNineGridCache now opaque 2019-11-14 15:16:36 +01:00
Armin Novak 68ed1276c2 MPPC_CONTEXT now opaque 2019-11-14 15:16:36 +01:00
Armin Novak e83f65b062 NCRUSH_CONTEXT now opaque 2019-11-14 15:16:36 +01:00
Armin Novak f0353de828 XCRUSH_CONTEXT now opaque 2019-11-14 15:16:36 +01:00
Armin Novak 267bc31248 rdpOffscreenCache now opaque 2019-11-14 15:16:36 +01:00
Armin Novak 028f523ea0 rdpBrushCache now opaque 2019-11-14 15:16:36 +01:00
Armin Novak 6afa413669 Modified primitives function pointer to take const pointer to const data 2019-11-14 10:46:24 +01:00
Armin Novak da87247d61 Added KeyboardCodePage option
Thanks to @byteboon for the hint.
2019-11-07 19:57:07 +01:00
Armin Novak 639174e7d3 Added configurable TcpKeepAliveDelay setting. 2019-11-07 16:07:18 +01:00
Armin Novak 7f21f4ef3d Added additional tcp keep alive settings. 2019-11-07 12:45:05 +01:00
Armin Novak 7db4f69cb6 Added TcpKeepalive setting, use settings getter const arguments. 2019-11-07 12:39:22 +01:00
Armin Novak 72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Armin Novak 27df243a33 Fixed int/size_t use for channel add functions. 2019-10-29 12:58:06 +01:00
kubistika bf2e1a33d0 channels: rdpgfx: export API to create rdpgfx client 2019-10-24 12:19:31 +02:00
David Fort bd5a88e95a rdp: count in/out bytes and packets 2019-10-23 09:16:35 +02:00
kubistika dff3686642 channels: cliprdr: remove formatDataResp.dwFlags
According to the channel docs, this field is only used in format data
request. Therefore, there's no need to hold it in the response. cliprdr
server code was copy-pasted from client code, therefore this must be
some leftover.
2019-10-18 14:20:26 +02:00
Martin Fleisz ade6b1007b
Merge pull request #5644 from akallabeth/nsc_cleanup
Cleaned up NSC API
2019-10-07 09:01:26 +02:00
Armin Novak e09f739b90 Cleaned up NSC API 2019-10-04 10:33:41 +02:00
Armin Novak 8d088387da Added function to get an error category for better error handling. 2019-10-03 11:19:03 +02:00
Armin Novak 1d4cdd2924 Added missing error codes. 2019-10-02 16:00:37 +02:00
Martin Fleisz 583045e2e5 rail: Update to latest spec version 28.0 2019-10-02 14:51:45 +02:00
Armin Novak 04a7c068d8 Added option to parse RDP files relaxed. 2019-09-24 16:11:43 +02:00
Armin Novak 88c654ee1d Modified printer backend to allow dynamic backends. 2019-09-06 09:28:29 +02:00
Martin Fleisz a5f4783711
Merge pull request #5561 from akallabeth/winmm_play_fix
Winmm play fix
2019-09-02 15:23:33 +02:00
Armin Novak d99486096b Added deprecation macro. 2019-09-02 15:13:09 +02:00
Armin Novak f93d625cde Use GetTickCount64 instead of GetTickCountPrecise. 2019-09-02 15:46:36 +02:00
Martin Fleisz 473806a0b1
Merge pull request #5547 from akallabeth/color_convert_fix
Fix #5543: 16 bit color to 32bit color conversion.
2019-09-02 14:34:59 +02:00
kubistika faa833f97a rdpsnd: client: add rdpContext getter 2019-08-29 14:39:17 +02:00
Armin Novak 7604f788b3 Fix #5543: 16 bit color to 32bit color conversion.
When converting 16 bit color (5 or 6 bit per color) to 32bit
(8 bit per color) add a value dependent correction factor so that
value 0 -> 0 and 31 -> 255.
2019-08-26 10:25:10 +02:00
David Fort a8fac70432
Merge pull request #5508 from akallabeth/french_kbd_fix
Fixed #5496: Canadian keyboard mapping issue reported by @renaudn1981
2019-08-19 23:38:25 +02:00
Armin Novak 74cffef053 Clipboard server callback arguments const 2019-08-19 09:30:40 +02:00
kubistika f429275f86 channels: cliprdr: server: add autoInitializationSequence 2019-08-19 09:30:40 +02:00
kubistika 6cebbc2a16 channels: cliprdr: add lastRequestedFormatId
This one is for proxy use. The proxy must know what format is requested by the other side
of the connection, for determining if the message should be passed
or ignore (for example, if we want to allow only text, the proxy must
verify that the requested format received in Format Data Request PDU is
a text format.
2019-08-19 09:30:40 +02:00
Armin Novak e3f3343323 Fixed #5496: Canadian keyboard mapping issue reported by @renaudn1981 2019-08-01 11:09:57 +02:00
kubistika 13fb3ffc39 libfreerdp: core: fix const correctness of freerdp_settings_clone 2019-07-17 16:20:42 +02:00
Armin Novak 1916da35ee Added freerdp_settings_copy 2019-07-16 13:47:35 +02:00
Armin Novak 1deb78f211 Implemented rdp file parser functions with a callback for custom settings. 2019-07-15 12:01:30 +02:00
Armin Novak 3b38479ec5 Added PromptForCredentials setting. 2019-07-15 12:01:30 +02:00
Martin Fleisz 445764100b
Merge pull request #5396 from widgetii/master
Artur Zaprzala's rdp2tcp channel driver
2019-07-09 16:17:29 +02:00
David Fort 2da425aa03
Merge pull request #5424 from kubistika/rdpgfx
rdpgfx: CacheImportOffer implementation
2019-06-13 11:35:15 +02:00
David Fort 1f128b6142
Merge pull request #5423 from kubistika/feat/bitmap-auto-flag-calculate
rdpUpdate: add autoBitmapDataCalculate
2019-06-12 21:15:59 +02:00
Kobi d9366df448 RDPEDISP server side implementation (#5414)
* libfreerdp: Add RDPEDISP server implementation

* server/proxy: Add RDPEDISP support
2019-06-11 16:13:42 +02:00
kubistika bf97d3e041 rdpgfx/client: Expose QoeFrameAck 2019-06-06 07:53:34 +03:00
kubistika 99b10aa98d rdpUpdate: add autoCalculateBitmapData flag 2019-06-04 17:33:18 +03:00
kubistika cd135ceacb libfreerdp/core: Export monitor layout PDU
* Move update notification related functions to new display.c: Not
related to `rdp.c`.
    * Rename `rdp_write_monitor_layout_pdu` to `display_write_monitor_layout_pdu`.
* Add internal `display_convert_rdp_monitor_to_monitor_def` instead of
doing the conversion inside `display_write_monitor_layout_pdu`.
2019-06-03 14:30:17 +03:00
David Fort 789ed72021
Merge pull request #5403 from akallabeth/keyboard_event_flags
Fixed fastpath/slowpatth pause event.
2019-05-23 12:05:58 +02:00
David Fort 1cb8ed96e2
Merge pull request #5404 from m4ntis/feat/proxy-errors
Proxy: Redirect errors back to client
2019-05-23 09:43:47 +02:00
Armin Novak 42ba19dd98 Added rail workdir parameter 2019-05-22 16:37:47 +02:00
kubistika ef3a3ae9e6 Export Error Info PDU. 2019-05-19 14:42:16 +03:00
Mati Shabtay b907324009 First version of an RDP proxy (#5372)
* server: Add proxy dir with barebones server

* sever/proxy: Remove licensing

* server/proxy: Add client files

* server/proxy: rm binary

* server/proxy: Formatting

* server/proxy: Fixed includes and added basic client creation functionality

* server/proxy: Remove licensing and fix ifndef

* proxy/server: Fix cmake indentation

* server/proxy: Fix licensing

* server/proxy: Forward connection on peer_post_connect

* server/proxy: Fix function signature

* server/proxy: Changed function signature of proxy_client_start

* server/proxy: Now peer_post_connect calls proxy_client_start in a new thread

* pfreerdp.c: Clean up useless comments and logs

* server/proxy: Fix license

* server/proxy: Remove all non-connection related data from proxy_context

* server/proxy: Move Log Tag definition to pf_log.h

* server/proxy: Move context definition to pf_context

* server/proxy: Delete pfreerdp.h

* pfreerdp.c: Move context callbacks to pf_context.c

* server/proxy: Update CMakeLists.txt

* pf_channels: Use new proxy context API

* pf_client: Move context to pf_context

* pf_client.c: Remove unnessecary event handling

* server/proxy: Formatting

* proxy/server: Move server logic to pf_server.c

* server/proxy: Handle client disconnection

* Merge stash

* pf_server.c: Open GFX Connection to client

* server: CMakeLists: build proxy along with other servers

* server: proxy: get target server from rdpNego->RoutingToken

Iv'e omitted a check from  which im not sure is right. Should check in docs

* server/proxy: Handle remote server -> client disconnection

* server/proxy: Move common function  to pf_common.c

* server/proxy: Move common function  to pf_common.c

* rdpgfx.h: Add reference to freerdp.h for rdpContext

* pf_channels: Pipe GFX on channel connection

* server/proxy: Add pf_rdpgfx for proxy gfx callbacks

* pf_client: Declare dynvc and gfx capabilities on connection

* server/proxy: Add graphics callbacks

* server/proxy: Add graphics callbacks

* pf_server: Listen to channel events

* Pass user settings to server

* pf_server: Proxy mouse events

* fixup! server/proxy: Add graphics callbacks

* pf_client: Fix setting initialization

* Merge feat/proxy-gfx to feat/proxy

* pf_server: Fix double freed credentials

* server/proxy: Remove unnecessary call to freerdp_client_settings_parse_command_line

* server/proxy: Refactor re-activation code

* server/proxy: Run format scripts

* server/proxy: Fix segfault when post_disconnect return FALSE

* server/proxy: Refactor proxy_settings_mirror

* server/proxy: Redirect credentials

* server/proxy: move proxy_settings_mirror to pf_common.c

* server/proxy: Redirect desktop_resize event

* pf_client: Remove interactive CLI auth methods

* fixup! server/proxy: Redirect credentials

* server/proxy: Rename proxy_mirror_settings to pf_common_copy_settings

* pf_server.c: Fixed non-freed context

When the disconnection is forced by the target server, the function
`pf_server_handle_client_disconnection` isn't called. Therefore, the
context of the connection between the proxy to tagrget isn't freed.

* fixup! pf_server.c: Fixed non-freed context

* pf_client: Prefix all client methods with pf_client

* pf_context: Add init client to proxy context method

* pf_server: Confirm all GFX caps regardless of settings

* pf_server: Prefix all methods with pf_server

* pf_server: Move variable decleration to start of method

* pf_server: Fix client setting

* pf_server: Fix GFX init method

* pf_server: Move variable decleration to start of methods

* server/proxy: Formatting

* Merge feat/proxy

* pf_server: Proxy synchronize event

* pf_server: Proxy refresh rect update events

* pf_server: Proxy suppress output messages

* server/proxy: Fix licensing

* server/proxy: Move client input callbacks to pf_input

* server/proxy: Move client update callbacks to pf_update

* server/proxy: Fix non-terminated target host string

* Feat/proxy config (#2)

* server/proxy: Add config loading support

* server/proxy: Add config file

* server/proxy: Format code

* server/proxy: Code refactor, rename update_register_callbacks and input_register_callbacks

* server/proxy: Update config file

* server/proxy: Remove config.ini from root directory

* Remove comment from config file

* server/proxy: Fix leak in pf_server_load_config

* server/proxy: Add rdpServerProxy struct and embed it in proxyContext

* server/proxy: Load configuration and pass it inside every proxyContext instance

* server/proxy: Move rdpProxyServer to proxy.h

* server/proxy: Use configuration while proxying input events

* server/proxy: Update CMakeLists

* server/proxy: Refactor pf_input.c

* server/proxy: Add AllowedChannels, DeniedChannels in configuration

* server/proxy: Remove unnecessary variable from parse_channels_from_str

* server/proxy: Update config file

* server/proxy: config: Rename  to

* server/proxy: config: Add mode - blacklist/whitelist

* server/proxy: Refactor, fix NULL deref

* server/proxy: Add license to proxy.h

* server/proxy: Fix newline in pf_config.c

* server/proxy: config: Rename Mode to WhitelistMode

* Add target in config. Add checks for configuration validity (#3)

* Add target in config. Add checks for configuration validity

* Update config file

* libfreerdp: nego: revert commented out check of routingToken length

* pf_server: Fix target host info from RoutingToken

* pf_server: Remove hardcoded lenght of routing token prefix

* Feat/refactor context (#8)

* Refactor main structs

* Update CMakeLists.txt

* pf_server.c: Free pdata at the end of the connection

* Run format scripts

* Rename tf to pc

* Fix licenses

* pf_server: Refactor names of structs and functions

* proxy: gfx: sync caps (#4)

* proxy: gfx: sync caps

* proxy: gfx: sync caps, hook gfx client's OnClose() call and close server resources

* fixup! Feat/refactor context (#8)

* fixup! fixup! Feat/refactor context (#8)

* rdpgfx/client: Fix rdpgfx_recv_caps_confirm_pdu caps set length parsing

* Run format scripts

* proxy config.ini: Change default port to 3389

* pf_rdpgfx: Limit caps version to freerdp's supported versions

* Gfx OnOpen() wait for dynvc ready (#10)

* proxy/gfx: Wait for dynvc ready state before open

* pf_channels: Initialize pc->gfx

* pf_rdpgfx: Add log and fix comments

* rdpgfx: Fix GFX v10.6 PDUs parsing and naming according to the spec

* pf_rdpgfx: Proxy rdpgfx v10.6 PDUs

* gfx client: Publish FrameAck sending and add auto ack flag

* proxy/gfx: Forward frame ack messages

* pf_context: Forward domain on connection

* pf_rdpgfx: Change max supported caps to 10.6

* proxy: Update config

* server/proxy: Use configuration in pf_server_handle_client

* rdpgfx/client: Fix size of surface_to_scaled_window, surface_to_window

* pf_rdpgfx: Fix formatting

* pf_server.c: Fix comments

* Move pf_server_rdpgfx_init to pf_rdpgfx

* server/proxy/CMakeLists.txt: Fix formatting

* pf_client.c: Add comment in proxy_server_reactivate

* Fixed const correctness of gfx function pointer

Signed-off-by: Mati Shabtay <matishabtay@gmail.com>

* server: proxy: update copyright

* server: proxy: wrap rdpNego and add a getter for routing token

* Refactor routing token getter (#14)

* Refactor routing token getter

* pf_server_parse_target_from_routing_token change routing_token_length to be DWORD

* libfreerdp/core/nego.c: Run format script

* pf_server: Run format script

* server/proxy: Fix os msbuild tests

* pf_channels.c: Remove unused channels

* pf_client: Remove unused callbacks

* proxy: Remove encomsp callbacks from proxy's client

* client/rdpgfx_main.c: Fix msbuild test

* pf_config.c: Use StrSep instead of strsep for Windows builds

* Removed nego struct from direct access.

Signed-off-by: Mati Shabtay <matishabtay@gmail.com>

* proxy: Rename binary to freerdp-proxy

* rdpgfx_main.c: Revert unwanted double change to send_supported_caps

* Cleaned up proxy server code.

* All internal functions static
* Added simple command line argument to supply a config file
* Silence compiler warnings

Signed-off-by: kubistika <kmizrachi18@gmail.com>
2019-05-17 14:32:54 +02:00
Armin Novak d03d8f1a2d Fixed fastpath/slowpatth pause event. 2019-05-16 15:21:12 +02:00
Dmitry Ilyin eee7d4b783 proper code format 2019-05-15 20:12:33 +03:00
Armin Novak 8666d7e59b Fixed mapping of new client sysparam values. 2019-05-15 15:25:04 +02:00
Dmitry Ilyin 2cfb2839f4 Artur Zaprzala's rdp2tcp channel driver 2019-05-14 21:04:39 +03:00
Martin Fleisz b8d931241e
Merge pull request #5314 from akallabeth/setting_getter_setter_generator
Added python generator for freerdp_[g|s]et_param*
2019-05-09 14:23:31 +02:00
Martin Fleisz ff036e0198
Merge pull request #5386 from akallabeth/rails_spec_update
Rails spec update
2019-05-09 12:49:55 +02:00
Armin Novak a2834ae233 Fixed rails set_caretwidth 2019-05-09 12:28:27 +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
akallabeth 9011ef1b75
Merge pull request #5387 from mfleisz/image_from_icon
core: Move image conversion of icon data into the library
2019-05-08 17:19:27 +02:00
Martin Fleisz 30c3b86655 core: Move image conversion for icon data into the library 2019-05-08 17:06:17 +02:00
Armin Novak 93bf375686 Refactored settings getter/setter to stay compatible. 2019-05-08 14:35:25 +02:00
Armin Novak 6ac91924d5 Fixed use of settings getter/setter 2019-05-08 14:17:23 +02:00
Armin Novak abc93f924c Added python generator for freerdp_[g|s]et_param*
The settings getters and setters are now automatically generated.
Added a test case to check if all available options can be retrieved.
2019-05-08 14:17:23 +02:00
Martin Fleisz e4a9172e13
Merge pull request #5383 from akallabeth/gfx_spec_update
Updated GFX to 10.6 spec
2019-05-08 13:42:50 +02:00
Armin Novak 7b2608a938 Added gfx capability filter option.
With this new option it is possible to selectively disable certain
GFX capability versions. This way buggy behaviour can be addressed
at runtime.
2019-05-08 11:43:22 +02:00
Armin Novak 3d1cec894c Fixed alignment requirements for surface sizes. 2019-05-08 10:36:00 +02:00
Martin Fleisz 1392b578c1
Merge pull request #5339 from akallabeth/update_paint_lock
Unified update->BeginPaint and update->EndPaint
2019-05-07 15:49:58 +02:00
Armin Novak 3b7e46fb0e Updated GFX to 10.6 spec 2019-05-07 12:10:13 +02:00
Martin Fleisz 49805aae89
Merge pull request #5381 from akallabeth/swscale
Added image scaling api for software drawing.
2019-05-07 11:07:50 +02:00
Armin Novak 6a8755a763 Added image scaling api for software drawing.
For future GFX channel functions an image scaling function is required.
This moves the implementation from wayland client to core library
and adds support for the much faster SWScale library.
2019-05-07 08:56:29 +02:00
akallabeth 95b8b43d4d
Merge pull request #5376 from kubistika/bugfix/rdpgfx-server-v10.6-PDUs
rdpgfx: Fix GFX v10.6 PDUs parsing and naming according to the spec
2019-05-06 15:32:32 +02:00
Armin Novak 841cb70f91 Fixed const correctness of gfx function pointer
Signed-off-by: Mati Shabtay <matishabtay@gmail.com>
2019-05-05 16:17:15 +03:00
Mati Shabtay eee234c239 rdpgfx/client: Add callbacks for manual caps sending and frame acking 2019-05-05 15:56:35 +03:00
kubistika e9faaedc85 rdpgfx: Fix GFX v10.6 PDUs parsing and naming according to the spec 2019-05-05 12:34:57 +03:00
Martin Fleisz 25fc56a625
Merge pull request #5260 from akallabeth/rail_spec_update
Rail spec update
2019-04-29 11:27:26 +02:00
Armin Novak 5e42c8943d Fixed typo in RAIL_ZORDER_SYNC 2019-04-26 13:14:30 +02:00
Armin Novak 2a26aa0d87 Unified update->BeginPaint and update->EndPaint
Since these functions were called from 2 different threads
(main thread or dynamic channel) depending on fastpath or
gfx channel use lock between these.
If not locked the invalid region may be accessed from both
threads and lead to crashes as experienced with nightly df280a7ff
2019-04-11 15:33:23 +02:00
David Fort 7ae72ee512
Merge pull request #5240 from akallabeth/sign_compare_fixes_v2
Sign compare fixes v2
2019-04-05 14:13:03 +02:00
Mati Shabtay 6e8c02c9ee Added optional PreFrameAck callback to RdpgfxClientContext (#5303)
* RdpgfxClientContext: Add PreFrameAck callback

* client/rdpgfx_main.c: Call PreFrameAck callback before acking frame

* client/rdpgfx_main.c: Fix windows_msbuild_vs2010 CI build

* client/rdpgfx_main.c: Fix error logs log level
2019-04-05 13:37:51 +02:00
Armin Novak 52b03cd408 Addin function pointers now expect const strings 2019-04-05 09:13:24 +02:00
Armin Novak 67be5258ad Exposing NLA functions to impersonate and revert context. 2019-03-08 10:10:43 +01:00
Armin Novak 69e9571d9e Fixed EGFX capability parsing, respect length fields.
Disable RDPGFX_CAPVERSION_106 as we currently do not support scaled
outputs.
2019-02-27 17:15:43 +01:00
Armin Novak e8c8e7b6d0 Updated EGFX support to 10.6 2019-02-27 16:36:15 +01:00
Armin Novak 69f4c4b4af Fixed version magic mismatch with [MS-RDPBCGR] 2019-02-27 16:30:55 +01:00
Armin Novak 0560ba0910 Fixed mixing of remote application mode requested and feature mask. 2019-02-20 08:45:36 +01:00
Armin Novak aacf5bddc4 Updated rail channel, supporting all new messages. 2019-02-19 15:04:11 +01:00
Armin Novak 6a1ff5c485 Fixed compiler warnings #5210 2019-01-29 16:22:46 +01:00
Armin Novak 9d680904cc Fixed compiler warnings #5210 2019-01-29 16:14:55 +01:00
David Fort 70805402be
Merge pull request #5140 from akallabeth/print_custom_component
Added callback to handle printer custom components in printer backend.
2019-01-29 15:18:53 +01:00
David Fort 53c74beadc rdp: add a callback for ServerStatusInfo 2019-01-29 10:33:06 +01:00
David Fort 05d9d89796
Merge pull request #5149 from akallabeth/cert_deny
New option to disable user certificate dialog
2019-01-25 16:59:33 +01:00
MartinHaimberger 0f68ed390c
Merge pull request #5150 from akallabeth/gw_consent_callback
Fix #1195: Implement callback for Gateway Messages
2019-01-25 12:33:18 +01:00
Armin Novak 728cdfd689 Fixed warnings found by compiler and static analysis. 2019-01-24 11:53:52 +01:00
Armin Novak 65812bdbc0 Clipboard data pointer arguments are now const. 2019-01-23 16:55:13 +01:00
David Fort f4b7a27c2b license: implement server-side management
Add server-side management of the licensing workflow. The default
behaviour is to accept the client, but if a server wants to implement
full licensing support as in MS-RDPELE it is possible by defining a callback.
2019-01-21 09:57:15 +01:00
Armin Novak b60045af27 New option to disable user certificate dialog
The new option +cert-deny aborts a connection automatically if
the certificate can not be validated by OpenSSL or via known hosts.
2018-12-14 10:17:52 +01:00
Armin Novak 192680a001 Added callback to handle printer custom components in printer backend. 2018-12-12 10:57:53 +01:00
Armin Novak 8ddabd2654 Fix #1195: Implement callback for Gateway Messages 2018-12-11 15:24:24 +01:00
Armin Novak ac702e073d Updated settings.h 2018-12-07 15:22:28 +01:00
Armin Novak 56156d217e Floatbar self contained. 2018-12-07 15:22:28 +01:00
Martin Fleisz d0688f058b
Merge pull request #5102 from akallabeth/rail_cleanups
Cleaned up xf_rail_server_handshake
2018-12-07 11:28:22 +01:00
Martin Fleisz 8c7f8eb395
Merge pull request #5085 from akallabeth/cert_callbacks_update
Refactored Certificate callbacks (but keep compatible)
2018-12-06 10:08:17 +01:00
Martin Fleisz 7db6ac063a
Merge pull request #5036 from akallabeth/auth_fixes
Refactor NEGO NLA and redirection to use opaque handles
2018-12-05 11:20:34 +01:00
Armin Novak e49adfc51a Updated error info from spec. 2018-12-05 10:55:06 +01:00
Armin Novak f5e449a4f8 Cleaned up xf_rail_server_handshake 2018-12-05 09:13:04 +01:00
Martin Fleisz df6d045f45
Merge pull request #5087 from hardening/remotefx_chunks
remotefx: don't require data messages to come all in one chunk
2018-12-04 16:40:44 +01:00
David Fort 579a13b054 remotefx: don't require data messages to come all in one chunk
The spec doesn't require that FRAME_BEGIN, REGION, TILESET, and FRAME_END come all in one
chunk. This patch adds the necessary state saving.
A unitary test is also added.
2018-12-04 11:38:01 +01:00
Armin Novak e04c319d21 Added new default certificate callbacks with extended information.
The extended information provided by VerifyCertificateEx and
VerifyChangedCertificateEx is now exploited by the new functions
client_cli_verify_certificate_ex and client_cli_verify_changed_certificate_ex.

The old callbacks now print out deprecation warnings to inform the
user and developer about this deprecation.
2018-12-04 09:35:24 +01:00
Armin Novak a8823fdf95 Cleaned up certificate verification code. 2018-12-04 09:35:24 +01:00
Armin Novak 7ab07ab980 Added certificate callbacks with source indications. 2018-12-04 09:35:24 +01:00
Armin Novak dd3276d664 Prefer VerifyX509Certificate and fixed const arguments
If VerifyX509Certificate is set use it also when doing internal
certificate management. Added flags to ensure it is possible to
find out which type of connection is being made.
2018-12-04 09:35:24 +01:00
Armin Novak 2e019b2fd1 Implemented GFX locking and enforce return value checks.
To fix #4825 GFX functions must now aquire a lock before accessing surfaces.
This prevents simultaneous update of internal data by client and gfx threads.
Also enforce return value checks, where not already done.
2018-11-29 11:55:27 +01:00
Armin Novak c8908c8be6 Updated windows shadow server assistance usage. 2018-11-22 11:11:31 +01:00
Armin Novak 6de2129a90 assistance v2 support 2018-11-22 11:11:31 +01:00
Armin Novak d1112c279b Fixed CVE-2018-8788
Thanks to Eyal Itkin from Check Point Software Technologies.
2018-11-20 11:08:31 +01:00
Armin Novak 602f4a2e14 Fixed CVE-2018-8785
Thanks to Eyal Itkin from Check Point Software Technologies.
2018-11-20 11:08:31 +01:00
Armin Novak d75c464dbd Fixed signed/unsigned warnings. 2018-11-19 17:25:19 +01:00
Armin Novak 75d532f87c Fixed glyph cache bounds setting. 2018-11-19 13:58:53 +01:00
akallabeth b6eca4fc54 signed gdi regions to adjust negative coordinates 2018-11-19 12:52:43 +01:00
Martin Fleisz b216520d5b
Merge pull request #5021 from akallabeth/profiler_api_rework
Fixed profiler API
2018-11-19 10:20:52 +01:00
Armin Novak d2e1248b09 Fixed profiler API
* Duplicate the name internally to avoid issues with stack
* Made API opaque and removed direct dereferencing of struct.
2018-11-16 09:32:15 +01:00
Armin Novak c0b13cf43f Added checks for order type window support. 2018-11-15 09:52:50 +01:00
akallabeth 268a2c0cf8
Merge pull request #4979 from hardening/CAL
license: support CAL license
2018-11-14 13:45:31 +01:00
Armin Novak 138eb13fea Updated RDP_VERSION definitions. 2018-11-14 10:14:48 +01:00
David Fort b6e6575bf6 license: support CAL license
This patch simplifies the licensing code mutualizing encryption / decryption
routines. It also adds the support for client_info packet that allows to send a
previously saved CAL file.
2018-11-13 09:42:19 +01:00
Bernhard Miklautz c5c1bac31a
Merge pull request #4960 from akallabeth/interleaved_fix
Fixed #4954: Check destination buffer bounds.
2018-11-09 12:25:55 +00:00
Armin Novak 9e2c203771 Fixed various issues with freerdp_bitmap_compress and interleaved_compress 2018-11-08 17:21:28 +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 9633e4576d Fixed signedness of MoniorCount 2018-10-25 14:08:20 +02:00
Armin Novak 5ea4a7d3b0 Proper order checks. 2018-10-16 15:56:17 +02:00
Armin Novak f88ed950d3 Fixed various issues with primary orders. 2018-10-15 14:30:58 +02:00
Martin Fleisz 00af869cd3
Merge pull request #4889 from akallabeth/shadow_server_audin_refactor
Shadow server audin refactor
2018-10-08 12:56:09 +02:00
David Fort 2e1bf90bd9
Merge pull request #4885 from akallabeth/autoreconnect_handle_window_events
Fixed #3423: Process xevents when in reconnect mode.
2018-10-03 09:42:16 +02:00
Armin Novak c60ab7d068 fixed stuff 2018-09-26 12:49:52 +02:00
Armin Novak 2cf0662559 Unified format support for rdpsnd. 2018-09-26 12:49:52 +02:00
Armin Novak 26ef8c9b3b Added export define. 2018-09-26 12:49:09 +02:00
Armin Novak 40dae15cff Moved server-common to public header. 2018-09-26 12:49:09 +02:00
Armin Novak d56efaae8b Fixed server format selection. 2018-09-26 12:49:09 +02:00
Armin Novak 16531e1437 Fixed server audin callback, provide more information. 2018-09-26 12:49:09 +02:00
Armin Novak 5aa4b702c0 Fixed dst_format 2018-09-26 12:49:09 +02:00
Armin Novak d513f184e9 Fixed shadow server callbacks. 2018-09-26 12:49:09 +02:00
Armin Novak 106dde9571 Working mic redirection for shadow server. 2018-09-26 12:49:09 +02:00
Armin Novak 28efbbc01f Refactored audio_format* functions. 2018-09-26 12:49:09 +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 dab5770fed Added microphone support to shadow server. 2018-09-25 11:14:10 +02:00
Armin Novak 51f97f2d3e Fixed #3423: Process xevents when in reconnect mode.
Fixed crashes due to unloaded disp channel in reconnect mode.
2018-09-24 16:24:32 +02:00
Armin Novak 897c0c72a7 Unified auto_reconnect functions for all clients. 2018-09-24 10:31:43 +02:00
akallabeth 30601608e4
Merge pull request #4855 from r-barnett/fix-logoff-exit-code
Map a particular disconnect situation triggered by a user logging off…
2018-09-20 12:07:36 +02:00
rbarnett 5d3e76bd80 Replace cryptic names; move the disconnect ultimatum reasons enum into public API and rename; remove setter 2018-09-19 09:36:39 -05:00
rbarnett 8458266183 Store the disconnect provider ulimatum reason in a new field in struct rdp_context and move the test for a logoff reason to xf_client.c 2018-09-18 15:31:10 -05:00
Markus Mattes 21e4804a7f implemented floatbar for x11 2018-09-18 21:25:51 +02:00
Martin Fleisz 0b7b9c0dc4
Merge pull request #4842 from akallabeth/smartcard_rdp_logon
Added /smartcard-logon option to set flag. (Stripped version of #4837…
2018-09-17 09:08:47 +02:00
Armin Novak 5819946b84 Fixed rail unicode string conversion and const correctness. 2018-09-14 10:04:16 +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
akallabeth 9e3b48e0fb
Merge pull request #4829 from informatimago/smartcard-logon-rdp--x509-certificate-info-extraction
Smartcard Logon: restructured x509 certificate info extraction; added extracting the UPN.
2018-08-27 14:33:09 +02:00
Pascal J. Bourguignon 63d00f6f81 Corrected the compatibility function names: crypto_cert_subject_alt_name and crypto_cert_subject_alt_name_free. 2018-08-27 13:51:30 +02:00
Pascal J. Bourguignon 79d2294a23 Put back deprecated function names crypto_cert_get_alt_names and crypto_cert_alt_names_free for FREERDP_API compatibility. 2018-08-24 15:20:03 +02:00
Pascal J. Bourguignon 469f9bf488 Smartcard Logon: restructured x509 certificate info extraction; added extracting the UPN. 2018-08-24 14:03:04 +02:00
Armin Novak 5b0b18ae71 Device name now const. 2018-08-24 13:40:36 +02:00
Martin Fleisz 0fb19d04be
Merge pull request #4810 from akallabeth/no_proxy_support
No proxy support
2018-08-24 11:41:58 +02:00
Martin Fleisz f9e52c1850
Merge pull request #4815 from akallabeth/async_transport_remove
Removed +async-transport options
2018-08-24 09:48:51 +02:00
Armin Novak b5df39756d Added option to ignore proxy env. 2018-08-23 17:02:43 +02:00
Armin Novak c3a26b0d6a Removed +async-transport options
The async transport option is broken by design.
If used the main loop is called from the transport thread and the
main thread of the application.
Unless the transport layer is refactored to just work on queues
(input and output) this option will never work, therefore remove it.
2018-08-22 13:56:37 +02:00
Armin Novak cc5e402cda Added command line option /redirect-prefer:<fqdn|ip|netbios>
Since redirection sometimes happens with internal DNS names that
are resolved different by outside DNS it must be possible to override
the preferred redirection hint.
2018-08-08 11:24:13 +02:00
Armin Novak ec0a0fef2a Added const to function buffer pointers 2018-08-01 12:56:18 +02:00
Armin Novak e8393a22e2 Remember if drive was added by automout. 2018-07-30 12:31:11 +02:00
Armin Novak c9cebf6ed6 Remember accepted PEM cert to avoid unnecessary user input. 2018-07-10 11:27:58 +02:00
Armin Novak 398da7340b Added no or missing credentail error. 2018-07-05 16:12:52 +02:00
Martin Fleisz a0fddd1747
Merge pull request #4530 from akallabeth/order_refactor
[leak fixes] Refactored order updates
2018-07-04 14:21:36 +02:00
David Fort a1d9399ca0
Merge pull request #4724 from akallabeth/wave2_server
Wave2 server side support
2018-07-04 13:10:38 +02:00
Martin Fleisz aaaee80151
Merge pull request #4700 from informatimago/rdpsettings-script
Rdpsettings script
2018-07-03 16:07:05 +02:00