aboutsummaryrefslogtreecommitdiff
path: root/net/net.c
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2022-11-10 13:52:23 +0100
committerJason Wang <jasowang@redhat.com>2023-02-17 13:31:33 +0800
commit27c819244b8129a4742bfe43d255cdaa8528765d (patch)
tree11802ad608f8beeabe2ca36d5195ce8e09f74f47 /net/net.c
parentc6941b3b9b7445f7760c462882f8397b9dc51e30 (diff)
net: Restore printing of the help text with "-nic help"
Running QEMU with "-nic help" used to work in QEMU 5.2 and earlier versions (it showed the available netdev backends), but this feature got broken during some refactoring in version 6.0. Let's restore the old behavior, and while we're at it, let's also print the available NIC models here now since this option can be used to configure both, netdev backend and model in one go. Fixes: ad6f932fe8 ("net: do not exit on "netdev_add help" monitor command") Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'net/net.c')
-rw-r--r--net/net.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/net/net.c b/net/net.c
index 476a4b71cc..e8cd95cb7e 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1542,8 +1542,18 @@ static int net_param_nic(void *dummy, QemuOpts *opts, Error **errp)
const char *type;
type = qemu_opt_get(opts, "type");
- if (type && g_str_equal(type, "none")) {
- return 0; /* Nothing to do, default_net is cleared in vl.c */
+ if (type) {
+ if (g_str_equal(type, "none")) {
+ return 0; /* Nothing to do, default_net is cleared in vl.c */
+ }
+ if (is_help_option(type)) {
+ GPtrArray *nic_models = qemu_get_nic_models(TYPE_DEVICE);
+ show_netdevs();
+ printf("\n");
+ qemu_show_nic_models(type, (const char **)nic_models->pdata);
+ g_ptr_array_free(nic_models, true);
+ exit(0);
+ }
}
idx = nic_get_free_idx();