libvirt/daemon
Eric Blake 33ba6e6881 libvirt: do not mix internal flags into public API
There were two API in driver.c that were silently masking flags
bits prior to calling out to the drivers, and several others
that were explicitly masking flags bits.  This is not
forward-compatible - if we ever have that many flags in the
future, then talking to an old server that masks out the
flags would be indistinguishable from talking to a new server
that can honor the flag.  In general, libvirt.c should forward
_all_ flags on to drivers, and only the drivers should reject
unknown flags.

In the case of virDrvSecretGetValue, the solution is to separate
the internal driver callback function to have two parameters
instead of one, with only one parameter affected by the public
API.  In the case of virDomainGetXMLDesc, it turns out that
no one was ever mixing VIR_DOMAIN_XML_INTERNAL_STATUS with
the dumpxml path in the first place; that internal flag was
only used in saving and restoring state files, which happened
to be in functions internal to a single file, so there is no
mixing of the internal flag with a public flags argument.
Additionally, virDomainMemoryStats passed a flags argument
over RPC, but not to the driver.

* src/driver.h (VIR_DOMAIN_XML_FLAGS_MASK)
(VIR_SECRET_GET_VALUE_FLAGS_MASK): Delete.
(virDrvSecretGetValue): Separate out internal flags.
(virDrvDomainMemoryStats): Provide missing flags argument.
* src/driver.c (verify): Drop unused check.
* src/conf/domain_conf.h (virDomainObjParseFile): Delete
declaration.
(virDomainXMLInternalFlags): Move...
* src/conf/domain_conf.c: ...here.  Delete redundant include.
(virDomainObjParseFile): Make static.
* src/libvirt.c (virDomainGetXMLDesc, virSecretGetValue): Update
clients.
(virDomainMemoryPeek, virInterfaceGetXMLDesc)
(virDomainMemoryStats, virDomainBlockPeek, virNetworkGetXMLDesc)
(virStoragePoolGetXMLDesc, virStorageVolGetXMLDesc)
(virNodeNumOfDevices, virNodeListDevices, virNWFilterGetXMLDesc):
Don't mask unknown flags.
* src/interface/netcf_driver.c (interfaceGetXMLDesc): Reject
unknown flags.
* src/secret/secret_driver.c (secretGetValue): Update clients.
* src/remote/remote_driver.c (remoteSecretGetValue)
(remoteDomainMemoryStats): Likewise.
* src/qemu/qemu_process.c (qemuProcessGetVolumeQcowPassphrase):
Likewise.
* src/qemu/qemu_driver.c (qemudDomainMemoryStats): Likewise.
* daemon/remote.c (remoteDispatchDomainMemoryStats): Likewise.
2011-07-18 13:50:51 -06:00
..
.gitignore build: don't require pod2man for tarball builds 2011-02-21 09:27:05 -07:00
libvirtd.aug Basic framework for auditing integration 2010-10-19 17:31:31 +01:00
libvirtd.c Fix build when using polkit0 2011-07-12 08:44:55 -06:00
libvirtd.conf Allow to dynamically set the size of the debug buffer 2011-03-15 15:13:21 +08:00
libvirtd.h Remove code no longer used after commit df0b57a9 2011-07-11 14:38:03 -06:00
libvirtd.init.in daemon: Export SDL audio environment variables 2010-05-21 12:48:34 -04:00
libvirtd.logrotate.in Add logrotate support for libvirtd.log 2011-03-04 22:43:55 +08:00
libvirtd.lxc.logrotate.in Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
libvirtd.pod.in docs: removed outdated reference to virt-mem 2010-11-23 01:11:10 +11:00
libvirtd.policy-0 Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.policy-1 Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.qemu.logrotate.in Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
libvirtd.sasl Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.stp Include socket address in client probe data 2010-10-22 12:00:45 +01:00
libvirtd.sysconf daemon: sysconf: Update comment about VNC audio 2010-05-26 10:51:36 -04:00
libvirtd.uml.logrotate.in Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
libvirtd.upstart Experimental libvirtd upstart job 2011-04-18 11:38:30 +02:00
Makefile.am Convert libvirtd over to the new RPC handling APIs 2011-06-28 17:33:19 +01:00
probes.d Include socket address in client probe data 2010-10-22 12:00:45 +01:00
remote.c libvirt: do not mix internal flags into public API 2011-07-18 13:50:51 -06:00
remote.h Remove unused virNetServerProgramErrorHander typedef 2011-07-13 11:47:01 +01:00
stream.c Fix sending of reply to final RPC message 2011-07-08 16:19:57 +01:00
stream.h Convert libvirtd over to the new RPC handling APIs 2011-06-28 17:33:19 +01:00
test_libvirtd.aug qemu: fix augeas support for vnc_auto_unix_socket 2011-01-28 15:28:30 -07:00
THREADS.txt maint: use consistent file name for threading notes 2011-05-31 13:54:45 -06:00