libxl: do not assume Dom0 backend while getting nic info
authorMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Mon, 5 Sep 2016 09:26:04 +0000 (11:26 +0200)
committerWei Liu <wei.liu2@citrix.com>
Mon, 5 Sep 2016 10:53:16 +0000 (11:53 +0100)
Fill backend_domid field based on backend path.

Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
tools/libxl/libxl_nic.c

index c34b7bae8b4567a8420a4ad9f6f86c63e26d9b06..d1caa9095534717615cc1470b336b9f9ad4a5e02 100644 (file)
@@ -309,6 +309,18 @@ static int libxl__device_nic_from_xenstore(libxl__gc *gc,
     else
         nic->devid = 0;
 
+    rc = libxl__xs_read_checked(gc, XBT_NULL,
+                                GCSPRINTF("%s/backend", libxl_path), &tmp);
+    if (rc) goto out;
+
+    if (!tmp) {
+        LOG(ERROR, "nic %s does not exist (no backend path)", libxl_path);
+        rc = ERROR_FAIL;
+        goto out;
+    }
+    rc = libxl__backendpath_parse_domid(gc, tmp, &nic->backend_domid);
+    if (rc) goto out;
+
     /* nic->mtu = */
 
     rc = libxl__xs_read_checked(gc, XBT_NULL,