1/************************************************ 2 3 sockport.h - 4 5 $Author: akr $ 6 created at: Fri Apr 30 23:19:34 JST 1999 7 8************************************************/ 9 10#ifndef SOCKPORT_H 11#define SOCKPORT_H 12 13#ifdef SA_LEN 14# define SS_LEN(ss) (ss)->ss_len 15#else 16# ifdef HAVE_SA_LEN 17# define SA_LEN(sa) (sa)->sa_len 18# define SS_LEN(ss) (ss)->ss_len 19# else 20# ifdef AF_INET6 21# define SA_LEN(sa) \ 22 (((sa)->sa_family == AF_INET6) ? sizeof(struct sockaddr_in6) \ 23 : sizeof(struct sockaddr)) 24# define SS_LEN(ss) \ 25 (((ss)->ss_family == AF_INET6) ? sizeof(struct sockaddr_in6) \ 26 : sizeof(struct sockaddr)) 27# else 28 /* by tradition, sizeof(struct sockaddr) covers most of the sockaddrs */ 29# define SA_LEN(sa) (sizeof(struct sockaddr)) 30# define SS_LEN(ss) (sizeof(struct sockaddr)) 31# endif 32# endif 33#endif 34 35#ifdef HAVE_SA_LEN 36# define SET_SA_LEN(sa, len) (void)((sa)->sa_len = (len)) 37# define SET_SS_LEN(ss, len) (void)((ss)->ss_len = (len)) 38#else 39# define SET_SA_LEN(sa, len) (void)(len) 40# define SET_SS_LEN(ss, len) (void)(len) 41#endif 42 43#ifdef HAVE_SIN_LEN 44# define SIN_LEN(si) (si)->sin_len 45# define SET_SIN_LEN(si,len) (si)->sin_len = (len) 46#else 47# define SIN_LEN(si) sizeof(struct sockaddr_in) 48# define SET_SIN_LEN(si,len) 49#endif 50 51#ifndef IN_MULTICAST 52# define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000) 53# define IN_MULTICAST(i) IN_CLASSD(i) 54#endif 55 56#ifndef IN_EXPERIMENTAL 57# define IN_EXPERIMENTAL(i) ((((long)(i)) & 0xe0000000) == 0xe0000000) 58#endif 59 60#ifndef IN_CLASSA_NSHIFT 61# define IN_CLASSA_NSHIFT 24 62#endif 63 64#ifndef IN_LOOPBACKNET 65# define IN_LOOPBACKNET 127 66#endif 67 68#ifndef AF_UNSPEC 69# define AF_UNSPEC 0 70#endif 71 72#ifndef PF_UNSPEC 73# define PF_UNSPEC AF_UNSPEC 74#endif 75 76#ifndef PF_INET 77# define PF_INET AF_INET 78#endif 79 80#if defined(HOST_NOT_FOUND) && !defined(h_errno) && !defined(__CYGWIN__) 81extern int h_errno; 82#endif 83 84#endif 85