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
socket_utils_posix.cc
Go to the documentation of this file.
1
/*
2
*
3
* Copyright 2015 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_SOCKETUTILS
24
25
#include <fcntl.h>
26
#include <sys/socket.h>
27
#include <unistd.h>
28
29
#include <
grpc/support/log.h
>
30
31
#include "
src/core/lib/iomgr/sockaddr.h
"
32
#include "
src/core/lib/iomgr/socket_utils_posix.h
"
33
34
int
grpc_accept4
(
int
sockfd,
grpc_resolved_address
* resolved_addr,
int
nonblock,
35
int
cloexec) {
36
int
fd,
flags
;
37
fd = accept(sockfd,
reinterpret_cast<
grpc_sockaddr*
>
(resolved_addr->
addr
),
38
&resolved_addr->
len
);
39
if
(fd >= 0) {
40
if
(nonblock) {
41
flags
= fcntl(fd, F_GETFL, 0);
42
if
(
flags
< 0)
goto
close_and_error;
43
if
(fcntl(fd, F_SETFL,
flags
| O_NONBLOCK) != 0)
goto
close_and_error;
44
}
45
if
(cloexec) {
46
flags
= fcntl(fd, F_GETFD, 0);
47
if
(
flags
< 0)
goto
close_and_error;
48
if
(fcntl(fd, F_SETFD,
flags
| FD_CLOEXEC) != 0)
goto
close_and_error;
49
}
50
}
51
return
fd;
52
53
close_and_error:
54
close
(fd);
55
return
-1;
56
}
57
58
#endif
/* GRPC_POSIX_SOCKETUTILS */
log.h
grpc_resolved_address
Definition:
resolved_address.h:34
sockaddr.h
grpc_accept4
int grpc_accept4(int sockfd, grpc_resolved_address *resolved_addr, int nonblock, int cloexec)
close
#define close
Definition:
test-fs.c:48
grpc_resolved_address::len
socklen_t len
Definition:
resolved_address.h:36
absl::flags_internal
Definition:
abseil-cpp/absl/flags/commandlineflag.h:40
port.h
socket_utils_posix.h
flags
uint32_t flags
Definition:
retry_filter.cc:632
grpc_resolved_address::addr
char addr[GRPC_MAX_SOCKADDR_SIZE]
Definition:
resolved_address.h:35
port_platform.h
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:19