char *name;
char *address;
int version;
- int timeout;
+ cdtime_t timeout;
int retries;
/* snmpv1/2 options */
return 0;
} /* int csnmp_config_add_host_address */
-static int csnmp_config_add_host_timeout(host_definition_t *hd,
- oconfig_item_t *ci) {
- int timeout;
-
- if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_NUMBER)) {
- WARNING("snmp plugin: `Timeout' must be a number");
- return -1;
- }
-
- timeout = (int)ci->values[0].value.number;
- if (timeout < 0) {
- WARNING("snmp plugin: `Timeout' must not be negative");
- return -1;
- }
-
- /* net-snmp library timeout is in microseconds */
- hd->timeout = timeout * 1000000;
-
- return 0;
-} /* int csnmp_config_add_host_timeout */
-
-static int csnmp_config_add_host_retries(host_definition_t *hd,
- oconfig_item_t *ci) {
- int retries;
-
-
- if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_NUMBER)) {
- WARNING("snmp plugin: `Retries' must be a number");
- return -1;
- }
-
- retries = (int)ci->values[0].value.number;
- if (retries < 0) {
- WARNING("snmp plugin: `Retries' must not be negative");
- return -1;
- }
-
- hd->retries = retries;
-
- return 0;
-} /* int csnmp_config_add_host_retries */
-
static int csnmp_config_add_host_collect(host_definition_t *host,
oconfig_item_t *ci) {
data_definition_t *data;
hd->sess_handle = NULL;
hd->interval = 0;
- /* A negative value means that we have not set a timeout or retry value */
- hd->timeout = -1;
+ /* These mean that we have not set a timeout or retry value */
+ hd->timeout = 0;
hd->retries = -1;
for (int i = 0; i < ci->children_num; i++) {
else if (strcasecmp("Version", option->key) == 0)
status = csnmp_config_add_host_version(hd, option);
else if (strcasecmp("Timeout", option->key) == 0)
- status = csnmp_config_add_host_timeout(hd, option);
+ cf_util_get_cdtime(option, &hd->timeout);
else if (strcasecmp("Retries", option->key) == 0)
- status = csnmp_config_add_host_retries(hd, option);
+ cf_util_get_int(option, &hd->retries);
else if (strcasecmp("Collect", option->key) == 0)
csnmp_config_add_host_collect(hd, option);
else if (strcasecmp("Interval", option->key) == 0)
}
/* Set timeout & retries, if they have been changed from the default */
- if (host->timeout >= 0) {
- sess.timeout = host->timeout;
+ if (host->timeout != 0) {
+ /* net-snmp expects microseconds */
+ sess.timeout = CDTIME_T_TO_US(host->timeout);
}
if (host->retries >= 0) {
sess.retries = host->retries;
snmp_free_pdu(res);
res = NULL;
-
if (status == 0)
csnmp_dispatch_table(host, data, instance_list_head, value_list_head);