From 57161a7eaa22a66f632654ea16f5e8b8f37049c4 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 8 Mar 2023 16:31:16 +0100 Subject: [PATCH] glib-aux: make NMIPAddr a plain union It is slightly confusing to be required to be aware whether something is a union or a struct. Hence, the union was wrapped in a struct. However, we anyway almost always use the typedef NMIPAddr. The single place where we forward declare the type, we can correctly use the union specifier. --- src/libnm-glib-aux/nm-inet-utils.h | 14 ++++++-------- src/libnm-glib-aux/nm-shared-utils.h | 4 ++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/libnm-glib-aux/nm-inet-utils.h b/src/libnm-glib-aux/nm-inet-utils.h index 5540f3efd..2938075af 100644 --- a/src/libnm-glib-aux/nm-inet-utils.h +++ b/src/libnm-glib-aux/nm-inet-utils.h @@ -3,14 +3,12 @@ #ifndef __NM_INET_UTILS_H__ #define __NM_INET_UTILS_H__ -typedef struct _NMIPAddr { - union { - guint8 addr_ptr[sizeof(struct in6_addr)]; - in_addr_t addr4; - struct in_addr addr4_struct; - struct in6_addr addr6; - guint8 array[sizeof(struct in6_addr)]; - }; +typedef union _NMIPAddr { + guint8 addr_ptr[sizeof(struct in6_addr)]; + in_addr_t addr4; + struct in_addr addr4_struct; + struct in6_addr addr6; + guint8 array[sizeof(struct in6_addr)]; } NMIPAddr; #define NM_IP_ADDR_INIT \ diff --git a/src/libnm-glib-aux/nm-shared-utils.h b/src/libnm-glib-aux/nm-shared-utils.h index 5ccd5f779..618e34853 100644 --- a/src/libnm-glib-aux/nm-shared-utils.h +++ b/src/libnm-glib-aux/nm-shared-utils.h @@ -200,9 +200,9 @@ typedef struct { #define NM_ETHER_ADDR_INIT(...) ((NMEtherAddr) _NM_ETHER_ADDR_INIT(__VA_ARGS__)) -struct _NMIPAddr; +union _NMIPAddr; -extern const struct _NMIPAddr nm_ip_addr_zero; +extern const union _NMIPAddr nm_ip_addr_zero; /* Let's reuse nm_ip_addr_zero also for nm_ether_addr_zero. It's a union that * also contains a NMEtherAddr field. */