Commit 242acf3af4605adce933906bdc053b2414181ec7
1 parent
e62ab7a1
Special-case CTL_ALIAS instead of CTL_DNS in udp loopback test.
At the same time remove a bogus test (tested by Jason Wessel). Quiet some gcc4 warnings from slirp compilation. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4402 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
8 additions
and
7 deletions
slirp/if.c
slirp/misc.c
slirp/socket.c
... | ... | @@ -392,7 +392,7 @@ sorecvfrom(so) |
392 | 392 | struct socket *so; |
393 | 393 | { |
394 | 394 | struct sockaddr_in addr; |
395 | - int addrlen = sizeof(struct sockaddr_in); | |
395 | + socklen_t addrlen = sizeof(struct sockaddr_in); | |
396 | 396 | |
397 | 397 | DEBUG_CALL("sorecvfrom"); |
398 | 398 | DEBUG_ARG("so = %lx", (long)so); |
... | ... | @@ -545,7 +545,8 @@ solisten(port, laddr, lport, flags) |
545 | 545 | { |
546 | 546 | struct sockaddr_in addr; |
547 | 547 | struct socket *so; |
548 | - int s, addrlen = sizeof(addr), opt = 1; | |
548 | + int s, opt = 1; | |
549 | + socklen_t addrlen = sizeof(addr); | |
549 | 550 | |
550 | 551 | DEBUG_CALL("solisten"); |
551 | 552 | DEBUG_ARG("port = %d", port); | ... | ... |
slirp/udp.c
... | ... | @@ -322,7 +322,7 @@ int udp_output(struct socket *so, struct mbuf *m, |
322 | 322 | if ((so->so_faddr.s_addr & htonl(0x000000ff)) == htonl(0xff)) |
323 | 323 | saddr.sin_addr.s_addr = alias_addr.s_addr; |
324 | 324 | else if (addr->sin_addr.s_addr == loopback_addr.s_addr || |
325 | - ((so->so_faddr.s_addr & htonl(CTL_DNS)) == htonl(CTL_DNS))) | |
325 | + (ntohl(so->so_faddr.s_addr) & 0xff) != CTL_ALIAS) | |
326 | 326 | saddr.sin_addr.s_addr = so->so_faddr.s_addr; |
327 | 327 | } |
328 | 328 | daddr.sin_addr = so->so_laddr; |
... | ... | @@ -410,7 +410,7 @@ static void |
410 | 410 | udp_emu(struct socket *so, struct mbuf *m) |
411 | 411 | { |
412 | 412 | struct sockaddr_in addr; |
413 | - int addrlen = sizeof(addr); | |
413 | + socklen_t addrlen = sizeof(addr); | |
414 | 414 | #ifdef EMULATE_TALK |
415 | 415 | CTL_MSG_OLD *omsg; |
416 | 416 | CTL_MSG *nmsg; |
... | ... | @@ -641,7 +641,7 @@ udp_listen(port, laddr, lport, flags) |
641 | 641 | { |
642 | 642 | struct sockaddr_in addr; |
643 | 643 | struct socket *so; |
644 | - int addrlen = sizeof(struct sockaddr_in), opt = 1; | |
644 | + socklen_t addrlen = sizeof(struct sockaddr_in), opt = 1; | |
645 | 645 | |
646 | 646 | if ((so = socreate()) == NULL) { |
647 | 647 | free(so); | ... | ... |