Hello,

Dr. David Alan Gilbert (git), on Thu 27 Oct 2016 16:32:16 +0100, wrote:
> -    case AF_INET:
> -        qemu_put_be32(f, so->so_faddr.s_addr);
> -        qemu_put_be16(f, so->so_fport);
> -        break;

> +    if (version_id >= 4 && !is_inet) {
> +        error_report("%s: so_ffamily unknown, socket not preserved", 
> __func__);
>      }

Well, no, we need to settle this another way, because we want to be able
to easily add inet6 support here.  At least pave the way in a way that
makes it not unnecessarily hard.  The code you are adding here looks to
me like very hard to rework to make it support the various socket
families.

> +        VMSTATE_UINT16_V(so_ffamily, struct socket, 4),
> +        VMSTATE_UINT32_TEST(so_faddr.s_addr, struct socket,
> +                            slirp_v4_or_newer_ffamily_inet),
> +        VMSTATE_UINT16_TEST(so_fport, struct socket,
> +                            slirp_v4_or_newer_ffamily_inet),

Does VMStat not provide a way to have differing content depending on a
field? (here, so_ffamily)

Samuel

Reply via email to