diff --git a/src/IPMeow.Lib/Host/Host.cs b/src/IPMeow.Lib/Host/Host.cs index 2d55843..2559542 100644 --- a/src/IPMeow.Lib/Host/Host.cs +++ b/src/IPMeow.Lib/Host/Host.cs @@ -8,8 +8,7 @@ public class Host : IBindable { [Key] public required string Id { get; set; } - [MaxLength(16)] - public byte[] Duid { get; set; } = default!; + public Int128 Duid { get; set; } public HostType HostType { get; set; } public required IPAddressCollection Addresses { get; set; } public required MacAddress Mac { get; set; } diff --git a/src/IPMeow.Lib/Host/HostInterface.cs b/src/IPMeow.Lib/Host/HostInterface.cs index 5b98788..747e96e 100644 --- a/src/IPMeow.Lib/Host/HostInterface.cs +++ b/src/IPMeow.Lib/Host/HostInterface.cs @@ -2,11 +2,20 @@ using System.ComponentModel.DataAnnotations; namespace IPMeow.Lib.Host; +public enum HostInterfaceType +{ + Ethernet, + Infiniband, + Wireless, + Virtual +} + public class HostInterface { [Key] public required string Id { get; set; } public byte[] IAID { get; set; } = default!; + public HostInterfaceType InterfaceType { get; set; } public DateTime LastPinged { get; set; } public DateTime LastAssignment { get; set; } diff --git a/test/IPMeow.Test/DnsTest.cs b/test/IPMeow.Test/DnsTest.cs index 5ba84d4..4639b44 100644 --- a/test/IPMeow.Test/DnsTest.cs +++ b/test/IPMeow.Test/DnsTest.cs @@ -13,6 +13,9 @@ public class DnsTest [Fact] public async Task TestDns() { + using UdpClient udp = new UdpClient(AddressFamily.InterNetwork); + udp.Connect(IPAddress.Parse("1.1.1.1"), 53); + DnsMessage msg = new() { IsRecursionDesired = true, @@ -32,24 +35,14 @@ public class DnsTest ResponseCode = 0, }; - await Send(msg); - Console.WriteLine("sendt"); - - msg.IsRecursionDesired = false; - msg.IsAuthoritative = false; - msg.MessageType = DnsMessageType.Reply; - msg.Opcode = DnsMessageOpcode.Status; - msg.ResponseCode = DnsResponseCode.NxDomain; - - await Send(msg); - } - - private async Task Send(DnsMessage msg) - { var data = msg.Serialize(); - - using UdpClient udp = new UdpClient(AddressFamily.InterNetwork); - udp.Connect(IPAddress.Parse("1.1.1.1"), 53); await udp.SendAsync(data); + + var rec = await udp.ReceiveAsync(); + + var res = DnsMessage.Deserialize(rec.Buffer); + + Assert.Equal(DnsMessageType.Reply, res.MessageType); + Assert.Equal(0xbabe, res.MessageId); } }