From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58929) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SxPfA-0005RX-Np for qemu-devel@nongnu.org; Fri, 03 Aug 2012 17:44:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SxPf9-0003cF-64 for qemu-devel@nongnu.org; Fri, 03 Aug 2012 17:44:04 -0400 Received: from mout.web.de ([212.227.17.12]:62433) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SxPf8-0003c2-Rv for qemu-devel@nongnu.org; Fri, 03 Aug 2012 17:44:03 -0400 Message-ID: <501C4613.8020504@web.de> Date: Fri, 03 Aug 2012 23:43:47 +0200 From: Jan Kiszka MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig6FA1C715333B56F93D20D604" Subject: [Qemu-devel] [PULL] slirp: Handle whole 127.0.0.0/8 network as local addresses. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel , Anders Waldenborg This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig6FA1C715333B56F93D20D604 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable The following changes since commit 0f66998ff6d5d2133b9b08471a44e13b11119e= 50: vnc: disable VNC password authentication (security type 2) when in FIPS= mode (2012-08-03 14:28:40 -0500) are available in the git repository at: git://git.kiszka.org/qemu.git queues/slirp Anders Waldenborg (1): slirp: Handle whole 127.0.0.0/8 network as local addresses. slirp/main.h | 1 + slirp/slirp.c | 3 +++ slirp/tcp_subr.c | 7 +++++-- 3 files changed, 9 insertions(+), 2 deletions(-) --- slirp: Handle whole 127.0.0.0/8 network as local addresses. Changes so translation of remote address to the host's ip address in the virtual network happens for all addresses in the 127.0.0.0/8 network, not just 127.0.0.1. This fixes so that hostfwd bound to addresses such as 127.0.0.2 works. Signed-off-by: Anders Waldenborg Signed-off-by: Jan Kiszka --- slirp/main.h | 1 + slirp/slirp.c | 3 +++ slirp/tcp_subr.c | 7 +++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/slirp/main.h b/slirp/main.h index 028df4b..bf601e2 100644 --- a/slirp/main.h +++ b/slirp/main.h @@ -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; diff --git a/slirp/slirp.c b/slirp/slirp.c index 90473eb..9787104 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -29,6 +29,8 @@ =20 /* host loopback address */ struct in_addr loopback_addr; +/* host loopback network mask */ +in_addr_t loopback_mask; =20 /* emulated hosts use the MAC addr 52:55:IP:IP:IP:IP */ static const uint8_t special_ethaddr[ETH_ALEN] =3D { @@ -191,6 +193,7 @@ static void slirp_init_once(void) #endif =20 loopback_addr.s_addr =3D htonl(INADDR_LOOPBACK); + loopback_mask =3D htonl(IN_CLASSA_NET); } =20 static void slirp_state_save(QEMUFile *f, void *opaque); diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c index 0a545c4..025b374 100644 --- a/slirp/tcp_subr.c +++ b/slirp/tcp_subr.c @@ -435,8 +435,11 @@ tcp_connect(struct socket *inso) so->so_fport =3D addr.sin_port; so->so_faddr =3D addr.sin_addr; /* Translate connections from localhost to the real hostname */ - if (so->so_faddr.s_addr =3D=3D 0 || so->so_faddr.s_addr =3D=3D loopback= _addr.s_addr) - so->so_faddr =3D slirp->vhost_addr; + if (so->so_faddr.s_addr =3D=3D 0 || + (so->so_faddr.s_addr & loopback_mask) =3D=3D + (loopback_addr.s_addr & loopback_mask)) { + so->so_faddr =3D slirp->vhost_addr; + } =20 /* Close the accept() socket, set right state */ if (inso->so_state & SS_FACCEPTONCE) { --=20 1.7.3.4 --------------enig6FA1C715333B56F93D20D604 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAlAcRhUACgkQitSsb3rl5xSsxwCgrjVqXd50GuXzTqRvgupsuKsC 5EsAniRvr5+1OS69D3BOq/tTonS8tFhh =K4/f -----END PGP SIGNATURE----- --------------enig6FA1C715333B56F93D20D604--