]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Make QEMU_DRIVE_HOST_PREFIX more private
authorJohn Ferlan <jferlan@redhat.com>
Wed, 29 Jun 2016 17:34:00 +0000 (13:34 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 2 Aug 2016 14:11:11 +0000 (10:11 -0400)
Move QEMU_DRIVE_HOST_PREFIX into the qemu_alias.c to dissuade future
callers from using it. Create qemuAliasDiskDriveSkipPrefix in order
to handle the current consumers that desire to check if an alias has
the drive- prefix and "get beyond it" in order to get the disk alias.

src/qemu/qemu_alias.c
src/qemu/qemu_alias.h
src/qemu/qemu_domain.c
src/qemu/qemu_monitor_json.c
src/qemu/qemu_monitor_text.c
src/qemu/qemu_process.c

index f2635865a439ac59bc785ce9c77568ed2c7a7fc2..28260c92be477aefc3b08f8a8b3409b15e6b32ba 100644 (file)
@@ -29,6 +29,8 @@
 #include "virstring.h"
 #include "network/bridge_driver.h"
 
+#define QEMU_DRIVE_HOST_PREFIX "drive-"
+
 #define VIR_FROM_THIS VIR_FROM_QEMU
 
 VIR_LOG_INIT("qemu.qemu_alias");
@@ -476,6 +478,21 @@ qemuAliasFromDisk(const virDomainDiskDef *disk)
 }
 
 
+/* qemuAliasDiskDriveSkipPrefix:
+ * @dev_name: Pointer to a const char string
+ *
+ * If the QEMU_DRIVE_HOST_PREFIX exists in the input string, then
+ * increment the pointer and return it
+ */
+const char *
+qemuAliasDiskDriveSkipPrefix(const char *dev_name)
+{
+    if (STRPREFIX(dev_name, QEMU_DRIVE_HOST_PREFIX))
+        dev_name += strlen(QEMU_DRIVE_HOST_PREFIX);
+    return dev_name;
+}
+
+
 /* qemuDomainGetMasterKeyAlias:
  *
  * Generate and return the masterKey alias
index 5202f734c99d8d07081d9a6d0fb259f9068e2a62..8f6d9a77f6f131fdbc69eea2c8f77ffccf0a4764 100644 (file)
@@ -30,8 +30,6 @@
 # include "qemu_domain.h"
 # include "qemu_domain_address.h"
 
-# define QEMU_DRIVE_HOST_PREFIX "drive-"
-
 int qemuAssignDeviceChrAlias(virDomainDefPtr def,
                              virDomainChrDefPtr chr,
                              ssize_t idx);
@@ -69,6 +67,8 @@ int qemuDomainDeviceAliasIndex(const virDomainDeviceInfo *info,
 
 char *qemuAliasFromDisk(const virDomainDiskDef *disk);
 
+const char *qemuAliasDiskDriveSkipPrefix(const char *dev_name);
+
 char *qemuDomainGetMasterKeyAlias(void);
 
 char *qemuDomainGetSecretAESAlias(const char *srcalias,
index 211b883a1b4dd635a989870e2e7d06be33761226..efc1fb538d130c124435baaaecc91cd99b3240fa 100644 (file)
@@ -4403,8 +4403,7 @@ qemuDomainStorageAlias(const char *device, int depth)
 {
     char *alias;
 
-    if (STRPREFIX(device, QEMU_DRIVE_HOST_PREFIX))
-        device += strlen(QEMU_DRIVE_HOST_PREFIX);
+    device = qemuAliasDiskDriveSkipPrefix(device);
 
     if (!depth)
         ignore_value(VIR_STRDUP(alias, device));
index 299526458b2a8a553b0059eb2dad11177c52e541..52830241c543c439e5f236800e50a20c487a370f 100644 (file)
@@ -1800,8 +1800,7 @@ int qemuMonitorJSONGetBlockInfo(qemuMonitorPtr mon,
             goto cleanup;
         }
 
-        if (STRPREFIX(thisdev, QEMU_DRIVE_HOST_PREFIX))
-            thisdev += strlen(QEMU_DRIVE_HOST_PREFIX);
+        thisdev = qemuAliasDiskDriveSkipPrefix(thisdev);
 
         if (VIR_ALLOC(info) < 0)
             goto cleanup;
@@ -4195,8 +4194,7 @@ qemuMonitorJSONParseBlockJobInfo(virHashTablePtr blockJobs,
                        _("entry was missing 'device'"));
         return -1;
     }
-    if (STRPREFIX(device, QEMU_DRIVE_HOST_PREFIX))
-        device += strlen(QEMU_DRIVE_HOST_PREFIX);
+    device = qemuAliasDiskDriveSkipPrefix(device);
 
     if (VIR_ALLOC(info) < 0 ||
         virHashAddEntry(blockJobs, device, info) < 0) {
index cf2979dab4c6d1f08153b0bececd710e85e4e424..2c31b5298f5c26610ff87560e37fe4a9db9511f2 100644 (file)
@@ -753,8 +753,7 @@ int qemuMonitorTextGetBlockInfo(qemuMonitorPtr mon,
     p = reply;
 
     while (*p) {
-        if (STRPREFIX(p, QEMU_DRIVE_HOST_PREFIX))
-            p += strlen(QEMU_DRIVE_HOST_PREFIX);
+        p = (char *)qemuAliasDiskDriveSkipPrefix(p);
 
         eol = strchr(p, '\n');
         if (!eol)
@@ -839,7 +838,7 @@ qemuMonitorTextGetAllBlockStatsInfo(qemuMonitorPtr mon,
 {
     qemuBlockStatsPtr stats = NULL;
     char *info = NULL;
-    char *dev_name;
+    const char *dev_name;
     char **lines = NULL;
     char **values = NULL;
     char *line;
@@ -901,8 +900,7 @@ qemuMonitorTextGetAllBlockStatsInfo(qemuMonitorPtr mon,
         *line = '\0';
         line += 2;
 
-        if (STRPREFIX(dev_name, QEMU_DRIVE_HOST_PREFIX))
-            dev_name += strlen(QEMU_DRIVE_HOST_PREFIX);
+        dev_name = qemuAliasDiskDriveSkipPrefix(dev_name);
 
         if (!(values = virStringSplit(line, " ", 0)))
             goto cleanup;
index b87e305049f4a5bf5e187873557d13139982cf6d..a4935d220ef950f77800b7b969a759b5ffdd0b3d 100644 (file)
@@ -355,8 +355,7 @@ qemuProcessFindDomainDiskByAlias(virDomainObjPtr vm,
 {
     size_t i;
 
-    if (STRPREFIX(alias, QEMU_DRIVE_HOST_PREFIX))
-        alias += strlen(QEMU_DRIVE_HOST_PREFIX);
+    alias = qemuAliasDiskDriveSkipPrefix(alias);
 
     for (i = 0; i < vm->def->ndisks; i++) {
         virDomainDiskDefPtr disk;