[master] ab05eda Test getsockopt, not just setsockopt in configure.ac
Tollef Fog Heen
tfheen at varnish-cache.org
Tue Mar 8 10:35:56 CET 2011
commit ab05edab53ce7d40185db8c7d9153cd92e9f50ef
Author: Tollef Fog Heen <tfheen at varnish-software.com>
Date: Tue Mar 8 10:34:12 2011 +0100
Test getsockopt, not just setsockopt in configure.ac
Fixes: #853
diff --git a/configure.ac b/configure.ac
index d7f5b94..19b194c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -351,7 +351,13 @@ AC_CACHE_CHECK([whether SO_RCVTIMEO works],
]],[[
int sd = socket(AF_INET, SOCK_STREAM, 0);
struct timeval tv = { 1, 0 };
-return !!setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof tv);
+if (setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof tv) == 0) {
+ socklen_t l = sizeof tv;
+ if (getsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &tv_get, &l) == 0) {
+ return (l == sizeof tv);
+ }
+}
+return 1;
]])],
[ac_cv_so_rcvtimeo_works=yes],
[ac_cv_so_rcvtimeo_works=no])
@@ -370,7 +376,13 @@ AC_CACHE_CHECK([whether SO_SNDTIMEO works],
]],[[
int sd = socket(AF_INET, SOCK_STREAM, 0);
struct timeval tv = { 1, 0 };
-return !!setsockopt(sd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof tv);
+if (setsockopt(sd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof tv) == 0) {
+ socklen_t l = sizeof tv;
+ if (getsockopt(sd, SOL_SOCKET, SO_SNDTIMEO, &tv_get, &l) == 0) {
+ return (l == sizeof tv);
+ }
+}
+return 1;
]])],
[ac_cv_so_sndtimeo_works=yes],
[ac_cv_so_sndtimeo_works=no])
More information about the varnish-commit
mailing list