Commit 0ec846bf authored by Anton Nefedov's avatar Anton Nefedov Committed by Paolo Bonzini
Browse files

char: don't exit on hmp 'chardev-add help'



qemu_chr_new_from_opts() is used from both vl.c and hmp,
and it is quite confusing to see qemu suddenly exit after receiving a help
option in hmp.

Do exit(0) from vl.c instead.

Signed-off-by: default avatarAnton Nefedov <anton.nefedov@virtuozzo.com>
Message-Id: <1500977081-120929-1-git-send-email-anton.nefedov@virtuozzo.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 4db0db1f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -620,7 +620,7 @@ Chardev *qemu_chr_new_from_opts(QemuOpts *opts, Error **errp)

        error_report("Available chardev backend types: %s", str->str);
        g_string_free(str, true);
        exit(0);
        return NULL;
    }

    if (id == NULL) {
+3 −1
Original line number Diff line number Diff line
@@ -65,7 +65,9 @@ struct Chardev {
 *
 * @opts see qemu-config.c for a list of valid options
 *
 * Returns: a new character backend
 * Returns: on success: a new character backend
 *          otherwise:  NULL; @errp specifies the error
 *                            or left untouched in case of help option
 */
Chardev *qemu_chr_new_from_opts(QemuOpts *opts,
                                Error **errp);
+6 −4
Original line number Diff line number Diff line
@@ -2344,11 +2344,13 @@ static int chardev_init_func(void *opaque, QemuOpts *opts, Error **errp)
{
    Error *local_err = NULL;

    qemu_chr_new_from_opts(opts, &local_err);
    if (!qemu_chr_new_from_opts(opts, &local_err)) {
        if (local_err) {
            error_report_err(local_err);
            return -1;
        }
        exit(0);
    }
    return 0;
}