Martin Fleisz [Thu, 16 Jan 2020 09:17:10 +0000 (10:17 +0100)]
Merge pull request #5841 from akallabeth/vaapi_fixes
Vaapi fixes
Martin Fleisz [Thu, 16 Jan 2020 09:13:26 +0000 (10:13 +0100)]
Merge pull request #5836 from kubistika/proxy/fix_rail_and_update_issues
fixes: rail and update issues
Martin Fleisz [Thu, 16 Jan 2020 09:02:15 +0000 (10:02 +0100)]
Merge pull request #5783 from akallabeth/gfx_mask_arg
Added /gfx and /gfx-h264 option mask=<value>
Armin Novak [Thu, 16 Jan 2020 08:53:57 +0000 (09:53 +0100)]
Fixed #5839: Use correct pointer to cast.
Armin Novak [Thu, 16 Jan 2020 08:53:39 +0000 (09:53 +0100)]
Add CMake config option for VAAPI
Kobi Mizrachi [Thu, 16 Jan 2020 07:07:50 +0000 (09:07 +0200)]
core: rdp: reset rdp->nla in rdp_reset
Alexander Volkov [Wed, 15 Jan 2020 11:32:08 +0000 (14:32 +0300)]
client/X11: Avoid crash in XGetDeviceButtonMapping()
XOpenDevice() may fail and return NULL, so try to find the first
pointer device that can be opened, and ensure that ptr_dev argument
is not NULL before passing it to XGetDeviceButtonMapping().
David Fort [Wed, 15 Jan 2020 12:56:00 +0000 (13:56 +0100)]
Merge pull request #5750 from akallabeth/encomsp_auto
Encomsp automatic input control && cleanups
Kobi Mizrachi [Wed, 15 Jan 2020 11:51:05 +0000 (13:51 +0200)]
rdpsnd: server: fix leak in rdpsnd_server_context_free
Kobi Mizrachi [Wed, 15 Jan 2020 10:11:24 +0000 (12:11 +0200)]
server: update: made functions static
Kobi Mizrachi [Wed, 15 Jan 2020 09:20:54 +0000 (11:20 +0200)]
update: update_send_new_or_existing_window: fix signed/unsigned according to spec
Kobi Mizrachi [Wed, 15 Jan 2020 09:18:45 +0000 (11:18 +0200)]
server: update: call update_check_flush whenever using the reused update buffer
David Fort [Wed, 15 Jan 2020 09:49:53 +0000 (10:49 +0100)]
Merge pull request #5831 from akallabeth/drdynvc_error_tolerance
Ignore dynamic virtual channel errors
David Fort [Wed, 15 Jan 2020 09:49:09 +0000 (10:49 +0100)]
Merge pull request #5835 from akallabeth/planar_chroma_subsample
Implemented chroma subsampling for planar non RLE
Kobi Mizrachi [Wed, 15 Jan 2020 09:15:06 +0000 (11:15 +0200)]
server: proxy: fix race condition when between client thread and server update thread
Armin Novak [Tue, 14 Jan 2020 16:46:13 +0000 (17:46 +0100)]
Fixed remaining issues with chroma subsampling.
Armin Novak [Tue, 14 Jan 2020 16:45:20 +0000 (17:45 +0100)]
Fixed inverted color formats in YCoCgRToRGB_8u_AC4R
Armin Novak [Tue, 14 Jan 2020 14:14:40 +0000 (15:14 +0100)]
Fixed planar size checks.
Armin Novak [Tue, 14 Jan 2020 13:23:43 +0000 (14:23 +0100)]
Enabled YCoCg for planar.
Armin Novak [Tue, 14 Jan 2020 12:22:45 +0000 (13:22 +0100)]
Added planar RLE chroma subsampling.
Armin Novak [Tue, 14 Jan 2020 11:17:12 +0000 (12:17 +0100)]
Implemented chroma subsampling for planar non RLE
Planar frames that are not RLE encoded can now be decoded if
chroma subsampling is enabled. Partly fixes #5822
Kobi Mizrachi [Tue, 14 Jan 2020 09:02:04 +0000 (11:02 +0200)]
server: proxy: fix pf_modules_init
David Fort [Tue, 14 Jan 2020 09:17:13 +0000 (10:17 +0100)]
Merge pull request #5796 from akallabeth/rdp_10_7_large_pointers
Added RDP 10.7 large pointer support
Kobi Mizrachi [Mon, 13 Jan 2020 10:30:09 +0000 (12:30 +0200)]
server: proxy: do not compile modules by default
Kobi Mizrachi [Tue, 31 Dec 2019 13:52:33 +0000 (15:52 +0200)]
server: proxy: shutdown gracefully
Kobi Mizrachi [Tue, 31 Dec 2019 09:16:12 +0000 (11:16 +0200)]
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.
Kobi Mizrachi [Tue, 31 Dec 2019 11:15:00 +0000 (13:15 +0200)]
winpr: collections: add ArrayList_ForEach
Kobi Mizrachi [Mon, 30 Dec 2019 08:08:26 +0000 (10:08 +0200)]
rail/server: rename rdpContext to rdpcontext
Fixes a compilation error when mixing c++ and c code.
Armin Novak [Mon, 16 Dec 2019 06:53:35 +0000 (07:53 +0100)]
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)
Martin Fleisz [Mon, 13 Jan 2020 14:41:59 +0000 (15:41 +0100)]
Merge pull request #5832 from akallabeth/libusb_doc_misleading
Libusb doc misleading
Armin Novak [Mon, 13 Jan 2020 14:23:57 +0000 (15:23 +0100)]
Added fallback for libusb < 1.0.19
we use stream_id functions which were introduced with 1.0.19
Armin Novak [Mon, 13 Jan 2020 14:13:35 +0000 (15:13 +0100)]
Fixed LIBUSB_HOTPLUG_NO_FLAGS definition
libusb documentation is a bit misleading, this flag was
introduced with 1.0.20
Kobi Mizrachi [Sun, 5 Jan 2020 05:54:26 +0000 (07:54 +0200)]
rdpgfx: client: fix leak when using rdpgfx_client_context_new API
Kobi Mizrachi [Thu, 2 Jan 2020 13:48:13 +0000 (15:48 +0200)]
server: fix leak in WTSCloseServer
make sure every pending message that wouldn't be handled because the
server is closing, will be free()ed as expected.
Kobi Mizrachi [Tue, 31 Dec 2019 13:47:03 +0000 (15:47 +0200)]
fix memory leaks in disp server and gfx.c
Kobi Mizrachi [Thu, 2 Jan 2020 13:19:08 +0000 (15:19 +0200)]
server: proxy: fix leak in pf_context_copy_settings
David Fort [Fri, 10 Jan 2020 16:11:50 +0000 (17:11 +0100)]
winpr: don't close file descriptor if we set it again to the same file
Martin Fleisz [Mon, 13 Jan 2020 11:26:31 +0000 (12:26 +0100)]
Merge pull request #5752 from akallabeth/manpage_no_err
Allow to generate docbook with 0 length.
Armin Novak [Mon, 13 Jan 2020 11:23:30 +0000 (12:23 +0100)]
Ignore dynamic virtual channel errors
If a dynamic virtual channel can not process a message, ignore it.
Martin Fleisz [Fri, 10 Jan 2020 11:00:24 +0000 (12:00 +0100)]
Merge pull request #5827 from akallabeth/nightly_fix
Extend LIBUSB_API_VERSION check
Armin Novak [Fri, 10 Jan 2020 09:52:23 +0000 (10:52 +0100)]
Extend LIBUSB_API_VERSION check
The define exists since 1.0.13, so to compensate for older also
check if the variable is defined.
Martin Fleisz [Fri, 10 Jan 2020 09:42:56 +0000 (10:42 +0100)]
Merge pull request #5824 from akallabeth/ntstatus_helper
Added NtStatus2Tag function to stringify NTSTATUS
Armin Novak [Thu, 9 Jan 2020 15:14:44 +0000 (16:14 +0100)]
Added NtStatus2Tag function to stringify NTSTATUS
For higher level applications it is easier to translate known
strings instead of error codes. this function allows
to retrieve known string identifiers that can be translated.
Signed-off-by: Armin Novak <armin.novak@thincast.com>
Martin Fleisz [Thu, 9 Jan 2020 13:53:07 +0000 (14:53 +0100)]
Merge pull request #5823 from akallabeth/set_transport_err
Set transport error on close
Armin Novak [Thu, 9 Jan 2020 09:35:49 +0000 (10:35 +0100)]
Setting optional last error on transport close
Signed-off-by: Armin Novak <armin.novak@thincast.com>
Armin Novak [Thu, 9 Jan 2020 09:34:27 +0000 (10:34 +0100)]
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>
Martin Fleisz [Thu, 9 Jan 2020 09:12:14 +0000 (10:12 +0100)]
Merge pull request #5821 from akallabeth/smartcard_log_err
Added debug log messages for SCARD_E_NO_SERVICE
Martin Fleisz [Thu, 9 Jan 2020 07:47:09 +0000 (08:47 +0100)]
Merge pull request #5819 from akallabeth/last_error_informative
make Last error more informative
Martin Fleisz [Thu, 9 Jan 2020 07:26:08 +0000 (08:26 +0100)]
Merge pull request #5818 from akallabeth/winmm_refactor
RDPSND device API refinements
Armin Novak [Thu, 9 Jan 2020 07:20:42 +0000 (08:20 +0100)]
Added debug log messages for SCARD_E_NO_SERVICE
Log where and what caused SCARD_E_NO_SERVICE return in smartcard
wrapper
Armin Novak [Wed, 8 Jan 2020 18:23:47 +0000 (19:23 +0100)]
Fixed waveOutClose, call waveOutReset first.
Signed-off-by: Armin Novak <armin.novak@thincast.com>
Armin Novak [Wed, 8 Jan 2020 16:51:00 +0000 (17:51 +0100)]
Added an error message in rdp_set_error_info
If the provided arguments are not properly set up write
an error message explaining what is wrong.
Signed-off-by: Armin Novak <armin.novak@thincast.com>
Martin Fleisz [Tue, 7 Jan 2020 12:30:28 +0000 (13:30 +0100)]
proxy: Add received response in case of an error
Armin Novak [Wed, 8 Jan 2020 16:40:39 +0000 (17:40 +0100)]
CONNECT_TRANSPORT_FAILED in transport_check_fds
If TRANSPORT_LAYER_CLOSED was detected in transport_check_fds
check if there is already a connection error set, otherwise
set FREERDP_ERROR_CONNECT_TRANSPORT_FAILED to allow proper
reconnect or abort handling.
Signed-off-by: Armin Novak <armin.novak@thincast.com>
Armin Novak [Wed, 8 Jan 2020 16:39:25 +0000 (17:39 +0100)]
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>
Armin Novak [Wed, 8 Jan 2020 14:42:20 +0000 (15:42 +0100)]
Fallback definition for LIBUSB_HOTPLUG_NO_FLAGS
The flag was first introduced with libusb 1.0.16, so
define it if we are using an older version.
Signed-off-by: Armin Novak <armin.novak@thincast.com>
Armin Novak [Wed, 8 Jan 2020 10:27:49 +0000 (11:27 +0100)]
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>
Martin Fleisz [Wed, 8 Jan 2020 12:31:20 +0000 (13:31 +0100)]
channels: Fix memory leak and make log messages more precise
Kobi Mizrachi [Thu, 26 Dec 2019 08:25:13 +0000 (10:25 +0200)]
server: proxy: add a unique id to each session and improve logs
Kobi Mizrachi [Thu, 26 Dec 2019 08:24:20 +0000 (10:24 +0200)]
server: proxy: move peer initialization to seperate function
Kobi Mizrachi [Thu, 26 Dec 2019 08:22:41 +0000 (10:22 +0200)]
winpr: thread: fix wrong log level in ThreadCloseHandle
KunMing Xie [Wed, 8 Jan 2020 08:02:49 +0000 (16:02 +0800)]
wf_rail.c: fix crash if CreateWindowEx failed (#5812)
* wf_rail.c: fix crash if CreateWindowEx failed
Co-authored-by: tensorflow123 <kunming.xie@hotmail.com>
David Fort [Wed, 8 Jan 2020 07:08:42 +0000 (08:08 +0100)]
Merge pull request #5802 from dragonuaix/master
Update comm_serial_sys.c
Kobi Mizrachi [Sun, 29 Dec 2019 08:55:40 +0000 (10:55 +0200)]
server: proxy: make fallback to tls configurable
Martin Fleisz [Tue, 7 Jan 2020 12:32:08 +0000 (13:32 +0100)]
Merge pull request #5813 from akallabeth/win_drive_name_fix
Fix #5805: windows hotplug drive detection.
Armin Novak [Tue, 7 Jan 2020 09:51:01 +0000 (10:51 +0100)]
Fixed duplicate definition in TestGetComputerName
Armin Novak [Tue, 7 Jan 2020 09:49:17 +0000 (10:49 +0100)]
Fixed freerdp_settings_new error cleanup.
Armin Novak [Tue, 7 Jan 2020 10:33:14 +0000 (11:33 +0100)]
Fix #5805: windows hotplug drive detection.
David Fort [Mon, 6 Jan 2020 08:23:45 +0000 (09:23 +0100)]
Merge pull request #5745 from akallabeth/urbdrc_rewrite
Urbdrc rewrite
Martin Fleisz [Fri, 3 Jan 2020 13:47:10 +0000 (14:47 +0100)]
Merge pull request #5811 from mfleisz/mac_rdpsnd_workaround
rdpsnd: Do not set output device on Catalina or later (#5747)
Martin Fleisz [Fri, 3 Jan 2020 12:31:15 +0000 (13:31 +0100)]
rdpsnd: Do not set output device on Catalina or later (#5747)
Martin Fleisz [Mon, 30 Dec 2019 13:47:45 +0000 (14:47 +0100)]
Merge pull request #5806 from mfleisz/fix_no_audio_device_handling
Fix audio channel init when no audio devices are present
Martin Fleisz [Mon, 30 Dec 2019 11:59:14 +0000 (12:59 +0100)]
Fix audio channel init when no audio devices are present
This PR fixes the handling of using rdpsnd or audin when the system has
no audio device available.
In case of a missing playback device the
Windows backend now correctly reports an error and the fake rdpsnd
backend is loaded.
If audin is enabled and no microphone is present the channel
initialization will report an error but it won't cut the connection (as
it did before).
Norbert Federa [Fri, 27 Dec 2019 13:41:24 +0000 (14:41 +0100)]
Merge pull request #5803 from nfedera/nf_add_transport_layer_closed_check
transport: check if layer was set to closed
Norbert Federa [Fri, 27 Dec 2019 10:58:27 +0000 (11:58 +0100)]
transport: check if layer was set to closed
There are several code paths and error conditions where
transport->layer is correctly set to TRANSPORT_LAYER_CLOSED but
the required code for checking that state was missing.
E.g. write errors in the rdg code resulted in marking the transport
layer as closed but the transport code would indefinitely continue
to read from the receiving socket.
dragonuaix [Thu, 26 Dec 2019 14:48:00 +0000 (16:48 +0200)]
Update comm_serial_sys.c
David Fort [Fri, 20 Dec 2019 07:00:03 +0000 (08:00 +0100)]
Merge pull request #5795 from akallabeth/swscale_find_fix
Fixed SWScale cmake find script.
Armin Novak [Thu, 19 Dec 2019 08:50:29 +0000 (09:50 +0100)]
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>
Armin Novak [Thu, 19 Dec 2019 08:35:53 +0000 (09:35 +0100)]
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>
Armin Novak [Thu, 19 Dec 2019 07:43:33 +0000 (08:43 +0100)]
Fixed SWScale cmake find script.
* Wrong name for pkg-config (thanks @floppym for pointing that out)
* Formatting issues, there were spaces in path and variables that
should not have been there.
Signed-off-by: Armin Novak <armin.novak@thincast.com>
David Fort [Wed, 18 Dec 2019 21:09:52 +0000 (22:09 +0100)]
Merge pull request #5790 from akallabeth/rdpei_no_thread
Removed touch input channel thread
Martin Fleisz [Wed, 18 Dec 2019 14:11:35 +0000 (15:11 +0100)]
Merge pull request #5793 from akallabeth/smartcard_cherry_pick
Tell the server that smartcard is redirected
Armin Novak [Wed, 18 Dec 2019 11:20:17 +0000 (12:20 +0100)]
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>
Ondrej Holy [Tue, 26 Nov 2019 15:57:21 +0000 (16:57 +0100)]
Tell the server that smartcard is redirected
There were server-side changes on Windows 2012 and newer regarding
smartcards, namely the Smart Card Service start and stop behavior:
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh849637(v%3Dws.11)#smart-card-service-start-and-stop-behavior
Some people see "No valid certificates were found on this smart card",
when the Smart Card Service is not running and has to use various
workarounds to start the service manually, e.g.:
http://blogs.danosaab.com/2016/12/using-smart-card-with-remote-desktop-connection-on-mac-osx/
http://www.edugeek.net/forums/windows-server-2012/161255-smart-card-service-issue-windows-server-2012r2-terminal-services-hyperv.html
I've been looking at RDP specifications and found that
REDIRECTED_SMARTCARD should be probably specified in TS_UD_CS_CLUSTER
block flags when the smartcard is redirected, but it is not currently:
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/
d68c629f-36a1-4a40-afd0-
8b3e56d29aac
This might be the reason, why the Smart Card Service is not
autostarted for some people. Let's try to set this flag and see what
will happens...
https://github.com/FreeRDP/FreeRDP/issues/4743
Signed-off-by: Armin Novak <armin.novak@thincast.com>
Armin Novak [Wed, 18 Dec 2019 10:31:40 +0000 (11:31 +0100)]
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.
Armin Novak [Tue, 17 Dec 2019 14:51:24 +0000 (15:51 +0100)]
Fixed stream handling and missing includes.
Kobi Mizrachi [Tue, 17 Dec 2019 14:16:52 +0000 (16:16 +0200)]
server: proxy: proxy keyboard leds and imei
Martin Fleisz [Tue, 17 Dec 2019 13:11:40 +0000 (14:11 +0100)]
Merge pull request #5768 from akallabeth/timezone_update
Timezone update
Kobi Mizrachi [Tue, 17 Dec 2019 09:16:54 +0000 (11:16 +0200)]
update: add proper stream checks
Kobi Mizrachi [Tue, 17 Dec 2019 08:17:11 +0000 (10:17 +0200)]
winpr: SetWaitableTimer should not free the handle if it fails
xie.kunming [Mon, 16 Dec 2019 10:09:18 +0000 (18:09 +0800)]
rdp.c : fix DATA_PDU_TYPE_STRINGS mismatch declaration when WITH_DEBUG_ALL=ON
Bernhard Miklautz [Mon, 16 Dec 2019 08:57:16 +0000 (09:57 +0100)]
Merge pull request #5778 from akallabeth/shadow_warnings
Added warning to win shadow server
xie.kunming [Mon, 16 Dec 2019 03:55:35 +0000 (11:55 +0800)]
fix typo of jpeg
Kobi Mizrachi [Wed, 11 Dec 2019 13:09:01 +0000 (15:09 +0200)]
rdpgfx: surface_to_scaled_window: fix pdu type
Kobi Mizrachi [Wed, 11 Dec 2019 13:08:10 +0000 (15:08 +0200)]
core: server: update: fix update_send_new_or_existing_notification_icons
Kobi Mizrachi [Tue, 10 Dec 2019 11:59:10 +0000 (13:59 +0200)]
core: server: add missing NULL check in FreeRDP_WTSVirtualChannelRead
Kobi Mizrachi [Tue, 10 Dec 2019 10:03:30 +0000 (12:03 +0200)]
rail: keep extendedSpiSupported flag synced
Kobi Mizrachi [Wed, 4 Dec 2019 14:25:08 +0000 (15:25 +0100)]
rail: stream size checks and rail_read_sysparam_order fixes
Armin Novak [Wed, 4 Dec 2019 14:25:08 +0000 (15:25 +0100)]
Stream size checks for rail_write_sysparam_order
Ensure the stream is large enough to hold the data
in rail_write_sysparam_order, rail_write_high_contrast and
rail_write_filterkeys.
Mati Shabtay [Tue, 6 Aug 2019 13:46:18 +0000 (16:46 +0300)]
proxy: Implement RAIL support in proxy