[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sys_socket: sockaddr_storage
From: |
Bruno Haible |
Subject: |
Re: sys_socket: sockaddr_storage |
Date: |
Fri, 8 May 2009 01:44:57 +0200 |
User-agent: |
KMail/1.9.9 |
Simon Josefsson wrote:
> +#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
If the goal is that sizeof (struct sockaddr_storage) == _SS_SIZE, then the
formula is incorrect. It should be
(_SS_SIZE - (max (sizeof (sa_family_t), alignof (__ss_aligntype)) + sizeof
(__ss_aligntype)))
> +#define _SS_SIZE 128
Is this enough for all platforms? Let's see...
- On platforms like FreeBSD 5.2, MacOS X 10.3, NetBSD 3.0, AIX 5.1, OSF/1 5.1,
Haiku, mingw, 'struct sockaddr_storage' is defined with size 128, hence
this bound will also be valid for earlier releases of these OSes.
- IRIX 6.5 has no 'struct sockaddr_storage' but all 'struct sockaddr_*' variants
are less than 64 bytes in size.
- On OpenBSD 3.8 and HP-UX 11.23, 'struct sockaddr_storage' is defined with a
size 256, but actually all 'struct sockaddr_*' variants are less than 64
bytes in size.
- But on Solaris 10, 'struct sockaddr_storage' is defined with a size 256,
and 'struct sockaddr_dl' actually has size 252.
So I would make _SS_SIZE larger, to 256, at least on Solaris.
Bruno
- sys_socket: sockaddr_storage, Simon Josefsson, 2009/05/07
- Re: sys_socket: sockaddr_storage, Tom G. Christensen, 2009/05/07
- Re: sys_socket: sockaddr_storage,
Bruno Haible <=
- Re: sys_socket: sockaddr_storage, Tom G. Christensen, 2009/05/08
- Re: sys_socket: sockaddr_storage, Simon Josefsson, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Bruno Haible, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Bruno Haible, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Bruno Haible, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/10
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/08