configure.ac, sel/: Check for and use `socklen_t'.
authorMark Wooding <mdw@distorted.org.uk>
Fri, 28 Jun 2013 20:41:14 +0000 (21:41 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 28 Jun 2013 20:41:14 +0000 (21:41 +0100)
Rather than using `size_t' and hoping for the best.

configure.ac
sel/conn.c
sel/ident.c

index 6fff8c6..c15c647 100644 (file)
@@ -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 <sys/types.h>
index a60653a..aee27d4 100644 (file)
@@ -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);
index bff6ea2..f8ce0c7 100644 (file)
@@ -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),