OLD | NEW |
1 #define _GNU_SOURCE 1 | 1 #define _GNU_SOURCE 1 |
2 #include <sys/types.h> | 2 #include <sys/types.h> |
3 #include <sys/socket.h> | 3 #include <sys/socket.h> |
4 #include <netinet/in.h> | 4 #include <netinet/in.h> |
5 #include <linux/netlink.h> | 5 #include <linux/netlink.h> |
6 #include <linux/rtnetlink.h> | 6 #include <linux/rtnetlink.h> |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <sys/select.h> | 8 #include <sys/select.h> |
9 #include <pthread.h> | 9 #include <pthread.h> |
10 #include "test-macros.h" | 10 #include "test-macros.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 msg.msg_namelen = sizeof (dst); | 34 msg.msg_namelen = sizeof (dst); |
35 msg.msg_iov = &iov; | 35 msg.msg_iov = &iov; |
36 msg.msg_iovlen = 1; | 36 msg.msg_iovlen = 1; |
37 msg.msg_control = NULL; | 37 msg.msg_control = NULL; |
38 msg.msg_controllen = 0; | 38 msg.msg_controllen = 0; |
39 | 39 |
40 ret = sendmsg (sock, &msg, 0); | 40 ret = sendmsg (sock, &msg, 0); |
41 TEST_ASSERT_EQUAL (ret, sizeof (buf)); | 41 TEST_ASSERT_EQUAL (ret, sizeof (buf)); |
42 OUTPUT ("RAW send ret = " << ret); | 42 OUTPUT ("RAW send ret = " << ret); |
43 | 43 |
| 44 // recvmsg with MSG_PEEK |
| 45 iov.iov_base = (void *) buf; |
| 46 iov.iov_len = 2; |
| 47 ret = recvmsg (sock, &msg, MSG_PEEK); |
| 48 TEST_ASSERT_EQUAL (ret, 2); |
| 49 OUTPUT ("RAW recv PEEK ret = " << ret); |
| 50 |
44 // recvmsg with short buf | 51 // recvmsg with short buf |
45 iov.iov_base = (void *) buf; | 52 iov.iov_base = (void *) buf; |
46 iov.iov_len = sizeof (buf); | 53 iov.iov_len = sizeof (buf); |
47 ret = recvmsg (sock, &msg, 0); | 54 ret = recvmsg (sock, &msg, 0); |
48 TEST_ASSERT_EQUAL (ret, sizeof (buf)); | 55 TEST_ASSERT_EQUAL (ret, sizeof (buf)); |
49 OUTPUT ("RAW recv ret = " << ret); | 56 OUTPUT ("RAW recv ret = " << ret); |
50 | 57 |
51 char buf2[20]; | 58 char buf2[20]; |
52 iov.iov_base = (void *) buf2; | 59 iov.iov_base = (void *) buf2; |
53 iov.iov_len = sizeof (buf2); | 60 iov.iov_len = sizeof (buf2); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 msg.msg_iov = &iov; | 111 msg.msg_iov = &iov; |
105 msg.msg_iovlen = 1; | 112 msg.msg_iovlen = 1; |
106 msg.msg_control = NULL; | 113 msg.msg_control = NULL; |
107 msg.msg_controllen = 0; | 114 msg.msg_controllen = 0; |
108 | 115 |
109 ret = sendmsg (sock, &msg, 0); | 116 ret = sendmsg (sock, &msg, 0); |
110 TEST_ASSERT_EQUAL (ret, sizeof (buf)); | 117 TEST_ASSERT_EQUAL (ret, sizeof (buf)); |
111 OUTPUT ("UDP send ret = " << ret); | 118 OUTPUT ("UDP send ret = " << ret); |
112 | 119 |
113 // recvmsg | 120 // recvmsg |
| 121 iov.iov_base = (void *) buf; |
| 122 iov.iov_len = sizeof (buf); |
114 ret = recvmsg (sock, &msg, 0); | 123 ret = recvmsg (sock, &msg, 0); |
115 TEST_ASSERT_EQUAL (ret, sizeof (buf)); | 124 TEST_ASSERT_EQUAL (ret, sizeof (buf)); |
116 OUTPUT ("UDP recv ret = " << ret); | 125 OUTPUT ("UDP recv ret = " << ret); |
117 | 126 |
118 // close | 127 // close |
119 close (sock); | 128 close (sock); |
120 TEST_ASSERT_UNEQUAL (sock, -1); | 129 TEST_ASSERT_UNEQUAL (sock, -1); |
121 } | 130 } |
122 | 131 |
123 static void * | 132 static void * |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 } | 344 } |
336 | 345 |
337 int main (int argc, char *argv[]) | 346 int main (int argc, char *argv[]) |
338 { | 347 { |
339 test_raw (); | 348 test_raw (); |
340 test_udp (); | 349 test_udp (); |
341 test_tcp (); | 350 test_tcp (); |
342 test_netlink (); | 351 test_netlink (); |
343 return 0; | 352 return 0; |
344 } | 353 } |
OLD | NEW |