1*49cdfc7eSAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0-or-later 2*49cdfc7eSAndroid Build Coastguard Worker * Copyright (c) 2016 Cyril Hrubis <[email protected]> 3*49cdfc7eSAndroid Build Coastguard Worker */ 4*49cdfc7eSAndroid Build Coastguard Worker 5*49cdfc7eSAndroid Build Coastguard Worker #ifndef TST_SAFE_NET_H__ 6*49cdfc7eSAndroid Build Coastguard Worker #define TST_SAFE_NET_H__ 7*49cdfc7eSAndroid Build Coastguard Worker 8*49cdfc7eSAndroid Build Coastguard Worker #include <sys/types.h> 9*49cdfc7eSAndroid Build Coastguard Worker #include <sys/socket.h> 10*49cdfc7eSAndroid Build Coastguard Worker #include <netinet/in.h> 11*49cdfc7eSAndroid Build Coastguard Worker #include <arpa/inet.h> 12*49cdfc7eSAndroid Build Coastguard Worker #include <sys/un.h> 13*49cdfc7eSAndroid Build Coastguard Worker 14*49cdfc7eSAndroid Build Coastguard Worker #include "safe_net_fn.h" 15*49cdfc7eSAndroid Build Coastguard Worker #include "tst_net.h" 16*49cdfc7eSAndroid Build Coastguard Worker 17*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_SOCKET(domain, type, protocol) \ 18*49cdfc7eSAndroid Build Coastguard Worker safe_socket(__FILE__, __LINE__, NULL, domain, type, protocol) 19*49cdfc7eSAndroid Build Coastguard Worker 20*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_SOCKETPAIR(domain, type, protocol, sv) \ 21*49cdfc7eSAndroid Build Coastguard Worker safe_socketpair(__FILE__, __LINE__, domain, type, protocol, sv) 22*49cdfc7eSAndroid Build Coastguard Worker 23*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_GETSOCKOPT(fd, level, optname, optval, optlen) \ 24*49cdfc7eSAndroid Build Coastguard Worker safe_getsockopt(__FILE__, __LINE__, fd, level, optname, optval, optlen) 25*49cdfc7eSAndroid Build Coastguard Worker 26*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_SETSOCKOPT(fd, level, optname, optval, optlen) \ 27*49cdfc7eSAndroid Build Coastguard Worker safe_setsockopt(__FILE__, __LINE__, fd, level, optname, optval, optlen) 28*49cdfc7eSAndroid Build Coastguard Worker 29*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_SETSOCKOPT_INT(fd, l, n, val) \ 30*49cdfc7eSAndroid Build Coastguard Worker do { \ 31*49cdfc7eSAndroid Build Coastguard Worker int v = val; \ 32*49cdfc7eSAndroid Build Coastguard Worker safe_setsockopt(__FILE__, __LINE__, fd, l, n, &v, sizeof(v)); \ 33*49cdfc7eSAndroid Build Coastguard Worker } while (0) 34*49cdfc7eSAndroid Build Coastguard Worker 35*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_SEND(strict, sockfd, buf, len, flags) \ 36*49cdfc7eSAndroid Build Coastguard Worker safe_send(__FILE__, __LINE__, strict, sockfd, buf, len, flags) 37*49cdfc7eSAndroid Build Coastguard Worker 38*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_SENDTO(strict, fd, buf, len, flags, dest_addr, addrlen) \ 39*49cdfc7eSAndroid Build Coastguard Worker safe_sendto(__FILE__, __LINE__, strict, fd, buf, len, flags, \ 40*49cdfc7eSAndroid Build Coastguard Worker dest_addr, addrlen) 41*49cdfc7eSAndroid Build Coastguard Worker 42*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_SENDMSG(msg_len, fd, msg, flags) \ 43*49cdfc7eSAndroid Build Coastguard Worker safe_sendmsg(__FILE__, __LINE__, msg_len, fd, msg, flags) 44*49cdfc7eSAndroid Build Coastguard Worker 45*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_RECV(msg_len, fd, buf, size, flags) \ 46*49cdfc7eSAndroid Build Coastguard Worker safe_recv(__FILE__, __LINE__, (msg_len), (fd), (buf), (size), (flags)) 47*49cdfc7eSAndroid Build Coastguard Worker 48*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_RECVMSG(msg_len, fd, msg, flags) \ 49*49cdfc7eSAndroid Build Coastguard Worker safe_recvmsg(__FILE__, __LINE__, msg_len, fd, msg, flags) 50*49cdfc7eSAndroid Build Coastguard Worker 51*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_BIND(socket, address, address_len) \ 52*49cdfc7eSAndroid Build Coastguard Worker safe_bind(__FILE__, __LINE__, NULL, socket, address, \ 53*49cdfc7eSAndroid Build Coastguard Worker address_len) 54*49cdfc7eSAndroid Build Coastguard Worker 55*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_LISTEN(socket, backlog) \ 56*49cdfc7eSAndroid Build Coastguard Worker safe_listen(__FILE__, __LINE__, NULL, socket, backlog) 57*49cdfc7eSAndroid Build Coastguard Worker 58*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_ACCEPT(sockfd, addr, addrlen) \ 59*49cdfc7eSAndroid Build Coastguard Worker safe_accept(__FILE__, __LINE__, NULL, sockfd, addr, addrlen) 60*49cdfc7eSAndroid Build Coastguard Worker 61*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_CONNECT(sockfd, addr, addrlen) \ 62*49cdfc7eSAndroid Build Coastguard Worker safe_connect(__FILE__, __LINE__, NULL, sockfd, addr, addrlen) 63*49cdfc7eSAndroid Build Coastguard Worker 64*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_GETSOCKNAME(sockfd, addr, addrlen) \ 65*49cdfc7eSAndroid Build Coastguard Worker safe_getsockname(__FILE__, __LINE__, NULL, sockfd, addr, \ 66*49cdfc7eSAndroid Build Coastguard Worker addrlen) 67*49cdfc7eSAndroid Build Coastguard Worker 68*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_GETHOSTNAME(name, size) \ 69*49cdfc7eSAndroid Build Coastguard Worker safe_gethostname(__FILE__, __LINE__, name, size) 70*49cdfc7eSAndroid Build Coastguard Worker 71*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_SETHOSTNAME(name, size) \ 72*49cdfc7eSAndroid Build Coastguard Worker safe_sethostname(__FILE__, __LINE__, name, size) 73*49cdfc7eSAndroid Build Coastguard Worker 74*49cdfc7eSAndroid Build Coastguard Worker #define TST_GETSOCKPORT(sockfd) \ 75*49cdfc7eSAndroid Build Coastguard Worker tst_getsockport(__FILE__, __LINE__, sockfd) 76*49cdfc7eSAndroid Build Coastguard Worker 77*49cdfc7eSAndroid Build Coastguard Worker #define TST_GET_UNUSED_PORT(family, type) \ 78*49cdfc7eSAndroid Build Coastguard Worker tst_get_unused_port(__FILE__, __LINE__, NULL, family, type) 79*49cdfc7eSAndroid Build Coastguard Worker 80*49cdfc7eSAndroid Build Coastguard Worker /* new API only */ 81*49cdfc7eSAndroid Build Coastguard Worker 82*49cdfc7eSAndroid Build Coastguard Worker #define SAFE_GETADDRINFO(src_addr, port, hints, addr_info) \ 83*49cdfc7eSAndroid Build Coastguard Worker safe_getaddrinfo(__FILE__, __LINE__, src_addr, port, hints, addr_info) 84*49cdfc7eSAndroid Build Coastguard Worker 85*49cdfc7eSAndroid Build Coastguard Worker #endif /* TST_SAFE_NET_H__ */ 86