]> xenbits.xensource.com Git - libvirt.git/commitdiff
src/driver.c: add virConnectValidateURIPath()
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Thu, 26 Sep 2019 14:56:36 +0000 (11:56 -0300)
committerCole Robinson <crobinso@redhat.com>
Thu, 26 Sep 2019 21:25:19 +0000 (17:25 -0400)
The code to validate the URI path is repeated across several
files. This patch creates a common validation code to be
used across all of them.

Reviewed-by: Cole Robinson <crobinso@redhat.com>
Suggested-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/driver.c
src/driver.h
src/libvirt_private.syms

index 5e8f68f6df517adaa9a44730c68037203f74d26c..6b756226895bfc8967752be9c3b585c574f0453a 100644 (file)
@@ -269,3 +269,29 @@ virSetConnectStorage(virConnectPtr conn)
     VIR_DEBUG("Override storage connection with %p", conn);
     return virThreadLocalSet(&connectStorage, conn);
 }
+
+bool
+virConnectValidateURIPath(const char *uriPath,
+                          const char *entityName,
+                          bool privileged)
+{
+    if (privileged) {
+        if (STRNEQ(uriPath, "/system")) {
+            virReportError(VIR_ERR_INTERNAL_ERROR,
+                           _("unexpected %s URI path '%s', try "
+                             "%s:///system"),
+                           entityName, uriPath, entityName);
+            return false;
+        }
+    } else {
+        if (STRNEQ(uriPath, "/session")) {
+            virReportError(VIR_ERR_INTERNAL_ERROR,
+                           _("unexpected %s URI path '%s', try "
+                             "%s:///session"),
+                           entityName, uriPath, entityName);
+            return false;
+        }
+    }
+
+    return true;
+}
index f7d667a03cf76843d83e9874616e41e15de2bdf4..68c0004d862f8c94f4c3d48bc0fd5f842372a831 100644 (file)
@@ -127,3 +127,7 @@ int virSetConnectNWFilter(virConnectPtr conn);
 int virSetConnectNodeDev(virConnectPtr conn);
 int virSetConnectSecret(virConnectPtr conn);
 int virSetConnectStorage(virConnectPtr conn);
+
+bool virConnectValidateURIPath(const char *uriPath,
+                               const char *entityName,
+                               bool privileged);
index 2b10a1030e7413ed267d630cd48c06290e8ae298..7b681fac643136b03537d949447922f08e834480 100644 (file)
@@ -1344,6 +1344,7 @@ virStreamClass;
 
 
 # driver.h
+virConnectValidateURIPath;
 virGetConnectInterface;
 virGetConnectNetwork;
 virGetConnectNodeDev;