Loading slirp/main.h +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ extern char *exec_shell; extern u_int curtime; extern fd_set *global_readfds, *global_writefds, *global_xfds; extern struct in_addr loopback_addr; extern in_addr_t loopback_mask; extern char *username; extern char *socket_path; extern int towrite_max; Loading slirp/slirp.c +3 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ /* host loopback address */ struct in_addr loopback_addr; /* host loopback network mask */ in_addr_t loopback_mask; /* emulated hosts use the MAC addr 52:55:IP:IP:IP:IP */ static const uint8_t special_ethaddr[ETH_ALEN] = { Loading Loading @@ -191,6 +193,7 @@ static void slirp_init_once(void) #endif loopback_addr.s_addr = htonl(INADDR_LOOPBACK); loopback_mask = htonl(IN_CLASSA_NET); } static void slirp_state_save(QEMUFile *f, void *opaque); Loading slirp/tcp_subr.c +5 −2 Original line number Diff line number Diff line Loading @@ -435,8 +435,11 @@ tcp_connect(struct socket *inso) so->so_fport = addr.sin_port; so->so_faddr = addr.sin_addr; /* Translate connections from localhost to the real hostname */ if (so->so_faddr.s_addr == 0 || so->so_faddr.s_addr == loopback_addr.s_addr) if (so->so_faddr.s_addr == 0 || (so->so_faddr.s_addr & loopback_mask) == (loopback_addr.s_addr & loopback_mask)) { so->so_faddr = slirp->vhost_addr; } /* Close the accept() socket, set right state */ if (inso->so_state & SS_FACCEPTONCE) { Loading Loading
slirp/main.h +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ extern char *exec_shell; extern u_int curtime; extern fd_set *global_readfds, *global_writefds, *global_xfds; extern struct in_addr loopback_addr; extern in_addr_t loopback_mask; extern char *username; extern char *socket_path; extern int towrite_max; Loading
slirp/slirp.c +3 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ /* host loopback address */ struct in_addr loopback_addr; /* host loopback network mask */ in_addr_t loopback_mask; /* emulated hosts use the MAC addr 52:55:IP:IP:IP:IP */ static const uint8_t special_ethaddr[ETH_ALEN] = { Loading Loading @@ -191,6 +193,7 @@ static void slirp_init_once(void) #endif loopback_addr.s_addr = htonl(INADDR_LOOPBACK); loopback_mask = htonl(IN_CLASSA_NET); } static void slirp_state_save(QEMUFile *f, void *opaque); Loading
slirp/tcp_subr.c +5 −2 Original line number Diff line number Diff line Loading @@ -435,8 +435,11 @@ tcp_connect(struct socket *inso) so->so_fport = addr.sin_port; so->so_faddr = addr.sin_addr; /* Translate connections from localhost to the real hostname */ if (so->so_faddr.s_addr == 0 || so->so_faddr.s_addr == loopback_addr.s_addr) if (so->so_faddr.s_addr == 0 || (so->so_faddr.s_addr & loopback_mask) == (loopback_addr.s_addr & loopback_mask)) { so->so_faddr = slirp->vhost_addr; } /* Close the accept() socket, set right state */ if (inso->so_state & SS_FACCEPTONCE) { Loading