(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:
Assar Westerlund
1999-12-16 15:45:18 +00:00
parent 97c1814ee5
commit 5c1322ccdd

View File

@@ -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 */