Michael Jumper
32f8f20852
GUACAMOLE-931: Verify that home directory is both a directory and writable for sake of FreeRDP initialization.
2020-01-20 11:49:11 -08:00
Michael Jumper
0676e70325
GUACAMOLE-927: Abort RDP connection if FreeRDP fails to initialize.
2020-01-17 15:54:56 -08:00
Michael Jumper
39f7d5a843
GUACAMOLE-927: Automatically set $HOME for sake of FreeRDP initialization process.
2020-01-17 15:50:47 -08:00
Michael Jumper
37dceed8ec
GUACAMOLE-249: Automatically determine correct location for FreeRDP plugins.
2020-01-15 21:55:27 -08:00
Michael Jumper
3dfd2467c3
GUACAMOLE-249: Remove RAIL callback typecasts, relying instead on configure tests to check need for const.
2020-01-13 16:34:02 -08:00
Michael Jumper
e5fdda1286
GUACAMOLE-249: Remove CLIPRDR callback typecasts, relying instead on configure tests to check need for const.
2020-01-13 16:34:02 -08:00
Michael Jumper
308d7a09a8
GUACAMOLE-249: Support rdpGlyph callback format used in FreeRDP 2.0.0-rc3 and older (used UINT32 instead of INT32).
2020-01-13 16:34:02 -08:00
Michael Jumper
9a34caf40f
GUACAMOLE-249: The FreeRDPConvertColor() function is also known as ConvertColor(), but was only available as ConvertColor() in older FreeRDP 2.0.0 release candidates.
2020-01-13 16:08:17 -08:00
Michael Jumper
eaae203e94
GUACAMOLE-249: Ensure RAIL message handlers are accepted by compiler regardless of whether const is required.
2020-01-13 15:41:56 -08:00
Michael Jumper
4282da662f
GUACAMOLE-249: Restructure audio input such that audio buffer can be separately linked.
...
On some platforms, the libguacai-client.so plugin for FreeRDP reports an
unlinked symbol:
undefined symbol: guac_freerdp_dynamic_channel_collection_add (/usr/local/lib/freerdp2/libguacai-client.so)
This symbol is actually unused within the plugin, but may be referenced
due to being defined within a function in a common piece of source
shared between the plugin and the RDP support.
Separating the actual common components such that they can be included
by both the RDP support and the libguacai-client.so plugin removes the
potential for unused pieces being flagged as missing.
2020-01-12 22:04:01 -08:00
Michael Jumper
e9846945c7
GUACAMOLE-249: Test endianness of platform without violating strict aliasing rules.
...
Dereferencing a uint8_t array as uint32_t causes a build failure with
some compilers as it breaks strict aliasing rules.
2020-01-12 14:34:44 -08:00
Michael Jumper
4b1243fbf8
GUACAMOLE-249: Ensure CLIPRDR message handlers are accepted by compiler regardless of whether const is required.
...
Without a typecast, errors like the following are generated by the
compiler:
channels/cliprdr.c: In function 'guac_rdp_cliprdr_channel_connected':
channels/cliprdr.c:477:27: error: assignment from incompatible pointer type [-Werror]
cliprdr->MonitorReady = guac_rdp_cliprdr_monitor_ready;
^
channels/cliprdr.c:478:31: error: assignment from incompatible pointer type [-Werror]
cliprdr->ServerFormatList = guac_rdp_cliprdr_format_list;
^
channels/cliprdr.c:479:38: error: assignment from incompatible pointer type [-Werror]
cliprdr->ServerFormatDataRequest = guac_rdp_cliprdr_format_data_request;
^
channels/cliprdr.c:480:39: error: assignment from incompatible pointer type [-Werror]
cliprdr->ServerFormatDataResponse = guac_rdp_cliprdr_format_data_response;
^
cc1: all warnings being treated as errors
This is because FreeRDP commit 65812bd added const to the pointer
argument of each of these handlers, wheras older versions of FreeRDP
lack const here. Our implementations of these functions declare const
and thus do not match the older prototype, though they are compatible
with it.
2020-01-12 14:06:34 -08:00
Michael Jumper
5e9c7cdb42
GUACAMOLE-249: Correct typo: "of common RDPDR header" should be "of the common RDPDR header".
2020-01-11 20:24:12 -08:00
Michael Jumper
01c731e241
GUACAMOLE-249: Clean up documentation for arbitrary pipe SVC. No need to say "automatically" everywhere.
2020-01-11 20:22:23 -08:00
Michael Jumper
92d97a3244
GUACAMOLE-249: Correct typo: "indicating" should be "indicates".
2020-01-11 20:21:00 -08:00
Michael Jumper
a3d9a685e8
GUACAMOLE-249: Handle failure to send either response required for monitor ready.
2020-01-11 20:18:27 -08:00
Michael Jumper
f805a80bc1
GUACAMOLE-249: Switch return type of guac_rdp_cache_bitmap() back to void - it doesn't fail, and isn't dictated by the FreeRDP API.
2020-01-11 20:14:35 -08:00
Michael Jumper
62ee36142d
GUACAMOLE-249: Refactor guac_freerdp_channels_load_plugin() to log a warning if plugin limits are reached.
2020-01-09 14:12:08 -08:00
Michael Jumper
b3a713bf7a
GUACAMOLE-249: Clean up basename logic of file downloads. Add unit test.
2020-01-09 13:36:37 -08:00
Michael Jumper
c4f6c5161c
GUACAMOLE-249: Remove accidentally-inserted "0" from end of comment.
2020-01-09 13:11:45 -08:00
Michael Jumper
feb376ea1e
GUACAMOLE-249: Fix misspelled "instruction" and "have" in comments.
2020-01-09 13:10:05 -08:00
Michael Jumper
2139d40e97
GUACAMOLE-249: Remove accidental double spaces from RDP comments.
2020-01-09 13:00:56 -08:00
Michael Jumper
55959b5456
GUACAMOLE-249: Until parameter prompting is available, do not auto-negotiate for NLA if username and password have not been provided.
2020-01-06 13:47:19 -08:00
Michael Jumper
666c4fb299
GUACAMOLE-249: Do not include "extended mode" NLA in security negotiation as negotiation fails (see FreeRDP defaults).
2020-01-06 13:39:59 -08:00
Michael Jumper
67c5bdfdfe
GUACAMOLE-249: Do not attempt to free SVC-specific data if it hasn't actually been allocated.
2020-01-06 13:35:35 -08:00
Michael Jumper
dc8c60f30f
GUACAMOLE-249: freerdp_channels_data() is already the default value of ReceiveChannelData.
2020-01-06 13:22:24 -08:00
Michael Jumper
80988cd6f4
GUACAMOLE-249: Provide SetNull and SetDefault implementations for rdpPointer.
2020-01-06 13:09:51 -08:00
Michael Jumper
1f24c47e29
GUACAMOLE-249: Remove empty struct definitions added by Include What You Use.
2020-01-06 11:40:08 -08:00
Michael Jumper
a54a12362c
GUACAMOLE-249: Use ReadColor() / WriteColor() around FreeRDPConvertColor().
...
The latter expects color input to be in an intermediate representation
resulting from using ReadColor(), and produces color output which cannot
be used until converted back with WriteColor().
2020-01-06 11:04:44 -08:00
Michael Jumper
e325dbc672
GUACAMOLE-249: Add/remove headers as necessary based on run through Include What You Use (IWYU) tool.
2020-01-04 13:07:28 -08:00
Michael Jumper
9855d875c7
GUACAMOLE-249: Remove handlers for PatBlt and OpaqueRect. FreeRDP will not invoke these if the corresponding OrderSupport element is FALSE, thus they will never be called.
2020-01-04 11:53:11 -08:00
Michael Jumper
2bbc4bfbff
GUACAMOLE-249: Move keyboard-related source back to root of RDP (ease merge). Not truly needed as much as the rest of the restructure.
2020-01-04 11:50:08 -08:00
Michael Jumper
f57382f885
GUACAMOLE-249: Determine FreeRDP pixel format corresponding to local Cairo surfaces based on local platform endianness.
2020-01-04 01:11:12 -08:00
Michael Jumper
555973f6b0
GUACAMOLE-249: Remove unnecessary bitmap conversion - will happen automatically when FreeRDP invokes bitmap->Decompress().
2020-01-04 00:00:21 -08:00
Michael Jumper
902c5e1bd4
GUACAMOLE-249: Alpha component must be in highest-order byte.
2020-01-03 23:42:34 -08:00
Michael Jumper
1bc9384ea8
GUACAMOLE-249: Claim support only for RDP orders that are explicitly supported, independently of any FreeRDP defaults.
2020-01-03 17:29:16 -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