Skip to content

Commit

Permalink
Merge pull request cedrozor#114 from bigpjo/master
Browse files Browse the repository at this point in the history
SSH Support and popup credentials
  • Loading branch information
cedrozor authored Jul 31, 2018
2 parents ed792f2 + 08befd8 commit 042aaaf
Show file tree
Hide file tree
Showing 83 changed files with 10,982 additions and 662 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
2018-05-28 Verions 2.0.0 (beta)
SSH terminal support
Include prompt for user credentials in enterprise mode
fix login failure when passing domain in enterprise mode if IP is used instead of FQDN
2018-06-09 Version 1.9.1 (stable)
reinstated the hotfix removed into version 1.9.0, forcing IP connection when using FQDN; fact is, some people still have issues even with openssl 1.1.x (unable to reproduce, may depend on a specific configuration). more details here: https://github.com/FreeRDP/FreeRDP/issues/4525#issuecomment-380635647
improved performance mitigation in case of high latency network
Expand Down
2 changes: 1 addition & 1 deletion Myrtille.Common/Helpers/ClientIPHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Myrtille: A native HTML4/5 Remote Desktop Protocol client.
Copyright(c) 2014-2018 Cedric Coste
Copyright(c) 2018 Paul Oliver
Copyright(c) 2018 Paul Oliver (Olive Innovations)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,128 +1,128 @@
/*
Myrtille: A native HTML4/5 Remote Desktop Protocol client.
Copyright(c) 2014-2018 Cedric Coste
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

using System.Collections;

namespace Myrtille.Web
{
public enum RemoteSessionCommand
{
// connection
SendServerAddress = 0,
SendUserDomain = 1,
SendUserName = 2,
SendUserPassword = 3,
SendStartProgram = 4,
ConnectRdpClient = 5,

// browser
SendBrowserResize = 6,

// keyboard
SendKeyUnicode = 7,
SendKeyScancode = 8,

// mouse
SendMouseMove = 9,
SendMouseLeftButton = 10,
SendMouseMiddleButton = 11,
SendMouseRightButton = 12,
SendMouseWheelUp = 13,
SendMouseWheelDown = 14,

// control
SetStatMode = 15,
SetDebugMode = 16,
SetCompatibilityMode = 17,
SetScaleDisplay = 18,
SetImageEncoding = 19,
SetImageQuality = 20,
SetImageQuantity = 21,
RequestFullscreenUpdate = 22,
RequestRemoteClipboard = 23,
CloseRdpClient = 24
}

/*
prefixes (3 chars) are used to serialize commands with strings instead of numbers
they make it easier to read log traces to find out which commands are issued
they must match the prefixes used client side
*/
public static class RemoteSessionCommandMapping
{
public static Hashtable FromPrefix { get; private set; }
public static Hashtable ToPrefix { get; private set; }

static RemoteSessionCommandMapping()
{
FromPrefix = new Hashtable();
FromPrefix["SRV"] = RemoteSessionCommand.SendServerAddress;
FromPrefix["DOM"] = RemoteSessionCommand.SendUserDomain;
FromPrefix["USR"] = RemoteSessionCommand.SendUserName;
FromPrefix["PWD"] = RemoteSessionCommand.SendUserPassword;
FromPrefix["PRG"] = RemoteSessionCommand.SendStartProgram;
FromPrefix["CON"] = RemoteSessionCommand.ConnectRdpClient;
FromPrefix["RSZ"] = RemoteSessionCommand.SendBrowserResize;
FromPrefix["KUC"] = RemoteSessionCommand.SendKeyUnicode;
FromPrefix["KSC"] = RemoteSessionCommand.SendKeyScancode;
FromPrefix["MMO"] = RemoteSessionCommand.SendMouseMove;
FromPrefix["MLB"] = RemoteSessionCommand.SendMouseLeftButton;
FromPrefix["MMB"] = RemoteSessionCommand.SendMouseMiddleButton;
FromPrefix["MRB"] = RemoteSessionCommand.SendMouseRightButton;
FromPrefix["MWU"] = RemoteSessionCommand.SendMouseWheelUp;
FromPrefix["MWD"] = RemoteSessionCommand.SendMouseWheelDown;
FromPrefix["STA"] = RemoteSessionCommand.SetStatMode;
FromPrefix["DBG"] = RemoteSessionCommand.SetDebugMode;
FromPrefix["CMP"] = RemoteSessionCommand.SetCompatibilityMode;
FromPrefix["SCA"] = RemoteSessionCommand.SetScaleDisplay;
FromPrefix["ECD"] = RemoteSessionCommand.SetImageEncoding;
FromPrefix["QLT"] = RemoteSessionCommand.SetImageQuality;
FromPrefix["QNT"] = RemoteSessionCommand.SetImageQuantity;
FromPrefix["FSU"] = RemoteSessionCommand.RequestFullscreenUpdate;
FromPrefix["CLP"] = RemoteSessionCommand.RequestRemoteClipboard;
FromPrefix["CLO"] = RemoteSessionCommand.CloseRdpClient;

ToPrefix = new Hashtable();
ToPrefix[RemoteSessionCommand.SendServerAddress] = "SRV";
ToPrefix[RemoteSessionCommand.SendUserDomain] = "DOM";
ToPrefix[RemoteSessionCommand.SendUserName] = "USR";
ToPrefix[RemoteSessionCommand.SendUserPassword] = "PWD";
ToPrefix[RemoteSessionCommand.SendStartProgram] = "PRG";
ToPrefix[RemoteSessionCommand.ConnectRdpClient] = "CON";
ToPrefix[RemoteSessionCommand.SendBrowserResize] = "RSZ";
ToPrefix[RemoteSessionCommand.SendKeyUnicode] = "KUC";
ToPrefix[RemoteSessionCommand.SendKeyScancode] = "KSC";
ToPrefix[RemoteSessionCommand.SendMouseMove] = "MMO";
ToPrefix[RemoteSessionCommand.SendMouseLeftButton] = "MLB";
ToPrefix[RemoteSessionCommand.SendMouseMiddleButton] = "MMB";
ToPrefix[RemoteSessionCommand.SendMouseRightButton] = "MRB";
ToPrefix[RemoteSessionCommand.SendMouseWheelUp] = "MWU";
ToPrefix[RemoteSessionCommand.SendMouseWheelDown] = "MWD";
ToPrefix[RemoteSessionCommand.SetStatMode] = "STA";
ToPrefix[RemoteSessionCommand.SetDebugMode] = "DBG";
ToPrefix[RemoteSessionCommand.SetCompatibilityMode] = "CMP";
ToPrefix[RemoteSessionCommand.SetScaleDisplay] = "SCA";
ToPrefix[RemoteSessionCommand.SetImageEncoding] = "ECD";
ToPrefix[RemoteSessionCommand.SetImageQuality] = "QLT";
ToPrefix[RemoteSessionCommand.SetImageQuantity] = "QNT";
ToPrefix[RemoteSessionCommand.RequestFullscreenUpdate] = "FSU";
ToPrefix[RemoteSessionCommand.RequestRemoteClipboard] = "CLP";
ToPrefix[RemoteSessionCommand.CloseRdpClient] = "CLO";
}
}
/*
Myrtille: A native HTML4/5 Remote Desktop Protocol client.
Copyright(c) 2014-2018 Cedric Coste
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

using System.Collections;

namespace Myrtille.Helpers
{
public enum RemoteSessionCommand
{
// connection
SendServerAddress = 0,
SendUserDomain = 1,
SendUserName = 2,
SendUserPassword = 3,
SendStartProgram = 4,
ConnectRdpClient = 5,

// browser
SendBrowserResize = 6,

// keyboard
SendKeyUnicode = 7,
SendKeyScancode = 8,

// mouse
SendMouseMove = 9,
SendMouseLeftButton = 10,
SendMouseMiddleButton = 11,
SendMouseRightButton = 12,
SendMouseWheelUp = 13,
SendMouseWheelDown = 14,

// control
SetStatMode = 15,
SetDebugMode = 16,
SetCompatibilityMode = 17,
SetScaleDisplay = 18,
SetImageEncoding = 19,
SetImageQuality = 20,
SetImageQuantity = 21,
RequestFullscreenUpdate = 22,
RequestRemoteClipboard = 23,
CloseRdpClient = 24
}

/*
prefixes (3 chars) are used to serialize commands with strings instead of numbers
they make it easier to read log traces to find out which commands are issued
they must match the prefixes used client side
*/
public static class RemoteSessionCommandMapping
{
public static Hashtable FromPrefix { get; private set; }
public static Hashtable ToPrefix { get; private set; }

static RemoteSessionCommandMapping()
{
FromPrefix = new Hashtable();
FromPrefix["SRV"] = RemoteSessionCommand.SendServerAddress;
FromPrefix["DOM"] = RemoteSessionCommand.SendUserDomain;
FromPrefix["USR"] = RemoteSessionCommand.SendUserName;
FromPrefix["PWD"] = RemoteSessionCommand.SendUserPassword;
FromPrefix["PRG"] = RemoteSessionCommand.SendStartProgram;
FromPrefix["CON"] = RemoteSessionCommand.ConnectRdpClient;
FromPrefix["RSZ"] = RemoteSessionCommand.SendBrowserResize;
FromPrefix["KUC"] = RemoteSessionCommand.SendKeyUnicode;
FromPrefix["KSC"] = RemoteSessionCommand.SendKeyScancode;
FromPrefix["MMO"] = RemoteSessionCommand.SendMouseMove;
FromPrefix["MLB"] = RemoteSessionCommand.SendMouseLeftButton;
FromPrefix["MMB"] = RemoteSessionCommand.SendMouseMiddleButton;
FromPrefix["MRB"] = RemoteSessionCommand.SendMouseRightButton;
FromPrefix["MWU"] = RemoteSessionCommand.SendMouseWheelUp;
FromPrefix["MWD"] = RemoteSessionCommand.SendMouseWheelDown;
FromPrefix["STA"] = RemoteSessionCommand.SetStatMode;
FromPrefix["DBG"] = RemoteSessionCommand.SetDebugMode;
FromPrefix["CMP"] = RemoteSessionCommand.SetCompatibilityMode;
FromPrefix["SCA"] = RemoteSessionCommand.SetScaleDisplay;
FromPrefix["ECD"] = RemoteSessionCommand.SetImageEncoding;
FromPrefix["QLT"] = RemoteSessionCommand.SetImageQuality;
FromPrefix["QNT"] = RemoteSessionCommand.SetImageQuantity;
FromPrefix["FSU"] = RemoteSessionCommand.RequestFullscreenUpdate;
FromPrefix["CLP"] = RemoteSessionCommand.RequestRemoteClipboard;
FromPrefix["CLO"] = RemoteSessionCommand.CloseRdpClient;

ToPrefix = new Hashtable();
ToPrefix[RemoteSessionCommand.SendServerAddress] = "SRV";
ToPrefix[RemoteSessionCommand.SendUserDomain] = "DOM";
ToPrefix[RemoteSessionCommand.SendUserName] = "USR";
ToPrefix[RemoteSessionCommand.SendUserPassword] = "PWD";
ToPrefix[RemoteSessionCommand.SendStartProgram] = "PRG";
ToPrefix[RemoteSessionCommand.ConnectRdpClient] = "CON";
ToPrefix[RemoteSessionCommand.SendBrowserResize] = "RSZ";
ToPrefix[RemoteSessionCommand.SendKeyUnicode] = "KUC";
ToPrefix[RemoteSessionCommand.SendKeyScancode] = "KSC";
ToPrefix[RemoteSessionCommand.SendMouseMove] = "MMO";
ToPrefix[RemoteSessionCommand.SendMouseLeftButton] = "MLB";
ToPrefix[RemoteSessionCommand.SendMouseMiddleButton] = "MMB";
ToPrefix[RemoteSessionCommand.SendMouseRightButton] = "MRB";
ToPrefix[RemoteSessionCommand.SendMouseWheelUp] = "MWU";
ToPrefix[RemoteSessionCommand.SendMouseWheelDown] = "MWD";
ToPrefix[RemoteSessionCommand.SetStatMode] = "STA";
ToPrefix[RemoteSessionCommand.SetDebugMode] = "DBG";
ToPrefix[RemoteSessionCommand.SetCompatibilityMode] = "CMP";
ToPrefix[RemoteSessionCommand.SetScaleDisplay] = "SCA";
ToPrefix[RemoteSessionCommand.SetImageEncoding] = "ECD";
ToPrefix[RemoteSessionCommand.SetImageQuality] = "QLT";
ToPrefix[RemoteSessionCommand.SetImageQuantity] = "QNT";
ToPrefix[RemoteSessionCommand.RequestFullscreenUpdate] = "FSU";
ToPrefix[RemoteSessionCommand.RequestRemoteClipboard] = "CLP";
ToPrefix[RemoteSessionCommand.CloseRdpClient] = "CLO";
}
}
}
1 change: 1 addition & 0 deletions Myrtille.Common/Myrtille.Common.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
<Compile Include="PdfScribe\PdfScribeInstaller.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Helpers\AccountHelper.cs" />
<Compile Include="Helpers\RemoteSessionCommand.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
Expand Down
4 changes: 2 additions & 2 deletions Myrtille.Common/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,5 @@
//
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de révision et de build par défaut
// en utilisant '*', comme indiqué ci-dessous :
[assembly: AssemblyVersion("1.9.1.0")]
[assembly: AssemblyFileVersion("1.9.1.0")]
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.0.0")]
Loading

0 comments on commit 042aaaf

Please sign in to comment.