On 01/12/2010 03:48 PM, Daniel P. Berrange wrote: > On Tue, Jan 12, 2010 at 03:26:28PM -0500, Cole Robinson wrote: >> Since virDispatchError is now responsible for invoking the error callback, >> give it the same semantics as ReportError, which will skip VIR_ERR_OK >> (which is encountered when no error was raised). >> >> This fixes invoking the error callback after every non-erroring API call. >> >> Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> >> --- >> src/util/virterror.c | 6 +++++- >> 1 files changed, 5 insertions(+), 1 deletions(-) >> >> diff --git a/src/util/virterror.c b/src/util/virterror.c >> index e2128b9..78974ee 100644 >> --- a/src/util/virterror.c >> +++ b/src/util/virterror.c >> @@ -603,8 +603,12 @@ virDispatchError(virConnectPtr conn) >> if (!err) >> return; >> >> - /* Set a generic error message if none is already set */ >> + /* We never used to raise ERR_OK, so maintain existing behavior */ >> if (err->code == VIR_ERR_OK) >> + return; >> + >> + /* Set a generic error message if none is already set */ >> + if (!err->message) >> virErrorGenericFailure(err); >> >> /* Copy the global error to per-connection error if needed */ > > We should only ever be invoking virDispatchError() in error paths, so > if err->code == VIR_ERR_OK, this means we do need set a generic message > because the earlier code indicated an error but forgot to report one. > So I don't think this is correct. > Ah, I think I wanted to check VIR_ERR_NONE here actually. virDispatchError is called regardless of whether an error is actually raised, so it may receive a zero'd out/empty virLastErrorObject, which is what I'm trying to avoid reporting. - Cole -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list