mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Remove check for accept() argument types
This check was used to accommodate a staggering variety in particular in the type of the third argument of accept(). This is no longer of concern on currently supported systems. We can just use socklen_t in the code and put in a simple check that substitutes int for socklen_t if it's missing, to cover the few stragglers. Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://www.postgresql.org/message-id/3538f4c4-1886-64f2-dcff-aaad8267fb82@enterprisedb.com
This commit is contained in:
@ -3026,7 +3026,7 @@ PerformRadiusTransaction(const char *server, const char *secret, const char *por
|
||||
struct addrinfo hint;
|
||||
struct addrinfo *serveraddrs;
|
||||
int port;
|
||||
ACCEPT_TYPE_ARG3 addrsize;
|
||||
socklen_t addrsize;
|
||||
fd_set fdset;
|
||||
struct timeval endtime;
|
||||
int i,
|
||||
|
@ -1632,7 +1632,7 @@ pq_getkeepalivesidle(Port *port)
|
||||
if (port->default_keepalives_idle == 0)
|
||||
{
|
||||
#ifndef WIN32
|
||||
ACCEPT_TYPE_ARG3 size = sizeof(port->default_keepalives_idle);
|
||||
socklen_t size = sizeof(port->default_keepalives_idle);
|
||||
|
||||
if (getsockopt(port->sock, IPPROTO_TCP, PG_TCP_KEEPALIVE_IDLE,
|
||||
(char *) &port->default_keepalives_idle,
|
||||
@ -1717,7 +1717,7 @@ pq_getkeepalivesinterval(Port *port)
|
||||
if (port->default_keepalives_interval == 0)
|
||||
{
|
||||
#ifndef WIN32
|
||||
ACCEPT_TYPE_ARG3 size = sizeof(port->default_keepalives_interval);
|
||||
socklen_t size = sizeof(port->default_keepalives_interval);
|
||||
|
||||
if (getsockopt(port->sock, IPPROTO_TCP, TCP_KEEPINTVL,
|
||||
(char *) &port->default_keepalives_interval,
|
||||
@ -1800,7 +1800,7 @@ pq_getkeepalivescount(Port *port)
|
||||
|
||||
if (port->default_keepalives_count == 0)
|
||||
{
|
||||
ACCEPT_TYPE_ARG3 size = sizeof(port->default_keepalives_count);
|
||||
socklen_t size = sizeof(port->default_keepalives_count);
|
||||
|
||||
if (getsockopt(port->sock, IPPROTO_TCP, TCP_KEEPCNT,
|
||||
(char *) &port->default_keepalives_count,
|
||||
@ -1875,7 +1875,7 @@ pq_gettcpusertimeout(Port *port)
|
||||
|
||||
if (port->default_tcp_user_timeout == 0)
|
||||
{
|
||||
ACCEPT_TYPE_ARG3 size = sizeof(port->default_tcp_user_timeout);
|
||||
socklen_t size = sizeof(port->default_tcp_user_timeout);
|
||||
|
||||
if (getsockopt(port->sock, IPPROTO_TCP, TCP_USER_TIMEOUT,
|
||||
(char *) &port->default_tcp_user_timeout,
|
||||
|
@ -391,7 +391,7 @@ static void pgstat_recv_tempfile(PgStat_MsgTempFile *msg, int len);
|
||||
void
|
||||
pgstat_init(void)
|
||||
{
|
||||
ACCEPT_TYPE_ARG3 alen;
|
||||
socklen_t alen;
|
||||
struct addrinfo *addrs = NULL,
|
||||
*addr,
|
||||
hints;
|
||||
@ -624,7 +624,7 @@ retry2:
|
||||
{
|
||||
int old_rcvbuf;
|
||||
int new_rcvbuf;
|
||||
ACCEPT_TYPE_ARG3 rcvbufsize = sizeof(old_rcvbuf);
|
||||
socklen_t rcvbufsize = sizeof(old_rcvbuf);
|
||||
|
||||
if (getsockopt(pgStatSock, SOL_SOCKET, SO_RCVBUF,
|
||||
(char *) &old_rcvbuf, &rcvbufsize) < 0)
|
||||
|
@ -62,7 +62,7 @@ struct sockaddr_storage
|
||||
typedef struct
|
||||
{
|
||||
struct sockaddr_storage addr;
|
||||
ACCEPT_TYPE_ARG3 salen;
|
||||
socklen_t salen;
|
||||
} SockAddr;
|
||||
|
||||
/* Configure the UNIX socket location for the well known port. */
|
||||
|
@ -1,17 +1,5 @@
|
||||
/* src/include/pg_config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to the type of arg 1 of 'accept' */
|
||||
#undef ACCEPT_TYPE_ARG1
|
||||
|
||||
/* Define to the type of arg 2 of 'accept' */
|
||||
#undef ACCEPT_TYPE_ARG2
|
||||
|
||||
/* Define to the type of arg 3 of 'accept' */
|
||||
#undef ACCEPT_TYPE_ARG3
|
||||
|
||||
/* Define to the return type of 'accept' */
|
||||
#undef ACCEPT_TYPE_RETURN
|
||||
|
||||
/* Define if building universal (internal helper macro) */
|
||||
#undef AC_APPLE_UNIVERSAL_BUILD
|
||||
|
||||
@ -518,6 +506,9 @@
|
||||
/* Define to 1 if you have the `shm_open' function. */
|
||||
#undef HAVE_SHM_OPEN
|
||||
|
||||
/* Define to 1 if the system has the type `socklen_t'. */
|
||||
#undef HAVE_SOCKLEN_T
|
||||
|
||||
/* Define to 1 if you have spinlocks. */
|
||||
#undef HAVE_SPINLOCKS
|
||||
|
||||
|
@ -37,6 +37,10 @@ typedef SOCKET pgsocket;
|
||||
#define PGINVALID_SOCKET INVALID_SOCKET
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_SOCKLEN_T
|
||||
typedef int socklen_t;
|
||||
#endif
|
||||
|
||||
/* non-blocking */
|
||||
extern bool pg_set_noblock(pgsocket sock);
|
||||
extern bool pg_set_block(pgsocket sock);
|
||||
|
@ -2744,7 +2744,7 @@ keep_going: /* We will come back to here until there is
|
||||
|
||||
case CONNECTION_STARTED:
|
||||
{
|
||||
ACCEPT_TYPE_ARG3 optlen = sizeof(optval);
|
||||
socklen_t optlen = sizeof(optval);
|
||||
|
||||
/*
|
||||
* Write ready, since we've made it here, so the connection
|
||||
|
@ -37,7 +37,7 @@ getpeereid(int sock, uid_t *uid, gid_t *gid)
|
||||
#if defined(SO_PEERCRED)
|
||||
/* Linux: use getsockopt(SO_PEERCRED) */
|
||||
struct ucred peercred;
|
||||
ACCEPT_TYPE_ARG3 so_len = sizeof(peercred);
|
||||
socklen_t so_len = sizeof(peercred);
|
||||
|
||||
if (getsockopt(sock, SOL_SOCKET, SO_PEERCRED, &peercred, &so_len) != 0 ||
|
||||
so_len != sizeof(peercred))
|
||||
@ -48,7 +48,7 @@ getpeereid(int sock, uid_t *uid, gid_t *gid)
|
||||
#elif defined(LOCAL_PEERCRED)
|
||||
/* Debian with FreeBSD kernel: use getsockopt(LOCAL_PEERCRED) */
|
||||
struct xucred peercred;
|
||||
ACCEPT_TYPE_ARG3 so_len = sizeof(peercred);
|
||||
socklen_t so_len = sizeof(peercred);
|
||||
|
||||
if (getsockopt(sock, 0, LOCAL_PEERCRED, &peercred, &so_len) != 0 ||
|
||||
so_len != sizeof(peercred) ||
|
||||
|
@ -205,10 +205,6 @@ sub GenerateFiles
|
||||
# Every symbol in pg_config.h.in must be accounted for here. Set
|
||||
# to undef if the symbol should not be defined.
|
||||
my %define = (
|
||||
ACCEPT_TYPE_ARG1 => 'unsigned int',
|
||||
ACCEPT_TYPE_ARG2 => 'struct sockaddr *',
|
||||
ACCEPT_TYPE_ARG3 => 'int',
|
||||
ACCEPT_TYPE_RETURN => 'unsigned int PASCAL',
|
||||
ALIGNOF_DOUBLE => 8,
|
||||
ALIGNOF_INT => 4,
|
||||
ALIGNOF_LONG => 4,
|
||||
@ -365,6 +361,7 @@ sub GenerateFiles
|
||||
HAVE_SETPROCTITLE_FAST => undef,
|
||||
HAVE_SETSID => undef,
|
||||
HAVE_SHM_OPEN => undef,
|
||||
HAVE_SOCKLEN_T => 1,
|
||||
HAVE_SPINLOCKS => 1,
|
||||
HAVE_SRANDOM => undef,
|
||||
HAVE_STDBOOL_H => 1,
|
||||
|
Reference in New Issue
Block a user