[Libguestfs] [PATCH 5/6] launch: libvirt: cleanup sockets on shutdown

Pino Toscano ptoscano at redhat.com
Fri Jan 29 18:25:29 UTC 2016


Unlink the sockets in the shutdown callback, instead of right before
creating a new ones.  This makes sure we are unlinking the right
sockets.
---
 src/launch-libvirt.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c
index 185b44b..8a5d93e 100644
--- a/src/launch-libvirt.c
+++ b/src/launch-libvirt.c
@@ -397,7 +397,6 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
    */
   snprintf (data->guestfsd_path, sizeof data->guestfsd_path,
             "%s/guestfsd.sock", g->tmpdir);
-  unlink (data->guestfsd_path);
 
   set_socket_create_context (g);
 
@@ -424,7 +423,6 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
   /* For the serial console. */
   snprintf (data->console_path, sizeof data->console_path,
             "%s/console.sock", g->tmpdir);
-  unlink (data->console_path);
 
   console_sock = socket (AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
   if (console_sock == -1) {
@@ -2027,6 +2025,16 @@ shutdown_libvirt (guestfs_h *g, void *datav, int check_for_errors)
   if (conn != NULL)
     virConnectClose (conn);
 
+  if (data->guestfsd_path[0] != '\0') {
+    unlink (data->guestfsd_path);
+    data->guestfsd_path[0] = '\0';
+  }
+
+  if (data->console_path[0] != '\0') {
+    unlink (data->console_path);
+    data->console_path[0] = '\0';
+  }
+
   data->conn = NULL;
   data->dom = NULL;
 
-- 
2.5.0




More information about the Libguestfs mailing list