From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FaW31-00026S-UV for qemu-devel@nongnu.org; Mon, 01 May 2006 06:54:35 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FaW30-00025z-Ss for qemu-devel@nongnu.org; Mon, 01 May 2006 06:54:35 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FaW30-00025w-N1 for qemu-devel@nongnu.org; Mon, 01 May 2006 06:54:34 -0400 Received: from [84.96.92.60] (helo=Smtp.neuf.fr) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FaW6n-0007Yw-SR for qemu-devel@nongnu.org; Mon, 01 May 2006 06:58:30 -0400 Received: from [84.102.211.147] by sp604001mt.gpm.neuf.ld (Sun Java System Messaging Server 6.2-5.05 (built Feb 16 2006)) with ESMTP id <0IYL007C12AEQSF0@sp604001mt.gpm.neuf.ld> for qemu-devel@nongnu.org; Mon, 01 May 2006 12:54:14 +0200 (CEST) Date: Mon, 01 May 2006 12:53:31 +0200 From: Fabrice Bellard Subject: Re: [Qemu-devel] [PATCH] Always use 10.0.2.2 as host addr for -net user (slirp) In-reply-to: Message-id: <4455E8AB.4060006@bellard.org> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii; format=flowed Content-transfer-encoding: 7BIT References: Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org I am not sure this patch is sufficient: sometimes our_addr is used to open socket on the host side and 10.0.2.2 has a meanning only on the VM side. Fabrice. Ed Swierk wrote: > A couple of serious problems remain in the slirp redirection code > after the patch Paul applied on 23 April. > > * If the IP address returned by gethostbyname(gethostname()) is the > address of one of the host's Ethernet interfaces, bringing down that > interface or changing its IP address disrupts redir connections > between the host and VM. > > * If the IP address returned by gethostbyname(gethostname()) is > outside the 10.0.2.0/24 subnet, and the user has not manually added > this address to the routing table within the VM (in addition to the > 10.0.2.0/24 route added by DHCP), TCP connections from the host to the > VM are never answered, because the response packets are dropped on the > floor. > > The attached patch solves both of these problems simply by always > using 10.0.2.2 as our_addr. There seems to be no value in exposing the > host's "real" address to the VM; thanks to NAT, 10.0.2.2 always works. > > --Ed > > > ------------------------------------------------------------------------ > > diff -BurN qemu-snapshot-2006-04-27_23.orig/slirp/misc.c qemu-snapshot-2006-04-27_23/slirp/misc.c > --- qemu-snapshot-2006-04-27_23.orig/slirp/misc.c 2006-04-23 19:41:17.000000000 +0000 > +++ qemu-snapshot-2006-04-27_23/slirp/misc.c 2006-04-27 22:19:40.000000000 +0000 > @@ -87,17 +87,7 @@ > void > getouraddr() > { > - char buff[256]; > - struct hostent *he = NULL; > - > - if (gethostname(buff,256) == 0) > - he = gethostbyname(buff); > - if (he) > - our_addr = *(struct in_addr *)he->h_addr; > - /* If the host doesn't have a useful IP address then use the > - guest side address. */ > - if (our_addr.s_addr == 0 || our_addr.s_addr == loopback_addr.s_addr) > - our_addr.s_addr = special_addr.s_addr | htonl(CTL_ALIAS); > + our_addr.s_addr = special_addr.s_addr | htonl(CTL_ALIAS); > } > > #if SIZEOF_CHAR_P == 8 > > > ------------------------------------------------------------------------ > > _______________________________________________ > Qemu-devel mailing list > Qemu-devel@nongnu.org > http://lists.nongnu.org/mailman/listinfo/qemu-devel