Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 1 | /* |
Cyril Hrubis | bbdb9f7 | 2016-03-16 15:53:57 +0100 | [diff] [blame] | 2 | * Copyright (c) 2016 Cyril Hrubis <chrubis@suse.cz> |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 3 | * Copyright (c) 2015 Fujitsu Ltd. |
| 4 | * |
| 5 | * This program is free software: you can redistribute it and/or modify |
| 6 | * it under the terms of the GNU General Public License as published by |
Cyril Hrubis | bbdb9f7 | 2016-03-16 15:53:57 +0100 | [diff] [blame] | 7 | * the Free Software Foundation, either version 2 of the License, or |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 8 | * (at your option) any later version. |
| 9 | * |
| 10 | * This program is distributed in the hope that it will be useful, |
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 13 | * GNU General Public License for more details. |
| 14 | * |
| 15 | * You should have received a copy of the GNU General Public License |
Cyril Hrubis | bbdb9f7 | 2016-03-16 15:53:57 +0100 | [diff] [blame] | 16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 17 | */ |
| 18 | |
Cyril Hrubis | bbdb9f7 | 2016-03-16 15:53:57 +0100 | [diff] [blame] | 19 | #ifndef SAFE_NET_FN_H__ |
| 20 | #define SAFE_NET_FN_H__ |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 21 | |
| 22 | #include <sys/types.h> |
| 23 | #include <sys/socket.h> |
| 24 | #include <netinet/in.h> |
| 25 | #include <arpa/inet.h> |
| 26 | #include <sys/un.h> |
| 27 | |
| 28 | char *tst_sock_addr(const struct sockaddr *sa, socklen_t salen, char *res, |
| 29 | size_t len); |
| 30 | |
| 31 | int safe_socket(const char *file, const int lineno, void (cleanup_fn)(void), |
| 32 | int domain, int type, int protocol); |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 33 | |
Alexey Kodanev | 5c189fc | 2017-02-27 13:53:34 +0300 | [diff] [blame^] | 34 | int safe_setsockopt(const char *file, const int lineno, int sockfd, int level, |
| 35 | int optname, const void *optval, socklen_t optlen); |
| 36 | |
| 37 | ssize_t safe_send(const char *file, const int lineno, char len_strict, |
| 38 | int sockfd, const void *buf, size_t len, int flags); |
| 39 | |
| 40 | ssize_t safe_sendto(const char *file, const int lineno, char len_strict, |
| 41 | int sockfd, const void *buf, size_t len, int flags, |
| 42 | const struct sockaddr *dest_addr, socklen_t addrlen); |
| 43 | |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 44 | int safe_bind(const char *file, const int lineno, void (cleanup_fn)(void), |
| 45 | int socket, const struct sockaddr *address, |
| 46 | socklen_t address_len); |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 47 | |
| 48 | int safe_listen(const char *file, const int lineno, void (cleanup_fn)(void), |
| 49 | int socket, int backlog); |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 50 | |
| 51 | int safe_connect(const char *file, const int lineno, void (cleanup_fn)(void), |
| 52 | int sockfd, const struct sockaddr *addr, socklen_t addrlen); |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 53 | |
| 54 | int safe_getsockname(const char *file, const int lineno, |
| 55 | void (cleanup_fn)(void), int sockfd, struct sockaddr *addr, |
| 56 | socklen_t *addrlen); |
Zeng Linggang | 370a3a4 | 2015-10-21 11:15:23 +0800 | [diff] [blame] | 57 | |
Alexey Kodanev | 5065a9e | 2016-06-16 13:14:52 +0300 | [diff] [blame] | 58 | int safe_gethostname(const char *file, const int lineno, |
| 59 | char *name, size_t size); |
| 60 | |
Cyril Hrubis | bbdb9f7 | 2016-03-16 15:53:57 +0100 | [diff] [blame] | 61 | #endif /* SAFE_NET_FN_H__ */ |