summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2026-05-06 12:54:20 +0200
committerMarkus Armbruster <armbru@redhat.com>2026-05-21 13:10:40 +0200
commit22ef826531493f2556bbbb188e5bb0f4d095869a (patch)
tree4831bbaa9e658a02b0f0b47e541beacd20fe9801 /net
parentb5efbfb1bb2aca8cfcfacf76ceb1393159d9c0a1 (diff)
downloadqemu-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.c27
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,