Hi On Thu, May 5, 2022 at 1:07 AM Paolo Bonzini <pbonz...@redhat.com> wrote:
> Replace slirp_init with slirp_new, so that a more recent cfg.version > can be specified. > It was introduced in v4.1.0, but I don't see a minimum libslirp version check. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > net/slirp.c | 27 +++++++++++++++++++++------ > 1 file changed, 21 insertions(+), 6 deletions(-) > > diff --git a/net/slirp.c b/net/slirp.c > index f1e25d741f..b3a92d6e38 100644 > --- a/net/slirp.c > +++ b/net/slirp.c > @@ -389,6 +389,7 @@ static int net_slirp_init(NetClientState *peer, const > char *model, > #if defined(CONFIG_SMBD_COMMAND) > struct in_addr smbsrv = { .s_addr = 0 }; > #endif > + SlirpConfig cfg = { 0 }; > NetClientState *nc; > SlirpState *s; > char buf[20]; > @@ -577,12 +578,26 @@ static int net_slirp_init(NetClientState *peer, > const char *model, > > s = DO_UPCAST(SlirpState, nc, nc); > > - s->slirp = slirp_init(restricted, ipv4, net, mask, host, > - ipv6, ip6_prefix, vprefix6_len, ip6_host, > - vhostname, tftp_server_name, > - tftp_export, bootfile, dhcp, > - dns, ip6_dns, dnssearch, vdomainname, > - &slirp_cb, s); > + cfg.version = 3; > + cfg.restricted = restricted; > + cfg.in_enabled = ipv4; > + cfg.vnetwork = net; > + cfg.vnetmask = mask; > + cfg.vhost = host; > + cfg.in6_enabled = ipv6; > + cfg.vprefix_addr6 = ip6_prefix; > + cfg.vprefix_len = vprefix6_len; > + cfg.vhost6 = ip6_host; > + cfg.vhostname = vhostname; > + cfg.tftp_server_name = tftp_server_name; > + cfg.tftp_path = tftp_export; > + cfg.bootfile = bootfile; > + cfg.vdhcp_start = dhcp; > + cfg.vnameserver = dns; > + cfg.vnameserver6 = ip6_dns; > + cfg.vdnssearch = dnssearch; > + cfg.vdomainname = vdomainname; > + s->slirp = slirp_new(&cfg, &slirp_cb, s); > QTAILQ_INSERT_TAIL(&slirp_stacks, s, entry); > > /* > -- > 2.35.1 > > > -- Marc-André Lureau