diff options
Diffstat (limited to 'plugins/check_snmp.d/check_snmp_helpers.h')
| -rw-r--r-- | plugins/check_snmp.d/check_snmp_helpers.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/plugins/check_snmp.d/check_snmp_helpers.h b/plugins/check_snmp.d/check_snmp_helpers.h new file mode 100644 index 00000000..0f7780b1 --- /dev/null +++ b/plugins/check_snmp.d/check_snmp_helpers.h | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "./config.h" | ||
| 4 | #include <net-snmp/library/asn1.h> | ||
| 5 | |||
| 6 | check_snmp_test_unit check_snmp_test_unit_init(); | ||
| 7 | int check_snmp_set_thresholds(const char *, check_snmp_test_unit[], size_t, bool); | ||
| 8 | check_snmp_config check_snmp_config_init(); | ||
| 9 | |||
| 10 | typedef struct { | ||
| 11 | oid oid[MAX_OID_LEN]; | ||
| 12 | size_t oid_length; | ||
| 13 | unsigned char type; | ||
| 14 | union { | ||
| 15 | uint64_t uIntVal; | ||
| 16 | int64_t intVal; | ||
| 17 | double doubleVal; | ||
| 18 | } value; | ||
| 19 | char *string_response; | ||
| 20 | } response_value; | ||
| 21 | |||
| 22 | typedef struct { | ||
| 23 | int errorcode; | ||
| 24 | response_value *response_values; | ||
| 25 | } snmp_responces; | ||
| 26 | snmp_responces do_snmp_query(check_snmp_config_snmp_parameters parameters); | ||
| 27 | |||
| 28 | // state is similar to response, but only numerics and a timestamp | ||
| 29 | typedef struct { | ||
| 30 | time_t timestamp; | ||
| 31 | oid oid[MAX_OID_LEN]; | ||
| 32 | size_t oid_length; | ||
| 33 | unsigned char type; | ||
| 34 | union { | ||
| 35 | unsigned long long uIntVal; | ||
| 36 | long long intVal; | ||
| 37 | double doubleVal; | ||
| 38 | } value; | ||
| 39 | } check_snmp_state_entry; | ||
| 40 | |||
| 41 | typedef struct { | ||
| 42 | check_snmp_state_entry state; | ||
| 43 | mp_subcheck sc; | ||
| 44 | } check_snmp_evaluation; | ||
| 45 | check_snmp_evaluation evaluate_single_unit(response_value response, | ||
| 46 | check_snmp_evaluation_parameters eval_params, | ||
| 47 | check_snmp_test_unit test_unit, time_t query_timestamp, | ||
| 48 | check_snmp_state_entry prev_state, | ||
| 49 | bool have_previous_state); | ||
| 50 | |||
| 51 | #define NP_STATE_FORMAT_VERSION 1 | ||
| 52 | |||
| 53 | typedef struct state_data_struct { | ||
| 54 | time_t time; | ||
| 55 | void *data; | ||
| 56 | size_t length; /* Of binary data */ | ||
| 57 | int errorcode; | ||
| 58 | } state_data; | ||
| 59 | |||
| 60 | typedef struct state_key_struct { | ||
| 61 | char *name; | ||
| 62 | char *plugin_name; | ||
| 63 | int data_version; | ||
| 64 | char *_filename; | ||
| 65 | state_data *state_data; | ||
| 66 | } state_key; | ||
| 67 | |||
| 68 | state_data *np_state_read(state_key stateKey); | ||
| 69 | state_key np_enable_state(char *keyname, int expected_data_version, char *plugin_name, int argc, | ||
| 70 | char **argv); | ||
| 71 | void np_state_write_string(state_key stateKey, time_t timestamp, char *stringToStore); | ||
