[libvirt] [PATCH 00/20] flags cleanup

Inspired in part by Laine's recent cleanup of qemuDomainGetXMLDesc, in part by my desire to add a new flag to virDomainCoreDump and test that older clients reject that flag, and in part by an OCD desire for uniformity :), I'm proposing this giant patch series. Eric Blake (20): maint: print flags in hex during debug public API: prefer unsigned int for flags drivers: prefer unsigned int for flags conf: prefer unsigned int for flags util: drop unused safezero argument util: reject unknown flags node_device: reject unknown flags storage: reject unknown flags esx: reject unknown flags libxl: reject unknown flags lxc: reject unknown flags openvz: reject unknown flags phyp: reject unknown flags qemu: reject unknown flags test: reject unknown flags uml: reject unknown flags vbox: reject unknown flags vmware: reject unknown flags xen: reject unknown flags xenapi: reject unknown flags include/libvirt/libvirt.h.in | 10 +- src/conf/domain_conf.c | 86 +++++++------ src/driver.h | 10 +- src/esx/esx_device_monitor.c | 6 +- src/esx/esx_driver.c | 31 ++++- src/esx/esx_interface_driver.c | 6 +- src/esx/esx_network_driver.c | 6 +- src/esx/esx_nwfilter_driver.c | 5 +- src/esx/esx_secret_driver.c | 6 +- src/esx/esx_storage_driver.c | 6 +- src/interface/netcf_driver.c | 18 ++- src/libvirt.c | 228 +++++++++++++++++---------------- src/libxl/libxl_driver.c | 22 ++- src/locking/lock_driver_sanlock.c | 4 +- src/lxc/lxc_driver.c | 14 ++- src/network/bridge_driver.c | 11 ++- src/node_device/node_device_driver.c | 18 ++- src/node_device/node_device_hal.c | 5 +- src/node_device/node_device_udev.c | 4 +- src/nodeinfo.h | 6 +- src/nwfilter/nwfilter_driver.c | 10 +- src/openvz/openvz_driver.c | 11 +- src/phyp/phyp_driver.c | 14 ++- src/qemu/qemu_driver.c | 36 ++++-- src/qemu/qemu_migration.c | 16 ++- src/remote/remote_driver.c | 24 ++-- src/remote/remote_protocol.x | 10 +- src/remote_protocol-structs | 10 +- src/secret/secret_driver.c | 17 ++- src/storage/storage_backend.c | 16 ++- src/storage/storage_backend_disk.c | 10 +- src/storage/storage_backend_fs.c | 26 +++- src/storage/storage_backend_iscsi.c | 4 +- src/storage/storage_backend_logical.c | 18 ++- src/storage/storage_driver.c | 45 +++++-- src/test/test_driver.c | 150 +++++++++++++++++----- src/uml/uml_driver.c | 14 ++- src/util/logging.c | 10 +- src/util/util.c | 6 +- src/util/util.h | 2 +- src/vbox/vbox_driver.c | 7 +- src/vbox/vbox_tmpl.c | 47 ++++++-- src/vmware/vmware_driver.c | 19 ++- src/xen/xen_driver.c | 18 ++- src/xen/xen_hypervisor.c | 8 +- src/xen/xen_hypervisor.h | 2 +- src/xen/xen_inotify.c | 8 +- src/xen/xen_inotify.h | 3 +- src/xen/xend_internal.c | 20 ++- src/xen/xend_internal.h | 5 +- src/xen/xm_internal.c | 8 +- src/xen/xm_internal.h | 5 +- src/xen/xs_internal.c | 14 ++- src/xen/xs_internal.h | 4 +- src/xenapi/xenapi_driver.c | 14 ++- 55 files changed, 754 insertions(+), 379 deletions(-) -- 1.7.4.4

Debugging decimal flags is a pain. * src/libvirt.c: Always print flags in hex. --- src/libvirt.c | 216 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 114 insertions(+), 102 deletions(-) diff --git a/src/libvirt.c b/src/libvirt.c index e00c64f..5e1451c 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -1276,7 +1276,7 @@ virConnectOpenAuth(const char *name, if (virInitialize() < 0) goto error; - VIR_DEBUG("name=%s, auth=%p, flags=%d", NULLSTR(name), auth, flags); + VIR_DEBUG("name=%s, auth=%p, flags=%x", NULLSTR(name), auth, flags); ret = do_open (name, auth, flags); if (!ret) goto error; @@ -1811,7 +1811,7 @@ virDomainPtr virDomainCreateXML(virConnectPtr conn, const char *xmlDesc, unsigned int flags) { - VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%d", conn, xmlDesc, flags); + VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, xmlDesc, flags); virResetLastError(); @@ -2369,7 +2369,7 @@ virDomainCoreDump(virDomainPtr domain, const char *to, int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "to=%s, flags=%d", to, flags); + VIR_DOMAIN_DEBUG(domain, "to=%s, flags=%x", to, flags); virResetLastError(); @@ -2450,7 +2450,7 @@ virDomainScreenshot(virDomainPtr domain, unsigned int screen, unsigned int flags) { - VIR_DOMAIN_DEBUG(domain, "stream=%p flags=%u", stream, flags); + VIR_DOMAIN_DEBUG(domain, "stream=%p flags=%x", stream, flags); virResetLastError(); @@ -2551,7 +2551,7 @@ virDomainReboot(virDomainPtr domain, unsigned int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "flags=%u", flags); + VIR_DOMAIN_DEBUG(domain, "flags=%x", flags); virResetLastError(); @@ -2926,7 +2926,7 @@ virDomainSetMemoryFlags(virDomainPtr domain, unsigned long memory, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "memory=%lu flags=%u", memory, flags); + VIR_DOMAIN_DEBUG(domain, "memory=%lu flags=%x", memory, flags); virResetLastError(); @@ -2983,7 +2983,7 @@ virDomainSetMemoryParameters(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%u", + VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%x", params, nparams, flags); virResetLastError(); @@ -3058,7 +3058,7 @@ virDomainGetMemoryParameters(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%u", + VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%x", params, (nparams) ? *nparams : -1, flags); virResetLastError(); @@ -3109,7 +3109,7 @@ virDomainSetBlkioParameters(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%u", + VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%x", params, nparams, flags); virResetLastError(); @@ -3168,7 +3168,7 @@ virDomainGetBlkioParameters(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%u", + VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%x", params, (nparams) ? *nparams : -1, flags); virResetLastError(); @@ -3363,7 +3363,7 @@ virDomainGetXMLDesc(virDomainPtr domain, int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "flags=%d", flags); + VIR_DOMAIN_DEBUG(domain, "flags=%x", flags); virResetLastError(); @@ -3417,7 +3417,8 @@ char *virConnectDomainXMLFromNative(virConnectPtr conn, const char *nativeConfig, unsigned int flags) { - VIR_DEBUG("conn=%p, format=%s config=%s flags=%u", conn, nativeFormat, nativeConfig, flags); + VIR_DEBUG("conn=%p, format=%s config=%s flags=%x", + conn, nativeFormat, nativeConfig, flags); virResetLastError(); @@ -3469,7 +3470,8 @@ char *virConnectDomainXMLToNative(virConnectPtr conn, const char *domainXml, unsigned int flags) { - VIR_DEBUG("conn=%p, format=%s xml=%s flags=%u", conn, nativeFormat, domainXml, flags); + VIR_DEBUG("conn=%p, format=%s xml=%s flags=%x", + conn, nativeFormat, domainXml, flags); virResetLastError(); @@ -3536,7 +3538,8 @@ virDomainMigrateVersion1 (virDomainPtr domain, char *cookie = NULL; int cookielen = 0, ret; virDomainInfo info; - VIR_DOMAIN_DEBUG(domain, "dconn=%p flags=%lu, dname=%s, uri=%s, bandwidth=%lu", + VIR_DOMAIN_DEBUG(domain, + "dconn=%p flags=%lx, dname=%s, uri=%s, bandwidth=%lu", dconn, flags, NULLSTR(dname), NULLSTR(uri), bandwidth); ret = virDomainGetInfo (domain, &info); @@ -3628,7 +3631,8 @@ virDomainMigrateVersion2 (virDomainPtr domain, virDomainInfo info; virErrorPtr orig_err = NULL; int cancelled; - VIR_DOMAIN_DEBUG(domain, "dconn=%p flags=%lu, dname=%s, uri=%s, bandwidth=%lu", + VIR_DOMAIN_DEBUG(domain, + "dconn=%p flags=%lx, dname=%s, uri=%s, bandwidth=%lu", dconn, flags, NULLSTR(dname), NULLSTR(uri), bandwidth); /* Prepare the migration. @@ -3663,7 +3667,7 @@ virDomainMigrateVersion2 (virDomainPtr domain, flags |= VIR_MIGRATE_PAUSED; } - VIR_DEBUG("Prepare2 %p flags=%lu", dconn, flags); + VIR_DEBUG("Prepare2 %p flags=%lx", dconn, flags); ret = dconn->driver->domainMigratePrepare2 (dconn, &cookie, &cookielen, uri, &uri_out, flags, dname, bandwidth, dom_xml); @@ -3762,7 +3766,7 @@ virDomainMigrateVersion3(virDomainPtr domain, virDomainInfo info; virErrorPtr orig_err = NULL; int cancelled; - VIR_DOMAIN_DEBUG(domain, "dconn=%p xmlin=%s, flags=%lu, " + VIR_DOMAIN_DEBUG(domain, "dconn=%p xmlin=%s, flags=%lx, " "dname=%s, uri=%s, bandwidth=%lu", dconn, NULLSTR(xmlin), flags, NULLSTR(dname), NULLSTR(uri), bandwidth); @@ -3789,7 +3793,7 @@ virDomainMigrateVersion3(virDomainPtr domain, flags |= VIR_MIGRATE_PAUSED; } - VIR_DEBUG("Prepare3 %p flags=%lu", dconn, flags); + VIR_DEBUG("Prepare3 %p flags=%lx", dconn, flags); cookiein = cookieout; cookieinlen = cookieoutlen; cookieout = NULL; @@ -3920,7 +3924,7 @@ virDomainMigratePeer2Peer (virDomainPtr domain, unsigned long bandwidth) { xmlURIPtr tempuri = NULL; - VIR_DOMAIN_DEBUG(domain, "xmlin=%s, flags=%lu, dname=%s, " + VIR_DOMAIN_DEBUG(domain, "xmlin=%s, flags=%lx, dname=%s, " "dconnuri=%s, uri=%s, bandwidth=%lu", NULLSTR(xmlin), flags, NULLSTR(dname), NULLSTR(dconnuri), NULLSTR(uri), bandwidth); @@ -4005,8 +4009,10 @@ virDomainMigrateDirect (virDomainPtr domain, const char *uri, unsigned long bandwidth) { - VIR_DOMAIN_DEBUG(domain, "xmlin=%s, flags=%lu, dname=%s, uri=%s, bandwidth=%lu", - NULLSTR(xmlin), flags, NULLSTR(dname), NULLSTR(uri), bandwidth); + VIR_DOMAIN_DEBUG(domain, + "xmlin=%s, flags=%lx, dname=%s, uri=%s, bandwidth=%lu", + NULLSTR(xmlin), flags, NULLSTR(dname), NULLSTR(uri), + bandwidth); if (!domain->conn->driver->domainMigratePerform) { virLibConnError(VIR_ERR_NO_SUPPORT, __FUNCTION__); @@ -4126,7 +4132,8 @@ virDomainMigrate (virDomainPtr domain, { virDomainPtr ddomain = NULL; - VIR_DOMAIN_DEBUG(domain, "dconn=%p, flags=%lu, dname=%s, uri=%s, bandwidth=%lu", + VIR_DOMAIN_DEBUG(domain, + "dconn=%p, flags=%lx, dname=%s, uri=%s, bandwidth=%lu", dconn, flags, NULLSTR(dname), NULLSTR(uri), bandwidth); virResetLastError(); @@ -4301,7 +4308,8 @@ virDomainMigrate2(virDomainPtr domain, { virDomainPtr ddomain = NULL; - VIR_DOMAIN_DEBUG(domain, "dconn=%p, flags=%lu, dname=%s, uri=%s, bandwidth=%lu", + VIR_DOMAIN_DEBUG(domain, + "dconn=%p, flags=%lx, dname=%s, uri=%s, bandwidth=%lu", dconn, flags, NULLSTR(dname), NULLSTR(uri), bandwidth); virResetLastError(); @@ -4470,7 +4478,7 @@ virDomainMigrateToURI (virDomainPtr domain, const char *dname, unsigned long bandwidth) { - VIR_DOMAIN_DEBUG(domain, "duri=%p, flags=%lu, dname=%s, bandwidth=%lu", + VIR_DOMAIN_DEBUG(domain, "duri=%p, flags=%lx, dname=%s, bandwidth=%lu", NULLSTR(duri), flags, NULLSTR(dname), bandwidth); virResetLastError(); @@ -4604,7 +4612,7 @@ virDomainMigrateToURI2(virDomainPtr domain, unsigned long bandwidth) { VIR_DOMAIN_DEBUG(domain, "dconnuri=%s, miguri=%s, dxml=%s, " - "flags=%lu, dname=%s, bandwidth=%lu", + "flags=%lx, dname=%s, bandwidth=%lu", NULLSTR(dconnuri), NULLSTR(miguri), NULLSTR(dxml), flags, NULLSTR(dname), bandwidth); @@ -4670,7 +4678,7 @@ virDomainMigratePrepare (virConnectPtr dconn, unsigned long bandwidth) { VIR_DEBUG("dconn=%p, cookie=%p, cookielen=%p, uri_in=%s, uri_out=%p, " - "flags=%lu, dname=%s, bandwidth=%lu", dconn, cookie, cookielen, + "flags=%lx, dname=%s, bandwidth=%lu", dconn, cookie, cookielen, NULLSTR(uri_in), uri_out, flags, NULLSTR(dname), bandwidth); virResetLastError(); @@ -4718,7 +4726,7 @@ virDomainMigratePerform (virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "cookie=%p, cookielen=%d, uri=%s, flags=%lu, " + VIR_DOMAIN_DEBUG(domain, "cookie=%p, cookielen=%d, uri=%s, flags=%lx, " "dname=%s, bandwidth=%lu", cookie, cookielen, uri, flags, NULLSTR(dname), bandwidth); @@ -4766,7 +4774,7 @@ virDomainMigrateFinish (virConnectPtr dconn, unsigned long flags) { VIR_DEBUG("dconn=%p, dname=%s, cookie=%p, cookielen=%d, uri=%s, " - "flags=%lu", dconn, NULLSTR(dname), cookie, cookielen, + "flags=%lx", dconn, NULLSTR(dname), cookie, cookielen, uri, flags); virResetLastError(); @@ -4816,7 +4824,7 @@ virDomainMigratePrepare2 (virConnectPtr dconn, const char *dom_xml) { VIR_DEBUG("dconn=%p, cookie=%p, cookielen=%p, uri_in=%s, uri_out=%p," - "flags=%lu, dname=%s, bandwidth=%lu, dom_xml=%s", dconn, + "flags=%lx, dname=%s, bandwidth=%lu, dom_xml=%s", dconn, cookie, cookielen, uri_in, uri_out, flags, NULLSTR(dname), bandwidth, dom_xml); @@ -4865,7 +4873,7 @@ virDomainMigrateFinish2 (virConnectPtr dconn, int retcode) { VIR_DEBUG("dconn=%p, dname=%s, cookie=%p, cookielen=%d, uri=%s, " - "flags=%lu, retcode=%d", dconn, NULLSTR(dname), cookie, + "flags=%lx, retcode=%d", dconn, NULLSTR(dname), cookie, cookielen, uri, flags, retcode); virResetLastError(); @@ -4912,7 +4920,7 @@ virDomainMigratePrepareTunnel(virConnectPtr conn, unsigned long bandwidth, const char *dom_xml) { - VIR_DEBUG("conn=%p, stream=%p, flags=%lu, dname=%s, " + VIR_DEBUG("conn=%p, stream=%p, flags=%lx, dname=%s, " "bandwidth=%lu, dom_xml=%s", conn, st, flags, NULLSTR(dname), bandwidth, dom_xml); @@ -4966,7 +4974,7 @@ virDomainMigrateBegin3(virDomainPtr domain, virConnectPtr conn; VIR_DOMAIN_DEBUG(domain, "xmlin=%s cookieout=%p, cookieoutlen=%p, " - "flags=%lu, dname=%s, bandwidth=%lu", + "flags=%lx, dname=%s, bandwidth=%lu", NULLSTR(xmlin), cookieout, cookieoutlen, flags, NULLSTR(dname), bandwidth); @@ -5020,10 +5028,11 @@ virDomainMigratePrepare3(virConnectPtr dconn, unsigned long bandwidth, const char *dom_xml) { - VIR_DEBUG("dconn=%p, cookiein=%p, cookieinlen=%d, cookieout=%p, cookieoutlen=%p," - "uri_in=%s, uri_out=%p, flags=%lu, dname=%s, bandwidth=%lu, dom_xml=%s", - dconn, cookiein, cookieinlen, cookieout, cookieoutlen, uri_in, uri_out, - flags, NULLSTR(dname), bandwidth, dom_xml); + VIR_DEBUG("dconn=%p, cookiein=%p, cookieinlen=%d, cookieout=%p, " + "cookieoutlen=%p, uri_in=%s, uri_out=%p, flags=%lx, dname=%s, " + "bandwidth=%lu, dom_xml=%s", + dconn, cookiein, cookieinlen, cookieout, cookieoutlen, uri_in, + uri_out, flags, NULLSTR(dname), bandwidth, dom_xml); virResetLastError(); @@ -5075,8 +5084,9 @@ virDomainMigratePrepareTunnel3(virConnectPtr conn, const char *dom_xml) { - VIR_DEBUG("conn=%p, stream=%p, cookiein=%p, cookieinlen=%d, cookieout=%p," - " cookieoutlen=%p, flags=%lu, dname=%s, bandwidth=%lu, dom_xml=%s", + VIR_DEBUG("conn=%p, stream=%p, cookiein=%p, cookieinlen=%d, cookieout=%p, " + "cookieoutlen=%p, flags=%lx, dname=%s, bandwidth=%lu, " + "dom_xml=%s", conn, st, cookiein, cookieinlen, cookieout, cookieoutlen, flags, NULLSTR(dname), bandwidth, dom_xml); @@ -5138,7 +5148,7 @@ virDomainMigratePerform3(virDomainPtr domain, VIR_DOMAIN_DEBUG(domain, "xmlin=%s cookiein=%p, cookieinlen=%d, " "cookieout=%p, cookieoutlen=%p, dconnuri=%s, " - "uri=%s, flags=%lu, dname=%s, bandwidth=%lu", + "uri=%s, flags=%lx, dname=%s, bandwidth=%lu", NULLSTR(xmlin), cookiein, cookieinlen, cookieout, cookieoutlen, NULLSTR(dconnuri), NULLSTR(uri), flags, NULLSTR(dname), bandwidth); @@ -5194,7 +5204,7 @@ virDomainMigrateFinish3(virConnectPtr dconn, int cancelled) { VIR_DEBUG("dconn=%p, dname=%s, cookiein=%p, cookieinlen=%d, cookieout=%p," - "cookieoutlen=%p, dconnuri=%s, uri=%s, flags=%lu, retcode=%d", + "cookieoutlen=%p, dconnuri=%s, uri=%s, flags=%lx, retcode=%d", dconn, NULLSTR(dname), cookiein, cookieinlen, cookieout, cookieoutlen, NULLSTR(dconnuri), NULLSTR(uri), flags, cancelled); @@ -5244,7 +5254,8 @@ virDomainMigrateConfirm3(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "cookiein=%p, cookieinlen=%d, flags=%lu, cancelled=%d", + VIR_DOMAIN_DEBUG(domain, + "cookiein=%p, cookieinlen=%d, flags=%lx, cancelled=%d", cookiein, cookieinlen, flags, cancelled); virResetLastError(); @@ -5418,7 +5429,7 @@ int virNodeGetCPUStats (virConnectPtr conn, virNodeCPUStatsPtr params, int *nparams, unsigned int flags) { - VIR_DEBUG("conn=%p, cpuNum=%d, params=%p, nparams=%d, flags=%u", + VIR_DEBUG("conn=%p, cpuNum=%d, params=%p, nparams=%d, flags=%x", conn, cpuNum, params, nparams ? *nparams : -1, flags); virResetLastError(); @@ -5504,7 +5515,7 @@ int virNodeGetMemoryStats (virConnectPtr conn, virNodeMemoryStatsPtr params, int *nparams, unsigned int flags) { - VIR_DEBUG("conn=%p, cellNum=%d, params=%p, nparams=%d, flags=%u", + VIR_DEBUG("conn=%p, cellNum=%d, params=%p, nparams=%d, flags=%x", conn, cellNum, params, nparams ? *nparams : -1, flags); virResetLastError(); @@ -5695,7 +5706,7 @@ virDomainGetSchedulerParametersFlags(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%p, flags=%u", + VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%p, flags=%x", params, nparams, flags); virResetLastError(); @@ -5812,7 +5823,7 @@ virDomainSetSchedulerParametersFlags(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%u", + VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%x", params, nparams, flags); virResetLastError(); @@ -6188,7 +6199,7 @@ virDomainMemoryPeek (virDomainPtr dom, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(dom, "start=%lld, size=%zi, buffer=%p, flags=%d", + VIR_DOMAIN_DEBUG(dom, "start=%lld, size=%zi, buffer=%p, flags=%x", start, size, buffer, flags); virResetLastError(); @@ -6274,7 +6285,7 @@ virDomainGetBlockInfo(virDomainPtr domain, const char *path, virDomainBlockInfoP { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "info=%p flags=%u", info, flags); + VIR_DOMAIN_DEBUG(domain, "info=%p flags=%x", info, flags); virResetLastError(); @@ -6551,7 +6562,7 @@ int virDomainCreateWithFlags(virDomainPtr domain, unsigned int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "flags=%d", flags); + VIR_DOMAIN_DEBUG(domain, "flags=%x", flags); virResetLastError(); @@ -6690,7 +6701,7 @@ error: int virDomainInjectNMI(virDomainPtr domain, unsigned int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "flags=%u", flags); + VIR_DOMAIN_DEBUG(domain, "flags=%x", flags); virResetLastError(); @@ -6743,7 +6754,7 @@ int virDomainSendKey(virDomainPtr domain, unsigned int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "codeset=%u, holdtime=%u, nkeycodes=%u, flags=%u", + VIR_DOMAIN_DEBUG(domain, "codeset=%u, holdtime=%u, nkeycodes=%u, flags=%x", codeset, holdtime, nkeycodes, flags); virResetLastError(); @@ -6873,7 +6884,7 @@ virDomainSetVcpusFlags(virDomainPtr domain, unsigned int nvcpus, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "nvcpus=%u, flags=%u", nvcpus, flags); + VIR_DOMAIN_DEBUG(domain, "nvcpus=%u, flags=%x", nvcpus, flags); virResetLastError(); @@ -6937,7 +6948,7 @@ virDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "flags=%u", flags); + VIR_DOMAIN_DEBUG(domain, "flags=%x", flags); virResetLastError(); @@ -7072,7 +7083,7 @@ virDomainPinVcpuFlags(virDomainPtr domain, unsigned int vcpu, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "vcpu=%u, cpumap=%p, maplen=%d, flags=%u", + VIR_DOMAIN_DEBUG(domain, "vcpu=%u, cpumap=%p, maplen=%d, flags=%x", vcpu, cpumap, maplen, flags); virResetLastError(); @@ -7141,7 +7152,7 @@ virDomainGetVcpuPinInfo (virDomainPtr domain, int ncpumaps, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "ncpumaps=%d, cpumaps=%p, maplen=%d, flags=%u", + VIR_DOMAIN_DEBUG(domain, "ncpumaps=%d, cpumaps=%p, maplen=%d, flags=%x", ncpumaps, cpumaps, maplen, flags); virResetLastError(); @@ -7466,7 +7477,7 @@ virDomainAttachDeviceFlags(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "xml=%s, flags=%d", xml, flags); + VIR_DOMAIN_DEBUG(domain, "xml=%s, flags=%x", xml, flags); virResetLastError(); @@ -7579,7 +7590,7 @@ virDomainDetachDeviceFlags(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "xml=%s, flags=%d", xml, flags); + VIR_DOMAIN_DEBUG(domain, "xml=%s, flags=%x", xml, flags); virResetLastError(); @@ -7645,7 +7656,7 @@ virDomainUpdateDeviceFlags(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "xml=%s, flags=%d", xml, flags); + VIR_DOMAIN_DEBUG(domain, "xml=%s, flags=%x", xml, flags); virResetLastError(); @@ -8441,7 +8452,7 @@ char * virNetworkGetXMLDesc(virNetworkPtr network, int flags) { virConnectPtr conn; - VIR_DEBUG("network=%p, flags=%d", network, flags); + VIR_DEBUG("network=%p, flags=%x", network, flags); virResetLastError(); @@ -8954,7 +8965,7 @@ char * virInterfaceGetXMLDesc(virInterfacePtr iface, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("iface=%p, flags=%d", iface, flags); + VIR_DEBUG("iface=%p, flags=%x", iface, flags); virResetLastError(); @@ -9009,7 +9020,7 @@ error: virInterfacePtr virInterfaceDefineXML(virConnectPtr conn, const char *xml, unsigned int flags) { - VIR_DEBUG("conn=%p, xml=%s, flags=%d", conn, xml, flags); + VIR_DEBUG("conn=%p, xml=%s, flags=%x", conn, xml, flags); virResetLastError(); @@ -9112,7 +9123,7 @@ int virInterfaceCreate(virInterfacePtr iface, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("iface=%p, flags=%d", iface, flags); + VIR_DEBUG("iface=%p, flags=%x", iface, flags); virResetLastError(); @@ -9164,7 +9175,7 @@ int virInterfaceDestroy(virInterfacePtr iface, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("iface=%p, flags=%d", iface, flags); + VIR_DEBUG("iface=%p, flags=%x", iface, flags); virResetLastError(); @@ -9275,7 +9286,7 @@ virInterfaceFree(virInterfacePtr iface) int virInterfaceChangeBegin(virConnectPtr conn, unsigned int flags) { - VIR_DEBUG("conn=%p, flags=%d", conn, flags); + VIR_DEBUG("conn=%p, flags=%x", conn, flags); virResetLastError(); @@ -9322,7 +9333,7 @@ error: int virInterfaceChangeCommit(virConnectPtr conn, unsigned int flags) { - VIR_DEBUG("conn=%p, flags=%d", conn, flags); + VIR_DEBUG("conn=%p, flags=%x", conn, flags); virResetLastError(); @@ -9369,7 +9380,7 @@ error: int virInterfaceChangeRollback(virConnectPtr conn, unsigned int flags) { - VIR_DEBUG("conn=%p, flags=%d", conn, flags); + VIR_DEBUG("conn=%p, flags=%x", conn, flags); virResetLastError(); @@ -9626,7 +9637,8 @@ virConnectFindStoragePoolSources(virConnectPtr conn, const char *srcSpec, unsigned int flags) { - VIR_DEBUG("conn=%p, type=%s, src=%s, flags=%u", conn, type ? type : "", srcSpec ? srcSpec : "", flags); + VIR_DEBUG("conn=%p, type=%s, src=%s, flags=%x", + conn, type ? type : "", srcSpec ? srcSpec : "", flags); virResetLastError(); @@ -9937,7 +9949,7 @@ virStoragePoolBuild(virStoragePoolPtr pool, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("pool=%p, flags=%u", pool, flags); + VIR_DEBUG("pool=%p, flags=%x", pool, flags); virResetLastError(); @@ -10119,7 +10131,7 @@ virStoragePoolDelete(virStoragePoolPtr pool, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("pool=%p, flags=%u", pool, flags); + VIR_DEBUG("pool=%p, flags=%x", pool, flags); virResetLastError(); @@ -10229,7 +10241,7 @@ virStoragePoolRefresh(virStoragePoolPtr pool, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("pool=%p flags=%u", pool, flags); + VIR_DEBUG("pool=%p flags=%x", pool, flags); virResetLastError(); @@ -10426,7 +10438,7 @@ virStoragePoolGetXMLDesc(virStoragePoolPtr pool, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("pool=%p, flags=%u", pool, flags); + VIR_DEBUG("pool=%p, flags=%x", pool, flags); virResetLastError(); @@ -10866,7 +10878,7 @@ virStorageVolCreateXML(virStoragePoolPtr pool, const char *xmldesc, unsigned int flags) { - VIR_DEBUG("pool=%p, flags=%u", pool, flags); + VIR_DEBUG("pool=%p, flags=%x", pool, flags); virResetLastError(); @@ -10922,7 +10934,7 @@ virStorageVolCreateXMLFrom(virStoragePoolPtr pool, virStorageVolPtr clonevol, unsigned int flags) { - VIR_DEBUG("pool=%p, flags=%u, clonevol=%p", pool, flags, clonevol); + VIR_DEBUG("pool=%p, flags=%x, clonevol=%p", pool, flags, clonevol); virResetLastError(); @@ -10993,7 +11005,7 @@ virStorageVolDownload(virStorageVolPtr vol, unsigned long long length, unsigned int flags) { - VIR_DEBUG("vol=%p stream=%p offset=%llu length=%llu flags=%u", + VIR_DEBUG("vol=%p stream=%p offset=%llu length=%llu flags=%x", vol, stream, offset, length, flags); virResetLastError(); @@ -11064,7 +11076,7 @@ virStorageVolUpload(virStorageVolPtr vol, unsigned long long length, unsigned int flags) { - VIR_DEBUG("vol=%p stream=%p offset=%llu length=%llu flags=%u", + VIR_DEBUG("vol=%p stream=%p offset=%llu length=%llu flags=%x", vol, stream, offset, length, flags); virResetLastError(); @@ -11120,7 +11132,7 @@ virStorageVolDelete(virStorageVolPtr vol, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("vol=%p, flags=%u", vol, flags); + VIR_DEBUG("vol=%p, flags=%x", vol, flags); virResetLastError(); @@ -11166,7 +11178,7 @@ virStorageVolWipe(virStorageVolPtr vol, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("vol=%p, flags=%u", vol, flags); + VIR_DEBUG("vol=%p, flags=%x", vol, flags); virResetLastError(); @@ -11324,7 +11336,7 @@ virStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("vol=%p, flags=%u", vol, flags); + VIR_DEBUG("vol=%p, flags=%x", vol, flags); virResetLastError(); @@ -11416,7 +11428,7 @@ error: int virNodeNumOfDevices(virConnectPtr conn, const char *cap, unsigned int flags) { - VIR_DEBUG("conn=%p, cap=%s, flags=%d", conn, NULLSTR(cap), flags); + VIR_DEBUG("conn=%p, cap=%s, flags=%x", conn, NULLSTR(cap), flags); virResetLastError(); @@ -11467,7 +11479,7 @@ virNodeListDevices(virConnectPtr conn, char **const names, int maxnames, unsigned int flags) { - VIR_DEBUG("conn=%p, cap=%s, names=%p, maxnames=%d, flags=%d", + VIR_DEBUG("conn=%p, cap=%s, names=%p, maxnames=%d, flags=%x", conn, cap, names, maxnames, flags); virResetLastError(); @@ -11940,7 +11952,7 @@ virNodeDeviceCreateXML(virConnectPtr conn, const char *xmlDesc, unsigned int flags) { - VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%d", conn, xmlDesc, flags); + VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, xmlDesc, flags); virResetLastError(); @@ -12387,7 +12399,7 @@ error: virSecretPtr virSecretDefineXML(virConnectPtr conn, const char *xml, unsigned int flags) { - VIR_DEBUG("conn=%p, xml=%s, flags=%u", conn, xml, flags); + VIR_DEBUG("conn=%p, xml=%s, flags=%x", conn, xml, flags); virResetLastError(); @@ -12568,7 +12580,7 @@ virSecretGetXMLDesc(virSecretPtr secret, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("secret=%p, flags=%u", secret, flags); + VIR_DEBUG("secret=%p, flags=%x", secret, flags); virResetLastError(); @@ -12612,7 +12624,7 @@ virSecretSetValue(virSecretPtr secret, const unsigned char *value, { virConnectPtr conn; - VIR_DEBUG("secret=%p, value=%p, value_size=%zu, flags=%u", secret, value, + VIR_DEBUG("secret=%p, value=%p, value_size=%zu, flags=%x", secret, value, value_size, flags); virResetLastError(); @@ -12664,7 +12676,7 @@ virSecretGetValue(virSecretPtr secret, size_t *value_size, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("secret=%p, value_size=%p, flags=%u", secret, value_size, flags); + VIR_DEBUG("secret=%p, value_size=%p, flags=%x", secret, value_size, flags); virResetLastError(); @@ -12830,7 +12842,7 @@ virStreamNew(virConnectPtr conn, { virStreamPtr st; - VIR_DEBUG("conn=%p, flags=%u", conn, flags); + VIR_DEBUG("conn=%p, flags=%x", conn, flags); virResetLastError(); @@ -14208,7 +14220,7 @@ char * virNWFilterGetXMLDesc(virNWFilterPtr nwfilter, int flags) { virConnectPtr conn; - VIR_DEBUG("nwfilter=%p, flags=%d", nwfilter, flags); + VIR_DEBUG("nwfilter=%p, flags=%x", nwfilter, flags); virResetLastError(); @@ -14393,7 +14405,7 @@ virConnectCompareCPU(virConnectPtr conn, const char *xmlDesc, unsigned int flags) { - VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%u", conn, xmlDesc, flags); + VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, xmlDesc, flags); virResetLastError(); @@ -14445,7 +14457,7 @@ virConnectBaselineCPU(virConnectPtr conn, { unsigned int i; - VIR_DEBUG("conn=%p, xmlCPUs=%p, ncpus=%u, flags=%u", + VIR_DEBUG("conn=%p, xmlCPUs=%p, ncpus=%u, flags=%x", conn, xmlCPUs, ncpus, flags); if (xmlCPUs) { for (i = 0; i < ncpus; i++) @@ -14596,7 +14608,7 @@ virDomainMigrateSetMaxDowntime(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "downtime=%llu, flags=%u", downtime, flags); + VIR_DOMAIN_DEBUG(domain, "downtime=%llu, flags=%x", downtime, flags); virResetLastError(); @@ -14643,7 +14655,7 @@ virDomainMigrateSetMaxSpeed(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "bandwidth=%lu, flags=%u", bandwidth, flags); + VIR_DOMAIN_DEBUG(domain, "bandwidth=%lu, flags=%x", bandwidth, flags); virResetLastError(); @@ -14807,7 +14819,7 @@ int virDomainManagedSave(virDomainPtr dom, unsigned int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(dom, "flags=%u", flags); + VIR_DOMAIN_DEBUG(dom, "flags=%x", flags); virResetLastError(); @@ -14855,7 +14867,7 @@ int virDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(dom, "flags=%u", flags); + VIR_DOMAIN_DEBUG(dom, "flags=%x", flags); virResetLastError(); @@ -14896,7 +14908,7 @@ int virDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(dom, "flags=%u", flags); + VIR_DOMAIN_DEBUG(dom, "flags=%x", flags); virResetLastError(); @@ -14946,7 +14958,7 @@ virDomainSnapshotCreateXML(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "xmlDesc=%s, flags=%u", xmlDesc, flags); + VIR_DOMAIN_DEBUG(domain, "xmlDesc=%s, flags=%x", xmlDesc, flags); virResetLastError(); @@ -14997,7 +15009,7 @@ virDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot, unsigned int flags) { virConnectPtr conn; - VIR_DEBUG("snapshot=%p, flags=%d", snapshot, flags); + VIR_DEBUG("snapshot=%p, flags=%x", snapshot, flags); virResetLastError(); @@ -15087,7 +15099,7 @@ virDomainSnapshotListNames(virDomainPtr domain, char **names, int nameslen, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "names=%p, nameslen=%d, flags=%u", + VIR_DOMAIN_DEBUG(domain, "names=%p, nameslen=%d, flags=%x", names, nameslen, flags); virResetLastError(); @@ -15138,7 +15150,7 @@ virDomainSnapshotLookupByName(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "name=%s, flags=%u", name, flags); + VIR_DOMAIN_DEBUG(domain, "name=%s, flags=%x", name, flags); virResetLastError(); @@ -15183,7 +15195,7 @@ virDomainHasCurrentSnapshot(virDomainPtr domain, unsigned int flags) { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "flags=%u", flags); + VIR_DOMAIN_DEBUG(domain, "flags=%x", flags); virResetLastError(); @@ -15225,7 +15237,7 @@ virDomainSnapshotCurrent(virDomainPtr domain, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(domain, "flags=%u", flags); + VIR_DOMAIN_DEBUG(domain, "flags=%x", flags); virResetLastError(); @@ -15266,7 +15278,7 @@ virDomainRevertToSnapshot(virDomainSnapshotPtr snapshot, { virConnectPtr conn; - VIR_DEBUG("snapshot=%p, flags=%u", snapshot, flags); + VIR_DEBUG("snapshot=%p, flags=%x", snapshot, flags); virResetLastError(); @@ -15316,7 +15328,7 @@ virDomainSnapshotDelete(virDomainSnapshotPtr snapshot, { virConnectPtr conn; - VIR_DEBUG("snapshot=%p, flags=%u", snapshot, flags); + VIR_DEBUG("snapshot=%p, flags=%x", snapshot, flags); virResetLastError(); @@ -15398,7 +15410,7 @@ int virDomainOpenConsole(virDomainPtr dom, { virConnectPtr conn; - VIR_DOMAIN_DEBUG(dom, "devname=%s, st=%p, flags=%u", + VIR_DOMAIN_DEBUG(dom, "devname=%s, st=%p, flags=%x", NULLSTR(devname), st, flags); virResetLastError(); -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:44PM -0600, Eric Blake wrote:
Debugging decimal flags is a pain.
* src/libvirt.c: Always print flags in hex. --- src/libvirt.c | 216 ++++++++++++++++++++++++++++++---------------------------
there is a bit of formatting too, ACK Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

On Wed, Jul 06, 2011 at 05:23:44PM -0600, Eric Blake wrote:
Debugging decimal flags is a pain.
* src/libvirt.c: Always print flags in hex. --- src/libvirt.c | 216 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 114 insertions(+), 102 deletions(-)
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

Most APIs use 'unsigned int flags'; but a few stragglers were using a signed value. In particular, the vir*GetXMLDesc APIs were split-brain, with inconsistent choice of types. Although it is an API break to use 'int' instead of 'unsigned int', it is ABI compatible (pre-compiled apps will have no difference in behavior), and generally apps can be recompiled without any issue (only rare apps that compiled with extremely high warning levels, or which pass libvirt API around as typed function pointers, would have to make any code changes to deal with the change). The migrate APIs use 'unsigned long flags', which can't be changed, due to ABI constraints. This patch intentionally touches only the public API, to prove the claim that most existing code (including driver callbacks and virsh) still compiles just fine in spite of the type change. * include/libvirt/libvirt.h.in (virConnectOpenAuth) (virDomainCoreDump, virDomainGetXMLDesc, virNetworkGetXMLDesc) (virNWFilterGetXMLDesc): Use unsigned int for flags. * src/libvirt.c (virConnectOpenAuth, virDomainCoreDump) (virDomainGetXMLDesc, virNetworkGetXMLDesc) (virNWFilterGetXMLDesc, do_open): Update accordingly. --- include/libvirt/libvirt.h.in | 10 +++++----- src/libvirt.c | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index 8e20f75..a22c1c9 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -851,7 +851,7 @@ virConnectPtr virConnectOpen (const char *name); virConnectPtr virConnectOpenReadOnly (const char *name); virConnectPtr virConnectOpenAuth (const char *name, virConnectAuthPtr auth, - int flags); + unsigned int flags); int virConnectRef (virConnectPtr conn); int virConnectClose (virConnectPtr conn); const char * virConnectGetType (virConnectPtr conn); @@ -961,7 +961,7 @@ int virDomainManagedSaveRemove(virDomainPtr dom, */ int virDomainCoreDump (virDomainPtr domain, const char *to, - int flags); + unsigned int flags); /* * Screenshot of current domain console @@ -1115,7 +1115,7 @@ typedef enum { } virDomainXMLFlags; char * virDomainGetXMLDesc (virDomainPtr domain, - int flags); + unsigned int flags); char * virConnectDomainXMLFromNative(virConnectPtr conn, @@ -1471,7 +1471,7 @@ int virNetworkGetUUID (virNetworkPtr network, int virNetworkGetUUIDString (virNetworkPtr network, char *buf); char * virNetworkGetXMLDesc (virNetworkPtr network, - int flags); + unsigned int flags); char * virNetworkGetBridgeName (virNetworkPtr network); int virNetworkGetAutostart (virNetworkPtr network, @@ -2790,7 +2790,7 @@ int virNWFilterGetUUID (virNWFilterPtr nwfilter, int virNWFilterGetUUIDString (virNWFilterPtr nwfilter, char *buf); char * virNWFilterGetXMLDesc (virNWFilterPtr nwfilter, - int flags); + unsigned int flags); int virDomainOpenConsole(virDomainPtr dom, diff --git a/src/libvirt.c b/src/libvirt.c index 5e1451c..7e70caa 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -955,7 +955,7 @@ error: static virConnectPtr do_open (const char *name, virConnectAuthPtr auth, - int flags) + unsigned int flags) { int i, res; virConnectPtr ret; @@ -1269,7 +1269,7 @@ error: virConnectPtr virConnectOpenAuth(const char *name, virConnectAuthPtr auth, - int flags) + unsigned int flags) { virConnectPtr ret = NULL; if (!initialized) @@ -2365,7 +2365,7 @@ error: * Returns 0 in case of success and -1 in case of failure. */ int -virDomainCoreDump(virDomainPtr domain, const char *to, int flags) +virDomainCoreDump(virDomainPtr domain, const char *to, unsigned int flags) { virConnectPtr conn; @@ -3359,7 +3359,7 @@ error: * the caller must free() the returned value. */ char * -virDomainGetXMLDesc(virDomainPtr domain, int flags) +virDomainGetXMLDesc(virDomainPtr domain, unsigned int flags) { virConnectPtr conn; @@ -8449,7 +8449,7 @@ error: * the caller must free() the returned value. */ char * -virNetworkGetXMLDesc(virNetworkPtr network, int flags) +virNetworkGetXMLDesc(virNetworkPtr network, unsigned int flags) { virConnectPtr conn; VIR_DEBUG("network=%p, flags=%x", network, flags); @@ -14217,7 +14217,7 @@ error: * the caller must free() the returned value. */ char * -virNWFilterGetXMLDesc(virNWFilterPtr nwfilter, int flags) +virNWFilterGetXMLDesc(virNWFilterPtr nwfilter, unsigned int flags) { virConnectPtr conn; VIR_DEBUG("nwfilter=%p, flags=%x", nwfilter, flags); -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:45PM -0600, Eric Blake wrote:
Most APIs use 'unsigned int flags'; but a few stragglers were using a signed value. In particular, the vir*GetXMLDesc APIs were split-brain, with inconsistent choice of types. Although it is an API break to use 'int' instead of 'unsigned int', it is ABI compatible (pre-compiled apps will have no difference in behavior), and generally apps can be recompiled without any issue (only rare apps that compiled with extremely high warning levels, or which pass libvirt API around as typed function pointers, would have to make any code changes to deal with the change).
The migrate APIs use 'unsigned long flags', which can't be changed, due to ABI constraints.
This patch intentionally touches only the public API, to prove the claim that most existing code (including driver callbacks and virsh) still compiles just fine in spite of the type change.
* include/libvirt/libvirt.h.in (virConnectOpenAuth) (virDomainCoreDump, virDomainGetXMLDesc, virNetworkGetXMLDesc) (virNWFilterGetXMLDesc): Use unsigned int for flags. * src/libvirt.c (virConnectOpenAuth, virDomainCoreDump) (virDomainGetXMLDesc, virNetworkGetXMLDesc) (virNWFilterGetXMLDesc, do_open): Update accordingly. --- include/libvirt/libvirt.h.in | 10 +++++----- src/libvirt.c | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index 8e20f75..a22c1c9 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -851,7 +851,7 @@ virConnectPtr virConnectOpen (const char *name); virConnectPtr virConnectOpenReadOnly (const char *name); virConnectPtr virConnectOpenAuth (const char *name, virConnectAuthPtr auth, - int flags); + unsigned int flags); int virConnectRef (virConnectPtr conn); int virConnectClose (virConnectPtr conn); const char * virConnectGetType (virConnectPtr conn); @@ -961,7 +961,7 @@ int virDomainManagedSaveRemove(virDomainPtr dom, */ int virDomainCoreDump (virDomainPtr domain, const char *to, - int flags); + unsigned int flags);
/* * Screenshot of current domain console @@ -1115,7 +1115,7 @@ typedef enum { } virDomainXMLFlags;
char * virDomainGetXMLDesc (virDomainPtr domain, - int flags); + unsigned int flags);
char * virConnectDomainXMLFromNative(virConnectPtr conn, @@ -1471,7 +1471,7 @@ int virNetworkGetUUID (virNetworkPtr network, int virNetworkGetUUIDString (virNetworkPtr network, char *buf); char * virNetworkGetXMLDesc (virNetworkPtr network, - int flags); + unsigned int flags); char * virNetworkGetBridgeName (virNetworkPtr network);
int virNetworkGetAutostart (virNetworkPtr network, @@ -2790,7 +2790,7 @@ int virNWFilterGetUUID (virNWFilterPtr nwfilter, int virNWFilterGetUUIDString (virNWFilterPtr nwfilter, char *buf); char * virNWFilterGetXMLDesc (virNWFilterPtr nwfilter, - int flags); + unsigned int flags);
int virDomainOpenConsole(virDomainPtr dom, diff --git a/src/libvirt.c b/src/libvirt.c index 5e1451c..7e70caa 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -955,7 +955,7 @@ error: static virConnectPtr do_open (const char *name, virConnectAuthPtr auth, - int flags) + unsigned int flags) { int i, res; virConnectPtr ret; @@ -1269,7 +1269,7 @@ error: virConnectPtr virConnectOpenAuth(const char *name, virConnectAuthPtr auth, - int flags) + unsigned int flags) { virConnectPtr ret = NULL; if (!initialized) @@ -2365,7 +2365,7 @@ error: * Returns 0 in case of success and -1 in case of failure. */ int -virDomainCoreDump(virDomainPtr domain, const char *to, int flags) +virDomainCoreDump(virDomainPtr domain, const char *to, unsigned int flags) { virConnectPtr conn;
@@ -3359,7 +3359,7 @@ error: * the caller must free() the returned value. */ char * -virDomainGetXMLDesc(virDomainPtr domain, int flags) +virDomainGetXMLDesc(virDomainPtr domain, unsigned int flags) { virConnectPtr conn;
@@ -8449,7 +8449,7 @@ error: * the caller must free() the returned value. */ char * -virNetworkGetXMLDesc(virNetworkPtr network, int flags) +virNetworkGetXMLDesc(virNetworkPtr network, unsigned int flags) { virConnectPtr conn; VIR_DEBUG("network=%p, flags=%x", network, flags); @@ -14217,7 +14217,7 @@ error: * the caller must free() the returned value. */ char * -virNWFilterGetXMLDesc(virNWFilterPtr nwfilter, int flags) +virNWFilterGetXMLDesc(virNWFilterPtr nwfilter, unsigned int flags) { virConnectPtr conn; VIR_DEBUG("nwfilter=%p, flags=%x", nwfilter, flags);
Yes I think that's fine, I'm not worried by this change of API as it will be strictly compatible in practice, ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

Now that the public APIs always use unsigned flags, the internal driver callbacks might as well do likewise. * src/driver.h (vrDrvOpen, virDrvDomainCoreDump) (virDrvDomainGetXMLDesc, virDrvNetworkGetXMLDesc) (virDrvNWFilterGetXMLDesc): Update type. * src/remote/remote_protocol.x (remote_open_args) (remote_domain_core_dump_args, remote_domain_get_xml_desc_args) (remote_network_get_xml_desc_args) (remote_nwfilter_get_xml_desc_args): Likewise. * src/test/test_driver.c: Update clients. * src/remote/remote_driver.c: Likewise. * src/xen/xen_hypervisor.c: Likewise. * src/xen/xen_hypervisor.h: Likewise. * src/xen/xen_driver.c: Likewise. * src/xen/xend_internal.c: Likewise. * src/xen/xend_internal.h: Likewise. * src/xen/xm_internal.c: Likewise. * src/xen/xm_internal.h: Likewise. * src/xen/xs_internal.c: Likewise. * src/xen/xs_internal.h: Likewise. * src/xen/xen_inotify.c: Likewise. * src/xen/xen_inotify.h: Likewise. * src/phyp/phyp_driver.c: Likewise. * src/openvz/openvz_driver.c: Likewise. * src/vmware/vmware_driver.c: Likewise. * src/vbox/vbox_driver.c: Likewise. * src/vbox/vbox_tmpl.c: Likewise. * src/xenapi/xenapi_driver.c: Likewise. * src/esx/esx_driver.c: Likewise. * src/esx/esx_interface_driver.c: Likewise. * src/esx/esx_network_driver.c: Likewise. * src/esx/esx_storage_driver.c: Likewise. * src/esx/esx_device_monitor.c: Likewise. * src/esx/esx_secret_driver.c: Likewise. * src/esx/esx_nwfilter_driver.c: Likewise. * src/interface/netcf_driver.c: Likewise. * src/nwfilter/nwfilter_driver.c: Likewise. * src/libxl/libxl_driver.c: Likewise. * src/qemu/qemu_driver.c: Likewise. * src/lxc/lxc_driver.c: Likewise. * src/uml/uml_driver.c: Likewise. * src/network/bridge_driver.c: Likewise. * src/secret/secret_driver.c: Likewise. * src/storage/storage_driver.c: Likewise. * src/node_device/node_device_hal.c: Likewise. * src/node_device/node_device_udev.c: Likewise. * src/remote_protocol-structs: Likewise. --- src/driver.h | 10 +++++----- src/esx/esx_device_monitor.c | 4 ++-- src/esx/esx_driver.c | 5 +++-- src/esx/esx_interface_driver.c | 4 ++-- src/esx/esx_network_driver.c | 4 ++-- src/esx/esx_nwfilter_driver.c | 3 ++- src/esx/esx_secret_driver.c | 4 ++-- src/esx/esx_storage_driver.c | 4 ++-- src/interface/netcf_driver.c | 4 ++-- src/libxl/libxl_driver.c | 6 +++--- src/lxc/lxc_driver.c | 4 ++-- src/network/bridge_driver.c | 6 ++++-- src/node_device/node_device_hal.c | 3 ++- src/node_device/node_device_udev.c | 2 +- src/nwfilter/nwfilter_driver.c | 8 +++++--- src/openvz/openvz_driver.c | 4 ++-- src/phyp/phyp_driver.c | 6 +++--- src/qemu/qemu_driver.c | 8 +++++--- src/remote/remote_driver.c | 24 +++++++++++++++--------- src/remote/remote_protocol.x | 10 +++++----- src/remote_protocol-structs | 10 +++++----- src/secret/secret_driver.c | 2 +- src/storage/storage_driver.c | 2 +- src/test/test_driver.c | 24 +++++++++++++----------- src/uml/uml_driver.c | 4 ++-- src/vbox/vbox_driver.c | 4 ++-- src/vbox/vbox_tmpl.c | 11 ++++++----- src/vmware/vmware_driver.c | 4 ++-- src/xen/xen_driver.c | 6 +++--- src/xen/xen_hypervisor.c | 2 +- src/xen/xen_hypervisor.h | 2 +- src/xen/xen_inotify.c | 6 +++--- src/xen/xen_inotify.h | 3 ++- src/xen/xend_internal.c | 4 ++-- src/xen/xend_internal.h | 5 +++-- src/xen/xm_internal.c | 2 +- src/xen/xm_internal.h | 5 +++-- src/xen/xs_internal.c | 4 ++-- src/xen/xs_internal.h | 4 ++-- src/xenapi/xenapi_driver.c | 5 +++-- 40 files changed, 127 insertions(+), 105 deletions(-) diff --git a/src/driver.h b/src/driver.h index 871a4ae..71a52c9 100644 --- a/src/driver.h +++ b/src/driver.h @@ -66,7 +66,7 @@ typedef enum { typedef virDrvOpenStatus (*virDrvOpen) (virConnectPtr conn, virConnectAuthPtr auth, - int flags); + unsigned int flags); typedef int (*virDrvClose) (virConnectPtr conn); typedef int @@ -183,7 +183,7 @@ typedef int typedef int (*virDrvDomainCoreDump) (virDomainPtr domain, const char *to, - int flags); + unsigned int flags); typedef char * (*virDrvDomainScreenshot) (virDomainPtr domain, virStreamPtr stream, @@ -191,7 +191,7 @@ typedef char * unsigned int flags); typedef char * (*virDrvDomainGetXMLDesc) (virDomainPtr dom, - int flags); + unsigned int flags); typedef char * (*virDrvConnectDomainXMLFromNative) (virConnectPtr conn, const char *nativeFormat, @@ -829,7 +829,7 @@ typedef int (*virDrvNetworkDestroy) (virNetworkPtr network); typedef char * (*virDrvNetworkGetXMLDesc) (virNetworkPtr network, - int flags); + unsigned int flags); typedef char * (*virDrvNetworkGetBridgeName) (virNetworkPtr network); typedef int @@ -1351,7 +1351,7 @@ typedef int typedef char * (*virDrvNWFilterGetXMLDesc) (virNWFilterPtr nwfilter, - int flags); + unsigned int flags); typedef struct _virNWFilterDriver virNWFilterDriver; diff --git a/src/esx/esx_device_monitor.c b/src/esx/esx_device_monitor.c index 4bc8e7f..51b2413 100644 --- a/src/esx/esx_device_monitor.c +++ b/src/esx/esx_device_monitor.c @@ -3,7 +3,7 @@ * esx_device_monitor.c: device monitor functions for managing VMware ESX * host devices * - * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2010-2011 Red Hat, Inc. * Copyright (C) 2010 Matthias Bolte <matthias.bolte@googlemail.com> * * This library is free software; you can redistribute it and/or @@ -42,7 +42,7 @@ static virDrvOpenStatus esxDeviceOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index a6e47a4..f68ede0 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -934,7 +934,8 @@ esxConnectToVCenter(esxPrivate *priv, virConnectAuthPtr auth, * socks5. The optional <port> part allows to override the default port 1080. */ static virDrvOpenStatus -esxOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags ATTRIBUTE_UNUSED) +esxOpen(virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags ATTRIBUTE_UNUSED) { virDrvOpenStatus result = VIR_DRV_OPEN_ERROR; esxPrivate *priv = NULL; @@ -2681,7 +2682,7 @@ esxDomainGetMaxVcpus(virDomainPtr domain) static char * -esxDomainGetXMLDesc(virDomainPtr domain, int flags) +esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags) { esxPrivate *priv = domain->conn->privateData; esxVI_String *propertyNameList = NULL; diff --git a/src/esx/esx_interface_driver.c b/src/esx/esx_interface_driver.c index a468976..3d23d0f 100644 --- a/src/esx/esx_interface_driver.c +++ b/src/esx/esx_interface_driver.c @@ -3,7 +3,7 @@ * esx_interface_driver.c: interface driver functions for managing VMware ESX * host interfaces * - * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2010-2011 Red Hat, Inc. * Copyright (C) 2010 Matthias Bolte <matthias.bolte@googlemail.com> * * This library is free software; you can redistribute it and/or @@ -42,7 +42,7 @@ static virDrvOpenStatus esxInterfaceOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; diff --git a/src/esx/esx_network_driver.c b/src/esx/esx_network_driver.c index 3c76fae..f8a3ede 100644 --- a/src/esx/esx_network_driver.c +++ b/src/esx/esx_network_driver.c @@ -3,7 +3,7 @@ * esx_network_driver.c: network driver functions for managing VMware ESX * host networks * - * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2010-2011 Red Hat, Inc. * Copyright (C) 2010 Matthias Bolte <matthias.bolte@googlemail.com> * * This library is free software; you can redistribute it and/or @@ -42,7 +42,7 @@ static virDrvOpenStatus esxNetworkOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; diff --git a/src/esx/esx_nwfilter_driver.c b/src/esx/esx_nwfilter_driver.c index 13cacd4..d7fa15a 100644 --- a/src/esx/esx_nwfilter_driver.c +++ b/src/esx/esx_nwfilter_driver.c @@ -3,6 +3,7 @@ * esx_nwfilter_driver.c: nwfilter driver functions for managing VMware ESX * firewall rules * + * Copyright (C) 2011 Red Hat, Inc. * Copyright (C) 2010 Matthias Bolte <matthias.bolte@googlemail.com> * * This library is free software; you can redistribute it and/or @@ -41,7 +42,7 @@ static virDrvOpenStatus esxNWFilterOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; diff --git a/src/esx/esx_secret_driver.c b/src/esx/esx_secret_driver.c index 656224e..820f4b1 100644 --- a/src/esx/esx_secret_driver.c +++ b/src/esx/esx_secret_driver.c @@ -2,7 +2,7 @@ /* * esx_secret_driver.c: secret driver functions for VMware ESX secret manipulation * - * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2010-2011 Red Hat, Inc. * Copyright (C) 2010 Matthias Bolte <matthias.bolte@googlemail.com> * * This library is free software; you can redistribute it and/or @@ -40,7 +40,7 @@ static virDrvOpenStatus esxSecretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; diff --git a/src/esx/esx_storage_driver.c b/src/esx/esx_storage_driver.c index c7fc992..528159a 100644 --- a/src/esx/esx_storage_driver.c +++ b/src/esx/esx_storage_driver.c @@ -3,7 +3,7 @@ * esx_storage_driver.c: storage driver functions for managing VMware ESX * host storage * - * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2010-2011 Red Hat, Inc. * Copyright (C) 2010 Matthias Bolte <matthias.bolte@googlemail.com> * * This library is free software; you can redistribute it and/or @@ -104,7 +104,7 @@ esxStoragePoolLookupType(esxVI_Context *ctx, const char *poolName, static virDrvOpenStatus esxStorageOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; diff --git a/src/interface/netcf_driver.c b/src/interface/netcf_driver.c index dd15c9d..8900722 100644 --- a/src/interface/netcf_driver.c +++ b/src/interface/netcf_driver.c @@ -2,7 +2,7 @@ * interface_driver.c: backend driver methods to handle physical * interface configuration using the netcf library. * - * Copyright (C) 2006-2010 Red Hat, Inc. + * Copyright (C) 2006-2011 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -121,7 +121,7 @@ static struct netcf_if *interfaceDriverGetNetcfIF(struct netcf *ncf, virInterfac static virDrvOpenStatus interfaceOpenInterface(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { struct interface_driver *driverState; diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index ade69d8..586d562 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1059,7 +1059,7 @@ libxlActive(void) static virDrvOpenStatus libxlOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (conn->uri == NULL) { if (libxl_driver == NULL) @@ -1969,7 +1969,7 @@ cleanup: } static int -libxlDomainCoreDump(virDomainPtr dom, const char *to, int flags) +libxlDomainCoreDump(virDomainPtr dom, const char *to, unsigned int flags) { libxlDriverPrivatePtr driver = dom->conn->privateData; libxlDomainObjPrivatePtr priv; @@ -2479,7 +2479,7 @@ cleanup: } static char * -libxlDomainGetXMLDesc(virDomainPtr dom, int flags) +libxlDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { libxlDriverPrivatePtr driver = dom->conn->privateData; virDomainObjPtr vm; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index ffcfe4d..799a5e7 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -110,7 +110,7 @@ static void lxcDomainEventQueue(lxc_driver_t *driver, static virDrvOpenStatus lxcOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { /* Verify uri was specified */ if (conn->uri == NULL) { @@ -953,7 +953,7 @@ cleanup: } static char *lxcDomainGetXMLDesc(virDomainPtr dom, - int flags) + unsigned int flags) { lxc_driver_t *driver = dom->conn->privateData; virDomainObjPtr vm; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 9759ce8..554a8ac 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -2010,7 +2010,7 @@ cleanup: static virDrvOpenStatus networkOpenNetwork(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { if (!driverState) return VIR_DRV_OPEN_DECLINED; @@ -2415,7 +2415,9 @@ cleanup: return ret; } -static char *networkGetXMLDesc(virNetworkPtr net, int flags ATTRIBUTE_UNUSED) { +static char *networkGetXMLDesc(virNetworkPtr net, + unsigned int flags ATTRIBUTE_UNUSED) +{ struct network_driver *driver = net->conn->networkPrivateData; virNetworkObjPtr network; char *ret = NULL; diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c index 27fedc9..d1dedfe 100644 --- a/src/node_device/node_device_hal.c +++ b/src/node_device/node_device_hal.c @@ -1,6 +1,7 @@ /* * node_device_hal.c: node device enumeration - HAL-based implementation * + * Copyright (C) 2011 Red Hat, Inc. * Copyright (C) 2008 Virtual Iron Software, Inc. * Copyright (C) 2008 David F. Lively * @@ -861,7 +862,7 @@ static int halDeviceMonitorActive(void) static virDrvOpenStatus halNodeDrvOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (driverState == NULL) return VIR_DRV_OPEN_DECLINED; diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 2d4e078..db26c6b 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1721,7 +1721,7 @@ static int udevDeviceMonitorActive(void) static virDrvOpenStatus udevNodeDrvOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (driverState == NULL) { return VIR_DRV_OPEN_DECLINED; diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 44327ae..bfe7f2f 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -271,8 +271,9 @@ cleanup: static virDrvOpenStatus nwfilterOpen(virConnectPtr conn, - virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + virConnectAuthPtr auth ATTRIBUTE_UNUSED, + unsigned int flags ATTRIBUTE_UNUSED) +{ if (!driverState) return VIR_DRV_OPEN_DECLINED; @@ -411,7 +412,8 @@ cleanup: static char * nwfilterGetXMLDesc(virNWFilterPtr obj, - int flags) { + unsigned int flags) +{ virNWFilterDriverStatePtr driver = obj->conn->nwfilterPrivateData; virNWFilterObjPtr nwfilter; char *ret = NULL; diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index c13f346..2c6c870 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -456,7 +456,7 @@ static int openvzDomainIsUpdated(virDomainPtr dom ATTRIBUTE_UNUSED) return 0; } -static char *openvzDomainGetXMLDesc(virDomainPtr dom, int flags) { +static char *openvzDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { struct openvz_driver *driver = dom->conn->privateData; virDomainObjPtr vm; char *ret = NULL; @@ -1281,7 +1281,7 @@ openvzDomainSetVcpus(virDomainPtr dom, unsigned int nvcpus) static virDrvOpenStatus openvzOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { struct openvz_driver *driver; diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index a9a9a21..d1ab5b4 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -1128,7 +1128,7 @@ exit: static virDrvOpenStatus phypOpen(virConnectPtr conn, - virConnectAuthPtr auth, int flags ATTRIBUTE_UNUSED) + virConnectAuthPtr auth, unsigned int flags ATTRIBUTE_UNUSED) { LIBSSH2_SESSION *session = NULL; ConnectionData *connection_data = NULL; @@ -3307,7 +3307,7 @@ cleanup: } static char * -phypDomainGetXMLDesc(virDomainPtr dom, int flags) +phypDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { ConnectionData *connection_data = dom->conn->networkPrivateData; phyp_driverPtr phyp_driver = dom->conn->privateData; @@ -3725,7 +3725,7 @@ phypDomainSetCPU(virDomainPtr dom, unsigned int nvcpus) static virDrvOpenStatus phypVIOSDriverOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (conn->driver->no != VIR_DRV_PHYP) return VIR_DRV_OPEN_DECLINED; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 52b7dfd..4f12beb 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -800,7 +800,8 @@ static int qemuDomainSnapshotSetCurrentInactive(virDomainObjPtr vm, static virDrvOpenStatus qemudOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) +{ if (conn->uri == NULL) { if (qemu_driver == NULL) return VIR_DRV_OPEN_DECLINED; @@ -2585,7 +2586,7 @@ getCompressionType(struct qemud_driver *driver) static int qemudDomainCoreDump(virDomainPtr dom, const char *path, - int flags) + unsigned int flags) { struct qemud_driver *driver = dom->conn->privateData; virDomainObjPtr vm; @@ -3818,7 +3819,8 @@ cleanup: static char *qemuDomainGetXMLDesc(virDomainPtr dom, - int flags) { + unsigned int flags) +{ struct qemud_driver *driver = dom->conn->privateData; virDomainObjPtr vm; char *ret = NULL; diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index f318740..199d8f8 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -286,7 +286,7 @@ static int doRemoteOpen (virConnectPtr conn, struct private_data *priv, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags) + unsigned int flags) { struct qparam_set *vars = NULL; char *transport_str = NULL; @@ -741,7 +741,7 @@ remoteOpenSecondaryDriver(virConnectPtr conn, static virDrvOpenStatus remoteOpen (virConnectPtr conn, virConnectAuthPtr auth, - int flags) + unsigned int flags) { struct private_data *priv; int ret, rflags = 0; @@ -1989,7 +1989,7 @@ done: static virDrvOpenStatus ATTRIBUTE_NONNULL (1) remoteGenericOpen(virConnectPtr conn, virConnectAuthPtr auth, - int flags, void **genericPrivateData) + unsigned int flags, void **genericPrivateData) { if (inside_daemon) return VIR_DRV_OPEN_DECLINED; @@ -2048,7 +2048,8 @@ remoteGenericClose(virConnectPtr conn, void **genericPrivateData) } static virDrvOpenStatus ATTRIBUTE_NONNULL (1) -remoteNetworkOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags) +remoteNetworkOpen(virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags) { return remoteGenericOpen(conn, auth, flags, &conn->networkPrivateData); } @@ -2062,7 +2063,8 @@ remoteNetworkClose(virConnectPtr conn) /*----------------------------------------------------------------------*/ static virDrvOpenStatus ATTRIBUTE_NONNULL (1) -remoteInterfaceOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags) +remoteInterfaceOpen(virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags) { return remoteGenericOpen(conn, auth, flags, &conn->interfacePrivateData); } @@ -2076,7 +2078,8 @@ remoteInterfaceClose(virConnectPtr conn) /*----------------------------------------------------------------------*/ static virDrvOpenStatus ATTRIBUTE_NONNULL (1) -remoteStorageOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags) +remoteStorageOpen(virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags) { return remoteGenericOpen(conn, auth, flags, &conn->storagePrivateData); } @@ -2135,7 +2138,8 @@ done: /*----------------------------------------------------------------------*/ static virDrvOpenStatus ATTRIBUTE_NONNULL (1) -remoteDevMonOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags) +remoteDevMonOpen(virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags) { return remoteGenericOpen(conn, auth, flags, &conn->devMonPrivateData); } @@ -2224,7 +2228,8 @@ done: /* ------------------------------------------------------------- */ static virDrvOpenStatus ATTRIBUTE_NONNULL (1) -remoteNWFilterOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags) +remoteNWFilterOpen(virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags) { return remoteGenericOpen(conn, auth, flags, &conn->nwfilterPrivateData); } @@ -3145,7 +3150,8 @@ remoteDomainBuildEventControlError(virNetClientProgramPtr prog ATTRIBUTE_UNUSED, static virDrvOpenStatus ATTRIBUTE_NONNULL (1) -remoteSecretOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags) +remoteSecretOpen(virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags) { return remoteGenericOpen(conn, auth, flags, &conn->secretPrivateData); } diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index 7c3539c..ee169fd 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -358,7 +358,7 @@ struct remote_open_args { * yet do that using the remote_internal driver. */ remote_string name; - int flags; + unsigned int flags; }; struct remote_supports_feature_args { @@ -732,7 +732,7 @@ struct remote_domain_restore_args { struct remote_domain_core_dump_args { remote_nonnull_domain dom; remote_nonnull_string to; - int flags; + unsigned int flags; }; struct remote_domain_screenshot_args { @@ -747,7 +747,7 @@ struct remote_domain_screenshot_ret { struct remote_domain_get_xml_desc_args { remote_nonnull_domain dom; - int flags; + unsigned int flags; }; struct remote_domain_get_xml_desc_ret { @@ -1052,7 +1052,7 @@ struct remote_network_destroy_args { struct remote_network_get_xml_desc_args { remote_nonnull_network net; - int flags; + unsigned int flags; }; struct remote_network_get_xml_desc_ret { @@ -1124,7 +1124,7 @@ struct remote_nwfilter_undefine_args { struct remote_nwfilter_get_xml_desc_args { remote_nonnull_nwfilter nwfilter; - int flags; + unsigned int flags; }; struct remote_nwfilter_get_xml_desc_ret { diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs index 25979b4..b2de8e9 100644 --- a/src/remote_protocol-structs +++ b/src/remote_protocol-structs @@ -81,7 +81,7 @@ struct remote_node_get_memory_stats { }; struct remote_open_args { remote_string name; - int flags; + u_int flags; }; struct remote_supports_feature_args { int feature; @@ -422,7 +422,7 @@ struct remote_domain_restore_args { struct remote_domain_core_dump_args { remote_nonnull_domain dom; remote_nonnull_string to; - int flags; + u_int flags; }; struct remote_domain_screenshot_args { remote_nonnull_domain dom; @@ -434,7 +434,7 @@ struct remote_domain_screenshot_ret { }; struct remote_domain_get_xml_desc_args { remote_nonnull_domain dom; - int flags; + u_int flags; }; struct remote_domain_get_xml_desc_ret { remote_nonnull_string xml; @@ -726,7 +726,7 @@ struct remote_network_destroy_args { }; struct remote_network_get_xml_desc_args { remote_nonnull_network net; - int flags; + u_int flags; }; struct remote_network_get_xml_desc_ret { remote_nonnull_string xml; @@ -782,7 +782,7 @@ struct remote_nwfilter_undefine_args { }; struct remote_nwfilter_get_xml_desc_args { remote_nonnull_nwfilter nwfilter; - int flags; + u_int flags; }; struct remote_nwfilter_get_xml_desc_ret { remote_nonnull_string xml; diff --git a/src/secret/secret_driver.c b/src/secret/secret_driver.c index ee3c165..552b7e4 100644 --- a/src/secret/secret_driver.c +++ b/src/secret/secret_driver.c @@ -525,7 +525,7 @@ cleanup: static virDrvOpenStatus secretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { if (driverState == NULL) return VIR_DRV_OPEN_DECLINED; diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index a990118..d1fef92 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -322,7 +322,7 @@ storagePoolLookupByVolume(virStorageVolPtr vol) { static virDrvOpenStatus storageOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { if (!driverState) return VIR_DRV_OPEN_DECLINED; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 18f6a52..98daca8 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1098,8 +1098,8 @@ static int testOpenFromFile(virConnectPtr conn, static virDrvOpenStatus testOpen(virConnectPtr conn, - virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + virConnectAuthPtr auth ATTRIBUTE_UNUSED, + unsigned int flags ATTRIBUTE_UNUSED) { int ret; testConnPtr privconn; @@ -1904,7 +1904,7 @@ cleanup: static int testDomainCoreDump(virDomainPtr domain, const char *to, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { testConnPtr privconn = domain->conn->privateData; int fd = -1; @@ -2350,7 +2350,7 @@ cleanup: return ret; } -static char *testDomainGetXMLDesc(virDomainPtr domain, int flags) +static char *testDomainGetXMLDesc(virDomainPtr domain, unsigned int flags) { testConnPtr privconn = domain->conn->privateData; virDomainDefPtr def; @@ -2843,7 +2843,7 @@ error: static virDrvOpenStatus testOpenNetwork(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -3177,7 +3177,9 @@ cleanup: return ret; } -static char *testNetworkGetXMLDesc(virNetworkPtr network, int flags ATTRIBUTE_UNUSED) { +static char *testNetworkGetXMLDesc(virNetworkPtr network, + unsigned int flags ATTRIBUTE_UNUSED) +{ testConnPtr privconn = network->conn->privateData; virNetworkObjPtr privnet; char *ret = NULL; @@ -3290,7 +3292,7 @@ cleanup: static virDrvOpenStatus testOpenInterface(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -3714,7 +3716,7 @@ static int testStoragePoolObjSetDefaults(virStoragePoolObjPtr pool) { static virDrvOpenStatus testStorageOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -4940,7 +4942,7 @@ cleanup: /* Node device implementations */ static virDrvOpenStatus testDevMonOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -5394,7 +5396,7 @@ static void testDomainEventQueue(testConnPtr driver, static virDrvOpenStatus testSecretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -5410,7 +5412,7 @@ static int testSecretClose(virConnectPtr conn) { static virDrvOpenStatus testNWFilterOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index f0f053b..6a396e4 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -946,7 +946,7 @@ static void umlShutdownVMDaemon(virConnectPtr conn ATTRIBUTE_UNUSED, static virDrvOpenStatus umlOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { if (conn->uri == NULL) { if (uml_driver == NULL) return VIR_DRV_OPEN_DECLINED; @@ -1559,7 +1559,7 @@ cleanup: static char *umlDomainGetXMLDesc(virDomainPtr dom, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { struct uml_driver *driver = dom->conn->privateData; virDomainObjPtr vm; char *ret = NULL; diff --git a/src/vbox/vbox_driver.c b/src/vbox/vbox_driver.c index eab4679..b20998a 100644 --- a/src/vbox/vbox_driver.c +++ b/src/vbox/vbox_driver.c @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2010-2011 Red Hat, Inc. * Copyright (C) 2008-2009 Sun Microsystems, Inc. * * This file is part of a free software library; you can redistribute @@ -142,7 +142,7 @@ int vboxRegister(void) { static virDrvOpenStatus vboxOpenDummy(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { uid_t uid = getuid(); if (conn->uri == NULL || diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 37fe248..4a0858f 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -961,7 +961,7 @@ static void vboxUninitialize(vboxGlobalData *data) { static virDrvOpenStatus vboxOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { vboxGlobalData *data = NULL; uid_t uid = getuid(); @@ -2130,7 +2130,7 @@ vboxDomainGetMaxVcpus(virDomainPtr dom) VIR_DOMAIN_VCPU_MAXIMUM)); } -static char *vboxDomainGetXMLDesc(virDomainPtr dom, int flags) { +static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { VBOX_OBJECT_CHECK(dom->conn, char *, NULL); virDomainDefPtr def = NULL; IMachine *machine = NULL; @@ -6938,7 +6938,7 @@ static int vboxDomainEventDeregisterAny(virConnectPtr conn, */ static virDrvOpenStatus vboxNetworkOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { vboxGlobalData *data = conn->privateData; if (STRNEQ(conn->driver->name, "VBOX")) @@ -7574,7 +7574,8 @@ static int vboxNetworkDestroy(virNetworkPtr network) { return vboxNetworkUndefineDestroy(network, false); } -static char *vboxNetworkGetXMLDesc(virNetworkPtr network, int flags ATTRIBUTE_UNUSED) { +static char *vboxNetworkGetXMLDesc(virNetworkPtr network, + unsigned int flags ATTRIBUTE_UNUSED) { VBOX_OBJECT_HOST_CHECK(network->conn, char *, NULL); virNetworkDefPtr def = NULL; virNetworkIpDefPtr ipdef = NULL; @@ -7749,7 +7750,7 @@ cleanup: static virDrvOpenStatus vboxStorageOpen (virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) { vboxGlobalData *data = conn->privateData; if (STRNEQ(conn->driver->name, "VBOX")) diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index 52582d6..3f0cfae 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -74,7 +74,7 @@ vmwareDataFreeFunc(void *data) static virDrvOpenStatus vmwareOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { struct vmware_driver *driver; char * vmrun = NULL; @@ -792,7 +792,7 @@ vmwareDomainIsPersistent(virDomainPtr dom) static char * -vmwareDomainGetXMLDesc(virDomainPtr dom, int flags) +vmwareDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { struct vmware_driver *driver = dom->conn->privateData; virDomainObjPtr vm; diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 88febba..0f66395 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -248,7 +248,7 @@ xenUnifiedXendProbe (void) #endif static virDrvOpenStatus -xenUnifiedOpen (virConnectPtr conn, virConnectAuthPtr auth, int flags) +xenUnifiedOpen (virConnectPtr conn, virConnectAuthPtr auth, unsigned int flags) { int i, ret = VIR_DRV_OPEN_DECLINED; xenUnifiedPrivatePtr priv; @@ -1081,7 +1081,7 @@ xenUnifiedDomainRestore (virConnectPtr conn, const char *from) } static int -xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags) +xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, unsigned int flags) { GET_PRIVATE(dom->conn); int i; @@ -1233,7 +1233,7 @@ xenUnifiedDomainGetMaxVcpus (virDomainPtr dom) } static char * -xenUnifiedDomainGetXMLDesc(virDomainPtr dom, int flags) +xenUnifiedDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { GET_PRIVATE(dom->conn); diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c index 6a46a39..a92b743 100644 --- a/src/xen/xen_hypervisor.c +++ b/src/xen/xen_hypervisor.c @@ -2201,7 +2201,7 @@ xenHypervisorInit(void) virDrvOpenStatus xenHypervisorOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { int ret; xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData; diff --git a/src/xen/xen_hypervisor.h b/src/xen/xen_hypervisor.h index 02ff63a..d522d5b 100644 --- a/src/xen/xen_hypervisor.h +++ b/src/xen/xen_hypervisor.h @@ -37,7 +37,7 @@ char * virDrvOpenStatus xenHypervisorOpen (virConnectPtr conn, virConnectAuthPtr auth, - int flags); + unsigned int flags); int xenHypervisorClose (virConnectPtr conn); int xenHypervisorGetVersion (virConnectPtr conn, unsigned long *hvVer); diff --git a/src/xen/xen_inotify.c b/src/xen/xen_inotify.c index 24b4376..2d7207c 100644 --- a/src/xen/xen_inotify.c +++ b/src/xen/xen_inotify.c @@ -4,7 +4,7 @@ * /etc/xen * /var/lib/xend/domains * - * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2010-2011 Red Hat, Inc. * Copyright (C) 2008 VirtualIron * * This library is free software; you can redistribute it and/or @@ -382,8 +382,8 @@ cleanup: */ virDrvOpenStatus xenInotifyOpen(virConnectPtr conn, - virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + virConnectAuthPtr auth ATTRIBUTE_UNUSED, + unsigned int flags ATTRIBUTE_UNUSED) { DIR *dh; struct dirent *ent; diff --git a/src/xen/xen_inotify.h b/src/xen/xen_inotify.h index 328fa5d..74f4dff 100644 --- a/src/xen/xen_inotify.h +++ b/src/xen/xen_inotify.h @@ -1,6 +1,7 @@ /* * xen_inofify.h: Xen notification of xml files * + * Copyright (C) 2011 Red Hat, Inc. * Copyright (C) 2008 VirtualIron * * This library is free software; you can redistribute it and/or @@ -29,7 +30,7 @@ extern struct xenUnifiedDriver xenInotifyDriver; virDrvOpenStatus xenInotifyOpen (virConnectPtr conn, virConnectAuthPtr auth, - int flags); + unsigned int flags); int xenInotifyClose (virConnectPtr conn); #endif diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c index d0eb32a0..6c2f051 100644 --- a/src/xen/xend_internal.c +++ b/src/xen/xend_internal.c @@ -1323,7 +1323,7 @@ error: virDrvOpenStatus xenDaemonOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { char *port = NULL; int ret = VIR_DRV_OPEN_ERROR; @@ -1629,7 +1629,7 @@ xenDaemonDomainSave(virDomainPtr domain, const char *filename) */ static int xenDaemonDomainCoreDump(virDomainPtr domain, const char *filename, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (filename == NULL)) { diff --git a/src/xen/xend_internal.h b/src/xen/xend_internal.h index 073dba2..5d324da 100644 --- a/src/xen/xend_internal.h +++ b/src/xen/xend_internal.h @@ -1,7 +1,7 @@ /* * xend_internal.h * - * Copyright (C) 2006-2008, 2010 Red Hat, Inc. + * Copyright (C) 2006-2008, 2010-2011 Red Hat, Inc. * Copyright (C) 2005,2006 * * Anthony Liguori <aliguori@us.ibm.com> @@ -95,7 +95,8 @@ xenDaemonDomainFetch(virConnectPtr xend, /* refactored ones */ -virDrvOpenStatus xenDaemonOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags); +virDrvOpenStatus xenDaemonOpen(virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags); int xenDaemonClose(virConnectPtr conn); int xenDaemonGetVersion(virConnectPtr conn, unsigned long *hvVer); int xenDaemonNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info); diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c index 530b0d4..01b9c4e 100644 --- a/src/xen/xm_internal.c +++ b/src/xen/xm_internal.c @@ -442,7 +442,7 @@ int xenXMConfigCacheRefresh (virConnectPtr conn) { virDrvOpenStatus xenXMOpen (virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { xenUnifiedPrivatePtr priv = conn->privateData; diff --git a/src/xen/xm_internal.h b/src/xen/xm_internal.h index 1251851..cf315cd 100644 --- a/src/xen/xm_internal.h +++ b/src/xen/xm_internal.h @@ -1,7 +1,7 @@ /* * xm_internal.h: helper routines for dealing with inactive domains * - * Copyright (C) 2006-2007, 2010 Red Hat, Inc. + * Copyright (C) 2006-2007, 2010-2011 Red Hat, Inc. * Copyright (C) 2006 Daniel P. Berrange * * This library is free software; you can redistribute it and/or @@ -36,7 +36,8 @@ int xenXMConfigCacheRefresh (virConnectPtr conn); int xenXMConfigCacheAddFile(virConnectPtr conn, const char *filename); int xenXMConfigCacheRemoveFile(virConnectPtr conn, const char *filename); -virDrvOpenStatus xenXMOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags); +virDrvOpenStatus xenXMOpen(virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags); int xenXMClose(virConnectPtr conn); const char *xenXMGetType(virConnectPtr conn); int xenXMDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info); diff --git a/src/xen/xs_internal.c b/src/xen/xs_internal.c index 04bf93a..48e450a 100644 --- a/src/xen/xs_internal.c +++ b/src/xen/xs_internal.c @@ -1,7 +1,7 @@ /* * xs_internal.c: access to Xen Store * - * Copyright (C) 2006, 2009-2010 Red Hat, Inc. + * Copyright (C) 2006, 2009-2011 Red Hat, Inc. * * See COPYING.LIB for the License of this software * @@ -267,7 +267,7 @@ virDomainGetVMInfo(virDomainPtr domain, const char *vm, const char *name) virDrvOpenStatus xenStoreOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData; diff --git a/src/xen/xs_internal.h b/src/xen/xs_internal.h index efc4f9f..0278799 100644 --- a/src/xen/xs_internal.h +++ b/src/xen/xs_internal.h @@ -1,7 +1,7 @@ /* * xs_internal.h: internal API for access to XenStore * - * Copyright (C) 2006, 2010 Red Hat, Inc. + * Copyright (C) 2006, 2010-2011 Red Hat, Inc. * * See COPYING.LIB for the License of this software * @@ -19,7 +19,7 @@ int xenStoreInit (void); virDrvOpenStatus xenStoreOpen (virConnectPtr conn, virConnectAuthPtr auth, - int flags); + unsigned int flags); int xenStoreClose (virConnectPtr conn); int xenStoreGetDomainInfo (virDomainPtr domain, virDomainInfoPtr info); diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c index 0a618ab..1c06f75 100644 --- a/src/xenapi/xenapi_driver.c +++ b/src/xenapi/xenapi_driver.c @@ -91,7 +91,8 @@ getCapsObject (void) * Return VIR_DRV_OPEN_SUCCESS on success, else VIR_DRV_OPEN_ERROR */ static virDrvOpenStatus -xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth, int flags ATTRIBUTE_UNUSED) +xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth, + unsigned int flags ATTRIBUTE_UNUSED) { char *username = NULL; char *password = NULL; @@ -1294,7 +1295,7 @@ xenapiDomainGetMaxVcpus (virDomainPtr dom) * Returns XML string of the domain configuration on success or -1 in case of error */ static char * -xenapiDomainGetXMLDesc(virDomainPtr dom, int flags ATTRIBUTE_UNUSED) +xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) { xen_vm vm=NULL; xen_vm_set *vms; -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:46PM -0600, Eric Blake wrote:
Now that the public APIs always use unsigned flags, the internal driver callbacks might as well do likewise.
* src/driver.h (vrDrvOpen, virDrvDomainCoreDump) (virDrvDomainGetXMLDesc, virDrvNetworkGetXMLDesc) (virDrvNWFilterGetXMLDesc): Update type. * src/remote/remote_protocol.x (remote_open_args) (remote_domain_core_dump_args, remote_domain_get_xml_desc_args) (remote_network_get_xml_desc_args) (remote_nwfilter_get_xml_desc_args): Likewise. * src/test/test_driver.c: Update clients. * src/remote/remote_driver.c: Likewise. * src/xen/xen_hypervisor.c: Likewise. * src/xen/xen_hypervisor.h: Likewise. * src/xen/xen_driver.c: Likewise. * src/xen/xend_internal.c: Likewise. * src/xen/xend_internal.h: Likewise. * src/xen/xm_internal.c: Likewise. * src/xen/xm_internal.h: Likewise. * src/xen/xs_internal.c: Likewise. * src/xen/xs_internal.h: Likewise. * src/xen/xen_inotify.c: Likewise. * src/xen/xen_inotify.h: Likewise. * src/phyp/phyp_driver.c: Likewise. * src/openvz/openvz_driver.c: Likewise. * src/vmware/vmware_driver.c: Likewise. * src/vbox/vbox_driver.c: Likewise. * src/vbox/vbox_tmpl.c: Likewise. * src/xenapi/xenapi_driver.c: Likewise. * src/esx/esx_driver.c: Likewise. * src/esx/esx_interface_driver.c: Likewise. * src/esx/esx_network_driver.c: Likewise. * src/esx/esx_storage_driver.c: Likewise. * src/esx/esx_device_monitor.c: Likewise. * src/esx/esx_secret_driver.c: Likewise. * src/esx/esx_nwfilter_driver.c: Likewise. * src/interface/netcf_driver.c: Likewise. * src/nwfilter/nwfilter_driver.c: Likewise. * src/libxl/libxl_driver.c: Likewise. * src/qemu/qemu_driver.c: Likewise. * src/lxc/lxc_driver.c: Likewise. * src/uml/uml_driver.c: Likewise. * src/network/bridge_driver.c: Likewise. * src/secret/secret_driver.c: Likewise. * src/storage/storage_driver.c: Likewise. * src/node_device/node_device_hal.c: Likewise. * src/node_device/node_device_udev.c: Likewise. * src/remote_protocol-structs: Likewise. --- src/driver.h | 10 +++++----- src/esx/esx_device_monitor.c | 4 ++-- src/esx/esx_driver.c | 5 +++-- src/esx/esx_interface_driver.c | 4 ++-- src/esx/esx_network_driver.c | 4 ++-- src/esx/esx_nwfilter_driver.c | 3 ++- src/esx/esx_secret_driver.c | 4 ++-- src/esx/esx_storage_driver.c | 4 ++-- src/interface/netcf_driver.c | 4 ++-- src/libxl/libxl_driver.c | 6 +++--- src/lxc/lxc_driver.c | 4 ++-- src/network/bridge_driver.c | 6 ++++-- src/node_device/node_device_hal.c | 3 ++- src/node_device/node_device_udev.c | 2 +- src/nwfilter/nwfilter_driver.c | 8 +++++--- src/openvz/openvz_driver.c | 4 ++-- src/phyp/phyp_driver.c | 6 +++--- src/qemu/qemu_driver.c | 8 +++++--- src/remote/remote_driver.c | 24 +++++++++++++++--------- src/remote/remote_protocol.x | 10 +++++----- src/remote_protocol-structs | 10 +++++----- src/secret/secret_driver.c | 2 +- src/storage/storage_driver.c | 2 +- src/test/test_driver.c | 24 +++++++++++++----------- src/uml/uml_driver.c | 4 ++-- src/vbox/vbox_driver.c | 4 ++-- src/vbox/vbox_tmpl.c | 11 ++++++----- src/vmware/vmware_driver.c | 4 ++-- src/xen/xen_driver.c | 6 +++--- src/xen/xen_hypervisor.c | 2 +- src/xen/xen_hypervisor.h | 2 +- src/xen/xen_inotify.c | 6 +++--- src/xen/xen_inotify.h | 3 ++- src/xen/xend_internal.c | 4 ++-- src/xen/xend_internal.h | 5 +++-- src/xen/xm_internal.c | 2 +- src/xen/xm_internal.h | 5 +++-- src/xen/xs_internal.c | 4 ++-- src/xen/xs_internal.h | 4 ++-- src/xenapi/xenapi_driver.c | 5 +++-- 40 files changed, 127 insertions(+), 105 deletions(-)
Painfully long, but right
diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs index 25979b4..b2de8e9 100644 --- a/src/remote_protocol-structs +++ b/src/remote_protocol-structs @@ -81,7 +81,7 @@ struct remote_node_get_memory_stats { }; struct remote_open_args { remote_string name; - int flags; + u_int flags; }; struct remote_supports_feature_args { int feature; @@ -422,7 +422,7 @@ struct remote_domain_restore_args { struct remote_domain_core_dump_args { remote_nonnull_domain dom; remote_nonnull_string to; - int flags; + u_int flags; }; struct remote_domain_screenshot_args { remote_nonnull_domain dom; @@ -434,7 +434,7 @@ struct remote_domain_screenshot_ret { }; struct remote_domain_get_xml_desc_args { remote_nonnull_domain dom; - int flags; + u_int flags; }; struct remote_domain_get_xml_desc_ret { remote_nonnull_string xml; @@ -726,7 +726,7 @@ struct remote_network_destroy_args { }; struct remote_network_get_xml_desc_args { remote_nonnull_network net; - int flags; + u_int flags; }; struct remote_network_get_xml_desc_ret { remote_nonnull_string xml; @@ -782,7 +782,7 @@ struct remote_nwfilter_undefine_args { }; struct remote_nwfilter_get_xml_desc_args { remote_nonnull_nwfilter nwfilter; - int flags; + u_int flags; }; struct remote_nwfilter_get_xml_desc_ret { remote_nonnull_string xml;
Can we triple check that the remote stuff really allocate the same space for int and u_int, that's my only doubt in that change, ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

On 07/06/2011 09:07 PM, Daniel Veillard wrote:
On Wed, Jul 06, 2011 at 05:23:46PM -0600, Eric Blake wrote:
Now that the public APIs always use unsigned flags, the internal driver callbacks might as well do likewise.
struct remote_nwfilter_get_xml_desc_args { remote_nonnull_nwfilter nwfilter; - int flags; + u_int flags; }; struct remote_nwfilter_get_xml_desc_ret { remote_nonnull_string xml;
Can we triple check that the remote stuff really allocate the same space for int and u_int, that's my only doubt in that change,
We've done that exact type of change before - see commit 1ff2b6f.
ACK,
I've pushed 1-5, and am slowly working on rebasing the remaining patches to deal with Matthias' observation about read-only connections (my debugging session proved that we _do_ pass a flag to all the driver open functions). -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

2011/7/7 Eric Blake <eblake@redhat.com>:
On 07/06/2011 09:07 PM, Daniel Veillard wrote:
On Wed, Jul 06, 2011 at 05:23:46PM -0600, Eric Blake wrote:
Now that the public APIs always use unsigned flags, the internal driver callbacks might as well do likewise.
struct remote_nwfilter_get_xml_desc_args { remote_nonnull_nwfilter nwfilter; - int flags; + u_int flags; }; struct remote_nwfilter_get_xml_desc_ret { remote_nonnull_string xml;
Can we triple check that the remote stuff really allocate the same space for int and u_int, that's my only doubt in that change,
We've done that exact type of change before - see commit 1ff2b6f.
ACK,
I've pushed 1-5, and am slowly working on rebasing the remaining patches to deal with Matthias' observation about read-only connections (my debugging session proved that we _do_ pass a flag to all the driver open functions).
There might be problems like that with other functions you touched too. I only picked that one as an example. For example, I know that the flags handling is quite broken in the ESX driver due to the undefined semantics of several functions at the time I wrote the driver. -- Matthias Bolte http://photron.blogspot.com

* src/conf/domain_conf.c (virDomainGraphicsDefParseXML) (virDomainDeviceInfoFormat, virDomainDeviceInfoParseXML) (virDomainDiskDefParseXML, virDomainControllerDefParseXML) (virDomainFSDefParseXML, virDomainNetDefParseXML) (virDomainChrDefParseTargetXML, virDomainChrDefParseXML) (virDomainSmartcardDefParseXML, virDomainInputDefParseXML) (virDomainTimerDefParseXML, virDomainSoundDefParseXML) (virDomainWatchdogDefParseXML, virDomainMemballoonDefParseXML) (virDomainVideoDefParseXML) (virDomainHostdevSubsysUsbDefParseXML) (virDomainHostdevSubsysPciDefParseXML) (virDomainHostdevDefParseXML, virSecurityLabelDefParseXML) (virDomainVcpuPinDefParseXML, virDomainDefParseXML) (virDomainDefParse, virDomainDiskDefFormat) (virDomainControllerDefFormat, virDomainFSDefFormat) (virDomainNetDefFormat, virDomainChrSourceDefFormat) (virDomainChrDefFormat, virDomainSmartcardDefFormat) (virDomainSoundDefFormat, virDomainMemballoonDefFormat) (virDomainWatchdogDefFormat, virDomainVideoDefFormat) (virDomainInputDefFormat, virDomainGraphicsDefFormat) (virDomainHostdevDefFormat, virDomainObjFormat): Switch signature. (virDomainObjTaint, virDomainSaveStatus): Use unsigned flags. --- src/conf/domain_conf.c | 86 +++++++++++++++++++++++++---------------------- 1 files changed, 46 insertions(+), 40 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 7bcdcaf..2275d3a 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -588,7 +588,7 @@ virDomainObjPtr virDomainFindByName(const virDomainObjListPtr doms, bool virDomainObjTaint(virDomainObjPtr obj, enum virDomainTaintFlags taint) { - int flag = (1 << taint); + unsigned int flag = (1 << taint); if (obj->taint & flag) return false; @@ -1456,7 +1456,7 @@ void virDomainDefClearDeviceAliases(virDomainDefPtr def) static int ATTRIBUTE_NONNULL(2) virDomainDeviceInfoFormat(virBufferPtr buf, virDomainDeviceInfoPtr info, - int flags) + unsigned int flags) { if (info->alias && !(flags & VIR_DOMAIN_XML_INACTIVE)) { @@ -1712,7 +1712,7 @@ cleanup: static int virDomainDeviceInfoParseXML(xmlNodePtr node, virDomainDeviceInfoPtr info, - int flags) + unsigned int flags) { xmlNodePtr cur; xmlNodePtr address = NULL; @@ -1998,7 +1998,7 @@ static virDomainDiskDefPtr virDomainDiskDefParseXML(virCapsPtr caps, xmlNodePtr node, virBitmapPtr bootMap, - int flags) + unsigned int flags) { virDomainDiskDefPtr def; xmlNodePtr cur, host; @@ -2370,7 +2370,7 @@ no_memory: */ static virDomainControllerDefPtr virDomainControllerDefParseXML(xmlNodePtr node, - int flags) + unsigned int flags) { virDomainControllerDefPtr def; char *type = NULL; @@ -2477,7 +2477,7 @@ cleanup: */ static virDomainFSDefPtr virDomainFSDefParseXML(xmlNodePtr node, - int flags) { + unsigned int flags) { virDomainFSDefPtr def; xmlNodePtr cur; char *type = NULL; @@ -2720,7 +2720,7 @@ virDomainNetDefParseXML(virCapsPtr caps, xmlNodePtr node, xmlXPathContextPtr ctxt, virBitmapPtr bootMap, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { virDomainNetDefPtr def; xmlNodePtr cur; @@ -3173,7 +3173,7 @@ static int virDomainChrDefParseTargetXML(virCapsPtr caps, virDomainChrDefPtr def, xmlNodePtr cur, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { int ret = -1; unsigned int port; @@ -3519,7 +3519,8 @@ virDomainChrDefNew(void) { static virDomainChrDefPtr virDomainChrDefParseXML(virCapsPtr caps, xmlNodePtr node, - int flags) { + unsigned int flags) +{ xmlNodePtr cur; char *type = NULL; const char *nodeName; @@ -3591,7 +3592,7 @@ error: static virDomainSmartcardDefPtr virDomainSmartcardDefParseXML(xmlNodePtr node, - int flags) + unsigned int flags) { xmlNodePtr cur; char *mode = NULL; @@ -3721,7 +3722,8 @@ error: static virDomainInputDefPtr virDomainInputDefParseXML(const char *ostype, xmlNodePtr node, - int flags) { + unsigned int flags) +{ virDomainInputDefPtr def; char *type = NULL; char *bus = NULL; @@ -3811,7 +3813,7 @@ error: static virDomainTimerDefPtr virDomainTimerDefParseXML(const xmlNodePtr node, xmlXPathContextPtr ctxt, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { char *name = NULL; char *present = NULL; @@ -3992,7 +3994,8 @@ virDomainGraphicsAuthDefParseXML(xmlNodePtr node, virDomainGraphicsAuthDefPtr de /* Parse the XML definition for a graphics device */ static virDomainGraphicsDefPtr -virDomainGraphicsDefParseXML(xmlNodePtr node, int flags) { +virDomainGraphicsDefParseXML(xmlNodePtr node, unsigned int flags) +{ virDomainGraphicsDefPtr def; char *type = NULL; @@ -4375,7 +4378,7 @@ error: static virDomainSoundDefPtr virDomainSoundDefParseXML(const xmlNodePtr node, - int flags) + unsigned int flags) { char *model; virDomainSoundDefPtr def; @@ -4409,7 +4412,7 @@ error: static virDomainWatchdogDefPtr virDomainWatchdogDefParseXML(const xmlNodePtr node, - int flags) + unsigned int flags) { char *model = NULL; @@ -4464,7 +4467,7 @@ error: static virDomainMemballoonDefPtr virDomainMemballoonDefParseXML(const xmlNodePtr node, - int flags) + unsigned int flags) { char *model; virDomainMemballoonDefPtr def; @@ -4674,7 +4677,8 @@ virDomainVideoAccelDefParseXML(const xmlNodePtr node) { static virDomainVideoDefPtr virDomainVideoDefParseXML(const xmlNodePtr node, virDomainDefPtr dom, - int flags) { + unsigned int flags) +{ virDomainVideoDefPtr def; xmlNodePtr cur; char *type = NULL; @@ -4754,7 +4758,8 @@ error: static int virDomainHostdevSubsysUsbDefParseXML(const xmlNodePtr node, virDomainHostdevDefPtr def, - int flags ATTRIBUTE_UNUSED) { + unsigned int flags ATTRIBUTE_UNUSED) +{ int ret = -1; int got_product, got_vendor; @@ -4876,7 +4881,8 @@ out: static int virDomainHostdevSubsysPciDefParseXML(const xmlNodePtr node, virDomainHostdevDefPtr def, - int flags) { + unsigned int flags) +{ int ret = -1; xmlNodePtr cur; @@ -4923,7 +4929,7 @@ out: static virDomainHostdevDefPtr virDomainHostdevDefParseXML(const xmlNodePtr node, virBitmapPtr bootMap, - int flags) + unsigned int flags) { xmlNodePtr cur; @@ -5051,7 +5057,7 @@ static int virDomainLifecycleParseXML(xmlXPathContextPtr ctxt, static int virSecurityLabelDefParseXML(const virDomainDefPtr def, xmlXPathContextPtr ctxt, - int flags) + unsigned int flags) { char *p; @@ -5691,7 +5697,7 @@ static virDomainVcpuPinDefPtr virDomainVcpuPinDefParseXML(const xmlNodePtr node, xmlXPathContextPtr ctxt, int maxvcpus, - int flags ATTRIBUTE_UNUSED) + unsigned int flags ATTRIBUTE_UNUSED) { virDomainVcpuPinDefPtr def; xmlNodePtr oldnode = ctxt->node; @@ -5760,7 +5766,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps, xmlDocPtr xml, xmlNodePtr root, xmlXPathContextPtr ctxt, - int flags) + unsigned int flags) { xmlNodePtr *nodes = NULL, node = NULL; char *tmp = NULL; @@ -6801,7 +6807,7 @@ static virDomainDefPtr virDomainDefParse(const char *xmlStr, const char *filename, virCapsPtr caps, - int flags) + unsigned int flags) { xmlDocPtr xml; virDomainDefPtr def = NULL; @@ -8355,7 +8361,7 @@ virDomainLeaseDefFormat(virBufferPtr buf, static int virDomainDiskDefFormat(virBufferPtr buf, virDomainDiskDefPtr def, - int flags) + unsigned int flags) { const char *type = virDomainDiskTypeToString(def->type); const char *device = virDomainDiskDeviceTypeToString(def->device); @@ -8483,7 +8489,7 @@ virDomainDiskDefFormat(virBufferPtr buf, static int virDomainControllerDefFormat(virBufferPtr buf, virDomainControllerDefPtr def, - int flags) + unsigned int flags) { const char *type = virDomainControllerTypeToString(def->type); const char *model = NULL; @@ -8543,7 +8549,7 @@ virDomainControllerDefFormat(virBufferPtr buf, static int virDomainFSDefFormat(virBufferPtr buf, virDomainFSDefPtr def, - int flags) + unsigned int flags) { const char *type = virDomainFSTypeToString(def->type); const char *accessmode = virDomainFSAccessModeTypeToString(def->accessmode); @@ -8605,7 +8611,7 @@ virDomainFSDefFormat(virBufferPtr buf, static int virDomainNetDefFormat(virBufferPtr buf, virDomainNetDefPtr def, - int flags) + unsigned int flags) { const char *type = virDomainNetTypeToString(def->type); char *attrs; @@ -8742,7 +8748,7 @@ static int virDomainChrSourceDefFormat(virBufferPtr buf, virDomainChrSourceDefPtr def, bool tty_compat, - int flags) + unsigned int flags) { const char *type = virDomainChrTypeToString(def->type); @@ -8838,7 +8844,7 @@ virDomainChrSourceDefFormat(virBufferPtr buf, static int virDomainChrDefFormat(virBufferPtr buf, virDomainChrDefPtr def, - int flags) + unsigned int flags) { const char *elementName = virDomainChrDeviceTypeToString(def->deviceType); const char *targetType = virDomainChrTargetTypeToString(def->deviceType, @@ -8932,7 +8938,7 @@ virDomainChrDefFormat(virBufferPtr buf, static int virDomainSmartcardDefFormat(virBufferPtr buf, virDomainSmartcardDefPtr def, - int flags) + unsigned int flags) { const char *mode = virDomainSmartcardTypeToString(def->type); size_t i; @@ -8983,7 +8989,7 @@ virDomainSmartcardDefFormat(virBufferPtr buf, static int virDomainSoundDefFormat(virBufferPtr buf, virDomainSoundDefPtr def, - int flags) + unsigned int flags) { const char *model = virDomainSoundModelTypeToString(def->model); @@ -9012,7 +9018,7 @@ virDomainSoundDefFormat(virBufferPtr buf, static int virDomainMemballoonDefFormat(virBufferPtr buf, virDomainMemballoonDefPtr def, - int flags) + unsigned int flags) { const char *model = virDomainMemballoonModelTypeToString(def->model); @@ -9054,7 +9060,7 @@ virDomainSysinfoDefFormat(virBufferPtr buf, static int virDomainWatchdogDefFormat(virBufferPtr buf, virDomainWatchdogDefPtr def, - int flags) + unsigned int flags) { const char *model = virDomainWatchdogModelTypeToString (def->model); const char *action = virDomainWatchdogActionTypeToString (def->action); @@ -9102,7 +9108,7 @@ virDomainVideoAccelDefFormat(virBufferPtr buf, static int virDomainVideoDefFormat(virBufferPtr buf, virDomainVideoDefPtr def, - int flags) + unsigned int flags) { const char *model = virDomainVideoTypeToString(def->type); @@ -9138,7 +9144,7 @@ virDomainVideoDefFormat(virBufferPtr buf, static int virDomainInputDefFormat(virBufferPtr buf, virDomainInputDefPtr def, - int flags) + unsigned int flags) { const char *type = virDomainInputTypeToString(def->type); const char *bus = virDomainInputBusTypeToString(def->bus); @@ -9279,7 +9285,7 @@ virDomainGraphicsAuthDefFormatAttr(virBufferPtr buf, static int virDomainGraphicsDefFormat(virBufferPtr buf, virDomainGraphicsDefPtr def, - int flags) + unsigned int flags) { const char *type = virDomainGraphicsTypeToString(def->type); int children = 0; @@ -9445,7 +9451,7 @@ virDomainGraphicsDefFormat(virBufferPtr buf, static int virDomainHostdevDefFormat(virBufferPtr buf, virDomainHostdevDefPtr def, - int flags) + unsigned int flags) { const char *mode = virDomainHostdevModeTypeToString(def->mode); const char *type; @@ -9934,7 +9940,7 @@ char *virDomainDefFormat(virDomainDefPtr def, static char *virDomainObjFormat(virCapsPtr caps, virDomainObjPtr obj, - int flags) + unsigned int flags) { char *config_xml = NULL; virBuffer buf = VIR_BUFFER_INITIALIZER; @@ -10053,7 +10059,7 @@ int virDomainSaveStatus(virCapsPtr caps, const char *statusDir, virDomainObjPtr obj) { - int flags = VIR_DOMAIN_XML_SECURE|VIR_DOMAIN_XML_INTERNAL_STATUS; + unsigned int flags = VIR_DOMAIN_XML_SECURE|VIR_DOMAIN_XML_INTERNAL_STATUS; int ret = -1; char *xml; -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:47PM -0600, Eric Blake wrote:
* src/conf/domain_conf.c (virDomainGraphicsDefParseXML) (virDomainDeviceInfoFormat, virDomainDeviceInfoParseXML) (virDomainDiskDefParseXML, virDomainControllerDefParseXML) (virDomainFSDefParseXML, virDomainNetDefParseXML) (virDomainChrDefParseTargetXML, virDomainChrDefParseXML) (virDomainSmartcardDefParseXML, virDomainInputDefParseXML) (virDomainTimerDefParseXML, virDomainSoundDefParseXML) (virDomainWatchdogDefParseXML, virDomainMemballoonDefParseXML) (virDomainVideoDefParseXML) (virDomainHostdevSubsysUsbDefParseXML) (virDomainHostdevSubsysPciDefParseXML) (virDomainHostdevDefParseXML, virSecurityLabelDefParseXML) (virDomainVcpuPinDefParseXML, virDomainDefParseXML) (virDomainDefParse, virDomainDiskDefFormat) (virDomainControllerDefFormat, virDomainFSDefFormat) (virDomainNetDefFormat, virDomainChrSourceDefFormat) (virDomainChrDefFormat, virDomainSmartcardDefFormat) (virDomainSoundDefFormat, virDomainMemballoonDefFormat) (virDomainWatchdogDefFormat, virDomainVideoDefFormat) (virDomainInputDefFormat, virDomainGraphicsDefFormat) (virDomainHostdevDefFormat, virDomainObjFormat): Switch signature. (virDomainObjTaint, virDomainSaveStatus): Use unsigned flags. --- src/conf/domain_conf.c | 86 +++++++++++++++++++++++++---------------------- 1 files changed, 46 insertions(+), 40 deletions(-)
ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

No caller was using the flags argument, and this function is internal only, so we might as well skip it. * src/util/util.h (safezero): Update signature. * src/util/util.c (safezero): Update function. * src/locking/lock_driver_sanlock.c (virLockManagerSanlockSetupLockspace) (virLockManagerSanlockCreateLease): Update all callers. * src/storage/storage_backend.c (createRawFile): Likewise. --- src/locking/lock_driver_sanlock.c | 4 ++-- src/storage/storage_backend.c | 4 ++-- src/util/util.c | 6 +++--- src/util/util.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c index 567221c..cd2bbb5 100644 --- a/src/locking/lock_driver_sanlock.c +++ b/src/locking/lock_driver_sanlock.c @@ -196,7 +196,7 @@ static int virLockManagerSanlockSetupLockspace(void) /* * Pre allocate enough data for 1 block of leases at preferred alignment */ - if (safezero(fd, 0, 0, rv) < 0) { + if (safezero(fd, 0, rv) < 0) { virReportSystemError(errno, _("Unable to allocate lockspace %s"), path); @@ -567,7 +567,7 @@ static int virLockManagerSanlockCreateLease(struct sanlk_resource *res) /* * Pre allocate enough data for 1 block of leases at preferred alignment */ - if (safezero(fd, 0, 0, rv) < 0) { + if (safezero(fd, 0, rv) < 0) { virReportSystemError(errno, _("Unable to allocate lease %s"), res->disks[0].path); diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c index 708d7b2..671b88e 100644 --- a/src/storage/storage_backend.c +++ b/src/storage/storage_backend.c @@ -331,7 +331,7 @@ createRawFile(int fd, virStorageVolDefPtr vol, if (bytes > remain) bytes = remain; - if (safezero(fd, 0, vol->allocation - remain, bytes) < 0) { + if (safezero(fd, vol->allocation - remain, bytes) < 0) { ret = -errno; virReportSystemError(errno, _("cannot fill file '%s'"), vol->target.path); @@ -340,7 +340,7 @@ createRawFile(int fd, virStorageVolDefPtr vol, remain -= bytes; } } else { /* No progress bars to be shown */ - if (safezero(fd, 0, 0, remain) < 0) { + if (safezero(fd, 0, remain) < 0) { ret = -errno; virReportSystemError(errno, _("cannot fill file '%s'"), vol->target.path); diff --git a/src/util/util.c b/src/util/util.c index 5542557..3d0ceea 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -133,7 +133,7 @@ safewrite(int fd, const void *buf, size_t count) } #ifdef HAVE_POSIX_FALLOCATE -int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) { int ret = posix_fallocate(fd, offset, len); if (ret == 0) @@ -144,7 +144,7 @@ int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) #else # ifdef HAVE_MMAP -int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) { int r; char *buf; @@ -168,7 +168,7 @@ int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) # else /* HAVE_MMAP */ -int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) { int r; char *buf; diff --git a/src/util/util.h b/src/util/util.h index 7a1eb11..6f07f8c 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -39,7 +39,7 @@ ssize_t saferead(int fd, void *buf, size_t count) ATTRIBUTE_RETURN_CHECK; ssize_t safewrite(int fd, const void *buf, size_t count) ATTRIBUTE_RETURN_CHECK; -int safezero(int fd, int flags, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) ATTRIBUTE_RETURN_CHECK; int virSetBlocking(int fd, bool blocking) ATTRIBUTE_RETURN_CHECK; -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:48PM -0600, Eric Blake wrote:
No caller was using the flags argument, and this function is internal only, so we might as well skip it.
* src/util/util.h (safezero): Update signature. * src/util/util.c (safezero): Update function. * src/locking/lock_driver_sanlock.c (virLockManagerSanlockSetupLockspace) (virLockManagerSanlockCreateLease): Update all callers. * src/storage/storage_backend.c (createRawFile): Likewise. --- src/locking/lock_driver_sanlock.c | 4 ++-- src/storage/storage_backend.c | 4 ++-- src/util/util.c | 6 +++--- src/util/util.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c index 567221c..cd2bbb5 100644 --- a/src/locking/lock_driver_sanlock.c +++ b/src/locking/lock_driver_sanlock.c @@ -196,7 +196,7 @@ static int virLockManagerSanlockSetupLockspace(void) /* * Pre allocate enough data for 1 block of leases at preferred alignment */ - if (safezero(fd, 0, 0, rv) < 0) { + if (safezero(fd, 0, rv) < 0) { virReportSystemError(errno, _("Unable to allocate lockspace %s"), path); @@ -567,7 +567,7 @@ static int virLockManagerSanlockCreateLease(struct sanlk_resource *res) /* * Pre allocate enough data for 1 block of leases at preferred alignment */ - if (safezero(fd, 0, 0, rv) < 0) { + if (safezero(fd, 0, rv) < 0) { virReportSystemError(errno, _("Unable to allocate lease %s"), res->disks[0].path); diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c index 708d7b2..671b88e 100644 --- a/src/storage/storage_backend.c +++ b/src/storage/storage_backend.c @@ -331,7 +331,7 @@ createRawFile(int fd, virStorageVolDefPtr vol,
if (bytes > remain) bytes = remain; - if (safezero(fd, 0, vol->allocation - remain, bytes) < 0) { + if (safezero(fd, vol->allocation - remain, bytes) < 0) { ret = -errno; virReportSystemError(errno, _("cannot fill file '%s'"), vol->target.path); @@ -340,7 +340,7 @@ createRawFile(int fd, virStorageVolDefPtr vol, remain -= bytes; } } else { /* No progress bars to be shown */ - if (safezero(fd, 0, 0, remain) < 0) { + if (safezero(fd, 0, remain) < 0) { ret = -errno; virReportSystemError(errno, _("cannot fill file '%s'"), vol->target.path); diff --git a/src/util/util.c b/src/util/util.c index 5542557..3d0ceea 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -133,7 +133,7 @@ safewrite(int fd, const void *buf, size_t count) }
#ifdef HAVE_POSIX_FALLOCATE -int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) { int ret = posix_fallocate(fd, offset, len); if (ret == 0) @@ -144,7 +144,7 @@ int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) #else
# ifdef HAVE_MMAP -int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) { int r; char *buf; @@ -168,7 +168,7 @@ int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len)
# else /* HAVE_MMAP */
-int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) { int r; char *buf; diff --git a/src/util/util.h b/src/util/util.h index 7a1eb11..6f07f8c 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -39,7 +39,7 @@ ssize_t saferead(int fd, void *buf, size_t count) ATTRIBUTE_RETURN_CHECK; ssize_t safewrite(int fd, const void *buf, size_t count) ATTRIBUTE_RETURN_CHECK; -int safezero(int fd, int flags, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) ATTRIBUTE_RETURN_CHECK;
int virSetBlocking(int fd, bool blocking) ATTRIBUTE_RETURN_CHECK;
ACK from me but Dan should probably check that it doesn't affect some coming patches before pushing this, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

On Thu, Jul 07, 2011 at 11:10:31AM +0800, Daniel Veillard wrote:
On Wed, Jul 06, 2011 at 05:23:48PM -0600, Eric Blake wrote:
No caller was using the flags argument, and this function is internal only, so we might as well skip it.
* src/util/util.h (safezero): Update signature. * src/util/util.c (safezero): Update function. * src/locking/lock_driver_sanlock.c (virLockManagerSanlockSetupLockspace) (virLockManagerSanlockCreateLease): Update all callers. * src/storage/storage_backend.c (createRawFile): Likewise. --- src/locking/lock_driver_sanlock.c | 4 ++-- src/storage/storage_backend.c | 4 ++-- src/util/util.c | 6 +++--- src/util/util.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c index 567221c..cd2bbb5 100644 --- a/src/locking/lock_driver_sanlock.c +++ b/src/locking/lock_driver_sanlock.c @@ -196,7 +196,7 @@ static int virLockManagerSanlockSetupLockspace(void) /* * Pre allocate enough data for 1 block of leases at preferred alignment */ - if (safezero(fd, 0, 0, rv) < 0) { + if (safezero(fd, 0, rv) < 0) { virReportSystemError(errno, _("Unable to allocate lockspace %s"), path); @@ -567,7 +567,7 @@ static int virLockManagerSanlockCreateLease(struct sanlk_resource *res) /* * Pre allocate enough data for 1 block of leases at preferred alignment */ - if (safezero(fd, 0, 0, rv) < 0) { + if (safezero(fd, 0, rv) < 0) { virReportSystemError(errno, _("Unable to allocate lease %s"), res->disks[0].path); diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c index 708d7b2..671b88e 100644 --- a/src/storage/storage_backend.c +++ b/src/storage/storage_backend.c @@ -331,7 +331,7 @@ createRawFile(int fd, virStorageVolDefPtr vol,
if (bytes > remain) bytes = remain; - if (safezero(fd, 0, vol->allocation - remain, bytes) < 0) { + if (safezero(fd, vol->allocation - remain, bytes) < 0) { ret = -errno; virReportSystemError(errno, _("cannot fill file '%s'"), vol->target.path); @@ -340,7 +340,7 @@ createRawFile(int fd, virStorageVolDefPtr vol, remain -= bytes; } } else { /* No progress bars to be shown */ - if (safezero(fd, 0, 0, remain) < 0) { + if (safezero(fd, 0, remain) < 0) { ret = -errno; virReportSystemError(errno, _("cannot fill file '%s'"), vol->target.path); diff --git a/src/util/util.c b/src/util/util.c index 5542557..3d0ceea 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -133,7 +133,7 @@ safewrite(int fd, const void *buf, size_t count) }
#ifdef HAVE_POSIX_FALLOCATE -int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) { int ret = posix_fallocate(fd, offset, len); if (ret == 0) @@ -144,7 +144,7 @@ int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) #else
# ifdef HAVE_MMAP -int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) { int r; char *buf; @@ -168,7 +168,7 @@ int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len)
# else /* HAVE_MMAP */
-int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) { int r; char *buf; diff --git a/src/util/util.h b/src/util/util.h index 7a1eb11..6f07f8c 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -39,7 +39,7 @@ ssize_t saferead(int fd, void *buf, size_t count) ATTRIBUTE_RETURN_CHECK; ssize_t safewrite(int fd, const void *buf, size_t count) ATTRIBUTE_RETURN_CHECK; -int safezero(int fd, int flags, off_t offset, off_t len) +int safezero(int fd, off_t offset, off_t len) ATTRIBUTE_RETURN_CHECK;
int virSetBlocking(int fd, bool blocking) ATTRIBUTE_RETURN_CHECK;
ACK from me but Dan should probably check that it doesn't affect some coming patches before pushing this,
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/nodeinfo.h (nodeGetCPUStats, nodeGetMemoryStats): Drop unused attribute. * src/interface/netcf_driver.c (interfaceOpenInterface) (interfaceDefineXML, interfaceCreate, interfaceDestroy): Reject unknown flags. * src/network/bridge_driver.c (networkOpenNetwork) (networkGetXMLDesc): Likewise. * src/nwfilter/nwfilter_driver.c (nwfilterOpen): Likewise. * src/secret/secret_driver.c (secretOpen, secretDefineXML) (secretGetXMLDesc, secretSetValue): Likewise. * src/util/logging.c (virLogDefineFilter, virLogDefineOutput): Likewise. --- src/interface/netcf_driver.c | 16 ++++++++++++---- src/network/bridge_driver.c | 9 +++++++-- src/nodeinfo.h | 6 +++--- src/nwfilter/nwfilter_driver.c | 4 +++- src/secret/secret_driver.c | 17 +++++++++++++---- src/util/logging.c | 10 ++++++++-- 6 files changed, 46 insertions(+), 16 deletions(-) diff --git a/src/interface/netcf_driver.c b/src/interface/netcf_driver.c index 8900722..8e78211 100644 --- a/src/interface/netcf_driver.c +++ b/src/interface/netcf_driver.c @@ -121,10 +121,12 @@ static struct netcf_if *interfaceDriverGetNetcfIF(struct netcf *ncf, virInterfac static virDrvOpenStatus interfaceOpenInterface(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct interface_driver *driverState; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (VIR_ALLOC(driverState) < 0) { virReportOOMError(); @@ -387,7 +389,7 @@ cleanup: static virInterfacePtr interfaceDefineXML(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct interface_driver *driver = conn->interfacePrivateData; struct netcf_if *iface = NULL; @@ -395,6 +397,8 @@ static virInterfacePtr interfaceDefineXML(virConnectPtr conn, virInterfaceDefPtr ifacedef = NULL; virInterfacePtr ret = NULL; + virCheckFlags(0, NULL); + interfaceDriverLock(driver); ifacedef = virInterfaceDefParseString(xml); @@ -461,12 +465,14 @@ cleanup: } static int interfaceCreate(virInterfacePtr ifinfo, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct interface_driver *driver = ifinfo->conn->interfacePrivateData; struct netcf_if *iface = NULL; int ret = -1; + virCheckFlags(0, -1); + interfaceDriverLock(driver); iface = interfaceDriverGetNetcfIF(driver->netcf, ifinfo); @@ -493,12 +499,14 @@ cleanup: } static int interfaceDestroy(virInterfacePtr ifinfo, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct interface_driver *driver = ifinfo->conn->interfacePrivateData; struct netcf_if *iface = NULL; int ret = -1; + virCheckFlags(0, -1); + interfaceDriverLock(driver); iface = interfaceDriverGetNetcfIF(driver->netcf, ifinfo); diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 554a8ac..895700c 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -2010,7 +2010,10 @@ cleanup: static virDrvOpenStatus networkOpenNetwork(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (!driverState) return VIR_DRV_OPEN_DECLINED; @@ -2416,12 +2419,14 @@ cleanup: } static char *networkGetXMLDesc(virNetworkPtr net, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct network_driver *driver = net->conn->networkPrivateData; virNetworkObjPtr network; char *ret = NULL; + virCheckFlags(0, NULL); + networkDriverLock(driver); network = virNetworkFindByUUID(&driver->networks, net->uuid); networkDriverUnlock(driver); diff --git a/src/nodeinfo.h b/src/nodeinfo.h index 9b2658f..e5ac1e0 100644 --- a/src/nodeinfo.h +++ b/src/nodeinfo.h @@ -1,7 +1,7 @@ /* * nodeinfo.c: Helper routines for OS specific node information * - * Copyright (C) 2006-2008 Red Hat, Inc. + * Copyright (C) 2006-2008, 2011 Red Hat, Inc. * Copyright (C) 2006 Daniel P. Berrange * * This library is free software; you can redistribute it and/or @@ -34,12 +34,12 @@ int nodeGetCPUStats(virConnectPtr conn ATTRIBUTE_UNUSED, int cpuNum, virNodeCPUStatsPtr params, int *nparams, - unsigned int flags ATTRIBUTE_UNUSED); + unsigned int flags); int nodeGetMemoryStats(virConnectPtr conn ATTRIBUTE_UNUSED, int cellNum, virNodeMemoryStatsPtr params, int *nparams, - unsigned int flags ATTRIBUTE_UNUSED); + unsigned int flags); int nodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *freeMems, int startCell, diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index bfe7f2f..7988944 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -272,8 +272,10 @@ cleanup: static virDrvOpenStatus nwfilterOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (!driverState) return VIR_DRV_OPEN_DECLINED; diff --git a/src/secret/secret_driver.c b/src/secret/secret_driver.c index 552b7e4..7751924 100644 --- a/src/secret/secret_driver.c +++ b/src/secret/secret_driver.c @@ -525,7 +525,10 @@ cleanup: static virDrvOpenStatus secretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (driverState == NULL) return VIR_DRV_OPEN_DECLINED; @@ -667,7 +670,7 @@ cleanup: static virSecretPtr secretDefineXML(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virSecretDriverStatePtr driver = conn->secretPrivateData; virSecretPtr ret = NULL; @@ -675,6 +678,8 @@ secretDefineXML(virConnectPtr conn, const char *xml, virSecretDefPtr backup = NULL; virSecretDefPtr new_attrs; + virCheckFlags(0, NULL); + new_attrs = virSecretDefParseString(xml); if (new_attrs == NULL) return NULL; @@ -778,12 +783,14 @@ cleanup: } static char * -secretGetXMLDesc(virSecretPtr obj, unsigned int flags ATTRIBUTE_UNUSED) +secretGetXMLDesc(virSecretPtr obj, unsigned int flags) { virSecretDriverStatePtr driver = obj->conn->secretPrivateData; char *ret = NULL; virSecretEntryPtr secret; + virCheckFlags(0, NULL); + secretDriverLock(driver); secret = secretFindByUUID(driver, obj->uuid); @@ -805,7 +812,7 @@ cleanup: static int secretSetValue(virSecretPtr obj, const unsigned char *value, - size_t value_size, unsigned int flags ATTRIBUTE_UNUSED) + size_t value_size, unsigned int flags) { virSecretDriverStatePtr driver = obj->conn->secretPrivateData; int ret = -1; @@ -813,6 +820,8 @@ secretSetValue(virSecretPtr obj, const unsigned char *value, size_t old_value_size; virSecretEntryPtr secret; + virCheckFlags(0, -1); + if (VIR_ALLOC_N(new_value, value_size) < 0) { virReportOOMError(); return -1; diff --git a/src/util/logging.c b/src/util/logging.c index c86fcda..4cc8e93 100644 --- a/src/util/logging.c +++ b/src/util/logging.c @@ -481,10 +481,13 @@ static int virLogResetFilters(void) { * Returns -1 in case of failure or the filter number if successful */ int virLogDefineFilter(const char *match, int priority, - int flags ATTRIBUTE_UNUSED) { + int flags) +{ int i; char *mdup = NULL; + virCheckFlags(0, -1); + if ((match == NULL) || (priority < VIR_LOG_DEBUG) || (priority > VIR_LOG_ERROR)) return -1; @@ -579,10 +582,13 @@ static int virLogResetOutputs(void) { */ int virLogDefineOutput(virLogOutputFunc f, virLogCloseFunc c, void *data, int priority, int dest, const char *name, - int flags ATTRIBUTE_UNUSED) { + int flags) +{ int ret = -1; char *ndup = NULL; + virCheckFlags(0, -1); + if (f == NULL) return -1; -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:49PM -0600, Eric Blake wrote:
* src/nodeinfo.h (nodeGetCPUStats, nodeGetMemoryStats): Drop unused attribute. * src/interface/netcf_driver.c (interfaceOpenInterface) (interfaceDefineXML, interfaceCreate, interfaceDestroy): Reject unknown flags. * src/network/bridge_driver.c (networkOpenNetwork) (networkGetXMLDesc): Likewise. * src/nwfilter/nwfilter_driver.c (nwfilterOpen): Likewise. * src/secret/secret_driver.c (secretOpen, secretDefineXML) (secretGetXMLDesc, secretSetValue): Likewise. * src/util/logging.c (virLogDefineFilter, virLogDefineOutput): Likewise. --- src/interface/netcf_driver.c | 16 ++++++++++++---- src/network/bridge_driver.c | 9 +++++++-- src/nodeinfo.h | 6 +++--- src/nwfilter/nwfilter_driver.c | 4 +++- src/secret/secret_driver.c | 17 +++++++++++++---- src/util/logging.c | 10 ++++++++-- 6 files changed, 46 insertions(+), 16 deletions(-)
[...]
diff --git a/src/nodeinfo.h b/src/nodeinfo.h index 9b2658f..e5ac1e0 100644 --- a/src/nodeinfo.h +++ b/src/nodeinfo.h @@ -1,7 +1,7 @@ /* * nodeinfo.c: Helper routines for OS specific node information * - * Copyright (C) 2006-2008 Red Hat, Inc. + * Copyright (C) 2006-2008, 2011 Red Hat, Inc. * Copyright (C) 2006 Daniel P. Berrange * * This library is free software; you can redistribute it and/or @@ -34,12 +34,12 @@ int nodeGetCPUStats(virConnectPtr conn ATTRIBUTE_UNUSED, int cpuNum, virNodeCPUStatsPtr params, int *nparams, - unsigned int flags ATTRIBUTE_UNUSED); + unsigned int flags); int nodeGetMemoryStats(virConnectPtr conn ATTRIBUTE_UNUSED, int cellNum, virNodeMemoryStatsPtr params, int *nparams, - unsigned int flags ATTRIBUTE_UNUSED); + unsigned int flags); int nodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *freeMems, int startCell,
Hummm, shouldn't we forbid ATTRIBUTE_UNUSED from .h forward declarations and keep them only in the actual implementation block. I don't think it's a good idea to expos this to the compiler who might make an optimization there seeing it in the .h while the equivalent implementation may have removed it. ACK, the main danger of that patch is using virCheckFlags(0, -1) systematically while the routine may use a different convention, I didn't checked this (I'm lazy :-) Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

On 07/06/2011 09:15 PM, Daniel Veillard wrote:
int nodeGetMemoryStats(virConnectPtr conn ATTRIBUTE_UNUSED, int cellNum, virNodeMemoryStatsPtr params, int *nparams, - unsigned int flags ATTRIBUTE_UNUSED); + unsigned int flags); int nodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *freeMems, int startCell,
Hummm, shouldn't we forbid ATTRIBUTE_UNUSED from .h forward declarations and keep them only in the actual implementation block. I don't think it's a good idea to expos this to the compiler who might make an optimization there seeing it in the .h while the equivalent implementation may have removed it.
Good point. I probably ought to do a followup patch (but did not do so in my 27-patch v2); here's the remaining culprits: src/nodeinfo.h - two instances of virConnectPtr conn ATTRIBUTE_UNUSED src/qemu/qemu_domain.h: qemuDomainEventFlush() src/util/virterror_internal.h - virReportErrorHelper() src/xenxs/xen_sxpr.h - xenFormatSxprDisk() -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

* src/node_device/node_device_driver.c (nodeNumOfDevices) (nodeListDevices, nodeDeviceGetXMLDesc, nodeDeviceCreateXML): Reject unknown flags. * src/node_device/node_device_hal.c (halNodeDrvOpen): Likewise. * src/node_device/node_device_udev.c (udevNodeDrvOpen): Likewise. --- src/node_device/node_device_driver.c | 18 +++++++++++++----- src/node_device/node_device_hal.c | 4 +++- src/node_device/node_device_udev.c | 4 +++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c index 842f903..681655e 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -1,7 +1,7 @@ /* * node_device.c: node device enumeration * - * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2010-2011 Red Hat, Inc. * Copyright (C) 2008 Virtual Iron Software, Inc. * Copyright (C) 2008 David F. Lively * @@ -125,12 +125,14 @@ void nodeDeviceUnlock(virDeviceMonitorStatePtr driver) int nodeNumOfDevices(virConnectPtr conn, const char *cap, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDeviceMonitorStatePtr driver = conn->devMonPrivateData; int ndevs = 0; unsigned int i; + virCheckFlags(0, -1); + nodeDeviceLock(driver); for (i = 0; i < driver->devs.count; i++) { virNodeDeviceObjLock(driver->devs.objs[i]); @@ -148,12 +150,14 @@ int nodeListDevices(virConnectPtr conn, const char *cap, char **const names, int maxnames, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDeviceMonitorStatePtr driver = conn->devMonPrivateData; int ndevs = 0; unsigned int i; + virCheckFlags(0, -1); + nodeDeviceLock(driver); for (i = 0; i < driver->devs.count && ndevs < maxnames; i++) { virNodeDeviceObjLock(driver->devs.objs[i]); @@ -254,12 +258,14 @@ out: char * nodeDeviceGetXMLDesc(virNodeDevicePtr dev, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDeviceMonitorStatePtr driver = dev->conn->devMonPrivateData; virNodeDeviceObjPtr obj; char *ret = NULL; + virCheckFlags(0, NULL); + nodeDeviceLock(driver); obj = virNodeDeviceFindByName(&driver->devs, dev->name); nodeDeviceUnlock(driver); @@ -545,7 +551,7 @@ find_new_device(virConnectPtr conn, const char *wwnn, const char *wwpn) virNodeDevicePtr nodeDeviceCreateXML(virConnectPtr conn, const char *xmlDesc, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDeviceMonitorStatePtr driver = conn->devMonPrivateData; virNodeDeviceDefPtr def = NULL; @@ -553,6 +559,8 @@ nodeDeviceCreateXML(virConnectPtr conn, int parent_host = -1; virNodeDevicePtr dev = NULL; + virCheckFlags(0, NULL); + nodeDeviceLock(driver); def = virNodeDeviceDefParseString(xmlDesc, CREATE_DEVICE); diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c index d1dedfe..40962ba 100644 --- a/src/node_device/node_device_hal.c +++ b/src/node_device/node_device_hal.c @@ -862,8 +862,10 @@ static int halDeviceMonitorActive(void) static virDrvOpenStatus halNodeDrvOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (driverState == NULL) return VIR_DRV_OPEN_DECLINED; diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index db26c6b..dfc5457 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1721,8 +1721,10 @@ static int udevDeviceMonitorActive(void) static virDrvOpenStatus udevNodeDrvOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (driverState == NULL) { return VIR_DRV_OPEN_DECLINED; } -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:50PM -0600, Eric Blake wrote:
* src/node_device/node_device_driver.c (nodeNumOfDevices) (nodeListDevices, nodeDeviceGetXMLDesc, nodeDeviceCreateXML): Reject unknown flags. * src/node_device/node_device_hal.c (halNodeDrvOpen): Likewise. * src/node_device/node_device_udev.c (udevNodeDrvOpen): Likewise. --- src/node_device/node_device_driver.c | 18 +++++++++++++----- src/node_device/node_device_hal.c | 4 +++- src/node_device/node_device_udev.c | 4 +++- 3 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c index 842f903..681655e 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -1,7 +1,7 @@ /* * node_device.c: node device enumeration * - * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2010-2011 Red Hat, Inc. * Copyright (C) 2008 Virtual Iron Software, Inc. * Copyright (C) 2008 David F. Lively * @@ -125,12 +125,14 @@ void nodeDeviceUnlock(virDeviceMonitorStatePtr driver) int nodeNumOfDevices(virConnectPtr conn, const char *cap, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDeviceMonitorStatePtr driver = conn->devMonPrivateData; int ndevs = 0; unsigned int i;
+ virCheckFlags(0, -1); + nodeDeviceLock(driver); for (i = 0; i < driver->devs.count; i++) { virNodeDeviceObjLock(driver->devs.objs[i]); @@ -148,12 +150,14 @@ int nodeListDevices(virConnectPtr conn, const char *cap, char **const names, int maxnames, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDeviceMonitorStatePtr driver = conn->devMonPrivateData; int ndevs = 0; unsigned int i;
+ virCheckFlags(0, -1); + nodeDeviceLock(driver); for (i = 0; i < driver->devs.count && ndevs < maxnames; i++) { virNodeDeviceObjLock(driver->devs.objs[i]); @@ -254,12 +258,14 @@ out:
char * nodeDeviceGetXMLDesc(virNodeDevicePtr dev, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDeviceMonitorStatePtr driver = dev->conn->devMonPrivateData; virNodeDeviceObjPtr obj; char *ret = NULL;
+ virCheckFlags(0, NULL); + nodeDeviceLock(driver); obj = virNodeDeviceFindByName(&driver->devs, dev->name); nodeDeviceUnlock(driver); @@ -545,7 +551,7 @@ find_new_device(virConnectPtr conn, const char *wwnn, const char *wwpn) virNodeDevicePtr nodeDeviceCreateXML(virConnectPtr conn, const char *xmlDesc, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDeviceMonitorStatePtr driver = conn->devMonPrivateData; virNodeDeviceDefPtr def = NULL; @@ -553,6 +559,8 @@ nodeDeviceCreateXML(virConnectPtr conn, int parent_host = -1; virNodeDevicePtr dev = NULL;
+ virCheckFlags(0, NULL); + nodeDeviceLock(driver);
def = virNodeDeviceDefParseString(xmlDesc, CREATE_DEVICE); diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c index d1dedfe..40962ba 100644 --- a/src/node_device/node_device_hal.c +++ b/src/node_device/node_device_hal.c @@ -862,8 +862,10 @@ static int halDeviceMonitorActive(void)
static virDrvOpenStatus halNodeDrvOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (driverState == NULL) return VIR_DRV_OPEN_DECLINED;
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index db26c6b..dfc5457 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1721,8 +1721,10 @@ static int udevDeviceMonitorActive(void)
static virDrvOpenStatus udevNodeDrvOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (driverState == NULL) { return VIR_DRV_OPEN_DECLINED;
ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

* src/storage/storage_backend.c (virStorageBackendCreateBlockFrom) (virStorageBackendCreateQemuImg) (virStorageBackendCreateQcowCreate): Reject unknown flags. * src/storage/storage_backend_disk.c (virStorageBackendDiskBuildPool) (virStorageBackendDiskDeleteVol): Likewise. * src/storage/storage_backend_fs.c (virStorageBackendFileSystemNetFindPoolSources) (virStorageBackendFileSystemBuild) (virStorageBackendFileSystemDelete, createFileDir) (virStorageBackendFileSystemVolBuildFrom) (virStorageBackendFileSystemVolDelete): Likewise. * src/storage/storage_backend_iscsi.c (virStorageBackendISCSIFindPoolSources): Likewise. * src/storage/storage_backend_logical.c (virStorageBackendLogicalFindPoolSources) (virStorageBackendLogicalBuildPool) (virStorageBackendLogicalDeletePool) (virStorageBackendLogicalDeleteVol): Likewise. * src/storage/storage_driver.c (storageOpen, storagePoolCreate) (storagePoolDefine, storagePoolRefresh, storagePoolGetXMLDesc) (storageVolumeCreateXML, storageVolumeCreateXMLFrom) (storageVolumeGetXMLDesc): Likewise. --- src/storage/storage_backend.c | 12 ++++++-- src/storage/storage_backend_disk.c | 10 +++++-- src/storage/storage_backend_fs.c | 26 ++++++++++++++---- src/storage/storage_backend_iscsi.c | 4 ++- src/storage/storage_backend_logical.c | 18 +++++++++--- src/storage/storage_driver.c | 45 ++++++++++++++++++++++++++------ 6 files changed, 88 insertions(+), 27 deletions(-) diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c index 671b88e..f632edd 100644 --- a/src/storage/storage_backend.c +++ b/src/storage/storage_backend.c @@ -233,7 +233,7 @@ virStorageBackendCreateBlockFrom(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool ATTRIBUTE_UNUSED, virStorageVolDefPtr vol, virStorageVolDefPtr inputvol, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { int fd = -1; int ret = -1; @@ -242,6 +242,8 @@ virStorageBackendCreateBlockFrom(virConnectPtr conn ATTRIBUTE_UNUSED, gid_t gid; uid_t uid; + virCheckFlags(0, -1); + if ((fd = open(vol->target.path, O_RDWR)) < 0) { virReportSystemError(errno, _("cannot create path '%s'"), @@ -643,7 +645,7 @@ virStorageBackendCreateQemuImg(virConnectPtr conn, virStoragePoolObjPtr pool, virStorageVolDefPtr vol, virStorageVolDefPtr inputvol, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { int ret = -1; char *create_tool; @@ -652,6 +654,8 @@ virStorageBackendCreateQemuImg(virConnectPtr conn, bool do_encryption = (vol->target.encryption != NULL); unsigned long long int size_arg; + virCheckFlags(0, -1); + const char *type = virStorageFileFormatTypeToString(vol->target.format); const char *backingType = vol->backingStore.path ? virStorageFileFormatTypeToString(vol->backingStore.format) : NULL; @@ -847,12 +851,14 @@ virStorageBackendCreateQcowCreate(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool, virStorageVolDefPtr vol, virStorageVolDefPtr inputvol, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { int ret; char *size; virCommandPtr cmd; + virCheckFlags(0, -1); + if (inputvol) { virStorageReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot copy from volume with qcow-create")); diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c index 0b10d36..82b41ef 100644 --- a/src/storage/storage_backend_disk.c +++ b/src/storage/storage_backend_disk.c @@ -1,7 +1,7 @@ /* * storage_backend_disk.c: storage backend for disk handling * - * Copyright (C) 2007-2008, 2010 Red Hat, Inc. + * Copyright (C) 2007-2008, 2010-2011 Red Hat, Inc. * Copyright (C) 2007-2008 Daniel P. Berrange * * This library is free software; you can redistribute it and/or @@ -334,7 +334,7 @@ virStorageBackendDiskRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED, static int virStorageBackendDiskBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { /* eg parted /dev/sda mklabel msdos */ const char *prog[] = { @@ -347,6 +347,8 @@ virStorageBackendDiskBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED, NULL, }; + virCheckFlags(0, -1); + if (virRun(prog, NULL) < 0) return -1; @@ -643,7 +645,7 @@ static int virStorageBackendDiskDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool, virStorageVolDefPtr vol, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { char *part_num = NULL; char *devpath = NULL; @@ -652,6 +654,8 @@ virStorageBackendDiskDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED, bool isDevMapperDevice; int rc = -1; + virCheckFlags(0, -1); + if (virFileResolveLink(vol->target.path, &devpath) < 0) { virReportSystemError(errno, _("Couldn't read volume target path '%s'"), diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c index d87401f..b30e01e 100644 --- a/src/storage/storage_backend_fs.c +++ b/src/storage/storage_backend_fs.c @@ -212,7 +212,7 @@ cleanup: static char * virStorageBackendFileSystemNetFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED, const char *srcSpec, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { /* * # showmount --no-headers -e HOSTNAME @@ -241,6 +241,8 @@ virStorageBackendFileSystemNetFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSE char *retval = NULL; unsigned int i; + virCheckFlags(0, NULL); + source = virStoragePoolDefParseSourceString(srcSpec, VIR_STORAGE_POOL_NETFS); if (!source) @@ -538,12 +540,14 @@ virStorageBackendFileSystemStart(virConnectPtr conn ATTRIBUTE_UNUSED, static int virStorageBackendFileSystemBuild(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { int err, ret = -1; char *parent; char *p; + virCheckFlags(0, -1); + if ((parent = strdup(pool->def->target.path)) == NULL) { virReportOOMError(); goto error; @@ -755,8 +759,10 @@ virStorageBackendFileSystemStop(virConnectPtr conn ATTRIBUTE_UNUSED, static int virStorageBackendFileSystemDelete(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, -1); + /* XXX delete all vols first ? */ if (rmdir(pool->def->target.path) < 0) { @@ -806,9 +812,12 @@ static int createFileDir(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool, virStorageVolDefPtr vol, virStorageVolDefPtr inputvol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ int err; + virCheckFlags(0, -1); + if (inputvol) { virStorageReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -896,7 +905,10 @@ virStorageBackendFileSystemVolBuildFrom(virConnectPtr conn, virStoragePoolObjPtr pool, virStorageVolDefPtr vol, virStorageVolDefPtr inputvol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, -1); + return _virStorageBackendFileSystemVolBuild(conn, pool, vol, inputvol); } @@ -907,8 +919,10 @@ static int virStorageBackendFileSystemVolDelete(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool ATTRIBUTE_UNUSED, virStorageVolDefPtr vol, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, -1); + if (unlink(vol->target.path) < 0) { /* Silently ignore failures where the vol has already gone away */ if (errno != ENOENT) { diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c index 72887e3..7b8dc97 100644 --- a/src/storage/storage_backend_iscsi.c +++ b/src/storage/storage_backend_iscsi.c @@ -550,7 +550,7 @@ virStorageBackendISCSIScanTargets(const char *portal, static char * virStorageBackendISCSIFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED, const char *srcSpec, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virStoragePoolSourcePtr source = NULL; size_t ntargets = 0; @@ -564,6 +564,8 @@ virStorageBackendISCSIFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED, }; char *portal = NULL; + virCheckFlags(0, NULL); + if (!(source = virStoragePoolDefParseSourceString(srcSpec, list.type))) return NULL; diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index 4de5442..5fe9a1f 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -1,7 +1,7 @@ /* * storage_backend_logical.c: storage backend for logical volume handling * - * Copyright (C) 2007-2009 Red Hat, Inc. + * Copyright (C) 2007-2009, 2011 Red Hat, Inc. * Copyright (C) 2007-2008 Daniel P. Berrange * * This library is free software; you can redistribute it and/or @@ -294,7 +294,7 @@ virStorageBackendLogicalFindPoolSourcesFunc(virStoragePoolObjPtr pool ATTRIBUTE_ static char * virStorageBackendLogicalFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED, const char *srcSpec ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { /* * # pvs --noheadings -o pv_name,vg_name @@ -313,6 +313,8 @@ virStorageBackendLogicalFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolSourceList sourceList; int i; + virCheckFlags(0, NULL); + /* * NOTE: ignoring errors here; this is just to "touch" any logical volumes * that might be hanging around, so if this fails for some reason, the @@ -382,13 +384,15 @@ virStorageBackendLogicalStartPool(virConnectPtr conn ATTRIBUTE_UNUSED, static int virStorageBackendLogicalBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { const char **vgargv; const char *pvargv[3]; int n = 0, i, fd; char zeros[PV_BLANK_SECTOR_SIZE]; + virCheckFlags(0, -1); + memset(zeros, 0, sizeof(zeros)); if (VIR_ALLOC_N(vgargv, 3 + pool->def->source.ndevice) < 0) { @@ -518,7 +522,7 @@ virStorageBackendLogicalStopPool(virConnectPtr conn ATTRIBUTE_UNUSED, static int virStorageBackendLogicalDeletePool(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { const char *cmdargv[] = { VGREMOVE, "-f", pool->def->source.name, NULL @@ -526,6 +530,8 @@ virStorageBackendLogicalDeletePool(virConnectPtr conn ATTRIBUTE_UNUSED, const char *pvargv[3]; int i, error; + virCheckFlags(0, -1); + /* first remove the volume group */ if (virRun(cmdargv, NULL) < 0) return -1; @@ -665,12 +671,14 @@ static int virStorageBackendLogicalDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool ATTRIBUTE_UNUSED, virStorageVolDefPtr vol, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { const char *cmdargv[] = { LVREMOVE, "-f", vol->target.path, NULL }; + virCheckFlags(0, -1); + if (virRun(cmdargv, NULL) < 0) return -1; diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index d1fef92..56af305 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -322,7 +322,10 @@ storagePoolLookupByVolume(virStorageVolPtr vol) { static virDrvOpenStatus storageOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (!driverState) return VIR_DRV_OPEN_DECLINED; @@ -516,13 +519,16 @@ cleanup: static virStoragePoolPtr storagePoolCreate(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ virStorageDriverStatePtr driver = conn->storagePrivateData; virStoragePoolDefPtr def; virStoragePoolObjPtr pool = NULL; virStoragePoolPtr ret = NULL; virStorageBackendPtr backend; + virCheckFlags(0, NULL); + storageDriverLock(driver); if (!(def = virStoragePoolDefParseString(xml))) goto cleanup; @@ -567,12 +573,15 @@ cleanup: static virStoragePoolPtr storagePoolDefine(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ virStorageDriverStatePtr driver = conn->storagePrivateData; virStoragePoolDefPtr def; virStoragePoolObjPtr pool = NULL; virStoragePoolPtr ret = NULL; + virCheckFlags(0, NULL); + storageDriverLock(driver); if (!(def = virStoragePoolDefParseString(xml))) goto cleanup; @@ -657,12 +666,15 @@ cleanup: static int storagePoolStart(virStoragePoolPtr obj, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ virStorageDriverStatePtr driver = obj->conn->storagePrivateData; virStoragePoolObjPtr pool; virStorageBackendPtr backend; int ret = -1; + virCheckFlags(0, -1); + storageDriverLock(driver); pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid); storageDriverUnlock(driver); @@ -848,12 +860,15 @@ cleanup: static int storagePoolRefresh(virStoragePoolPtr obj, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ virStorageDriverStatePtr driver = obj->conn->storagePrivateData; virStoragePoolObjPtr pool; virStorageBackendPtr backend; int ret = -1; + virCheckFlags(0, -1); + storageDriverLock(driver); pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid); @@ -940,11 +955,14 @@ cleanup: static char * storagePoolGetXMLDesc(virStoragePoolPtr obj, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ virStorageDriverStatePtr driver = obj->conn->storagePrivateData; virStoragePoolObjPtr pool; char *ret = NULL; + virCheckFlags(0, NULL); + storageDriverLock(driver); pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid); storageDriverUnlock(driver); @@ -1261,13 +1279,16 @@ static int storageVolumeDelete(virStorageVolPtr obj, unsigned int flags); static virStorageVolPtr storageVolumeCreateXML(virStoragePoolPtr obj, const char *xmldesc, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ virStorageDriverStatePtr driver = obj->conn->storagePrivateData; virStoragePoolObjPtr pool; virStorageBackendPtr backend; virStorageVolDefPtr voldef = NULL; virStorageVolPtr ret = NULL, volobj = NULL; + virCheckFlags(0, NULL); + storageDriverLock(driver); pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid); storageDriverUnlock(driver); @@ -1383,7 +1404,8 @@ static virStorageVolPtr storageVolumeCreateXMLFrom(virStoragePoolPtr obj, const char *xmldesc, virStorageVolPtr vobj, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ virStorageDriverStatePtr driver = obj->conn->storagePrivateData; virStoragePoolObjPtr pool, origpool = NULL; virStorageBackendPtr backend; @@ -1391,6 +1413,8 @@ storageVolumeCreateXMLFrom(virStoragePoolPtr obj, virStorageVolPtr ret = NULL, volobj = NULL; int buildret; + virCheckFlags(0, NULL); + storageDriverLock(driver); pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid); if (pool && STRNEQ(obj->name, vobj->pool)) { @@ -2010,13 +2034,16 @@ cleanup: static char * storageVolumeGetXMLDesc(virStorageVolPtr obj, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ virStorageDriverStatePtr driver = obj->conn->storagePrivateData; virStoragePoolObjPtr pool; virStorageBackendPtr backend; virStorageVolDefPtr vol; char *ret = NULL; + virCheckFlags(0, NULL); + storageDriverLock(driver); pool = virStoragePoolObjFindByName(&driver->pools, obj->pool); storageDriverUnlock(driver); -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:51PM -0600, Eric Blake wrote:
* src/storage/storage_backend.c (virStorageBackendCreateBlockFrom) (virStorageBackendCreateQemuImg) (virStorageBackendCreateQcowCreate): Reject unknown flags. * src/storage/storage_backend_disk.c (virStorageBackendDiskBuildPool) (virStorageBackendDiskDeleteVol): Likewise. * src/storage/storage_backend_fs.c (virStorageBackendFileSystemNetFindPoolSources) (virStorageBackendFileSystemBuild) (virStorageBackendFileSystemDelete, createFileDir) (virStorageBackendFileSystemVolBuildFrom) (virStorageBackendFileSystemVolDelete): Likewise. * src/storage/storage_backend_iscsi.c (virStorageBackendISCSIFindPoolSources): Likewise. * src/storage/storage_backend_logical.c (virStorageBackendLogicalFindPoolSources) (virStorageBackendLogicalBuildPool) (virStorageBackendLogicalDeletePool) (virStorageBackendLogicalDeleteVol): Likewise. * src/storage/storage_driver.c (storageOpen, storagePoolCreate) (storagePoolDefine, storagePoolRefresh, storagePoolGetXMLDesc) (storageVolumeCreateXML, storageVolumeCreateXMLFrom) (storageVolumeGetXMLDesc): Likewise. --- src/storage/storage_backend.c | 12 ++++++-- src/storage/storage_backend_disk.c | 10 +++++-- src/storage/storage_backend_fs.c | 26 ++++++++++++++---- src/storage/storage_backend_iscsi.c | 4 ++- src/storage/storage_backend_logical.c | 18 +++++++++--- src/storage/storage_driver.c | 45 ++++++++++++++++++++++++++------ 6 files changed, 88 insertions(+), 27 deletions(-)
ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

Silently ignored flags get in the way of new features that use those flags. * src/esx/esx_device_monitor.c (esxDeviceOpen): Reject unknown flags. * src/esx/esx_driver.c (esxOpen, esxDomainReboot) (esxDomainXMLFromNative, esxDomainXMLToNative) (esxDomainMigratePrepare, esxDomainMigratePerform) (esxDomainMigrateFinish): Likewise. * src/esx/esx_interface_driver.c (esxInterfaceOpen): Likewise. * src/esx/esx_network_driver.c (esxNetworkOpen): Likewise. * src/esx/esx_nwfilter_driver.c (esxNWFilterOpen): Likewise. * src/esx/esx_secret_driver.c (esxSecretOpen): Likewise. * src/esx/esx_storage_driver.c (esxStorageOpen): Likewise. --- src/esx/esx_device_monitor.c | 4 +++- src/esx/esx_driver.c | 28 +++++++++++++++++++++------- src/esx/esx_interface_driver.c | 4 +++- src/esx/esx_network_driver.c | 4 +++- src/esx/esx_nwfilter_driver.c | 4 +++- src/esx/esx_secret_driver.c | 4 +++- src/esx/esx_storage_driver.c | 4 +++- 7 files changed, 39 insertions(+), 13 deletions(-) diff --git a/src/esx/esx_device_monitor.c b/src/esx/esx_device_monitor.c index 51b2413..81eb8b5 100644 --- a/src/esx/esx_device_monitor.c +++ b/src/esx/esx_device_monitor.c @@ -42,8 +42,10 @@ static virDrvOpenStatus esxDeviceOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; } diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index f68ede0..4fb181e 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -935,13 +935,15 @@ esxConnectToVCenter(esxPrivate *priv, virConnectAuthPtr auth, */ static virDrvOpenStatus esxOpen(virConnectPtr conn, virConnectAuthPtr auth, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDrvOpenStatus result = VIR_DRV_OPEN_ERROR; esxPrivate *priv = NULL; char *potentialVCenterIpAddress = NULL; char vCenterIpAddress[NI_MAXHOST] = ""; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + /* Decline if the URI is NULL or the scheme is not one of {vpx|esx|gsx} */ if (conn->uri == NULL || conn->uri->scheme == NULL || (STRCASENEQ(conn->uri->scheme, "vpx") && @@ -1890,7 +1892,7 @@ esxDomainShutdown(virDomainPtr domain) static int -esxDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED) +esxDomainReboot(virDomainPtr domain, unsigned int flags) { int result = -1; esxPrivate *priv = domain->conn->privateData; @@ -1898,6 +1900,8 @@ esxDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED) esxVI_String *propertyNameList = NULL; esxVI_VirtualMachinePowerState powerState; + virCheckFlags(0, -1); + if (esxVI_EnsureSession(priv->primary) < 0) { return -1; } @@ -2796,7 +2800,7 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags) static char * esxDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat, const char *nativeConfig, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { esxPrivate *priv = conn->privateData; virVMXContext ctx; @@ -2804,6 +2808,8 @@ esxDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat, virDomainDefPtr def = NULL; char *xml = NULL; + virCheckFlags(0, NULL); + if (STRNEQ(nativeFormat, "vmware-vmx")) { ESX_ERROR(VIR_ERR_INVALID_ARG, _("Unsupported config format '%s'"), nativeFormat); @@ -2834,7 +2840,7 @@ esxDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat, static char * esxDomainXMLToNative(virConnectPtr conn, const char *nativeFormat, const char *domainXml, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { esxPrivate *priv = conn->privateData; int virtualHW_version; @@ -2843,6 +2849,8 @@ esxDomainXMLToNative(virConnectPtr conn, const char *nativeFormat, virDomainDefPtr def = NULL; char *vmx = NULL; + virCheckFlags(0, NULL); + if (STRNEQ(nativeFormat, "vmware-vmx")) { ESX_ERROR(VIR_ERR_INVALID_ARG, _("Unsupported config format '%s'"), nativeFormat); @@ -3829,12 +3837,14 @@ esxDomainMigratePrepare(virConnectPtr dconn, int *cookielen ATTRIBUTE_UNUSED, const char *uri_in ATTRIBUTE_UNUSED, char **uri_out, - unsigned long flags ATTRIBUTE_UNUSED, + unsigned long flags, const char *dname ATTRIBUTE_UNUSED, unsigned long resource ATTRIBUTE_UNUSED) { esxPrivate *priv = dconn->privateData; + virCheckFlags(0, -1); + if (uri_in == NULL) { if (virAsprintf(uri_out, "vpxmigr://%s/%s/%s", priv->vCenter->ipAddress, @@ -3855,7 +3865,7 @@ esxDomainMigratePerform(virDomainPtr domain, const char *cookie ATTRIBUTE_UNUSED, int cookielen ATTRIBUTE_UNUSED, const char *uri, - unsigned long flags ATTRIBUTE_UNUSED, + unsigned long flags, const char *dname, unsigned long bandwidth ATTRIBUTE_UNUSED) { @@ -3873,6 +3883,8 @@ esxDomainMigratePerform(virDomainPtr domain, esxVI_TaskInfoState taskInfoState; char *taskInfoErrorMessage = NULL; + virCheckFlags(0, -1); + if (priv->vCenter == NULL) { ESX_ERROR(VIR_ERR_INVALID_ARG, "%s", _("Migration not possible without a vCenter")); @@ -4001,8 +4013,10 @@ esxDomainMigrateFinish(virConnectPtr dconn, const char *dname, const char *cookie ATTRIBUTE_UNUSED, int cookielen ATTRIBUTE_UNUSED, const char *uri ATTRIBUTE_UNUSED, - unsigned long flags ATTRIBUTE_UNUSED) + unsigned long flags) { + virCheckFlags(0, NULL); + return esxDomainLookupByName(dconn, dname); } diff --git a/src/esx/esx_interface_driver.c b/src/esx/esx_interface_driver.c index 3d23d0f..5eace94 100644 --- a/src/esx/esx_interface_driver.c +++ b/src/esx/esx_interface_driver.c @@ -42,8 +42,10 @@ static virDrvOpenStatus esxInterfaceOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; } diff --git a/src/esx/esx_network_driver.c b/src/esx/esx_network_driver.c index f8a3ede..17b329f 100644 --- a/src/esx/esx_network_driver.c +++ b/src/esx/esx_network_driver.c @@ -42,8 +42,10 @@ static virDrvOpenStatus esxNetworkOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; } diff --git a/src/esx/esx_nwfilter_driver.c b/src/esx/esx_nwfilter_driver.c index d7fa15a..3fdcae8 100644 --- a/src/esx/esx_nwfilter_driver.c +++ b/src/esx/esx_nwfilter_driver.c @@ -42,8 +42,10 @@ static virDrvOpenStatus esxNWFilterOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; } diff --git a/src/esx/esx_secret_driver.c b/src/esx/esx_secret_driver.c index 820f4b1..bedc521 100644 --- a/src/esx/esx_secret_driver.c +++ b/src/esx/esx_secret_driver.c @@ -40,8 +40,10 @@ static virDrvOpenStatus esxSecretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; } diff --git a/src/esx/esx_storage_driver.c b/src/esx/esx_storage_driver.c index 528159a..f175bd8 100644 --- a/src/esx/esx_storage_driver.c +++ b/src/esx/esx_storage_driver.c @@ -104,8 +104,10 @@ esxStoragePoolLookupType(esxVI_Context *ctx, const char *poolName, static virDrvOpenStatus esxStorageOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->driver->no != VIR_DRV_ESX) { return VIR_DRV_OPEN_DECLINED; } -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:52PM -0600, Eric Blake wrote:
Silently ignored flags get in the way of new features that use those flags.
* src/esx/esx_device_monitor.c (esxDeviceOpen): Reject unknown flags. * src/esx/esx_driver.c (esxOpen, esxDomainReboot) (esxDomainXMLFromNative, esxDomainXMLToNative) (esxDomainMigratePrepare, esxDomainMigratePerform) (esxDomainMigrateFinish): Likewise. * src/esx/esx_interface_driver.c (esxInterfaceOpen): Likewise. * src/esx/esx_network_driver.c (esxNetworkOpen): Likewise. * src/esx/esx_nwfilter_driver.c (esxNWFilterOpen): Likewise. * src/esx/esx_secret_driver.c (esxSecretOpen): Likewise. * src/esx/esx_storage_driver.c (esxStorageOpen): Likewise. --- src/esx/esx_device_monitor.c | 4 +++- src/esx/esx_driver.c | 28 +++++++++++++++++++++------- src/esx/esx_interface_driver.c | 4 +++- src/esx/esx_network_driver.c | 4 +++- src/esx/esx_nwfilter_driver.c | 4 +++- src/esx/esx_secret_driver.c | 4 +++- src/esx/esx_storage_driver.c | 4 +++- 7 files changed, 39 insertions(+), 13 deletions(-)
ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

* src/libxl/libxl_driver.c (libxlOpen, libxlDomainReboot) (libxlDomainXMLFromNative, libxlDomainXMLToNative) (libxlDomainCreateWithFlags): Reject unknown flags. --- src/libxl/libxl_driver.c | 18 +++++++++++++----- 1 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 586d562..94d5c2c 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1059,8 +1059,10 @@ libxlActive(void) static virDrvOpenStatus libxlOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { if (libxl_driver == NULL) return VIR_DRV_OPEN_DECLINED; @@ -1477,13 +1479,15 @@ cleanup: } static int -libxlDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +libxlDomainReboot(virDomainPtr dom, unsigned int flags) { libxlDriverPrivatePtr driver = dom->conn->privateData; virDomainObjPtr vm; int ret = -1; libxlDomainObjPrivatePtr priv; + virCheckFlags(0, -1); + libxlDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); if (!vm) { @@ -2506,7 +2510,7 @@ libxlDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) static char * libxlDomainXMLFromNative(virConnectPtr conn, const char * nativeFormat, const char * nativeConfig, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { libxlDriverPrivatePtr driver = conn->privateData; const libxl_version_info *ver_info; @@ -2514,6 +2518,8 @@ libxlDomainXMLFromNative(virConnectPtr conn, const char * nativeFormat, virConfPtr conf = NULL; char *xml = NULL; + virCheckFlags(0, NULL); + if (STRNEQ(nativeFormat, LIBXL_CONFIG_FORMAT_XM)) { libxlError(VIR_ERR_INVALID_ARG, _("unsupported config type %s"), nativeFormat); @@ -2546,7 +2552,7 @@ cleanup: static char * libxlDomainXMLToNative(virConnectPtr conn, const char * nativeFormat, const char * domainXml, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { libxlDriverPrivatePtr driver = conn->privateData; const libxl_version_info *ver_info; @@ -2555,6 +2561,8 @@ libxlDomainXMLToNative(virConnectPtr conn, const char * nativeFormat, int len = MAX_CONFIG_SIZE; char *ret = NULL; + virCheckFlags(0, NULL); + if (STRNEQ(nativeFormat, LIBXL_CONFIG_FORMAT_XM)) { libxlError(VIR_ERR_INVALID_ARG, _("unsupported config type %s"), nativeFormat); @@ -2617,7 +2625,7 @@ libxlNumDefinedDomains(virConnectPtr conn) static int libxlDomainCreateWithFlags(virDomainPtr dom, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { libxlDriverPrivatePtr driver = dom->conn->privateData; virDomainObjPtr vm; -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:53PM -0600, Eric Blake wrote:
* src/libxl/libxl_driver.c (libxlOpen, libxlDomainReboot) (libxlDomainXMLFromNative, libxlDomainXMLToNative) (libxlDomainCreateWithFlags): Reject unknown flags. --- src/libxl/libxl_driver.c | 18 +++++++++++++----- 1 files changed, 13 insertions(+), 5 deletions(-)
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/lxc/lxc_driver.c (lxcOpen, lxcDomainSetMemoryParameters) (lxcDomainGetMemoryParameters): Reject unknown flags. --- src/lxc/lxc_driver.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 799a5e7..8684ec6 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -110,8 +110,10 @@ static void lxcDomainEventQueue(lxc_driver_t *driver, static virDrvOpenStatus lxcOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + /* Verify uri was specified */ if (conn->uri == NULL) { if (lxc_driver == NULL) @@ -746,7 +748,7 @@ cleanup: static int lxcDomainSetMemoryParameters(virDomainPtr dom, virTypedParameterPtr params, int nparams, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { lxc_driver_t *driver = dom->conn->privateData; int i; @@ -754,6 +756,8 @@ static int lxcDomainSetMemoryParameters(virDomainPtr dom, virDomainObjPtr vm = NULL; int ret = -1; + virCheckFlags(0, -1); + lxcDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); @@ -843,7 +847,7 @@ cleanup: static int lxcDomainGetMemoryParameters(virDomainPtr dom, virTypedParameterPtr params, int *nparams, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { lxc_driver_t *driver = dom->conn->privateData; int i; @@ -853,6 +857,8 @@ static int lxcDomainGetMemoryParameters(virDomainPtr dom, int ret = -1; int rc; + virCheckFlags(0, -1); + lxcDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:54PM -0600, Eric Blake wrote:
* src/lxc/lxc_driver.c (lxcOpen, lxcDomainSetMemoryParameters) (lxcDomainGetMemoryParameters): Reject unknown flags. --- src/lxc/lxc_driver.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 799a5e7..8684ec6 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -110,8 +110,10 @@ static void lxcDomainEventQueue(lxc_driver_t *driver,
static virDrvOpenStatus lxcOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + /* Verify uri was specified */ if (conn->uri == NULL) { if (lxc_driver == NULL) @@ -746,7 +748,7 @@ cleanup: static int lxcDomainSetMemoryParameters(virDomainPtr dom, virTypedParameterPtr params, int nparams, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { lxc_driver_t *driver = dom->conn->privateData; int i; @@ -754,6 +756,8 @@ static int lxcDomainSetMemoryParameters(virDomainPtr dom, virDomainObjPtr vm = NULL; int ret = -1;
+ virCheckFlags(0, -1); + lxcDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid);
@@ -843,7 +847,7 @@ cleanup: static int lxcDomainGetMemoryParameters(virDomainPtr dom, virTypedParameterPtr params, int *nparams, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { lxc_driver_t *driver = dom->conn->privateData; int i; @@ -853,6 +857,8 @@ static int lxcDomainGetMemoryParameters(virDomainPtr dom, int ret = -1; int rc;
+ virCheckFlags(0, -1); + lxcDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid);
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/openvz/openvz_driver.c (openvzDomainReboot, openvzOpen): Reject unknown flags. --- src/openvz/openvz_driver.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index 2c6c870..2b4bf9e 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -613,12 +613,15 @@ cleanup: } static int openvzDomainReboot(virDomainPtr dom, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ struct openvz_driver *driver = dom->conn->privateData; virDomainObjPtr vm; const char *prog[] = {VZCTL, "--quiet", "restart", PROGRAM_SENTINAL, NULL}; int ret = -1; + virCheckFlags(0, -1); + openvzDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); openvzDriverUnlock(driver); @@ -1281,10 +1284,12 @@ openvzDomainSetVcpus(virDomainPtr dom, unsigned int nvcpus) static virDrvOpenStatus openvzOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct openvz_driver *driver; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { if (!virFileExists("/proc/vz")) return VIR_DRV_OPEN_DECLINED; -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:55PM -0600, Eric Blake wrote:
* src/openvz/openvz_driver.c (openvzDomainReboot, openvzOpen): Reject unknown flags. --- src/openvz/openvz_driver.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index 2c6c870..2b4bf9e 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -613,12 +613,15 @@ cleanup: }
static int openvzDomainReboot(virDomainPtr dom, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ struct openvz_driver *driver = dom->conn->privateData; virDomainObjPtr vm; const char *prog[] = {VZCTL, "--quiet", "restart", PROGRAM_SENTINAL, NULL}; int ret = -1;
+ virCheckFlags(0, -1); + openvzDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); openvzDriverUnlock(driver); @@ -1281,10 +1284,12 @@ openvzDomainSetVcpus(virDomainPtr dom, unsigned int nvcpus)
static virDrvOpenStatus openvzOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct openvz_driver *driver;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { if (!virFileExists("/proc/vz")) return VIR_DRV_OPEN_DECLINED;
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/phyp/phyp_driver.c (phypOpen, phypDomainReboot) (phypVIOSDriverOpen): Reject unknown flags. --- src/phyp/phyp_driver.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index d1ab5b4..93f22eb 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -1128,7 +1128,7 @@ exit: static virDrvOpenStatus phypOpen(virConnectPtr conn, - virConnectAuthPtr auth, unsigned int flags ATTRIBUTE_UNUSED) + virConnectAuthPtr auth, unsigned int flags) { LIBSSH2_SESSION *session = NULL; ConnectionData *connection_data = NULL; @@ -1138,6 +1138,8 @@ phypOpen(virConnectPtr conn, char *char_ptr; char *managed_system = NULL; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (!conn || !conn->uri) return VIR_DRV_OPEN_DECLINED; @@ -3389,7 +3391,7 @@ cleanup: } static int -phypDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +phypDomainReboot(virDomainPtr dom, unsigned int flags) { int result = -1; ConnectionData *connection_data = dom->conn->networkPrivateData; @@ -3402,6 +3404,8 @@ phypDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) char *ret = NULL; virBuffer buf = VIR_BUFFER_INITIALIZER; + virCheckFlags(0, -1); + virBufferAddLit(&buf, "chsysstate"); if (system_type == HMC) virBufferAsprintf(&buf, " -m %s", managed_system); @@ -3725,8 +3729,10 @@ phypDomainSetCPU(virDomainPtr dom, unsigned int nvcpus) static virDrvOpenStatus phypVIOSDriverOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->driver->no != VIR_DRV_PHYP) return VIR_DRV_OPEN_DECLINED; -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:56PM -0600, Eric Blake wrote:
* src/phyp/phyp_driver.c (phypOpen, phypDomainReboot) (phypVIOSDriverOpen): Reject unknown flags. --- src/phyp/phyp_driver.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index d1ab5b4..93f22eb 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -1128,7 +1128,7 @@ exit:
static virDrvOpenStatus phypOpen(virConnectPtr conn, - virConnectAuthPtr auth, unsigned int flags ATTRIBUTE_UNUSED) + virConnectAuthPtr auth, unsigned int flags) { LIBSSH2_SESSION *session = NULL; ConnectionData *connection_data = NULL; @@ -1138,6 +1138,8 @@ phypOpen(virConnectPtr conn, char *char_ptr; char *managed_system = NULL;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (!conn || !conn->uri) return VIR_DRV_OPEN_DECLINED;
@@ -3389,7 +3391,7 @@ cleanup: }
static int -phypDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +phypDomainReboot(virDomainPtr dom, unsigned int flags) { int result = -1; ConnectionData *connection_data = dom->conn->networkPrivateData; @@ -3402,6 +3404,8 @@ phypDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) char *ret = NULL; virBuffer buf = VIR_BUFFER_INITIALIZER;
+ virCheckFlags(0, -1); + virBufferAddLit(&buf, "chsysstate"); if (system_type == HMC) virBufferAsprintf(&buf, " -m %s", managed_system); @@ -3725,8 +3729,10 @@ phypDomainSetCPU(virDomainPtr dom, unsigned int nvcpus) static virDrvOpenStatus phypVIOSDriverOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->driver->no != VIR_DRV_PHYP) return VIR_DRV_OPEN_DECLINED;
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/qemu/qemu_driver.c (qemudOpen, qemuDomainScreenshot) (qemuDomainXMLFromNative, qemuDomainXMLToNative) (qemudDomainBlockPeek, qemuCPUCompare, qemuCPUBaseline): Reject unknown flags. * src/qemu/qemu_migration.c (qemuMigrationConfirm): Likewise. (_qemuMigrationCookie, qemuMigrationCookieXMLParse) (qemuMigrationCookieXMLParseStr, qemuMigrationBakeCookie) (qemuMigrationEatCookie): Make flags unsigned. --- src/qemu/qemu_driver.c | 30 +++++++++++++++++++++++------- src/qemu/qemu_migration.c | 16 +++++++++------- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 4f12beb..a2fe4b8 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -800,8 +800,10 @@ static int qemuDomainSnapshotSetCurrentInactive(virDomainObjPtr vm, static virDrvOpenStatus qemudOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { if (qemu_driver == NULL) return VIR_DRV_OPEN_DECLINED; @@ -2686,7 +2688,7 @@ static char * qemuDomainScreenshot(virDomainPtr dom, virStreamPtr st, unsigned int screen, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct qemud_driver *driver = dom->conn->privateData; virDomainObjPtr vm; @@ -2695,6 +2697,8 @@ qemuDomainScreenshot(virDomainPtr dom, int tmp_fd = -1; char *ret = NULL; + virCheckFlags(0, NULL); + qemuDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); qemuDriverUnlock(driver); @@ -3881,11 +3885,14 @@ cleanup: static char *qemuDomainXMLFromNative(virConnectPtr conn, const char *format, const char *config, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ struct qemud_driver *driver = conn->privateData; virDomainDefPtr def = NULL; char *xml = NULL; + virCheckFlags(0, NULL); + if (STRNEQ(format, QEMU_CONFIG_FORMAT_ARGV)) { qemuReportError(VIR_ERR_INVALID_ARG, _("unsupported config type %s"), format); @@ -3908,7 +3915,8 @@ cleanup: static char *qemuDomainXMLToNative(virConnectPtr conn, const char *format, const char *xmlData, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ struct qemud_driver *driver = conn->privateData; virDomainDefPtr def = NULL; virDomainChrSourceDef monConfig; @@ -3917,6 +3925,8 @@ static char *qemuDomainXMLToNative(virConnectPtr conn, char *ret = NULL; int i; + virCheckFlags(0, NULL); + qemuDriverLock(driver); if (STRNEQ(format, QEMU_CONFIG_FORMAT_ARGV)) { @@ -6164,12 +6174,14 @@ qemudDomainBlockPeek (virDomainPtr dom, const char *path, unsigned long long offset, size_t size, void *buffer, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct qemud_driver *driver = dom->conn->privateData; virDomainObjPtr vm; int fd = -1, ret = -1, i; + virCheckFlags(0, -1); + qemuDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); qemuDriverUnlock(driver); @@ -7240,11 +7252,13 @@ out: static int qemuCPUCompare(virConnectPtr conn, const char *xmlDesc, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct qemud_driver *driver = conn->privateData; int ret = VIR_CPU_COMPARE_ERROR; + virCheckFlags(0, VIR_CPU_COMPARE_ERROR); + qemuDriverLock(driver); if (!driver->caps || !driver->caps->host.cpu) { @@ -7264,10 +7278,12 @@ static char * qemuCPUBaseline(virConnectPtr conn ATTRIBUTE_UNUSED, const char **xmlCPUs, unsigned int ncpus, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { char *cpu; + virCheckFlags(0, NULL); + cpu = cpuBaselineXML(xmlCPUs, ncpus, NULL, 0); return cpu; diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index d7b27a0..a01cbd1 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -76,8 +76,8 @@ struct _qemuMigrationCookieGraphics { typedef struct _qemuMigrationCookie qemuMigrationCookie; typedef qemuMigrationCookie *qemuMigrationCookiePtr; struct _qemuMigrationCookie { - int flags; - int flagsMandatory; + unsigned int flags; + unsigned int flagsMandatory; /* Host properties */ unsigned char localHostuuid[VIR_UUID_BUFLEN]; @@ -446,7 +446,7 @@ error: static int qemuMigrationCookieXMLParse(qemuMigrationCookiePtr mig, xmlXPathContextPtr ctxt, - int flags) + unsigned int flags) { char uuidstr[VIR_UUID_STRING_BUFLEN]; char *tmp; @@ -580,7 +580,7 @@ error: static int qemuMigrationCookieXMLParseStr(qemuMigrationCookiePtr mig, const char *xml, - int flags) + unsigned int flags) { xmlDocPtr doc = NULL; xmlXPathContextPtr ctxt = NULL; @@ -614,7 +614,7 @@ qemuMigrationBakeCookie(qemuMigrationCookiePtr mig, virDomainObjPtr dom, char **cookieout, int *cookieoutlen, - int flags) + unsigned int flags) { if (!cookieout || !cookieoutlen) return 0; @@ -645,7 +645,7 @@ qemuMigrationEatCookie(struct qemud_driver *driver, virDomainObjPtr dom, const char *cookiein, int cookieinlen, - int flags) + unsigned int flags) { qemuMigrationCookiePtr mig = NULL; @@ -2605,7 +2605,7 @@ int qemuMigrationConfirm(struct qemud_driver *driver, virDomainObjPtr vm, const char *cookiein, int cookieinlen, - unsigned int flags ATTRIBUTE_UNUSED, + unsigned int flags, int retcode) { qemuMigrationCookiePtr mig; @@ -2616,6 +2616,8 @@ int qemuMigrationConfirm(struct qemud_driver *driver, driver, conn, vm, NULLSTR(cookiein), cookieinlen, flags, retcode); + virCheckFlags(0, -1); + if (!(mig = qemuMigrationEatCookie(driver, vm, cookiein, cookieinlen, 0))) return -1; -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:57PM -0600, Eric Blake wrote:
* src/qemu/qemu_driver.c (qemudOpen, qemuDomainScreenshot) (qemuDomainXMLFromNative, qemuDomainXMLToNative) (qemudDomainBlockPeek, qemuCPUCompare, qemuCPUBaseline): Reject unknown flags. * src/qemu/qemu_migration.c (qemuMigrationConfirm): Likewise. (_qemuMigrationCookie, qemuMigrationCookieXMLParse) (qemuMigrationCookieXMLParseStr, qemuMigrationBakeCookie) (qemuMigrationEatCookie): Make flags unsigned. --- src/qemu/qemu_driver.c | 30 +++++++++++++++++++++++------- src/qemu/qemu_migration.c | 16 +++++++++------- 2 files changed, 32 insertions(+), 14 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 4f12beb..a2fe4b8 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -800,8 +800,10 @@ static int qemuDomainSnapshotSetCurrentInactive(virDomainObjPtr vm,
static virDrvOpenStatus qemudOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { if (qemu_driver == NULL) return VIR_DRV_OPEN_DECLINED; @@ -2686,7 +2688,7 @@ static char * qemuDomainScreenshot(virDomainPtr dom, virStreamPtr st, unsigned int screen, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct qemud_driver *driver = dom->conn->privateData; virDomainObjPtr vm; @@ -2695,6 +2697,8 @@ qemuDomainScreenshot(virDomainPtr dom, int tmp_fd = -1; char *ret = NULL;
+ virCheckFlags(0, NULL); + qemuDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); qemuDriverUnlock(driver); @@ -3881,11 +3885,14 @@ cleanup: static char *qemuDomainXMLFromNative(virConnectPtr conn, const char *format, const char *config, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ struct qemud_driver *driver = conn->privateData; virDomainDefPtr def = NULL; char *xml = NULL;
+ virCheckFlags(0, NULL); + if (STRNEQ(format, QEMU_CONFIG_FORMAT_ARGV)) { qemuReportError(VIR_ERR_INVALID_ARG, _("unsupported config type %s"), format); @@ -3908,7 +3915,8 @@ cleanup: static char *qemuDomainXMLToNative(virConnectPtr conn, const char *format, const char *xmlData, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ struct qemud_driver *driver = conn->privateData; virDomainDefPtr def = NULL; virDomainChrSourceDef monConfig; @@ -3917,6 +3925,8 @@ static char *qemuDomainXMLToNative(virConnectPtr conn, char *ret = NULL; int i;
+ virCheckFlags(0, NULL); + qemuDriverLock(driver);
if (STRNEQ(format, QEMU_CONFIG_FORMAT_ARGV)) { @@ -6164,12 +6174,14 @@ qemudDomainBlockPeek (virDomainPtr dom, const char *path, unsigned long long offset, size_t size, void *buffer, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct qemud_driver *driver = dom->conn->privateData; virDomainObjPtr vm; int fd = -1, ret = -1, i;
+ virCheckFlags(0, -1); + qemuDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); qemuDriverUnlock(driver); @@ -7240,11 +7252,13 @@ out: static int qemuCPUCompare(virConnectPtr conn, const char *xmlDesc, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct qemud_driver *driver = conn->privateData; int ret = VIR_CPU_COMPARE_ERROR;
+ virCheckFlags(0, VIR_CPU_COMPARE_ERROR); + qemuDriverLock(driver);
if (!driver->caps || !driver->caps->host.cpu) { @@ -7264,10 +7278,12 @@ static char * qemuCPUBaseline(virConnectPtr conn ATTRIBUTE_UNUSED, const char **xmlCPUs, unsigned int ncpus, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { char *cpu;
+ virCheckFlags(0, NULL); + cpu = cpuBaselineXML(xmlCPUs, ncpus, NULL, 0);
return cpu; diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index d7b27a0..a01cbd1 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -76,8 +76,8 @@ struct _qemuMigrationCookieGraphics { typedef struct _qemuMigrationCookie qemuMigrationCookie; typedef qemuMigrationCookie *qemuMigrationCookiePtr; struct _qemuMigrationCookie { - int flags; - int flagsMandatory; + unsigned int flags; + unsigned int flagsMandatory;
/* Host properties */ unsigned char localHostuuid[VIR_UUID_BUFLEN]; @@ -446,7 +446,7 @@ error: static int qemuMigrationCookieXMLParse(qemuMigrationCookiePtr mig, xmlXPathContextPtr ctxt, - int flags) + unsigned int flags) { char uuidstr[VIR_UUID_STRING_BUFLEN]; char *tmp; @@ -580,7 +580,7 @@ error: static int qemuMigrationCookieXMLParseStr(qemuMigrationCookiePtr mig, const char *xml, - int flags) + unsigned int flags) { xmlDocPtr doc = NULL; xmlXPathContextPtr ctxt = NULL; @@ -614,7 +614,7 @@ qemuMigrationBakeCookie(qemuMigrationCookiePtr mig, virDomainObjPtr dom, char **cookieout, int *cookieoutlen, - int flags) + unsigned int flags) { if (!cookieout || !cookieoutlen) return 0; @@ -645,7 +645,7 @@ qemuMigrationEatCookie(struct qemud_driver *driver, virDomainObjPtr dom, const char *cookiein, int cookieinlen, - int flags) + unsigned int flags) { qemuMigrationCookiePtr mig = NULL;
@@ -2605,7 +2605,7 @@ int qemuMigrationConfirm(struct qemud_driver *driver, virDomainObjPtr vm, const char *cookiein, int cookieinlen, - unsigned int flags ATTRIBUTE_UNUSED, + unsigned int flags, int retcode) { qemuMigrationCookiePtr mig; @@ -2616,6 +2616,8 @@ int qemuMigrationConfirm(struct qemud_driver *driver, driver, conn, vm, NULLSTR(cookiein), cookieinlen, flags, retcode);
+ virCheckFlags(0, -1); + if (!(mig = qemuMigrationEatCookie(driver, vm, cookiein, cookieinlen, 0))) return -1;
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/test/test_driver.c (testOpen, testDomainCoreDump) (testOpenNetwork, testNetworkGetXMLDesc, testOpenInterface) (testInterfaceChangeBegin, testInterfaceChangeCommit) (testInterfaceChangeRollback, testInterfaceGetXMLDesc) (testInterfaceDefineXML, testInterfaceCreate) (testInterfaceDestroy, testStorageOpen, testStoragePoolStart) (testStorageFindPoolSources, testStoragePoolCreate) (testStoragePoolDefine, testStoragePoolBuild) (testStoragePoolDelete, testStoragePoolRefresh) (testStoragePoolGetXMLDesc, testStorageVolumeCreateXML) (testStorageVolumeCreateXMLFrom, testStorageVolumeDelete) (testStorageVolumeGetXMLDesc, testDevMonOpen) (testNodeNumOfDevices, testNodeListDevices) (testNodeDeviceGetXMLDesc, testNodeDeviceCreateXML) (testSecretOpen, testNWFilterOpen): Reject unknown flags. --- src/test/test_driver.c | 144 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 112 insertions(+), 32 deletions(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 98daca8..8dac713 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1099,11 +1099,13 @@ static int testOpenFromFile(virConnectPtr conn, static virDrvOpenStatus testOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { int ret; testConnPtr privconn; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (!conn->uri) return VIR_DRV_OPEN_DECLINED; @@ -1904,7 +1906,7 @@ cleanup: static int testDomainCoreDump(virDomainPtr domain, const char *to, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = domain->conn->privateData; int fd = -1; @@ -1912,6 +1914,8 @@ static int testDomainCoreDump(virDomainPtr domain, virDomainEventPtr event = NULL; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); privdom = virDomainFindByName(&privconn->domains, domain->name); @@ -2843,7 +2847,10 @@ error: static virDrvOpenStatus testOpenNetwork(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -3178,12 +3185,14 @@ cleanup: } static char *testNetworkGetXMLDesc(virNetworkPtr network, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = network->conn->privateData; virNetworkObjPtr privnet; char *ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); privnet = virNetworkFindByName(&privconn->networks, network->name); @@ -3292,8 +3301,10 @@ cleanup: static virDrvOpenStatus testOpenInterface(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -3476,11 +3487,13 @@ cleanup: } static int testInterfaceChangeBegin(virConnectPtr conn, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = conn->privateData; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); if (privconn->transaction_running) { testError(VIR_ERR_OPERATION_INVALID, @@ -3501,11 +3514,13 @@ cleanup: } static int testInterfaceChangeCommit(virConnectPtr conn, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = conn->privateData; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); if (!privconn->transaction_running) { @@ -3526,11 +3541,13 @@ cleanup: } static int testInterfaceChangeRollback(virConnectPtr conn, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = conn->privateData; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); if (!privconn->transaction_running) { @@ -3555,12 +3572,14 @@ cleanup: } static char *testInterfaceGetXMLDesc(virInterfacePtr iface, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = iface->conn->privateData; virInterfaceObjPtr privinterface; char *ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); privinterface = virInterfaceFindByName(&privconn->ifaces, iface->name); @@ -3581,13 +3600,15 @@ cleanup: static virInterfacePtr testInterfaceDefineXML(virConnectPtr conn, const char *xmlStr, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = conn->privateData; virInterfaceDefPtr def; virInterfaceObjPtr iface = NULL; virInterfacePtr ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); if ((def = virInterfaceDefParseString(xmlStr)) == NULL) goto cleanup; @@ -3631,12 +3652,14 @@ cleanup: } static int testInterfaceCreate(virInterfacePtr iface, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = iface->conn->privateData; virInterfaceObjPtr privinterface; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); privinterface = virInterfaceFindByName(&privconn->ifaces, iface->name); @@ -3662,12 +3685,14 @@ cleanup: } static int testInterfaceDestroy(virInterfacePtr iface, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = iface->conn->privateData; virInterfaceObjPtr privinterface; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); privinterface = virInterfaceFindByName(&privconn->ifaces, iface->name); @@ -3716,7 +3741,10 @@ static int testStoragePoolObjSetDefaults(virStoragePoolObjPtr pool) { static virDrvOpenStatus testStorageOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -3921,11 +3949,14 @@ cleanup: static int testStoragePoolStart(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -3955,12 +3986,14 @@ static char * testStorageFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED, const char *type, const char *srcSpec, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virStoragePoolSourcePtr source = NULL; int pool_type; char *ret = NULL; + virCheckFlags(0, NULL); + pool_type = virStoragePoolTypeFromString(type); if (!pool_type) { testError(VIR_ERR_INTERNAL_ERROR, @@ -4009,12 +4042,15 @@ cleanup: static virStoragePoolPtr testStoragePoolCreate(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = conn->privateData; virStoragePoolDefPtr def; virStoragePoolObjPtr pool = NULL; virStoragePoolPtr ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); if (!(def = virStoragePoolDefParseString(xml))) goto cleanup; @@ -4052,12 +4088,15 @@ cleanup: static virStoragePoolPtr testStoragePoolDefine(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = conn->privateData; virStoragePoolDefPtr def; virStoragePoolObjPtr pool = NULL; virStoragePoolPtr ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); if (!(def = virStoragePoolDefParseString(xml))) goto cleanup; @@ -4119,11 +4158,14 @@ cleanup: static int testStoragePoolBuild(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4187,11 +4229,14 @@ cleanup: static int testStoragePoolDelete(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4219,11 +4264,14 @@ cleanup: static int testStoragePoolRefresh(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4283,11 +4331,14 @@ cleanup: static char * testStoragePoolGetXMLDesc(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; char *ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4562,12 +4613,15 @@ testStorageVolumeLookupByPath(virConnectPtr conn, static virStorageVolPtr testStorageVolumeCreateXML(virStoragePoolPtr pool, const char *xmldesc, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; virStorageVolDefPtr privvol = NULL; virStorageVolPtr ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4643,12 +4697,15 @@ static virStorageVolPtr testStorageVolumeCreateXMLFrom(virStoragePoolPtr pool, const char *xmldesc, virStorageVolPtr clonevol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; virStorageVolDefPtr privvol = NULL, origvol = NULL; virStorageVolPtr ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4732,13 +4789,16 @@ cleanup: static int testStorageVolumeDelete(virStorageVolPtr vol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = vol->conn->privateData; virStoragePoolObjPtr privpool; virStorageVolDefPtr privvol; int i; int ret = -1; + virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, vol->pool); @@ -4857,12 +4917,15 @@ cleanup: static char * testStorageVolumeGetXMLDesc(virStorageVolPtr vol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = vol->conn->privateData; virStoragePoolObjPtr privpool; virStorageVolDefPtr privvol; char *ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, vol->pool); @@ -4942,7 +5005,10 @@ cleanup: /* Node device implementations */ static virDrvOpenStatus testDevMonOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -4958,12 +5024,14 @@ static int testDevMonClose(virConnectPtr conn) { static int testNodeNumOfDevices(virConnectPtr conn, const char *cap, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr driver = conn->privateData; int ndevs = 0; unsigned int i; + virCheckFlags(0, -1); + testDriverLock(driver); for (i = 0; i < driver->devs.count; i++) if ((cap == NULL) || @@ -4979,12 +5047,14 @@ testNodeListDevices(virConnectPtr conn, const char *cap, char **const names, int maxnames, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr driver = conn->privateData; int ndevs = 0; unsigned int i; + virCheckFlags(0, -1); + testDriverLock(driver); for (i = 0; i < driver->devs.count && ndevs < maxnames; i++) { virNodeDeviceObjLock(driver->devs.objs[i]); @@ -5035,12 +5105,14 @@ cleanup: static char * testNodeDeviceGetXMLDesc(virNodeDevicePtr dev, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr driver = dev->conn->privateData; virNodeDeviceObjPtr obj; char *ret = NULL; + virCheckFlags(0, NULL); + testDriverLock(driver); obj = virNodeDeviceFindByName(&driver->devs, dev->name); testDriverUnlock(driver); @@ -5166,7 +5238,7 @@ cleanup: static virNodeDevicePtr testNodeDeviceCreateXML(virConnectPtr conn, const char *xmlDesc, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr driver = conn->privateData; virNodeDeviceDefPtr def = NULL; @@ -5176,6 +5248,8 @@ testNodeDeviceCreateXML(virConnectPtr conn, virNodeDevicePtr dev = NULL; virNodeDevCapsDefPtr caps; + virCheckFlags(0, NULL); + testDriverLock(driver); def = virNodeDeviceDefParseString(xmlDesc, CREATE_DEVICE); @@ -5396,7 +5470,10 @@ static void testDomainEventQueue(testConnPtr driver, static virDrvOpenStatus testSecretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; @@ -5412,7 +5489,10 @@ static int testSecretClose(virConnectPtr conn) { static virDrvOpenStatus testNWFilterOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED; -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:58PM -0600, Eric Blake wrote:
* src/test/test_driver.c (testOpen, testDomainCoreDump) (testOpenNetwork, testNetworkGetXMLDesc, testOpenInterface) (testInterfaceChangeBegin, testInterfaceChangeCommit) (testInterfaceChangeRollback, testInterfaceGetXMLDesc) (testInterfaceDefineXML, testInterfaceCreate) (testInterfaceDestroy, testStorageOpen, testStoragePoolStart) (testStorageFindPoolSources, testStoragePoolCreate) (testStoragePoolDefine, testStoragePoolBuild) (testStoragePoolDelete, testStoragePoolRefresh) (testStoragePoolGetXMLDesc, testStorageVolumeCreateXML) (testStorageVolumeCreateXMLFrom, testStorageVolumeDelete) (testStorageVolumeGetXMLDesc, testDevMonOpen) (testNodeNumOfDevices, testNodeListDevices) (testNodeDeviceGetXMLDesc, testNodeDeviceCreateXML) (testSecretOpen, testNWFilterOpen): Reject unknown flags. --- src/test/test_driver.c | 144 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 112 insertions(+), 32 deletions(-)
diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 98daca8..8dac713 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1099,11 +1099,13 @@ static int testOpenFromFile(virConnectPtr conn,
static virDrvOpenStatus testOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { int ret; testConnPtr privconn;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (!conn->uri) return VIR_DRV_OPEN_DECLINED;
@@ -1904,7 +1906,7 @@ cleanup:
static int testDomainCoreDump(virDomainPtr domain, const char *to, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = domain->conn->privateData; int fd = -1; @@ -1912,6 +1914,8 @@ static int testDomainCoreDump(virDomainPtr domain, virDomainEventPtr event = NULL; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn); privdom = virDomainFindByName(&privconn->domains, domain->name); @@ -2843,7 +2847,10 @@ error:
static virDrvOpenStatus testOpenNetwork(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED;
@@ -3178,12 +3185,14 @@ cleanup: }
static char *testNetworkGetXMLDesc(virNetworkPtr network, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = network->conn->privateData; virNetworkObjPtr privnet; char *ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(privconn); privnet = virNetworkFindByName(&privconn->networks, network->name); @@ -3292,8 +3301,10 @@ cleanup:
static virDrvOpenStatus testOpenInterface(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED;
@@ -3476,11 +3487,13 @@ cleanup: }
static int testInterfaceChangeBegin(virConnectPtr conn, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = conn->privateData; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn); if (privconn->transaction_running) { testError(VIR_ERR_OPERATION_INVALID, @@ -3501,11 +3514,13 @@ cleanup: }
static int testInterfaceChangeCommit(virConnectPtr conn, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = conn->privateData; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn);
if (!privconn->transaction_running) { @@ -3526,11 +3541,13 @@ cleanup: }
static int testInterfaceChangeRollback(virConnectPtr conn, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = conn->privateData; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn);
if (!privconn->transaction_running) { @@ -3555,12 +3572,14 @@ cleanup: }
static char *testInterfaceGetXMLDesc(virInterfacePtr iface, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = iface->conn->privateData; virInterfaceObjPtr privinterface; char *ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(privconn); privinterface = virInterfaceFindByName(&privconn->ifaces, iface->name); @@ -3581,13 +3600,15 @@ cleanup:
static virInterfacePtr testInterfaceDefineXML(virConnectPtr conn, const char *xmlStr, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = conn->privateData; virInterfaceDefPtr def; virInterfaceObjPtr iface = NULL; virInterfacePtr ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(privconn); if ((def = virInterfaceDefParseString(xmlStr)) == NULL) goto cleanup; @@ -3631,12 +3652,14 @@ cleanup: }
static int testInterfaceCreate(virInterfacePtr iface, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = iface->conn->privateData; virInterfaceObjPtr privinterface; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn); privinterface = virInterfaceFindByName(&privconn->ifaces, iface->name); @@ -3662,12 +3685,14 @@ cleanup: }
static int testInterfaceDestroy(virInterfacePtr iface, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr privconn = iface->conn->privateData; virInterfaceObjPtr privinterface; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn); privinterface = virInterfaceFindByName(&privconn->ifaces, iface->name); @@ -3716,7 +3741,10 @@ static int testStoragePoolObjSetDefaults(virStoragePoolObjPtr pool) {
static virDrvOpenStatus testStorageOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED;
@@ -3921,11 +3949,14 @@ cleanup:
static int testStoragePoolStart(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -3955,12 +3986,14 @@ static char * testStorageFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED, const char *type, const char *srcSpec, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virStoragePoolSourcePtr source = NULL; int pool_type; char *ret = NULL;
+ virCheckFlags(0, NULL); + pool_type = virStoragePoolTypeFromString(type); if (!pool_type) { testError(VIR_ERR_INTERNAL_ERROR, @@ -4009,12 +4042,15 @@ cleanup: static virStoragePoolPtr testStoragePoolCreate(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = conn->privateData; virStoragePoolDefPtr def; virStoragePoolObjPtr pool = NULL; virStoragePoolPtr ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(privconn); if (!(def = virStoragePoolDefParseString(xml))) goto cleanup; @@ -4052,12 +4088,15 @@ cleanup: static virStoragePoolPtr testStoragePoolDefine(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = conn->privateData; virStoragePoolDefPtr def; virStoragePoolObjPtr pool = NULL; virStoragePoolPtr ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(privconn); if (!(def = virStoragePoolDefParseString(xml))) goto cleanup; @@ -4119,11 +4158,14 @@ cleanup:
static int testStoragePoolBuild(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4187,11 +4229,14 @@ cleanup:
static int testStoragePoolDelete(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4219,11 +4264,14 @@ cleanup:
static int testStoragePoolRefresh(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4283,11 +4331,14 @@ cleanup:
static char * testStoragePoolGetXMLDesc(virStoragePoolPtr pool, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; char *ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4562,12 +4613,15 @@ testStorageVolumeLookupByPath(virConnectPtr conn, static virStorageVolPtr testStorageVolumeCreateXML(virStoragePoolPtr pool, const char *xmldesc, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; virStorageVolDefPtr privvol = NULL; virStorageVolPtr ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4643,12 +4697,15 @@ static virStorageVolPtr testStorageVolumeCreateXMLFrom(virStoragePoolPtr pool, const char *xmldesc, virStorageVolPtr clonevol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = pool->conn->privateData; virStoragePoolObjPtr privpool; virStorageVolDefPtr privvol = NULL, origvol = NULL; virStorageVolPtr ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, pool->name); @@ -4732,13 +4789,16 @@ cleanup:
static int testStorageVolumeDelete(virStorageVolPtr vol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = vol->conn->privateData; virStoragePoolObjPtr privpool; virStorageVolDefPtr privvol; int i; int ret = -1;
+ virCheckFlags(0, -1); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, vol->pool); @@ -4857,12 +4917,15 @@ cleanup:
static char * testStorageVolumeGetXMLDesc(virStorageVolPtr vol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ testConnPtr privconn = vol->conn->privateData; virStoragePoolObjPtr privpool; virStorageVolDefPtr privvol; char *ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(privconn); privpool = virStoragePoolObjFindByName(&privconn->pools, vol->pool); @@ -4942,7 +5005,10 @@ cleanup: /* Node device implementations */ static virDrvOpenStatus testDevMonOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED;
@@ -4958,12 +5024,14 @@ static int testDevMonClose(virConnectPtr conn) { static int testNodeNumOfDevices(virConnectPtr conn, const char *cap, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr driver = conn->privateData; int ndevs = 0; unsigned int i;
+ virCheckFlags(0, -1); + testDriverLock(driver); for (i = 0; i < driver->devs.count; i++) if ((cap == NULL) || @@ -4979,12 +5047,14 @@ testNodeListDevices(virConnectPtr conn, const char *cap, char **const names, int maxnames, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr driver = conn->privateData; int ndevs = 0; unsigned int i;
+ virCheckFlags(0, -1); + testDriverLock(driver); for (i = 0; i < driver->devs.count && ndevs < maxnames; i++) { virNodeDeviceObjLock(driver->devs.objs[i]); @@ -5035,12 +5105,14 @@ cleanup:
static char * testNodeDeviceGetXMLDesc(virNodeDevicePtr dev, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr driver = dev->conn->privateData; virNodeDeviceObjPtr obj; char *ret = NULL;
+ virCheckFlags(0, NULL); + testDriverLock(driver); obj = virNodeDeviceFindByName(&driver->devs, dev->name); testDriverUnlock(driver); @@ -5166,7 +5238,7 @@ cleanup: static virNodeDevicePtr testNodeDeviceCreateXML(virConnectPtr conn, const char *xmlDesc, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { testConnPtr driver = conn->privateData; virNodeDeviceDefPtr def = NULL; @@ -5176,6 +5248,8 @@ testNodeDeviceCreateXML(virConnectPtr conn, virNodeDevicePtr dev = NULL; virNodeDevCapsDefPtr caps;
+ virCheckFlags(0, NULL); + testDriverLock(driver);
def = virNodeDeviceDefParseString(xmlDesc, CREATE_DEVICE); @@ -5396,7 +5470,10 @@ static void testDomainEventQueue(testConnPtr driver,
static virDrvOpenStatus testSecretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED;
@@ -5412,7 +5489,10 @@ static int testSecretClose(virConnectPtr conn) {
static virDrvOpenStatus testNWFilterOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "Test")) return VIR_DRV_OPEN_DECLINED;
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/uml/uml_driver.c (umlOpen, umlDomainGetXMLDesc) (umlDomainBlockPeek): Reject unknown flags. --- src/uml/uml_driver.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 6a396e4..22af8fb 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -946,7 +946,10 @@ static void umlShutdownVMDaemon(virConnectPtr conn ATTRIBUTE_UNUSED, static virDrvOpenStatus umlOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { if (uml_driver == NULL) return VIR_DRV_OPEN_DECLINED; @@ -1559,11 +1562,14 @@ cleanup: static char *umlDomainGetXMLDesc(virDomainPtr dom, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ struct uml_driver *driver = dom->conn->privateData; virDomainObjPtr vm; char *ret = NULL; + virCheckFlags(0, NULL); + umlDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); umlDriverUnlock(driver); @@ -2045,12 +2051,14 @@ umlDomainBlockPeek(virDomainPtr dom, const char *path, unsigned long long offset, size_t size, void *buffer, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct uml_driver *driver = dom->conn->privateData; virDomainObjPtr vm; int fd = -1, ret = -1, i; + virCheckFlags(0, -1); + umlDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); umlDriverUnlock(driver); -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:23:59PM -0600, Eric Blake wrote:
* src/uml/uml_driver.c (umlOpen, umlDomainGetXMLDesc) (umlDomainBlockPeek): Reject unknown flags. --- src/uml/uml_driver.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 6a396e4..22af8fb 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -946,7 +946,10 @@ static void umlShutdownVMDaemon(virConnectPtr conn ATTRIBUTE_UNUSED,
static virDrvOpenStatus umlOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { if (uml_driver == NULL) return VIR_DRV_OPEN_DECLINED; @@ -1559,11 +1562,14 @@ cleanup:
static char *umlDomainGetXMLDesc(virDomainPtr dom, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ struct uml_driver *driver = dom->conn->privateData; virDomainObjPtr vm; char *ret = NULL;
+ virCheckFlags(0, NULL); + umlDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); umlDriverUnlock(driver); @@ -2045,12 +2051,14 @@ umlDomainBlockPeek(virDomainPtr dom, const char *path, unsigned long long offset, size_t size, void *buffer, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct uml_driver *driver = dom->conn->privateData; virDomainObjPtr vm; int fd = -1, ret = -1, i;
+ virCheckFlags(0, -1); + umlDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); umlDriverUnlock(driver);
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/vbox/vbox_driver.c (vboxOpenDummy): Reject unknown flags. * src/vbox/vbox_tmpl.c (vboxOpen, vboxDomainReboot) (vboxNetworkOpen, vboxNetworkGetXMLDesc, vboxStorageOpen) (vboxStorageVolCreateXML, vboxStorageVolDelete) (vboxStorageVolGetXMLDesc, vboxDomainScreenshot): Likewise. --- src/vbox/vbox_driver.c | 5 ++++- src/vbox/vbox_tmpl.c | 44 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/vbox/vbox_driver.c b/src/vbox/vbox_driver.c index b20998a..3b2e95a 100644 --- a/src/vbox/vbox_driver.c +++ b/src/vbox/vbox_driver.c @@ -142,9 +142,12 @@ int vboxRegister(void) { static virDrvOpenStatus vboxOpenDummy(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ uid_t uid = getuid(); + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL || conn->uri->scheme == NULL || STRNEQ (conn->uri->scheme, "vbox") || diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 4a0858f..d6afa31 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -961,10 +961,13 @@ static void vboxUninitialize(vboxGlobalData *data) { static virDrvOpenStatus vboxOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ vboxGlobalData *data = NULL; uid_t uid = getuid(); + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { conn->uri = xmlParseURI(uid ? "vbox:///session" : "vbox:///system"); if (conn->uri == NULL) { @@ -1637,7 +1640,8 @@ cleanup: return ret; } -static int vboxDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) { +static int vboxDomainReboot(virDomainPtr dom, unsigned int flags) +{ VBOX_OBJECT_CHECK(dom->conn, int, -1); IMachine *machine = NULL; vboxIID iid = VBOX_IID_INITIALIZER; @@ -1646,6 +1650,8 @@ static int vboxDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSE PRBool isAccessible = PR_FALSE; nsresult rc; + virCheckFlags(0, -1); + vboxIIDFromUUID(&iid, dom->uuid); rc = VBOX_OBJECT_GET_MACHINE(iid.value, &machine); if (NS_FAILED(rc)) { @@ -6938,9 +6944,12 @@ static int vboxDomainEventDeregisterAny(virConnectPtr conn, */ static virDrvOpenStatus vboxNetworkOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ vboxGlobalData *data = conn->privateData; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "VBOX")) goto cleanup; @@ -7575,7 +7584,8 @@ static int vboxNetworkDestroy(virNetworkPtr network) { } static char *vboxNetworkGetXMLDesc(virNetworkPtr network, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ VBOX_OBJECT_HOST_CHECK(network->conn, char *, NULL); virNetworkDefPtr def = NULL; virNetworkIpDefPtr ipdef = NULL; @@ -7583,6 +7593,8 @@ static char *vboxNetworkGetXMLDesc(virNetworkPtr network, PRUnichar *networkInterfaceNameUtf16 = NULL; IHostNetworkInterface *networkInterface = NULL; + virCheckFlags(0, NULL); + if (VIR_ALLOC(def) < 0) { virReportOOMError(); goto cleanup; @@ -7750,9 +7762,12 @@ cleanup: static virDrvOpenStatus vboxStorageOpen (virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ vboxGlobalData *data = conn->privateData; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "VBOX")) goto cleanup; @@ -8098,7 +8113,8 @@ static virStorageVolPtr vboxStorageVolLookupByPath(virConnectPtr conn, const cha static virStorageVolPtr vboxStorageVolCreateXML(virStoragePoolPtr pool, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ VBOX_OBJECT_CHECK(pool->conn, virStorageVolPtr, NULL); virStorageVolDefPtr def = NULL; PRUnichar *hddFormatUtf16 = NULL; @@ -8106,6 +8122,8 @@ static virStorageVolPtr vboxStorageVolCreateXML(virStoragePoolPtr pool, virStoragePoolDef poolDef; nsresult rc; + virCheckFlags(0, NULL); + /* since there is currently one default pool now * and virStorageVolDefFormat() just checks it type * so just assign it for now, change the behaviour @@ -8191,7 +8209,8 @@ cleanup: } static int vboxStorageVolDelete(virStorageVolPtr vol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ VBOX_OBJECT_CHECK(vol->conn, int, -1); vboxIID hddIID = VBOX_IID_INITIALIZER; unsigned char uuid[VIR_UUID_BUFLEN]; @@ -8201,6 +8220,8 @@ static int vboxStorageVolDelete(virStorageVolPtr vol, int i = 0; int j = 0; + virCheckFlags(0, -1); + if (virUUIDParse(vol->key, uuid) < 0) { vboxError(VIR_ERR_INVALID_ARG, _("Could not parse UUID from '%s'"), vol->key); @@ -8424,7 +8445,8 @@ static int vboxStorageVolGetInfo(virStorageVolPtr vol, virStorageVolInfoPtr info return ret; } -static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags ATTRIBUTE_UNUSED) { +static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags) +{ VBOX_OBJECT_CHECK(vol->conn, char *, NULL); IHardDisk *hardDisk = NULL; unsigned char uuid[VIR_UUID_BUFLEN]; @@ -8434,6 +8456,8 @@ static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags A int defOk = 0; nsresult rc; + virCheckFlags(0, NULL); + memset(&pool, 0, sizeof(pool)); memset(&def, 0, sizeof(def)); @@ -8597,7 +8621,7 @@ static char * vboxDomainScreenshot(virDomainPtr dom, virStreamPtr st, unsigned int screen, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { VBOX_OBJECT_CHECK(dom->conn, char *, NULL); IConsole *console = NULL; @@ -8608,6 +8632,8 @@ vboxDomainScreenshot(virDomainPtr dom, int tmp_fd = -1; unsigned int max_screen; + virCheckFlags(0, NULL); + vboxIIDFromUUID(&iid, dom->uuid); rc = VBOX_OBJECT_GET_MACHINE(iid.value, &machine); if (NS_FAILED(rc)) { -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:24:00PM -0600, Eric Blake wrote:
* src/vbox/vbox_driver.c (vboxOpenDummy): Reject unknown flags. * src/vbox/vbox_tmpl.c (vboxOpen, vboxDomainReboot) (vboxNetworkOpen, vboxNetworkGetXMLDesc, vboxStorageOpen) (vboxStorageVolCreateXML, vboxStorageVolDelete) (vboxStorageVolGetXMLDesc, vboxDomainScreenshot): Likewise. --- src/vbox/vbox_driver.c | 5 ++++- src/vbox/vbox_tmpl.c | 44 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 39 insertions(+), 10 deletions(-)
diff --git a/src/vbox/vbox_driver.c b/src/vbox/vbox_driver.c index b20998a..3b2e95a 100644 --- a/src/vbox/vbox_driver.c +++ b/src/vbox/vbox_driver.c @@ -142,9 +142,12 @@ int vboxRegister(void) {
static virDrvOpenStatus vboxOpenDummy(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ uid_t uid = getuid();
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL || conn->uri->scheme == NULL || STRNEQ (conn->uri->scheme, "vbox") || diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 4a0858f..d6afa31 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -961,10 +961,13 @@ static void vboxUninitialize(vboxGlobalData *data) {
static virDrvOpenStatus vboxOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ vboxGlobalData *data = NULL; uid_t uid = getuid();
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { conn->uri = xmlParseURI(uid ? "vbox:///session" : "vbox:///system"); if (conn->uri == NULL) { @@ -1637,7 +1640,8 @@ cleanup: return ret; }
-static int vboxDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) { +static int vboxDomainReboot(virDomainPtr dom, unsigned int flags) +{ VBOX_OBJECT_CHECK(dom->conn, int, -1); IMachine *machine = NULL; vboxIID iid = VBOX_IID_INITIALIZER; @@ -1646,6 +1650,8 @@ static int vboxDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSE PRBool isAccessible = PR_FALSE; nsresult rc;
+ virCheckFlags(0, -1); + vboxIIDFromUUID(&iid, dom->uuid); rc = VBOX_OBJECT_GET_MACHINE(iid.value, &machine); if (NS_FAILED(rc)) { @@ -6938,9 +6944,12 @@ static int vboxDomainEventDeregisterAny(virConnectPtr conn, */ static virDrvOpenStatus vboxNetworkOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ vboxGlobalData *data = conn->privateData;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "VBOX")) goto cleanup;
@@ -7575,7 +7584,8 @@ static int vboxNetworkDestroy(virNetworkPtr network) { }
static char *vboxNetworkGetXMLDesc(virNetworkPtr network, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ VBOX_OBJECT_HOST_CHECK(network->conn, char *, NULL); virNetworkDefPtr def = NULL; virNetworkIpDefPtr ipdef = NULL; @@ -7583,6 +7593,8 @@ static char *vboxNetworkGetXMLDesc(virNetworkPtr network, PRUnichar *networkInterfaceNameUtf16 = NULL; IHostNetworkInterface *networkInterface = NULL;
+ virCheckFlags(0, NULL); + if (VIR_ALLOC(def) < 0) { virReportOOMError(); goto cleanup; @@ -7750,9 +7762,12 @@ cleanup:
static virDrvOpenStatus vboxStorageOpen (virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ vboxGlobalData *data = conn->privateData;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (STRNEQ(conn->driver->name, "VBOX")) goto cleanup;
@@ -8098,7 +8113,8 @@ static virStorageVolPtr vboxStorageVolLookupByPath(virConnectPtr conn, const cha
static virStorageVolPtr vboxStorageVolCreateXML(virStoragePoolPtr pool, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ VBOX_OBJECT_CHECK(pool->conn, virStorageVolPtr, NULL); virStorageVolDefPtr def = NULL; PRUnichar *hddFormatUtf16 = NULL; @@ -8106,6 +8122,8 @@ static virStorageVolPtr vboxStorageVolCreateXML(virStoragePoolPtr pool, virStoragePoolDef poolDef; nsresult rc;
+ virCheckFlags(0, NULL); + /* since there is currently one default pool now * and virStorageVolDefFormat() just checks it type * so just assign it for now, change the behaviour @@ -8191,7 +8209,8 @@ cleanup: }
static int vboxStorageVolDelete(virStorageVolPtr vol, - unsigned int flags ATTRIBUTE_UNUSED) { + unsigned int flags) +{ VBOX_OBJECT_CHECK(vol->conn, int, -1); vboxIID hddIID = VBOX_IID_INITIALIZER; unsigned char uuid[VIR_UUID_BUFLEN]; @@ -8201,6 +8220,8 @@ static int vboxStorageVolDelete(virStorageVolPtr vol, int i = 0; int j = 0;
+ virCheckFlags(0, -1); + if (virUUIDParse(vol->key, uuid) < 0) { vboxError(VIR_ERR_INVALID_ARG, _("Could not parse UUID from '%s'"), vol->key); @@ -8424,7 +8445,8 @@ static int vboxStorageVolGetInfo(virStorageVolPtr vol, virStorageVolInfoPtr info return ret; }
-static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags ATTRIBUTE_UNUSED) { +static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags) +{ VBOX_OBJECT_CHECK(vol->conn, char *, NULL); IHardDisk *hardDisk = NULL; unsigned char uuid[VIR_UUID_BUFLEN]; @@ -8434,6 +8456,8 @@ static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags A int defOk = 0; nsresult rc;
+ virCheckFlags(0, NULL); + memset(&pool, 0, sizeof(pool)); memset(&def, 0, sizeof(def));
@@ -8597,7 +8621,7 @@ static char * vboxDomainScreenshot(virDomainPtr dom, virStreamPtr st, unsigned int screen, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { VBOX_OBJECT_CHECK(dom->conn, char *, NULL); IConsole *console = NULL; @@ -8608,6 +8632,8 @@ vboxDomainScreenshot(virDomainPtr dom, int tmp_fd = -1; unsigned int max_screen;
+ virCheckFlags(0, NULL); + vboxIIDFromUUID(&iid, dom->uuid); rc = VBOX_OBJECT_GET_MACHINE(iid.value, &machine); if (NS_FAILED(rc)) {
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/vmware/vmware_driver.c (vmwareOpen, vmwareDomainReboot) (vmwareDomainCreateXML, vmwareDomainCreateWithFlags): Reject unknown flags. --- src/vmware/vmware_driver.c | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index 3f0cfae..11dc504 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -74,11 +74,13 @@ vmwareDataFreeFunc(void *data) static virDrvOpenStatus vmwareOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct vmware_driver *driver; char * vmrun = NULL; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { /* @TODO accept */ return VIR_DRV_OPEN_DECLINED; @@ -446,11 +448,10 @@ vmwareDomainResume(virDomainPtr dom) } static int -vmwareDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +vmwareDomainReboot(virDomainPtr dom, unsigned int flags) { struct vmware_driver *driver = dom->conn->privateData; const char * vmxPath = NULL; - virDomainObjPtr vm; const char *cmd[] = { VMRUN, "-T", PROGRAM_SENTINAL, @@ -458,6 +459,8 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) }; int ret = -1; + virCheckFlags(0, -1); + vmwareDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); vmwareDriverUnlock(driver); @@ -492,7 +495,7 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) static virDomainPtr vmwareDomainCreateXML(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct vmware_driver *driver = conn->privateData; virDomainDefPtr vmdef = NULL; @@ -503,6 +506,8 @@ vmwareDomainCreateXML(virConnectPtr conn, const char *xml, vmwareDomainPtr pDomain = NULL; virVMXContext ctx; + virCheckFlags(0, NULL); + ctx.formatFileName = vmwareCopyVMXFileName; vmwareDriverLock(driver); @@ -562,12 +567,14 @@ cleanup: static int vmwareDomainCreateWithFlags(virDomainPtr dom, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct vmware_driver *driver = dom->conn->privateData; virDomainObjPtr vm; int ret = -1; + virCheckFlags(0, -1); + vmwareDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); if (!vm) { -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:24:01PM -0600, Eric Blake wrote:
* src/vmware/vmware_driver.c (vmwareOpen, vmwareDomainReboot) (vmwareDomainCreateXML, vmwareDomainCreateWithFlags): Reject unknown flags. --- src/vmware/vmware_driver.c | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index 3f0cfae..11dc504 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -74,11 +74,13 @@ vmwareDataFreeFunc(void *data) static virDrvOpenStatus vmwareOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct vmware_driver *driver; char * vmrun = NULL;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL) { /* @TODO accept */ return VIR_DRV_OPEN_DECLINED; @@ -446,11 +448,10 @@ vmwareDomainResume(virDomainPtr dom) }
static int -vmwareDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +vmwareDomainReboot(virDomainPtr dom, unsigned int flags) { struct vmware_driver *driver = dom->conn->privateData; const char * vmxPath = NULL; - virDomainObjPtr vm; const char *cmd[] = { VMRUN, "-T", PROGRAM_SENTINAL, @@ -458,6 +459,8 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) }; int ret = -1;
+ virCheckFlags(0, -1); + vmwareDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); vmwareDriverUnlock(driver); @@ -492,7 +495,7 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED)
static virDomainPtr vmwareDomainCreateXML(virConnectPtr conn, const char *xml, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct vmware_driver *driver = conn->privateData; virDomainDefPtr vmdef = NULL; @@ -503,6 +506,8 @@ vmwareDomainCreateXML(virConnectPtr conn, const char *xml, vmwareDomainPtr pDomain = NULL; virVMXContext ctx;
+ virCheckFlags(0, NULL); + ctx.formatFileName = vmwareCopyVMXFileName;
vmwareDriverLock(driver); @@ -562,12 +567,14 @@ cleanup:
static int vmwareDomainCreateWithFlags(virDomainPtr dom, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { struct vmware_driver *driver = dom->conn->privateData; virDomainObjPtr vm; int ret = -1;
+ virCheckFlags(0, -1); + vmwareDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); if (!vm) {
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/xen/xen_driver.c (xenUnifiedDomainXMLFromNative) (xenUnifiedDomainXMLToNative, xenUnifiedDomainBlockPeek): Reject unknown flags. * src/xen/xen_hypervisor.c (xenHypervisorOpen) (xenHypervisorGetDomainState): Likewise. * src/xen/xen_inotify.c (xenInotifyOpen): Likewise. * src/xen/xend_internal.c (xenDaemonOpen, xenDaemonDomainReboot) (xenDaemonDomainCoreDump, xenDaemonDomainGetState) (xenDaemonDomainMigratePrepare): Likewise. * src/xen/xm_internal.c (xenXMOpen, xenXMDomainGetState): Likewise. * src/xen/xs_internal.c (xenStoreOpen, xenStoreDomainGetState) (xenStoreDomainReboot): Likewise. --- src/xen/xen_driver.c | 12 +++++++++--- src/xen/xen_hypervisor.c | 8 ++++++-- src/xen/xen_inotify.c | 4 +++- src/xen/xend_internal.c | 20 +++++++++++++++----- src/xen/xm_internal.c | 8 ++++++-- src/xen/xs_internal.c | 12 +++++++++--- 6 files changed, 48 insertions(+), 16 deletions(-) diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 0f66395..2cdb6c4 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1261,7 +1261,7 @@ static char * xenUnifiedDomainXMLFromNative(virConnectPtr conn, const char *format, const char *config, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDomainDefPtr def = NULL; char *ret = NULL; @@ -1271,6 +1271,8 @@ xenUnifiedDomainXMLFromNative(virConnectPtr conn, int vncport; GET_PRIVATE(conn); + virCheckFlags(0, NULL); + if (STRNEQ(format, XEN_CONFIG_FORMAT_XM) && STRNEQ(format, XEN_CONFIG_FORMAT_SEXPR)) { xenUnifiedError(VIR_ERR_INVALID_ARG, @@ -1311,13 +1313,15 @@ static char * xenUnifiedDomainXMLToNative(virConnectPtr conn, const char *format, const char *xmlData, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDomainDefPtr def = NULL; char *ret = NULL; virConfPtr conf = NULL; GET_PRIVATE(conn); + virCheckFlags(0, NULL); + if (STRNEQ(format, XEN_CONFIG_FORMAT_XM) && STRNEQ(format, XEN_CONFIG_FORMAT_SEXPR)) { xenUnifiedError(VIR_ERR_INVALID_ARG, @@ -1766,11 +1770,13 @@ xenUnifiedDomainInterfaceStats (virDomainPtr dom, const char *path, static int xenUnifiedDomainBlockPeek (virDomainPtr dom, const char *path, unsigned long long offset, size_t size, - void *buffer, unsigned int flags ATTRIBUTE_UNUSED) + void *buffer, unsigned int flags) { int r; GET_PRIVATE (dom->conn); + virCheckFlags(0, -1); + if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) { r = xenDaemonDomainBlockPeek (dom, path, offset, size, buffer); if (r != -2) return r; diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c index a92b743..7636bea 100644 --- a/src/xen/xen_hypervisor.c +++ b/src/xen/xen_hypervisor.c @@ -2201,11 +2201,13 @@ xenHypervisorInit(void) virDrvOpenStatus xenHypervisorOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { int ret; xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (initialized == 0) if (xenHypervisorInit() == -1) return -1; @@ -3272,11 +3274,13 @@ int xenHypervisorGetDomainState(virDomainPtr domain, int *state, int *reason, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { xenUnifiedPrivatePtr priv = domain->conn->privateData; virDomainInfo info; + virCheckFlags(0, -1); + if (domain->conn == NULL) return -1; diff --git a/src/xen/xen_inotify.c b/src/xen/xen_inotify.c index 2d7207c..0b6883f 100644 --- a/src/xen/xen_inotify.c +++ b/src/xen/xen_inotify.c @@ -383,13 +383,15 @@ cleanup: virDrvOpenStatus xenInotifyOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { DIR *dh; struct dirent *ent; char *path; xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (priv->configDir) { priv->useXenConfigCache = 1; } else { diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c index 6c2f051..8a4c6a9 100644 --- a/src/xen/xend_internal.c +++ b/src/xen/xend_internal.c @@ -1323,11 +1323,13 @@ error: virDrvOpenStatus xenDaemonOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { char *port = NULL; int ret = VIR_DRV_OPEN_ERROR; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + /* Switch on the scheme, which we expect to be NULL (file), * "http" or "xen". */ @@ -1488,8 +1490,10 @@ xenDaemonDomainShutdown(virDomainPtr domain) * Returns 0 in case of success, -1 (with errno) in case of error. */ int -xenDaemonDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED) +xenDaemonDomainReboot(virDomainPtr domain, unsigned int flags) { + virCheckFlags(0, -1); + if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); @@ -1629,8 +1633,10 @@ xenDaemonDomainSave(virDomainPtr domain, const char *filename) */ static int xenDaemonDomainCoreDump(virDomainPtr domain, const char *filename, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, -1); + if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (filename == NULL)) { virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); @@ -1921,11 +1927,13 @@ int xenDaemonDomainGetState(virDomainPtr domain, int *state, int *reason, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { xenUnifiedPrivatePtr priv = domain->conn->privateData; struct sexpr *root; + virCheckFlags(0, -1); + if (domain->id < 0 && priv->xendConfigVersion < 3) return -1; @@ -3151,10 +3159,12 @@ xenDaemonDomainMigratePrepare (virConnectPtr dconn, int *cookielen ATTRIBUTE_UNUSED, const char *uri_in, char **uri_out, - unsigned long flags ATTRIBUTE_UNUSED, + unsigned long flags, const char *dname ATTRIBUTE_UNUSED, unsigned long resource ATTRIBUTE_UNUSED) { + virCheckFlags(0, -1); + /* If uri_in is NULL, get the current hostname as a best guess * of how the source host should connect to us. Note that caller * deallocates this string. diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c index 01b9c4e..c985044 100644 --- a/src/xen/xm_internal.c +++ b/src/xen/xm_internal.c @@ -442,10 +442,12 @@ int xenXMConfigCacheRefresh (virConnectPtr conn) { virDrvOpenStatus xenXMOpen (virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { xenUnifiedPrivatePtr priv = conn->privateData; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + priv->configDir = XM_CONFIG_DIR; priv->configCache = virHashCreate(50, xenXMConfigFree); @@ -485,8 +487,10 @@ int xenXMDomainGetState(virDomainPtr domain, int *state, int *reason, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, -1); + if (domain->id != -1) return -1; diff --git a/src/xen/xs_internal.c b/src/xen/xs_internal.c index 48e450a..53d1e45 100644 --- a/src/xen/xs_internal.c +++ b/src/xen/xs_internal.c @@ -267,10 +267,12 @@ virDomainGetVMInfo(virDomainPtr domain, const char *vm, const char *name) virDrvOpenStatus xenStoreOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (flags & VIR_CONNECT_RO) priv->xshandle = xs_daemon_open_readonly(); else @@ -461,10 +463,12 @@ int xenStoreDomainGetState(virDomainPtr domain, int *state, int *reason, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { char *running; + virCheckFlags(0, -1); + if (domain->id == -1) return -1; @@ -778,11 +782,13 @@ xenStoreDomainShutdown(virDomainPtr domain) * Returns 0 in case of success, -1 in case of error. */ int -xenStoreDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED) +xenStoreDomainReboot(virDomainPtr domain, unsigned int flags) { int ret; xenUnifiedPrivatePtr priv; + virCheckFlags(0, -1); + if ((domain == NULL) || (domain->conn == NULL)) { virXenStoreError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:24:02PM -0600, Eric Blake wrote:
* src/xen/xen_driver.c (xenUnifiedDomainXMLFromNative) (xenUnifiedDomainXMLToNative, xenUnifiedDomainBlockPeek): Reject unknown flags. * src/xen/xen_hypervisor.c (xenHypervisorOpen) (xenHypervisorGetDomainState): Likewise. * src/xen/xen_inotify.c (xenInotifyOpen): Likewise. * src/xen/xend_internal.c (xenDaemonOpen, xenDaemonDomainReboot) (xenDaemonDomainCoreDump, xenDaemonDomainGetState) (xenDaemonDomainMigratePrepare): Likewise. * src/xen/xm_internal.c (xenXMOpen, xenXMDomainGetState): Likewise. * src/xen/xs_internal.c (xenStoreOpen, xenStoreDomainGetState) (xenStoreDomainReboot): Likewise. --- src/xen/xen_driver.c | 12 +++++++++--- src/xen/xen_hypervisor.c | 8 ++++++-- src/xen/xen_inotify.c | 4 +++- src/xen/xend_internal.c | 20 +++++++++++++++----- src/xen/xm_internal.c | 8 ++++++-- src/xen/xs_internal.c | 12 +++++++++--- 6 files changed, 48 insertions(+), 16 deletions(-)
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 0f66395..2cdb6c4 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1261,7 +1261,7 @@ static char * xenUnifiedDomainXMLFromNative(virConnectPtr conn, const char *format, const char *config, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDomainDefPtr def = NULL; char *ret = NULL; @@ -1271,6 +1271,8 @@ xenUnifiedDomainXMLFromNative(virConnectPtr conn, int vncport; GET_PRIVATE(conn);
+ virCheckFlags(0, NULL); + if (STRNEQ(format, XEN_CONFIG_FORMAT_XM) && STRNEQ(format, XEN_CONFIG_FORMAT_SEXPR)) { xenUnifiedError(VIR_ERR_INVALID_ARG, @@ -1311,13 +1313,15 @@ static char * xenUnifiedDomainXMLToNative(virConnectPtr conn, const char *format, const char *xmlData, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { virDomainDefPtr def = NULL; char *ret = NULL; virConfPtr conf = NULL; GET_PRIVATE(conn);
+ virCheckFlags(0, NULL); + if (STRNEQ(format, XEN_CONFIG_FORMAT_XM) && STRNEQ(format, XEN_CONFIG_FORMAT_SEXPR)) { xenUnifiedError(VIR_ERR_INVALID_ARG, @@ -1766,11 +1770,13 @@ xenUnifiedDomainInterfaceStats (virDomainPtr dom, const char *path, static int xenUnifiedDomainBlockPeek (virDomainPtr dom, const char *path, unsigned long long offset, size_t size, - void *buffer, unsigned int flags ATTRIBUTE_UNUSED) + void *buffer, unsigned int flags) { int r; GET_PRIVATE (dom->conn);
+ virCheckFlags(0, -1); + if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) { r = xenDaemonDomainBlockPeek (dom, path, offset, size, buffer); if (r != -2) return r; diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c index a92b743..7636bea 100644 --- a/src/xen/xen_hypervisor.c +++ b/src/xen/xen_hypervisor.c @@ -2201,11 +2201,13 @@ xenHypervisorInit(void) virDrvOpenStatus xenHypervisorOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { int ret; xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (initialized == 0) if (xenHypervisorInit() == -1) return -1; @@ -3272,11 +3274,13 @@ int xenHypervisorGetDomainState(virDomainPtr domain, int *state, int *reason, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { xenUnifiedPrivatePtr priv = domain->conn->privateData; virDomainInfo info;
+ virCheckFlags(0, -1); + if (domain->conn == NULL) return -1;
diff --git a/src/xen/xen_inotify.c b/src/xen/xen_inotify.c index 2d7207c..0b6883f 100644 --- a/src/xen/xen_inotify.c +++ b/src/xen/xen_inotify.c @@ -383,13 +383,15 @@ cleanup: virDrvOpenStatus xenInotifyOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { DIR *dh; struct dirent *ent; char *path; xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (priv->configDir) { priv->useXenConfigCache = 1; } else { diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c index 6c2f051..8a4c6a9 100644 --- a/src/xen/xend_internal.c +++ b/src/xen/xend_internal.c @@ -1323,11 +1323,13 @@ error: virDrvOpenStatus xenDaemonOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { char *port = NULL; int ret = VIR_DRV_OPEN_ERROR;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + /* Switch on the scheme, which we expect to be NULL (file), * "http" or "xen". */ @@ -1488,8 +1490,10 @@ xenDaemonDomainShutdown(virDomainPtr domain) * Returns 0 in case of success, -1 (with errno) in case of error. */ int -xenDaemonDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED) +xenDaemonDomainReboot(virDomainPtr domain, unsigned int flags) { + virCheckFlags(0, -1); + if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); @@ -1629,8 +1633,10 @@ xenDaemonDomainSave(virDomainPtr domain, const char *filename) */ static int xenDaemonDomainCoreDump(virDomainPtr domain, const char *filename, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, -1); + if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (filename == NULL)) { virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); @@ -1921,11 +1927,13 @@ int xenDaemonDomainGetState(virDomainPtr domain, int *state, int *reason, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { xenUnifiedPrivatePtr priv = domain->conn->privateData; struct sexpr *root;
+ virCheckFlags(0, -1); + if (domain->id < 0 && priv->xendConfigVersion < 3) return -1;
@@ -3151,10 +3159,12 @@ xenDaemonDomainMigratePrepare (virConnectPtr dconn, int *cookielen ATTRIBUTE_UNUSED, const char *uri_in, char **uri_out, - unsigned long flags ATTRIBUTE_UNUSED, + unsigned long flags, const char *dname ATTRIBUTE_UNUSED, unsigned long resource ATTRIBUTE_UNUSED) { + virCheckFlags(0, -1); + /* If uri_in is NULL, get the current hostname as a best guess * of how the source host should connect to us. Note that caller * deallocates this string. diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c index 01b9c4e..c985044 100644 --- a/src/xen/xm_internal.c +++ b/src/xen/xm_internal.c @@ -442,10 +442,12 @@ int xenXMConfigCacheRefresh (virConnectPtr conn) { virDrvOpenStatus xenXMOpen (virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { xenUnifiedPrivatePtr priv = conn->privateData;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + priv->configDir = XM_CONFIG_DIR;
priv->configCache = virHashCreate(50, xenXMConfigFree); @@ -485,8 +487,10 @@ int xenXMDomainGetState(virDomainPtr domain, int *state, int *reason, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { + virCheckFlags(0, -1); + if (domain->id != -1) return -1;
diff --git a/src/xen/xs_internal.c b/src/xen/xs_internal.c index 48e450a..53d1e45 100644 --- a/src/xen/xs_internal.c +++ b/src/xen/xs_internal.c @@ -267,10 +267,12 @@ virDomainGetVMInfo(virDomainPtr domain, const char *vm, const char *name) virDrvOpenStatus xenStoreOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (flags & VIR_CONNECT_RO) priv->xshandle = xs_daemon_open_readonly(); else @@ -461,10 +463,12 @@ int xenStoreDomainGetState(virDomainPtr domain, int *state, int *reason, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { char *running;
+ virCheckFlags(0, -1); + if (domain->id == -1) return -1;
@@ -778,11 +782,13 @@ xenStoreDomainShutdown(virDomainPtr domain) * Returns 0 in case of success, -1 in case of error. */ int -xenStoreDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED) +xenStoreDomainReboot(virDomainPtr domain, unsigned int flags) { int ret; xenUnifiedPrivatePtr priv;
+ virCheckFlags(0, -1); + if ((domain == NULL) || (domain->conn == NULL)) { virXenStoreError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1);
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

* src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot) (xenapiDomainGetXMLDesc): Reject unknown flags. --- src/xenapi/xenapi_driver.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c index 1c06f75..16f9f78 100644 --- a/src/xenapi/xenapi_driver.c +++ b/src/xenapi/xenapi_driver.c @@ -92,12 +92,14 @@ getCapsObject (void) */ static virDrvOpenStatus xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { char *username = NULL; char *password = NULL; struct _xenapiPrivate *privP = NULL; + virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL || conn->uri->scheme == NULL || STRCASENEQ(conn->uri->scheme, "XenAPI")) { return VIR_DRV_OPEN_DECLINED; @@ -802,12 +804,15 @@ xenapiDomainShutdown (virDomainPtr dom) * Returns 0 on success or -1 in case of error */ static int -xenapiDomainReboot (virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +xenapiDomainReboot (virDomainPtr dom, unsigned int flags) { /* vm.clean_reboot */ xen_vm vm; struct xen_vm_set *vms; xen_session *session = ((struct _xenapiPrivate *)(dom->conn->privateData))->session; + + virCheckFlags(0, -1); + if (xen_vm_get_by_name_label(session, &vms, dom->name) && vms->size > 0) { if (vms->size != 1) { xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR, @@ -1295,7 +1300,7 @@ xenapiDomainGetMaxVcpus (virDomainPtr dom) * Returns XML string of the domain configuration on success or -1 in case of error */ static char * -xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { xen_vm vm=NULL; xen_vm_set *vms; @@ -1309,6 +1314,8 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) struct xen_vif_set *vif_set = NULL; char *xml; + virCheckFlags(0, NULL); + if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL; if (vms->size != 1) { xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR, -- 1.7.4.4

On Wed, Jul 06, 2011 at 05:24:03PM -0600, Eric Blake wrote:
* src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot) (xenapiDomainGetXMLDesc): Reject unknown flags. --- src/xenapi/xenapi_driver.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c index 1c06f75..16f9f78 100644 --- a/src/xenapi/xenapi_driver.c +++ b/src/xenapi/xenapi_driver.c @@ -92,12 +92,14 @@ getCapsObject (void) */ static virDrvOpenStatus xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth, - unsigned int flags ATTRIBUTE_UNUSED) + unsigned int flags) { char *username = NULL; char *password = NULL; struct _xenapiPrivate *privP = NULL;
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL || conn->uri->scheme == NULL || STRCASENEQ(conn->uri->scheme, "XenAPI")) { return VIR_DRV_OPEN_DECLINED; @@ -802,12 +804,15 @@ xenapiDomainShutdown (virDomainPtr dom) * Returns 0 on success or -1 in case of error */ static int -xenapiDomainReboot (virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +xenapiDomainReboot (virDomainPtr dom, unsigned int flags) { /* vm.clean_reboot */ xen_vm vm; struct xen_vm_set *vms; xen_session *session = ((struct _xenapiPrivate *)(dom->conn->privateData))->session; + + virCheckFlags(0, -1); + if (xen_vm_get_by_name_label(session, &vms, dom->name) && vms->size > 0) { if (vms->size != 1) { xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR, @@ -1295,7 +1300,7 @@ xenapiDomainGetMaxVcpus (virDomainPtr dom) * Returns XML string of the domain configuration on success or -1 in case of error */ static char * -xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { xen_vm vm=NULL; xen_vm_set *vms; @@ -1309,6 +1314,8 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) struct xen_vif_set *vif_set = NULL; char *xml;
+ virCheckFlags(0, NULL); + if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL; if (vms->size != 1) { xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On 07/06/2011 05:23 PM, Eric Blake wrote:
Inspired in part by Laine's recent cleanup of qemuDomainGetXMLDesc, in part by my desire to add a new flag to virDomainCoreDump and test that older clients reject that flag, and in part by an OCD desire for uniformity :), I'm proposing this giant patch series.
And yes, I'm working on a patch 21/20 to cfg.mk to enforce this style in the future, but ran out of time today. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

2011/7/7 Eric Blake <eblake@redhat.com>:
On 07/06/2011 05:23 PM, Eric Blake wrote:
Inspired in part by Laine's recent cleanup of qemuDomainGetXMLDesc, in part by my desire to add a new flag to virDomainCoreDump and test that older clients reject that flag, and in part by an OCD desire for uniformity :), I'm proposing this giant patch series.
And yes, I'm working on a patch 21/20 to cfg.mk to enforce this style in the future, but ran out of time today.
I'm afraid that you're going to break stuff with this series. For example the patch for the ESX driver breaks opening a read-only connection as you made esxOpen reject VIR_CONNECT_RO. Yes, the ESX driver has no means to support a truly read-only connection as you always need to provide credentials, so one can consider this a bugfix or a regression depending on the point-of-view. -- Matthias Bolte http://photron.blogspot.com

On 07/07/2011 12:09 AM, Matthias Bolte wrote:
2011/7/7 Eric Blake <eblake@redhat.com>:
On 07/06/2011 05:23 PM, Eric Blake wrote:
Inspired in part by Laine's recent cleanup of qemuDomainGetXMLDesc, in part by my desire to add a new flag to virDomainCoreDump and test that older clients reject that flag, and in part by an OCD desire for uniformity :), I'm proposing this giant patch series.
And yes, I'm working on a patch 21/20 to cfg.mk to enforce this style in the future, but ran out of time today.
I'm afraid that you're going to break stuff with this series. For example the patch for the ESX driver breaks opening a read-only connection as you made esxOpen reject VIR_CONNECT_RO.
Hmm, are we really passing VIR_CONNECT_RO as a flags argument to all the driver instantiations? If so, then I have quite a few patches to amend, since it would not be just ESX rejecting a read-only driver instantiation. I'll hold off on pushing anything that added a virCheckFlags(0, VIR_DRV_OPEN_ERROR) until after I've done some more debugging (which is the bulk of my series)...
Yes, the ESX driver has no means to support a truly read-only connection as you always need to provide credentials, so one can consider this a bugfix or a regression depending on the point-of-view.
I'm 50-50 on whether this really is a bug-fix, whether it means we should allow (and otherwise ignore) the flag, as in: virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR); Anyone else with an opinion? -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

On 07/07/2011 12:30 PM, Eric Blake wrote:
Yes, the ESX driver has no means to support a truly read-only connection as you always need to provide credentials, so one can consider this a bugfix or a regression depending on the point-of-view.
I'm 50-50 on whether this really is a bug-fix, whether it means we should allow (and otherwise ignore) the flag, as in:
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
Anyone else with an opinion?
At this point, I'm making the change to allow (but otherwise ignore) VIR_CONNECT_RO for the flags cleanup patch. That way, there are no semantic changes. Beyond that, if we decide that a particular driver needs to pay attention to a flag, then we can later make a followup patch that restricts the flag for just that driver. Remember, read-only connections have already filtered out API calls from ever reaching driver callbacks in the first place. So, while it is conceivable that some drivers may need to do something different to connect to their hypervisor on a read-only connection, it appears that most (all?) drivers are just fine ignoring that piece of information from the connection (they behave the same whether read-only or read-write, for the callbacks that can actually be triggered on a read-only connection). -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
participants (4)
-
Daniel P. Berrange
-
Daniel Veillard
-
Eric Blake
-
Matthias Bolte