瀏覽代碼

style: Update code style

Bruce Wayne 3 年之前
父節點
當前提交
1547786e7e

+ 10 - 9
NatTypeTester-Console/Program.cs

@@ -1,14 +1,15 @@
 using Dns.Net.Clients;
 using STUN;
 using STUN.Client;
+using STUN.StunResult;
 using System.Net;
 
 //stun.qq.com:3478 0.0.0.0:0
-var server = @"stun.syncthing.net";
+string server = @"stun.syncthing.net";
 ushort port = 3478;
-var local = new IPEndPoint(IPAddress.Any, 0);
+IPEndPoint local = new(IPAddress.Any, 0);
 
-if (args.Length > 0 && StunServer.TryParse(args[0], out var stun))
+if (args.Length > 0 && StunServer.TryParse(args[0], out StunServer? stun))
 {
 	server = stun.Hostname;
 	port = stun.Port;
@@ -16,21 +17,21 @@ if (args.Length > 0 && StunServer.TryParse(args[0], out var stun))
 
 if (args.Length > 1)
 {
-	if (IPEndPoint.TryParse(args[2], out var ipEndPoint))
+	if (IPEndPoint.TryParse(args[2], out IPEndPoint? ipEndPoint))
 	{
 		local = ipEndPoint;
 	}
 }
 
-var dnsClient = new DefaultDnsClient();
-var ip = await dnsClient.QueryAsync(server);
-using var client = new StunClient5389UDP(new IPEndPoint(ip, port), local);
+DefaultDnsClient dnsClient = new();
+IPAddress ip = await dnsClient.QueryAsync(server);
+using StunClient5389UDP client = new(new IPEndPoint(ip, port), local);
 
-using var cts = new CancellationTokenSource();
+using CancellationTokenSource cts = new();
 cts.CancelAfter(TimeSpan.FromSeconds(5));
 await client.QueryAsync(cts.Token);
 
-var res = client.State;
+StunResult5389 res = client.State;
 
 Console.WriteLine($@"Other address is {res.OtherEndPoint}");
 Console.WriteLine($@"Binding test: {res.BindingTestResult}");

+ 3 - 3
NatTypeTester.ViewModels/MainWindowViewModel.cs

@@ -42,7 +42,7 @@ public class MainWindowViewModel : ViewModelBase, IScreen
 
 	public void LoadStunServer()
 	{
-		foreach (var server in _defaultServers)
+		foreach (string? server in _defaultServers)
 		{
 			List.Add(server);
 		}
@@ -58,9 +58,9 @@ public class MainWindowViewModel : ViewModelBase, IScreen
 				return;
 			}
 
-			foreach (var line in File.ReadLines(path))
+			foreach (string? line in File.ReadLines(path))
 			{
-				if (!string.IsNullOrWhiteSpace(line) && StunServer.TryParse(line, out var stun))
+				if (!string.IsNullOrWhiteSpace(line) && StunServer.TryParse(line, out StunServer? stun))
 				{
 					List.Add(stun.ToString());
 				}

+ 6 - 6
NatTypeTester.ViewModels/RFC3489ViewModel.cs

@@ -42,14 +42,14 @@ public class RFC3489ViewModel : ViewModelBase, IRoutableViewModel
 
 	private async Task TestClassicNatTypeAsync(CancellationToken token)
 	{
-		Verify.Operation(StunServer.TryParse(Config.StunServer, out var server), @"Wrong STUN Server!");
+		Verify.Operation(StunServer.TryParse(Config.StunServer, out StunServer? server), @"Wrong STUN Server!");
 
-		if (!HostnameEndpoint.TryParse(Config.ProxyServer, out var proxyIpe))
+		if (!HostnameEndpoint.TryParse(Config.ProxyServer, out HostnameEndpoint? proxyIpe))
 		{
 			throw new NotSupportedException(@"Unknown proxy address");
 		}
 
-		var socks5Option = new Socks5CreateOption
+		Socks5CreateOption socks5Option = new()
 		{
 			Address = await DnsClient.QueryAsync(proxyIpe.Hostname, token),
 			Port = proxyIpe.Port,
@@ -61,10 +61,10 @@ public class RFC3489ViewModel : ViewModelBase, IRoutableViewModel
 		};
 
 		Result3489.LocalEndPoint ??= DefaultLocalEndpoint;
-		using var proxy = ProxyFactory.CreateProxy(Config.ProxyType, Result3489.LocalEndPoint, socks5Option);
+		using IUdpProxy proxy = ProxyFactory.CreateProxy(Config.ProxyType, Result3489.LocalEndPoint, socks5Option);
 
-		var ip = await DnsClient.QueryAsync(server.Hostname, token);
-		using var client = new StunClient3489(new IPEndPoint(ip, server.Port), Result3489.LocalEndPoint, proxy);
+		IPAddress ip = await DnsClient.QueryAsync(server.Hostname, token);
+		using StunClient3489 client = new(new IPEndPoint(ip, server.Port), Result3489.LocalEndPoint, proxy);
 
 		Result3489 = client.State;
 		using (Observable.Interval(TimeSpan.FromSeconds(0.1))

+ 8 - 8
NatTypeTester.ViewModels/RFC5780ViewModel.cs

@@ -39,14 +39,14 @@ public class RFC5780ViewModel : ViewModelBase, IRoutableViewModel
 
 	private async Task DiscoveryNatTypeAsync(CancellationToken token)
 	{
-		Verify.Operation(StunServer.TryParse(Config.StunServer, out var server), @"Wrong STUN Server!");
+		Verify.Operation(StunServer.TryParse(Config.StunServer, out StunServer? server), @"Wrong STUN Server!");
 
-		if (!HostnameEndpoint.TryParse(Config.ProxyServer, out var proxyIpe))
+		if (!HostnameEndpoint.TryParse(Config.ProxyServer, out HostnameEndpoint? proxyIpe))
 		{
 			throw new NotSupportedException(@"Unknown proxy address");
 		}
 
-		var socks5Option = new Socks5CreateOption
+		Socks5CreateOption socks5Option = new()
 		{
 			Address = await DnsClient.QueryAsync(proxyIpe.Hostname, token),
 			Port = proxyIpe.Port,
@@ -58,15 +58,15 @@ public class RFC5780ViewModel : ViewModelBase, IRoutableViewModel
 		};
 
 		Result5389.LocalEndPoint ??= DefaultLocalEndpoint;
-		using var proxy = ProxyFactory.CreateProxy(Config.ProxyType, Result5389.LocalEndPoint, socks5Option);
+		using IUdpProxy proxy = ProxyFactory.CreateProxy(Config.ProxyType, Result5389.LocalEndPoint, socks5Option);
 
-		var ip = await DnsClient.QueryAsync(server.Hostname, token);
-		using var client = new StunClient5389UDP(new IPEndPoint(ip, server.Port), Result5389.LocalEndPoint, proxy);
+		IPAddress ip = await DnsClient.QueryAsync(server.Hostname, token);
+		using StunClient5389UDP client = new(new IPEndPoint(ip, server.Port), Result5389.LocalEndPoint, proxy);
 
 		Result5389 = client.State;
 		using (Observable.Interval(TimeSpan.FromSeconds(0.1))
-				   .ObserveOn(RxApp.MainThreadScheduler)
-				   .Subscribe(_ => this.RaisePropertyChanged(nameof(Result5389))))
+				.ObserveOn(RxApp.MainThreadScheduler)
+				.Subscribe(_ => this.RaisePropertyChanged(nameof(Result5389))))
 		{
 			await client.ConnectProxyAsync(token);
 			try

+ 1 - 1
NatTypeTester.ViewModels/ValueConverters/StringToIPEndpointTypeConverter.cs

@@ -28,7 +28,7 @@ public class StringToIPEndpointTypeConverter : IBindingTypeConverter, ISingleton
 	{
 		if (toType == typeof(IPEndPoint) && from is string str)
 		{
-			if (IPEndPoint.TryParse(str, out var ipe))
+			if (IPEndPoint.TryParse(str, out IPEndPoint? ipe))
 			{
 				result = ipe;
 				return true;

+ 1 - 1
NatTypeTester/App.xaml.cs

@@ -34,7 +34,7 @@ public partial class App
 
 	protected override async void OnExit(ExitEventArgs e)
 	{
-		_application.Shutdown();
+		await _application.ShutdownAsync();
 		await _host.StopAsync();
 		_host.Dispose();
 	}

+ 1 - 1
NatTypeTester/Utils/Extensions.cs

@@ -6,7 +6,7 @@ public static class Extensions
 {
 	public static async Task HandleExceptionWithContentDialogAsync(this Exception ex)
 	{
-		using var dialog = new DisposableContentDialog
+		using DisposableContentDialog dialog = new()
 		{
 			Title = nameof(NatTypeTester),
 			Content = ex.Message,

+ 1 - 1
NatTypeTester/Views/SettingView.xaml.cs

@@ -29,7 +29,7 @@ public partial class SettingView : ITransientDependency
 				type => (int)type,
 				index =>
 				{
-					var type = (ProxyType)index;
+					ProxyType type = (ProxyType)index;
 					ProxyConfigGrid.IsEnabled = type is not ProxyType.Plain;
 					return type;
 				}).DisposeWith(d);

+ 20 - 20
STUN/Client/StunClient3489.cs

@@ -41,7 +41,7 @@ public class StunClient3489 : IStunClient
 
 	public async ValueTask ConnectProxyAsync(CancellationToken cancellationToken = default)
 	{
-		using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
+		using CancellationTokenSource cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
 		cts.CancelAfter(ReceiveTimeout);
 
 		await _proxy.ConnectAsync(cts.Token);
@@ -57,7 +57,7 @@ public class StunClient3489 : IStunClient
 		State.Reset();
 
 		// test I
-		var response1 = await Test1Async(cancellationToken);
+		StunResponse? response1 = await Test1Async(cancellationToken);
 		if (response1 is null)
 		{
 			State.NatType = NatType.UdpBlocked;
@@ -66,8 +66,8 @@ public class StunClient3489 : IStunClient
 
 		State.LocalEndPoint = new IPEndPoint(response1.LocalAddress, LocalEndPoint.Port);
 
-		var mappedAddress1 = response1.Message.GetMappedAddressAttribute();
-		var changedAddress = response1.Message.GetChangedAddressAttribute();
+		IPEndPoint? mappedAddress1 = response1.Message.GetMappedAddressAttribute();
+		IPEndPoint? changedAddress = response1.Message.GetChangedAddressAttribute();
 
 		State.PublicEndPoint = mappedAddress1; // 显示 test I 得到的映射地址
 
@@ -81,8 +81,8 @@ public class StunClient3489 : IStunClient
 		}
 
 		// test II
-		var response2 = await Test2Async(changedAddress, cancellationToken);
-		var mappedAddress2 = response2?.Message.GetMappedAddressAttribute();
+		StunResponse? response2 = await Test2Async(changedAddress, cancellationToken);
+		IPEndPoint? mappedAddress2 = response2?.Message.GetMappedAddressAttribute();
 
 		if (response2 is not null)
 		{
@@ -121,8 +121,8 @@ public class StunClient3489 : IStunClient
 		}
 
 		// Test I(#2)
-		var response12 = await Test1_2Async(changedAddress, cancellationToken);
-		var mappedAddress12 = response12?.Message.GetMappedAddressAttribute();
+		StunResponse? response12 = await Test1_2Async(changedAddress, cancellationToken);
+		IPEndPoint? mappedAddress12 = response12?.Message.GetMappedAddressAttribute();
 
 		if (mappedAddress12 is null)
 		{
@@ -138,10 +138,10 @@ public class StunClient3489 : IStunClient
 		}
 
 		// Test III
-		var response3 = await Test3Async(cancellationToken);
+		StunResponse? response3 = await Test3Async(cancellationToken);
 		if (response3 is not null)
 		{
-			var mappedAddress3 = response3.Message.GetMappedAddressAttribute();
+			IPEndPoint? mappedAddress3 = response3.Message.GetMappedAddressAttribute();
 			if (mappedAddress3 is not null
 				&& Equals(response3.Remote.Address, response1.Remote.Address)
 				&& response3.Remote.Port != response1.Remote.Port)
@@ -160,17 +160,17 @@ public class StunClient3489 : IStunClient
 	{
 		try
 		{
-			using var memoryOwner = MemoryPool<byte>.Shared.Rent(0x10000);
-			var buffer = memoryOwner.Memory;
-			var length = sendMessage.WriteTo(buffer.Span);
+			using IMemoryOwner<byte> memoryOwner = MemoryPool<byte>.Shared.Rent(0x10000);
+			Memory<byte> buffer = memoryOwner.Memory;
+			int length = sendMessage.WriteTo(buffer.Span);
 
 			await _proxy.SendToAsync(buffer[..length], SocketFlags.None, remote, cancellationToken);
 
-			using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
+			using CancellationTokenSource cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
 			cts.CancelAfter(ReceiveTimeout);
-			var r = await _proxy.ReceiveMessageFromAsync(buffer, SocketFlags.None, receive, cts.Token);
+			SocketReceiveMessageFromResult r = await _proxy.ReceiveMessageFromAsync(buffer, SocketFlags.None, receive, cts.Token);
 
-			var message = new StunMessage5389();
+			StunMessage5389 message = new();
 			if (message.TryParse(buffer.Span[..r.ReceivedBytes]) && message.IsSameTransaction(sendMessage))
 			{
 				return new StunResponse(message, (IPEndPoint)r.RemoteEndPoint, r.PacketInformation.Address);
@@ -185,7 +185,7 @@ public class StunClient3489 : IStunClient
 
 	public virtual async ValueTask<StunResponse?> Test1Async(CancellationToken cancellationToken)
 	{
-		var message = new StunMessage5389
+		StunMessage5389 message = new()
 		{
 			StunMessageType = StunMessageType.BindingRequest,
 			MagicCookie = 0
@@ -195,7 +195,7 @@ public class StunClient3489 : IStunClient
 
 	public virtual async ValueTask<StunResponse?> Test2Async(IPEndPoint other, CancellationToken cancellationToken)
 	{
-		var message = new StunMessage5389
+		StunMessage5389 message = new()
 		{
 			StunMessageType = StunMessageType.BindingRequest,
 			MagicCookie = 0,
@@ -206,7 +206,7 @@ public class StunClient3489 : IStunClient
 
 	public virtual async ValueTask<StunResponse?> Test1_2Async(IPEndPoint other, CancellationToken cancellationToken)
 	{
-		var message = new StunMessage5389
+		StunMessage5389 message = new()
 		{
 			StunMessageType = StunMessageType.BindingRequest,
 			MagicCookie = 0
@@ -216,7 +216,7 @@ public class StunClient3489 : IStunClient
 
 	public virtual async ValueTask<StunResponse?> Test3Async(CancellationToken cancellationToken)
 	{
-		var message = new StunMessage5389
+		StunMessage5389 message = new()
 		{
 			StunMessageType = StunMessageType.BindingRequest,
 			MagicCookie = 0,

+ 23 - 23
STUN/Client/StunClient5389UDP.cs

@@ -43,7 +43,7 @@ public class StunClient5389UDP : IStunClient
 
 	public async ValueTask ConnectProxyAsync(CancellationToken cancellationToken = default)
 	{
-		using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
+		using CancellationTokenSource cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
 		cts.CancelAfter(ReceiveTimeout);
 
 		await _proxy.ConnectAsync(cts.Token);
@@ -73,7 +73,7 @@ public class StunClient5389UDP : IStunClient
 		}
 
 		// MappingBehaviorTest test II
-		var result2 = await MappingBehaviorTestBase2Async(cancellationToken);
+		StunResult5389 result2 = await MappingBehaviorTestBase2Async(cancellationToken);
 		if (State.MappingBehavior is not MappingBehavior.Unknown)
 		{
 			return;
@@ -90,14 +90,14 @@ public class StunClient5389UDP : IStunClient
 
 	public virtual async ValueTask<StunResult5389> BindingTestBaseAsync(IPEndPoint remote, CancellationToken cancellationToken = default)
 	{
-		var result = new StunResult5389();
-		var test = new StunMessage5389
+		StunResult5389 result = new();
+		StunMessage5389 test = new()
 		{
 			StunMessageType = StunMessageType.BindingRequest
 		};
-		var response1 = await RequestAsync(test, remote, remote, cancellationToken);
-		var mappedAddress1 = response1?.Message.GetXorMappedAddressAttribute();
-		var otherAddress = response1?.Message.GetOtherAddressAttribute();
+		StunResponse? response1 = await RequestAsync(test, remote, remote, cancellationToken);
+		IPEndPoint? mappedAddress1 = response1?.Message.GetXorMappedAddressAttribute();
+		IPEndPoint? otherAddress = response1?.Message.GetOtherAddressAttribute();
 
 		if (response1 is null)
 		{
@@ -112,7 +112,7 @@ public class StunClient5389UDP : IStunClient
 			result.BindingTestResult = BindingTestResult.Success;
 		}
 
-		var local = response1 is null ? null : new IPEndPoint(response1.LocalAddress, LocalEndPoint.Port);
+		IPEndPoint? local = response1 is null ? null : new IPEndPoint(response1.LocalAddress, LocalEndPoint.Port);
 
 		result.LocalEndPoint = local;
 		result.PublicEndPoint = mappedAddress1;
@@ -126,7 +126,7 @@ public class StunClient5389UDP : IStunClient
 		State.Reset();
 
 		// test I
-		var bindingResult = await BindingTestAsync(cancellationToken);
+		StunResult5389 bindingResult = await BindingTestAsync(cancellationToken);
 		State.Clone(bindingResult);
 		if (State.BindingTestResult is not BindingTestResult.Success)
 		{
@@ -146,7 +146,7 @@ public class StunClient5389UDP : IStunClient
 		}
 
 		// test II
-		var result2 = await MappingBehaviorTestBase2Async(cancellationToken);
+		StunResult5389 result2 = await MappingBehaviorTestBase2Async(cancellationToken);
 		if (State.MappingBehavior is not MappingBehavior.Unknown)
 		{
 			return;
@@ -160,7 +160,7 @@ public class StunClient5389UDP : IStunClient
 	{
 		Verify.Operation(State.OtherEndPoint is not null, @"OTHER-ADDRESS is not returned");
 
-		var result2 = await BindingTestBaseAsync(new IPEndPoint(State.OtherEndPoint.Address, _remoteEndPoint.Port), cancellationToken);
+		StunResult5389 result2 = await BindingTestBaseAsync(new IPEndPoint(State.OtherEndPoint.Address, _remoteEndPoint.Port), cancellationToken);
 
 		if (result2.BindingTestResult is not BindingTestResult.Success)
 		{
@@ -178,7 +178,7 @@ public class StunClient5389UDP : IStunClient
 	{
 		Verify.Operation(State.OtherEndPoint is not null, @"OTHER-ADDRESS is not returned");
 
-		var result3 = await BindingTestBaseAsync(State.OtherEndPoint, cancellationToken);
+		StunResult5389 result3 = await BindingTestBaseAsync(State.OtherEndPoint, cancellationToken);
 		if (result3.BindingTestResult is not BindingTestResult.Success)
 		{
 			State.MappingBehavior = MappingBehavior.Fail;
@@ -197,7 +197,7 @@ public class StunClient5389UDP : IStunClient
 	private async ValueTask FilteringBehaviorTestBaseAsync(CancellationToken cancellationToken)
 	{
 		// test I
-		var bindingResult = await BindingTestAsync(cancellationToken);
+		StunResult5389 bindingResult = await BindingTestAsync(cancellationToken);
 		State.Clone(bindingResult);
 		if (State.BindingTestResult is not BindingTestResult.Success)
 		{
@@ -211,7 +211,7 @@ public class StunClient5389UDP : IStunClient
 		}
 
 		// test II
-		var response2 = await FilteringBehaviorTest2Async(cancellationToken);
+		StunResponse? response2 = await FilteringBehaviorTest2Async(cancellationToken);
 		if (response2 is not null)
 		{
 			State.FilteringBehavior = Equals(response2.Remote, State.OtherEndPoint) ? FilteringBehavior.EndpointIndependent : FilteringBehavior.UnsupportedServer;
@@ -219,7 +219,7 @@ public class StunClient5389UDP : IStunClient
 		}
 
 		// test III
-		var response3 = await FilteringBehaviorTest3Async(cancellationToken);
+		StunResponse? response3 = await FilteringBehaviorTest3Async(cancellationToken);
 		if (response3 is null)
 		{
 			State.FilteringBehavior = FilteringBehavior.AddressAndPortDependent;
@@ -240,7 +240,7 @@ public class StunClient5389UDP : IStunClient
 	{
 		Assumes.NotNull(State.OtherEndPoint);
 
-		var message = new StunMessage5389
+		StunMessage5389 message = new()
 		{
 			StunMessageType = StunMessageType.BindingRequest,
 			Attributes = new[] { AttributeExtensions.BuildChangeRequest(true, true) }
@@ -252,7 +252,7 @@ public class StunClient5389UDP : IStunClient
 	{
 		Assumes.NotNull(State.OtherEndPoint);
 
-		var message = new StunMessage5389
+		StunMessage5389 message = new()
 		{
 			StunMessageType = StunMessageType.BindingRequest,
 			Attributes = new[] { AttributeExtensions.BuildChangeRequest(false, true) }
@@ -272,17 +272,17 @@ public class StunClient5389UDP : IStunClient
 	{
 		try
 		{
-			using var memoryOwner = MemoryPool<byte>.Shared.Rent(0x10000);
-			var buffer = memoryOwner.Memory;
-			var length = sendMessage.WriteTo(buffer.Span);
+			using IMemoryOwner<byte> memoryOwner = MemoryPool<byte>.Shared.Rent(0x10000);
+			Memory<byte> buffer = memoryOwner.Memory;
+			int length = sendMessage.WriteTo(buffer.Span);
 
 			await _proxy.SendToAsync(buffer[..length], SocketFlags.None, remote, cancellationToken);
 
-			using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
+			using CancellationTokenSource cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
 			cts.CancelAfter(ReceiveTimeout);
-			var r = await _proxy.ReceiveMessageFromAsync(buffer, SocketFlags.None, receive, cts.Token);
+			SocketReceiveMessageFromResult r = await _proxy.ReceiveMessageFromAsync(buffer, SocketFlags.None, receive, cts.Token);
 
-			var message = new StunMessage5389();
+			StunMessage5389 message = new();
 			if (message.TryParse(buffer.Span[..r.ReceivedBytes]) && message.IsSameTransaction(sendMessage))
 			{
 				return new StunResponse(message, (IPEndPoint)r.RemoteEndPoint, r.PacketInformation.Address);

+ 5 - 5
STUN/HostnameEndpoint.cs

@@ -23,8 +23,8 @@ public class HostnameEndpoint
 			return false;
 		}
 
-		var hostLength = s.Length;
-		var pos = s.LastIndexOf(':');
+		int hostLength = s.Length;
+		int pos = s.LastIndexOf(':');
 
 		if (pos > 0)
 		{
@@ -38,8 +38,8 @@ public class HostnameEndpoint
 			}
 		}
 
-		var host = s[..hostLength];
-		var type = Uri.CheckHostName(host);
+		string host = s[..hostLength];
+		UriHostNameType type = Uri.CheckHostName(host);
 		switch (type)
 		{
 			case UriHostNameType.Dns:
@@ -65,7 +65,7 @@ public class HostnameEndpoint
 
 	public override string ToString()
 	{
-		if (IPAddress.TryParse(Hostname, out var ip) && ip.AddressFamily is AddressFamily.InterNetworkV6)
+		if (IPAddress.TryParse(Hostname, out IPAddress? ip) && ip.AddressFamily is AddressFamily.InterNetworkV6)
 		{
 			return $@"[{ip}]:{Port}";
 		}

+ 5 - 5
STUN/Messages/StunAttribute.cs

@@ -34,15 +34,15 @@ public class StunAttribute
 
 	public int WriteTo(Span<byte> buffer)
 	{
-		var length = 4 + Length;
-		var n = (4 - length % 4) % 4; // 填充的字节数
-		var totalLength = length + n;
+		int length = 4 + Length;
+		int n = (4 - length % 4) % 4; // 填充的字节数
+		int totalLength = length + n;
 
 		Requires.Range(buffer.Length >= totalLength, nameof(buffer));
 
 		BinaryPrimitives.WriteUInt16BigEndian(buffer, (ushort)Type);
 		BinaryPrimitives.WriteUInt16BigEndian(buffer[2..], Length);
-		var valueLength = Value.WriteTo(buffer[4..]);
+		int valueLength = Value.WriteTo(buffer[4..]);
 
 		Assumes.True(valueLength == Length);
 
@@ -70,7 +70,7 @@ public class StunAttribute
 			return 0;
 		}
 
-		var value = buffer.Slice(4, Length);
+		ReadOnlySpan<byte> value = buffer.Slice(4, Length);
 
 		IStunAttributeValue t = Type switch
 		{

+ 2 - 2
STUN/Messages/StunAttributeValues/AddressStunAttributeValue.cs

@@ -26,14 +26,14 @@ public abstract class AddressStunAttributeValue : IStunAttributeValue
 		buffer[0] = 0;
 		buffer[1] = (byte)Family;
 		BinaryPrimitives.WriteUInt16BigEndian(buffer[2..], Port);
-		Requires.Range(Address.TryWriteBytes(buffer[4..], out var bytesWritten), nameof(buffer));
+		Requires.Range(Address.TryWriteBytes(buffer[4..], out int bytesWritten), nameof(buffer));
 
 		return 4 + bytesWritten;
 	}
 
 	public virtual bool TryParse(ReadOnlySpan<byte> buffer)
 	{
-		var length = 4;
+		int length = 4;
 
 		if (buffer.Length < length)
 		{

+ 3 - 3
STUN/Messages/StunAttributeValues/ErrorCodeStunAttributeValue.cs

@@ -24,7 +24,7 @@ public class ErrorCodeStunAttributeValue : IStunAttributeValue
 		buffer[2] = Class;
 		buffer[3] = Number;
 
-		var length = Encoding.UTF8.GetBytes(ReasonPhrase, buffer[4..]);
+		int length = Encoding.UTF8.GetBytes(ReasonPhrase, buffer[4..]);
 
 		return 4 + Math.Min(length, MaxReasonPhraseBytesLength);
 	}
@@ -36,8 +36,8 @@ public class ErrorCodeStunAttributeValue : IStunAttributeValue
 			return false;
 		}
 
-		var @class = (byte)(buffer[2] & 0b111);
-		var number = Math.Min(buffer[3], (ushort)99);
+		byte @class = (byte)(buffer[2] & 0b111);
+		ushort number = Math.Min(buffer[3], (ushort)99);
 
 		ErrorCode = (ushort)(@class * 100 + number);
 

+ 3 - 3
STUN/Messages/StunAttributeValues/UnknownStunAttributeValue.cs

@@ -13,10 +13,10 @@ public class UnknownStunAttributeValue : IStunAttributeValue
 
 	public int WriteTo(Span<byte> buffer)
 	{
-		var size = Types.Count << 1;
+		int size = Types.Count << 1;
 		Requires.Range(buffer.Length >= size, nameof(buffer));
 
-		foreach (var attributeType in Types)
+		foreach (AttributeType attributeType in Types)
 		{
 			BinaryPrimitives.WriteUInt16BigEndian(buffer, (ushort)attributeType);
 			buffer = buffer[sizeof(ushort)..];
@@ -35,7 +35,7 @@ public class UnknownStunAttributeValue : IStunAttributeValue
 		Types.Clear();
 		while (!buffer.IsEmpty)
 		{
-			var type = BinaryPrimitives.ReadUInt16BigEndian(buffer);
+			ushort type = BinaryPrimitives.ReadUInt16BigEndian(buffer);
 			Types.Add((AttributeType)type);
 			buffer = buffer[sizeof(ushort)..];
 		}

+ 3 - 3
STUN/Messages/StunAttributeValues/XorMappedAddressStunAttributeValue.cs

@@ -26,7 +26,7 @@ public class XorMappedAddressStunAttributeValue : AddressStunAttributeValue
 		buffer[0] = 0;
 		buffer[1] = (byte)Family;
 		BinaryPrimitives.WriteUInt16BigEndian(buffer[2..], Xor(Port));
-		Requires.Range(Xor(Address).TryWriteBytes(buffer[4..], out var bytesWritten), nameof(buffer));
+		Requires.Range(Xor(Address).TryWriteBytes(buffer[4..], out int bytesWritten), nameof(buffer));
 
 		return 4 + bytesWritten;
 	}
@@ -59,9 +59,9 @@ public class XorMappedAddressStunAttributeValue : AddressStunAttributeValue
 	private IPAddress Xor(IPAddress address)
 	{
 		Span<byte> b = stackalloc byte[16];
-		Assumes.True(address.TryWriteBytes(b, out var bytesWritten));
+		Assumes.True(address.TryWriteBytes(b, out int bytesWritten));
 
-		for (var i = 0; i < bytesWritten; ++i)
+		for (int i = 0; i < bytesWritten; ++i)
 		{
 			b[i] ^= _magicCookieAndTransactionId[i];
 		}

+ 11 - 11
STUN/Messages/StunMessage5389.cs

@@ -34,8 +34,8 @@ public class StunMessage5389
 
 	public int WriteTo(Span<byte> buffer)
 	{
-		var messageLength = Attributes.Aggregate<StunAttribute, ushort>(0, (current, attribute) => (ushort)(current + attribute.RealLength));
-		var length = 20 + messageLength;
+		ushort messageLength = Attributes.Aggregate<StunAttribute, ushort>(0, (current, attribute) => (ushort)(current + attribute.RealLength));
+		int length = 20 + messageLength;
 		Requires.Range(buffer.Length >= length, nameof(buffer));
 
 		BinaryPrimitives.WriteUInt16BigEndian(buffer, (ushort)StunMessageType);
@@ -44,9 +44,9 @@ public class StunMessage5389
 		TransactionId.CopyTo(buffer[8..]);
 
 		buffer = buffer[20..];
-		foreach (var attribute in Attributes)
+		foreach (StunAttribute? attribute in Attributes)
 		{
-			var outLength = attribute.WriteTo(buffer);
+			int outLength = attribute.WriteTo(buffer);
 			buffer = buffer[outLength..];
 		}
 
@@ -64,7 +64,7 @@ public class StunMessage5389
 
 		tempSpan[0] = (byte)(buffer[0] & 0b0011_1111);
 		tempSpan[1] = buffer[1];
-		var type = (StunMessageType)BinaryPrimitives.ReadUInt16BigEndian(tempSpan);
+		StunMessageType type = (StunMessageType)BinaryPrimitives.ReadUInt16BigEndian(tempSpan);
 
 		if (!Enum.IsDefined(typeof(StunMessageType), type))
 		{
@@ -73,7 +73,7 @@ public class StunMessage5389
 
 		StunMessageType = type;
 
-		var length = BinaryPrimitives.ReadUInt16BigEndian(buffer[2..]);
+		ushort length = BinaryPrimitives.ReadUInt16BigEndian(buffer[2..]);
 
 		MagicCookie = BinaryPrimitives.ReadUInt32BigEndian(buffer[4..]);
 
@@ -84,15 +84,15 @@ public class StunMessage5389
 			return false; // Check length
 		}
 
-		var list = new List<StunAttribute>();
+		List<StunAttribute> list = new();
 
-		var attributeBuffer = buffer[20..];
-		var magicCookieAndTransactionId = buffer.Slice(4, 16);
+		ReadOnlySpan<byte> attributeBuffer = buffer[20..];
+		ReadOnlySpan<byte> magicCookieAndTransactionId = buffer.Slice(4, 16);
 
 		while (attributeBuffer.Length > 0)
 		{
-			var attribute = new StunAttribute();
-			var offset = attribute.TryParse(attributeBuffer, magicCookieAndTransactionId);
+			StunAttribute attribute = new();
+			int offset = attribute.TryParse(attributeBuffer, magicCookieAndTransactionId);
 			if (offset > 0)
 			{
 				list.Add(attribute);

+ 4 - 4
STUN/Proxy/Socks5UdpProxy.cs

@@ -62,7 +62,7 @@ public class Socks5UdpProxy : IUdpProxy
 	{
 		Verify.Operation(_socks5Client?.Status is Status.Established && _socks5Client.UdpClient is not null, @"Socks5 is not established.");
 
-		var t = ArrayPool<byte>.Shared.Rent(buffer.Length);
+		byte[] t = ArrayPool<byte>.Shared.Rent(buffer.Length);
 		try
 		{
 			if (_udpServerBound.Type is AddressType.Domain)
@@ -70,9 +70,9 @@ public class Socks5UdpProxy : IUdpProxy
 				ThrowErrorAddressType();
 			}
 
-			var remote = new IPEndPoint(_udpServerBound.Address!, _udpServerBound.Port);
-			var r = await _socks5Client.UdpClient.ReceiveMessageFromAsync(t, socketFlags, remote, cancellationToken);
-			var u = Unpack.Udp(t.AsMemory(0, r.ReceivedBytes));
+			IPEndPoint remote = new(_udpServerBound.Address!, _udpServerBound.Port);
+			SocketReceiveMessageFromResult r = await _socks5Client.UdpClient.ReceiveMessageFromAsync(t, socketFlags, remote, cancellationToken);
+			Socks5UdpReceivePacket u = Unpack.Udp(t.AsMemory(0, r.ReceivedBytes));
 
 			u.Data.CopyTo(buffer);
 

+ 1 - 1
STUN/STUN.csproj

@@ -6,7 +6,7 @@
     <NoWarn>CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
-    <Copyright>Copyright © 2018 - 2021 HMBSbige</Copyright>
+    <Copyright>Copyright © 2018-2022 HMBSbige</Copyright>
     <PackageLicenseExpression>MIT</PackageLicenseExpression>
     <PackageProjectUrl>https://github.com/HMBSbige/NatTypeTester</PackageProjectUrl>
     <RepositoryUrl>https://github.com/HMBSbige/NatTypeTester</RepositoryUrl>

+ 2 - 2
STUN/StunServer.cs

@@ -25,7 +25,7 @@ public class StunServer
 
 	public static bool TryParse(string s, [NotNullWhen(true)] out StunServer? result)
 	{
-		if (!HostnameEndpoint.TryParse(s, out var host, DefaultPort))
+		if (!HostnameEndpoint.TryParse(s, out HostnameEndpoint? host, DefaultPort))
 		{
 			result = null;
 			return false;
@@ -41,7 +41,7 @@ public class StunServer
 		{
 			return Hostname;
 		}
-		if (IPAddress.TryParse(Hostname, out var ip) && ip.AddressFamily is AddressFamily.InterNetworkV6)
+		if (IPAddress.TryParse(Hostname, out IPAddress? ip) && ip.AddressFamily is AddressFamily.InterNetworkV6)
 		{
 			return $@"[{ip}]:{Port}";
 		}

+ 10 - 10
STUN/Utils/AttributeExtensions.cs

@@ -19,7 +19,7 @@ public static class AttributeExtensions
 
 	public static StunAttribute BuildMapping(IpFamily family, IPAddress ip, ushort port)
 	{
-		var length = family switch
+		int length = family switch
 		{
 			IpFamily.IPv4 => 4,
 			IpFamily.IPv6 => 16,
@@ -40,7 +40,7 @@ public static class AttributeExtensions
 
 	public static StunAttribute BuildChangeAddress(IpFamily family, IPAddress ip, ushort port)
 	{
-		var length = family switch
+		int length = family switch
 		{
 			IpFamily.IPv4 => 4,
 			IpFamily.IPv6 => 16,
@@ -61,33 +61,33 @@ public static class AttributeExtensions
 
 	public static IPEndPoint? GetMappedAddressAttribute(this StunMessage5389 response)
 	{
-		var mappedAddressAttribute = response.Attributes.FirstOrDefault(t => t.Type == AttributeType.MappedAddress);
+		StunAttribute? mappedAddressAttribute = response.Attributes.FirstOrDefault(t => t.Type == AttributeType.MappedAddress);
 
 		if (mappedAddressAttribute is null)
 		{
 			return null;
 		}
 
-		var mapped = (MappedAddressStunAttributeValue)mappedAddressAttribute.Value;
+		MappedAddressStunAttributeValue mapped = (MappedAddressStunAttributeValue)mappedAddressAttribute.Value;
 		return new IPEndPoint(mapped.Address!, mapped.Port);
 	}
 
 	public static IPEndPoint? GetChangedAddressAttribute(this StunMessage5389 response)
 	{
-		var changedAddressAttribute = response.Attributes.FirstOrDefault(t => t.Type == AttributeType.ChangedAddress);
+		StunAttribute? changedAddressAttribute = response.Attributes.FirstOrDefault(t => t.Type == AttributeType.ChangedAddress);
 
 		if (changedAddressAttribute is null)
 		{
 			return null;
 		}
 
-		var address = (ChangedAddressStunAttributeValue)changedAddressAttribute.Value;
+		ChangedAddressStunAttributeValue address = (ChangedAddressStunAttributeValue)changedAddressAttribute.Value;
 		return new IPEndPoint(address.Address!, address.Port);
 	}
 
 	public static IPEndPoint? GetXorMappedAddressAttribute(this StunMessage5389 response)
 	{
-		var mappedAddressAttribute =
+		StunAttribute? mappedAddressAttribute =
 			response.Attributes.FirstOrDefault(t => t.Type == AttributeType.XorMappedAddress) ??
 			response.Attributes.FirstOrDefault(t => t.Type == AttributeType.MappedAddress);
 
@@ -96,13 +96,13 @@ public static class AttributeExtensions
 			return null;
 		}
 
-		var mapped = (AddressStunAttributeValue)mappedAddressAttribute.Value;
+		AddressStunAttributeValue mapped = (AddressStunAttributeValue)mappedAddressAttribute.Value;
 		return new IPEndPoint(mapped.Address!, mapped.Port);
 	}
 
 	public static IPEndPoint? GetOtherAddressAttribute(this StunMessage5389 response)
 	{
-		var addressAttribute =
+		StunAttribute? addressAttribute =
 			response.Attributes.FirstOrDefault(t => t.Type == AttributeType.OtherAddress) ??
 			response.Attributes.FirstOrDefault(t => t.Type == AttributeType.ChangedAddress);
 
@@ -111,7 +111,7 @@ public static class AttributeExtensions
 			return null;
 		}
 
-		var address = (AddressStunAttributeValue)addressAttribute.Value;
+		AddressStunAttributeValue address = (AddressStunAttributeValue)addressAttribute.Value;
 		return new IPEndPoint(address.Address!, address.Port);
 	}
 }

+ 7 - 7
UnitTest/HostnameEndpointTest.cs

@@ -12,8 +12,8 @@ public class HostnameEndpointTest
 	[DataRow(@"[2001:db8:1234:5678:11:2233:4455:6677]", (ushort)1919)]
 	public void IsTrue(string host, ushort port)
 	{
-		var str = $@"{host}:{port}";
-		Assert.IsTrue(StunServer.TryParse(str, out var server));
+		string str = $@"{host}:{port}";
+		Assert.IsTrue(StunServer.TryParse(str, out StunServer? server));
 		Assert.IsNotNull(server);
 		Assert.AreEqual(host, server.Hostname);
 		Assert.AreEqual(port, server.Port);
@@ -27,7 +27,7 @@ public class HostnameEndpointTest
 	[DataRow(@"2001:db8:1234:5678:11:2233:4455:6677:65535")]
 	public void IsFalse(string str)
 	{
-		Assert.IsFalse(StunServer.TryParse(str, out var server));
+		Assert.IsFalse(StunServer.TryParse(str, out StunServer? server));
 		Assert.IsNull(server);
 	}
 
@@ -39,7 +39,7 @@ public class HostnameEndpointTest
 	[DataRow(@"2001:db8:1234:5678:11:2233:4455:db8")]
 	public void TestDefaultPort(string str)
 	{
-		Assert.IsTrue(StunServer.TryParse(str, out var server));
+		Assert.IsTrue(StunServer.TryParse(str, out StunServer? server));
 		Assert.IsNotNull(server);
 		Assert.AreEqual(str, server.Hostname);
 		Assert.AreEqual(3478, server.Port);
@@ -54,7 +54,7 @@ public class HostnameEndpointTest
 	[DataRow(@"1.1.1.1:1919", @"1.1.1.1:1919")]
 	public void ToString(string str, string expected)
 	{
-		Assert.IsTrue(StunServer.TryParse(str, out var server));
+		Assert.IsTrue(StunServer.TryParse(str, out StunServer? server));
 		Assert.IsNotNull(server);
 		Assert.AreEqual(expected, server.ToString());
 	}
@@ -62,7 +62,7 @@ public class HostnameEndpointTest
 	[TestMethod]
 	public void DefaultServer()
 	{
-		var server = new StunServer();
+		StunServer server = new();
 		Assert.AreEqual(@"stun.syncthing.net", server.Hostname);
 		Assert.AreEqual(3478, server.Port);
 	}
@@ -76,7 +76,7 @@ public class HostnameEndpointTest
 	[DataRow(@"1.1.1.1:1919", @"1.1.1.1:1919")]
 	public void HostnameEndpointToString(string str, string expected)
 	{
-		Assert.IsTrue(HostnameEndpoint.TryParse(str, out var server));
+		Assert.IsTrue(HostnameEndpoint.TryParse(str, out HostnameEndpoint? server));
 		Assert.IsNotNull(server);
 		Assert.AreEqual(expected, server.ToString());
 	}

+ 83 - 83
UnitTest/StunClien5389UDPTest.cs

@@ -32,10 +32,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task BindingTestSuccessAsync()
 	{
-		var ip = await _dnsClient.QueryAsync(Server);
-		using var client = new StunClient5389UDP(new IPEndPoint(ip, Port), Any);
+		IPAddress ip = await _dnsClient.QueryAsync(Server);
+		using StunClient5389UDP client = new(new IPEndPoint(ip, Port), Any);
 
-		var response = await client.BindingTestAsync();
+		StunResult5389 response = await client.BindingTestAsync();
 
 		Assert.AreEqual(BindingTestResult.Success, response.BindingTestResult);
 		Assert.AreEqual(MappingBehavior.Unknown, response.MappingBehavior);
@@ -48,10 +48,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task BindingTestFailAsync()
 	{
-		var ip = IPAddress.Parse(@"1.1.1.1");
-		using var client = new StunClient5389UDP(new IPEndPoint(ip, Port), Any);
+		IPAddress ip = IPAddress.Parse(@"1.1.1.1");
+		using StunClient5389UDP client = new(new IPEndPoint(ip, Port), Any);
 
-		var response = await client.BindingTestAsync();
+		StunResult5389 response = await client.BindingTestAsync();
 
 		Assert.AreEqual(BindingTestResult.Fail, response.BindingTestResult);
 		Assert.AreEqual(MappingBehavior.Unknown, response.MappingBehavior);
@@ -64,10 +64,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task MappingBehaviorTestFailAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var fail = new StunResult5389 { BindingTestResult = BindingTestResult.Fail };
+		StunResult5389 fail = new() { BindingTestResult = BindingTestResult.Fail };
 
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(fail);
 
@@ -84,10 +84,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task MappingBehaviorTestUnsupportedServerAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -96,7 +96,7 @@ public class StunClien5389UDPTest
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(r1);
 		await TestAsync();
 
-		var r2 = new StunResult5389
+		StunResult5389 r2 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -106,7 +106,7 @@ public class StunClien5389UDPTest
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(r2);
 		await TestAsync();
 
-		var r3 = new StunResult5389
+		StunResult5389 r3 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -131,10 +131,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task MappingBehaviorTestDirectAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var response = new StunResult5389
+		StunResult5389 response = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -157,10 +157,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task MappingBehaviorTestEndpointIndependentAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -181,17 +181,17 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task MappingBehaviorTest2FailAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r2 = new StunResult5389
+		StunResult5389 r2 = new()
 		{
 			BindingTestResult = BindingTestResult.Fail,
 		};
@@ -211,24 +211,24 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task MappingBehaviorTestAddressDependentAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r2 = new StunResult5389
+		StunResult5389 r2 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress2,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r3 = new StunResult5389
+		StunResult5389 r3 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress2,
@@ -252,24 +252,24 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task MappingBehaviorTestAddressAndPortDependentAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r2 = new StunResult5389
+		StunResult5389 r2 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress2,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r3 = new StunResult5389
+		StunResult5389 r3 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -293,24 +293,24 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task MappingBehaviorTest3FailAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r2 = new StunResult5389
+		StunResult5389 r2 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress2,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r3 = new StunResult5389
+		StunResult5389 r3 = new()
 		{
 			BindingTestResult = BindingTestResult.Fail
 		};
@@ -331,10 +331,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task FilteringBehaviorTestFailAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var fail = new StunResult5389 { BindingTestResult = BindingTestResult.Fail };
+		StunResult5389 fail = new() { BindingTestResult = BindingTestResult.Fail };
 
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(fail);
 
@@ -351,10 +351,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task FilteringBehaviorTestUnsupportedServerAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -363,7 +363,7 @@ public class StunClien5389UDPTest
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(r1);
 		await TestAsync();
 
-		var r2 = new StunResult5389
+		StunResult5389 r2 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -373,7 +373,7 @@ public class StunClien5389UDPTest
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(r2);
 		await TestAsync();
 
-		var r3 = new StunResult5389
+		StunResult5389 r3 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -398,17 +398,17 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task FilteringBehaviorTestEndpointIndependentAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r2 = new StunResponse(DefaultStunMessage, ChangedAddress1, LocalAddress1.Address);
+		StunResponse r2 = new(DefaultStunMessage, ChangedAddress1, LocalAddress1.Address);
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(r1);
 		mock.Setup(x => x.FilteringBehaviorTest2Async(It.IsAny<CancellationToken>())).ReturnsAsync(r2);
 
@@ -425,17 +425,17 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task FilteringBehaviorTest2UnsupportedServerAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r2 = new StunResponse(DefaultStunMessage, ServerAddress, LocalAddress1.Address);
+		StunResponse r2 = new(DefaultStunMessage, ServerAddress, LocalAddress1.Address);
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(r1);
 		mock.Setup(x => x.FilteringBehaviorTest2Async(It.IsAny<CancellationToken>())).ReturnsAsync(r2);
 
@@ -452,10 +452,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task FilteringBehaviorTestAddressAndPortDependentAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -479,17 +479,17 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task FilteringBehaviorTestAddressDependentAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r3 = new StunResponse(DefaultStunMessage, ChangedAddress2, LocalAddress1.Address);
+		StunResponse r3 = new(DefaultStunMessage, ChangedAddress2, LocalAddress1.Address);
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(r1);
 		mock.Setup(x => x.FilteringBehaviorTest2Async(It.IsAny<CancellationToken>())).ReturnsAsync(default(StunResponse?));
 		mock.Setup(x => x.FilteringBehaviorTest3Async(It.IsAny<CancellationToken>())).ReturnsAsync(r3);
@@ -507,17 +507,17 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task FilteringBehaviorTest3UnsupportedServerAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r3 = new StunResponse(DefaultStunMessage, ServerAddress, LocalAddress1.Address);
+		StunResponse r3 = new(DefaultStunMessage, ServerAddress, LocalAddress1.Address);
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(r1);
 		mock.Setup(x => x.FilteringBehaviorTest2Async(It.IsAny<CancellationToken>())).ReturnsAsync(default(StunResponse?));
 		mock.Setup(x => x.FilteringBehaviorTest3Async(It.IsAny<CancellationToken>())).ReturnsAsync(r3);
@@ -535,10 +535,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task QueryFailTestAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var fail = new StunResult5389 { BindingTestResult = BindingTestResult.Fail };
+		StunResult5389 fail = new() { BindingTestResult = BindingTestResult.Fail };
 
 		mock.Setup(x => x.BindingTestBaseAsync(It.IsAny<IPEndPoint>(), It.IsAny<CancellationToken>())).ReturnsAsync(fail);
 
@@ -555,10 +555,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task QueryUnsupportedServerTestAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -579,10 +579,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task QueryMappingBehaviorDirectTestAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -606,10 +606,10 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task QueryMappingBehaviorEndpointIndependentTestAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
@@ -633,24 +633,24 @@ public class StunClien5389UDPTest
 	[TestMethod]
 	public async Task QueryMappingBehaviorAddressAndPortDependentTestAsync()
 	{
-		var mock = new Mock<StunClient5389UDP>(ServerAddress, Any, default);
-		var client = mock.Object;
+		Mock<StunClient5389UDP> mock = new(ServerAddress, Any, default);
+		StunClient5389UDP? client = mock.Object;
 
-		var r1 = new StunResult5389
+		StunResult5389 r1 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r2 = new StunResult5389
+		StunResult5389 r2 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress2,
 			LocalEndPoint = LocalAddress1,
 			OtherEndPoint = ChangedAddress1
 		};
-		var r3 = new StunResult5389
+		StunResult5389 r3 = new()
 		{
 			BindingTestResult = BindingTestResult.Success,
 			PublicEndPoint = MappedAddress1,

+ 43 - 43
UnitTest/StunClient3489Test.cs

@@ -34,8 +34,8 @@ public class StunClient3489Test
 	[TestMethod]
 	public async Task UdpBlockedTestAsync()
 	{
-		var mock = new Mock<StunClient3489>(Any, Any, default);
-		var client = mock.Object;
+		Mock<StunClient3489> mock = new(Any, Any, default);
+		StunClient3489? client = mock.Object;
 
 		mock.Setup(x => x.Test1Async(It.IsAny<CancellationToken>())).ReturnsAsync(default(StunResponse?));
 
@@ -46,15 +46,15 @@ public class StunClient3489Test
 	[TestMethod]
 	public async Task UnsupportedServerTestAsync()
 	{
-		var mock = new Mock<StunClient3489>(Any, Any, default);
-		var client = mock.Object;
+		Mock<StunClient3489> mock = new(Any, Any, default);
+		StunClient3489? client = mock.Object;
 
 		mock.Setup(x => x.LocalEndPoint).Returns(LocalAddress1);
-		var unknownResponse = new StunResponse(DefaultStunMessage, Any, LocalAddress1.Address);
+		StunResponse unknownResponse = new(DefaultStunMessage, Any, LocalAddress1.Address);
 		mock.Setup(x => x.Test1Async(It.IsAny<CancellationToken>())).ReturnsAsync(unknownResponse);
 		await TestAsync();
 
-		var r1 = new StunResponse(new StunMessage5389
+		StunResponse r1 = new(new StunMessage5389
 		{
 			Attributes = new[]
 			{
@@ -64,7 +64,7 @@ public class StunClient3489Test
 		mock.Setup(x => x.Test1Async(It.IsAny<CancellationToken>())).ReturnsAsync(r1);
 		await TestAsync();
 
-		var r2 = new StunResponse(new StunMessage5389
+		StunResponse r2 = new(new StunMessage5389
 		{
 			Attributes = new[]
 			{
@@ -74,7 +74,7 @@ public class StunClient3489Test
 		mock.Setup(x => x.Test1Async(It.IsAny<CancellationToken>())).ReturnsAsync(r2);
 		await TestAsync();
 
-		var r3 = new StunResponse(new StunMessage5389
+		StunResponse r3 = new(new StunMessage5389
 		{
 			Attributes = new[]
 			{
@@ -85,7 +85,7 @@ public class StunClient3489Test
 		mock.Setup(x => x.Test1Async(It.IsAny<CancellationToken>())).ReturnsAsync(r3);
 		await TestAsync();
 
-		var r4 = new StunResponse(new StunMessage5389
+		StunResponse r4 = new(new StunMessage5389
 		{
 			Attributes = new[]
 			{
@@ -106,10 +106,10 @@ public class StunClient3489Test
 	[TestMethod]
 	public async Task NoNatTestAsync()
 	{
-		var mock = new Mock<StunClient3489>(Any, Any, default);
-		var client = mock.Object;
+		Mock<StunClient3489> mock = new(Any, Any, default);
+		StunClient3489? client = mock.Object;
 
-		var openInternetTest1Response = new StunResponse(
+		StunResponse openInternetTest1Response = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -121,7 +121,7 @@ public class StunClient3489Test
 			ServerAddress,
 			MappedAddress1.Address
 		);
-		var test2Response = new StunResponse(
+		StunResponse test2Response = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -150,10 +150,10 @@ public class StunClient3489Test
 	[TestMethod]
 	public async Task FullConeTestAsync()
 	{
-		var mock = new Mock<StunClient3489>(Any, Any, default);
-		var client = mock.Object;
+		Mock<StunClient3489> mock = new(Any, Any, default);
+		StunClient3489? client = mock.Object;
 
-		var test1Response = new StunResponse(
+		StunResponse test1Response = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -165,7 +165,7 @@ public class StunClient3489Test
 			ServerAddress,
 			LocalAddress1.Address
 		);
-		var fullConeResponse = new StunResponse(
+		StunResponse fullConeResponse = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -176,7 +176,7 @@ public class StunClient3489Test
 			ChangedAddress1,
 			LocalAddress1.Address
 		);
-		var unsupportedResponse1 = new StunResponse(
+		StunResponse unsupportedResponse1 = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -187,7 +187,7 @@ public class StunClient3489Test
 			ServerAddress,
 			LocalAddress1.Address
 		);
-		var unsupportedResponse2 = new StunResponse(
+		StunResponse unsupportedResponse2 = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -198,7 +198,7 @@ public class StunClient3489Test
 			new IPEndPoint(ServerAddress.Address, ChangedAddress1.Port),
 			LocalAddress1.Address
 		);
-		var unsupportedResponse3 = new StunResponse(
+		StunResponse unsupportedResponse3 = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -237,10 +237,10 @@ public class StunClient3489Test
 	[TestMethod]
 	public async Task SymmetricTestAsync()
 	{
-		var mock = new Mock<StunClient3489>(Any, Any, default);
-		var client = mock.Object;
+		Mock<StunClient3489> mock = new(Any, Any, default);
+		StunClient3489? client = mock.Object;
 
-		var test1Response = new StunResponse(
+		StunResponse test1Response = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -252,7 +252,7 @@ public class StunClient3489Test
 			ServerAddress,
 			LocalAddress1.Address
 		);
-		var test12Response = new StunResponse(
+		StunResponse test12Response = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -282,10 +282,10 @@ public class StunClient3489Test
 	[TestMethod]
 	public async Task RestrictedConeTestAsync()
 	{
-		var mock = new Mock<StunClient3489>(Any, Any, default);
-		var client = mock.Object;
+		Mock<StunClient3489> mock = new(Any, Any, default);
+		StunClient3489? client = mock.Object;
 
-		var test1Response = new StunResponse(
+		StunResponse test1Response = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -297,7 +297,7 @@ public class StunClient3489Test
 			ServerAddress,
 			LocalAddress1.Address
 		);
-		var test3Response = new StunResponse(
+		StunResponse test3Response = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -309,7 +309,7 @@ public class StunClient3489Test
 			ChangedAddress2,
 			LocalAddress1.Address
 		);
-		var test3ErrorResponse = new StunResponse(
+		StunResponse test3ErrorResponse = new(
 			new StunMessage5389
 			{
 				Attributes = new[]
@@ -343,19 +343,19 @@ public class StunClient3489Test
 	[TestMethod]
 	public async Task Test1Async()
 	{
-		var ip = await _dnsClient.QueryAsync(Server);
-		using var client = new StunClient3489(new IPEndPoint(ip, Port), Any);
+		IPAddress ip = await _dnsClient.QueryAsync(Server);
+		using StunClient3489 client = new(new IPEndPoint(ip, Port), Any);
 
 		// test I
-		var response1 = await client.Test1Async(default);
+		StunResponse? response1 = await client.Test1Async(default);
 
 		Assert.IsNotNull(response1);
 		Assert.AreEqual(ip, response1.Remote.Address);
 		Assert.AreEqual(Port, response1.Remote.Port);
 		Assert.AreNotEqual(Any, client.LocalEndPoint);
 
-		var mappedAddress = response1.Message.GetMappedAddressAttribute();
-		var changedAddress = response1.Message.GetChangedAddressAttribute();
+		IPEndPoint? mappedAddress = response1.Message.GetMappedAddressAttribute();
+		IPEndPoint? changedAddress = response1.Message.GetChangedAddressAttribute();
 
 		Assert.IsNotNull(mappedAddress);
 		Assert.IsNotNull(changedAddress);
@@ -364,7 +364,7 @@ public class StunClient3489Test
 		Assert.AreNotEqual(Port, changedAddress.Port);
 
 		// Test I(#2)
-		var response12 = await client.Test1_2Async(changedAddress, default);
+		StunResponse? response12 = await client.Test1_2Async(changedAddress, default);
 
 		Assert.IsNotNull(response12);
 		Assert.AreEqual(changedAddress.Address, response12.Remote.Address);
@@ -372,13 +372,13 @@ public class StunClient3489Test
 	}
 
 #if FullCone
-		[TestMethod]
+	[TestMethod]
 #endif
 	public async Task Test2Async()
 	{
-		var ip = await _dnsClient.QueryAsync(Server);
-		using var client = new StunClient3489(new IPEndPoint(ip, Port), Any);
-		var response2 = await client.Test2Async(ip.AddressFamily is AddressFamily.InterNetworkV6 ? IPv6Any : Any, default);
+		IPAddress ip = await _dnsClient.QueryAsync(Server);
+		using StunClient3489 client = new(new IPEndPoint(ip, Port), Any);
+		StunResponse? response2 = await client.Test2Async(ip.AddressFamily is AddressFamily.InterNetworkV6 ? IPv6Any : Any, default);
 
 		Assert.IsNotNull(response2);
 
@@ -387,13 +387,13 @@ public class StunClient3489Test
 	}
 
 #if FullCone
-		[TestMethod]
+	[TestMethod]
 #endif
 	public async Task Test3Async()
 	{
-		var ip = await _dnsClient.QueryAsync(Server);
-		using var client = new StunClient3489(new IPEndPoint(ip, Port), Any);
-		var response = await client.Test3Async(default);
+		IPAddress ip = await _dnsClient.QueryAsync(Server);
+		using StunClient3489 client = new(new IPEndPoint(ip, Port), Any);
+		StunResponse? response = await client.Test3Async(default);
 
 		Assert.IsNotNull(response);
 

+ 3 - 3
UnitTest/XorMappedTest.cs

@@ -39,7 +39,7 @@ public class XorMappedTest
 	[TestMethod]
 	public void TestXorMapped()
 	{
-		var t = new XorMappedAddressStunAttributeValue(MagicCookieAndTransactionId)
+		XorMappedAddressStunAttributeValue t = new(MagicCookieAndTransactionId)
 		{
 			Port = Port,
 			Family = IpFamily.IPv4,
@@ -47,7 +47,7 @@ public class XorMappedTest
 		};
 		Span<byte> temp = stackalloc byte[ushort.MaxValue];
 
-		var length4 = t.WriteTo(temp);
+		int length4 = t.WriteTo(temp);
 		Assert.AreNotEqual(0, length4);
 		Assert.IsTrue(temp[..length4].SequenceEqual(_ipv4Response));
 
@@ -63,7 +63,7 @@ public class XorMappedTest
 		Assert.AreEqual(t.Family, IpFamily.IPv6);
 		Assert.AreEqual(t.Address, IPv6);
 
-		var length6 = t.WriteTo(temp);
+		int length6 = t.WriteTo(temp);
 		Assert.AreNotEqual(0, length6);
 		Assert.IsTrue(temp[..length6].SequenceEqual(_ipv6Response));
 	}