Commit Graph

4184 Commits

Author SHA1 Message Date
Kobi Mizrachi
8c8e5e4239 server: proxy: show indicative log on bind failure. 2020-01-27 07:57:45 +01:00
Martin Fleisz
e4a2287f4d
Merge pull request #5859 from mfleisz/multi_trans_fix
core: Always send CS_MULTITRANSPORT PDU to server
2020-01-23 15:39:28 +01:00
Martin Fleisz
7ef8b10fec core: Always send CS_MULTITRANSPORT PDU to server
This PDU is required by Microsoft servers in order for bandwidth
management to work correctly. Even if we do not support multi-transport
for now we should just send a PDU with flags set to 0 to enable correct
handing of bandwidth measurement PDUs.
2020-01-23 15:16:14 +01:00
Armin Novak
c92bbb37f5 Fixed NULL dereference. 2020-01-23 10:12:12 +01:00
Armin Novak
ea25900f4c Fixed #5855: YCoCg to RGB conversion color order 2020-01-22 17:28:22 +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
9d65d9562b Fixed missing NULL set of pointer after free
Due to this double free was possible if disconnect_and_clear was
called multiple times.
2020-01-21 14:44:21 +01:00
Kobi Mizrachi
457d5e426c Revert "core: rdp: reset rdp->nla in rdp_reset"
This reverts commit 205b0fba7f.
2020-01-21 12:08:39 +01:00
Martin Fleisz
9099682f71
Merge pull request #5841 from akallabeth/vaapi_fixes
Vaapi fixes
2020-01-16 10:17:10 +01:00
Martin Fleisz
9cddb7c2be
Merge pull request #5836 from kubistika/proxy/fix_rail_and_update_issues
fixes: rail and update issues
2020-01-16 10:13:26 +01:00
Armin Novak
b0b81af8b8 Fixed #5839: Use correct pointer to cast. 2020-01-16 09:53:57 +01:00
Kobi Mizrachi
205b0fba7f core: rdp: reset rdp->nla in rdp_reset 2020-01-16 08:46:24 +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
Kobi Mizrachi
d552ef9e83 server: update: made functions static 2020-01-15 12:59:06 +02:00
Kobi Mizrachi
bd5ac550c5 update: update_send_new_or_existing_window: fix signed/unsigned according to spec 2020-01-15 12:59:06 +02:00
Kobi Mizrachi
9e47fd76db server: update: call update_check_flush whenever using the reused update buffer 2020-01-15 12:59:06 +02:00
Armin Novak
1c19de5a76 Fixed remaining issues with chroma subsampling. 2020-01-14 17:46:13 +01:00
Armin Novak
61d2e84fdc Fixed inverted color formats in YCoCgRToRGB_8u_AC4R 2020-01-14 17:45:20 +01:00
Armin Novak
b3a642164a Fixed planar size checks. 2020-01-14 15:14:40 +01:00
Armin Novak
4766f5204b Enabled YCoCg for planar. 2020-01-14 14:23:43 +01:00
Armin Novak
c1679d0f2c Added planar RLE chroma subsampling. 2020-01-14 14:06:43 +01:00
Armin Novak
6fd9525823 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
2020-01-14 12:43:40 +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
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
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
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
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
c24da9e856 Fixed freerdp_settings_new error cleanup. 2020-01-07 10:49:17 +01:00
David Fort
31a4e2ad8b
Merge pull request #5745 from akallabeth/urbdrc_rewrite
Urbdrc rewrite
2020-01-06 09:23:45 +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
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
Ondrej Holy
0531624826 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>
2019-12-18 12:22:11 +01:00
Kobi Mizrachi
200f50c1f6 update: add proper stream checks 2019-12-17 12:38:41 +01:00
xie.kunming
e16bef6b4f rdp.c : fix DATA_PDU_TYPE_STRINGS mismatch declaration when WITH_DEBUG_ALL=ON 2019-12-16 12:14:59 +01:00
Kobi Mizrachi
033ee763e9 core: server: update: fix update_send_new_or_existing_notification_icons 2019-12-12 11:10:44 +01:00
Kobi Mizrachi
edeb449185 core: server: add missing NULL check in FreeRDP_WTSVirtualChannelRead 2019-12-12 11:10:44 +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
Mati Shabtay
8298728663 channels.c: Send the CHANNEL_OPTION_SHOW_PROTOCOL option only in client mode
According to MS-RDPBCGR section 2.2.1.3.4.1, this option should only be
sent as a client. If set by a server, mstsc will crash.
2019-12-12 11:10:44 +01:00
Mati Shabtay
9045f1b343 info.c: Set hidef Remote App flag on info packet read 2019-12-12 11:10:44 +01:00
Mati Shabtay
8e4a88d955 update.c: Implement rail server altsec window orders 2019-12-12 11:10:44 +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
David Fort
22f954970a primitives: use host pointers for openCL
Using host pointers may skip the need for copying buffers.
2019-11-29 11:59:09 +01:00
Armin Novak
c7337f4b6b Added data length check for RDP_CODEC_ID_NONE 2019-11-28 08:08: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
3aa6047b3a Updated primitive function const correctness. 2019-11-22 13:21:39 +01:00
Armin Novak
e347c7b3de Added YUV444 kernel 2019-11-22 13:21:39 +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
00e9efd189 Fixed init code. 2019-11-22 13:21:39 +01:00
Armin Novak
733c70cd25 Fixed primitives cleanup 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
David Fort
7b743b3199 rails: shorten logs 2019-11-22 13:21:39 +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
8665ac7e81 Fixed broken strnlen checks 2019-11-11 12:12:51 +01:00
Armin Novak
9e7c24668b Fixed broken length calculation in rdp_write_extended_info_packet 2019-11-11 09:30:16 +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
09dd01a78f Implemented configurable tcp keepalive and timeout detection 2019-11-07 13:03:33 +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
fc4bb71205 Added cast and checks for info packet. 2019-11-07 10:55:27 +01:00
Armin Novak
153639624b Fixed NULL checks for strnlen calls, limit static channel name length.
As reported by @metametaclass in #5687 check the strings for NULL before
using strnlen. Also extend the same checks to static channel loading.
2019-11-07 10:53:55 +01:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Raphaël ZHOU
31962b2fa6 Fix padding of encoded scan-line for XOR mask of pointer. 2019-11-07 10:12:22 +01:00
Armin Novak
75ed12f1f0 Fixed userdata pointer and CHANNEL_EVENT_WRITE_CANCELLED message. 2019-11-06 13:01:43 +01:00
Armin Novak
1bcb799560 Listen to CHANNEL_EVENT_WRITE_CANCELLED and emit if queue is cleared. 2019-11-06 13:01:43 +01:00
Armin Novak
1b78b59926 Fixed #4809: Properly process CHANNEL_EVENT_WRITE_COMPLETE 2019-11-06 13:01:43 +01:00
Martin Fleisz
5b6663fe3a
Merge pull request #5689 from akallabeth/cleanups
Cleanups
2019-11-05 15:28:02 +01:00
Armin Novak
d7877186d6 Fixed strnlen issues. 2019-11-05 14:55:33 +01:00
David Fort
824d09169e rdp: fix byte and packet counters
Best to count bytes directly at the transport level.
2019-11-04 07:39:35 +01:00
David Fort
59d5f888a3 fix typo 2019-11-04 07:39:35 +01:00
Armin Novak
993b79f1bd Removed strcpy use. 2019-10-29 11:58:43 +01:00
Armin Novak
f01e042211 Code cleanups (strlen, casts, size_t, ...) 2019-10-29 11:58:43 +01:00
Martin Fleisz
c49dc3c67f
Merge pull request #5670 from akallabeth/cairo_detection_fix
Fix #5669: If cairo is detected as part of other dependencies ignore it
2019-10-28 15:18:59 +01:00
Martin Fleisz
7b2a5a6ee8
Merge pull request #5680 from akallabeth/fixes2
Some smaller Fixes
2019-10-28 11:54:23 +01:00
Armin Novak
47bea1bc80 wts_read_drdynvc_close_response quit message queue. 2019-10-25 13:25:12 +02:00
Armin Novak
5cdb7b7bea Fix gdi coordinate clamping. 2019-10-25 12:58:14 +02:00
Armin Novak
d5fed5e998 Fix #5669: If cairo is detected as part of other dependencies ignore it
If WITH_CAIRO=OFF it was still used when the library was detected as
part of some other dependency. With this commit the dependency is
only added if WITH_CAIRO=ON
2019-10-23 16:16:15 +02:00
David Fort
bd5a88e95a rdp: count in/out bytes and packets 2019-10-23 09:16:35 +02:00
asapelkin
82eadad4a4 Fix some static analizer warnings 2019-10-22 15:39:54 +02:00
Martin Fleisz
5ead938271
Merge pull request #5657 from akallabeth/warning_fixes2
Warning fixes2
2019-10-17 17:00:57 +02:00
Martin Fleisz
105527ed37
Merge pull request #5648 from akallabeth/h264_dyn
H264 runtime detection
2019-10-17 12:54:43 +02:00
Armin Novak
59b4988f56 Fixed compilation warnings. 2019-10-16 14:54:05 +02:00
Armin Novak
cda41b8d07 Fixed missing initializer 2019-10-16 14:53:42 +02:00
Martin Fleisz
799685cb92
Merge pull request #5646 from akallabeth/realloc_fixes
Fixed #5645: realloc return handling
2019-10-07 10:43:11 +02:00
Armin Novak
441fb4d0ca Allow freerdp clients to function with WITH_OPENH264_LOADING
If no library can be loaded at runtime ignore H264 capabilities.
This allows a build with only OpenH264 support and dynamic loading
enabled to function when no openh264 library was detected.
2019-10-07 09:31:20 +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
2f2ca9d93b Fixed leak in verify_cb. 2019-10-04 16:19:23 +02:00
Armin Novak
9fee4ae076 Fixed #5645: realloc return handling 2019-10-04 16:19:23 +02:00
Martin Fleisz
a301e08be5
Merge pull request #5639 from akallabeth/error_category
Added function to get an error category for better error handling.
2019-10-04 13:32:07 +02:00
Armin Novak
74f01aab15 Removed check for wrong buffer size. 2019-10-04 11:46:14 +02:00
Armin Novak
e09f739b90 Cleaned up NSC API 2019-10-04 10:33:41 +02:00
Armin Novak
4a4890b548 fixed openh264 related issues, thx to mythos from IRC 2019-10-04 10:23:43 +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
Armin Novak
6100273089 Reset fastpath on disconnect, fixes #5629 2019-10-02 10:21:48 +02:00
Armin Novak
f78c5f5c44 Map gateway errors in freerdp_get_last_error_name 2019-10-01 09:47:26 +02:00
Martin Fleisz
6b8b5bbb0e
Merge pull request #5614 from akallabeth/better_gateway_error
Better gateway error reporting
2019-09-24 16:28:17 +02:00
Armin Novak
733cc36462 Setting freerdp_last_error in gateway error response. 2019-09-24 09:42:13 +02:00
Armin Novak
6f9cb89c5d Better log message for resetting last error state. 2019-09-23 11:22:45 +02:00
akallabeth
4679bb6b53 Fix ##5593: duplicated typedef. 2019-09-22 16:42:31 +02:00
Armin Novak
f25488a7ab Reset last error state after a hostname was resolved successfully. 2019-09-11 10:43:17 +02:00
Armin Novak
306c557512 Getter for state to string 2019-09-04 15:46:47 +02:00
Martin Fleisz
852907a9ba common: Fix nullptr checking in settings_set_string function 2019-09-03 13:24:02 +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
f93d625cde Use GetTickCount64 instead of GetTickCountPrecise. 2019-09-02 15:46:36 +02:00
Armin Novak
4d4669471e Added color conversion correctness check to interleaved codec test. 2019-08-26 10:54:43 +02:00
Armin Novak
2778cbce8c Fixed type of sk_* macro. 2019-08-22 10:40:25 +02: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
Louis Sautier
60152291b3 client: proxy: allow passing SOCKS5 proxies as env. vars 2019-08-20 14:06:38 +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
kubistika
749c88ab0d libfreerdp: core: copy redirection info in freerdp_settings_copy 2019-08-14 19:39:34 +02:00
Antenore Gatta
8617ae9ca4 Move FoundCairo module include where is referenced 2019-08-14 18:11:14 +02:00
Armin Novak
b036fd7a7d Return a proper error if redirection fails. 2019-08-12 12:33:06 +02:00
Armin Novak
e3f3343323 Fixed #5496: Canadian keyboard mapping issue reported by @renaudn1981 2019-08-01 11:09:57 +02:00
Sergey Bronnikov
10cedac149
Typo: neigter -> neither 2019-07-24 10:22:05 +03:00
kubistika
13fb3ffc39 libfreerdp: core: fix const correctness of freerdp_settings_clone 2019-07-17 16:20:42 +02:00
Armin Novak
36c820a9d9 Extract whole certificate chain to PEM format. 2019-07-17 14:42:32 +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
kubistika
8acea82288 libfreerdp: certificate: Add key_clone 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
0c17c3871b Pass on cert validation failure, set freerdp error in all use cases. 2019-07-15 15:51:46 +02:00
Armin Novak
3b38479ec5 Added PromptForCredentials setting. 2019-07-15 12:01:30 +02:00
Armin Novak
4435fc8430 Don't set ACCESS_DENIED on first HTTP gateway response.
The first response is alwasy ACCESS_DENIED to initiate authentication.
Only the second response must not have that status.
2019-07-11 11:44:18 +02:00
Armin Novak
80b9212fd3 Set freerdp last error on gateway access denied. 2019-07-11 10:38:15 +02:00
Armin Novak
19103fee3d Only try to set nego token if load balance info length is >0 2019-07-02 11:53:14 +02:00
Armin Novak
58c4e639f1 Fixed type mismatch. 2019-06-25 10:49:53 +02:00
Martin Fleisz
1112e2fffb codec: Set alpha channel to FF if not used (#5431)
* Formatting

* codec: Set alpha channel to FF if not used

This PR initializes the alpha channel to FF. Before the alpha channel
contained uninitialized memory potentially causing problems when the
image data was used by an alpha channel aware frontend.
2019-06-13 09:19:42 +02:00
kubistika
99b10aa98d rdpUpdate: add autoCalculateBitmapData flag 2019-06-04 17:33:18 +03:00
Martin Fleisz
20c4e3bab0
Merge pull request #5415 from akallabeth/dump_append_fix
Fixed format security issues.
2019-06-04 09:14:59 +02: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
Martin Fleisz
1f5ded4611 RAIL: Fix parsing of WINDOW_ORDER_FIELD_ICON_OVERLAY_NULL (#5421) 2019-06-03 09:05:43 +02:00
Armin Novak
c6e1208457 Fixed format security issues. 2019-05-24 09:28:08 +02:00
David Fort
6563bc28c4 rail: added verbose logs (#5402)
* rail: added verbose logs

* rail: fix buffer initialisation in debug message
2019-05-23 12:15:26 +02: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
Armin Novak
0d1d069b5a Updated settings getter/setter for RemoteApplicationSupportMask 2019-05-09 14:24:58 +02: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
Armin Novak
4d4e7a69d7 Fixed remaining getter/setter return checks. 2019-05-09 14:04:40 +02:00
Martin Fleisz
b953a97eae
Merge pull request #5393 from akallabeth/rails_memleak_fix
Fixed window order cleanup for NOTIFY_ICON_STATE_ORDER
2019-05-09 13:45:37 +02:00
Armin Novak
95a7447366 Fixed window order cleanup for NOTIFY_ICON_STATE_ORDER 2019-05-09 13:24:22 +02:00
Martin Fleisz
ccd1fc71e9
Merge pull request #5327 from akallabeth/sign_compare_fixes_v3
Leak and warning fixes for 2.0
2019-05-09 13:21:36 +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
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
d49adfcf59 Fixed warnings and cleaned up gfx related xfreerdp code. 2019-05-08 17:01:36 +02:00
Armin Novak
b59e39b3eb Fixed memory leak 2019-05-08 15:12:40 +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
50566c2171
Merge pull request #5385 from akallabeth/some_unused_parameter_silenced
Some unused parameter silenced
2019-05-08 14:16:05 +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
d7ca2db62e Fixed doulbe semicolon in C files. 2019-05-08 12:58:01 +02:00
Armin Novak
ca4a1d19a5 Silenced some unused parameter warnings. 2019-05-08 12:21:31 +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
8fdf8eaeb7 Optimized image scaling, copy if factor is 1.0 2019-05-07 12:10:23 +02:00
Armin Novak
3b7e46fb0e Updated GFX to 10.6 spec 2019-05-07 12:10:13 +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
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
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
byteboon
df280a7ffd FreeRDP#5329 if using OldLicenseBehaviour, don't try to save the Cal since we're not going to try to load it (#5330) 2019-04-08 09:42:02 +02:00
Armin Novak
8d6a12f312 Fixed unnecessary casts in freerdp_image_copy. 2019-04-05 09:14:35 +02:00
Armin Novak
082eef05e1 Fixed broken implicit fallthrough 2019-04-05 09:14:35 +02:00
Armin Novak
f9b688a446 Removed duplicate argument checks. 2019-04-05 09:14:35 +02:00
Armin Novak
29c920c568 Fixed review remarks. 2019-04-05 09:14:35 +02:00
Armin Novak
c7b7d527f3 Fixed unused argument warnings for tests. 2019-04-05 09:14:35 +02:00
Armin Novak
281dd22061 Fixed unicode key down and up messages. 2019-04-05 09:14:35 +02:00
Armin Novak
295ac3daa4 Fixed dead store warnings 2019-04-05 09:14:35 +02:00
Armin Novak
a3e073442c Fixed unused store warnings. 2019-04-05 09:14:35 +02:00
Armin Novak
e72d9fd484 Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
52b03cd408 Addin function pointers now expect const strings 2019-04-05 09:13:24 +02:00
Armin Novak
f51a9bafcc Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
0bacb30608 Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
e4386e147a Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
936ab9bb8b Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
ba40c971d2 Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
696390f027 Fixed missing return value check. 2019-04-05 09:13:24 +02:00
Armin Novak
1da57d0b7e Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
9610faddaa Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
73a6e7052b Fixed free checks to eliminate bad free warnings. 2019-04-05 09:13:24 +02:00
Armin Novak
a1e15b671e Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak
b205ccbd5a Fixed NSC SSE argument checks. 2019-04-05 09:13:24 +02:00
David Fort
c5156443e7
Merge pull request #5281 from akallabeth/assistance_ssl_init_fix
Fixed #5276: Enable SSL before parsing assistance file.
2019-03-28 19:04:25 +01:00
kubistika
d3dd0860a5 update.c: Fix update_end_paint wrong log level 2019-03-20 22:01:08 +02:00
cerg2010cerg2010
7abc86ffae Close file handle correctly. (#5310) 2019-03-18 14:57:00 +01:00
Armin Novak
67be5258ad Exposing NLA functions to impersonate and revert context. 2019-03-08 10:10:43 +01:00
Martin Fleisz
da66485b3d
Merge pull request #5252 from akallabeth/big_endian_fix
Fixed endianess issue with GETPIXEL16 and GETPIXEL32
2019-03-01 10:06:56 +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
49936a7ba6 Fixed #5276: Enable SSL before parsing assistance file.
The assistance file requires primitives from the ssl wrapper.
Enable these before parsing the file.
Additionally split the FIPS mode enablement from the one time
initializer to avoid ignoring that flag.
2019-02-25 10:37:30 +01:00
Jiajun Wang
fd27451768 Fixed TS_INFO_PACKET (#5275)
Those fields exclude the length of the mandatory null terminator:
* cbDomain
* cbUserName
* cbPassword
* cbAlternateShell
* cbWorkingDir
2019-02-22 17:31:42 +01:00
Ilya Shipitsin
5d7186258a libfreerdp/codec/include/bitmap.c: resolve possible NULL pointer arithmetic
found by cppcheck

[libfreerdp/codec/include/bitmap.c:112] -> [libfreerdp/codec/include/bitmap.c:95]: (warning) Either the condition '!pbSrcBuffer' is redundant or there is pointer arithmetic with NULL pointer.
[libfreerdp/codec/include/bitmap.c:112] -> [libfreerdp/codec/include/bitmap.c:96]: (warning) Either the condition '!pbDestBuffer' is redundant or there is pointer arithmetic with NULL pointer.
2019-02-22 17:18:19 +05:00
Armin Novak
dfb4a411d4 Silenced unused-const-variables for test cases. 2019-02-21 14:02:13 +01:00
Armin Novak
4ad0770a7e Silenced function pointer cast warnings for BIO_callback_ctrl 2019-02-21 13:53:51 +01:00
Armin Novak
43e13bdfac Fixed all integer conversion warnings for OpenH264.
Added range checks and casts to integer where necessary
to remove warnings.
2019-02-21 11:43:59 +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
18b193a1cf Fixed endianess issue with GETPIXEL16 and GETPIXEL32 2019-02-13 09:30:34 +01:00
Armin Novak
1930bf69dd Replaced hardcoded xfreerdp program name 2019-02-12 10:53:37 +01:00
Martin Fleisz
3169b77d70
Merge pull request #5230 from akallabeth/sign_compare_fixes
Sign compare fixes
2019-02-08 09:35:50 +01:00
Martin Fleisz
5eff7b1da7
Merge pull request #5152 from akallabeth/gw_logging_ext
Gw logging ext
2019-02-08 09:14:33 +01:00
Martin Fleisz
6415cfec48
Merge pull request #5131 from akallabeth/cmd_line_error_logging
Added extended error logging for assistance, rdp file and command line parser
2019-02-08 09:11:35 +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
Armin Novak
d1b7b4630b Fixed sign-compare warning 2019-01-30 18:05:49 +01:00
Armin Novak
2a582ed197 Fixed NULL dereferences and uninitialized values 2019-01-30 16:11:10 +01:00
Armin Novak
9d680904cc Fixed compiler warnings #5210 2019-01-29 16:14:55 +01:00
Armin Novak
03ec36440d Fixed compiler warnings #5210 2019-01-29 16:14:29 +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
7b92b91d9a Fixed warnings found by compiler and static analysis. 2019-01-24 11:53:52 +01:00
Armin Novak
ac12adda93 Fixed warnings found by compiler and static analysis. 2019-01-24 11:53:52 +01:00
David Fort
b18ba33264
Merge pull request #5192 from akallabeth/dynamic_openh264
Using (optional) runtime linking for OpenH264.
2019-01-23 14:30:31 +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
c8587cea86 Fixed WINDOW_ORDER_INFO copy.
Patch by Andrey Vasilkin on mailing list
2019-01-18 13:04:34 +01:00
Armin Novak
f65b94ed84 Yield in connection wait loops to reduce processor use.
Patch by Andrey Vasilkin on mailing list.
2019-01-18 13:03:36 +01:00
Armin Novak
08cc3cdee4 Fixed use after free. 2019-01-16 15:00:13 +01:00
Armin Novak
89f3f7d837 Added extended error logging for assistance, rdp file and command line parser. 2019-01-16 14:32:19 +01:00
Armin Novak
8c41bd21ea Added version check for dynamic OpenH264 use. 2019-01-15 09:49:48 +01:00
Armin Novak
1c855068a2 Using runtime linking for OpenH264.
This allows removing the hard dependency on OpenH264 and use the
cisco provided binary.
2019-01-11 12:00:08 +01:00
Armin Novak
6a175d588f Fixed #5167: Memory leak in unit test. 2019-01-08 11:20:00 +01:00
Martin Fleisz
f8a200462e
Merge pull request #5178 from fodinabor/rds-connectionstring
Support standard Remote Assistance Connection String 2
2019-01-08 09:45:25 +01:00
Martin Fleisz
b0b0d5edec
Merge pull request #5183 from akallabeth/libressl_version_fix
Fix #5170: Disable custom TLS alert for libressl > 2.8.3
2019-01-08 08:06:28 +01:00
Martin Fleisz
aa442de059
Merge pull request #5174 from chipitsine/master
resolve several issues found by cppcheck
2019-01-07 15:21:46 +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