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