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
Nick Couchman
d35a97d28e
GUACAMOLE-1122: Correct scope of settings variable for RDP user file handler."
2020-07-02 16:50:23 -04:00
Jimmy
d34745a40b
GUACAMOLE-1114: Clean up clipboard mutex lock.
2020-06-26 23:19:23 +03:00
Jimmy
264192fd25
GUACAMOLE-1114: Clean up print job mutex lock
2020-06-26 23:18:02 +03:00
Nick Couchman
79c6e5787d
Merge staging/1.2.0 changes back to master.
2020-06-25 17:56:43 -04:00
Michael Jumper
7de6ba7ea9
GUACAMOLE-474: Do not allow RDPDR file downloads via "get" instructions if downloads are disabled.
2020-06-25 14:43:37 -07:00
Michael Jumper
630798503c
GUACAMOLE-474: Ensure RDPDR "Download" folder behaves as a normal folder if downloads are disabled.
2020-06-25 14:43:37 -07:00
Michael Jumper
f4ff5f337c
GUACAMOLE-474: Enforce upload disable option at low level, warning if not blocked at higher level as expected.
2020-06-25 14:43:37 -07:00
Michael Jumper
d8c32b1e82
GUACAMOLE-474: Enforce download disable option at low level, warning if not blocked at higher level as expected.
2020-06-25 14:41:39 -07:00
Nick Couchman
45a0cd943b
Merge staging/1.2.0 changes back to master.
2020-06-24 20:19:10 -04:00
Michael Jumper
af2c109079
GUACAMOLE-465: Correct printf-style format string (should be "%s" for strings, not "%d").
2020-06-24 17:14:25 -07:00
Michael Jumper
4ac0940e81
GUACAMOLE-465: Remove redundant newline character from calls to guacenc_log().
2020-06-24 17:14:23 -07:00
Virtually Nick
3a87dd0c96
GUACAMOLE-465: Merge remove superfluous access check prior to attempting file deletion.
2020-06-24 20:10:34 -04:00
Nick Couchman
37965a961e
Merge staging/1.2.0 changes back to master.
2020-06-24 20:09:05 -04:00
Michael Jumper
096a067b1f
GUACAMOLE-465: Correct possible leak of malloc'd video structure.
2020-06-24 13:56:16 -07:00
Michael Jumper
8d9049942d
GUACAMOLE-465: Remove superfluous access check prior to attempting file deletion.
2020-06-24 13:41:03 -07:00
Nick Couchman
708769b4c3
Merge staging/1.2.0 changes back to master.
2020-06-24 13:11:17 -04:00
Virtually Nick
614f38767e
GUACAMOLE-465: Merge produce MPEG-4 output within a proper container.
2020-06-24 13:10:32 -04:00
Nick Couchman
f1f1b0d438
Merge staging/1.2.0 changes back to master.
2020-06-24 12:59:34 -04:00
Virtually Nick
4815f62358
GUACAMOLE-966: Merge bump libguac version number for 1.2.0.
2020-06-24 12:58:40 -04:00
Nick Couchman
025525f93a
Merge staging/1.2.0 changes back to master.
2020-06-24 12:55:34 -04:00
Michael Jumper
3e73e392a0
GUACAMOLE-966: Bump libguac version number for 1.2.0 (interfaces added, none changed or removed).
2020-06-24 02:37:35 -07:00
Michael Jumper
fb94ef9e9a
GUACAMOLE-495: Add whitespace and reflow as necessary to improve readability.
2020-06-24 02:25:02 -07:00
Michael Jumper
628f2fd815
GUACAMOLE-518: Ensure all keys are released even if the key pressed client-side is unknown except through dead keys.
2020-06-24 00:54:39 -07:00
Michael Jumper
3798d85bd1
GUACAMOLE-518: Count client-side pressed keys independently of server-side keys.
2020-06-24 00:54:39 -07:00
Michael Jumper
2407157d00
GUACAMOLE-518: Handle modifier status correctly when multiple modifier keys are involved.
2020-06-24 00:54:39 -07:00
Michael Jumper
7d17e6898a
GUACAMOLE-518: Remove unused GUAC_KEYSYMS_* constants.
2020-06-24 00:54:39 -07:00
Michael Jumper
337f3bbff2
GUACAMOLE-518: Map both Right Alt and AltGr to Windows' Right Alt.
...
Windows expects the Right Alt key to be sent for AltGr.
2020-06-23 22:05:18 -07:00
Michael Jumper
9b891e2360
GUACAMOLE-495: Update guacenc mangpage - the MPEG-4 output is no longer a raw stream.
2020-06-23 15:48:41 -07:00
Michael Jumper
81601d99fe
GUACAMOLE-465: Reformat/reflow comments to match established style.
2020-06-23 15:40:04 -07:00
Nick Couchman
e8deeeae97
Merge staging/1.2.0 changes back to master.
2020-06-23 14:19:37 -04:00
Michael Jumper
60944f1092
GUACAMOLE-518: Keep locally-tracked keyboard lock status in sync with remote changes to keyboard locks.
2020-06-23 11:11:19 -07:00
Michael Jumper
a246403137
GUACAMOLE-518: Update German keymap to define behavior of Caps Lock.
...
On German keyboards, Caps Lock behaves like Shift, affects all
characters except dead keys, "°", "<", ">", "-", "_", and any keys
requiring AltGr, and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
3f375a4501
GUACAMOLE-518: Update Swiss German keymap to define behavior of Caps Lock.
...
On Swiss German keyboards, Caps Lock turns all letters uppercase and is
undone by Shift, except for letters which instead rely on Shift to
determine their identity (accented letters).
For example, the key directly to the right of "P" produces "ü" if no
modifiers or locks are active. With Shift pressed, the key changes
identity to "è", with the state of Caps Lock determining the case:
| Shift | Caps | Result |
|-------|-------|--------|
| | | "ü" |
| | X | "Ü" |
| X | | "è" |
| X | X | "È" |
This goes for all accented characters in the Swiss German layout.
2020-06-23 11:11:19 -07:00
Michael Jumper
e8153f9002
GUACAMOLE-518: Update French keymap to define behavior of Caps Lock.
...
On French keyboards, Caps Lock behaves like Shift, affects all
characters including dead keys but excluding "<", ">", "²", and any keys
requiring AltGr, and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
568e037012
GUACAMOLE-518: Update Swiss French keymap to define behavior of Caps Lock.
...
On Swiss French keyboards, Caps Lock affects only non-accented letters
and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
31d05de72a
GUACAMOLE-518: Update Belgian French keymap to define behavior of Caps Lock.
...
On Belgian French keyboards, Caps Lock behaves like Shift, affects all
characters including dead keys but excluding "<", ">", "²", "³", and any
keys requiring AltGr, and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
f884ab76b1
GUACAMOLE-518: Update Italian keymap to define behavior of Caps Lock.
...
On Italian keyboards, Caps Lock affects only non-accented letters and is
undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
1117cf052c
GUACAMOLE-518: Update Turkish-Q keymap to define behavior of Caps Lock.
...
On Turkish-Q keyboards, Caps Lock affects only letters (including
accented letters) except for "é", and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
b69248048c
GUACAMOLE-518: Update Swedish keymap to define behavior of Caps Lock.
...
On Swedish keyboards, Caps Lock affects only letters (including accented
letters) and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
38737a8353
GUACAMOLE-518: Update Brazilian Portuguese keymap to define behavior of Caps Lock.
...
On Brazilian Portuguese keyboards, Caps Lock affects only letters
(including accented letters) and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
5c1a2fc44c
GUACAMOLE-518: Update Latin American keymap to define behavior of Caps Lock.
...
On Latin American keyboards, Caps Lock affects only letters (including
accented letters) and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
ba3d1de3bb
GUACAMOLE-518: Update Spanish keymap to define behavior of Caps Lock.
...
On Spanish keyboards, Caps Lock affects only letters (including accented
letters) and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
2cec040b9e
GUACAMOLE-518: Update Danish keymap to define behavior of Caps Lock.
...
On Danish keyboards, Caps Lock affects only letters (including accented
letters) and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
e9652becfd
GUACAMOLE-518: Update Hungarian keymap to define behavior of Caps Lock.
...
On Hungarian keyboards, Caps Lock affects only letters (including
accented letters) except those requiring AltGr, and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
31a415cc59
GUACAMOLE-518: Update UK English keymap to define behavior of Caps Lock.
...
On UK English keyboards, Caps Lock affects only letters (including
accented letters) and is undone by Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
024e281252
GUACAMOLE-518: Update US English keymap to define behavior of Caps Lock.
...
On US English keyboards, Caps Lock affects only letters and is undone by
Shift.
2020-06-23 11:11:19 -07:00
Michael Jumper
48b3d5038f
GUACAMOLE-518: Automatically release any automatically-pressed keys after user has released all keys on the client side.
2020-06-23 11:11:19 -07:00
Michael Jumper
cb6ffd06e6
GUACAMOLE-518: Allow multiple possible definitions (means of typing a particular key) for each keysym.
2020-06-23 11:11:19 -07:00
Michael Jumper
67450d89f3
GUACAMOLE-518: Correct signedness of keyboard flag variables.
2020-06-22 10:05:37 -07:00
Michael Jumper
96c4c208b4
GUACAMOLE-518: Ensure keyboard state is always updated for all keys pressed/released.
2020-06-22 10:05:37 -07:00
Michael Jumper
7fd54c56a8
GUACAMOLE-518: Modifications to generate.pl should result in regeneration of all keymaps.
2020-06-21 21:05:43 -07:00
Michael Jumper
ce0982fefd
GUACAMOLE-518: Track and update modifier states based on overall flags, not keysyms.
2020-06-21 21:05:43 -07:00
Nick Couchman
0c784d434c
Merge staging/1.2.0 changes back to master.
2020-06-20 20:53:18 -04:00
Michael Jumper
7598f5a95a
GUACAMOLE-1076: Use proper constants to represent RemoteApp high contrast support flags.
2020-06-20 16:09:43 -07:00
Michael Jumper
d5608fb8a2
GUACAMOLE-1076: Send same System Parameters Update PDUs as Apache Guacamole 1.0.0 and older.
2020-06-20 15:09:00 -07:00
Michael Jumper
a7732e72be
GUACAMOLE-1076: Ensure Client Information PDU is sent during RAIL handshake (required by spec).
2020-06-20 14:32:53 -07:00
Michael Jumper
6a50d3076c
GUACAMOLE-1076: Set RAIL flag for expanding environment variables within RemoteApp arguments (match v1.0.0 behavior).
2020-06-20 14:14:29 -07:00
Michael Jumper
29b055b511
Merge 1.2.0 changes back to master.
2020-06-18 12:52:30 -07:00
Mike Jumper
f899fe0b2f
GUACAMOLE-1053: Merge restoration of proper locking on RDP structures.
2020-06-18 12:51:34 -07:00
Grigory Trenin
d76502d169
GUACAMOLE-1053: guacd segfaults when user actively presses keys at RDP disconnect time
2020-06-18 05:57:33 -04:00
Michael Jumper
787ae317fc
Merge 1.2.0 changes back to master.
2020-06-17 14:12:12 -07:00
Nick Couchman
db4b155c51
GUACAMOLE-513: Update default WoL boot wait time to 0.
2020-06-17 15:27:12 -04:00
Virtually Nick
72489d5690
GUACAMOLE-1103: Merge fix the incorrect comment on enable_sftp variable in RDP
2020-06-17 14:10:16 -04:00
Jimmy
2c2f372def
GUACAMOLE-1103: Fixed the incorrect comment of the enable_sftp variable of the guac_rdp_settings structure.
2020-06-17 23:01:13 +03:00
Nick Couchman
e51c269a51
GUACAMOL-513: Correctly handle unknown address families.
2020-06-17 06:50:43 -04:00
Nick Couchman
b0bcb30346
GUACAMOLE-513: Merge socket calls and handle IP family determination correctly.
2020-06-16 16:48:51 -04:00
Nick Couchman
ec305903d0
GUACAMOLE-513: Add guac_error handling for WoL
2020-06-16 15:06:51 -04:00
Nick Couchman
57c4dbf454
GUACAMOLE-513: No need to close socket when socket was never opened.
2020-06-16 11:50:36 -04:00
Nick Couchman
30bbb892db
GUACAMOLE-513: Handle cases where socket open fails.
2020-06-09 19:29:22 -04:00
Michael Jumper
b8ecfe2425
Merge 1.2.0 changes back to master.
2020-06-09 10:43:10 -07:00
Nick Couchman
0c59897da9
GUACAMOLE-513: New defaults header needs to be in Makefile.am
2020-06-09 13:06:40 -04:00
Michael Jumper
b6568d11b3
Merge 1.2.0 changes back to master.
2020-06-09 01:15:43 -07:00
Mike Jumper
65c07b75cc
GUACAMOLE-513: Merge support for Wake-on-LAN.
2020-06-09 01:15:11 -07:00
Michael Jumper
a5a89bcf1d
Merge 1.2.0 changes back to master.
2020-06-08 10:42:40 -07:00
Nick Couchman
2aa2ccc90c
GUACAMOLE-513: Properly close WOL socket.
2020-06-07 20:33:19 -04:00
Nick Couchman
df8030d9bb
GUACAMOLE-513: Implement defaults header for protocol constants.
2020-06-07 20:27:42 -04:00
Nick Couchman
42e223f4a6
GUACAMOLE-474: Correct variable name and scope errors in RDP fs code.
2020-06-07 19:51:02 -04:00
Michael Jumper
4dce306a04
Merge 1.2.0 changes back to master.
2020-06-07 16:31:08 -07:00
Mike Jumper
e526174009
GUACAMOLE-474: Merge support for selectively disabling file uploads and downloads.
2020-06-07 16:30:37 -07:00
Nick Couchman
af89f828eb
Merge staging/1.2.0 changes back to master.
2020-06-07 07:22:05 -04:00
Michael Jumper
4184a52c98
GUACAMOLE-1059: Sound format index should be checked against maximum number of formats, not byte size of array.
2020-06-06 23:50:28 -07:00
Nick Couchman
ec093d3cea
GUACAMOLE-474: Minor style and debug message tweaks.
2020-05-29 07:39:39 -04:00
Michael Jumper
029563a4b9
Merge 1.2.0 changes back to master.
2020-05-25 02:43:01 -07:00
Nick Couchman
ff34146f57
GUACAMOLE-1059: Log array boundary violation for sound formats.
2020-05-24 08:55:58 -04:00
Nick Couchman
234f5aff1a
GUACAMOLE-1059: Check array boundary for sound formats.
2020-05-16 21:12:53 -04:00
Michael Jumper
a0e11dc817
Merge staging/1.2.0 changes back to master.
2020-05-07 14:10:33 -07:00
Nick Couchman
557e2f5944
GUACAMOLE-1059: Fine tune comments and log messages.
2020-05-06 10:17:20 -04:00
Nick Couchman
47bf3ab672
GUACAMOLE-1059: Verify correct number of bytes for incoming wave.
2020-05-05 17:15:47 -04:00
Nick Couchman
315a8a7179
GUACAMOLE-1059: Correctly handle issues processing audio input formats.
2020-05-05 16:53:13 -04:00
Nick Couchman
e761e47cd0
GUACAMOLE-1059: Add missing checks and fix up warning messages.
2020-05-05 16:33:59 -04:00
Nick Couchman
71769b9715
GUACAMOLE-1059: Add missing check for manually copied buffer.
2020-05-04 19:49:15 -04:00
Nick Couchman
ac9e5e91f6
GUACAMOLE-1059: Remove bad check of audio stream against body_size.
2020-05-04 17:53:38 -04:00
Nick Couchman
98f0c271fb
GUACAMOLE-1059: Add explanatory comments and additional logging.
2020-05-04 17:45:17 -04:00
Nick Couchman
8560ff9718
GUACAMOLE-1059: Move rdpsnd body size check to correct location.
2020-05-04 12:11:37 -04:00
Nick Couchman
ce28575b3a
GUACAMOLE-1059: Use FreeRDP function for verifying Stream length before reading.
2020-05-04 08:48:40 -04:00
Tomer Gabel
8838199f5c
GUACAMOLE-1047: Notify connecting client on unrecognized connection ID
2020-04-23 16:53:17 +03:00
Nick Couchman
f910d29083
GUACAMOLE-1031: Add call for RDP to pay attention to upload directory
2020-04-16 12:20:58 -04:00
Nick Couchman
02a7291742
GUACAMOLE-513: Adjust names of constants and fix style.
2020-04-15 09:42:22 -04:00
Nick Couchman
a55e1893dd
GUACAMOLE-949: Remove unused UNIX_TIME macro.
2020-04-02 15:53:51 -04:00
Nick Couchman
b077013c30
GUACAMOLE-474: Hide Download folder if downloads are disabled.
2020-04-02 14:58:06 -04:00
Nick Couchman
bbb794966b
Merge staging/1.2.0 changes back to master.
2020-03-22 20:30:42 -04:00
Michael Jumper
04b8633410
GUACAMOLE-952: Add security negotiation mode specific to Hyper-V / VMConnect.
2020-03-22 16:27:55 -07:00
Michael Jumper
aa8c8cac84
GUACAMOLE-952: Remove incorrect Preconnection PDU warning left over from old FreeRDP support.
2020-03-22 16:27:55 -07:00
Nick Couchman
a0d4bacbc6
GUACAMOLE-513: Support determining IPv4 or IPv6.
2020-03-19 09:12:15 -04:00
Nick Couchman
0feda1fa2f
GUACAMOLE-513: Make packet size a constant.
2020-03-19 09:12:15 -04:00
Nick Couchman
45e46bd245
GUACAMOLE-513: Move sleep to protocol implementations; update comments and headers.
2020-03-19 09:12:15 -04:00
Nick Couchman
3dc2591517
GUACAMOLE-513: Add debug logging for sending WoL.
2020-03-19 09:12:15 -04:00
Nick Couchman
3d4a27607d
GUACAMOLE-513: Implement settings and code for Wake-on-LAN support.
2020-03-18 13:29:58 -04:00
Jimmy
fa86d18353
GUACAMOLE-982: Fix the error log message when the creating thread of RDP client fails.
2020-03-09 23:16:28 +02:00
Virtually Nick
e4407167ab
GUACAMOLE-979: Merge ensure all FreeRDP settings strings are independent duplicates of their corresponding Guacamole settings.
2020-03-02 18:36:33 -05:00
Virtually Nick
253213b29d
GUACAMOLE-978: Merge respond to Handshake/HandshakeEx PDU received via RAIL with client Handshake PDU.
2020-03-02 18:35:53 -05:00
Michael Jumper
5e1b92cb65
GUACAMOLE-979: Ensure all FreeRDP settings strings are independent duplicates of their corresponding Guacamole settings.
...
FreeRDP 2.0.0 will automatically free all settings strings when the
settings structure is freed. As we will also do the same for our own
settings strings, the FreeRDP settings must be kept independent. There
is no guarantee that the FreeRDP settings will be pushed before an error
causes the connection to abort, nor that the FreeRDP settings will not
need to be pushed multiple times due to an automatic reconnect.
2020-03-02 15:02:03 -08:00
Michael Jumper
789463ce76
GUACAMOLE-978: Respond to Handshake/HandshakeEx PDU received via RAIL with client Handshake PDU.
2020-03-02 14:15:27 -08:00
Michael Jumper
28983d964b
GUACAMOLE-917: Add missing non-dead tilde to German keymap for RDP.
2020-02-28 10:47:22 -08:00
Virtually Nick
83d2f30f8b
GUACAMOLE-818: Merge break SFTP directory JSON at blob boundaries. Do not skip entries.
2020-02-24 21:14:49 -05:00
Michael Jumper
8ea9b14a80
GUACAMOLE-818: Break SFTP directory JSON at blob boundaries. Do not skip entries.
...
The intent of the previous version of the SFTP directory listing code
was to break the JSON transfer at blob boundaries, waiting for an ack
before sending the next blob, however the ordering of the "blob_written"
and directory read checks could result in a directory entry being
skipped at the boundary of each blob.
The proper order would be to check the "blob_written" flag first,
however the "blob_written" flag is unnecessary. It's simpler and more
correct to just break out of the loop once the desired blob has been
flushed.
2020-02-24 17:58:29 -08:00
Michael Jumper
a80cd8db06
GUACAMOLE-962: Restore OpaqueRect and PatBlt handlers.
...
This commit effectively reverts commit 9855d875c7
.
With relaxed order checks enabled, FreeRDP will indeed invoke the
OpaqueRect and PatBlt handlers (even though we do not announce support
for those orders) as long as handlers are provided.
2020-02-24 16:48:14 -08:00
Michael Jumper
3b0abe376e
GUACAMOLE-962: Request relaxed RDP order checks if supported by FreeRDP.
2020-02-24 16:48:14 -08:00
Jonas Zeiger
783aa85c1b
GUACAMOLE-958: Avoid race/deadlock in guacd_timed_client_free()
2020-02-12 15:06:25 +01:00
Jimmy
659cdd09a0
GUACAMOLE-947: Fix the initialization issue of CLIPRDR_FORMAT_LIST object.
2020-02-06 18:17:40 +02:00
Sean Reid
fe0658dd36
GUACAMOLE-465: resolved issues brought up in PR159 and added compatibility with recent versions of libavcodec
2020-02-02 16:34:40 -05:00
Sean Reid
fb237d4fc9
GUACAMOLE-465: resolved issues brought up in PR159 (unneeded dynamic mem allocation, style guide violations)
2020-02-02 16:34:40 -05:00
Sean Reid
bb825de73b
GUACAMOLE-465: added dependency to libavformat as first step to supporting other types of codecs and containers in guacenc. migrated existing functionality to use the libavformat library for writing the files. there is not differnce to the user with this patch, but it provides a good base to finish this new feature from later
2020-02-02 16:34:40 -05:00
Nick Couchman
1a699686b9
GUACAMOLE-474: Implement logic to disable file transfers in each protocol.
2020-01-26 03:33:08 -05:00
Nick Couchman
42e382062c
GUACAMOLE-474: Add parameter processing for file upload/download disable.
2020-01-26 03:33:08 -05:00
Nick Couchman
0e845a2914
GUACAMOLE-625: Remove trailing whitespace in Makefile.am and fix style
2020-01-24 10:32:25 -05:00
Adolfo Gómez García
b13fae7a9f
GUACAMOLE-625: Included Latin American keymap
2020-01-24 10:50:23 +01:00
Nick Couchman
0aecca3e04
Merge staging/1.1.0 changes back to master.
2020-01-22 16:25:39 -05:00
Michael Jumper
8ebe5c571a
GUACAMOLE-935: Do not assign SVC plugin context as it may be automatically freed.
...
FreeRDP version 2.0.0-rc0 and older will automatically free whatever
entry_points->pInterface is set to when the channel plugin is unloaded.
This doesn't happen in later versions, but will result in a double-free
upon disconnect for 2.0.0-rc0 in our case. As we don't need pInterface,
we can safely set this to NULL and avoid the issue entirely.
2020-01-22 11:10:50 -08:00
James Muehlner
28f7d3694e
Merge 1.1.0 changes back to master.
2020-01-21 23:30:27 -08:00
James Muehlner
3bc00c429a
GUACAMOLE-935: Merge fix for differing rdpBitmap free behavior.
2020-01-21 23:28:46 -08:00
Michael Jumper
26dfc533bd
GUACAMOLE-935: Free internals of rdpBitmap only when required.
...
In FreeRDP 2.0.0-rc0 and earlier, Bitmap_Free(bitmap) invokes the free
handler of the given bitmap, frees bitmap->data, and then frees the
bitmap. The implementation-specific free handler needs to be aware only
of the implementation's own concerns.
After FreeRDP 2.0.0-rc0, Bitmap_Free(bitmap) only invokes the
implementation-specific free handler, and it's on the implementation to
know that bitmap->data must be manually freed with _aligned_free() and
bitmap must be freed with free(). The implementation-specific free
handler must be aware of the internals of the library.
See commit 8dda26a
.
2020-01-21 22:35:26 -08:00
James Muehlner
75b658c6c9
GUACAMOLE-934: Merge support for the Play Sound PDU.
2020-01-21 22:08:44 -08:00
Michael Jumper
b21d19d37d
GUACAMOLE-934: Correct waveform calculation. Switch to triangle wave to reduce aliasing distortion.
2020-01-21 00:03:42 -08:00
Michael Jumper
b8148b0daf
GUACAMOLE-934: Handle potential lack of available audio streams.
2020-01-20 21:16:36 -08:00
Michael Jumper
ddc09b161a
GUACAMOLE-934: Add support for the Play Sound PDU.
2020-01-20 18:36:06 -08:00
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
Nick Couchman
cc8d879a12
Merge staging/1.1.0 changes back to master.
2020-01-18 06:16:54 -05:00
Virtually Nick
77f6168729
GUACAMOLE-928: Merge keep FreeRDP plugins of Docker image within /usr/local/guacamole
2020-01-18 06:15:23 -05:00
Michael Jumper
2c6be5afd1
GUACAMOLE-928: Keep all build artifacts of Docker image within /usr/local/guacamole, including FreeRDP plugins.
2020-01-17 16:15:31 -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
Nick Couchman
fd2c5b9259
Merge staging/1.1.0 changes back to master.
2020-01-16 15:06:56 -05:00
Michael Jumper
37dceed8ec
GUACAMOLE-249: Automatically determine correct location for FreeRDP plugins.
2020-01-15 21:55:27 -08:00
Michael Jumper
fcac1a26f8
GUACAMOLE-249: Remove extra warning resulting from merge.
...
If the admin intentionally disables both copy and paste, then there is
no need to log a warning that this is the case; it was intentional. A
warning will likely set off alarm bells within production log monitoring
systems.
2020-01-14 15:50:23 -08:00
Nick Couchman
956c5f293e
Merge staging/1.1.0 changes back to master.
2020-01-14 16:27:09 -05: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
e9670df145
GUACAMOLE-249: Correct typo: "updating" should be "update".
2020-01-11 20:19:51 -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
0677a9ae4d
GUACAMOLE-249: Common surface should still pay attention to dirty flag, regardless of the new special case for unrealized surfaces.
2020-01-06 11:18:10 -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
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