Commit Graph

2144 Commits

Author SHA1 Message Date
Michael Jumper
36f227586e GUACAMOLE-249: Defer draws to unrealized (server-side) buffers until they are actually needed client-side.
Though deferred creation of buffers is already intended, creation was
not actually being deferred in practice as the act of initializing the
buffer with a solid rect of color was causing the buffer to be realized,
even if that initialization process is the only drawing operation that
will ever occur to that buffer.
2020-01-03 16:35:37 -08:00
Michael Jumper
2d4412316f GUACAMOLE-249: Do not draw background for glyphs when "redundant" (transparent). 2020-01-01 20:33:46 -08:00
Michael Jumper
d7151e0d84 GUACAMOLE-249: Push FreeRDP settings in preconnect hander (OrderSupport is reset otherwise).
We set the values within the OrderSupport array to match which RDP
messages we have implemented within guac_rdp_push_settings(). This array
is reset to its default values prior to the preconnect handler being
invoked, thus guac_rdp_push_settings() MUST be invoked within the
preconnect handler for its settings to have the intended effect.

Without proper values within OrderSupport, the initial RDP negotiation
process will claim support for messages that we don't actually support,
resulting in graphical artifacts and unexpected behavior.
2019-12-31 16:23:39 -08:00
Michael Jumper
7ef1dcafba GUACAMOLE-249: Convert absolutely all rdpBitmaps before attempting to draw. 2019-12-31 16:17:36 -08:00
Michael Jumper
f33416949f GUACAMOLE-249: RAIL plugin for FreeRDP 2.0.0 requires that the Client Execute PDU be sent manually. 2019-12-30 17:43:39 -08:00
Michael Jumper
8dda26af54 GUACAMOLE-249: Free rdpBitmap and rdpGlyph within custom free handlers (not automatically freed like rdpPointer). 2019-12-30 16:11:13 -08:00
Michael Jumper
0926864ecb GUACAMOLE-249: Redirect FreeRDP log messages to debug level of guac_client_log(). 2019-12-29 18:44:41 -08:00
Michael Jumper
9ad3bc9a49 GUACAMOLE-249: Log RDPDR debug messages at GUAC_LOG_DEBUG level. 2019-12-29 18:12:01 -08:00
Michael Jumper
6940875e6e GUACAMOLE-249: Refactor away old stream.h and guac_rdp_stream. 2019-12-29 18:04:51 -08:00
Michael Jumper
d2083a1aed GUACAMOLE-249: Refactor RDPDR to be more documentable. Document RDPDR fully. 2019-12-29 18:04:51 -08:00
Michael Jumper
36545cc92c GUACAMOLE-249: Document absolutely all parameters and return types for RDP support. 2019-12-29 18:04:51 -08:00
Michael Jumper
a54c61e860 GUACAMOLE-249: Support for OpaqueRect MUST NOT be claimed without supporting PatBlt. OpaqueRect implies PatBlt and vice versa. 2019-12-28 19:36:43 -08:00
Michael Jumper
fbb759ab82 GUACAMOLE-249: Correct mismatched ifndef/define header include check. 2019-12-28 19:36:43 -08:00
Michael Jumper
ab05502494 GUACAMOLE-249: Correct missing/incorrect documentation for RDP callback parameters. 2019-12-28 19:36:43 -08:00
Michael Jumper
12febd5162 GUACAMOLE-249: Remove unused SEC_TO_UNIX_EPOCH constant. 2019-12-27 21:12:39 -08:00
Michael Jumper
6c239a7b98 GUACAMOLE-249: Use filesystem constants defined by FreeRDP and WinPR headers rather than defining our own. 2019-12-27 21:12:18 -08:00
Michael Jumper
598b86a4cf GUACAMOLE-249: Correct @file annotations within Doxygen comments of renamed headers. 2019-12-27 20:55:06 -08:00
Michael Jumper
69831995cb GUACAMOLE-249: Remove prototype for guac_rdp_bitmap_decompress(), which is no longer defined nor used. 2019-12-27 15:24:25 -08:00
Michael Jumper
47a1dcc82e GUACAMOLE-249: Message flags of clipboard data response must be set to CB_RESPONSE_OK for data to be accepted. 2019-12-25 02:04:13 -08:00
Michael Jumper
0c7091198f GUACAMOLE-249: Use correct start location of clipboard buffer (accidentally used pointer to end). 2019-12-25 02:03:23 -08:00
Michael Jumper
bced87cff9 GUACAMOLE-249: FreeRDP 2.0.0 requires the Clipboard Capabilities PDU to be manually sent. 2019-12-25 01:34:57 -08:00
Michael Jumper
024fc2a1f7 GUACAMOLE-249: Callbacks for "drdynvc" plugin should return CHANNEL_RC_OK, including entry point. 2019-12-23 19:26:49 -08:00
Michael Jumper
4752863b5b GUACAMOLE-249: Remove now-unnecessary status.h FreeRDP compatibility header. 2019-12-23 13:35:32 -08:00
Michael Jumper
d7bbee35b0 GUACAMOLE-249: Reorganize includes to match code standard. 2019-12-23 13:32:36 -08:00
Michael Jumper
a63dcb46b2 GUACAMOLE-249: Rename and restructure RDP source files more sensibly. 2019-12-23 13:29:37 -08:00
Michael Jumper
827951dcf6 GUACAMOLE-249: Remove RDP constant definitions which are defined within FreeRDP headers. 2019-12-22 21:24:07 -08:00
Michael Jumper
875d51c1ed GUACAMOLE-249: Dynamically wrap channel entry points (FreeRDP will refuse to associate the same entry point with multiple channels). 2019-12-22 20:34:30 -08:00
Michael Jumper
664586ea54 GUACAMOLE-249: VirtualChannelEntryEx entry point is supposed to accept a PCHANNEL_ENTRY_POINTS_EX. 2019-12-22 17:33:35 -08:00
Michael Jumper
4612e79b8d GUACAMOLE-249: Remove "guacsnd" plugin in favor of leveraging common SVC implementation. 2019-12-22 14:29:01 -08:00
Michael Jumper
3255b182ab GUACAMOLE-249: Remove "guacsvc" plugin in favor of leveraging common SVC implementation. 2019-12-22 14:07:01 -08:00
Michael Jumper
352b9c517c GUACAMOLE-249: Add common SVC plugin implementation as future simplified basis for RDPSND, RDPDR, etc. 2019-12-22 13:36:35 -08:00
Michael Jumper
7b93b3d2e9 GUACAMOLE-249: Gradually reassemble received chunks of RDPSND data. 2019-12-21 22:51:43 -08:00
Michael Jumper
a7352b1429 GUACAMOLE-249: Remove lock around usage of FreeRDP (new library appears threadsafe). 2019-12-21 20:02:17 -08:00
Michael Jumper
ee4d91ea98 GUACAMOLE-249: Migrate RDPDR support to FreeRDP 2.0.0 plugin API. 2019-12-21 19:53:44 -08:00
Michael Jumper
68710a6702 GUACAMOLE-249: Migrate loading of RDPDR support (guacdr plugin) to abstract function. 2019-12-21 19:53:44 -08:00
Michael Jumper
6f2b124472 GUACAMOLE-249: Migrate RDPSND support to FreeRDP 2.0.0 plugin API. 2019-12-21 19:41:00 -08:00
Michael Jumper
0497a33ece GUACAMOLE-249: Migrate loading of RDPSND support ("guacsnd" plugin) to abstract function. 2019-12-21 19:41:00 -08:00
Michael Jumper
f3cef7e2f0 GUACAMOLE-249: Add example for testing arbitrary SVC support. 2019-12-21 13:42:30 -08:00
Michael Jumper
233c0555c3 GUACAMOLE-249: Migrate SVC support to FreeRDP 2.0.0 plugin API. 2019-12-21 13:42:30 -08:00
Jukka-Pekka Virtanen
1822e59ac3 GUACAMOLE-901: Belgian French keymap
Add Belgian French keymap file and add it to build process. Keymap is
based on https://commons.wikimedia.org/wiki/File:Belgian_pc_keyboard.svg
2019-11-19 11:53:02 +02:00
Michael Jumper
fa0ad267b8 GUACAMOLE-249: Update Docker build to use FreeRDP 2.0.0. 2019-11-04 19:26:04 -08:00
Maxime Coste
199c2a0961 GUACAMOLE-871: Add support for hidden cursor (DECTECM) 2019-10-15 20:24:51 +11:00
Michael Jumper
77a32398e5 GUACAMOLE-249: Migrate to plugin naming style used by FreeRDP 2.0.0. 2019-10-14 14:13:19 -07:00
Michael Jumper
6dc8b57ca4 GUACAMOLE-249: Update RAIL (RemoteApp) support to FreeRDP 2.0.0 API. 2019-10-14 11:15:43 -07:00
Michael Jumper
07f6e6afc2 GUACAMOLE-249: Remove guac_rdp_dvc_list, relying instead on the DVC channel collection within rdpSettings. 2019-10-13 15:30:21 -07:00
Michael Jumper
eab07b4a61 GUACAMOLE-249: Add trace-level logging of received and sent CLIPRDR PDUs. 2019-10-13 14:28:06 -07:00
Michael Jumper
de493ba959 GUACAMOLE-249: Send Format List Response PDU after successfully processing a Format List PDU. 2019-10-13 14:28:06 -07:00
Michael Jumper
9dd1555c81 GUACAMOLE-249: Do not include CB_RESPONSE_OK flag in Format List PDU.
The CLIPRDR specification requires that the msgFlags field for the
Format List PDU be set to 0x0000. The function within FreeRDP overrides
this value to 0x0000, but it is still incorrect to attempt to set it.
2019-10-13 14:28:06 -07:00
Michael Jumper
8c7984d201 GUACAMOLE-249: Free GDI implementation. Do not allocate cache (unnecessary). 2019-10-13 14:28:06 -07:00
Michael Jumper
b64b8f375a GUACAMOLE-249: Restore support for CLIPRDR channel. 2019-10-13 14:28:06 -07:00
Michael Jumper
831606a4e9 GUACAMOLE-249: Use pkg-config to determine location of FreeRDP headers. 2019-10-11 17:56:21 -07:00
Michael Jumper
cc7cd78e5b GUACAMOLE-249: Centralize handling of connected channels. 2019-10-08 11:44:26 -07:00
Michael Jumper
16be3af03c GUACAMOLE-249: Load FreeRDP plugins regardless of entry point interface.
Most plugins built into FreeRDP implement the PVIRTUALCHANNELENTRYEX
entry point, but the FreeRDP standard function for loading plugins only
supports PVIRTUALCHANNELENTRY. It appears that only the commandline
argument parser included with FreeRDP was updated to leverage the new
entry points.
2019-10-06 14:44:26 -07:00
Michael Jumper
b89ed7ff15 GUACAMOLE-249: Migrate wait mechanism to event handle interface. 2019-10-06 14:32:12 -07:00
Michael Jumper
17045d5d3a GUACAMOLE-249: Use reversed byte order for colors locally (verification needed). 2019-09-29 16:08:27 -07:00
Michael Jumper
7904d9c002 GUACAMOLE-249: Initialize FreeRDP's GDI implementation (default GDI handlers will otherwise fail). 2019-09-29 15:44:34 -07:00
Michael Jumper
7a7ffc2c19 GUACAMOLE-249: Add missing pixel format parameter to pointer image copy. 2019-09-29 15:44:34 -07:00
Michael Jumper
65fe6c9735 GUACAMOLE-249: Correct incorrect syntax introduced by initial partial migration (commit a5b62aa82). 2019-09-29 15:44:34 -07:00
Michael Jumper
c311d8bde9 GUACAMOLE-249: Rely on default bitmap/GDI/pointer handlers for all but those that must be overridden. 2019-09-29 15:44:34 -07:00
Michael Jumper
1e692094be GUACAMOLE-249: Correct remaining void returns from BOOL handlers. 2019-09-29 15:44:34 -07:00
Michael Jumper
7332e633dc GUACAMOLE-249: Add "nla-ext" option for extended NLA mode. 2019-09-29 15:44:34 -07:00
Michael Jumper
2ed0d042a3 GUACAMOLE-249: Default to negotiated security mode, not old "RDP" encryption. 2019-09-29 14:34:05 -07:00
Michael Jumper
a76e307176 GUACAMOLE-249: RDP "DisableEncryption" settings flag has been inverted and renamed to "UseRdpSecurityLayer". 2019-09-29 14:25:47 -07:00
Michael Jumper
6886665f65 GUACAMOLE-249: Comment out usage of old event interface. 2019-09-29 14:15:41 -07:00
Michael Jumper
703ce5c223 GUACAMOLE-249: Remove usage of old FreeRDP channels interface. 2019-09-29 14:15:13 -07:00
Michael Jumper
ad7ab67571 GUACAMOLE-249: The freerdp/gdi/gdi.h header is required to access contents of rdpGdi struct. 2019-09-22 14:58:23 -07:00
Michael Jumper
9fa9adbd58 GUACAMOLE-249: Migrate to libwinpr "CF_*" constants for clipboard formats.
The "CB_FORMAT_*" constants which used to be defined by FreeRDP no
longer exist.
2019-09-22 14:58:23 -07:00
Michael Jumper
3b560044bc GUACAMOLE-249: Correct prototype of certificate verification callback. If accepting the certificate, request that FreeRDP not store it. 2019-09-22 14:49:30 -07:00
Michael Jumper
82664b4e6b GUACAMOLE-249: Correct prototypes of GDI handlers. 2019-09-22 14:49:30 -07:00
Michael Jumper
fbfbaff540 GUACAMOLE-249: Correct prototypes of pointer handlers. 2019-09-22 14:49:30 -07:00
Michael Jumper
e4a68d776f GUACAMOLE-249: Correct prototypes of glyph handlers. 2019-09-22 14:49:30 -07:00
Michael Jumper
9b08a716d6 GUACAMOLE-249: Comment out remaining usage of SVC. 2019-09-22 14:49:03 -07:00
Michael Jumper
554251cc72 GUACAMOLE-249: Remove usage of CLRCONV. 2019-09-22 14:49:00 -07:00
Michael Jumper
17d31d94b7 GUACAMOLE-249: Remove all legacy FreeRDP compatibility. 2019-09-22 14:48:56 -07:00
Michael Jumper
a5b62aa82e GUACAMOLE-249: Migrate to newer API (partial). 2019-09-22 14:48:26 -07:00
Mike Jumper
b181026e58
GUACAMOLE-861: Merge correction to RDPDR filesystem timestamp conversion. 2019-08-22 10:25:55 -07:00
unknown
4cc9c2d3e1 GUACAMOLE-861: Fixes WINDOWS_TIME calculation
This fixes the UNIX time to FILETIME conversion in WINDOWS_TIME macro,
according to MSDN (addition instead of subtraction).
2019-08-21 23:05:45 +03:00
Virtually Nick
f34be230aa
GUACAMOLE-859: Merge correct Caps Lock keysym sent via RDP 2019-08-13 21:11:46 -04:00
Weston Thayer
a189c9ab8a GUACAMOLE-859: Remove +ext from Caps Lock keymapping.
When connected with a Guacamole RDP session, the keysym for Caps Lock (0xffe5) is sent over RDP as scancode 0xe03a. Windows does not understand this scancode, thus does not generate the correct VK (Virtual Key) events. Removing +ext from the keymap sends the scancode 0x003a, which is correctly recognized by Windows as Caps Lock. This enables Windows applications to listen for key down and key up events on the Caps Lock key while connected via a Guacamole RDP session.

Note: this issue likely went un-noticed for a long time because it only impacts the key up and down events for the Caps Lock key, not Caps Lock's effect on sending uppercase [A-Z] characters.
2019-08-13 21:00:26 -04:00
Nick Couchman
7ac840090e GUACAMOLE-514: Slight correction to debug message. 2019-08-12 19:45:45 -04:00
Nick Couchman
61d12f1668 GUACAMOLE-514: VNC client should abort on credential error. 2019-08-09 13:08:36 -04:00
Nick Couchman
f21621e677 GUACAMOLE-514: Remove x509 support. 2019-08-09 13:05:40 -04:00
Nick Couchman
88425160ae GUACAMOLE-514: Write x509 authentication factors to temp files. 2019-08-09 13:05:40 -04:00
Nick Couchman
b9001f4ec7 GUACAMOLE-514: Add missing parameter tag. 2019-08-09 13:05:40 -04:00
Nick Couchman
4329739d3e GUACAMOLE-514: Remove CRL check flag. 2019-08-09 13:05:40 -04:00
Nick Couchman
90d55956d0 GUACAMOLE-514: use correct client in log call. 2019-08-09 13:05:40 -04:00
Nick Couchman
51ae8a41a1 GUACAMOLE-514: Add guacd support for extended VNC credentials. 2019-08-09 13:05:40 -04:00
Nick Couchman
f962eab27a Merge 1.1.0 changes back to master. 2019-08-09 13:01:54 -04:00
Michael Jumper
43269920db GUACAMOLE-630: Clarify usage of argv-related guac_user_callback implementations. 2019-08-07 20:16:01 -07:00
Michael Jumper
f56df8b8be GUACAMOLE-630: Automatically send current color scheme and font to users joining SSH, telnet, and Kubernetes connections. 2019-08-04 12:52:00 -07:00
Michael Jumper
ccfcfb116d GUACAMOLE-630: Persist details of color scheme and font changes. 2019-08-04 12:44:43 -07:00
Michael Jumper
4dabea37af GUACAMOLE-630: Allow guac_terminal_parse_color_scheme() to dictate color scheme format. 2019-08-04 11:55:45 -07:00
Michael Jumper
0516d599cf GUACAMOLE-630: Disallow NULL color schemes.
A color scheme string should always be provided, even if blank.
Disallowing NULL allows assumptions to be made which simplifies the
logic surrounding persisting provided configuration values.
2019-08-04 11:45:41 -07:00
Michael Jumper
b5191caddc GUACAMOLE-630: Accept pre-defined color schemes in all cases, not just during terminal creation. 2019-08-04 11:37:42 -07:00
Michael Jumper
0c7898c55a GUACAMOLE-630: Expose terminal font/color configuration changes to connected clients. 2019-08-03 19:53:07 -07:00
Nick Couchman
289ceac222 Merge 1.1.0 changes back to master. 2019-08-03 17:16:45 -04:00
Virtually Nick
e25f83d629
GUACAMOLE-623: Merge add support for adjusting terminal for Kubernetes via "argv". 2019-08-03 17:14:30 -04:00
Michael Jumper
e6835795f0 GUACAMOLE-623: Add support for setting terminal font for Kubernetes via "argv". 2019-08-03 14:04:30 -07:00
Nick Couchman
b6005cc8a0 Merge 1.1.0 changes back to master. 2019-07-31 12:39:32 -04:00
Michael Jumper
ca073db5b6 GUACAMOLE-629: Add convenience functions for immediately sending the current value of a connection parameter. 2019-07-30 14:05:50 -07:00
Michael Jumper
c3a295e9b7 GUACAMOLE-629: Add convenience function for automatically splitting data across a series of blob instructions. 2019-07-30 14:05:50 -07:00
Michael Jumper
c47aa0cea1 GUACAMOLE-629: Define constant for maximum blob size. 2019-07-30 13:34:24 -07:00
Michael Jumper
c1b8250300 GUACAMOLE-629: Move constants for Guacamole protocol to dedicated "*-constants.h" header. 2019-07-30 13:33:18 -07:00
Michael Jumper
a763d47bc7 GUACAMOLE-629: Add support for sending "argv" instructions from server to client. 2019-07-30 13:06:46 -07:00
Michael Jumper
a3101e9744 Merge 1.1.0 changes back to master. 2019-07-26 14:38:25 -07:00
Nick Couchman
26bb10a486 GUACAMOLE-422: Add empty handler and trace logging for nop instruction. 2019-07-23 14:29:50 -04:00
Frank Riley
87a5479ff8 GUACAMOLE-847: Fix severe memory leak when using audio with RDP 2019-07-20 06:14:36 -07:00
Mike Jumper
b4ef38c064
GUACAMOLE-837: Merge RDP support for Hungarian keyboards. 2019-07-11 21:20:08 -07:00
Nick Couchman
ce7bea66cf Merge 1.1.0 changes back to master. 2019-07-11 09:10:26 -04:00
fgiuba
55add063c5 GUACAMOLE-547: Add missing space between brackets. 2019-07-11 13:37:03 +02:00
fgiuba
9228d2637a GUACAMOLE-547: Do not ignore password from settings. 2019-07-11 13:37:03 +02:00
P-Zs
8f1826d3e4 GUACAMOLE-837: Update Makefile.am to reference the new Hungarian keymap file 2019-07-10 00:55:31 +02:00
P-Zs
badee3274b GUACAMOLE-837: Add Hungarian RDP keymap file to code base 2019-07-10 00:55:31 +02:00
Michael Jumper
e149fd4f70 Merge 1.1.0 changes back to master. 2019-06-20 00:47:46 -07:00
Nick Couchman
1baa91f852 GUACAMOLE-547: Minor changes to function documentation. 2019-06-19 12:38:05 -04:00
Nick Couchman
22874e2388 GUACAMOLE-547: Document return value of credential handler. 2019-06-18 17:59:33 -04:00
Nick Couchman
3511991e2f GUACAMOLE-547: Fixes for style and documentation. 2019-06-18 07:52:05 -04:00
Nick Couchman
9a51d513f2 GUACAMOLE-547: Provide documentation for the new callback function. 2019-06-18 07:37:02 -04:00
Nick Couchman
3d15454097 GUACAMOLE-547: Use a call-back function for getting the password. 2019-06-18 07:37:02 -04:00
Nick Couchman
4641da06ac GUACAMOLE-547: Relocate NULL check and log when NONE succeeds. 2019-06-18 07:37:02 -04:00
Nick Couchman
b7dca0ed16 GUACAMOLE-547: Add support for SSH NONE authentication method. 2019-06-18 07:37:02 -04:00
Michael Jumper
a1c382c8ce Merge 1.1.0 changes back to master. 2019-04-30 17:26:21 -07:00
Nick Couchman
bf741a46d6 GUACAMOLE-422: Minor style and debug changes. 2019-04-27 21:37:26 -04:00
Nick Couchman
93a240b8ad GUACAMOLE-422: Add debugging and check argument count. 2019-04-24 22:21:18 -04:00
Mike Jumper
5e8f5eaa50
GUACAMOLE-296: Merge changes linking libwinpr / libwinpr-utils as needed. 2019-04-24 15:35:16 -07:00
Mike Jumper
fc68113d75
GUACAMOLE-414: Merge support for libvncclient's TLS threadsafety callbacks. 2019-04-24 15:29:32 -07:00
Nick Couchman
4b43de963e GUACAMOLE-422: Break handshake out into separate function; NULL out timezone when not received. 2019-04-22 11:49:46 -04:00
Nick Couchman
588e0f194a GUACAMOLE-422: Fix return documentation on opcode handler function. 2019-04-19 15:50:29 -04:00
Nick Couchman
ab12b2aa8e GUACAMOLE-422: More substantial comment for protocol version; NULL out timezone at beginning of handshake. 2019-04-19 15:48:14 -04:00
Nick Couchman
98cb7ccf67 GUACAMOLE-422: Fix comment and style. 2019-04-17 15:12:46 -04:00
Nick Couchman
75c0deac1f GUACAMOLE-422: Update comment style for consistency. 2019-04-17 15:03:27 -04:00
Nick Couchman
54f88531d4 GUACAMOLE-422: Try to avoid memory leaks with mimetypes. 2019-04-17 15:00:46 -04:00
Nick Couchman
340aef5362 GUACAMOLE-422: Update to remove first argument 2019-04-17 14:41:35 -04:00
Nick Couchman
379fce2d77 GUACAMOLE-422: Rename new opcode handler function. 2019-04-11 17:21:36 -04:00
Nick Couchman
c750b18f60 GUACAMOLE-422: Handle sending version internally. 2019-04-11 17:18:27 -04:00
Nick Couchman
2f57564f5d GUACAMOLE-422: Remove duplicate code and migrate handshake to user handlers. 2019-04-11 17:18:27 -04:00
Nick Couchman
2b68925ec9 GUACAMOLE-422: Add protocol version as initial item passed back in args. 2019-04-11 17:18:27 -04:00
Nick Couchman
0ee47e0186 GUACAMOLE-422: Change handshake to ignore order of opcodes. 2019-04-11 17:18:27 -04:00
Nick Couchman
5480b288e8 GUACAMOLE-422: Remove NULL check for parser argv. 2019-04-11 17:18:27 -04:00
Nick Couchman
5caa8a25f7 GUACAMOLE-422: SSH parameter should use handshake for default. 2019-04-11 17:18:27 -04:00
Nick Couchman
6fae0b4b23 GUACAMOLE-422: Use timezone from handshake when parameter does not exist. 2019-04-11 17:18:27 -04:00
Nick Couchman
f70aa4939f GUACAMOLE-422: Add client timezone to handshake. 2019-04-11 17:16:43 -04:00
Nick Couchman
cd3432e594 Merge 1.1.0 changes back to master. 2019-04-10 06:18:53 -04:00
Michael Jumper
0c25782036 GUACAMOLE-637: Add missing libguac include path to RDP and common-ssh tests. 2019-04-09 23:36:03 -07:00
James Muehlner
6dad6cd919 Merge 1.1.0 changes back to master. 2019-04-09 21:52:28 -07:00
James Muehlner
dd4c3968d1 GUACAMOLE-637: Merge migration to new libguac string functions. 2019-04-09 21:49:16 -07:00
m-khan-glyptodon
871f31353b GUACAMOLE-764: Updated variable type for offsets to uint64_t to increase rdp write to a 64-bit addressable space 2019-04-08 15:27:58 -07:00
m-khan-glyptodon
2db7ffbaab GUACAMOLE-764: Updated variable type for offsets to uint64_t to increase rdp read to a 64-bit addressable space 2019-04-08 15:00:59 -07:00
Michael Jumper
f8ec709e33 GUACAMOLE-637: Correct naming of SFTP unit tests. 2019-04-07 16:51:53 -07:00
Michael Jumper
cda7bca126 GUACAMOLE-637: Add RDP filesystem and SFTP unit tests for path depth. 2019-04-07 16:51:33 -07:00
Michael Jumper
6e2be38ae2 GUACAMOLE-637: Add path depth limits to generated paths in unit tests. 2019-04-07 16:36:16 -07:00
Michael Jumper
986f7f5d64 GUACAMOLE-637: Use same logic for RDP filesystem path normalization as SFTP. 2019-04-07 16:30:27 -07:00
Michael Jumper
1591980579 GUACAMOLE-637: Simplify SFTP path normalization logic. Correct behavior to match documentation. 2019-04-07 16:14:00 -07:00
Michael Jumper
591e494dfd GUACAMOLE-637: Add unit tests for RDP filesystem path normalization. 2019-04-07 13:56:52 -07:00
Michael Jumper
f19754cfa6 GUACAMOLE-637: Add unit tests for SFTP path normalization. 2019-04-07 13:50:53 -07:00
Michael Jumper
24ab5ca85b GUACAMOLE-637: Remove unnecessary .gitignore files. Universally exclude test output. Remove duplicated exclusions. 2019-04-07 11:50:43 -07:00
Nick Couchman
1b8e31b70c GUACAMOLE-296: Add checks for Stream functions in winpr libraries. 2019-03-24 16:12:20 -04:00
Nick Couchman
a4521208ba GUACAMOLE-414: Remove unnecessary rfbconfig include. 2019-03-24 15:09:58 -04:00
Nick Couchman
a6f2ab9d93 GUACAMOLE-414: Use correct formatting for string from strerror. 2019-03-10 17:41:45 -04:00
Nick Couchman
bfc6c1e6e0 GUACAMOLE-414: Convert errors to strings from ptread_mutex_lock and unlock. 2019-03-10 17:40:34 -04:00
Nick Couchman
36817f3774 GUACAMOLE-414: Clean up style and move mutex init to client allocation. 2019-03-10 17:33:14 -04:00
Nick Couchman
df4c93b3e8 GUACAMOLE-414: Use configure checks for finding TLS locking support. 2019-03-10 15:22:49 -04:00
Nick Couchman
c90c057e12 GUACAMOLE-414: Add version checks for TLS locking. 2019-03-09 21:46:02 -05:00
Nick Couchman
e9a10d66b7 GUACAMOLE-414: Add pthread lock and callbacks for TLS write locking. 2019-03-09 21:27:30 -05:00
Michael Jumper
228cea4af1 GUACAMOLE-381: Disable outbound transfers from terminal protocols if "disable-copy" is set. 2019-02-19 12:11:24 -08:00
Michael Jumper
254615509a GUACAMOLE-381: Disable or ignore outbound clipboard transfers for VNC/RDP if "disable-copy" is set. 2019-02-19 11:45:30 -08:00
Michael Jumper
993d5c5707 GUACAMOLE-381: Disable inbound clipboard transfer if "disable-paste" is set. 2019-02-19 11:40:32 -08:00
Michael Jumper
7d2b7126db GUACAMOLE-381: Add copy/paste disable flags for all supported protocols. 2019-02-19 11:34:18 -08:00
Michael Jumper
a0d030a7ae GUACAMOLE-729: Update libtool version info for libguac (interfaces added and changed). 2019-02-09 11:20:06 -08:00
Virtually Nick
7065ff5586
GUACAMOLE-712: Merge add Danish to RDP 2019-02-06 09:01:33 -05:00
netromnetrom
aeb9b99a6c
Merge pull request #2 from netromnetrom/patch-1
Patch 1
2019-02-06 12:01:19 +01:00
Michael Jumper
c6feef6c86 GUACAMOLE-637: Clarify purpose of initial empty path component. Fix normalization logic to ensure that empty component is always present. 2019-01-23 20:28:09 -08:00
Michael Jumper
350d8e5995 GUACAMOLE-637: Document failsafe behavior of guac_strlcat() in the event the destination buffer is not terminated as required. 2019-01-23 19:02:19 -08:00
Michael Jumper
ba8fd17394 GUACAMOLE-637: "concatentation" ... not "contatenation". 2019-01-23 18:53:06 -08:00
Michael Jumper
9fb713d804 GUACAMOLE-637: Correct grammar of documentation for guac_strl*() unit tests. 2019-01-23 18:51:53 -08:00
Michael Jumper
b7761e9a2e GUACAMOLE-637: The $^ variable is non-portable and specific to GNU Make. As otherwise POSIX-compliant platforms may not provide this variable, we shouldn't use it here. 2019-01-23 18:44:45 -08:00
Michael Jumper
789e3883d6 GUACAMOLE-637: Not all systems place Perl in /usr/bin. The line #!/usr/bin/env perl should be used for portability. 2019-01-23 18:44:45 -08:00
Michael Jumper
e6c5da315e GUACAMOLE-637: Add unit tests for guac_strljoin(). 2019-01-23 18:44:45 -08:00
Michael Jumper
258946cd88 GUACAMOLE-637: Correctly handle string lengths as size_t (unsigned). 2019-01-23 18:44:45 -08:00
Michael Jumper
068f33aaef GUACAMOLE-637: Add unit tests for guac_strlcat(). 2019-01-23 18:44:45 -08:00
Michael Jumper
dec3642905 GUACAMOLE-637: Add unit tests for guac_strlcpy(). 2019-01-23 18:44:45 -08:00
Michael Jumper
fdd3292f09 GUACAMOLE-637: Simplify path translation logic. Update to use guac_strl*(). Fix return values. 2019-01-23 18:44:45 -08:00
Michael Jumper
3549da0dd1 GUACAMOLE-637: Replace usages of strncat() with guac_strlcat(). 2019-01-23 18:44:45 -08:00
Michael Jumper
e5c1147cf6 GUACAMOLE-637: Replace usages of strncpy() with guac_strlcpy(). 2019-01-23 18:44:45 -08:00
Michael Jumper
5bf6a1479c GUACAMOLE-637: Add convenience function for joining an array of strings using a given delimiter. 2019-01-23 18:44:45 -08:00
Michael Jumper
a78f254611 GUACAMOLE-637: Add strlcat() implementation. Use libc strlcat() if available. 2019-01-23 18:44:45 -08:00
Michael Jumper
d7909a77aa GUACAMOLE-637: Add strlcpy() implementation. Use libc strlcpy() if available. 2019-01-23 18:44:45 -08:00
Michael Jumper
f6953e1317 GUACAMOLE-637: Use proper namespaced path for Guacamole headers within libguac source. 2019-01-23 18:44:45 -08:00
netromnetrom
7b7c8a1b02
Update Makefile.am 2019-01-22 16:24:56 +01:00
netromnetrom
a06edb9deb
Update and rename dk_dk_qwerty.keymap to da_dk_qwerty.keymap 2019-01-22 14:36:05 +01:00
Michael Jumper
d73b86b4b7 GUACAMOLE-661: Mark "nest" instruction and socket as deprecated. 2019-01-07 09:37:08 -08:00
Michael Jumper
cc4671d7a1 GUACAMOLE-662: Correct handling of buffering within nested socket.
The nested socket implementation seems to have never been properly
updated since guac_socket was changed to rely on implementation-specific
buffering. This meant that absolutely every write resulted in a nest
instruction being sent to the parent socket.

Data should instead be built up within the internal buffer, with each
flush writing as much of the internal buffer as possible within a nest
instruction, leaving any partial UTF-8 characters at the end of the
buffer for later completion with future writes.
2019-01-06 17:09:35 -08:00
Michael Jumper
47ad6f4b59 GUACAMOLE-662: Properly initialize nested socket index (fixes GUACAMOLE-510). 2019-01-06 17:09:35 -08:00
Nick Couchman
aba7b987d3 GUACAMOLE-662: Merge fix handling of unit tests within buid. 2019-01-06 19:42:12 -05:00
Michael Jumper
b6477ea7ae GUACAMOLE-354: Merge RDP keymap for Swiss-German keyboards. 2018-12-04 10:58:34 -08:00
Andrin
01142e6dd8 GUACAMOLE-354: Fixed keyboard name. 2018-12-04 08:30:36 +01:00
Andrin
9486ec7cc4 GUACAMOLE-354: Add Swiss-German keymap for RDP 2018-11-20 14:10:36 +01:00
Michael Jumper
476b431041 GUACAMOLE-662: Migrate tests to test runners generated by new convenience script. Remove unnecessary test runners. 2018-11-17 18:06:40 -08:00
Michael Jumper
867e63b524 GUACAMOLE-638: avcodec_register_all() should be used only if not deprecated. 2018-11-12 16:36:15 -08:00
Nick Couchman
7b1ba3f269 GUACAMOLE-422: Fix spelling mistake. 2018-11-12 12:09:51 -05:00
Nick Couchman
d1b3695282 GUACAMOLE-422: Fix type in strerror() 2018-11-12 11:56:57 -05:00
Nick Couchman
f61539c4e7 GUACAMOLE-422: Quick fixes for style and logging. 2018-11-12 11:55:07 -05:00
Nick Couchman
9a944637be GUACAMOLE-422: Fix function declaration for pushing settings. 2018-11-11 17:25:12 -05:00
Nick Couchman
4bd19160de GUACAMOLE-422: Add logging for RDP timzeone. 2018-11-11 17:22:03 -05:00
Nick Couchman
b3be9eb869 GUACAMOLE-422: Revert addition of logging for setting TZ variable. 2018-11-11 16:07:20 -05:00
Nick Couchman
0b71559017 GUACAMOLE-422: Add errno header. 2018-11-11 15:48:02 -05:00
Nick Couchman
e2b4de9d95 GAUCAMOLE-422: Add warning messages when TZ cannot be set. 2018-11-11 15:45:24 -05:00
Nick Couchman
d7ed452d69 GUACAMOLE-422: Update comments on timezone settings. 2018-11-11 15:30:17 -05:00
Nick Couchman
5536b836ad GUACAMOLE-422: Add support for passing through TZ in SSH. 2018-11-11 14:11:40 -05:00
Nick Couchman
ffdc98d024 GUACAMOLE-422: Support timezone redirection in RDP via TZ variable. 2018-11-11 14:09:23 -05:00
Nick Couchman
381c5d1a76 GUACAMOLE-630: Merge allow font parameters of active terminal session to be changed. 2018-11-11 14:03:58 -05:00
Michael Jumper
5683be0ea3 GUACAMOLE-630: Allow SSH/telnet font family and size to be updated. 2018-11-10 14:22:23 -08:00
Michael Jumper
9e28de70ec GUACAMOLE-630: Separate setting of font family/size from terminal display initialization. 2018-11-10 14:22:23 -08:00
Nick Couchman
d2cb7a9ce9 GUACAMOLE-630: Merge allow color scheme of active terminals to be changed. 2018-11-10 10:45:56 -05:00
Michael Jumper
0cf24219d8 GUACAMOLE-630: Define maximum "argv" stream length for SSH and telnet with symbolic constants. 2018-11-09 20:27:28 -08:00
Michael Jumper
edbdd08476 GUACAMOLE-649: Allow SSH connection to continue despite failure to set LANG environment variable. 2018-11-08 19:29:32 -08:00
Michael Jumper
454682979e GUACAMOLE-649: Add support for setting LANG environment variable via SSH. 2018-11-04 21:20:47 -08:00
Michael Jumper
f293c5e9c0 GUACAMOLE-630: Do not entirely reset terminal state when color scheme is changed. 2018-10-22 23:23:27 -07:00
Michael Jumper
dcab540839 GUACAMOLE-630: Persist semantics of default foreground/background with dedicated palette pseudo-indexes. 2018-10-22 23:23:27 -07:00
Michael Jumper
2f16eadb35 GUACAMOLE-630: Allow color scheme to be changed from webapp via argv streams. 2018-10-22 23:23:27 -07:00
Michael Jumper
6f9f2189f2 GUACAMOLE-630: Separate color scheme parsing into own files. 2018-10-22 23:23:27 -07:00
Michael Jumper
6f49194640 Merge 1.0.0 changes back to master. 2018-10-16 09:05:37 -07:00
Nick Couchman
34c088882b GUACAMOLE-527: Correct issue with order of VNC SFTP settings. 2018-10-16 09:27:45 -04:00
Michael Jumper
d851f10a48 GUACAMOLE-353: Clarify applicability of ASF header when transcluded into generated build files. 2018-10-02 20:37:49 -07:00
Michael Jumper
7374b29364 GUACAMOLE-623: Start terminal once Kubernetes connection is ready (necessary since merge of GUACAMOLE-622). 2018-09-27 09:33:31 -07:00
Michael Jumper
9c593bde89 GUACAMOLE-623: Kill connection if libwebsockets is destroying the underlying WebSocket.
Older versions of libwebsockets will not necessarily invoke close events
under all circumstances, and will instead sometimes summarily destroy
the WebSocket. Thankfully there is another event for that, and newer
versions of libwebsockets continue to define that event. We can hook
into both to handle disconnect.
2018-09-26 22:31:25 -07:00
Michael Jumper
44d3433ea9 GUACAMOLE-623: Explicitly bypass certificate checks if requested.
For older versions of libwebsockets, simply requesting that OpenSSL
ignore the verification result is insufficient, as libwebsockets
manually checks and confirms the verification result, producing an error
in all but specific cases.
2018-09-26 22:01:46 -07:00
Michael Jumper
7ee624844a GUACAMOLE-623: Remove unnecessary initialization of pwsi.
The pwsi member was previously used to ensure the lws structure was made
available to invocations of the event callback early in the connection
lifecycle such that the underlyin guac_client could always be retrieved.
Since the migration to guac_kubernetes_lws_current_client, this is not
necessary, and isn't supported in older versions of libwebsockets
anyway.
2018-09-26 21:52:53 -07:00
Michael Jumper
b48a1b3a5d GUACAMOLE-623: Use libwebsockets' dummy callback only if defined. 2018-09-26 21:51:07 -07:00
Michael Jumper
d8618b0682 GUACAMOLE-623: Support older libwebsockets SSL initialization. 2018-09-26 21:50:19 -07:00
Nick Couchman
760f7a649a GUACAMOLE-629: Merge add support for updating connection parameters of in-progress connections. 2018-09-26 08:47:32 -04:00
Nick Couchman
2d6ce1a5fd GUACAMOLE-632: Merge dynamic JPEG/WebP quality scaling. 2018-09-26 08:45:32 -04:00
Michael Jumper
61df2956b3 GUACAMOLE-623: Clean up logging (libwebsockets adds newline characters). 2018-09-25 21:30:52 -07:00
Michael Jumper
83a531bc89 GUACAMOLE-623: Add support for SSL. 2018-09-25 21:30:52 -07:00
Michael Jumper
2e50573531 GUACAMOLE-623: Move I/O-related functions into separate files. 2018-09-25 21:30:52 -07:00
Michael Jumper
5e3aec6df2 GUACAMOLE-623: Add missing documentation for URL character test. 2018-09-25 21:30:51 -07:00
Michael Jumper
371eed1f93 GUACAMOLE-623: Add missin includes. Remove unnecessary includes. 2018-09-25 21:30:51 -07:00
Michael Jumper
c5f67a31dc GUACAMOLE-623: Add configure test for LWS_CALLBACK_CLIENT_CLOSED (only defined in recent libwebsockets and required if present). 2018-09-25 21:30:51 -07:00
Michael Jumper
ed56093888 GUACAMOLE-623: Generate Kubernetes API endpoint dynamically. 2018-09-25 21:30:51 -07:00
Michael Jumper
34f8f8b30d GUACAMOLE-623: Redirect libwebsockets logging to guacd's debug level log. 2018-09-25 21:30:51 -07:00
Michael Jumper
fe7edce569 GUACAMOLE-623: Add support for terminal resize. Redraw Kubernetes container upon connect. 2018-09-25 21:30:51 -07:00
Michael Jumper
b7c938c239 GUACAMOLE-623: Send typed data to Kubernetes via the STDIN channel. 2018-09-25 21:30:51 -07:00
Michael Jumper
f35517b3ff GUACAMOLE-623: Add outbound message buffer. 2018-09-25 21:30:51 -07:00
Michael Jumper
cbe593503f GUACAMOLE-623: Do not return -1 from libwebsockets callback. Doing so results in automatic cleanup of part of the context, resulting in a segfault when lws_context_destroy() is invoked. 2018-09-25 21:30:51 -07:00
Michael Jumper
f72877bf0d GUACAMOLE-623: Handle data received from Kubernetes. 2018-09-25 21:30:51 -07:00
Michael Jumper
7165fa949d GUACAMOLE-623: Stub out implementation of WebSocket client for Kubernetes. 2018-09-25 21:30:51 -07:00
Michael Jumper
519c90a887 GUACAMOLE-623: Default to unencrypted Kubernetes connections. 2018-09-25 21:30:51 -07:00
Michael Jumper
5bae422b29 GUACAMOLE-623: libwebsockets requires an integer port number. 2018-09-25 21:30:51 -07:00
Michael Jumper
b8bd0e4c6a GUACAMOLE-623: Add base skeleton for Kubernetes protocol support. 2018-09-25 21:30:51 -07:00
Michael Jumper
45e8503ead GUACAMOLE-632: Dynamically scale JPEG/WebP quality depending on measured processing lag. 2018-09-25 13:28:21 -07:00
Michael Jumper
8456c050ea GUACAMOLE-629: Add support for updating connection parameters of in-progress connections. 2018-09-25 11:40:08 -07:00
Nick Couchman
54fda21366 GUACAMOLE-622: Merge withold first terminal frame until connection is verified. 2018-09-21 20:26:47 -04:00
Michael Jumper
622a849bae GUACAMOLE-628: Correct RDP scancode mapping for right control key. 2018-09-21 16:25:11 -07:00
Michael Jumper
462d494ed8 GUACAMOLE-622: Match each line against all regexes. 2018-09-21 14:29:01 -07:00
Michael Jumper
442b1d5cc2 GUACAMOLE-622: Start terminal for telnet only after login status is known (if login success/failure detection enabled). 2018-09-21 14:29:01 -07:00
netromnetrom
5f8c6470ff
Update Makefile.am
Danish keyboard layout
2018-09-11 13:44:29 +02:00
netromnetrom
948d1bcac8
Create dk_dk_qwerty.keymap
Danish keyboard layout
2018-09-11 13:40:25 +02:00
Michael Jumper
1178b475da GUACAMOLE-622: Do not allow STDIN to be redirected if the terminal is not yet started. 2018-09-02 23:04:14 -07:00
Michael Jumper
286cbf32a7 GUACAMOLE-622: Ensure connection to guacd is kept alive even if the SSH daemon is taking its time responding. Lengthy connect times due to DNS verification, PAM, etc. are not uncommon. 2018-09-02 23:04:14 -07:00
Michael Jumper
4606607309 GUACAMOLE-622: Start terminal for SSH only after SSH connection succeeds. 2018-09-02 23:04:14 -07:00
Michael Jumper
0b39b0fc5f GUACAMOLE-622: Implicitly invoke guac_terminal_start() if prompting is required. 2018-09-02 23:04:14 -07:00
Michael Jumper
61a51df1b2 GUACAMOLE-622: Require guac_terminal_start() to be invoked before the terminal will render frames or accept user input. 2018-09-02 23:04:14 -07:00
Nick Couchman
332e187813 Merge 1.0.0 changes back to master. 2018-08-24 12:17:20 -04:00
Jim Chen
eb5aa14a6f GUACAMOLE-470: Support named colors in color-scheme configuration.
When parsing named colors, treat semi-colons as string terminators, so
we can properly parse named colors within the color-scheme
configuration.
2018-08-24 10:42:24 -04:00
Michael Jumper
994cb95893 GUACAMOLE-610: Add console code for altering scrollback size on the fly. 2018-08-18 11:26:12 -07:00
Michael Jumper
0e6d549a40 GUACAMOLE-610: Allow scrollback size to be specified for SSH and telnet. 2018-08-18 11:12:55 -07:00
Michael Jumper
6a576f0121 GUACAMOLE-610: Limit terminal width/height to 1024 characters. 2018-08-18 11:12:50 -07:00
Nick Couchman
0062f61d67 Merge 1.0.0 changes back to master. 2018-07-31 08:12:30 -04:00
Michael Jumper
4f25410aa9 GUACAMOLE-559: Guarantee ordered modification to the clipboard. Do not allow modification of clipboard while clipboard contents are being sent. 2018-07-30 23:53:03 -07:00
Michael Jumper
860a5fca8f GUACAMOLE-559: Maintain terminal clipboard at client level such that it is guaranteed to exist immediately after user connects. 2018-07-30 23:53:03 -07:00
Michael Jumper
e66178ff9a GUACAMOLE-597: Add flag for forcing automatic flushing of pipe stream. 2018-07-27 14:23:50 -07:00
Michael Jumper
99b17b0ac4 GUACAMOLE-597: Add flag which sends terminal output to both the user's display and the open pipe stream. 2018-07-27 14:23:44 -07:00
Michael Jumper
e02df8d550 GUACAMOLE-597: Additionally parse integer flags which may affect pipe stream contents. 2018-07-27 14:23:33 -07:00
Michael Jumper
b0b0b186f5 GUACAMOLE-573: Ensure scrollback buffer bounds cannot be exceeded. Remove incorrect bounds checks. 2018-07-17 21:55:46 -07:00
Michael Jumper
f5b5ac7183 Merge 1.0.0 changes back to master. 2018-07-05 22:54:36 -07:00
Michael Jumper
71f993b25d GUACAMOLE-446: Merge changes adding support for overriding default RDP virtual drive name. 2018-07-05 22:53:29 -07:00
Michael Jumper
83f8dd50df Merge 1.0.0 changes back to master. 2018-07-05 14:42:15 -07:00
Nick Couchman
adcdb080cb GUACAMOLE-587: Increase max number of elements per instruction. 2018-07-05 16:42:33 -04:00
Nick Couchman
5e942c9a67 GUACAMOLE-446: Valid default value for the filesystem name. 2018-07-03 23:23:38 -04:00
Nick Couchman
958fb4c8e0 GUACAMOLE-446: Pass through drive name to RDPDR stream. 2018-07-03 23:20:11 -04:00
Nick Couchman
cfcfe8866c GUACAMOLE-446: Add settings for drive name. 2018-07-03 22:59:30 -04:00
Michael Jumper
35237a4f88 Merge 1.0.0 changes back to master. 2018-07-03 19:32:36 -07:00
Michael Jumper
da1e078242 GUACAMOLE-445: Merge support for defining the RDP printer name. 2018-07-03 19:24:07 -07:00
Nick Couchman
a1ec5d9ad7 GUACAMOLE-445: Implement per-device announce stream, set it up with device initalization, and collect them all during the annonuce process. 2018-07-03 22:13:11 -04:00
Nick Couchman
e68fe81938 GUACAMOLE-445: Pass printer name from settings to RDP session. 2018-07-03 22:12:30 -04:00
Nick Couchman
b21f00c29d GUACAMOLE-445: Add settings for printer name. 2018-06-26 19:23:52 -04:00
Michael Jumper
67680bd2d5 Merge 1.0.0 changes back to master. 2018-06-25 17:27:10 -07:00
Nick Couchman
fe44fd7c3b GUACAMOLE-527: Remove unused error message length variable. 2018-06-25 20:04:26 -04:00
Nick Couchman
7bc6a62365 GUACAMOLE-527: Do not call a remote host key a fingerprint. 2018-06-25 13:57:01 -04:00
Nick Couchman
ba684962b6 GUACAMOLE-527: Plug some memory leaks before returning NULL. 2018-06-25 13:50:19 -04:00
Nick Couchman
f9379dc6bb GUACAMOLE-527: Get full error message when key verification fails. 2018-06-25 08:37:34 -04:00
Nick Couchman
7e254955e8 GUACAMOLE-527: Slight tweak to error message. 2018-06-25 08:31:37 -04:00
Nick Couchman
ebbb7492e7 GUACAMOLE-527: Add warning if no known host keys are provided. 2018-06-25 08:31:37 -04:00
Nick Couchman
27c977adb2 GUACAMOLE-527: Make sure ssh_known_hosts exists before trying to load. 2018-06-25 08:31:37 -04:00
Nick Couchman
428243bb78 GUACAMOLE-527: Move host key checking to a separate function. 2018-06-25 08:31:37 -04:00
Nick Couchman
ac2b4f8d12 GUACAMOLE-527: Check either provided key or key file, if it exists. 2018-06-25 08:31:37 -04:00
Nick Couchman
aec2be6da2 GUACAMOLE-527: Remove unnecessary includes. 2018-06-25 08:31:37 -04:00
Nick Couchman
2bebb96804 GUACAMOLE-527: Fix host key options in the protocol settings. 2018-06-25 08:31:37 -04:00
Nick Couchman
551598e0a4 GUACAMOLE-527: Use libssh2_knownhost_readline and remove host key type. 2018-06-25 08:31:37 -04:00
Nick Couchman
42044e4279 GUACAMOLE-527: Clean up memory and logging. 2018-06-25 08:31:37 -04:00
Nick Couchman
ec4315dfbe GUACAMOLE-527: Correct names of parameters coming from client. 2018-06-25 08:31:37 -04:00
Nick Couchman
5bb616832e GUACAMOLE-527: Order SSH handshake correctly, and remove unnecessary logging. 2018-06-25 08:31:37 -04:00
Nick Couchman
c080569cac GUACAMOLE-527: Fix issue with null host_key variable. 2018-06-25 08:31:37 -04:00
Nick Couchman
2f0c6dcfa3 GUACAMOLE-527: Add error logging for known host checks. 2018-06-25 08:31:37 -04:00
Nick Couchman
9112c4f32f GUACAMOLE-527: Enable host key setting for SFTP connections. 2018-06-25 08:31:37 -04:00
Nick Couchman
0d82cd1e6c GUACAMOLE-527: Add host key and type settings. 2018-06-25 08:31:37 -04:00
Nick Couchman
171bae1f5c GUACAMOLE-527: Add basic check for known hosts file for SSH connections. 2018-06-25 08:31:37 -04:00
Michael Jumper
b650bef139 GUACAMOLE-574: Redirect STDIN from pipe stream named "STDIN" for SSH and telnet. 2018-06-18 14:31:09 -07:00
Michael Jumper
97593958e4 GUACAMOLE-574: Add support for reading STDIN from a pipe stream. 2018-06-18 14:31:09 -07:00
Nick Couchman
f3d9c2f610 GUACAMOLE-573: Merge allow selection of text while scrolling. 2018-06-18 09:32:18 -04:00
Michael Jumper
ecda5c1df9 GUACAMOLE-573: Read selection only within bounds of terminal/scrollback. 2018-06-17 00:01:47 -07:00
Michael Jumper
1756c01522 GUACAMOLE-573: Update selected region when terminal scrolls. 2018-06-17 00:01:47 -07:00
Michael Jumper
6f08ef2a07 GUACAMOLE-573: Allow text selection to be expanded using Shift (fixes GUACAMOLE-191). 2018-06-17 00:01:47 -07:00
Michael Jumper
c0d323828e GUACAMOLE-573: Copy terminal data directly into clipboard. Do not assume selected region will be strictly visible. 2018-06-16 23:58:38 -07:00
Michael Jumper
f87af06ad6 GUACAMOLE-573: Move terminal text selection code into own file. 2018-06-16 23:58:34 -07:00
Michael Jumper
107fdda1f0 GUACAMOLE-570: Update libtool version info for libguac (interfaces added and removed). 2018-06-05 21:48:39 -07:00
Michael Jumper
21f54b9e12 GUACAMOLE-470: Merge changes addressing broken build / GCC warning. 2018-05-27 21:13:25 -07:00
Jim Chen
9c10ddae3b GUACAMOLE-470: Fix incompatible pointer type warning under older GCC.
Older versions of GCC (prior to 5.1) emits an "incompatible pointer
type" warning when passing `foo(*)[]` as `const foo(*)[]`. This was
changed in GCC 5.1, and this patch adds explicit casts to remove the
warning under older GCC.
2018-05-27 23:46:16 -04:00
Michael Jumper
526152b9c6 GUACAMOLE-564: Merge changes ignoring APC sequences within Guacamole's terminal emulator. 2018-05-27 09:31:35 -07:00
Michael Jumper
81bba1b587 GUACAMOLE-470: Merge support for fully configurable terminal color palette. 2018-05-27 08:49:18 -07:00
Jim Chen
87df97317f GUACAMOLE-565: Add terminal-type parameter for SSH and Telnet.
Add a terminal-type parameter for SSH and Telnet connections, to specify
the terminal emulator type that is passed to programs. If not specified,
the default type of "linux" is used in keep with existing behavior.
2018-05-26 23:30:22 -04:00
Jim Chen
b96afce222 GUACAMOLE-564: Hide APC escape sequence.
An APC escape sequence contains an arbitrary string command between
(ESC _) and (ESC \) sequences. While we don't support any APC commands, we
should ignore any commands that we do encounter.
2018-05-26 23:25:56 -04:00
Jim Chen
6da9236ffd GUACAMOLE-470: Reset character attributes on terminal reset.
The character attributes such as foreground/background colors should be
reset as well when performing a terminal reset.
2018-05-26 23:18:27 -04:00
Jim Chen
03d9c51b5d GUACAMOLE-470: Fix crash when X11 color is not found.
Fix a crash when an X11 color name is not found. The variable to
null-check should be `found`, not `color`.
2018-05-26 23:18:27 -04:00
Jim Chen
7e68901ceb GUACAMOLE-470: Set palette index for parsed RGB colors.
Parsed RGB colors do not correspond to any palette entry, so set the
palette index to -1.
2018-05-26 23:18:27 -04:00
Jim Chen
1bd537c350 GUACAMOLE-470: Support configurable colors in color-scheme parameter.
Add support for configuring individual colors in the color-scheme
parameter, by parsing the parameter content into name-value pairs.
Backward compatibility is preserved by translating previously supported
values into corresponding new values.
2018-05-26 23:18:27 -04:00
Jim Chen
f8b35078fc GUACAMOLE-470: Add support for configurable default palette.
Add support for configuring a default palette for a terminal display.
When the default palette is specified during display creation, that
palette is used instead of GUAC_TERMINAL_INITIAL_PALETTE when resetting
the display palette.
2018-05-15 22:05:59 -04:00
Nick Couchman
b61a6ab758 GUACAMOLE-482: Merge allow encoding to proceed despite invalid instructions. 2018-04-13 14:46:01 -04:00
Michael Jumper
8d43c4344d GUACAMOLE-482: Ignore invalid instructions within guacenc. Log failure at debug level. 2018-04-12 15:07:45 -07:00
Nick Couchman
325c8061ea GUACAMOLE-407: Merge refactor guacd Docker to debian:stable base. 2018-04-04 17:00:30 -04:00
Nick Couchman
6d8319e1bd GUACAMOLE-533: Merge process cleanup following disconnect. 2018-04-02 18:17:36 -04:00
Michael Jumper
70b2b8a1bf GUACAMOLE-269: Merge support for overriding the character sequence sent for backspace for SSH/telnet. 2018-04-02 12:19:02 -07:00
Nick Couchman
dc1918b217 GUACAMOLE-269: Don't abort on ttymode issue, just log a warning. 2018-04-02 15:05:56 -04:00
Nick Couchman
7453bc8f44 GUACAMOLE-269: Clean up logging and comments, and simplify code. 2018-04-02 15:04:03 -04:00
Nick Couchman
b441181c18 GUACAMOLE-269: Remove unnecessary data structure and array size, and update comments. 2018-04-02 10:43:57 -04:00
Nick Couchman
ea946f2492 GUACAMOLE-269: Changes to initializing opcode array. 2018-04-02 09:10:11 -04:00
Nick Couchman
c898f35959 GUACAMOLE-269: Clean up terminal backspace initialization. 2018-04-02 07:47:49 -04:00
Michael Jumper
d6a5695f8a GUACAMOLE-533: Wait at most 5 seconds for connection processes to terminate following disconnect. 2018-04-01 23:35:17 -07:00
Michael Jumper
1f60526ab8 GUACAMOLE-407: Do not build guaclog within guacd Docker image. The guacd image should contain only guacd. 2018-04-01 21:36:59 -07:00
Michael Jumper
d6510360d0 GUACAMOLE-407: Dynamically derive runtime dependencies. 2018-04-01 21:16:38 -07:00
Nick Couchman
e16bfd7837 GAUCAMOLE-269: Memory effeciency updates. 2018-03-24 15:50:11 -04:00
Nick Couchman
11136f7d7b GUACAMOLE-269: More documentation updates. 2018-03-24 15:09:34 -04:00
Nick Couchman
112ce5299e GUACAMOLE-269: Remove unnecessary dynamic allocation. 2018-03-24 14:54:27 -04:00
Nick Couchman
86dde85b2d GUACAMOLE-269: Comment and spelling updates. 2018-03-24 14:53:22 -04:00
Nick Couchman
fef819fbb9 GUACAMOLE-30: Add license to file and want network.target. 2018-03-16 17:02:53 -04:00
Nick Couchman
f75579de7e GUACAMOLE-30: Change from script to data. 2018-03-15 07:30:55 -04:00
Nick Couchman
77cac3b30d GUACAMOLE-30: Implement systemd script for guacd 2018-03-15 06:52:41 -04:00
Nick Couchman
a27757682a GUACAMOLE-523: Add default value for client name. 2018-03-08 12:21:04 -05:00
Nick Couchman
b72bcafecd GUACAMOLE-523: Pass configured client name through for redirect messages. 2018-03-08 12:16:31 -05:00
Nick Couchman
45b832bfdc GUACAMOLE-269: Remove all dynamic allocation and simplify implementation. 2018-03-08 11:36:15 -05:00
Nick Couchman
dd7522bd9f GUACAMOLE-269: Get rid of dynamic allocation and properly free up data structures. 2018-03-08 10:48:22 -05:00
Nick Couchman
c3e1b2afef GUACAMOLE-269: Fix minor style issues and update comments. 2018-03-08 10:48:22 -05:00
Nick Couchman
64ca77f3a5 GUACAMOLE-269: Change struct to struct pointer. 2018-03-08 10:48:22 -05:00
Nick Couchman
33cca46346 GUACAMOLE-269: Remove debug code. 2018-03-08 10:48:22 -05:00
Nick Couchman
dd78d230ea GUACAMOLE-269: Backspace key should send null-terminated string. 2018-03-08 10:48:22 -05:00
Nick Couchman
c286668b79 GUACAMOLE-269: Name functions per Guacamole standards. 2018-03-08 10:48:22 -05:00
Nick Couchman
9bd28321e5 GUACAMOLE-269: Fix up style in comments. 2018-03-08 10:48:21 -05:00
Nick Couchman
fd58d31eea GUACAMOLE-269: Use backspace config to set up tty modes. 2018-03-08 10:48:21 -05:00
Nick Couchman
46e908c06e GUACAMOLE-269: Allow backspace key to be configured. 2018-03-08 10:48:21 -05:00
Nick Couchman
2ace9385a2 GUACAMOLE-269: Add documentation for the defines and variables. 2018-03-08 10:48:21 -05:00
Nick Couchman
5583748b54 GUACAMOLE-269: Move constant declaration to ttymode.c 2018-03-08 10:48:21 -05:00
Nick Couchman
f1bf70a4a2 GUACAMOLE-269: Add basic support for sending TTY mode encoding. 2018-03-08 10:48:21 -05:00
Michael Jumper
5d37530687 GUACAMOLE-517: Add definition for "Print Screen" key to base RDP keymap. 2018-03-06 12:01:50 -08:00
Michael Jumper
bc5b01d4d8 GUACAMOLE-448: Merge support for configuring the level of caching used by RDP. 2018-02-22 00:39:31 -08:00
Nick Couchman
d239207f0f GUACAMOLE-448: Add support for configuring glyph caching. 2018-02-20 15:35:50 -05:00
Michael Jumper
3b327378eb GUACAMOLE-351: Add "-v" option which causes guacd to print its version information and exit. 2018-02-07 13:45:13 -08:00
Michael Jumper
f4f5b4e65a GUACAMOLE-351: Separate guac_config structure into own header file, independent of how that config is loaded. 2018-02-07 13:33:52 -08:00
James Muehlner
05f54d098c GUACAMOLE-502: Merge cessastion of name instruction in RDP/VNC to avoid incorreclty updating window title. 2018-02-06 22:43:46 -08:00
Michael Jumper
cd0e48234a GUACAMOLE-500: Explicitly guarantee typescript filename cannot exceed buffer size. 2018-02-06 22:13:55 -08:00
James Muehlner
5b58c7e15b GUACAMOLE-324: Merge buffer write bug fix. 2018-02-06 21:38:27 -08:00
Michael Jumper
9705b39c2b GUACAMOLE-324: Continuously write chunks of data until entire buffer has been sent. 2018-02-06 21:29:31 -08:00
Michael Jumper
19b5050fbf GUACAMOLE-482: Fail overall encoding process if any instruction handler reports failure. 2018-02-06 21:19:24 -08:00
Michael Jumper
b0c14bd59f GUACAMOLE-482: Report video encoding failure if frame flush fails. 2018-02-06 21:18:39 -08:00
Michael Jumper
02cd424d18 GUACAMOLE-502: Do not send connection name / hostname (which may be internal information). 2018-02-06 20:12:53 -08:00
Nick Couchman
4d7191147c GUACAMOLE-313: Merge add support for including key events within session recordings. 2018-02-02 16:16:42 -05:00
Michael Jumper
139251ea73 GUACAMOLE-492: Remove guaclog binary erroneously added to source tree. 2018-01-31 16:45:09 -08:00
Nick Couchman
3f6acb6378 GUACAMOLE-313: Merge remove handling of Unicode codepoints which cannot actually be represented by an X11 keysym. 2018-01-30 19:06:01 -05:00
Nick Couchman
b1d050285a GUACAMOLE-313: Merge ensure keydef structure is freed in all cases. 2018-01-30 19:04:22 -05:00
Nick Couchman
8ca6ff3a94 GUACAMOLE-313: Merge exclude built guaclog.1 mangpage from git. 2018-01-30 18:41:28 -05:00
Michael Jumper
7f9e61a1f2 GUACAMOLE-313: Exclude built guaclog.1 manpage from git. 2018-01-30 15:28:15 -08:00
Michael Jumper
555126441e GUACAMOLE-313: Remove code handling Unicode codepoints which cannot be represented by X11 keysyms. 2018-01-30 15:26:25 -08:00
Michael Jumper
cfd69cd122 GUACAMOLE-313: Clarify logic testing for Unicode keysyms. 2018-01-30 15:26:05 -08:00
Michael Jumper
5f547fb118 GUACAMOLE-313: Ensure keydef structure is freed in all cases. 2018-01-30 15:16:56 -08:00
Michael Jumper
575ff91369 GUACAMOLE-313: Properly initialize modifier flag for all keydefs. 2018-01-30 15:11:23 -08:00
Nick Couchman
5f5b4ea8eb GUACAMOLE-313: Merge add "guaclog" utility for producing human-readable interpreatations of keys pressed in session recordings. 2018-01-30 14:07:35 -05:00
Nick Couchman
08f854ffef GUACAMOLE-313: Merge add support for logging mouse cursor information. 2018-01-30 14:05:39 -05:00
Michael Jumper
053d9d420c GUACAMOLE-352: Clean up keymap lookup/update logic for sake of verifiability. 2018-01-28 23:09:50 -08:00
Michael Jumper
9a5b5574a8 GUACAMOLE-352: Type using dead keys when necessary and possible. 2018-01-28 01:32:58 -08:00
Michael Jumper
5d56985479 GUACAMOLE-352: Add utility function for checking whether a keysym exists within the current RDP keyboard layout. 2018-01-28 00:56:24 -08:00
Nick Couchman
e37fb1dad9 GUACAMOLE-489: Merge lock both wrapped sockets when performing operations through a tee socket. 2018-01-27 17:20:28 -05:00
Michael Jumper
4fb17d5610 GUACAMOLE-313: Add flags for controlling the contents of session recordings. 2018-01-26 16:42:24 -08:00
Michael Jumper
876516a1fb GUACAMOLE-313: Add support for including key states within session recordings. 2018-01-26 16:42:14 -08:00
Michael Jumper
b21aef565b GUACAMOLE-313: Add function for sending "key" instructions. 2018-01-26 16:42:14 -08:00
Michael Jumper
fdd17e3042 GUACAMOLE-313: Note that guacenc/guaclog are related. 2018-01-26 16:24:45 -08:00
Michael Jumper
c0b2871b31 GUACAMOLE-313: Document log format. 2018-01-26 16:24:45 -08:00
Michael Jumper
b7257d9ae4 GUACAMOLE-313: Include unknown keys within log. 2018-01-26 16:24:45 -08:00
Michael Jumper
5e5f1fcb3e GUACAMOLE-313: Add missing keysyms. Track modifier keys only. 2018-01-26 16:24:45 -08:00
Michael Jumper
5b612b856a GUACAMOLE-313: Refactor guaclog to produce simpler, greppable output. 2018-01-26 16:24:45 -08:00
Michael Jumper
86b09c8cf7 GUACAMOLE-313: Add remaining key names. Use Unicode where possible. 2018-01-26 16:24:45 -08:00
Michael Jumper
3633af5e41 GUACAMOLE-313: Use binary search to find human-readable names for known keys. 2018-01-26 16:24:45 -08:00
Michael Jumper
df29735c83 GUACAMOLE-313: Separate naming logic for keysyms. Align previously-pressed keys. 2018-01-26 16:24:43 -08:00
Michael Jumper
d39757b4dc GUACAMOLE-313: Continuously track key press/release. 2018-01-26 16:24:14 -08:00
Michael Jumper
ebc731aaf3 GUACAMOLE-313: Add guaclog utility with stubbed interpretation of key events. 2018-01-26 16:24:04 -08:00
Michael Jumper
81a0e66d9f GUACAMOLE-313: Include current button state within mouse update for completeness. 2018-01-26 16:21:53 -08:00
Michael Jumper
7eb4e22515 GUACAMOLE-313: Use mouse timestamps for frames as well as sync. 2018-01-26 16:21:51 -08:00
Michael Jumper
a74d6a2aaf GUACAMOLE-313: Include timestamp with mouse position reporting. 2018-01-26 16:21:49 -08:00
Michael Jumper
e2455d6f26 GUACAMOLE-313: Do not render cursor unless mouse has actually moved. 2018-01-26 16:21:47 -08:00
Michael Jumper
cafcd90f9f GUACAMOLE-313: Add support for the "mouse" instruction to guacenc. 2018-01-26 16:21:45 -08:00
Michael Jumper
a14832c4da GUACAMOLE-313: Implement the "cursor" instruction to guacenc. 2018-01-26 16:21:43 -08:00
Michael Jumper
df770ae4ea GUACAMOLE-313: Add support for including mouse location within session recordings. 2018-01-26 16:21:28 -08:00
Michael Jumper
b37e73488f GUACAMOLE-313: Provide reference to in-progress screen recording. 2018-01-26 16:21:24 -08:00
Michael Jumper
dc5245025e GUACAMOLE-489: Lock both wrapped sockets when performing operations through a tee socket. 2018-01-26 16:17:45 -08:00
Michael Jumper
dcaf7b2c21 GUACAMOLE-490: Take channel mask into account when rendering image streams to buffers. 2018-01-26 16:08:51 -08:00
Michael Jumper
db85163e20 GUACAMOLE-384: Merge fix for potential segfault if SSH connection is closed while output is still being written to the terminal. 2018-01-23 14:44:47 -08:00
Michael Jumper
822a6c6b9d GUACAMOLE-484: Do not flush frame if connection closed mid-frame. 2018-01-22 12:24:07 -08:00
Michael Jumper
61c16a89d2 GUACAMOLE-484: Always clean up after orderly disconnect. 2018-01-22 12:23:39 -08:00
Michael Jumper
d562cb7648 GUACAMOLE-484: Ensure disconnect reason code is checked for orderly RDP disconnect. 2018-01-22 12:16:09 -08:00
Michael Jumper
0f78b01e81 GUACAMOLE-456: Merge multi-stage Docker build changes. 2018-01-19 13:37:01 -08:00
csenel
93b3eebc5d
GUACAMOLE-481: Add Turkish Q keymap for RDP 2018-01-09 10:53:05 +03:00
Nick Couchman
66ffda24f0 GUACAMOLE-448: Add support for configuring bitmap caching. 2018-01-02 18:26:29 -05:00
Nick Couchman
5295886f68 Merge 0.9.14 changes back to master. 2018-01-01 16:27:03 -05:00
Michael Jumper
ff6c4b04f4 GUACAMOLE-307: The "size" instruction can also apply to buffers, not just layers. 2017-12-08 14:54:15 -08:00
Michael Jumper
1b81549c97 GUACAMOLE-423: Update libtool version info for libguac (interfaces added, none changed/removed). 2017-12-07 19:10:45 -08:00
Michael Jumper
76a6e41031 GUACAMOLE-423: Automatically populate package version within manpages. 2017-12-07 19:10:45 -08:00
Nick Couchman
e3d8c3fa12 Merge 0.9.14 changes back to master. 2017-12-06 10:04:34 -05:00
Carl Harris
e4f4761c87 GUACAMOLE-456: use Docker multi-stage build 2017-12-06 07:57:12 -05:00
Michael Jumper
a514f03fd4 GUACAMOLE-436: Remove incubator prefix from repositories and URLs. 2017-12-06 00:54:21 -08:00
Michael Jumper
2c12c12850 GUACAMOLE-424: Merge changes addressing potential NULL-pointer dereference in VNC user leave handler. 2017-11-15 07:05:21 -08:00
itsankoff
aa6d81d6f9 GUACAMOLE-424: Update doc comments 2017-11-15 15:02:08 +02:00
Michael Jumper
a75bca1e95 GUACAMOLE-273: Merge RDP support for Portuguese Brazilian keyboard. 2017-11-14 17:17:34 -08:00
Frode Langelo
fc599d2aec GUACAMOLE-273: Remove Mac remapping of €. 2017-11-14 20:04:49 +00:00
Michael Jumper
493fa4df16 GUACAMOLE-233: Merge RDP support for Spanish keyboards. 2017-11-14 10:56:28 -08:00
Frode Langelo
fc15850288 GUACAMOLE-233: Add Spanish keymap for RDP. 2017-11-13 22:57:21 +00:00
Frode Langelo
a8174eeac9 GUACAMOLE-273: Fix comment for remapping of €. 2017-11-13 22:52:39 +00:00
Frode Langelo
ed8a32f98b GUACAMOLE-273: Add Brazillian ABNT2 keymap for RDP. 2017-11-13 22:43:42 +00:00
Frode Langelo
625eee0caa GUACAMOLE-434: Add UK English keymap for RDP. 2017-11-13 22:26:29 +00:00
itsankoff
e139b20d12 GUACAMOLE-424: Remove check against NULL for display cursor 2017-11-13 14:51:31 +02:00
itsankoff
f7990af6d0 GUACAMOLE-424: Return NULL if guac_common_display allocation fails 2017-11-13 14:50:44 +02:00
itsankoff
da0fc1a6d8 GUACAMOLE-424: Add doc comment for guac_common_cursor_alloc 2017-11-13 14:49:44 +02:00
Michael Jumper
233f5e27e2 GUACAMOLE-296: Merge changes reverting explicit linking of libwinpr-utils. 2017-11-06 11:24:39 -08:00
Nick Couchman
b9f8e13d80 GUACAMOLE-296: Revert manual addition of winpr-utils library. 2017-11-06 12:20:56 -05:00
itsankoff
bbafa00df0 GUACAMOLE-424: Prevent null pointer dereference for vnc client display and cursor 2017-11-02 19:53:17 +02:00
sanhex
d33bd8deff GUACAMOLE-384: fixing segfault during ssh disconnect
Root Cause:
See the core dump and Valgrind report posted on Jira. guacd was reading a ssh terminal which had been freed. When a ssh connection is terminated, guac_ssh_client_free_handler() will be called from guacd_exec_proc() -> guac_client_free() with pointer client->free_handler. In guac_ssh_client_free_handler(), when ssh_client->term is freed, ssh_client->client_thread may still be using the ssh_client->term. It causes the crash reported in this bug.

The stack trace exposing the problem can be found by running guacd under Valgrind with a ssh test script. The test script repeats doing ssh login and logout for 5000 times.

Solution:
In guac_ssh_client_free_handler(), before calling guac_terminal_free(ssh_client->term), close the stdin pipe of the terminal to stop reading the pipe with guac_terminal_read_stdin() in ssh_input_thread(). So that ssh_input_thread() can be terminated in this case. Call pthread_join() to wait for ssh_client_thread() terminating before freeing the terminal.

Add a new function guac_terminal_stop() to close the pipe and set the fds to invalid (-1). Call it in guac_ssh_client_free_handler() and guac_terminal_free().

Checking the client running state in ssh_input_thread() and ssh_client_thread() to make sure they can be terminated when the client is stopped in guacd_exec_proc() by another thread.

Test:
- Confirmed ssh connection works normally.
- Observed the child process of guacd exits when ssh connection is terminated.
- Reran the ssh test script. Observed no crash.
2017-10-29 18:11:15 -07:00
itsankoff
15f6c4f3dc GUACAMOLE-424: Fix null pointer dereference for vnc client display 2017-10-24 20:21:03 +03:00
Michael Jumper
95be88be19 GUACAMOLE-296: Merge fix for linking issues with FreeRDP 1.1 and guacai (audio input). 2017-10-14 23:45:35 -07:00
Michael Jumper
012a3497eb GUACAMOLE-411: Merge changes fully initializing CMSG buffer prior to use. 2017-10-14 17:50:47 -07:00
Nick Couchman
caedf26a06 GUACAMOLE-296: Break out WINPR libs into their own variable. 2017-10-13 21:25:32 -04:00
David Fort
bb527f30f8 GUACAMOLE-402: fix out-of-tree build
Use $(srcdir) in places were it's needed, so that an out-of-tree build works.
2017-10-12 15:11:27 +02:00
Jukka-Pekka Virtanen
c8eaa91ad3 GUACAMOLE-411: Fixed using uninitialized values in guacd_send_fd 2017-10-10 12:41:19 +03:00
Michael Jumper
d35cc7a83e GUACAMOLE-400: Merge changes correcting segfault when an SSH private key cannot be imported. 2017-09-29 12:05:56 -07:00