From 89125ec42335fc10afd746af6a3d405189c8b7d8 Mon Sep 17 00:00:00 2001 From: Hamish Coleman Date: Sun, 25 Jun 2023 11:55:29 +0100 Subject: [PATCH] Use the defined access method for structure. Not all struct sockaddr are going to have the sa_family as their first field. Since there is a named structure member, we can simply use that and let the compiler sort it out. This fixes a bug with at least FreeBSD and allows us to remove the special case for Apple. --- src/wire.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/wire.c b/src/wire.c index 765a8e7..485020f 100644 --- a/src/wire.c +++ b/src/wire.c @@ -687,11 +687,8 @@ int fill_sockaddr (struct sockaddr * addr, // fills struct sockaddr's data into n2n_sock int fill_n2nsock (n2n_sock_t* sock, const struct sockaddr* sa) { -#ifdef __APPLE__ sock->family = sa->sa_family; -#else - sock->family = *(sa_family_t*)sa; -#endif + switch(sock->family) { case AF_INET: { sock->port = ntohs(((struct sockaddr_in*)sa)->sin_port);