From: Mark Wooding Date: Fri, 28 Jun 2013 20:41:14 +0000 (+0100) Subject: configure.ac, sel/: Check for and use `socklen_t'. X-Git-Tag: 2.2.1~11 X-Git-Url: https://git.distorted.org.uk/~mdw/mLib/commitdiff_plain/0ce34834648838d1ca3c97f024b86181dd33c4ba configure.ac, sel/: Check for and use `socklen_t'. Rather than using `size_t' and hoping for the best. --- diff --git a/configure.ac b/configure.ac index 6fff8c6..c15c647 100644 --- a/configure.ac +++ b/configure.ac @@ -57,6 +57,9 @@ dnl Libraries. AC_SEARCH_LIBS([socket], [socket]) AC_SEARCH_LIBS([gethostbyname], [nsl resolv]) +dnl Types. +AC_CHECK_TYPE([socklen_t], [int]) + dnl Which version of struct msghdr do we have? AC_CHECK_MEMBERS([struct msgdr.msg_control],,, [ #include diff --git a/sel/conn.c b/sel/conn.c index a60653a..aee27d4 100644 --- a/sel/conn.c +++ b/sel/conn.c @@ -63,13 +63,13 @@ static void conn_connect(int fd, unsigned mode, void *p) conn *c = p; char buf[PATH_MAX + 8]; /* Big enough */ - size_t sinsz; + socklen_t sinsz; sinsz = sizeof(buf); sel_rmfile(&c->writer); if (getpeername(fd, (struct sockaddr *)buf, &sinsz) < 0) { int err; - size_t errsz = sizeof(err); + socklen_t errsz = sizeof(err); if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &errsz) == 0) errno = err; close(fd); diff --git a/sel/ident.c b/sel/ident.c index bff6ea2..f8ce0c7 100644 --- a/sel/ident.c +++ b/sel/ident.c @@ -346,7 +346,7 @@ void ident_socket(ident_request *rq, sel_state *s, int sk, void (*func)(ident_reply */*i*/, void */*p*/), void *p) { - size_t sinsz; + socklen_t sinsz; if ((sinsz = sizeof(struct sockaddr_in), getsockname(sk, (struct sockaddr *)&rq->local, &sinsz)) || (sinsz = sizeof(struct sockaddr_in),