added a few try/catch blocks around some rdp code. related to #853

This commit is contained in:
David Sparer
2018-09-30 10:44:22 -05:00
parent 44ed836b7c
commit e029f30acf
3 changed files with 53 additions and 12 deletions

View File

@@ -316,10 +316,19 @@ namespace mRemoteNG.Connection.Protocol.RDP
return;
}
var size = !Fullscreen ? Control.Size : Screen.FromControl(Control).Bounds.Size;
try
{
Runtime.MessageCollector.AddMessage(MessageClass.DebugMsg, $"Resizing RDP connection to host '{_connectionInfo.Hostname}'");
var size = !Fullscreen ? Control.Size : Screen.FromControl(Control).Bounds.Size;
IMsRdpClient8 msRdpClient8 = _rdpClient;
msRdpClient8.Reconnect((uint)size.Width, (uint)size.Height);
IMsRdpClient8 msRdpClient8 = _rdpClient;
msRdpClient8.Reconnect((uint)size.Width, (uint)size.Height);
}
catch (Exception ex)
{
Runtime.MessageCollector.AddExceptionMessage(string.Format(Language.ChangeConnectionResolutionError, _connectionInfo.Hostname),
ex, MessageClass.WarningMsg, false);
}
}
private void SetRdGateway()
@@ -916,17 +925,25 @@ namespace mRemoteNG.Connection.Protocol.RDP
#region Reconnect Stuff
public void tmrReconnect_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
var srvReady = PortScanner.IsPortOpen(_connectionInfo.Hostname, Convert.ToString(_connectionInfo.Port));
try
{
var srvReady = PortScanner.IsPortOpen(_connectionInfo.Hostname, Convert.ToString(_connectionInfo.Port));
ReconnectGroup.ServerReady = srvReady;
ReconnectGroup.ServerReady = srvReady;
if (ReconnectGroup.ReconnectWhenReady && srvReady)
{
tmrReconnect.Enabled = false;
ReconnectGroup.DisposeReconnectGroup();
//SetProps()
_rdpClient.Connect();
}
if (ReconnectGroup.ReconnectWhenReady && srvReady)
{
tmrReconnect.Enabled = false;
ReconnectGroup.DisposeReconnectGroup();
//SetProps()
_rdpClient.Connect();
}
}
catch (Exception ex)
{
Runtime.MessageCollector.AddExceptionMessage(string.Format(Language.AutomaticReconnectError, _connectionInfo.Hostname),
ex, MessageClass.WarningMsg, false);
}
}
#endregion
}

View File

@@ -60,6 +60,24 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to An error occurred while trying to reconnect to RDP host &apos;{0}&apos;.
/// </summary>
internal static string AutomaticReconnectError {
get {
return ResourceManager.GetString("AutomaticReconnectError", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to An error occurred while trying to change the connection resolution to host &apos;{0}&apos;.
/// </summary>
internal static string ChangeConnectionResolutionError {
get {
return ResourceManager.GetString("ChangeConnectionResolutionError", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Create a New Connection File.
/// </summary>

View File

@@ -2694,4 +2694,10 @@ This page will walk you through the process of upgrading your connections file o
<data name="strUltraVNCSingleClick" xml:space="preserve">
<value>UltraVNC SingleClick</value>
</data>
<data name="AutomaticReconnectError" xml:space="preserve">
<value>An error occurred while trying to reconnect to RDP host '{0}'</value>
</data>
<data name="ChangeConnectionResolutionError" xml:space="preserve">
<value>An error occurred while trying to change the connection resolution to host '{0}'</value>
</data>
</root>