mirror of
https://github.com/clearlinux/kvmtool.git
synced 2026-09-06 05:31:50 +00:00
kvm tools: Cleanup ghost socket files
Clean ghost socket files as part of the regular connection process. This fixes the bug of 'kvm list' failing with "Failed connecting to instance" when ghost socket files existed. Signed-off-by: Sasha Levin <levinsasha928@gmail.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
@@ -208,8 +208,13 @@ int kvm__get_sock_by_instance(const char *name)
|
||||
len = strlen(local.sun_path) + sizeof(local.sun_family);
|
||||
|
||||
r = connect(s, &local, len);
|
||||
if (r < 0)
|
||||
if (r < 0 && errno == ECONNREFUSED) {
|
||||
/* Clean ghost socket file */
|
||||
unlink(sock_file);
|
||||
return -1;
|
||||
} else if (r < 0) {
|
||||
die("Failed connecting to instance");
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
@@ -232,6 +237,8 @@ int kvm__enumerate_instances(int (*callback)(const char *name, int fd))
|
||||
if (entry.d_type == DT_SOCK) {
|
||||
entry.d_name[strlen(entry.d_name)-5] = 0;
|
||||
sock = kvm__get_sock_by_instance(entry.d_name);
|
||||
if (sock < 0)
|
||||
continue;
|
||||
ret = callback(entry.d_name, sock);
|
||||
close(sock);
|
||||
if (ret < 0)
|
||||
|
||||
Reference in New Issue
Block a user