From: Anthony Liguori <anthony@codemonkey.ws>
To: Jes.Sorensen@redhat.com
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH] Make VNC support optional
Date: Fri, 11 Mar 2011 07:36:27 -0600 [thread overview]
Message-ID: <4D7A255B.4000409@codemonkey.ws> (raw)
In-Reply-To: <1299847134-5854-1-git-send-email-Jes.Sorensen@redhat.com>
On 03/11/2011 06:38 AM, Jes.Sorensen@redhat.com wrote:
> From: Jes Sorensen<Jes.Sorensen@redhat.com>
>
> Per default VNC is enabled.
>
> Signed-off-by: Jes Sorensen<Jes.Sorensen@redhat.com>
> ---
> Makefile.objs | 19 ++++++++++---------
> configure | 37 +++++++++++++++++++++++++------------
> monitor.c | 16 ++++++++++++++++
> vl.c | 10 +++++++++-
> 4 files changed, 60 insertions(+), 22 deletions(-)
>
> diff --git a/Makefile.objs b/Makefile.objs
> index 9e98a66..58388e2 100644
> --- a/Makefile.objs
> +++ b/Makefile.objs
> @@ -127,19 +127,20 @@ common-obj-y += $(addprefix audio/, $(audio-obj-y))
> ui-obj-y += keymaps.o
> ui-obj-$(CONFIG_SDL) += sdl.o sdl_zoom.o x_keymap.o
> ui-obj-$(CONFIG_CURSES) += curses.o
> -ui-obj-y += vnc.o d3des.o
> -ui-obj-y += vnc-enc-zlib.o vnc-enc-hextile.o
> -ui-obj-y += vnc-enc-tight.o vnc-palette.o
> -ui-obj-y += vnc-enc-zrle.o
> -ui-obj-$(CONFIG_VNC_TLS) += vnc-tls.o vnc-auth-vencrypt.o
> -ui-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o
> -ui-obj-$(CONFIG_COCOA) += cocoa.o
> +vnc-obj-y += vnc.o d3des.o
> +vnc-obj-y += vnc-enc-zlib.o vnc-enc-hextile.o
> +vnc-obj-y += vnc-enc-tight.o vnc-palette.o
> +vnc-obj-y += vnc-enc-zrle.o
> +vnc-obj-$(CONFIG_VNC_TLS) += vnc-tls.o vnc-auth-vencrypt.o
> +vnc-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o
> +vnc-obj-$(CONFIG_COCOA) += cocoa.o
> ifdef CONFIG_VNC_THREAD
> -ui-obj-y += vnc-jobs-async.o
> +vnc-obj-y += vnc-jobs-async.o
> else
> -ui-obj-y += vnc-jobs-sync.o
> +vnc-obj-y += vnc-jobs-sync.o
> endif
> common-obj-y += $(addprefix ui/, $(ui-obj-y))
> +common-obj-$(CONFIG_VNC) += $(addprefix ui/, $(vnc-obj-y))
>
> common-obj-y += iov.o acl.o
> common-obj-$(CONFIG_THREAD) += qemu-thread.o
> diff --git a/configure b/configure
> index 39cdf2b..a64b750 100755
> --- a/configure
> +++ b/configure
> @@ -117,6 +117,7 @@ kvm=""
> kvm_para=""
> nptl=""
> sdl=""
> +vnc="yes"
> sparse="no"
> uuid=""
> vde=""
> @@ -539,6 +540,10 @@ for opt do
> ;;
> --enable-sdl) sdl="yes"
> ;;
> + --disable-vnc) vnc="no"
> + ;;
> + --enable-vnc) vnc="yes"
> + ;;
> --fmod-lib=*) fmod_lib="$optarg"
> ;;
> --fmod-inc=*) fmod_inc="$optarg"
> @@ -836,6 +841,8 @@ echo " --disable-strip disable stripping binaries"
> echo " --disable-werror disable compilation abort on warning"
> echo " --disable-sdl disable SDL"
> echo " --enable-sdl enable SDL"
> +echo " --disable-vnc disable VNC"
> +echo " --enable-vnc enable VNC"
> echo " --enable-cocoa enable COCOA (Mac OS X only)"
> echo " --audio-drv-list=LIST set audio drivers list:"
> echo " Available drivers: $audio_possible_drivers"
> @@ -1273,7 +1280,7 @@ fi
>
> ##########################################
> # VNC TLS detection
> -if test "$vnc_tls" != "no" ; then
> +if test "$vnc" = "yes" -a "$vnc_tls" != "no" ; then
> cat> $TMPC<<EOF
> #include<gnutls/gnutls.h>
> int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
> @@ -1293,7 +1300,7 @@ fi
>
> ##########################################
> # VNC SASL detection
> -if test "$vnc_sasl" != "no" ; then
> +if test "$vnc" = "yes" -a "$vnc_sasl" != "no" ; then
> cat> $TMPC<<EOF
> #include<sasl/sasl.h>
> #include<stdio.h>
> @@ -1315,7 +1322,7 @@ fi
>
> ##########################################
> # VNC JPEG detection
> -if test "$vnc_jpeg" != "no" ; then
> +if test "$vnc" = "yes" -a "$vnc_jpeg" != "no" ; then
> cat> $TMPC<<EOF
> #include<stdio.h>
> #include<jpeglib.h>
> @@ -1336,7 +1343,7 @@ fi
>
> ##########################################
> # VNC PNG detection
> -if test "$vnc_png" != "no" ; then
> +if test "$vnc" = "yes" -a "$vnc_png" != "no" ; then
> cat> $TMPC<<EOF
> //#include<stdio.h>
> #include<png.h>
> @@ -2495,11 +2502,14 @@ echo "Audio drivers $audio_drv_list"
> echo "Extra audio cards $audio_card_list"
> echo "Block whitelist $block_drv_whitelist"
> echo "Mixer emulation $mixemu"
> -echo "VNC TLS support $vnc_tls"
> -echo "VNC SASL support $vnc_sasl"
> -echo "VNC JPEG support $vnc_jpeg"
> -echo "VNC PNG support $vnc_png"
> -echo "VNC thread $vnc_thread"
> +echo "VNC support $vnc"
> +if test "$vnc" = "yes" ; then
> + echo "VNC TLS support $vnc_tls"
> + echo "VNC SASL support $vnc_sasl"
> + echo "VNC JPEG support $vnc_jpeg"
> + echo "VNC PNG support $vnc_png"
> + echo "VNC thread $vnc_thread"
> +fi
> if test -n "$sparc_cpu"; then
> echo "Target Sparc Arch $sparc_cpu"
> fi
> @@ -2649,6 +2659,9 @@ echo "CONFIG_BDRV_WHITELIST=$block_drv_whitelist">> $config_host_mak
> if test "$mixemu" = "yes" ; then
> echo "CONFIG_MIXEMU=y">> $config_host_mak
> fi
> +if test "$vnc" = "yes" ; then
> + echo "CONFIG_VNC=y">> $config_host_mak
> +fi
> if test "$vnc_tls" = "yes" ; then
> echo "CONFIG_VNC_TLS=y">> $config_host_mak
> echo "VNC_TLS_CFLAGS=$vnc_tls_cflags">> $config_host_mak
> @@ -2657,15 +2670,15 @@ if test "$vnc_sasl" = "yes" ; then
> echo "CONFIG_VNC_SASL=y">> $config_host_mak
> echo "VNC_SASL_CFLAGS=$vnc_sasl_cflags">> $config_host_mak
> fi
> -if test "$vnc_jpeg" != "no" ; then
> +if test "$vnc_jpeg" = "yes" ; then
> echo "CONFIG_VNC_JPEG=y">> $config_host_mak
> echo "VNC_JPEG_CFLAGS=$vnc_jpeg_cflags">> $config_host_mak
> fi
> -if test "$vnc_png" != "no" ; then
> +if test "$vnc_png" = "yes" ; then
> echo "CONFIG_VNC_PNG=y">> $config_host_mak
> echo "VNC_PNG_CFLAGS=$vnc_png_cflags">> $config_host_mak
> fi
> -if test "$vnc_thread" != "no" ; then
> +if test "$vnc_thread" = "yes" ; then
> echo "CONFIG_VNC_THREAD=y">> $config_host_mak
> echo "CONFIG_THREAD=y">> $config_host_mak
> fi
> diff --git a/monitor.c b/monitor.c
> index 22ae3bb..4425315 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -441,6 +441,7 @@ void monitor_protocol_event(MonitorEvent event, QObject *data)
> case QEVENT_RESUME:
> event_name = "RESUME";
> break;
> +#ifdef CONFIG_VNC
> case QEVENT_VNC_CONNECTED:
> event_name = "VNC_CONNECTED";
> break;
> @@ -450,6 +451,7 @@ void monitor_protocol_event(MonitorEvent event, QObject *data)
> case QEVENT_VNC_DISCONNECTED:
> event_name = "VNC_DISCONNECTED";
> break;
> +#endif
No need to if this out.
> case QEVENT_BLOCK_IO_ERROR:
> event_name = "BLOCK_IO_ERROR";
> break;
> @@ -1016,6 +1018,7 @@ static int do_quit(Monitor *mon, const QDict *qdict, QObject **ret_data)
> return 0;
> }
>
> +#ifdef CONFIG_VNC
> static int change_vnc_password(const char *password)
> {
> if (!password || !password[0]) {
> @@ -1062,6 +1065,7 @@ static int do_change_vnc(Monitor *mon, const char *target, const char *arg)
>
> return 0;
> }
> +#endif
>
> /**
> * do_change(): Change a removable medium, or VNC configuration
> @@ -1073,11 +1077,15 @@ static int do_change(Monitor *mon, const QDict *qdict, QObject **ret_data)
> const char *arg = qdict_get_try_str(qdict, "arg");
> int ret;
>
> +#ifdef CONFIG_VNC
> if (strcmp(device, "vnc") == 0) {
> ret = do_change_vnc(mon, target, arg);
> } else {
> +#endif
> ret = do_change_block(mon, device, target, arg);
> +#ifdef CONFIG_VNC
> }
> +#endif
>
> return ret;
> }
Or this stuff.
Provide a stub function for changing the VNC password and have it return
a failure. Then this function can check that failure and throw a proper
QError indicating that VNC is not present.
> @@ -1119,6 +1127,7 @@ static int set_password(Monitor *mon, const QDict *qdict, QObject **ret_data)
> return 0;
> }
>
> +#ifdef CONFIG_VNC
> if (strcmp(protocol, "vnc") == 0) {
> if (fail_if_connected || disconnect_if_connected) {
> /* vnc supports "connected=keep" only */
> @@ -1134,6 +1143,7 @@ static int set_password(Monitor *mon, const QDict *qdict, QObject **ret_data)
> }
> return 0;
> }
> +#endif
>
> qerror_report(QERR_INVALID_PARAMETER, "protocol");
> return -1;
> @@ -1170,6 +1180,7 @@ static int expire_password(Monitor *mon, const QDict *qdict, QObject **ret_data)
> return 0;
> }
>
> +#ifdef CONFIG_VNC
> if (strcmp(protocol, "vnc") == 0) {
> rc = vnc_display_pw_expire(NULL, when);
> if (rc != 0) {
> @@ -1178,6 +1189,7 @@ static int expire_password(Monitor *mon, const QDict *qdict, QObject **ret_data)
> }
> return 0;
> }
> +#endif
>
> qerror_report(QERR_INVALID_PARAMETER, "protocol");
> return -1;
> @@ -3002,6 +3014,7 @@ static const mon_cmd_t info_cmds[] = {
> .user_print = do_info_mice_print,
> .mhandler.info_new = do_info_mice,
> },
> +#ifdef CONFIG_VNC
> {
> .name = "vnc",
> .args_type = "",
> @@ -3010,6 +3023,7 @@ static const mon_cmd_t info_cmds[] = {
> .user_print = do_info_vnc_print,
> .mhandler.info_new = do_info_vnc,
> },
> +#endif
We don't want to hide commands based on compile settings.
Otherwise, looks good.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2011-03-11 13:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-11 12:38 [Qemu-devel] [PATCH] Make VNC support optional Jes.Sorensen
2011-03-11 13:36 ` Anthony Liguori [this message]
2011-03-11 13:43 ` [Qemu-devel] " Jes Sorensen
2011-03-11 14:00 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D7A255B.4000409@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=Jes.Sorensen@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).