[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 11/16] qemu-config: find_list(): use error_set()
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PATCH 11/16] qemu-config: find_list(): use error_set() |
Date: |
Mon, 21 May 2012 14:41:54 -0300 |
Note that qemu_find_opts() and qemu_config_parse() need to call
error_report() to maintain their semantics on error.
Signed-off-by: Luiz Capitulino <address@hidden>
---
qemu-config.c | 32 +++++++++++++++++++++++++-------
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/qemu-config.c b/qemu-config.c
index f876646..bdb381d 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -3,6 +3,7 @@
#include "qemu-option.h"
#include "qemu-config.h"
#include "hw/qdev.h"
+#include "error.h"
static QemuOptsList qemu_drive_opts = {
.name = "drive",
@@ -631,7 +632,8 @@ static QemuOptsList *vm_config_groups[32] = {
NULL,
};
-static QemuOptsList *find_list(QemuOptsList **lists, const char *group)
+static QemuOptsList *find_list(QemuOptsList **lists, const char *group,
+ Error **errp)
{
int i;
@@ -640,14 +642,23 @@ static QemuOptsList *find_list(QemuOptsList **lists,
const char *group)
break;
}
if (lists[i] == NULL) {
- error_report("there is no option group \"%s\"", group);
+ error_set(errp, QERR_INVALID_OPTION_GROUP, group);
}
return lists[i];
}
QemuOptsList *qemu_find_opts(const char *group)
{
- return find_list(vm_config_groups, group);
+ QemuOptsList *ret;
+ Error *local_err = NULL;
+
+ ret = find_list(vm_config_groups, group, &local_err);
+ if (error_is_set(&local_err)) {
+ error_report("%s\n", error_get_pretty(local_err));
+ error_free(local_err);
+ }
+
+ return ret;
}
void qemu_add_opts(QemuOptsList *list)
@@ -762,6 +773,7 @@ int qemu_config_parse(FILE *fp, QemuOptsList **lists, const
char *fname)
char line[1024], group[64], id[64], arg[64], value[1024];
Location loc;
QemuOptsList *list = NULL;
+ Error *local_err = NULL;
QemuOpts *opts = NULL;
int res = -1, lno = 0;
@@ -778,17 +790,23 @@ int qemu_config_parse(FILE *fp, QemuOptsList **lists,
const char *fname)
}
if (sscanf(line, "[%63s \"%63[^\"]\"]", group, id) == 2) {
/* group with id */
- list = find_list(lists, group);
- if (list == NULL)
+ list = find_list(lists, group, &local_err);
+ if (error_is_set(&local_err)) {
+ error_report("%s\n", error_get_pretty(local_err));
+ error_free(local_err);
goto out;
+ }
opts = qemu_opts_create(list, id, 1, NULL);
continue;
}
if (sscanf(line, "[%63[^]]]", group) == 1) {
/* group without id */
- list = find_list(lists, group);
- if (list == NULL)
+ list = find_list(lists, group, &local_err);
+ if (error_is_set(&local_err)) {
+ error_report("%s\n", error_get_pretty(local_err));
+ error_free(local_err);
goto out;
+ }
opts = qemu_opts_create(list, NULL, 0, NULL);
continue;
}
--
1.7.9.2.384.g4a92a
- [Qemu-devel] [PATCH qmp-next v5 00/16]: qapi: convert netdev_add & netdev_del, Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 08/16] qemu-option: introduce qemu_opt_set_err(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 14/16] net: net_client_init(): use error_set(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 01/16] qemu-option: qemu_opts_create(): use error_set(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 06/16] qemu-option: qemu_opts_validate(): use error_set(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 11/16] qemu-config: find_list(): use error_set(),
Luiz Capitulino <=
- [Qemu-devel] [PATCH 09/16] qemu-option: qemu_opts_from_qdict(): use error_set(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 07/16] qemu-option: opt_set(): use error_set(), Luiz Capitulino, 2012/05/21
- Re: [Qemu-devel] [PATCH qmp-next v5 00/16]: qapi: convert netdev_add & netdev_del, Laszlo Ersek, 2012/05/21
- [Qemu-devel] [PATCH 05/16] qemu-option: qemu_opt_parse(): use error_set(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 03/16] qemu-option: parse_option_bool(): use error_set(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 04/16] qemu-option: parse_option_size(): use error_set(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 12/16] qemu-config: introduce qemu_find_opts_err(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 02/16] qemu-option: parse_option_number(): use error_set(), Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 16/16] qapi: convert netdev_del, Luiz Capitulino, 2012/05/21
- [Qemu-devel] [PATCH 10/16] qerror: introduce QERR_INVALID_OPTION_GROUP, Luiz Capitulino, 2012/05/21