Michael Jumper
27e762d06f
GUACAMOLE-1283: Add synchronization around absolutely all outbound RDP messages.
...
The FreeRDP library is intended to be threadsafe, but is not reliably so
with respect to legacy RDP encryption and outbound messages. When
outbound messages are sent by multiple threads, the encryption key used
for legacy RDP encryption may not be updated correctly, resulting in a
fatal connection error like:
"ERRINFO_DECRYPT_FAILED (0x00001192):(a) Decryption using Standard RDP
Security mechanisms (section 5.3.6) failed. (b) Session key creation
using Standard RDP Security mechanisms (section 5.3.5) failed."
2021-04-08 15:43:15 -07:00
Michael Jumper
1b78f611d3
GUACAMOLE-1307: Use VerifyCertificateEx callback if supported.
2021-03-09 22:53:11 -08:00
James Muehlner
e2a136f41e
GUACAMOLE-1302: Merge support for forcing lossless compression in VNC and RDP connections.
2021-03-03 19:31:25 -08:00
Michael Jumper
18a0362dab
GUACAMOLE-1302: Add RDP support for forcing lossless compression.
2021-03-03 19:29:14 -08:00
Michael Jumper
c2b7e2d039
GUACAMOLE-1302: Add VNC support for forcing lossless compression.
2021-03-03 19:29:14 -08:00
Michael Jumper
27f8403178
GUACAMOLE-1302: Always use lossless compression for text-based protocols leveraging the terminal.
2021-03-03 19:29:14 -08:00
Michael Jumper
0729a6cc73
GUACAMOLE-1302: Add surface/display level support for forcing lossless compression.
2021-03-03 19:29:14 -08:00
Higor Cavalcanti
650e7ad90f
GUACAMOLE-1305: Fix pt-br keyboard layout. Key being recognized as right shift.
2021-03-03 16:49:59 -03:00
Michael Jumper
a920932703
GUACAMOLE-1174: Correct logic detecting truncation of appended parameter.
...
The previous implementation passed `length - str_len` to `snprintf()`,
yet compared the return value to `length`. This is incorrect, as
`length` is not the buffer size provided to `snprintf()`.
2021-02-21 15:05:53 -08:00
Michael Jumper
c7935736da
GUACAMOLE-1174: Add unit tests for URL utility functions.
2021-02-21 15:05:53 -08:00
Michael Jumper
7f55399304
GUACAMOLE-1174: Clarify behavior of URL parameter appending function.
2021-02-21 14:15:17 -08:00
Mike Jumper
5428ac5057
GUACAMOLE-1174: Merge support for Kubernetes "exec" API call.
2021-02-21 11:09:53 -08:00
Tomer Gabel
a8cf250c98
GUACAMOLE-1047: Changed returned status code per review
2021-02-14 16:21:54 +02:00
James Muehlner
ca1fbd5e98
GUACAMOLE-1204: Merge addition of server-side support for multi-touch events.
2021-02-11 20:53:22 -08:00
Michael Jumper
d16ba33dee
GUACAMOLE-1204: Add support for including touch events within session recordings.
2021-02-11 20:12:21 -08:00
Michael Jumper
5eb2867733
GUACAMOLE-1204: Add RDP support for multi-touch events via RDPEI channel.
2021-02-11 20:12:21 -08:00
Michael Jumper
048a59310b
GUACAMOLE-1204: Add support for declaring layer multi-touch capabilities.
2021-02-11 20:12:21 -08:00
Michael Jumper
c88c0d1c89
GUACAMOLE-1204: Add libguac support for processing the "touch" instruction.
2021-02-11 20:12:21 -08:00
Sander Vanheule
841dc28e9b
GUACAMOLE-1277: Unswap -/_ on fr-be-azerty keymap
...
When using the fr-be-azerty remote keyboard layout on an RDP connection,
the dash ('-') and underscore ('_') are swapped.
Underscore and dash are located on the same key on a Belgian azerty
layout. Dash should be the normal/unshifted character, and underscore
should be the shifted character. The current mapping has this the other
way around, so let's fix this.
Signed-off-by: Sander Vanheule <Sander.Vanheule@UGent.be>
2021-02-02 19:53:51 +01:00
Mike Jumper
6d526cb60f
GUACAMOLE-1133: Merge addition of GCrypt initialization to VNC startup process.
2021-01-22 21:33:10 -08:00
Nick Couchman
46bed49a43
GUACAMOLE-1133: initialize GCrypt in VNC protocol prior to client start-up.
2021-01-21 21:14:18 -05:00
Virtually Nick
c769d18cf6
GUACAMOLE-1263: Merge mark freed memory as freed prior to calling rfbClientCleanup().
2021-01-15 14:51:36 -05:00
Michael Jumper
612c5eba20
GUACAMOLE-1263: Mark freed memory as freed prior to calling rfbClientCleanup().
...
Older versions of libvncclient did not free all memory within
rfbClientCleanup(), but this has been corrected as of their 0.9.12
release. As guacamole-server may well be built against older versions of
libvncclient, we can't simply remove the manual free() calls, but we
should be sure to set any memory that we free ourselves to NULL so that
rfbClientCleanup() does not attempt to free it again.
2021-01-15 11:46:16 -08:00
Virtually Nick
fe62300223
GUACAMOLE-1259: Merge include missing config.h header for sake of conditional Stream_Free().
2021-01-10 13:09:39 -05:00
Michael Jumper
0b6b14b71e
GUACAMOLE-1259: Include missing config.h header for sake of conditional Stream_Free().
...
The changes introduced by GUACAMOLE-1181 (commit 2c86e20
) were made
conditional as older versions of FreeRDP will automatically free the
wStream, resulting in a double-free if we attempt to do so ourselves.
The macro controlling that conditional code is defined within config.h,
which is missing here. Without that macro, the call to Stream_Free()
always occurs, and we get a double-free with older FreeRDP.
2021-01-09 21:15:50 -08:00
Virtually Nick
1c3e86dc2c
GUACAMOLE-1191: Merge always disable the glyph cache due to stability issues.
2021-01-09 22:46:12 -05:00
Michael Jumper
9dc793b0e5
GUACAMOLE-1191: Always disable the glyph cache, as FreeRDP no longer considers the feature to be stable.
2021-01-09 17:49:32 -08:00
Michael Jumper
430182dce2
GUACAMOLE-1254: Add unit tests for unique ID generation.
2021-01-06 22:51:07 -08:00
Michael Jumper
f710e00d26
GUACAMOLE-1254: Use libuuid rather than OSSP UUID if available.
...
The libuuid library is widely available (part of util-linux) and much
more frequently updated. The OSSP UUID library works great, but was last
updated in 2008 and causes some confusion for users that have libuuid.
2021-01-06 20:58:22 -08:00
Nick Couchman
a37668e9f5
GUACAMOLE-1245: Add support for specifying Wake-on-LAN port.
2020-12-30 16:50:38 -05:00
Nick Couchman
d20b385834
Merge 1.3.0 changes back to master.
2020-12-22 19:05:16 -05:00
Michael Jumper
3196f9f0d0
GUACAMOLE-1242: Move "connection closed" log message to debug level.
...
It is expected under normal circumstances that the connection may be
abruptly closed, including during the handshake. For example, this will
commonly occur when a TCP load balancer is performing a simple service
health check.
An message noting that the connection has been closed during the
Guacamole protocol handshake is really only of benefit when debugging,
where that information may provide useful context. If not debugging, the
message amounts to log noise.
2020-12-22 13:00:48 -08:00
Virtually Nick
2fc3a43e87
GUACAMOLE-1225: Merge fix simple typo, verfying -> verifying, in code documentation
2020-12-21 08:00:29 -05:00
Tim Gates
ced24fde7d
GUACAMOLE-1225: fix simple typo, verfying -> verifying
...
There is a small typo in src/libguac/tests/parser/read.c, src/libguac/tests/socket/fd_send_instruction.c, src/libguac/tests/socket/nested_send_instruction.c.
Should read `verifying` rather than `verfying`.
Fixes https://issues.apache.org/jira/browse/GUACAMOLE-1225
2020-12-21 17:04:52 +11:00
Michael Jumper
d40db7cd3c
GUACAMOLE-1227: Build support for generic VNC credentials only if supported by libvncclient.
2020-12-02 22:55:16 -08:00
Yaroslav Nikonorov
004f57e19a
GUACAMOLE-1174: Add prototype and docstrings for guac_kubernetes_append_endpoint_param function.
2020-11-18 15:30:34 +02:00
Yaroslav Nikonorov
7809447c3f
GUACAMOLE-1174: Add parameters to the endpoint path using function guac_kubernetes_append_endpoint_param.
2020-11-18 14:57:59 +02:00
Yaroslav Nikonorov
7a1ba51bae
GUACAMOLE-1174: Determine parameter delimiter, compute the buffer string length, fix the buffer string length usage, verify buffer null terminated.
2020-11-18 14:52:24 +02:00
Michael Jumper
9df3e294c3
Merge 1.3.0 changes back to master.
2020-11-03 14:29:52 -08:00
Mike Jumper
7fcddef117
GUACAMOLE-1205: Merge version number bump to 1.3.0.
2020-11-03 14:29:21 -08:00
Nick Couchman
c867d392d0
GUACAMOLE-1205: Update Guacamole Server version numbers for 1.3.0 release
2020-11-03 14:54:55 -05:00
Nick Couchman
8faeea18f8
Merge 1.3.0 changes back to master.
2020-11-03 14:02:38 -05:00
Michael Jumper
1e3fc25268
GUACAMOLE-221: Handle FREERDP_ERROR_* constants only when defined.
...
Only FreeRDP 2.0.0-rc3 and later support all the constants used within
src/protocols/rdp/error.c.
2020-11-03 10:14:51 -08:00
Nick Couchman
299b7b4370
Merge 1.3.0 changes back to master.
2020-11-02 22:17:33 -05:00
Virtually Nick
1e856d4e2d
GUACAMOLE-221: Merge rely on FreeRDP error code if no RDP disconnect reason is available.
2020-11-02 22:16:43 -05:00
Nick Couchman
5124e78e05
Merge 1.3.0 changes back to master.
2020-11-02 20:35:00 -05:00
Virtually Nick
4d3280e817
GUACAMOLE-221: Merge terminate keep-alive thread immediately upon guac_socket_free().
2020-11-02 20:09:18 -05:00
Michael Jumper
8041585379
GUACAMOLE-221: Increase verbosity of logged FreeRDP-related errors.
2020-11-02 15:40:29 -08:00
Michael Jumper
2a4ecda216
GUACAMOLE-221: Terminate keep-alive thread immediately upon guac_socket_free().
...
The keep-alive interval is identical to the timed client free used by
guacd. This results in a race condition where there is a random chance
that guacd will assume that the client has failed to terminate in a
timely manner simply because guac_socket_free() is waiting for the
keep-alive thread to finish.
2020-11-02 14:57:43 -08:00
Nick Couchman
e3df475bda
Merge 1.3.0 changes back to master.
2020-11-02 16:16:22 -05:00
Michael Jumper
1e550b58d9
GUACAMOLE-221: Ensure guacd always enables broadcast socket keep-alive.
2020-11-02 12:51:58 -08:00
Michael Jumper
1e8d9d92a5
GUACAMOLE-221: Rely on FreeRDP error code if no RDP disconnect reason is available.
2020-11-02 12:38:06 -08:00
Nick Couchman
7563402631
Merge 1.3.0 changes back to master.
2020-10-30 10:13:25 -04:00
Virtually Nick
0be71a8c67
GUACAMOLE-1182: Merge ensure converted clipboard data is freed after being sent.
2020-10-30 10:12:25 -04:00
Nick Couchman
4e6ad1939f
Merge 1.3.0 changes back to master.
2020-10-30 08:34:16 -04:00
Michael Jumper
256487c95a
GUACAMOLE-1181: Only free wStream after send if FreeRDP requires this.
2020-10-29 18:29:47 -07:00
Michael Jumper
2c86e20ab9
GUACAMOLE-1181: Free wStream after send is complete/cancelled.
2020-10-28 20:23:37 -07:00
Michael Jumper
683ef1722e
GUACAMOLE-1182: Ensure converted clipboard data is freed after being sent.
2020-10-28 16:36:50 -07:00
Yaroslav Nikonorov
79239e3be0
GUACAMOLE-1174: Create function for appending endpoint params, fix endpoint params overwriting.
2020-10-20 12:44:38 +03:00
Yaroslav Nikonorov
6b58e2e5a9
GUACAMOLE-1174: Free exec_command setting.
2020-10-20 12:44:38 +03:00
Yaroslav Nikonorov
164f792b86
GUACAMOLE-1174: Remove option use-exec, add snprintf result validation, fix code formatting.
2020-10-08 13:18:58 +03:00
Mike Jumper
2aa0218cc7
GUACAMOLE-1190: Merge guacd support for listening on IPv6 addresses.
2020-10-08 00:32:32 -07:00
Jonas Zeiger
8d683b560c
GUACAMOLE-1190: Specify correct address family when creating socket
2020-10-07 10:02:28 +02:00
Jimmy
d6a817f58c
GUACAMOLE-1185: Fixed one typo mistake.
2020-09-28 10:35:05 +03:00
Mike Jumper
558eb149f4
GUACAMOLE-1031: Merge correction to handling of RDP SFTP upload directory.
2020-09-27 16:34:56 -07:00
Nick Couchman
3e19583b29
GUACAMOLE-221: Switch VNC credentials to NULL when parameter is not passed
2020-09-20 14:41:29 -04:00
Nick Couchman
9e1dada14b
GUACAMOLE-221: Add CUnit tests for guac_strdup()
2020-09-20 14:41:29 -04:00
Nick Couchman
3b4007c9fa
GUACAMOLE-221: Tweak logic for when RDP domain is requested.
2020-09-20 14:41:29 -04:00
Nick Couchman
bfb54f72a0
GUACAMOLE-221: Clean up libguac, protocol changes, and documentation.
2020-09-20 14:41:29 -04:00
Nick Couchman
6605f217c5
GUACAMOLE-221: Rollback changes to SSH protocol prompting
2020-09-17 21:12:33 -04:00
Nick Couchman
b6d3edb749
GUACAMOLE-221: Move VNC and RDP argv to new callback.
2020-09-17 21:12:33 -04:00
Nick Couchman
f70fdfc612
GUACAMOLE-221: Add back in SSH credential argv support; fix style and comments.
2020-09-15 14:48:15 -04:00
Nick Couchman
ec3cdfd17b
GUACAMOLE-221: We need to flush the socket after sending required.
2020-09-15 14:48:15 -04:00
Nick Couchman
26b9850d87
GUACAMOLE-221: Remove bad rebase code.
2020-09-15 14:48:15 -04:00
Nick Couchman
98dbf15d0b
GUACAMOLE-221: Fix up SSH terminal prompt fallback.
2020-09-15 14:48:15 -04:00
Nick Couchman
e8feeabfef
GUACAMOLE-221: Implement CUnit tests for protocol version comparison and conversion.
2020-09-15 14:48:15 -04:00
Nick Couchman
0db61198e9
GUACAMOLE-221: Fix up lots of comments, streamline code, and fix SSH mutex lock.
2020-09-15 14:48:15 -04:00
Nick Couchman
bc8ed4e104
GUACAMOLE-221: Implement guacd support for verifying that client can accept the required instruction.
2020-09-15 14:48:15 -04:00
Nick Couchman
b00b629b96
GUACAMOLE-221: Clean up VNC mutex; update comments.
2020-09-15 14:48:15 -04:00
Nick Couchman
0761908a77
GUACAMOLE-221: Sockets start keep alive by default.
2020-09-15 14:48:15 -04:00
Nick Couchman
c579e7337f
GUACAMOLE-221: Implement function for sending required to client owner.
2020-09-15 14:48:15 -04:00
Nick Couchman
5ec2551761
GUACAMOLE-221: Use constants for parameters updated via argv or required instructions.
2020-09-15 14:48:15 -04:00
Nick Couchman
5881209f12
GUACAMOLE-221: Move keep-alives to protocol implementation and only send required instruction to owner.
2020-09-15 14:48:15 -04:00
Nick Couchman
5c309f5cb1
GUACAMOLE-221: Move away from reserved function names.
2020-09-15 14:48:15 -04:00
Nick Couchman
7759f9b1c0
GUACAMOLE-221: Add socket keepalive when sending required fields.
2020-09-15 14:48:15 -04:00
Nick Couchman
51b9c9c103
GUACAMOLE-221: Remove manual addition of null terminator
2020-09-15 14:48:15 -04:00
Nick Couchman
4318083511
GUACAMOLE-221: Fix up style, comments, and variable names.
2020-09-15 14:48:15 -04:00
Nick Couchman
939d954810
GUACAMOLE-221: Extract array writing in protocol into common function and document.
2020-09-15 14:48:15 -04:00
Nick Couchman
76ef6332cc
GUACAMOLE-221: Make lock, condition, and flags specific to credentials.
2020-09-15 14:48:15 -04:00
Nick Couchman
7369bed22c
GUACAMOLE-221: Add support for sending multiple params in required.
2020-09-15 14:48:15 -04:00
Nick Couchman
21a5d9ee62
GUACAMOLE-221: Add protocol functions for sending prompt to client.
2020-09-15 14:48:15 -04:00
Yaroslav Nikonorov
7683a17d69
GUACAMOLE-1174: Added exec call implementation for kubernetes protocol
2020-09-10 19:59:03 +03:00
Michael Jumper
df33cd0874
GUACAMOLE-1158: Handle received clipboard data only if copy has not been disabled.
2020-08-24 12:23:01 -07:00
Virtually Nick
a2fb09021b
GUACAMOLE-221: Merge add convenience API for automatically handling received "argv" streams.
2020-07-08 08:30:47 -04:00
Michael Jumper
0cdc51acd1
GUACAMOLE-221: Correct faulty double-increment of args (should advance ONE at a time).
2020-07-06 18:19:08 -07:00
Michael Jumper
aa3a9cde6c
GUACAMOLE-221: Migrate Kubernetes handling of "argv" to guac_argv_*() convenience API.
2020-07-06 18:19:08 -07:00
Michael Jumper
08a57d3375
GUACAMOLE-221: Migrate telnet handling of "argv" to guac_argv_*() convenience API.
2020-07-06 18:19:08 -07:00
Michael Jumper
2f6de25418
GUACAMOLE-221: Migrate SSH handling of "argv" to guac_argv_*() convenience API.
2020-07-06 18:19:08 -07:00
Michael Jumper
f8f2c7f747
GUACAMOLE-221: Allow callers to request that argument values be automatically echoed to all connected users.
2020-07-06 18:19:08 -07:00
Michael Jumper
a8151c40c4
GUACAMOLE-221: Implement libguac convenience API for awaiting and processing argument streams.
2020-07-06 18:19:08 -07:00