diff --git a/daemon/media_player.c b/daemon/media_player.c index eef732f7f..93b74f06f 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -322,7 +322,7 @@ static void send_timer_rtcp(struct send_timer *st, struct ssrc_entry_call *ssrc_ } struct async_send_req { - struct uring_req_sendmsg req; // must be first + struct uring_req_sendmsg req; // must be first, followed by iov struct iovec iov; void *buf; }; diff --git a/daemon/stun.c b/daemon/stun.c index 1d474cdc1..7a2d92c48 100644 --- a/daemon/stun.c +++ b/daemon/stun.c @@ -664,9 +664,9 @@ ignore: } struct async_stun_req { - struct uring_req_sendmsg req; // must be first - struct header hdr; + struct uring_req_sendmsg req; // must be first, followed by iov struct iovec iov[10]; /* hdr, username x2, ice_controlled/ing, priority, uc, fp, mi, sw x2 */ + struct header hdr; char username_buf[256]; struct generic un_attr; struct controlled_ing cc; diff --git a/lib/uring.h b/lib/uring.h index b3435c0f8..c98009d27 100644 --- a/lib/uring.h +++ b/lib/uring.h @@ -17,6 +17,7 @@ struct uring_req_sendmsg { struct uring_req req; struct msghdr mh; struct sockaddr_storage ss; // destination address + struct iovec iov[0]; // provided by outer container }; struct uring_methods {