Armin Novak
0f729d2b2c
Fixed conversion and return checks.
...
* Fix some missing argument checks for function pointer implementations
* Fix broken return value check for client->SendChannelData
* Updated const correctness for function pointer implementations
2020-03-04 14:44:03 +01:00
Armin Novak
9398e8e647
Fixed freerdp_channel_process length checks
...
Fragmented data was not handled properly.
2020-03-04 14:44:03 +01:00
Armin Novak
4ad158fac6
Added freerdp_channels_data argument checks.
2020-03-04 14:44:03 +01:00
Armin Novak
bda2731035
Fixed reading suppress output pdu
...
Optional rectangle must be read from PDU
2020-03-03 13:10:24 +01:00
Armin Novak
1b91c77350
Fixed shadow server with mstsc as client.
2020-03-03 12:27:19 +01:00
Armin Novak
0d1c440cf5
Consume stream data in autoconnect
...
TPKT checks failed due to payload data not consumed in autodetect.
2020-03-02 13:54:44 +01:00
Armin Novak
be714d2a13
Fixed tpkt header length checks.
...
TPKT header length and consumption of data was not consistently
checked. This adds checks after each packet processed and fixes
any inconsistencies found.
2020-03-02 11:40:35 +01:00
Armin Novak
039bb88fef
Fixed warnings in capabilities.c
2020-03-02 11:40:35 +01:00
Armin Novak
171e73d797
Fixed compiler warnings in info.c
2020-03-02 11:40:35 +01:00
Armin Novak
318cb3dd47
Added tpkt header length plausibility checks.
2020-03-02 11:40:35 +01:00
Armin Novak
ce387ba04f
Check length of TPKT header for plausibility.
2020-03-02 11:40:35 +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
Norbert Federa
a48e7f8b47
core: fix endless loops waiting for activation
...
There are two loops polling the transport pdu receiver in non-blocking mode
when waiting for reaching CONNECTION_STATE_ACTIVE rdp state.
In case of an invalid pdu size in the tpkt header this leaded to an endless
loop, utilizing 100% of a cpu core.
Added a sleep and limited the max loop time to the tcp ack timout value.
2020-02-20 17:51:20 +01:00
Armin Novak
ac4bb3c103
End connection before user callbacks if aborted.
...
If somewhere in freerdp_connect freerdp_abort_connect was called
the user callbacks Authenticate, GatewayAuthenticate and
Verify[Changed|X509]Certificate[Ex] must not be called.
2020-02-19 16:44:42 +01:00
Kobi Mizrachi
7a2eafbc3c
core: server: fix a bad free in channel->queue cleanup
2020-02-10 14:29:30 +01:00
Armin Novak
89913624be
FreeRDP_WTSVirtualChannelOpen unify channel new/free
2020-01-29 08:24:03 +01:00
Kobi Mizrachi
b393d59bcb
server: make sure all messages in channel->queue are freed when queue is freed
2020-01-29 08:24:03 +01:00
Kobi Mizrachi
8c8e5e4239
server: proxy: show indicative log on bind failure.
2020-01-27 07:57:45 +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
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
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
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
4766f5204b
Enabled YCoCg for planar.
2020-01-14 14:23:43 +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
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
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
c5e261e066
Added new command line swith for automatich assistance control.
2019-11-25 10:32:55 +01:00
David Fort
6123920a2e
opencl: inline the openCL program in the source code
2019-11-22 13:21:39 +01:00
David Fort
7b743b3199
rails: shorten logs
2019-11-22 13:21: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
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
72ca88f49c
Reformatted to new style
2019-11-07 10:53:54 +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
Armin Novak
f01e042211
Code cleanups (strlen, casts, size_t, ...)
2019-10-29 11:58:43 +01:00
Armin Novak
47bea1bc80
wts_read_drdynvc_close_response quit message queue.
2019-10-25 13:25:12 +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
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
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
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
Armin Novak
f93d625cde
Use GetTickCount64 instead of GetTickCountPrecise.
2019-09-02 15:46:36 +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
kubistika
749c88ab0d
libfreerdp: core: copy redirection info in freerdp_settings_copy
2019-08-14 19:39:34 +02:00
Armin Novak
b036fd7a7d
Return a proper error if redirection fails.
2019-08-12 12:33:06 +02:00
kubistika
13fb3ffc39
libfreerdp: core: fix const correctness of freerdp_settings_clone
2019-07-17 16:20:42 +02:00