X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fping.c;h=5f66aab341f552cadb2d786bde09784d2272b2be;hp=59ddbc9615d3bdac020a22c8741c80b9e9b332ec;hb=d782a871aca61ac966ee8d928930719bd0c05023;hpb=7dcf9ab7675fe91d1bd74998f55031bc3b0480c0 diff --git a/src/ping.c b/src/ping.c index 59ddbc96..5f66aab3 100644 --- a/src/ping.c +++ b/src/ping.c @@ -35,6 +35,10 @@ # include /* NI_MAXHOST */ #endif +#ifdef HAVE_SYS_CAPABILITY_H +# include +#endif + #include #ifndef NI_MAXHOST @@ -447,6 +451,20 @@ static int ping_init (void) /* {{{ */ "Will use a timeout of %gs.", ping_timeout); } +#if defined(HAVE_SYS_CAPABILITY_H) && defined(CAP_NET_RAW) + if (check_capability (CAP_NET_RAW) != 0) + { + if (getuid () == 0) + WARNING ("ping plugin: Running collectd as root, but the CAP_NET_RAW " + "capability is missing. The plugin's read function will probably " + "fail. Is your init system dropping capabilities?"); + else + WARNING ("ping plugin: collectd doesn't have the CAP_NET_RAW capability. " + "If you don't want to run collectd as root, try running \"setcap " + "cap_net_raw=ep\" on the collectd binary."); + } +#endif + return (start_thread ()); } /* }}} int ping_init */