All of lore.kernel.org
 help / color / mirror / Atom feed
From: Samuel Thibault <samuel.thibault@gnu.org>
To: Michael Tokarev <mjt@tls.msk.ru>
Cc: qemu-devel@nongnu.org
Subject: Re: [PATCH] net/slirp: introduce slirp_os_socket to stay compatible with libslirp past 4.8.0
Date: Thu, 30 Jan 2025 03:13:36 +0100	[thread overview]
Message-ID: <Z5rgUDDB0X58-XZt@begin> (raw)
In-Reply-To: <ZwcMh1Vl9VsTbIRq@begin>

Hello,

Samuel Thibault, le jeu. 10 oct. 2024 01:06:47 +0200, a ecrit:
> Michael Tokarev, le sam. 05 oct. 2024 10:07:53 +0300, a ecrit:
> > libslirp introduced new typedef after 4.8.0, slirp_os_socket, which
> > is defined to SOCKET on windows, which, in turn, is a 64bit number.
> > qemu uses int, so callback function prorotypes changed.
> 
> I have fixed the code in upstream libslirp, to avoid breaking the API
> and ABI, and instead provide new functions & methods so that
> qemu/libslirp can upgrade smoothly.

It is now released in version 4.9.0 of libslirp.

Samuel

> > Introduce
> > slirp_os_socket locally if SLIRP_INVALID_SOCKET is not defined (this
> > define has been introduced together wiht slirp_os_socket type), for
> > libslirp <= 4.8.0, and use it in callback function definitions.
> > 
> > Link: https://gitlab.freedesktop.org/slirp/libslirp/-/commit/72f85005a2307fd0961543e3cea861ad7a4d201e
> > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2603
> > Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
> > ---
> >  net/slirp.c | 10 +++++++---
> >  1 file changed, 7 insertions(+), 3 deletions(-)
> > 
> > diff --git a/net/slirp.c b/net/slirp.c
> > index eb9a456ed4..fa07268cf4 100644
> > --- a/net/slirp.c
> > +++ b/net/slirp.c
> > @@ -98,6 +98,10 @@ typedef struct SlirpState {
> >      GSList *fwd;
> >  } SlirpState;
> >  
> > +#ifndef SLIRP_INVALID_SOCKET /* after 4.8.0 */
> 
> You can instead use SLIRP_CONFIG_VERSION_MAX >= 6, and if so set
> cfg.version to 6 and use the new fields and functions.
> 
> > +typedef int slirp_os_socket;
> > +#endif
> > +
> >  static struct slirp_config_str *slirp_configs;
> >  static QTAILQ_HEAD(, SlirpState) slirp_stacks =
> >      QTAILQ_HEAD_INITIALIZER(slirp_stacks);
> > @@ -247,7 +251,7 @@ static void net_slirp_timer_mod(void *timer, int64_t expire_timer,
> >      timer_mod(&t->timer, expire_timer);
> >  }
> >  
> > -static void net_slirp_register_poll_fd(int fd, void *opaque)
> > +static void net_slirp_register_poll_fd(slirp_os_socket fd, void *opaque)
> >  {
> >  #ifdef WIN32
> >      AioContext *ctxt = qemu_get_aio_context();
> > @@ -260,7 +264,7 @@ static void net_slirp_register_poll_fd(int fd, void *opaque)
> >  #endif
> >  }
> >  
> > -static void net_slirp_unregister_poll_fd(int fd, void *opaque)
> > +static void net_slirp_unregister_poll_fd(slirp_os_socket fd, void *opaque)
> >  {
> >  #ifdef WIN32
> >      if (WSAEventSelect(fd, NULL, 0) != 0) {
> > @@ -314,7 +318,7 @@ static int slirp_poll_to_gio(int events)
> >      return ret;
> >  }
> >  
> > -static int net_slirp_add_poll(int fd, int events, void *opaque)
> > +static int net_slirp_add_poll(slirp_os_socket fd, int events, void *opaque)
> >  {
> >      GArray *pollfds = opaque;
> >      GPollFD pfd = {
> > -- 
> > 2.39.5

-- 
Samuel
c> ah (on trouve fluide glacial sur le net, ou il faut aller dans le monde reel ?)
s> dans le monde reel
c> zut


  reply	other threads:[~2025-01-30  2:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-05  7:07 [PATCH] net/slirp: introduce slirp_os_socket to stay compatible with libslirp past 4.8.0 Michael Tokarev
2024-10-09 23:06 ` Samuel Thibault
2025-01-30  2:13   ` Samuel Thibault [this message]
2025-01-30 10:09     ` Thomas Huth
2025-01-30 10:12       ` Michael Tokarev
2025-01-30 10:15         ` Samuel Thibault

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=Z5rgUDDB0X58-XZt@begin \
    --to=samuel.thibault@gnu.org \
    --cc=mjt@tls.msk.ru \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.