- case 0:
- if (!(pingerrors[i] & 0x01))
- syslog (LOG_WARNING, "ping %s: Connection timed out.", pinghosts[i]);
- pingerrors[i] |= 0x01;
- break;
-
- case -1:
- if (!(pingerrors[i] & 0x02))
- syslog (LOG_WARNING, "ping %s: Host or service is not reachable.", pinghosts[i]);
- pingerrors[i] |= 0x02;
- break;
-
- case -2:
- syslog (LOG_ERR, "ping %s: Socket error. Ping will be disabled.", pinghosts[i]);
- pingerrors[i] |= 0x10;
- break;
-
- case -3:
- if (!(pingerrors[i] & 0x04))
- syslog (LOG_WARNING, "ping %s: Connection refused.", pinghosts[i]);
- pingerrors[i] |= 0x04;
- break;
-
- default:
- if (pingerrors[i] != 0x00)
- syslog (LOG_NOTICE, "ping %s: Back to normal: %ims.", pinghosts[i], ping);
- pingerrors[i] = 0x00;
- ping_submit (ping, pinghosts[i]);
- } /* switch (ping) */
- } /* for (i = 0; i < num_pinghosts; i++) */
-}
+ WARNING ("ping plugin: ping_iterator_get_info (%s, "
+ "PING_INFO_LATENCY) failed.", host);
+ continue;
+ }
+
+ DEBUG ("ping plugin: host = %s, latency = %f", host, latency);
+ ping_submit (host, latency);
+ number_of_hosts++;
+ }
+
+ if ((number_of_hosts == 0) && (getuid () != 0))
+ {
+ ERROR ("ping plugin: All hosts failed. Try starting collectd as root.");
+ }
+
+ return (number_of_hosts == 0 ? -1 : 0);
+} /* int ping_read */