udp: Fix comparison of seen IPv4 address for local connections

c->addr4_seen is stored in network order.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
Stefano Brivio 2021-09-09 15:30:12 +02:00
parent e58828f340
commit ecf1f97564

3
udp.c
View file

@ -761,7 +761,8 @@ void udp_sock_handler(struct ctx *c, union epoll_ref ref, uint32_t events,
s_addr = ntohl(b->s_in.sin_addr.s_addr);
if (s_addr >> IN_CLASSA_NSHIFT == IN_LOOPBACKNET ||
s_addr == INADDR_ANY || s_addr == c->addr4_seen) {
s_addr == INADDR_ANY ||
s_addr == ntohl(c->addr4_seen)) {
in_port_t src = htons(b->s_in.sin_port);
b->iph.saddr = c->gw4;