socklen_t is a strange typedef for the size of a struct sockaddr in accept(), getpeername(), and connect().
The reason for this typedef is that in BSD, those functions took an int*, and the POSIX people screwed it all up when they decided to make such arguments point to an integer of (potentially) another size, under a new typedef. But since we're dealing with pointers here, you can't change the size of the pointer type passed without severely breaking code written for BSD. So, this typedef is rather useless, as any sane library will have to make socklen_t the same as int.
I don't know what the current situation is with the POSIX
folks, but I would hope they got their act together
and made it require
to be an int
. I personally would deprecate
it entirely and return to the tried and true int
seen in the BSD prototypes