From eaf4e75b5c0c1e967b5a3c3f6d60bb5c0d210f90 Mon Sep 17 00:00:00 2001 From: Peter Kurfer Date: Wed, 2 Feb 2022 14:29:11 +0100 Subject: [PATCH] Support network monitor details --- api/proto/audit/v1/event_entity.proto | 2 ++ api/proto/audit/v1/netmon_details.proto | 8 ++++++++ src/INetMock.Client/Audit/Details.cs | 10 ++++++++++ src/INetMock.Client/Audit/Event.cs | 2 ++ src/INetMock.Client/INetMock.Client.csproj | 10 ++-------- .../Audit/Serialization/GenericReaderTest.cs | 1 + .../testdata/test3.ima | Bin 0 -> 429 bytes 7 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 api/proto/audit/v1/netmon_details.proto create mode 100644 tests/INetMock.Client.IntegrationTest/testdata/test3.ima diff --git a/api/proto/audit/v1/event_entity.proto b/api/proto/audit/v1/event_entity.proto index d0b09bd..1a5d3bd 100644 --- a/api/proto/audit/v1/event_entity.proto +++ b/api/proto/audit/v1/event_entity.proto @@ -6,6 +6,7 @@ import "google/protobuf/timestamp.proto"; import "audit/v1/http_details.proto"; import "audit/v1/dns_details.proto"; import "audit/v1/dhcp_details.proto"; +import "audit/v1/netmon_details.proto"; enum TransportProtocol { TRANSPORT_PROTOCOL_UNSPECIFIED = 0; @@ -52,5 +53,6 @@ message EventEntity { HTTPDetailsEntity http = 20; DNSDetailsEntity dns = 21; DHCPDetailsEntity dhcp = 22; + NetMonDetailsEntity net_mon = 23; } } diff --git a/api/proto/audit/v1/netmon_details.proto b/api/proto/audit/v1/netmon_details.proto new file mode 100644 index 0000000..7cb2d60 --- /dev/null +++ b/api/proto/audit/v1/netmon_details.proto @@ -0,0 +1,8 @@ + +syntax = "proto3"; + +package inetmock.audit.v1; + +message NetMonDetailsEntity { + string reverse_resolved_host = 1; +} diff --git a/src/INetMock.Client/Audit/Details.cs b/src/INetMock.Client/Audit/Details.cs index d5dea8c..0095d03 100644 --- a/src/INetMock.Client/Audit/Details.cs +++ b/src/INetMock.Client/Audit/Details.cs @@ -51,3 +51,13 @@ public record DhcpDetails() : EventDetails public DHCPOpCode OpCode { get; init; } = DHCPOpCode.Unspecified; public DHCPHwType HardwareType { get; init; } = DHCPHwType.Unspecified; } + +public record NetMonDetails() : EventDetails +{ + public NetMonDetails(NetMonDetailsEntity entity) : this() + { + ReverseResolvedHost = entity.ReverseResolvedHost; + } + + public string ReverseResolvedHost { get; init; } = string.Empty; +} diff --git a/src/INetMock.Client/Audit/Event.cs b/src/INetMock.Client/Audit/Event.cs index 724119d..646d892 100644 --- a/src/INetMock.Client/Audit/Event.cs +++ b/src/INetMock.Client/Audit/Event.cs @@ -57,6 +57,7 @@ public record Event : EventBase EventEntity.ProtocolDetailsOneofCase.Http => new HttpDetails(entity.Http), EventEntity.ProtocolDetailsOneofCase.Dns => new DnsDetails(entity.Dns), EventEntity.ProtocolDetailsOneofCase.Dhcp => new DhcpDetails(entity.Dhcp), + EventEntity.ProtocolDetailsOneofCase.NetMon => new NetMonDetails(entity.NetMon), _ => null }; } @@ -80,6 +81,7 @@ public record Event : EventBase where T : EventDetails, new() EventEntity.ProtocolDetailsOneofCase.Http => new HttpDetails(entity.Http) as T, EventEntity.ProtocolDetailsOneofCase.Dns => new DnsDetails(entity.Dns) as T, EventEntity.ProtocolDetailsOneofCase.Dhcp => new DhcpDetails(entity.Dhcp) as T, + EventEntity.ProtocolDetailsOneofCase.NetMon => new NetMonDetails(entity.NetMon) as T, _ => null }; } diff --git a/src/INetMock.Client/INetMock.Client.csproj b/src/INetMock.Client/INetMock.Client.csproj index 2dc98c4..9aaf04f 100644 --- a/src/INetMock.Client/INetMock.Client.csproj +++ b/src/INetMock.Client/INetMock.Client.csproj @@ -18,13 +18,7 @@ - - - - - - - - + + diff --git a/tests/INetMock.Client.IntegrationTest/Audit/Serialization/GenericReaderTest.cs b/tests/INetMock.Client.IntegrationTest/Audit/Serialization/GenericReaderTest.cs index 6c960ff..d82dadf 100644 --- a/tests/INetMock.Client.IntegrationTest/Audit/Serialization/GenericReaderTest.cs +++ b/tests/INetMock.Client.IntegrationTest/Audit/Serialization/GenericReaderTest.cs @@ -11,6 +11,7 @@ public class GenericReaderTest [Theory] [InlineData("test.ima")] [InlineData("test2.ima")] + [InlineData("test3.ima")] public async Task Test_ReadAllAsync_AuditFile(string testFile) { await using var auditFileStream = File.OpenRead(Path.Join("testdata", testFile)); diff --git a/tests/INetMock.Client.IntegrationTest/testdata/test3.ima b/tests/INetMock.Client.IntegrationTest/testdata/test3.ima new file mode 100644 index 0000000000000000000000000000000000000000..7fd2eff0beee0c9d3f3f415d255b106bdf323bee GIT binary patch literal 429 zcmZQzU~u7RIMDFp@!S>HkPH-=d4rp^Fh_&X09ab3TF1=~{Ma zITIH5pqYc>9%qohjxCxGat}AhFR(eA7OdsOVvGx_b1;pWwh3y?Z?G{PhqsbtOxr`K OG5^5EJleC7Bx3+iL5+F< literal 0 HcmV?d00001