This is a bad aproach ... RFC 2553 mandates that SIN6_LEN be defined in netinet/in.h if sa_len is in struct sockaddr, so the KAME code mostly requires the following changes :
change #ifdef __linux__ to #ifndef SIN6_LENAditionally, Linux appears to have a function in libc, __libc_sa_len() which returns the value that sa_len would be, if it was there. This doesn't exist under Solaris 7 + 107788-01, I'm working out an appropriate macro to do this for me in my port of the KAME apache 1.3.6 + IPv6 to Solaris.
The bug in getaddrinfo() in Sun patch 107788-01 for Solaris 7 has been fixed in Solaris 8. getaddrinfo() now works properly with services and ports not listed in /etc/services.
$Id: IPv6-porting.html,v 1.2 2000/02/07 05:03:02 carl Exp $