]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
esx: don't ignore failure on close
authorEric Blake <eblake@redhat.com>
Wed, 3 Mar 2010 10:22:46 +0000 (11:22 +0100)
committerDaniel Veillard <veillard@redhat.com>
Wed, 3 Mar 2010 10:22:46 +0000 (11:22 +0100)
Another warning caught by coverity.  Continue to perform best-effort
closing and resource release, but warn the caller about the failure.

* src/esx/esx_driver.c (esxClose): Return an error on failure to close.

src/esx/esx_driver.c

index fc2e68c4f63b927a8222de2ff9b139b8a7bb6c63..517cce48ab49b4e0ed0e7af6ae280e6c1b583b31 100644 (file)
@@ -2,6 +2,7 @@
 /*
  * esx_driver.c: core driver methods for managing VMware ESX hosts
  *
+ * Copyright (C) 2010 Red Hat, Inc.
  * Copyright (C) 2009, 2010 Matthias Bolte <matthias.bolte@googlemail.com>
  * Copyright (C) 2009 Maximilian Wilhelm <max@rfc2324.org>
  *
@@ -559,16 +560,19 @@ static int
 esxClose(virConnectPtr conn)
 {
     esxPrivate *priv = conn->privateData;
+    int result = 0;
 
-    esxVI_EnsureSession(priv->host);
-
-    esxVI_Logout(priv->host);
+    if (esxVI_EnsureSession(priv->host) < 0 ||
+        esxVI_Logout(priv->host) < 0) {
+        result = -1;
+    }
     esxVI_Context_Free(&priv->host);
 
     if (priv->vCenter != NULL) {
-        esxVI_EnsureSession(priv->vCenter);
-
-        esxVI_Logout(priv->vCenter);
+        if (esxVI_EnsureSession(priv->vCenter) < 0 ||
+            esxVI_Logout(priv->vCenter) < 0) {
+            result = -1;
+        }
         esxVI_Context_Free(&priv->vCenter);
     }
 
@@ -579,7 +583,7 @@ esxClose(virConnectPtr conn)
 
     conn->privateData = NULL;
 
-    return 0;
+    return result;
 }