* Check recv() return type: int on Linux, ssize_t on OS X.

This commit is contained in:
Sam Hocevar 2007-01-18 12:32:31 +00:00 committed by sam
parent 351b447bfa
commit 73c3d08de7
2 changed files with 15 additions and 6 deletions

View File

@ -32,6 +32,15 @@ AC_TRY_COMPILE([#include <unistd.h>],
AC_DEFINE(READ_USES_SSIZE_T, 1, [Define to 1 if read() uses ssize_t.])],
[AC_MSG_RESULT(int read(... unsigned int);)])
AC_MSG_CHECKING(for recv() return value)
ac_v_recv_t="int"
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/socket.h>],
[ssize_t recv(int s, void *buf, size_t len, int flags);],
[ac_v_recv_t="ssize_t"])
AC_MSG_RESULT($ac_v_recv_t)
AC_DEFINE_UNQUOTED(RECV_T, $ac_v_recv_t, [Define to the recv() return type])
AC_CHECK_FUNCS(getopt_long,
[AC_DEFINE(HAVE_GETOPT_LONG, 1, Define to 1 if you have the `getopt_long' function.)],
[AC_CHECK_LIB(gnugetopt, getopt_long,

View File

@ -80,14 +80,14 @@ static int (*accept_orig) (int sockfd, struct sockaddr *addr,
static int (*socket_orig) (int domain, int type, int protocol);
#endif
#if defined HAVE_RECV
static int (*recv_orig) (int s, void *buf, size_t len, int flags);
static RECV_T (*recv_orig) (int s, void *buf, size_t len, int flags);
#endif
#if defined HAVE_RECVFROM
static int (*recvfrom_orig)(int s, void *buf, size_t len, int flags,
static RECV_T (*recvfrom_orig)(int s, void *buf, size_t len, int flags,
struct sockaddr *from, SOCKLEN_T *fromlen);
#endif
#if defined HAVE_RECVMSG
static int (*recvmsg_orig) (int s, struct msghdr *hdr, int flags);
static RECV_T (*recvmsg_orig) (int s, struct msghdr *hdr, int flags);
#endif
#if defined READ_USES_SSIZE_T
static ssize_t (*read_orig) (int fd, void *buf, size_t count);
@ -195,7 +195,7 @@ int socket(int domain, int type, int protocol)
#endif
#if defined HAVE_RECV
int recv(int s, void *buf, size_t len, int flags)
RECV_T recv(int s, void *buf, size_t len, int flags)
{
int ret;
@ -227,7 +227,7 @@ int recv(int s, void *buf, size_t len, int flags)
#endif
#if defined HAVE_RECVFROM
int recvfrom(int s, void *buf, size_t len, int flags,
RECV_T recvfrom(int s, void *buf, size_t len, int flags,
struct sockaddr *from, SOCKLEN_T *fromlen)
{
int ret;
@ -261,7 +261,7 @@ int recvfrom(int s, void *buf, size_t len, int flags,
#endif
#if defined HAVE_RECVMSG
int recvmsg(int s, struct msghdr *hdr, int flags)
RECV_T recvmsg(int s, struct msghdr *hdr, int flags)
{
ssize_t ret;