aboutsummaryrefslogtreecommitdiff
path: root/test/socket-rw-eagain.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/socket-rw-eagain.c')
-rw-r--r--test/socket-rw-eagain.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/test/socket-rw-eagain.c b/test/socket-rw-eagain.c
index f15c0c1..2d6a817 100644
--- a/test/socket-rw-eagain.c
+++ b/test/socket-rw-eagain.c
@@ -15,6 +15,7 @@
#include <sys/un.h>
#include <netinet/tcp.h>
#include <netinet/in.h>
+#include <arpa/inet.h>
#include "liburing.h"
@@ -24,6 +25,7 @@ int main(int argc, char *argv[])
int32_t recv_s0;
int32_t val = 1;
struct sockaddr_in addr;
+ struct iovec iov_r[1], iov_w[1];
if (argc > 1)
return 0;
@@ -38,10 +40,10 @@ int main(int argc, char *argv[])
assert(ret != -1);
addr.sin_family = AF_INET;
- addr.sin_addr.s_addr = 0x0100007fU;
+ addr.sin_addr.s_addr = inet_addr("127.0.0.1");
do {
- addr.sin_port = (rand() % 61440) + 4096;
+ addr.sin_port = htons((rand() % 61440) + 4096);
ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr));
if (!ret)
break;
@@ -92,36 +94,36 @@ int main(int argc, char *argv[])
}
struct io_uring m_io_uring;
+ struct io_uring_params p = { };
- ret = io_uring_queue_init(32, &m_io_uring, 0);
+ ret = io_uring_queue_init_params(32, &m_io_uring, &p);
assert(ret >= 0);
+ if (p.features & IORING_FEAT_FAST_POLL)
+ return 0;
+
char recv_buff[128];
char send_buff[128];
{
- struct iovec iov[1];
-
- iov[0].iov_base = recv_buff;
- iov[0].iov_len = sizeof(recv_buff);
+ iov_r[0].iov_base = recv_buff;
+ iov_r[0].iov_len = sizeof(recv_buff);
struct io_uring_sqe* sqe = io_uring_get_sqe(&m_io_uring);
assert(sqe != NULL);
- io_uring_prep_readv(sqe, p_fd[0], iov, 1, 0);
+ io_uring_prep_readv(sqe, p_fd[0], iov_r, 1, 0);
sqe->user_data = 1;
}
{
- struct iovec iov[1];
-
- iov[0].iov_base = send_buff;
- iov[0].iov_len = sizeof(send_buff);
+ iov_w[0].iov_base = send_buff;
+ iov_w[0].iov_len = sizeof(send_buff);
struct io_uring_sqe* sqe = io_uring_get_sqe(&m_io_uring);
assert(sqe != NULL);
- io_uring_prep_writev(sqe, p_fd[1], iov, 1, 0);
+ io_uring_prep_writev(sqe, p_fd[1], iov_w, 1, 0);
sqe->user_data = 2;
}