• E
    maint: improve VIR_ERR_NO_SUPPORT usage · baa72449
    Eric Blake 提交于
    We weren't very consistent in our use of VIR_ERR_NO_SUPPORT; many
    users just passed __FUNCTION__ on, while others passed "%s" to
    silence over-eager compilers that warn about __FUNCTION__ not
    containing any %.  It's nicer to route all these uses through
    a single macro, so that if we ever need to change the reporting,
    we can do it in one place.
    
    I verified that 'virsh -c test:///default qemu-monitor-command test foo'
    gives the same error message before and after this patch:
    error: this function is not supported by the connection driver: virDomainQemuMonitorCommand
    
    Note that in libvirt.c, we were inconsistent on whether virDomain*
    API used virLibConnError() (with VIR_FROM_NONE) or virLibDomainError()
    (with VIR_FROM_DOMAIN); this patch unifies these errors to all use
    VIR_FROM_NONE, on the grounds that it is unlikely that a caller
    learning that a call is unimplemented can do anything in particular
    with extra knowledge of which error domain it belongs to.
    
    One particular change to note is virDomainOpenGraphics which was
    trying to fail with VIR_ERR_NO_SUPPORT after a failed
    VIR_DRV_SUPPORTS_FEATURE check; all other places that fail a
    feature check report VIR_ERR_ARGUMENT_UNSUPPORTED.
    
    * src/util/virerror.h (virReportUnsupportedError): New macro.
    * src/libvirt-qemu.c: Use new macro.
    * src/libvirt-lxc.c: Likewise.
    * src/lxc/lxc_driver.c: Likewise.
    * src/security/security_manager.c: Likewise.
    * src/util/virinitctl.c: Likewise.
    * src/libvirt.c: Likewise.
    (virDomainOpenGraphics): Use correct error for unsupported feature.
    Signed-off-by: NEric Blake <eblake@redhat.com>
    baa72449
security_manager.c 21.4 KB