Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
z
Classes
Class List
Class Hierarchy
Class Members
All
:
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
Enumerations
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Properties
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Related Functions
:
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
z
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
grpc
src
core
lib
iomgr
dualstack_socket_posix.cc
Go to the documentation of this file.
1
/*
2
*
3
* Copyright 2020 gRPC authors.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*/
18
19
#include <
grpc/support/port_platform.h
>
20
21
#include "
src/core/lib/iomgr/port.h
"
22
23
#ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
24
25
#include <netinet/in.h>
26
27
#include "
src/core/lib/iomgr/socket_utils_posix.h
"
28
29
#ifndef GRPC_SET_SOCKET_DUALSTACK_CUSTOM
30
31
/* This should be 0 in production, but it may be enabled for testing or
32
debugging purposes, to simulate an environment where IPv6 sockets can't
33
also speak IPv4. */
34
int
grpc_forbid_dualstack_sockets_for_testing
= 0;
35
36
int
grpc_set_socket_dualstack
(
int
fd) {
37
if
(!
grpc_forbid_dualstack_sockets_for_testing
) {
38
const
int
off = 0;
39
return
0 == setsockopt(fd, IPPROTO_IPV6,
IPV6_V6ONLY
, &off,
sizeof
(off));
40
}
else
{
41
/* Force an IPv6-only socket, for testing purposes. */
42
const
int
on = 1;
43
setsockopt(fd, IPPROTO_IPV6,
IPV6_V6ONLY
, &on,
sizeof
(on));
44
return
0;
45
}
46
}
47
#endif // GRPC_SET_SOCKET_DUALSTACK_CUSTOM
48
#endif // GRPC_POSIX_SOCKET_UTILS_COMMON
IPV6_V6ONLY
#define IPV6_V6ONLY
Definition:
winsock.h:46
grpc_forbid_dualstack_sockets_for_testing
int grpc_forbid_dualstack_sockets_for_testing
port.h
socket_utils_posix.h
grpc_set_socket_dualstack
int grpc_set_socket_dualstack(int fd)
port_platform.h
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:13