net: Remove s_addr/s6_addr defines from in_addr/in6_addr
Replace #defines for s_addr/s6_addr etc. in in_addr/in6_addr structures within net_ip.h with fixed fileds inside an anonymous union. This prevents intrusive behaviour of net_ip.h, which expands every occurence of s_addr/s6_addr with it's own define, even in other, non-related structures. Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
This commit is contained in:
parent
46592e6398
commit
8592501828
1 changed files with 9 additions and 16 deletions
|
@ -79,27 +79,20 @@ enum net_sock_type {
|
||||||
/** IPv6 address structure */
|
/** IPv6 address structure */
|
||||||
struct in6_addr {
|
struct in6_addr {
|
||||||
union {
|
union {
|
||||||
u8_t u6_addr8[16];
|
u8_t s6_addr[16];
|
||||||
u16_t u6_addr16[8]; /* In big endian */
|
u16_t s6_addr16[8]; /* In big endian */
|
||||||
u32_t u6_addr32[4]; /* In big endian */
|
u32_t s6_addr32[4]; /* In big endian */
|
||||||
} in6_u;
|
};
|
||||||
#define s6_addr in6_u.u6_addr8
|
|
||||||
#define s6_addr16 in6_u.u6_addr16
|
|
||||||
#define s6_addr32 in6_u.u6_addr32
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** IPv4 address */
|
/** IPv4 address */
|
||||||
struct in_addr {
|
struct in_addr {
|
||||||
union {
|
union {
|
||||||
u8_t u4_addr8[4];
|
u8_t s4_addr[4];
|
||||||
u16_t u4_addr16[2]; /* In big endian */
|
u16_t s4_addr16[2]; /* In big endian */
|
||||||
u32_t u4_addr32[1]; /* In big endian */
|
u32_t s4_addr32[1]; /* In big endian */
|
||||||
} in4_u;
|
u32_t s_addr; /* In big endian, for POSIX compatibility. */
|
||||||
#define s4_addr in4_u.u4_addr8
|
};
|
||||||
#define s4_addr16 in4_u.u4_addr16
|
|
||||||
#define s4_addr32 in4_u.u4_addr32
|
|
||||||
|
|
||||||
#define s_addr s4_addr32[0]
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef unsigned short int sa_family_t;
|
typedef unsigned short int sa_family_t;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue