diff options
| author | Markus Armbruster <armbru@redhat.com> | 2026-05-06 12:54:20 +0200 |
|---|---|---|
| committer | Markus Armbruster <armbru@redhat.com> | 2026-05-21 13:10:40 +0200 |
| commit | 22ef826531493f2556bbbb188e5bb0f4d095869a (patch) | |
| tree | 4831bbaa9e658a02b0f0b47e541beacd20fe9801 /net | |
| parent | b5efbfb1bb2aca8cfcfacf76ceb1393159d9c0a1 (diff) | |
| download | qemu-22ef826531493f2556bbbb188e5bb0f4d095869a.tar.gz qemu-22ef826531493f2556bbbb188e5bb0f4d095869a.zip | |
qapi/net: Wean SLIRP off QAPI type String to improve documentation
String's doc comment is useless. Replace its use in NetdevUserOptions
by identical types with hopefully useful documentation.
While there, add a non-doc comment explaining why the port forwarding
interface is problematic.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20260506105421.2461117-4-armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
[Commit message typo fixed]
Diffstat (limited to 'net')
| -rw-r--r-- | net/slirp.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/net/slirp.c b/net/slirp.c index 04925f3318..a00e0a9651 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -1215,14 +1215,14 @@ void hmp_info_usernet(Monitor *mon, const QDict *qdict) } static void -net_init_slirp_configs(const StringList *fwd, int flags) +net_init_slirp_configs_host(const NetdevUserHostForwardList *fwd) { while (fwd) { struct slirp_config_str *config; config = g_malloc0(sizeof(*config)); pstrcpy(config->str, sizeof(config->str), fwd->value->str); - config->flags = flags; + config->flags = SLIRP_CFG_HOSTFWD; config->next = slirp_configs; slirp_configs = config; @@ -1230,9 +1230,24 @@ net_init_slirp_configs(const StringList *fwd, int flags) } } -static const char **slirp_dnssearch(const StringList *dnsname) +static void +net_init_slirp_configs_guest(const NetdevUserGuestForwardList *fwd) +{ + while (fwd) { + struct slirp_config_str *config; + + config = g_malloc0(sizeof(*config)); + pstrcpy(config->str, sizeof(config->str), fwd->value->str); + config->next = slirp_configs; + slirp_configs = config; + + fwd = fwd->next; + } +} + +static const char **slirp_dnssearch(const NetdevUserDomainSuffixList *dnsname) { - const StringList *c = dnsname; + const NetdevUserDomainSuffixList *c = dnsname; size_t i = 0, num_opts = 0; const char **ret; @@ -1285,8 +1300,8 @@ int net_init_slirp(const Netdev *netdev, const char *name, /* all optional fields are initialized to "all bits zero" */ - net_init_slirp_configs(user->hostfwd, SLIRP_CFG_HOSTFWD); - net_init_slirp_configs(user->guestfwd, 0); + net_init_slirp_configs_host(user->hostfwd); + net_init_slirp_configs_guest(user->guestfwd); ret = net_slirp_init(peer, "user", name, user->q_restrict, ipv4, vnet, user->host, |
