Attached is a 3rd iteration of the patch which changes address lookup so
that gethostbyname is tried first, then falling back to inet_ntoa. Tested
it working with a variety of hostnames, some starting with digits, and
tested with 0.0.0.0, 127.0.0.1 and a non-localhost IP.
Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>
Regards,
Dan.
On Fri, Sep 29, 2006 at 01:03:02PM -0500, Anthony Liguori wrote:
>
> >Ok, attached is an adaptation of Jeremy's initial patch to do this.
> >
> >The logic for determining which interface to listen on goes like this:
> >
> > - If 'vnclisten' is set in guest config, use that (can use 0.0.0.0 to
> > indicate all interfaces)
> > - If 'vnc-listen' is set in /etc/xen/xend-config.sxp, use that
> > (again can set it to 0.0.0.0 to listen on all interfaces by
> > default)
> > - Else use 127.0.0.1
> >
> >So, this makes VNC local only by default using 127.0.0.1. Anyone who wants
> >the old behaviour can just change xend-config.sxp setting...
> >
> > (vnc-listen '0.0.0.0')
> >
> >...which will affect all guests without an explicit setting.
> >
> > Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>
> >
> >Regards,
> >Dan.
> >
> >------------------------------------------------------------------------
> >
> >diff -r 593b5623a0d2 tools/examples/xend-config.sxp
> >--- a/tools/examples/xend-config.sxp Fri Sep 29 15:40:35 2006 +0100
> >+++ b/tools/examples/xend-config.sxp Fri Sep 29 13:01:11 2006 -0400
> >@@ -130,3 +130,8 @@
> >
> > # The tool used for initiating virtual TPM migration
> > #(external-migration-tool '')
> >+
> >+# The interface for VNC servers to listen on. Defaults
> >+# to 127.0.0.1 To restore old 'listen everywhere' behaviour
> >+# set this to 0.0.0.0
> >+#(vnc-listen '127.0.0.1')
> >diff -r 593b5623a0d2 tools/examples/xmexample.hvm
> >--- a/tools/examples/xmexample.hvm Fri Sep 29 15:40:35 2006 +0100
> >+++ b/tools/examples/xmexample.hvm Fri Sep 29 13:01:11 2006 -0400
> >@@ -132,6 +132,11 @@ vnc=1
> > vnc=1
> >
> > #----------------------------------------------------------------------------
> >+# address that should be listened on for the VNC server if vnc is set.
> >+# default is to use 'vnc-listen' setting from /etc/xen/xend-config.sxp
> >+#vnclisten="127.0.0.1"
> >+
> >+#----------------------------------------------------------------------------
> > # set VNC display number, default = domid
> > #vncdisplay=1
> >
> >diff -r 593b5623a0d2 tools/ioemu/vl.c
> >--- a/tools/ioemu/vl.c Fri Sep 29 15:40:35 2006 +0100
> >+++ b/tools/ioemu/vl.c Fri Sep 29 13:01:11 2006 -0400
> >@@ -122,6 +122,7 @@ int nographic;
> > int nographic;
> > int vncviewer;
> > int vncunused;
> >+struct sockaddr_in vnclisten_addr;
> > const char* keyboard_layout = NULL;
> > int64_t ticks_per_sec;
> > char *boot_device = NULL;
> >@@ -2783,10 +2784,24 @@ fail:
> > return -1;
> > }
> >
> >+int parse_host(struct sockaddr_in *saddr, const char *buf)
> >+{
> >+ struct hostent *he;
> >+
> >+ if (isdigit(buf[0])) {
> >+ if (!inet_aton(buf, &saddr->sin_addr))
> >+ return -1;
> >
>
> Valid hostnames can begin with a digit as long as there are non-digits
> in the name. What I normally do is try inet_aton() iff gethostbyname
> fails first.
>
> Regards,
>
> Anthony Liguori
>
> >------------------------------------------------------------------------
> >
> >_______________________________________________
> >Xen-devel mailing list
> >Xen-devel@xxxxxxxxxxxxxxxxxxx
> >http://lists.xensource.com/xen-devel
> >
>
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
xen-vnclisten-3.patch
Description: Text document
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|