- switch (ping)
- {
- case 0:
- if (!(hosts_flags[i] & 0x01))
- syslog (LOG_WARNING, "ping %s: Connection timed out.", hosts[i]);
- hosts_flags[i] |= 0x01;
- break;
-
- case -1:
- if (!(hosts_flags[i] & 0x02))
- syslog (LOG_WARNING, "ping %s: Host or service is not reachable.", hosts[i]);
- hosts_flags[i] |= 0x02;
- break;
-
- case -2:
- syslog (LOG_ERR, "ping %s: Socket error. Ping will be disabled for %i iteration(s).",
- hosts[i], hosts_backoff[i]);
- hosts_disable[i] = hosts_backoff[i];
- if (hosts_backoff[i] < 8192) /* 22 3/4 hours */
- hosts_backoff[i] *= 2;
- hosts_flags[i] |= 0x10;
- break;
-
- case -3:
- if (!(hosts_flags[i] & 0x04))
- syslog (LOG_WARNING, "ping %s: Connection refused.", hosts[i]);
- hosts_flags[i] |= 0x04;
- break;
-
- default:
- if (hosts_flags[i] != 0x00)
- syslog (LOG_NOTICE, "ping %s: Back to normal: %ims.", hosts[i], ping);
- hosts_flags[i] = 0x00;
- hosts_backoff[i] = 1;
- ping_submit (ping, hosts[i]);
- } /* switch (ping) */
- } /* for (i = 0; i < num_pinghosts; i++) */
+ latency = ping_iterator_get_latency (iter);
+
+ DBG ("host = %s, latency = %f", host, latency);
+ ping_submit (host, latency);
+
+ free (host); host = NULL;
+ }