Page MenuHomeFreeBSD

D54652.id169472.diff
No OneTemporary

D54652.id169472.diff

diff --git a/usr.sbin/bhyvectl/bhyvectl.c b/usr.sbin/bhyvectl/bhyvectl.c
--- a/usr.sbin/bhyvectl/bhyvectl.c
+++ b/usr.sbin/bhyvectl/bhyvectl.c
@@ -249,12 +249,12 @@
}
}
-#ifdef BHYVE_SNAPSHOT
static int
-send_message(const char *vmname, nvlist_t *nvl)
+ipc_send_message(const char *vmname, nvlist_t *nvl)
{
struct sockaddr_un addr;
int err = 0, socket_fd;
+ const char* errmsg;
socket_fd = socket(PF_UNIX, SOCK_STREAM, 0);
if (socket_fd < 0) {
@@ -278,15 +278,31 @@
if (nvlist_send(socket_fd, nvl) < 0) {
perror("nvlist_send() failed");
err = errno;
+ goto done;
}
-done:
+
nvlist_destroy(nvl);
+ nvl = nvlist_recv(socket_fd, 0);
+ if (nvl == NULL) {
+ perror("nvlist_recv() failed");
+ goto done;
+ }
+
+ if (nvlist_exists_string(nvl, "error")) {
+ errmsg = nvlist_get_string(nvl, "error");
+ fprintf(stderr, "%s: IPC command failed: %s\n", __func__, errmsg);
+ err = -1;
+ }
+done:
+ if (nvl != NULL)
+ nvlist_destroy(nvl);
if (socket_fd >= 0)
close(socket_fd);
return (err);
}
+#ifdef BHYVE_SNAPSHOT
static int
open_directory(const char *file)
{
@@ -318,7 +334,7 @@
nvlist_add_bool(nvl, "suspend", suspend);
nvlist_move_descriptor(nvl, "fddir", fd);
- return (send_message(vmname, nvl));
+ return (ipc_send_message(vmname, nvl));
}
#endif

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 18, 7:27 AM (5 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31705925
Default Alt Text
D54652.id169472.diff (1 KB)

Event Timeline