
On 04/09/2018 05:45 PM, Daniel P. Berrangé wrote:
Declare what URI schemes a driver supports in its virConnectDriver struct. This allows us to skip trying to open the driver entirely if the URI scheme doesn't match.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/bhyve/bhyve_driver.c | 4 +--- src/driver.h | 6 ++++++ src/esx/esx_driver.c | 27 ++------------------------- src/hyperv/hyperv_driver.c | 22 ++-------------------- src/interface/interface_backend_netcf.c | 4 +--- src/interface/interface_backend_udev.c | 4 +--- src/libvirt.c | 24 ++++++++++++++++++++++++ src/libxl/libxl_driver.c | 5 +---- src/lxc/lxc_driver.c | 5 +---- src/network/bridge_driver.c | 4 +--- src/node_device/node_device_driver.c | 3 --- src/node_device/node_device_hal.c | 1 + src/node_device/node_device_udev.c | 1 + src/nwfilter/nwfilter_driver.c | 4 +--- src/openvz/openvz_driver.c | 6 +----- src/phyp/phyp_driver.c | 4 +--- src/qemu/qemu_driver.c | 8 +------- src/secret/secret_driver.c | 4 +--- src/storage/storage_driver.c | 4 +--- src/test/test_driver.c | 4 +--- src/uml/uml_driver.c | 5 +---- src/vbox/vbox_common.c | 4 ---- src/vbox/vbox_driver.c | 5 ++--- src/vmware/vmware_driver.c | 7 +------ src/vz/vz_driver.c | 15 ++------------- src/xenapi/xenapi_driver.c | 5 ++--- 26 files changed, 57 insertions(+), 128 deletions(-)
diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index cc1d4ba6fb..21754dfc10 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -202,9 +202,6 @@ bhyveConnectOpen(virConnectPtr conn, if (conn->uri == NULL) { return VIR_DRV_OPEN_DECLINED; } else { - if (!conn->uri->scheme || STRNEQ(conn->uri->scheme, "bhyve")) - return VIR_DRV_OPEN_DECLINED; - if (STRNEQ_NULLABLE(conn->uri->path, "/system")) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unexpected bhyve URI path '%s', try bhyve:///system"), @@ -1752,6 +1749,7 @@ static virHypervisorDriver bhyveHypervisorDriver = {
static virConnectDriver bhyveConnectDriver = { .localOnly = true, + .uriSchemes = (const char *[]){ "bhyve", NULL },
Frankly, I don't like this typecast. But at the same time, I'm unable to come up with something better. Apart from some VIR_URI_SCHEMES() macro that would hide typecast in its internals. Michal