155 references to SocketOptionLevel
netstandard (1)
netstandard.cs (1)
1276[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Net.Sockets.SocketOptionLevel))]
System (1)
src\libraries\shims\System\ref\System.cs (1)
766[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Net.Sockets.SocketOptionLevel))]
System.Net.Ping (1)
System\Net\NetworkInformation\Ping.RawSocket.cs (1)
89socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, 1);
System.Net.Requests (3)
System\Net\HttpWebRequest.cs (3)
1777socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); 1778socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveTime, keepAlive.Time); 1779socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveInterval, keepAlive.Interval);
System.Net.Sockets (149)
src\libraries\Common\src\Interop\Unix\System.Native\Interop.GetSockOpt.cs (2)
13internal static unsafe partial Error GetSockOpt(SafeHandle socket, SocketOptionLevel optionLevel, SocketOptionName optionName, byte* optionValue, int* optionLen); 16internal static unsafe partial Error GetSockOpt(IntPtr socket, SocketOptionLevel optionLevel, SocketOptionName optionName, byte* optionValue, int* optionLen);
src\libraries\Common\src\Interop\Unix\System.Native\Interop.SetSockOpt.cs (2)
13internal static unsafe partial Error SetSockOpt(SafeHandle socket, SocketOptionLevel optionLevel, SocketOptionName optionName, byte* optionValue, int optionLen); 16internal static unsafe partial Error SetSockOpt(IntPtr socket, SocketOptionLevel optionLevel, SocketOptionName optionName, byte* optionValue, int optionLen);
System\Net\Sockets\NetworkStream.cs (4)
123int timeout = (int)_streamSocket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout)!; 150int timeout = (int)_streamSocket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout)!; 699_streamSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout, silent); 708_streamSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, timeout, silent);
System\Net\Sockets\SafeSocketHandle.Unix.cs (1)
159Interop.Error err = Interop.Sys.GetSockOpt(handle, SocketOptionLevel.Socket, SocketOptionName.Type, (byte*)&type, &optLen);
System\Net\Sockets\SafeSocketHandle.Unix.OptionTracking.cs (57)
17internal void TrackSocketOption(SocketOptionLevel level, SocketOptionName name) 70(SocketOptionName name, SocketOptionLevel level) = ToSocketOptions(tracked); 102(SocketOptionName name, SocketOptionLevel level) = ToSocketOptions(tracked); 146private static TrackableSocketOptions ToTrackableSocketOptions(SocketOptionName name, SocketOptionLevel level) 149(3, SocketOptionLevel.IP) => TrackableSocketOptions.IP_TOS, 150(4, SocketOptionLevel.IP) => TrackableSocketOptions.IP_TTL, 151(23, SocketOptionLevel.IPv6) => TrackableSocketOptions.IPV6_PROTECTION_LEVEL, 152(27, SocketOptionLevel.IPv6) => TrackableSocketOptions.IPV6_V6ONLY, 153(1, SocketOptionLevel.Tcp) => TrackableSocketOptions.TCP_NODELAY, 154(2, SocketOptionLevel.Tcp) => TrackableSocketOptions.TCP_EXPEDITED_1122, 155(3, SocketOptionLevel.Tcp) => TrackableSocketOptions.TCP_KEEPALIVE, 156(15, SocketOptionLevel.Tcp) => TrackableSocketOptions.TCP_FASTOPEN, 157(16, SocketOptionLevel.Tcp) => TrackableSocketOptions.TCP_KEEPCNT, 158(17, SocketOptionLevel.Tcp) => TrackableSocketOptions.TCP_KEEPINTVL, 159(1, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_DEBUG, 160(2, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_ACCEPTCONN, 161(4, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_REUSEADDR, 162(8, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_KEEPALIVE, 163(16, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_DONTROUTE, 164(64, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_USELOOPBACK, 165(128, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_LINGER, 166(256, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_OOBINLINE, 167(-129, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_DONTLINGER, 168(-5, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_EXCLUSIVEADDRUSE, 169(4097, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_SNDBUF, 170(4098, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_RCVBUF, 171(4099, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_SNDLOWAT, 172(4100, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_RCVLOWAT, 173(4101, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_SNDTIMEO, 174(4102, SocketOptionLevel.Socket) => TrackableSocketOptions.SO_RCVTIMEO, 179private static (SocketOptionName, SocketOptionLevel) ToSocketOptions(TrackableSocketOptions options) => 182TrackableSocketOptions.IP_TOS => ((SocketOptionName)3, SocketOptionLevel.IP), 183TrackableSocketOptions.IP_TTL => ((SocketOptionName)4, SocketOptionLevel.IP), 184TrackableSocketOptions.IPV6_PROTECTION_LEVEL => ((SocketOptionName)23, SocketOptionLevel.IPv6), 185TrackableSocketOptions.IPV6_V6ONLY => ((SocketOptionName)27, SocketOptionLevel.IPv6), 186TrackableSocketOptions.TCP_NODELAY => ((SocketOptionName)1, SocketOptionLevel.Tcp), 187TrackableSocketOptions.TCP_EXPEDITED_1122 => ((SocketOptionName)2, SocketOptionLevel.Tcp), 188TrackableSocketOptions.TCP_KEEPALIVE => ((SocketOptionName)3, SocketOptionLevel.Tcp), 189TrackableSocketOptions.TCP_FASTOPEN => ((SocketOptionName)15, SocketOptionLevel.Tcp), 190TrackableSocketOptions.TCP_KEEPCNT => ((SocketOptionName)16, SocketOptionLevel.Tcp), 191TrackableSocketOptions.TCP_KEEPINTVL => ((SocketOptionName)17, SocketOptionLevel.Tcp), 192TrackableSocketOptions.SO_DEBUG => ((SocketOptionName)1, SocketOptionLevel.Socket), 193TrackableSocketOptions.SO_ACCEPTCONN => ((SocketOptionName)2, SocketOptionLevel.Socket), 194TrackableSocketOptions.SO_REUSEADDR => ((SocketOptionName)4, SocketOptionLevel.Socket), 195TrackableSocketOptions.SO_KEEPALIVE => ((SocketOptionName)8, SocketOptionLevel.Socket), 196TrackableSocketOptions.SO_DONTROUTE => ((SocketOptionName)16, SocketOptionLevel.Socket), 197TrackableSocketOptions.SO_USELOOPBACK => ((SocketOptionName)64, SocketOptionLevel.Socket), 198TrackableSocketOptions.SO_LINGER => ((SocketOptionName)128, SocketOptionLevel.Socket), 199TrackableSocketOptions.SO_OOBINLINE => ((SocketOptionName)256, SocketOptionLevel.Socket), 200TrackableSocketOptions.SO_DONTLINGER => ((SocketOptionName)(-129), SocketOptionLevel.Socket), 201TrackableSocketOptions.SO_EXCLUSIVEADDRUSE => ((SocketOptionName)(-5), SocketOptionLevel.Socket), 202TrackableSocketOptions.SO_SNDBUF => ((SocketOptionName)4097, SocketOptionLevel.Socket), 203TrackableSocketOptions.SO_RCVBUF => ((SocketOptionName)4098, SocketOptionLevel.Socket), 204TrackableSocketOptions.SO_SNDLOWAT => ((SocketOptionName)4099, SocketOptionLevel.Socket), 205TrackableSocketOptions.SO_RCVLOWAT => ((SocketOptionName)4100, SocketOptionLevel.Socket), 206TrackableSocketOptions.SO_SNDTIMEO => ((SocketOptionName)4101, SocketOptionLevel.Socket), 207TrackableSocketOptions.SO_RCVTIMEO => ((SocketOptionName)4102, SocketOptionLevel.Socket),
System\Net\Sockets\Socket.cs (49)
500return (int)GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ExclusiveAddressUse)! != 0 ? true : false; 508SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ExclusiveAddressUse, value ? 1 : 0); 516return (int)GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer)!; 522SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, value); 530return (int)GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendBuffer)!; 537SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendBuffer, value); 546return (int)GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout)!; 557SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, value); 566return (int)GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout)!; 578SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, value); 589return (LingerOption?)GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger); 595SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, value!); 603return (int)GetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay)! != 0 ? true : false; 607SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, value ? 1 : 0); 617return (short)(int)GetSocketOption(SocketOptionLevel.IP, SocketOptionName.IpTimeToLive)!; 621return (short)(int)GetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IpTimeToLive)!; 637SetSocketOption(SocketOptionLevel.IP, SocketOptionName.IpTimeToLive, value); 642SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IpTimeToLive, value); 659return (int)GetSocketOption(SocketOptionLevel.IP, SocketOptionName.DontFragment)! != 0 ? true : false; 673SetSocketOption(SocketOptionLevel.IP, SocketOptionName.DontFragment, value ? 1 : 0); 692return (int)GetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastLoopback)! != 0 ? true : false; 696return (int)GetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.MulticastLoopback)! != 0 ? true : false; 709SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastLoopback, value ? 1 : 0); 714SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.MulticastLoopback, value ? 1 : 0); 731return (int)GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast)! != 0 ? true : false; 736SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, value ? 1 : 0); 756return ((int)GetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only)! == 0); 767SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, value ? 0 : 1); 2078public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionValue) 2086public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue) 2105public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, bool optionValue) 2111public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, object optionValue) 2118if (optionLevel == SocketOptionLevel.Socket && optionName == SocketOptionName.Linger) 2131else if (optionLevel == SocketOptionLevel.IP && (optionName == SocketOptionName.AddMembership || optionName == SocketOptionName.DropMembership)) 2140else if (optionLevel == SocketOptionLevel.IPv6 && (optionName == SocketOptionName.AddMembership || optionName == SocketOptionName.DropMembership)) 2164/// The <see cref="SetRawSocketOption"/> should be used only when <see cref="SocketOptionLevel"/> and <see cref="SocketOptionName"/> 2182public object? GetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName) 2185if (optionLevel == SocketOptionLevel.Socket && optionName == SocketOptionName.Linger) 2189else if (optionLevel == SocketOptionLevel.IP && (optionName == SocketOptionName.AddMembership || optionName == SocketOptionName.DropMembership)) 2193else if (optionLevel == SocketOptionLevel.IPv6 && (optionName == SocketOptionName.AddMembership || optionName == SocketOptionName.DropMembership)) 2219public void GetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue) 2242public byte[] GetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionLength) 2284/// The <see cref="GetRawSocketOption"/> should be used only when <see cref="SocketOptionLevel"/> and <see cref="SocketOptionName"/> 2314SocketPal.SetIPProtectionLevel(this, SocketOptionLevel.IPv6, (int)level); 2318SocketPal.SetIPProtectionLevel(this, SocketOptionLevel.IP, (int)level); 3455SocketOptionLevel.Socket, 3569SetSocketOption(SocketOptionLevel.IP, SocketOptionName.PacketInformation, true); 3580SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.PacketInformation, true); 3587internal void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionValue, bool silent)
System\Net\Sockets\SocketPal.Unix.cs (16)
78error = Interop.Sys.SetSockOpt(fd, SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, (byte*)&on, sizeof(int)); 1421private static SocketError GetErrorAndTrackSetting(SafeSocketHandle handle, SocketOptionLevel optionLevel, SocketOptionName optionName, Interop.Error err) 1431public static unsafe SocketError SetSockOpt(SafeSocketHandle handle, SocketOptionLevel optionLevel, SocketOptionName optionName, int optionValue) 1435if (optionLevel == SocketOptionLevel.Socket) 1450else if (optionLevel == SocketOptionLevel.IP) 1476if (optionLevel == SocketOptionLevel.IPv6 && optionName == SocketOptionName.IPv6Only) 1502public static unsafe SocketError SetSockOpt(SafeSocketHandle handle, SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue) 1552return GetErrorAndTrackSetting(handle, SocketOptionLevel.IP, optionName, err); 1569return GetErrorAndTrackSetting(handle, SocketOptionLevel.IPv6, optionName, err); 1580return GetErrorAndTrackSetting(handle, SocketOptionLevel.Socket, SocketOptionName.Linger, err); 1589socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.PacketInformation, true); 1594public static void SetIPProtectionLevel(Socket socket, SocketOptionLevel optionLevel, int protectionLevel) 1600public static unsafe SocketError GetSockOpt(SafeSocketHandle handle, SocketOptionLevel optionLevel, SocketOptionName optionName, out int optionValue) 1602if (optionLevel == SocketOptionLevel.Socket) 1643public static unsafe SocketError GetSockOpt(SafeSocketHandle handle, SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue, ref int optionLength) 2191SocketError errorCode = GetSockOpt(handle, SocketOptionLevel.Socket, SocketOptionName.Error, out int optionValue);
System\Net\Sockets\TCPClient.cs (8)
308get { return (int)Client.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer)!; } 309set { Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, value); } 315get { return (int)Client.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendBuffer)!; } 316set { Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendBuffer, value); } 325return (int)Client.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout)!; 330Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, value); 340return (int)Client.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout)!; 345Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, value);
System\Net\Sockets\UDPClient.cs (10)
262_clientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1); 408SocketOptionLevel.IP, 415SocketOptionLevel.IPv6, 431SocketOptionLevel.IP, 451SocketOptionLevel.IPv6, 472(_family == AddressFamily.InterNetwork) ? SocketOptionLevel.IP : SocketOptionLevel.IPv6, 492SocketOptionLevel.IP, 499SocketOptionLevel.IPv6, 519SocketOptionLevel.IPv6,