提交 4ba3faac 编写于 作者: E Eric Blake

xenapi: reject unknown flags

* src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot):
Reject unknown flags.
(xenapiDomainGetXMLDesc): Likewise, and pass known flags through
to XML generation.
上级 8cf1b7fc
...@@ -92,12 +92,14 @@ getCapsObject (void) ...@@ -92,12 +92,14 @@ getCapsObject (void)
*/ */
static virDrvOpenStatus static virDrvOpenStatus
xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth, xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth,
unsigned int flags ATTRIBUTE_UNUSED) unsigned int flags)
{ {
char *username = NULL; char *username = NULL;
char *password = NULL; char *password = NULL;
struct _xenapiPrivate *privP = NULL; struct _xenapiPrivate *privP = NULL;
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
if (conn->uri == NULL || conn->uri->scheme == NULL || if (conn->uri == NULL || conn->uri->scheme == NULL ||
STRCASENEQ(conn->uri->scheme, "XenAPI")) { STRCASENEQ(conn->uri->scheme, "XenAPI")) {
return VIR_DRV_OPEN_DECLINED; return VIR_DRV_OPEN_DECLINED;
...@@ -804,12 +806,15 @@ xenapiDomainShutdown (virDomainPtr dom) ...@@ -804,12 +806,15 @@ xenapiDomainShutdown (virDomainPtr dom)
* Returns 0 on success or -1 in case of error * Returns 0 on success or -1 in case of error
*/ */
static int static int
xenapiDomainReboot (virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) xenapiDomainReboot (virDomainPtr dom, unsigned int flags)
{ {
/* vm.clean_reboot */ /* vm.clean_reboot */
xen_vm vm; xen_vm vm;
struct xen_vm_set *vms; struct xen_vm_set *vms;
xen_session *session = ((struct _xenapiPrivate *)(dom->conn->privateData))->session; 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 (xen_vm_get_by_name_label(session, &vms, dom->name) && vms->size > 0) {
if (vms->size != 1) { if (vms->size != 1) {
xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR, xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
...@@ -1297,7 +1302,7 @@ xenapiDomainGetMaxVcpus (virDomainPtr dom) ...@@ -1297,7 +1302,7 @@ xenapiDomainGetMaxVcpus (virDomainPtr dom)
* Returns XML string of the domain configuration on success or -1 in case of error * Returns XML string of the domain configuration on success or -1 in case of error
*/ */
static char * static char *
xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
{ {
xen_vm vm=NULL; xen_vm vm=NULL;
xen_vm_set *vms; xen_vm_set *vms;
...@@ -1311,6 +1316,10 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) ...@@ -1311,6 +1316,10 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED)
struct xen_vif_set *vif_set = NULL; struct xen_vif_set *vif_set = NULL;
char *xml; char *xml;
virCheckFlags(VIR_DOMAIN_XML_SECURE |
VIR_DOMAIN_XML_INACTIVE |
VIR_DOMAIN_XML_UPDATE_CPU, NULL);
if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL; if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL;
if (vms->size != 1) { if (vms->size != 1) {
xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR, xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
...@@ -1476,7 +1485,7 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) ...@@ -1476,7 +1485,7 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED)
xen_vif_set_free(vif_set); xen_vif_set_free(vif_set);
} }
if (vms) xen_vm_set_free(vms); if (vms) xen_vm_set_free(vms);
xml = virDomainDefFormat(defPtr, 0); xml = virDomainDefFormat(defPtr, flags);
virDomainDefFree(defPtr); virDomainDefFree(defPtr);
return xml; return xml;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册