mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-10-01 04:12:07 +00:00
partially fixed bug #37585: IPv6 compatibility (in socket structs)
This commit is contained in:
parent
748b70311e
commit
ae300c98a4
@ -80,6 +80,9 @@ HISTORY
|
|||||||
|
|
||||||
++ Bugfixes:
|
++ Bugfixes:
|
||||||
|
|
||||||
|
2013-06-29: Simon Goldschmidt
|
||||||
|
* inet.h, sockets.h: partially fixed bug #37585: IPv6 compatibility (in socket structs)
|
||||||
|
|
||||||
2013-06-29: Simon Goldschmidt
|
2013-06-29: Simon Goldschmidt
|
||||||
* inet6.h: bug #37585/task #12600: fixed struct in6_addr.s6_addr to conform to spec
|
* inet6.h: bug #37585/task #12600: fixed struct in6_addr.s6_addr to conform to spec
|
||||||
|
|
||||||
|
@ -40,9 +40,14 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* If your port already typedef's in_addr_t, define IN_ADDR_T_DEFINED
|
||||||
|
to prevent this code from redefining it. */
|
||||||
|
#if !defined(in_addr_t) && !defined(IN_ADDR_T_DEFINED)
|
||||||
|
typedef u32_t in_addr_t;
|
||||||
|
#endif
|
||||||
/** For compatibility with BSD code */
|
/** For compatibility with BSD code */
|
||||||
struct in_addr {
|
struct in_addr {
|
||||||
u32_t s_addr;
|
in_addr_t s_addr;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 255.255.255.255 */
|
/** 255.255.255.255 */
|
||||||
|
@ -48,33 +48,54 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* If your port already typedef's sa_family_t, define SA_FAMILY_T_DEFINED
|
||||||
|
to prevent this code from redefining it. */
|
||||||
|
#if !defined(sa_family_t) && !defined(SA_FAMILY_T_DEFINED)
|
||||||
|
typedef u8_t sa_family_t;
|
||||||
|
#endif
|
||||||
|
/* If your port already typedef's in_port_t, define IN_PORT_T_DEFINED
|
||||||
|
to prevent this code from redefining it. */
|
||||||
|
#if !defined(in_port_t) && !defined(IN_PORT_T_DEFINED)
|
||||||
|
typedef u16_t in_port_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* members are in network byte order */
|
/* members are in network byte order */
|
||||||
struct sockaddr_in {
|
struct sockaddr_in {
|
||||||
u8_t sin_len;
|
u8_t sin_len;
|
||||||
u8_t sin_family;
|
sa_family_t sin_family;
|
||||||
u16_t sin_port;
|
in_port_t sin_port;
|
||||||
struct in_addr sin_addr;
|
struct in_addr sin_addr;
|
||||||
#define SIN_ZERO_LEN 8
|
#define SIN_ZERO_LEN 8
|
||||||
char sin_zero[SIN_ZERO_LEN];
|
char sin_zero[SIN_ZERO_LEN];
|
||||||
};
|
};
|
||||||
|
|
||||||
#if LWIP_IPV6
|
#if LWIP_IPV6
|
||||||
struct sockaddr_in6 {
|
struct sockaddr_in6 {
|
||||||
u8_t sin6_len; /* length of this structure */
|
u8_t sin6_len; /* length of this structure */
|
||||||
u8_t sin6_family; /* AF_INET6 */
|
sa_family_t sin6_family; /* AF_INET6 */
|
||||||
u16_t sin6_port; /* Transport layer port # */
|
in_port_t sin6_port; /* Transport layer port # */
|
||||||
u32_t sin6_flowinfo; /* IPv6 flow information */
|
u32_t sin6_flowinfo; /* IPv6 flow information */
|
||||||
struct in6_addr sin6_addr; /* IPv6 address */
|
struct in6_addr sin6_addr; /* IPv6 address */
|
||||||
};
|
};
|
||||||
#endif /* LWIP_IPV6 */
|
#endif /* LWIP_IPV6 */
|
||||||
|
|
||||||
struct sockaddr {
|
struct sockaddr {
|
||||||
u8_t sa_len;
|
u8_t sa_len;
|
||||||
u8_t sa_family;
|
sa_family_t sa_family;
|
||||||
#if LWIP_IPV6
|
#if LWIP_IPV6
|
||||||
u8_t sa_data[22];
|
char sa_data[22];
|
||||||
#else /* LWIP_IPV6 */
|
#else /* LWIP_IPV6 */
|
||||||
u8_t sa_data[14];
|
char sa_data[14];
|
||||||
|
#endif /* LWIP_IPV6 */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sockaddr_storage {
|
||||||
|
u8_t s2_len;
|
||||||
|
sa_family_t ss_family;
|
||||||
|
char s2_data1[2];
|
||||||
|
u32_t s2_data2[3];
|
||||||
|
#if LWIP_IPV6
|
||||||
|
u32_t s2_data3[2];
|
||||||
#endif /* LWIP_IPV6 */
|
#endif /* LWIP_IPV6 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user