Commit Graph

13801 Commits

Author SHA1 Message Date
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
1543664343 winpr: collections: add ArrayList_ForEach 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
Martin Fleisz
326a448952
Merge pull request #5832 from akallabeth/libusb_doc_misleading
Libusb doc misleading
2020-01-13 15:41:59 +01:00
Armin Novak
f313fabb2b Added fallback for libusb < 1.0.19
we use stream_id functions which were introduced with 1.0.19
2020-01-13 15:23:57 +01:00
Armin Novak
b5bb6e3ea9 Fixed LIBUSB_HOTPLUG_NO_FLAGS definition
libusb documentation is a bit misleading, this flag was
introduced with 1.0.20
2020-01-13 15:13:35 +01:00
Kobi Mizrachi
18be21a4fa rdpgfx: client: fix leak when using rdpgfx_client_context_new API 2020-01-13 13:41:44 +01:00
Kobi Mizrachi
50d2789ebf 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.
2020-01-13 13:41:44 +01:00
Kobi Mizrachi
2d9a50fafb fix memory leaks in disp server and gfx.c 2020-01-13 13:41:44 +01:00
Kobi Mizrachi
47ca28b5c3 server: proxy: fix leak in pf_context_copy_settings 2020-01-13 13:41:44 +01:00
David Fort
f3ffa19039 winpr: don't close file descriptor if we set it again to the same file 2020-01-13 12:27:24 +01:00
Martin Fleisz
85984f3bd3
Merge pull request #5752 from akallabeth/manpage_no_err
Allow to generate docbook with 0 length.
2020-01-13 12:26:31 +01:00
Martin Fleisz
32bf768652
Merge pull request #5827 from akallabeth/nightly_fix
Extend LIBUSB_API_VERSION check
2020-01-10 12:00:24 +01:00
Armin Novak
d0929cbf2f Extend LIBUSB_API_VERSION check
The define exists since 1.0.13, so to compensate for older also
check if the variable is defined.
2020-01-10 10:52:23 +01:00
Martin Fleisz
08e7a26979
Merge pull request #5824 from akallabeth/ntstatus_helper
Added NtStatus2Tag function to stringify NTSTATUS
2020-01-10 10:42:56 +01:00
Armin Novak
a392b266c0 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>
2020-01-09 16:14:44 +01:00
Martin Fleisz
7b6dc9decf
Merge pull request #5823 from akallabeth/set_transport_err
Set transport error on close
2020-01-09 14:53:07 +01:00
Armin Novak
548bec9ef2 Setting optional last error on transport close
Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-09 10:35:49 +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
3e3458cc3c
Merge pull request #5821 from akallabeth/smartcard_log_err
Added debug log messages for SCARD_E_NO_SERVICE
2020-01-09 10:12:14 +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
Martin Fleisz
2c210feadf
Merge pull request #5818 from akallabeth/winmm_refactor
RDPSND device API refinements
2020-01-09 08:26:08 +01:00
Armin Novak
c98b3e0cef Added debug log messages for SCARD_E_NO_SERVICE
Log where and what caused SCARD_E_NO_SERVICE return in smartcard
wrapper
2020-01-09 08:20:42 +01:00
Armin Novak
e86849759a Fixed waveOutClose, call waveOutReset first.
Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-08 18:25:08 +01:00
Armin Novak
105799de31 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>
2020-01-08 17:51:00 +01:00
Martin Fleisz
4e06855826 proxy: Add received response in case of an error 2020-01-08 17:45:10 +01:00
Armin Novak
2391a1528b 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>
2020-01-08 17:42:08 +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
b0de74cad2 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>
2020-01-08 17:14:09 +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
Martin Fleisz
05a865281e channels: Fix memory leak and make log messages more precise 2020-01-08 16:49:15 +01:00
Kobi Mizrachi
ca2e578acc server: proxy: add a unique id to each session and improve logs 2020-01-08 11:59:34 +01:00
Kobi Mizrachi
ab3a72f825 server: proxy: move peer initialization to seperate function 2020-01-08 11:59:34 +01:00
Kobi Mizrachi
8c3054851c winpr: thread: fix wrong log level in ThreadCloseHandle 2020-01-08 11:59:34 +01:00
KunMing Xie
7fec130dbc 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>
2020-01-08 09:02:49 +01:00
David Fort
004f59083d
Merge pull request #5802 from dragonuaix/master
Update comm_serial_sys.c
2020-01-08 08:08:42 +01:00
Kobi Mizrachi
77ca7ac2ad server: proxy: make fallback to tls configurable 2020-01-08 07:58:03 +01:00
Martin Fleisz
c3f180a08b
Merge pull request #5813 from akallabeth/win_drive_name_fix
Fix #5805: windows hotplug drive detection.
2020-01-07 13:32:08 +01:00
Armin Novak
44ac64ffb9 Fixed duplicate definition in TestGetComputerName 2020-01-07 10:51:01 +01:00
Armin Novak
c24da9e856 Fixed freerdp_settings_new error cleanup. 2020-01-07 10:49:17 +01:00
Armin Novak
ac553e1bb5 Fix #5805: windows hotplug drive detection. 2020-01-07 10:35:12 +01:00
David Fort
31a4e2ad8b
Merge pull request #5745 from akallabeth/urbdrc_rewrite
Urbdrc rewrite
2020-01-06 09:23:45 +01:00
Martin Fleisz
5d804852b5
Merge pull request #5811 from mfleisz/mac_rdpsnd_workaround
rdpsnd: Do not set output device on Catalina or later (#5747)
2020-01-03 14:47:10 +01:00
Martin Fleisz
a98e153b9d rdpsnd: Do not set output device on Catalina or later (#5747) 2020-01-03 13:31:15 +01:00
Martin Fleisz
483d09b760
Merge pull request #5806 from mfleisz/fix_no_audio_device_handling
Fix audio channel init when no audio devices are present
2019-12-30 14:47:45 +01:00
Martin Fleisz
d21e0a6d6d 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).
2019-12-30 12:59:14 +01:00
Norbert Federa
2df3eb0455
Merge pull request #5803 from nfedera/nf_add_transport_layer_closed_check
transport: check if layer was set to closed
2019-12-27 14:41:24 +01:00
Norbert Federa
a4988f5469 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.
2019-12-27 12:37:03 +01:00
dragonuaix
4c1d57b3d0
Update comm_serial_sys.c 2019-12-26 16:48:00 +02:00
David Fort
97d9d0aa11
Merge pull request #5795 from akallabeth/swscale_find_fix
Fixed SWScale cmake find script.
2019-12-20 08:00:03 +01:00