byte[] buffer = s_keepAliveValuesBuffer ?? (s_keepAliveValuesBuffer = new byte[3 * sizeof(uint)]);
ioControlKeepAlive.Fill(buffer);
int realOptionLength = 0;
+ Debug.Assert(OperatingSystem.IsWindows());
return SocketPal.WindowsIoctl(handle, unchecked((int)IOControlCode.KeepAliveValues), buffer, null, out realOptionLength);
}
using System.Threading.Tasks;
using System.Runtime.Versioning;
+using System.Diagnostics;
namespace System.Net.Sockets
{
return listener;
}
+ [SupportedOSPlatform("windows")]
private void SetIPProtectionLevel(bool allowed)
=> _serverSocket!.SetIPProtectionLevel(allowed ? IPProtectionLevel.Unrestricted : IPProtectionLevel.EdgeRestricted);
if (_allowNatTraversal != null)
{
+ Debug.Assert(OperatingSystem.IsWindows());
SetIPProtectionLevel(_allowNatTraversal.GetValueOrDefault());
_allowNatTraversal = null; // Reset value to avoid affecting more sockets
}
// 3) PNSE.
// 4) Defer to cert.Get{R|D}SAPrivateKey if not silent, throw otherwise.
CspParameters cspParams = handle.GetProvParameters();
+ Debug.Assert(RuntimeInformation.IsOSPlatform(OSPlatform.Windows));
Debug.Assert((cspParams.Flags & CspProviderFlags.UseExistingKey) != 0);
cspParams.KeyNumber = (int)keySpec;