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); | ||