chiark / gitweb /
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 6fff8c68eeeaac51540e54244172402828ed88ec..c15c6478eabd3396f6e276d974a3effddb98413c 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 a60653a1b015371f2a60abf967cdaa6749dae9a4..aee27d4137d66dd9be3009224dfd2c64689b6943 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 bff6ea26fde954acb0bc48548a7b0573c8f68f68..f8ce0c7bd384a108ebdfa15fcd0f015748fa97fd 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),