(struct sockaddr_storage): redefine with the example code from rfc2553
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@7614 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -438,34 +438,40 @@ typedef int socklen_t;
|
|||||||
typedef unsigned short sa_family_t;
|
typedef unsigned short sa_family_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_IPV6
|
||||||
|
#define _SS_MAXSIZE sizeof(struct sockaddr_in6)
|
||||||
|
#else
|
||||||
|
#define _SS_MAXSIZE sizeof(struct sockaddr_in)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define _SS_ALIGNSIZE sizeof(unsigned long)
|
||||||
|
|
||||||
#if HAVE_STRUCT_SOCKADDR_SA_LEN
|
#if HAVE_STRUCT_SOCKADDR_SA_LEN
|
||||||
|
|
||||||
|
#define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof (sa_family_t) - sizeof(unsigned char))
|
||||||
|
#define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof (sa_family_t) + _SS_PAD1SIZE + _SS_ALIGNSIZE))
|
||||||
|
|
||||||
struct sockaddr_storage {
|
struct sockaddr_storage {
|
||||||
unsigned char __ss_len;
|
unsigned char __ss_len;
|
||||||
sa_family_t __ss_family;
|
sa_family_t __ss_family;
|
||||||
char pad[
|
char __ss_pad1[_SS_PAD1SIZE];
|
||||||
#ifdef HAVE_IPV6
|
unsigned long __ss_align;
|
||||||
sizeof(struct sockaddr_in6)
|
char __ss_pad2[_SS_PAD2SIZE];
|
||||||
#else
|
|
||||||
sizeof(struct sockaddr_in)
|
|
||||||
#endif
|
|
||||||
- sizeof(unsigned char) - sizeof(sa_family_t)];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
#else /* !HAVE_STRUCT_SOCKADDR_SA_LEN */
|
||||||
|
|
||||||
|
#define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof (sa_family_t))
|
||||||
|
#define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof (sa_family_t) + _SS_PAD1SIZE + _SS_ALIGNSIZE))
|
||||||
|
|
||||||
struct sockaddr_storage {
|
struct sockaddr_storage {
|
||||||
sa_family_t __ss_family;
|
sa_family_t __ss_family;
|
||||||
char pad[
|
char __ss_pad1[_SS_PAD1SIZE];
|
||||||
#ifdef HAVE_IPV6
|
unsigned long __ss_align;
|
||||||
sizeof(struct sockaddr_in6)
|
char __ss_pad2[_SS_PAD2SIZE];
|
||||||
#else
|
|
||||||
sizeof(struct sockaddr_in)
|
|
||||||
#endif
|
|
||||||
- sizeof(sa_family_t)];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif /* HAVE_STRUCT_SOCKADDR_SA_LEN */
|
||||||
|
|
||||||
#endif /* HAVE_STRUCT_SOCKADDR_STORAGE */
|
#endif /* HAVE_STRUCT_SOCKADDR_STORAGE */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user