3) || ($host["snmp_community"] == "" && $host["snmp_version"] != 3)) { return true; } } $rrd_next_step = api_poller_get_rrd_next_step($rrd_step, $num_rrd_items); return db_execute("insert into poller_item (local_data_id,host_id,action,hostname, snmp_community,snmp_version,snmp_timeout,snmp_username,snmp_password,snmp_port,rrd_name,rrd_path, rrd_num,rrd_step,rrd_next_step,arg1,arg2,arg3) values ($local_data_id," . $host["id"] . ",$poller_action_id,'" . $host["hostname"] . "', '" . $host["snmp_community"] . "','" . $host["snmp_version"] . "','" . $host["snmp_timeout"] . "', '" . $host["snmp_username"] . "','" . $host["snmp_password"] . "','" . $host["snmp_port"] . "', '$data_source_item_name','" . addslashes(clean_up_path(get_data_source_path($local_data_id, true))) . "', '$num_rrd_items','$rrd_step','$rrd_next_step','$arg1','$arg2','$arg3')"); } } function api_poller_get_rrd_next_step($rrd_step=300, $num_rrd_items=1) { global $config; $poller_interval = read_config_option("poller_interval"); $rrd_next_step = 0; if (($rrd_step != $poller_interval) && (isset($poller_interval))){ if (!isset($config["rrd_step_counter"])) { $rrd_step_counter = read_config_option("rrd_step_counter"); }else{ $rrd_step_counter = $config["rrd_step_counter"]; } if ($num_rrd_items == 1) { $config["rrd_num_counter"] = 0; }else{ if (!isset($config["rrd_num_counter"])) { $config["rrd_num_counter"] = 1; }else{ $config["rrd_num_counter"]++; } } $modulus = $rrd_step / $poller_interval; $rrd_next_step = $poller_interval * ($rrd_step_counter % $modulus); if ($num_rrd_items == 1) { $rrd_step_counter++; }else{ if ($num_rrd_items == $config["rrd_num_counter"]) { $rrd_step_counter++; $config["rrd_num_counter"] = 0; } } if ($rrd_step_counter >= $modulus) { $rrd_step_counter = 0; } /* save rrd_step_counter */ $config["rrd_step_counter"] = $rrd_step_counter; db_execute("replace into settings (name, value) values ('rrd_step_counter','$rrd_step_counter')"); } return $rrd_next_step; } ?>