Hash :
d4f6a210
Author :
Date :
2018-01-27T10:57:59
Fix malfunction of socket functions on HP-UX in 64-bit mode. * m4/socketlib.m4 (gl_SOCKETLIB): Add comment. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _HPUX_ALT_XOPEN_SOCKET_API. * modules/accept (Depends-on): Add 'extensions'. * modules/getpeername (Depends-on): Likewise. * modules/getsockname (Depends-on): Likewise. * modules/getsockopt (Depends-on): Likewise. * modules/recvfrom (Depends-on): Likewise. * doc/posix-functions/accept.texi: Mention the HP-UX socklen_t problem. * doc/posix-functions/getpeername.texi: Likewise. * doc/posix-functions/getsockname.texi: Likewise. * doc/posix-functions/getsockopt.texi: Likewise. * doc/posix-functions/recvfrom.texi: Likewise.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
@node accept
@section @code{accept}
@findex accept
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/accept.html}
Gnulib module: accept
Portability problems fixed by Gnulib:
@itemize
@item
On Windows platforms (excluding Cygwin), the descriptors returned by
the @code{accept} function cannot be used in calls to @code{read},
@code{write}, and @code{close}; you have to use @code{recv}, @code{send},
@code{closesocket} in these cases instead.
@item
On Windows platforms (excluding Cygwin), error codes from this function
are not placed in @code{errno}, and @code{WSAGetLastError} must be used
instead.
@item
On HP-UX 11, in 64-bit mode, when the macro @code{_HPUX_ALT_XOPEN_SOCKET_API}
is not defined, this function behaves incorrectly because it is declared
to take a pointer to a 64-bit wide @code{socklen_t} entity but in fact
considers it as a pointer to a 32-bit wide @code{unsigned int} entity.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
On BeOS, the descriptors returned by the @code{accept} function cannot be used
in calls to @code{read}, @code{write}, and @code{close}; you have to use
@code{recv}, @code{send}, @code{closesocket} in these cases instead.
@item
Some platforms don't have a @code{socklen_t} type; in this case this function's
third argument type is @samp{int *}.
@item
On some platforms, this function's third argument type is @samp{void *},
not @samp{socklen_t *}:
Solaris 10.
@end itemize