Otherwise we can get misleading error messages. One example is when connection is broken we got "this function is not supported by the connection driver: virDomainMigrate3" from virDomainMigrate3. Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@xxxxxxxxxxxxx> --- src/driver.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/driver.h b/src/driver.h index 6278aa0..2531ac3 100644 --- a/src/driver.h +++ b/src/driver.h @@ -47,17 +47,14 @@ typedef enum { * directly if you don't have to, because it may be NULL, use this macro * instead. * - * Note that this treats a possible error returned by drv->supports_feature - * the same as not supported. If you care about the error, call - * drv->supports_feature directly. - * * Returns: - * != 0 Feature is supported. + * -1 Error + * >0 Feature is supported. * 0 Feature is not supported. */ #define VIR_DRV_SUPPORTS_FEATURE(drv, conn, feature) \ ((drv)->connectSupportsFeature ? \ - (drv)->connectSupportsFeature((conn), (feature)) > 0 : 0) + (drv)->connectSupportsFeature((conn), (feature)) : 0) #define __VIR_DRIVER_H_INCLUDES___ -- 1.8.3.1