]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: block: Extract formatting of cookie string
authorPeter Krempa <pkrempa@redhat.com>
Mon, 23 Mar 2020 15:31:19 +0000 (16:31 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 24 Mar 2020 13:17:47 +0000 (14:17 +0100)
Introduce qemuBlockStorageSourceGetCookieString which does the
concatenation so that we can reuse it later.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_block.c
src/qemu/qemu_block.h
src/qemu/qemu_domain.c

index 3365ee677b73e9b1583341264a1e988c4eb96fc8..d9665ec4a0518fa5d73ceeac2314f14c8b208f07 100644 (file)
@@ -3343,3 +3343,28 @@ qemuBlockStorageSourceNeedsStorageSliceLayer(const virStorageSource *src)
 
     return false;
 }
+
+
+/**
+ * qemuBlockStorageSourceGetCookieString:
+ * @src: storage source
+ *
+ * Returns a properly formatted string representing cookies of @src in format
+ * accepted by qemu.
+ */
+char *
+qemuBlockStorageSourceGetCookieString(virStorageSourcePtr src)
+{
+    virBuffer buf = VIR_BUFFER_INITIALIZER;
+    size_t i;
+
+    for (i = 0; i < src->ncookies; i++) {
+        virStorageNetCookieDefPtr cookie = src->cookies[i];
+
+        virBufferAsprintf(&buf, "%s=%s; ", cookie->name, cookie->value);
+    }
+
+    virBufferTrim(&buf, "; ");
+
+    return virBufferContentAndReset(&buf);
+}
index 9bffe20bfb199f07c6274dce5ea57439f2b8f76e..8b57ffd8a593390fc47ef91044b63b0a25d72ee6 100644 (file)
@@ -258,3 +258,6 @@ qemuBlockReopenReadOnly(virDomainObjPtr vm,
 
 bool
 qemuBlockStorageSourceNeedsStorageSliceLayer(const virStorageSource *src);
+
+char *
+qemuBlockStorageSourceGetCookieString(virStorageSourcePtr src);
index 78dd643a5ec1bcc93dec19b5a74bff574b87f8c5..93dbae569cf55ded64ebdc2097d0e87e05267340 100644 (file)
@@ -1747,18 +1747,7 @@ qemuDomainSecretStorageSourcePrepareCookies(qemuDomainObjPrivatePtr priv,
                                             const char *aliasprotocol)
 {
     g_autofree char *secretalias = qemuAliasForSecret(aliasprotocol, "httpcookie");
-    g_autofree char *cookies = NULL;
-    g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
-    size_t i;
-
-    for (i = 0; i < src->ncookies; i++) {
-        virStorageNetCookieDefPtr cookie = src->cookies[i];
-
-        virBufferAsprintf(&buf, "%s=%s; ", cookie->name, cookie->value);
-    }
-
-    virBufferTrim(&buf, "; ");
-    cookies = virBufferContentAndReset(&buf);
+    g_autofree char *cookies = qemuBlockStorageSourceGetCookieString(src);
 
     return qemuDomainSecretAESSetup(priv, secretalias, NULL,
                                     (uint8_t *) cookies, strlen(cookies));