]>
Commit | Line | Data |
---|---|---|
064af421 | 1 | /* |
5ca92d1d | 2 | * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc. |
064af421 | 3 | * |
a14bc59f BP |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. | |
6 | * You may obtain a copy of the License at: | |
064af421 | 7 | * |
a14bc59f BP |
8 | * http://www.apache.org/licenses/LICENSE-2.0 |
9 | * | |
10 | * Unless required by applicable law or agreed to in writing, software | |
11 | * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | * See the License for the specific language governing permissions and | |
14 | * limitations under the License. | |
064af421 BP |
15 | */ |
16 | ||
17 | #ifndef SOCKET_UTIL_H | |
18 | #define SOCKET_UTIL_H 1 | |
19 | ||
20 | #include <sys/types.h> | |
8e47be77 | 21 | #include <sys/socket.h> |
72af4a85 | 22 | #include <sys/time.h> |
064af421 BP |
23 | #include <netinet/in.h> |
24 | #include <stdbool.h> | |
dbba996b | 25 | #include "openvswitch/types.h" |
f125905c | 26 | #include <netinet/ip.h> |
064af421 BP |
27 | |
28 | int set_nonblocking(int fd); | |
29 | int get_max_fds(void); | |
13f2ef97 | 30 | |
064af421 | 31 | int lookup_ip(const char *host_name, struct in_addr *address); |
d31f1109 | 32 | int lookup_ipv6(const char *host_name, struct in6_addr *address); |
13f2ef97 BP |
33 | |
34 | int lookup_hostname(const char *host_name, struct in_addr *); | |
35 | ||
064af421 | 36 | int get_socket_error(int sock); |
c1c19657 | 37 | int get_socket_rcvbuf(int sock); |
064af421 BP |
38 | int check_connection_completion(int fd); |
39 | int drain_rcvbuf(int fd); | |
40 | void drain_fd(int fd, size_t n_packets); | |
5ca92d1d | 41 | int make_unix_socket(int style, bool nonblock, |
064af421 BP |
42 | const char *bind_path, const char *connect_path); |
43 | int get_unix_name_len(socklen_t sun_len); | |
dbba996b | 44 | ovs_be32 guess_netmask(ovs_be32 ip); |
a8b5f8b4 | 45 | int get_null_fd(void); |
064af421 | 46 | |
52f8a75e BP |
47 | bool inet_parse_active(const char *target, uint16_t default_port, |
48 | struct sockaddr_in *sinp); | |
4f2eb9a7 | 49 | int inet_open_active(int style, const char *target, uint16_t default_port, |
f125905c | 50 | struct sockaddr_in *sinp, int *fdp, uint8_t dscp); |
d98fa503 | 51 | |
995337c4 | 52 | bool inet_parse_passive(const char *target, int default_port, |
d98fa503 | 53 | struct sockaddr_in *sinp); |
36775dad | 54 | int inet_open_passive(int style, const char *target, int default_port, |
f125905c | 55 | struct sockaddr_in *sinp, uint8_t dscp); |
78ff0270 | 56 | |
064af421 BP |
57 | int read_fully(int fd, void *, size_t, size_t *bytes_read); |
58 | int write_fully(int fd, const void *, size_t, size_t *bytes_written); | |
59 | ||
8e71cf88 | 60 | int fsync_parent_dir(const char *file_name); |
26efd256 | 61 | int get_mtime(const char *file_name, struct timespec *mtime); |
8e71cf88 | 62 | |
279c9e03 BP |
63 | void xpipe(int fds[2]); |
64 | ||
f89ffb0e BP |
65 | char *describe_fd(int fd); |
66 | ||
f125905c MM |
67 | /* Default value of dscp bits for connection between controller and manager. |
68 | * Value of IPTOS_PREC_INTERNETCONTROL = 0xc0 which is defined | |
cea15768 EJ |
69 | * in <netinet/ip.h> is used. */ |
70 | #define DSCP_DEFAULT (IPTOS_PREC_INTERNETCONTROL >> 2) | |
f125905c | 71 | |
064af421 | 72 | #endif /* socket-util.h */ |