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); | ... | ... |