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