aboutsummaryrefslogtreecommitdiff
path: root/qerror.c
diff options
context:
space:
mode:
authorLuiz Capitulino <lcapitulino@redhat.com>2012-07-27 14:09:29 -0300
committerLuiz Capitulino <lcapitulino@redhat.com>2012-08-13 13:21:21 -0300
commit13f59ae8157e8ec238fa8aefe5309909a1eeb7e2 (patch)
treea60ca832661ef024c876a5315bfa1a0774032ef8 /qerror.c
parent85465051e0e8a79c3c1df3187c2acaacb10d6232 (diff)
error, qerror: add ErrorClass argument to error functions
The new argument is added to functions qerror_report() and error_set(). It's stored in Error and QError. qerror_report_err() is also updated to take care of it. The QERR_ macros are changed to contain a place holder value for the new argument, so that the value is used on all current calls to qerror_report() and error_set() (and also to initialize qerror_table[]). Next commit will update the QERR_ macros with a proper ErrorClass value. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'qerror.c')
-rw-r--r--qerror.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/qerror.c b/qerror.c
index ff460b08ce..0bf8aec947 100644
--- a/qerror.c
+++ b/qerror.c
@@ -386,13 +386,15 @@ static QDict *error_obj_from_fmt_no_fail(const char *fmt, va_list *va)
*
* Return strong reference.
*/
-static QError *qerror_from_info(const char *fmt, va_list *va)
+static QError *qerror_from_info(ErrorClass err_class, const char *fmt,
+ va_list *va)
{
QError *qerr;
qerr = qerror_new();
loc_save(&qerr->loc);
+ qerr->err_class = err_class;
qerr->error = error_obj_from_fmt_no_fail(fmt, va);
qerr->err_msg = qerror_format(fmt, qerr->error);
@@ -518,13 +520,13 @@ static void qerror_print(QError *qerror)
QDECREF(qstring);
}
-void qerror_report(const char *fmt, ...)
+void qerror_report(ErrorClass eclass, const char *fmt, ...)
{
va_list va;
QError *qerror;
va_start(va, fmt);
- qerror = qerror_from_info(fmt, &va);
+ qerror = qerror_from_info(eclass, fmt, &va);
va_end(va);
if (monitor_cur_is_qmp()) {
@@ -540,6 +542,7 @@ struct Error
{
QDict *obj;
char *msg;
+ ErrorClass err_class;
};
void qerror_report_err(Error *err)
@@ -551,6 +554,7 @@ void qerror_report_err(Error *err)
QINCREF(err->obj);
qerr->error = err->obj;
qerr->err_msg = g_strdup(err->msg);
+ qerr->err_class = err->err_class;
if (monitor_cur_is_qmp()) {
monitor_set_error(cur_mon, qerr);