On 04/03/2017 02:18 PM, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>
> The socket structure has a pair of unions for lhost and fhost
> addresses; the unions are identical so split them out into
> a separate union declaration.
>
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> slirp/socket.h | 18 ++++++++----------
> 1 file changed, 8 insertions(+), 10 deletions(-)
>
> diff --git a/slirp/socket.h b/slirp/socket.h
> index 8feed2a..c1be77e 100644
> --- a/slirp/socket.h
> +++ b/slirp/socket.h
> @@ -15,6 +15,12 @@
> * Our socket structure
> */
>
> +union slirp_sockaddr {
> + struct sockaddr_storage ss;
> + struct sockaddr_in sin;
> + struct sockaddr_in6 sin6;
> +};
> +
> struct socket {
> struct socket *so_next,*so_prev; /* For a linked list of sockets */
>
> @@ -31,22 +37,14 @@ struct socket {
> struct tcpiphdr *so_ti; /* Pointer to the original ti within
> * so_mconn, for non-blocking connections */
> int so_urgc;
> - union { /* foreign host */
> - struct sockaddr_storage ss;
> - struct sockaddr_in sin;
> - struct sockaddr_in6 sin6;
> - } fhost;
> + union slirp_sockaddr fhost; /* Foreign host */
> #define so_faddr fhost.sin.sin_addr
> #define so_fport fhost.sin.sin_port
> #define so_faddr6 fhost.sin6.sin6_addr
> #define so_fport6 fhost.sin6.sin6_port
> #define so_ffamily fhost.ss.ss_family
>
> - union { /* local host */
> - struct sockaddr_storage ss;
> - struct sockaddr_in sin;
> - struct sockaddr_in6 sin6;
> - } lhost;
> + union slirp_sockaddr lhost; /* Local host */
> #define so_laddr lhost.sin.sin_addr
> #define so_lport lhost.sin.sin_port
> #define so_laddr6 lhost.sin6.sin6_addr
>