Reduces error log messages from SSH client on basic disconnects

This commit is contained in:
Alex Johnson
2022-07-07 10:51:37 -04:00
parent 095e6c8d79
commit f135029ad6
2 changed files with 18 additions and 7 deletions

View File

@@ -66,6 +66,7 @@ namespace PepperDash.Core
} }
private bool IsConnecting = false; private bool IsConnecting = false;
private bool DisconnectLogged = false;
/// <summary> /// <summary>
/// S+ helper for IsConnected /// S+ helper for IsConnected
@@ -251,24 +252,28 @@ namespace PepperDash.Core
Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Connected"); Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Connected");
ClientStatus = SocketStatus.SOCKET_STATUS_CONNECTED; ClientStatus = SocketStatus.SOCKET_STATUS_CONNECTED;
IsConnecting = false; IsConnecting = false;
DisconnectLogged = false;
return; // Success will not pass here return; // Success will not pass here
} }
catch (SshConnectionException e) catch (SshConnectionException e)
{ {
var ie = e.InnerException; // The details are inside!! var ie = e.InnerException; // The details are inside!!
var errorLogLevel = DisconnectLogged == true ? Debug.ErrorLogLevel.None : Debug.ErrorLogLevel.Error;
if (ie is SocketException) if (ie is SocketException)
Debug.Console(1, this, Debug.ErrorLogLevel.Error, "'{0}' CONNECTION failure: Cannot reach host, ({1})", Key, ie.Message); Debug.Console(1, this, errorLogLevel, "'{0}' CONNECTION failure: Cannot reach host, ({1})", Key, ie.Message);
else if (ie is System.Net.Sockets.SocketException) else if (ie is System.Net.Sockets.SocketException)
Debug.Console(1, this, Debug.ErrorLogLevel.Error, "'{0}' Connection failure: Cannot reach host '{1}' on port {2}, ({3})", Debug.Console(1, this, errorLogLevel, "'{0}' Connection failure: Cannot reach host '{1}' on port {2}, ({3})",
Key, Hostname, Port, ie.GetType()); Key, Hostname, Port, ie.GetType());
else if (ie is SshAuthenticationException) else if (ie is SshAuthenticationException)
{ {
Debug.Console(1, this, Debug.ErrorLogLevel.Error, "Authentication failure for username '{0}', ({1})", Debug.Console(1, this, errorLogLevel, "Authentication failure for username '{0}', ({1})",
Username, ie.Message); Username, ie.Message);
} }
else else
Debug.Console(1, this, Debug.ErrorLogLevel.Error, "Error on connect:\r({0})", e); Debug.Console(1, this, errorLogLevel, "Error on connect:\r({0})", e);
DisconnectLogged = true;
ClientStatus = SocketStatus.SOCKET_STATUS_CONNECT_FAILED; ClientStatus = SocketStatus.SOCKET_STATUS_CONNECT_FAILED;
HandleConnectionFailure(); HandleConnectionFailure();
} }
@@ -335,7 +340,7 @@ namespace PepperDash.Core
{ {
Connect(); Connect();
}, AutoReconnectIntervalMs); }, AutoReconnectIntervalMs);
Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Attempting connection in {0} seconds", Debug.Console(1, this, "Attempting connection in {0} seconds",
(float) (AutoReconnectIntervalMs/1000)); (float) (AutoReconnectIntervalMs/1000));
} }
else else

View File

@@ -389,7 +389,10 @@ namespace PepperDash.Core
string format, params object[] items) string format, params object[] items)
{ {
var str = string.Format("[{0}] {1}", dev.Key, string.Format(format, items)); var str = string.Format("[{0}] {1}", dev.Key, string.Format(format, items));
LogError(errorLogLevel, str); if (errorLogLevel != ErrorLogLevel.None)
{
LogError(errorLogLevel, str);
}
if (Level >= level) if (Level >= level)
{ {
Console(level, str); Console(level, str);
@@ -403,7 +406,10 @@ namespace PepperDash.Core
string format, params object[] items) string format, params object[] items)
{ {
var str = string.Format(format, items); var str = string.Format(format, items);
LogError(errorLogLevel, str); if (errorLogLevel != ErrorLogLevel.None)
{
LogError(errorLogLevel, str);
}
if (Level >= level) if (Level >= level)
{ {
Console(level, str); Console(level, str);