[ 
https://issues.apache.org/jira/browse/GUACAMOLE-1076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17141211#comment-17141211
 ] 

Mike Jumper commented on GUACAMOLE-1076:
----------------------------------------

There are definitely differences between 1.0.0 and 1.1.0 regarding the RAIL 
PDUs sent from client to server. None of the information in the PDUs sent from 
either version has any (documented) bearing on whether multiple copies of an 
application will be launched, though clearly something must produce this effect.

It's also interesting to note that neither version actually communicates the 
size of the work area. This may be the cause of some of the behavior observed 
in the past where windows could not be moved outside a small portion of the 
screen.

h2. Apache Guacamole 1.0.0

The 1.0.0 release sends 7 PDUs during the RAIL initialization process, as well 
as a different set of flags for {{TS_RAIL_ORDER_EXEC}}.

h3. (1/7) {{TS_RAIL_ORDER_HANDSHAKE}}

{code:none}
00000000:  05 00 08 00 B0 1D 00 00                          ........
{code}

h3. (2/7) {{TS_RAIL_ORDER_CLIENTSTATUS}}

{code:none}
00000000:  0B 00 08 00 01 00 00 00                          ........
{code}

* {{Flags}} is set (incorrectly?) to {{0x00000001}} 
({{TS_RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE}}).

h3. (3/7) {{TS_RAIL_ORDER_SYSPARAM}}

{code:none}
00000000:  03 00 12 00 43 00 00 00 7E 00 00 00 02 00 00 00  ....C...~.......
00000010:  00 00                                            ..
{code}

* {{SystemParam}}: {{0x00000043}} ({{SPI_SETHIGHCONTRAST}})
* {{Body}}: a {{TS_HIGHCONTRAST}} structure:
** {{Flags}}: {{0x0000007E}} ({{HCF_AVAILABLE}}, {{HCF_HOTKEYACTIVE}}, 
{{HCF_CONFIRMHOTKEY}}, {{HCF_HOTKEYSOUND}}, {{HCF_INDICATOR, 
HCF_HOTKEYAVAILABLE}})
*** Note that, unlike the other flags, {{HCF_INDICATOR}} and 
{{HCF_HOTKEYAVAILABLE}} are documented only within the Win32 API. They are not 
listed as valid values within the RAIL spec, despite the value {{7E}} being 
shown within the spec's example {{SPI_SETHIGHCONTRAST}} sysparam packet.
** {{ColorSchemeLength}}: {{0x00000002}}
** {{ColorSchemeName}}: "" ({{00 00}})

h3. (4/7) {{TS_RAIL_ORDER_SYSPARAM}}

{code:none}
00000000:  03 00 09 00 21 00 00 00 00                       ....!....
{code}

* {{SystemParam}}: {{0x00000021}} ({{SPI_SETMOUSEBUTTONSWAP}})
* {{Body}}: {{0x00}} ({{FALSE}})

h3. (5/7) {{TS_RAIL_ORDER_SYSPARAM}}

{code:none}
00000000:  03 00 09 00 45 00 00 00 00                       ....E....
{code}

* {{SystemParam}}: {{0x00000045}} ({{SPI_SETKEYBOARDPREF}})
* {{Body}}: {{0x00}} ({{FALSE}})

h3. (6/7) {{TS_RAIL_ORDER_SYSPARAM}}

{code:none}
00000000:  03 00 09 00 0B 10 00 00 8E                       .........
{code}

* {{SystemParam}}: {{0x0000100B}} ({{SPI_SETKEYBOARDCUES}})
* {{Body}}: {{0x8E}} ({{TRUE}})

h3. (7/7) {{TS_RAIL_ORDER_EXEC}}

{code:none}
00000000:  01 00 26 00 08 00 1A 00 00 00 00 00 7C 00 7C 00  ..&.........|.|.
00000010:  43 00 61 00 6C 00 63 00 75 00 6C 00 61 00 74 00  C.a.l.c.u.l.a.t.
00000020:  6F 00 72 00 00 00                                o.r...
{code}

* {{Flags}} is set to {{0x0008}} ({{TS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTS}}).

h2. Apache Guacamole 1.1.0

The 1.1.0 release sends only 2 PDUs during the RAIL initialization process, and 
specifies no flags within {{TS_RAIL_ORDER_EXEC}}.

h3. (1/2) {{TS_RAIL_ORDER_HANDSHAKE}}

{code:none}
00000000:  05 00 08 00 B0 1D 00 00                          ........
{code}

h3. (2/2) {{TS_RAIL_ORDER_EXEC}}

{code:none}
00000000:  01 00 26 00 00 00 1A 00 00 00 00 00 7C 00 7C 00  ..&.........|.|.
00000010:  43 00 61 00 6C 00 63 00 75 00 6C 00 61 00 74 00  C.a.l.c.u.l.a.t.
00000020:  6F 00 72 00 00 00                                o.r...
{code}

* {{Flags}} is set to {{0x0000}} (nothing).

> Another copy of RemoteApp is launched in case of session reconnect
> ------------------------------------------------------------------
>
>                 Key: GUACAMOLE-1076
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1076
>             Project: Guacamole
>          Issue Type: Bug
>          Components: RDP
>    Affects Versions: 1.1.0
>            Reporter: Valerii
>            Assignee: Mike Jumper
>            Priority: Minor
>             Fix For: 1.2.0
>
>         Attachments: after-reconnect.PNG, before-reconnect.PNG
>
>
> Hi, I've performed a test deployment of Guacamole in my infra, most things 
> are working as expected, thank you for this software.
> Unfortunately, I'm observing a strange behaviour with RemoteApps, which looks 
> like a bug. If I disconnect from a RemoteApp session (for whatever reason), 
> and then connect to it again, a new copy of application is launched, so after 
> a couple of reconnects I could have 5+ launched applications in the same 
> session. I've tried to limit an user to a single session, but that didn't 
> help.
> Guacamole deployment: all deployed in docker containers on a single host per 
> official install manual, no any configs changes
> Terminal services deployment: tried fully official deployment with AD per MS 
> recommendations, and standalone test server with 
> [http://www.kimknight.net/remoteapptool,] the result is the same
> Remote connection config: specified RDP, Hostname, Username, Password, 
> checked "Ignore server certificate", and specified "RemoteApp" -> "Program", 
> ||Notepad in my test case, all other options are the same.
> Steps to reproduce:
>  # Open a RemoteApp connection, check that application is successfully started
>  # Press Ctrl+Alt+Shift, select Disconnect from left side window menu on top
>  # Press Home button in "DISCONNECTED" window
>  # In Recent Connections select the same connection, and open it again
>  # After connecting to the session, observe that there are two application 
> windows are present, please see the attached screenshots
> Could you please take a look on this issue, and fix it? If there are any logs 
> or some other test steps are needed from my side, I'm happy to provide them



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to