udp: Fix retry mechanism on partial sendmmsg()
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
04d62bb013
commit
8e9333616a
1 changed files with 3 additions and 3 deletions
6
udp.c
6
udp.c
|
@ -645,7 +645,7 @@ void udp_sock_handler(struct ctx *c, union epoll_ref ref, uint32_t events,
|
||||||
struct timespec *now)
|
struct timespec *now)
|
||||||
{
|
{
|
||||||
int iov_in_msg, msg_i = 0, ret;
|
int iov_in_msg, msg_i = 0, ret;
|
||||||
ssize_t n, msglen, missing;
|
ssize_t n, msglen, missing = 0;
|
||||||
struct mmsghdr *tap_mmh;
|
struct mmsghdr *tap_mmh;
|
||||||
struct msghdr *cur_mh;
|
struct msghdr *cur_mh;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -829,7 +829,7 @@ void udp_sock_handler(struct ctx *c, union epoll_ref ref, uint32_t events,
|
||||||
*
|
*
|
||||||
* In pictures, given this example:
|
* In pictures, given this example:
|
||||||
*
|
*
|
||||||
* iov #0 iov #2 iov #3 iov #4
|
* iov #0 iov #1 iov #2 iov #3
|
||||||
* tap_mmh[ret - 1].msg_hdr: .... ...... ..... ......
|
* tap_mmh[ret - 1].msg_hdr: .... ...... ..... ......
|
||||||
* tap_mmh[ret - 1].msg_len: 7 .... ...
|
* tap_mmh[ret - 1].msg_len: 7 .... ...
|
||||||
*
|
*
|
||||||
|
@ -845,7 +845,7 @@ void udp_sock_handler(struct ctx *c, union epoll_ref ref, uint32_t events,
|
||||||
missing = msglen - tap_mmh[ret - 1].msg_len;
|
missing = msglen - tap_mmh[ret - 1].msg_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (missing) {
|
if (missing > 0) {
|
||||||
uint8_t **iov_base;
|
uint8_t **iov_base;
|
||||||
int first_offset;
|
int first_offset;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue