From 0ce34834648838d1ca3c97f024b86181dd33c4ba Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Fri, 28 Jun 2013 21:41:14 +0100 Subject: [PATCH] configure.ac, sel/: Check for and use `socklen_t'. Rather than using `size_t' and hoping for the best. --- configure.ac | 3 +++ sel/conn.c | 4 ++-- sel/ident.c | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) 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), -- 2.11.0