projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'collectd-5.5' into collectd-5.6
[collectd.git]
/
src
/
daemon
/
common.c
diff --git
a/src/daemon/common.c
b/src/daemon/common.c
index
05b1199
..
212d72c
100644
(file)
--- a/
src/daemon/common.c
+++ b/
src/daemon/common.c
@@
-60,7
+60,7
@@
# include <arpa/inet.h>
#endif
# include <arpa/inet.h>
#endif
-#if
def HAVE_SYS_CAPABILITY_H
+#if
HAVE_CAPABILITY
# include <sys/capability.h>
#endif
# include <sys/capability.h>
#endif
@@
-68,6
+68,11
@@
extern kstat_ctl_t *kc;
#endif
extern kstat_ctl_t *kc;
#endif
+/* AIX doesn't have MSG_DONTWAIT */
+#ifndef MSG_DONTWAIT
+# define MSG_DONTWAIT MSG_NONBLOCK
+#endif
+
#if !HAVE_GETPWNAM_R
static pthread_mutex_t getpwnam_r_lock = PTHREAD_MUTEX_INITIALIZER;
#endif
#if !HAVE_GETPWNAM_R
static pthread_mutex_t getpwnam_r_lock = PTHREAD_MUTEX_INITIALIZER;
#endif
@@
-1124,7
+1129,7
@@
int parse_value (const char *value_orig, value_t *ret_value, int ds_type)
}
if (value == endptr) {
}
if (value == endptr) {
- ERROR ("parse_value: Failed to parse string as %s:
%s
.",
+ ERROR ("parse_value: Failed to parse string as %s:
\"%s\"
.",
DS_TYPE_TO_STRING (ds_type), value);
sfree (value);
return -1;
DS_TYPE_TO_STRING (ds_type), value);
sfree (value);
return -1;
@@
-1673,51
+1678,25
@@
void strarray_free (char **array, size_t array_len) /* {{{ */
sfree (array);
} /* }}} void strarray_free */
sfree (array);
} /* }}} void strarray_free */
-#if
def HAVE_SYS_CAPABILITY_H
-int check_capability (int
capability
) /* {{{ */
+#if
HAVE_CAPABILITY
+int check_capability (int
arg
) /* {{{ */
{
{
-#ifdef _LINUX_CAPABILITY_VERSION_3
- cap_user_header_t cap_header = calloc(1, sizeof (*cap_header));
- if (cap_header == NULL)
- {
- ERROR("check_capability: calloc failed");
- return (-1);
- }
+ cap_value_t cap = (cap_value_t) arg;
- cap_user_data_t cap_data = calloc(1, sizeof (*cap_data));
- if (cap_data == NULL)
- {
- ERROR("check_capability: calloc failed");
- sfree(cap_header);
+ if (!CAP_IS_SUPPORTED (cap))
return (-1);
return (-1);
- }
- cap_header->pid = getpid();
- cap_header->version = _LINUX_CAPABILITY_VERSION;
- if (capget(cap_header, cap_data) < 0)
- {
- ERROR("check_capability: capget failed");
- sfree(cap_header);
- sfree(cap_data);
+ int have_cap = cap_get_bound (cap);
+ if (have_cap != 1)
return (-1);
return (-1);
- }
- if ((cap_data->effective & (1 << capability)) == 0)
- {
- sfree(cap_header);
- sfree(cap_data);
- return (-1);
- }
- else
- {
- sfree(cap_header);
- sfree(cap_data);
- return (0);
- }
+ return (0);
+} /* }}} int check_capability */
#else
#else
+int check_capability (__attribute__((unused)) int arg) /* {{{ */
+{
WARNING ("check_capability: unsupported capability implementation. "
WARNING ("check_capability: unsupported capability implementation. "
- "Some plugin(s) may require elevated privileges to work properly.");
+
"Some plugin(s) may require elevated privileges to work properly.");
return (0);
return (0);
-#endif /* _LINUX_CAPABILITY_VERSION_3 */
} /* }}} int check_capability */
} /* }}} int check_capability */
-#endif /* HAVE_
SYS_CAPABILITY_H
*/
+#endif /* HAVE_
CAPABILITY
*/