From: Forest Date: Thu, 1 Apr 2021 20:27:34 +0000 (-0700) Subject: Add a verbose mode to logging, place some of the noisiest DTLS logs in verbose X-Git-Tag: 1.0.0~10 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=bb382b2e1a5d4d9f49ecc175615466e42beb393d;p=rhonda%2Fimpostor.hazel.git Add a verbose mode to logging, place some of the noisiest DTLS logs in verbose --- diff --git a/Hazel.UnitTests/TestLogger.cs b/Hazel.UnitTests/TestLogger.cs index 2e76e8d..a6cd0fb 100644 --- a/Hazel.UnitTests/TestLogger.cs +++ b/Hazel.UnitTests/TestLogger.cs @@ -15,6 +15,18 @@ namespace Hazel.UnitTests this.prefix = prefix; } + public void WriteVerbose(string msg) + { + if (string.IsNullOrEmpty(this.prefix)) + { + Console.WriteLine($"[VERBOSE] {msg}"); + } + else + { + Console.WriteLine($"[{this.prefix}][VERBOSE] {msg}"); + } + } + public void WriteError(string msg) { if (string.IsNullOrEmpty(this.prefix)) diff --git a/Hazel.UnitTests/ThreadLimitedUdpConnectionTests.cs b/Hazel.UnitTests/ThreadLimitedUdpConnectionTests.cs index 3f77275..a65355c 100644 --- a/Hazel.UnitTests/ThreadLimitedUdpConnectionTests.cs +++ b/Hazel.UnitTests/ThreadLimitedUdpConnectionTests.cs @@ -233,7 +233,7 @@ namespace Hazel.UnitTests public void MixedConnectionTest() { - using (ThreadLimitedUdpConnectionListener listener2 = this.CreateListener(4, new IPEndPoint(IPAddress.IPv6Any, 4296), new ConsoleLogger(), IPMode.IPv6)) + using (ThreadLimitedUdpConnectionListener listener2 = this.CreateListener(4, new IPEndPoint(IPAddress.IPv6Any, 4296), new ConsoleLogger(true), IPMode.IPv6)) { listener2.Start(); diff --git a/Hazel.UnitTests/UPnPTests.cs b/Hazel.UnitTests/UPnPTests.cs index dfe80fe..44f6aea 100644 --- a/Hazel.UnitTests/UPnPTests.cs +++ b/Hazel.UnitTests/UPnPTests.cs @@ -30,6 +30,11 @@ namespace Hazel.UnitTests { public static readonly ILogger Instance = new Logger(); + public void WriteVerbose(string msg) + { + Console.WriteLine(msg); + } + public void WriteError(string msg) { Console.WriteLine(msg); diff --git a/Hazel/Dtls/DtlsConnectionListener.cs b/Hazel/Dtls/DtlsConnectionListener.cs index 69d01aa..330fd73 100644 --- a/Hazel/Dtls/DtlsConnectionListener.cs +++ b/Hazel/Dtls/DtlsConnectionListener.cs @@ -318,7 +318,7 @@ namespace Hazel.Dtls } else if (handshake.MessageType != HandshakeType.ClientHello) { - this.Logger.WriteError($"Dropping non-ClientHello re-negotiation Handshake from `{peerAddress}`"); + this.Logger.WriteVerbose($"Dropping non-ClientHello re-negotiation Handshake from `{peerAddress}`"); continue; } else if (handshakePayload.Length < handshake.Length) @@ -333,7 +333,7 @@ namespace Hazel.Dtls continue; } - this.Logger.WriteError($"Dropping bad-epoch record from `{peerAddress}` RecordEpoch({record.Epoch}) CurrentEpoch({peer.Epoch})"); + this.Logger.WriteVerbose($"Dropping bad-epoch record from `{peerAddress}` RecordEpoch({record.Epoch}) CurrentEpoch({peer.Epoch})"); continue; } @@ -368,7 +368,7 @@ namespace Hazel.Dtls if (!peer.CurrentEpoch.RecordProtection.DecryptCiphertextFromClient(decryptedPayload, recordPayload, ref record)) { - this.Logger.WriteError($"Dropping non-authentic record from `{peerAddress}`"); + this.Logger.WriteVerbose($"Dropping non-authentic record from `{peerAddress}`"); return; } diff --git a/Hazel/UPnP/ILogger.cs b/Hazel/UPnP/ILogger.cs index 0bfb2df..84f2cc0 100644 --- a/Hazel/UPnP/ILogger.cs +++ b/Hazel/UPnP/ILogger.cs @@ -8,6 +8,7 @@ namespace Hazel { public interface ILogger { + void WriteVerbose(string msg); void WriteError(string msg); void WriteInfo(string msg); } @@ -16,6 +17,10 @@ namespace Hazel { public static readonly NullLogger Instance = new NullLogger(); + public void WriteVerbose(string msg) + { + } + public void WriteError(string msg) { } @@ -27,6 +32,20 @@ namespace Hazel public class ConsoleLogger : ILogger { + private bool verbose; + public ConsoleLogger(bool verbose) + { + this.verbose = verbose; + } + + public void WriteVerbose(string msg) + { + if (this.verbose) + { + Console.WriteLine($"{DateTime.Now} [VERBOSE] {msg}"); + } + } + public void WriteError(string msg) { Console.WriteLine($"{DateTime.Now} [ERROR] {msg}");