# ifdef I_SYS_UN
# include <sys/un.h>
# endif
+/* XXX Configure test for <netinet/in_systm.h needed XXX */
+# if defined(NeXT) || defined(__NeXT__)
+# include <netinet/in_systm.h>
+# endif
# ifdef I_NETINET_IN
# include <netinet/in.h>
# endif
STRLEN sockaddrlen;
char * sun_ad = SvPV(sun_sv,sockaddrlen);
char * e;
-
+# ifndef __linux__
+ /* On Linux sockaddrlen on sockets returned by accept, recvfrom,
+ getpeername and getsockname is not equal to sizeof(addr). */
if (sockaddrlen != sizeof(addr)) {
croak("Bad arg length for %s, length is %d, should be %d",
"Socket::unpack_sockaddr_un",
sockaddrlen, sizeof(addr));
}
+# endif
Copy( sun_ad, &addr, sizeof addr, char );