The attached patch is a more complete cut at unifying
error reporting among the different source files.
Most files have their own custom Error function, each
with varying degrees of functionality, and lots of
code duplication.
The attached patch adds a helper function to virterror.c
that centralizes all this logic, and redefines each
local error function as a macro that calls out to
the helper. The fixed files now offer printf style
reporting, and the macros pass off function name,
file name, and line number of the reported error
(currently not used, but handy to have).
This change centralizes probably 90% of the error calls.
Some files have pretty custom error functions that
don't map easily to the helper, or call __virRaiseError
directly in a number of places, so I skipped these for
now. Eventually we should move all these edge cases over
so any src/ wide error changes will be pretty easy to
make.
The one thing we lose here is that some some places
were logging info in the err{1,2,3} and int{1,2} fields
of raised error. I don't consider this a loss: even
where it was used, it was used inconsistently and
rarely for anything that would be useful to a user.
In the places where the data had some value, I
included it in the error string.
One side question: is src/xmlrpc.{c,h} even used? And
if not, can it be removed?
Thanks,
Cole
domain_conf.c | 27 +-----------
hash.c | 26 +-----------
internal.h | 6 ++
lxc_conf.c | 21 ---------
lxc_conf.h | 7 +--
network_conf.c | 23 +---------
openvz_conf.c | 22 ----------
openvz_conf.h | 7 ++-
proxy_internal.c | 23 +---------
qemu_conf.c | 21 ---------
qemu_conf.h | 8 +--
qparams.c | 10 +---
sexpr.c | 25 +----------
storage_conf.c | 19 ---------
storage_conf.h | 7 +--
test.c | 28 ++++---------
util.c | 27 +-----------
virterror.c | 40 ++++++++++++++++++
xen_internal.c | 116 ++++++++++++++++++-------------------------------------
xen_unified.c | 24 ++---------
xend_internal.c | 59 ++-------------------------
xm_internal.c | 28 ++-----------
xml.c | 43 +++++---------------
xs_internal.c | 23 +---------
24 files changed, 164 insertions(+), 476 deletions(-)