Fixed constant initializer problem in ip_addr_t by having ip6 first

This commit is contained in:
goldsimon 2015-04-10 07:41:40 +02:00
parent ffd45a2261
commit d31dbc6798
3 changed files with 17 additions and 34 deletions

View File

@ -44,24 +44,8 @@
#include "lwip/netif.h"
/* used by IP_ADDR_ANY and IP_ADDR_BROADCAST in ip_addr.h */
const ip_addr_t ip_addr_any = {
#if LWIP_IPV6
{
#endif
IPADDR_ANY
#if LWIP_IPV6
}, IPADDR_TYPE_V4
#endif
};
const ip_addr_t ip_addr_broadcast = {
#if LWIP_IPV6
{
#endif
IPADDR_BROADCAST
#if LWIP_IPV6
}, IPADDR_TYPE_V4
#endif
};
const ip_addr_t ip_addr_any = IPADDR4_INIT(IPADDR_ANY);
const ip_addr_t ip_addr_broadcast = IPADDR4_INIT(IPADDR_BROADCAST);
/**
* Determine if an address is a broadcast address on a network interface

View File

@ -48,13 +48,7 @@
#include "lwip/def.h"
/* used by IP6_ADDR_ANY(6) in ip6_addr.h */
const ip_addr_t ip6_addr_any = {
#if LWIP_IPV4
{ 0ul }, IPADDR_TYPE_V6
#else
0ul, 0ul, 0ul, 0ul
#endif
};
const ip_addr_t ip6_addr_any = IPADDR6_INIT(0xaul, 0xbul, 0xcul, 0xdul);
#ifndef isprint
#define in_range(c, lo, up) ((u8_t)c >= lo && (u8_t)c <= up)

View File

@ -48,8 +48,8 @@ extern "C" {
*/
typedef struct _ip_addr {
union {
ip4_addr_t ip4;
ip6_addr_t ip6;
ip4_addr_t ip4;
} addr;
u8_t type;
} ip_addr_t;
@ -58,6 +58,9 @@ typedef struct _ip_addr {
#define IPADDR_TYPE_V4 0U
#define IPADDR_TYPE_V6 6U
#define IPADDR4_INIT(u32val) { { { u32val, 0ul, 0ul, 0ul } }, IPADDR_TYPE_V4 }
#define IPADDR6_INIT(a, b, c, d) { { { a, b, c, d } }, IPADDR_TYPE_V6 }
#define IP_IS_V6_L(ipaddr) ((ipaddr)->type == IPADDR_TYPE_V6)
#define IP_IS_V6(ipaddr) (((ipaddr) != NULL) && IP_IS_V6_L(ipaddr))
#define IP_SET_TYPE_L(ipaddr, iptype) do { (ipaddr)->type = (iptype); }while(0)
@ -145,12 +148,13 @@ int ipaddr_aton(const char *cp, ip_addr_t *addr);
#if LWIP_IPV4
typedef ip4_addr_t ip_addr_t;
#define IP_IS_V6_L(ipaddr) 0
#define IP_IS_V6(ipaddr) 0
#define IPADDR4_INIT(u32val) { u32val }
#define IP_IS_V6_L(ipaddr) 0
#define IP_IS_V6(ipaddr) 0
#define IP_SET_TYPE_L(ipaddr, iptype)
#define IP_SET_TYPE(ipaddr, iptype)
#define ip4_2_ip(ipaddr, unused) (ipaddr)
#define ip_2_ip4(ipaddr) (ipaddr)
#define ip4_2_ip(ipaddr, unused) (ipaddr)
#define ip_2_ip4(ipaddr) (ipaddr)
#define ip_addr_copy(dest, src) ip4_addr_copy(dest, src)
#define ip_addr_copy_from_ip4(dest, src) ip4_addr_copy(dest, src)
@ -177,12 +181,13 @@ typedef ip4_addr_t ip_addr_t;
#else /* LWIP_IPV4 */
typedef ip6_addr_t ip_addr_t;
#define IP_IS_V6_L(ipaddr) 1
#define IP_IS_V6(ipaddr) 1
#define IPADDR6_INIT(a, b, c, d) { a, b, c, d }
#define IP_IS_V6_L(ipaddr) 1
#define IP_IS_V6(ipaddr) 1
#define IP_SET_TYPE_L(ipaddr, iptype)
#define IP_SET_TYPE(ipaddr, iptype)
#define ip6_2_ip(ipaddr, unused) (ipaddr)
#define ip_2_ip6(ipaddr) (ipaddr)
#define ip6_2_ip(ipaddr, unused) (ipaddr)
#define ip_2_ip6(ipaddr) (ipaddr)
#define ip_addr_copy(dest, src) ip6_addr_copy(dest, src)
#define ip_addr_copy_from_ip6(dest, src) ip6_addr_copy(dest, src)