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(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/