The usual idiom to cope with systems not defining socklen_t is to add a
authormiod <miod@openbsd.org>
Wed, 23 Apr 2014 20:59:36 +0000 (20:59 +0000)
committermiod <miod@openbsd.org>
Wed, 23 Apr 2014 20:59:36 +0000 (20:59 +0000)
commitde05ecf1c0598cc7a22427b4f5d8d565dc9627b7
treeb61abf8d3ebb1d195cb03dca2d37d482ddd6d64d
parent4ac4574b343326b58b1df7d660ba5ba7912102b7
The usual idiom to cope with systems not defining socklen_t is to add a
#define socklen_t int
somewhere (or a typedef, whatever gives you an integer type of the size
your system expects as the 3rd argument of accept(2), really).

OpenSSL here is a bit more creative by using an union of an int and a size_t,
and extra code if sizeof(int) != sizeof(size_t) in order to recover the
proper size. With a comment mentioning that this has no chance to work on
a platform with a stack growing up and accept() returning an int, fortunately
this seems to work on HP-UX.

Switch to the light side of the force and declare and use socklen_t variables,
period. If your system does not define socklen_t, consider bringing it back
to your vendor for a refund.

ok matthew@ tedu@
lib/libcrypto/bio/b_sock.c
lib/libcrypto/bio/bss_dgram.c
lib/libssl/src/crypto/bio/b_sock.c
lib/libssl/src/crypto/bio/bss_dgram.c