c_complain_t complaint;
data_definition_t **data_list;
int data_list_len;
-
int bulk_size;
};
typedef struct host_definition_s host_definition_t;
status = -1;
break;
}
+ if (hd->bulk_size > 0 && hd->version < 2) {
+ WARNING("snmp plugin: Bulk transfers is only available for SNMP v2 and "
+ "later, host '%s' is configured as version '%d'",
+ hd->name, hd->version);
+ }
if (hd->version == 3) {
if (hd->username == NULL) {
WARNING("snmp plugin: `Username' not given for host `%s'", hd->name);
csnmp_oid_type_t oid_list_todo[oid_list_len];
int status;
- size_t i, j;
+ size_t i;
/* `value_list_head' and `value_cells_tail' implement a linked list for each
* value. `instance_cells_head' and `instance_cells_tail' implement a linked
csnmp_cell_value_t **value_cells_head;
csnmp_cell_value_t **value_cells_tail;
- DEBUG("snmp plugin: csnmp_read_table (host = %s, data = %s (%ld))",
- host->name, data->name, data->values_len);
+ DEBUG("snmp plugin: csnmp_read_table (host = %s, data = %s)", host->name,
+ data->name);
if (host->sess_handle == NULL) {
DEBUG("snmp plugin: csnmp_read_table: host->sess_handle == NULL");
status = 0;
while (status == 0) {
- /* If SNMP v2 and later and bulk transfert enabled, use GETBULK PDU */
+ /* If SNMP v2 and later and bulk transfers enabled, use GETBULK PDU */
if (host->version > 1 && host->bulk_size > 0) {
req = snmp_pdu_create(SNMP_MSG_GETBULK);
req->non_repeaters = 0;
continue;
}
+ size_t j;
for (vb = res->variables, j = 0; (vb != NULL);
vb = vb->next_variable, j++) {
+ i = j;
/* If bulk request is active convert value index of the extra value */
if (host->version > 1 && host->bulk_size > 0) {
- i = j % oid_list_todo_num;
- } else {
- i = j;
+ i %= oid_list_todo_num;
}
/* Calculate value index from todo list */
while ((i < oid_list_len) && !oid_list_todo[i]) {