src/driver.c: add virConnectValidateURIPath()

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>
This commit is contained in:
Daniel Henrique Barboza 2019-09-26 11:56:36 -03:00 committed by Cole Robinson
parent 7e490cdad6
commit 9c57fac9b7
3 changed files with 31 additions and 0 deletions

View 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;
}

View 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);

View File

@ -1344,6 +1344,7 @@ virStreamClass;
# driver.h
virConnectValidateURIPath;
virGetConnectInterface;
virGetConnectNetwork;
virGetConnectNodeDev;