My system has the same problem - struct sockaddr_storage is defined in
/usr/include/bits/socket.h :
struct sockaddr_storage { __SOCKADDR_COMMON (__ss_); /* Address family, etc. */ __ss_aligntype __ss_align; /*
Forcedesired alignment. */ char __ss_padding[_SS_PADSIZE]; };
Where SOCKADDR_COMMON is defined in sockaddr.h as :
#define __SOCKADDR_COMMON(sa_prefix) \ sa_family_t sa_prefix##family
That means on my machine it needs __ss_family and not ss_family
Kernel 2.4.18
SuSE 7.1
I changed ss_family to __ss_family and it compiles fine (also in an ip.c &
fe-connect.c IIRC) ...
On Tuesday 17 June 2003 9:49 pm, Kurt Roeckx wrote:
> On Tue, Jun 17, 2003 at 03:32:32PM -0500, Bruno Wolff III wrote:
> > I was looking at this some more and now think there is something wrong
> > with the references to ss_family rather than a missing inlcude file.
> > Perhaps those were supposed to be references to sa_family or there
> > is a missing field from the socket_storage type definition.
>
> The struct sockaddr_storage should only have 1 field you can use
> and that is ss_family. The other fields are there just to get
> the right size and padding.
>
> Does your system have it's own (broken?) struct sockaddr_storage
> maybe?
>
>
> Kurt
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster