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
| @@ -291,7 +291,7 @@ if_start(void) | @@ -291,7 +291,7 @@ if_start(void) | ||
| 291 | } | 291 | } |
| 292 | 292 | ||
| 293 | /* Encapsulate the packet for sending */ | 293 | /* Encapsulate the packet for sending */ |
| 294 | - if_encap(ifm->m_data, ifm->m_len); | 294 | + if_encap((uint8_t *)ifm->m_data, ifm->m_len); |
| 295 | 295 | ||
| 296 | m_free(ifm); | 296 | m_free(ifm); |
| 297 | 297 |
slirp/misc.c
| @@ -304,7 +304,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | @@ -304,7 +304,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty) | ||
| 304 | { | 304 | { |
| 305 | int s; | 305 | int s; |
| 306 | struct sockaddr_in addr; | 306 | struct sockaddr_in addr; |
| 307 | - int addrlen = sizeof(addr); | 307 | + socklen_t addrlen = sizeof(addr); |
| 308 | int opt; | 308 | int opt; |
| 309 | int master = -1; | 309 | int master = -1; |
| 310 | char *argv[256]; | 310 | char *argv[256]; |
slirp/socket.c
| @@ -392,7 +392,7 @@ sorecvfrom(so) | @@ -392,7 +392,7 @@ sorecvfrom(so) | ||
| 392 | struct socket *so; | 392 | struct socket *so; |
| 393 | { | 393 | { |
| 394 | struct sockaddr_in addr; | 394 | struct sockaddr_in addr; |
| 395 | - int addrlen = sizeof(struct sockaddr_in); | 395 | + socklen_t addrlen = sizeof(struct sockaddr_in); |
| 396 | 396 | ||
| 397 | DEBUG_CALL("sorecvfrom"); | 397 | DEBUG_CALL("sorecvfrom"); |
| 398 | DEBUG_ARG("so = %lx", (long)so); | 398 | DEBUG_ARG("so = %lx", (long)so); |
| @@ -545,7 +545,8 @@ solisten(port, laddr, lport, flags) | @@ -545,7 +545,8 @@ solisten(port, laddr, lport, flags) | ||
| 545 | { | 545 | { |
| 546 | struct sockaddr_in addr; | 546 | struct sockaddr_in addr; |
| 547 | struct socket *so; | 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 | DEBUG_CALL("solisten"); | 551 | DEBUG_CALL("solisten"); |
| 551 | DEBUG_ARG("port = %d", port); | 552 | DEBUG_ARG("port = %d", port); |
slirp/udp.c
| @@ -322,7 +322,7 @@ int udp_output(struct socket *so, struct mbuf *m, | @@ -322,7 +322,7 @@ int udp_output(struct socket *so, struct mbuf *m, | ||
| 322 | if ((so->so_faddr.s_addr & htonl(0x000000ff)) == htonl(0xff)) | 322 | if ((so->so_faddr.s_addr & htonl(0x000000ff)) == htonl(0xff)) |
| 323 | saddr.sin_addr.s_addr = alias_addr.s_addr; | 323 | saddr.sin_addr.s_addr = alias_addr.s_addr; |
| 324 | else if (addr->sin_addr.s_addr == loopback_addr.s_addr || | 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 | saddr.sin_addr.s_addr = so->so_faddr.s_addr; | 326 | saddr.sin_addr.s_addr = so->so_faddr.s_addr; |
| 327 | } | 327 | } |
| 328 | daddr.sin_addr = so->so_laddr; | 328 | daddr.sin_addr = so->so_laddr; |
| @@ -410,7 +410,7 @@ static void | @@ -410,7 +410,7 @@ static void | ||
| 410 | udp_emu(struct socket *so, struct mbuf *m) | 410 | udp_emu(struct socket *so, struct mbuf *m) |
| 411 | { | 411 | { |
| 412 | struct sockaddr_in addr; | 412 | struct sockaddr_in addr; |
| 413 | - int addrlen = sizeof(addr); | 413 | + socklen_t addrlen = sizeof(addr); |
| 414 | #ifdef EMULATE_TALK | 414 | #ifdef EMULATE_TALK |
| 415 | CTL_MSG_OLD *omsg; | 415 | CTL_MSG_OLD *omsg; |
| 416 | CTL_MSG *nmsg; | 416 | CTL_MSG *nmsg; |
| @@ -641,7 +641,7 @@ udp_listen(port, laddr, lport, flags) | @@ -641,7 +641,7 @@ udp_listen(port, laddr, lport, flags) | ||
| 641 | { | 641 | { |
| 642 | struct sockaddr_in addr; | 642 | struct sockaddr_in addr; |
| 643 | struct socket *so; | 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 | if ((so = socreate()) == NULL) { | 646 | if ((so = socreate()) == NULL) { |
| 647 | free(so); | 647 | free(so); |