[libvirt] [PATCH 6/6] Implement VNC password change in QEMU
Daniel Veillard
veillard at redhat.com
Thu Mar 25 11:01:55 UTC 2010
On Wed, Mar 24, 2010 at 11:46:27AM +0000, Daniel P. Berrange wrote:
> Use the new virDomainUpdateDeviceFlags API to allow the VNC password
> to be changed on the fly
>
> * src/internal.h: Define STREQ_NULLABLE() which is like STREQ()
> but does not crash if either argument is NULL, and treats two
> NULLs as equal.
> * src/libvirt_private.syms: Export virDomainGraphicsTypeToString
> * src/qemu/qemu_driver.c: Support VNC password change on a live
> machine
> * src/qemu/qemu_monitor.c: Disable crazy debugging info. Treat a
> NULL password as "" (empty string), allowing passwords to be
> disabled in the monitor
> ---
> src/internal.h | 6 +++
> src/libvirt_private.syms | 1 +
> src/qemu/qemu_driver.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++
> src/qemu/qemu_monitor.c | 17 ++++++++-
> 4 files changed, 103 insertions(+), 2 deletions(-)
>
> diff --git a/src/internal.h b/src/internal.h
> index 4ec6edc..f82fbd2 100644
> --- a/src/internal.h
> +++ b/src/internal.h
> @@ -58,6 +58,12 @@
> # define STRCASENEQLEN(a,b,n) (strncasecmp(a,b,n) != 0)
> # define STRPREFIX(a,b) (strncmp(a,b,strlen(b)) == 0)
>
> +# define STREQ_NULLABLE(a, b) \
> + ((!(a) && !(b)) || ((a) && (b) && STREQ((a), (b))))
> +# define STRNEQ_NULLABLE(a, b) \
> + ((!(a) ^ !(b)) || ((a) && (b) && STRNEQ((a), (b))))
> +
Not sure I can parse that, I would assume it's equivalent to:
(!(STREQ_NULLABLE((a), (b))))
which would be simpler IMHO
[...]
>
> +static virDomainGraphicsDefPtr qemuDomainFindGraphics(virDomainObjPtr vm,
> + virDomainGraphicsDefPtr dev)
> +{
> + int i;
> +
> + for (i = 0 ; i < vm->def->ngraphics ; i++) {
> + if (vm->def->graphics[i]->type == dev->type)
> + return vm->def->graphics[i];
> + }
> +
> + return NULL;
> +}
it's a bit surprizing to match just on the type, what if we somehow
add dual graphic support for a given type ?
> +
[...]
>
> -#if QEMU_DEBUG_RAW_IO
> +#if DEBUG_IO
> +#if DEBUG_RAW_IO
> char *str1 = qemuMonitorEscapeNonPrintable(msg ? msg->txBuffer : "");
> char *str2 = qemuMonitorEscapeNonPrintable(mon->buffer);
> VIR_ERROR("Process %d %p %p [[[[%s]]][[[%s]]]", (int)mon->bufferOffset, mon->msg, msg, str1, str2);
> @@ -311,6 +313,8 @@ qemuMonitorIOProcess(qemuMonitorPtr mon)
> #else
> VIR_DEBUG("Process %d", (int)mon->bufferOffset);
> #endif
> +#endif
> +
hum, somehow I feel it's gonna break cppi indenting isn't it ?
but it's minor,
ACK
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list