qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Christian Schoenebeck <qemu_oss@crudebyte.com>
To: qemu-devel@nongnu.org
Cc: jb-gnumlists@wisemo.com, thuth@redhat.com, jasowang@redhat.com,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: Re: [PATCH] net: print a more actionable error when slirp is not found
Date: Fri, 30 Sep 2022 21:47:29 +0200	[thread overview]
Message-ID: <2973900.g0HVWOepMQ@silver> (raw)
In-Reply-To: <20220929163237.1417215-1-marcandre.lureau@redhat.com>

On Donnerstag, 29. September 2022 18:32:37 CEST Marc-André Lureau wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> If slirp is not found during compile-time, and not manually disabled,
> print a friendly error message, as suggested in the "If your networking
> is failing after updating to the latest git version of QEMU..." thread
> by various people.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  meson.build |  4 ++++
>  net/net.c   | 19 +++++++++++++++++--
>  2 files changed, 21 insertions(+), 2 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index 8dc661363f..4f69d7d0b4 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -657,6 +657,10 @@ if not get_option('slirp').auto() or have_system
>    endif
>  endif
> 
> +if get_option('slirp').disabled()
> +  config_host_data.set('CONFIG_SLIRP_DISABLED', true)
> +endif
> +
>  vde = not_found
>  if not get_option('vde').auto() or have_system or have_tools
>    vde = cc.find_library('vdeplug', has_headers: ['libvdeplug.h'],
> diff --git a/net/net.c b/net/net.c
> index 2db160e063..e6072a5ddd 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -990,14 +990,29 @@ static int net_init_nic(const Netdev *netdev, const
> char *name, return idx;
>  }
> 
> +#if (defined(CONFIG_SLIRP) || !defined(CONFIG_SLIRP_DISABLED))
> +static int net_init_user(const Netdev *netdev, const char *name,
> +                         NetClientState *peer, Error **errp)
> +{
> +#ifdef CONFIG_SLIRP
> +    return net_init_slirp(netdev, name, peer, errp);
> +#else
> +    error_setg(errp,
> +               "Type 'user' is not a supported netdev backend by this QEMU
> build " +               "because the libslirp development files were not
> found during build " +               "of QEMU.");
> +#endif
> +    return -1;
> +}
> +#endif

I just tried this, but somehow it is not working for me. net_init_user() is 
never called and therefore I don't get the error message. That should be 
working if the user launched QEMU without any networking arg, right?

And still, I would find it better if there was also a clear build-time error 
if there was no libslirp and slirp feature was not explicitly disabled.

> 
>  static int (* const net_client_init_fun[NET_CLIENT_DRIVER__MAX])(
>      const Netdev *netdev,
>      const char *name,
>      NetClientState *peer, Error **errp) = {
>          [NET_CLIENT_DRIVER_NIC]       = net_init_nic,
> -#ifdef CONFIG_SLIRP
> -        [NET_CLIENT_DRIVER_USER]      = net_init_slirp,
> +#if (defined(CONFIG_SLIRP) || !defined(CONFIG_SLIRP_DISABLED))
> +        [NET_CLIENT_DRIVER_USER]      = net_init_user,
>  #endif
>          [NET_CLIENT_DRIVER_TAP]       = net_init_tap,
>          [NET_CLIENT_DRIVER_SOCKET]    = net_init_socket,






  reply	other threads:[~2022-09-30 19:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-29 16:32 [PATCH] net: print a more actionable error when slirp is not found marcandre.lureau
2022-09-30 19:47 ` Christian Schoenebeck [this message]
2022-10-02 13:49   ` Marc-André Lureau
2022-10-13 10:14     ` Jakob Bohm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2973900.g0HVWOepMQ@silver \
    --to=qemu_oss@crudebyte.com \
    --cc=jasowang@redhat.com \
    --cc=jb-gnumlists@wisemo.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).