=== modified file 'src/tools.cc'
--- src/tools.cc	2009-08-28 01:44:26 +0000
+++ src/tools.cc	2009-10-05 11:38:00 +0000
@@ -1243,18 +1243,28 @@
 #if defined(_SQUID_LINUX_)
 
 #if HAVE_SYS_CAPABILITY_H
+/* if we dont have v1 fallback to the ancient ways */
 #ifndef _LINUX_CAPABILITY_VERSION_1
 #define _LINUX_CAPABILITY_VERSION_1 _LINUX_CAPABILITY_VERSION
 #endif
+/* if we dont have v2 pretend the version we used for v1 is usable. */
+#ifndef _LINUX_CAPABILITY_VERSION_2
+#define _LINUX_CAPABILITY_VERSION_2 _LINUX_CAPABILITY_VERSION_1
+#endif
+/* if we dont have v3 pretend the version we used for v2 is usable. */
+#ifndef _LINUX_CAPABILITY_VERSION_3
+#define _LINUX_CAPABILITY_VERSION_3 _LINUX_CAPABILITY_VERSION_2
+#endif
+
     cap_user_header_t head = (cap_user_header_t) xcalloc(1, sizeof(*head));
     cap_user_data_t cap = (cap_user_data_t) xcalloc(1, sizeof(*cap));
 
-    head->version = _LINUX_CAPABILITY_VERSION_1;
+    head->version = _LINUX_CAPABILITY_VERSION_3;
 
     if (capget(head, cap) != 0) {
         debugs(50, DBG_IMPORTANT, "Can't get current capabilities");
-    } else if (head->version != _LINUX_CAPABILITY_VERSION_1) {
-        debugs(50, DBG_IMPORTANT, "Invalid capability version " << head->version << " (expected " << _LINUX_CAPABILITY_VERSION_1 << ")");
+    } else if (head->version != _LINUX_CAPABILITY_VERSION_3) {
+        debugs(50, DBG_IMPORTANT, "Invalid capability version " << head->version << " (expected " << _LINUX_CAPABILITY_VERSION_3 << ")");
     } else {
 
         head->pid = 0;


