diff options
author | David Härdeman <david@hardeman.nu> | 2020-06-16 10:36:09 +0200 |
---|---|---|
committer | David Härdeman <david@hardeman.nu> | 2020-06-16 10:36:09 +0200 |
commit | 1ec5e43c9aef58e134f570946e280956db4ef189 (patch) | |
tree | 484d14d3ea4b4470bf847f0c34bcc18dca22b064 /uring.c | |
parent | e5d833027f7fcdef4d77d26b31b5907873331d0e (diff) |
Implement and use recvmsg in igmp
Diffstat (limited to 'uring.c')
-rw-r--r-- | uring.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -429,6 +429,26 @@ uring_openat(struct cfg *cfg, struct uring_task *task, const char *path, callbac } void +uring_tbuf_recvmsg(struct cfg *cfg, struct uring_task *task, callback_t callback) +{ + struct io_uring_sqe *sqe; + + if (!task->tbuf) { + error("%s: called with no tbuf set\n", __func__); + return; + } + + sqe = get_sqe(cfg, task); + task->tbuf->done = 0; + task->tbuf->len = 0; + task->tbuf->iov.iov_len = sizeof(task->tbuf->buf); + task->tbuf->msg.msg_namelen = task->addr.addrlen; + task->callback = callback; + io_uring_prep_recvmsg(sqe, task->fd, &task->tbuf->msg, 0); + io_uring_sqe_set_data(sqe, task); +} + +void uring_tbuf_sendmsg(struct cfg *cfg, struct uring_task *task, callback_t callback) { struct io_uring_sqe *sqe; |