diff options
| author | Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> | 2025-05-16 09:07:35 +0200 |
|---|---|---|
| committer | Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> | 2025-05-16 12:46:56 +0200 |
| commit | 6b86583e0d3db92cc5e87af97f4d204bc0e797f3 (patch) | |
| tree | 7d92772168f9e188cf8832cead64be6971da1afc | |
| parent | 9ebde5eb09dbf4b869ffd6f501d007b9b264e1a9 (diff) | |
| download | monitoring-plugins-6b86583e0d3db92cc5e87af97f4d204bc0e797f3.tar.gz | |
WIP - check_icmp refactor 5
| -rw-r--r-- | plugins-root/check_icmp.c | 27 | ||||
| -rw-r--r-- | plugins-root/check_icmp.d/check_icmp_helpers.c | 4 | ||||
| -rw-r--r-- | plugins-root/check_icmp.d/check_icmp_helpers.h | 4 |
3 files changed, 20 insertions, 15 deletions
diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c index 94f20eec..8565f32d 100644 --- a/plugins-root/check_icmp.c +++ b/plugins-root/check_icmp.c | |||
| @@ -133,12 +133,12 @@ void print_help(); | |||
| 133 | void print_usage(void); | 133 | void print_usage(void); |
| 134 | 134 | ||
| 135 | /* Time related */ | 135 | /* Time related */ |
| 136 | static unsigned int get_timevar(const char * /*str*/); | 136 | static unsigned int get_timevar(const char *str); |
| 137 | static time_t get_timevaldiff(struct timeval earlier, struct timeval later); | 137 | static time_t get_timevaldiff(struct timeval earlier, struct timeval later); |
| 138 | static time_t get_timevaldiff_to_now(struct timeval earlier); | 138 | static time_t get_timevaldiff_to_now(struct timeval earlier); |
| 139 | 139 | ||
| 140 | static in_addr_t get_ip_address(const char * /*ifname*/); | 140 | static in_addr_t get_ip_address(const char *ifname); |
| 141 | static void set_source_ip(char * /*arg*/, int icmp_sock); | 141 | static void set_source_ip(char *arg, int icmp_sock); |
| 142 | 142 | ||
| 143 | /* Receiving data */ | 143 | /* Receiving data */ |
| 144 | static int wait_for_reply(int socket, time_t time_interval, unsigned short icmp_pkt_size, | 144 | static int wait_for_reply(int socket, time_t time_interval, unsigned short icmp_pkt_size, |
| @@ -146,9 +146,9 @@ static int wait_for_reply(int socket, time_t time_interval, unsigned short icmp_ | |||
| 146 | uint16_t sender_id, ping_target **table, unsigned short packets, | 146 | uint16_t sender_id, ping_target **table, unsigned short packets, |
| 147 | unsigned short number_of_targets, check_icmp_state *program_state); | 147 | unsigned short number_of_targets, check_icmp_state *program_state); |
| 148 | 148 | ||
| 149 | static ssize_t recvfrom_wto(int /*sock*/, void * /*buf*/, unsigned int /*len*/, | 149 | static ssize_t recvfrom_wto(int sock, void *buf, unsigned int len, struct sockaddr *saddr, |
| 150 | struct sockaddr * /*saddr*/, time_t *timeout, struct timeval * /*tv*/); | 150 | time_t *timeout, struct timeval *received_timestamp); |
| 151 | static int handle_random_icmp(unsigned char * /*packet*/, struct sockaddr_storage * /*addr*/, | 151 | static int handle_random_icmp(unsigned char *packet, struct sockaddr_storage *addr, |
| 152 | unsigned int *pkt_interval, unsigned int *target_interval, | 152 | unsigned int *pkt_interval, unsigned int *target_interval, |
| 153 | uint16_t sender_id, ping_target **table, unsigned short packets, | 153 | uint16_t sender_id, ping_target **table, unsigned short packets, |
| 154 | unsigned short number_of_targets, check_icmp_state *program_state); | 154 | unsigned short number_of_targets, check_icmp_state *program_state); |
| @@ -195,18 +195,23 @@ static void run_checks(bool order_mode, bool mos_mode, bool rta_mode, bool pl_mo | |||
| 195 | /* Target aquisition */ | 195 | /* Target aquisition */ |
| 196 | typedef struct { | 196 | typedef struct { |
| 197 | int error_code; | 197 | int error_code; |
| 198 | check_icmp_target_container host; | ||
| 199 | } add_host_wrapper; | ||
| 200 | static add_host_wrapper add_host(char *arg, check_icmp_execution_mode mode); | ||
| 201 | typedef struct { | ||
| 202 | int error_code; | ||
| 198 | ping_target *targets; | 203 | ping_target *targets; |
| 199 | unsigned int number_of_targets; | 204 | unsigned int number_of_targets; |
| 200 | } add_target_wrapper; | 205 | } add_target_wrapper; |
| 201 | static add_target_wrapper add_target(char * /*arg*/, int mode); | 206 | static add_target_wrapper add_target(char *arg, check_icmp_execution_mode mode); |
| 202 | 207 | ||
| 203 | typedef struct { | 208 | typedef struct { |
| 204 | int error_code; | 209 | int error_code; |
| 205 | ping_target *target; | 210 | ping_target *target; |
| 206 | } add_target_ip_wrapper; | 211 | } add_target_ip_wrapper; |
| 207 | static add_target_ip_wrapper add_target_ip(char * /*arg*/, struct sockaddr_storage * /*in*/); | 212 | static add_target_ip_wrapper add_target_ip(char *arg, struct sockaddr_storage *address); |
| 208 | 213 | ||
| 209 | static void parse_address(struct sockaddr_storage * /*addr*/, char * /*address*/, socklen_t size); | 214 | static void parse_address(struct sockaddr_storage *addr, char *address, socklen_t size); |
| 210 | 215 | ||
| 211 | static unsigned short icmp_checksum(uint16_t *packet, size_t packet_size); | 216 | static unsigned short icmp_checksum(uint16_t *packet, size_t packet_size); |
| 212 | 217 | ||
| @@ -218,7 +223,7 @@ static void finish(int /*sig*/, bool order_mode, bool mos_mode, bool rta_mode, b | |||
| 218 | ping_target *target_list); | 223 | ping_target *target_list); |
| 219 | 224 | ||
| 220 | /* Error exit */ | 225 | /* Error exit */ |
| 221 | static void crash(const char * /*fmt*/, ...); | 226 | static void crash(const char *fmt, ...); |
| 222 | 227 | ||
| 223 | /** global variables **/ | 228 | /** global variables **/ |
| 224 | static int debug = 0; | 229 | static int debug = 0; |
| @@ -1852,7 +1857,7 @@ static add_target_ip_wrapper add_target_ip(char *arg, struct sockaddr_storage *a | |||
| 1852 | } | 1857 | } |
| 1853 | 1858 | ||
| 1854 | /* wrapper for add_target_ip */ | 1859 | /* wrapper for add_target_ip */ |
| 1855 | static add_target_wrapper add_target(char *arg, const int mode) { | 1860 | static add_target_wrapper add_target(char *arg, const check_icmp_execution_mode mode) { |
| 1856 | struct sockaddr_storage address_storage; | 1861 | struct sockaddr_storage address_storage; |
| 1857 | struct sockaddr_in *sin; | 1862 | struct sockaddr_in *sin; |
| 1858 | struct sockaddr_in6 *sin6; | 1863 | struct sockaddr_in6 *sin6; |
diff --git a/plugins-root/check_icmp.d/check_icmp_helpers.c b/plugins-root/check_icmp.d/check_icmp_helpers.c index 2a521b04..58e13581 100644 --- a/plugins-root/check_icmp.d/check_icmp_helpers.c +++ b/plugins-root/check_icmp.d/check_icmp_helpers.c | |||
| @@ -73,7 +73,7 @@ check_icmp_state check_icmp_state_init() { | |||
| 73 | return tmp; | 73 | return tmp; |
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | rta_host_create_wrapper rta_host_create(char *name, struct sockaddr_storage *address) { | 76 | ping_target_create_wrapper ping_target_create(char *name, struct sockaddr_storage *address) { |
| 77 | struct sockaddr_in *sin; | 77 | struct sockaddr_in *sin; |
| 78 | struct sockaddr_in6 *sin6; | 78 | struct sockaddr_in6 *sin6; |
| 79 | if (address_family == AF_INET) { | 79 | if (address_family == AF_INET) { |
| @@ -82,7 +82,7 @@ rta_host_create_wrapper rta_host_create(char *name, struct sockaddr_storage *add | |||
| 82 | sin6 = (struct sockaddr_in6 *)address; | 82 | sin6 = (struct sockaddr_in6 *)address; |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | rta_host_create_wrapper result = { | 85 | ping_target_create_wrapper result = { |
| 86 | .errorcode = OK, | 86 | .errorcode = OK, |
| 87 | }; | 87 | }; |
| 88 | 88 | ||
diff --git a/plugins-root/check_icmp.d/check_icmp_helpers.h b/plugins-root/check_icmp.d/check_icmp_helpers.h index 7e8a4d9f..3e798f72 100644 --- a/plugins-root/check_icmp.d/check_icmp_helpers.h +++ b/plugins-root/check_icmp.d/check_icmp_helpers.h | |||
| @@ -68,9 +68,9 @@ check_icmp_state check_icmp_state_init(); | |||
| 68 | typedef struct { | 68 | typedef struct { |
| 69 | int errorcode; | 69 | int errorcode; |
| 70 | ping_target host; | 70 | ping_target host; |
| 71 | } rta_host_create_wrapper; | 71 | } ping_target_create_wrapper; |
| 72 | 72 | ||
| 73 | rta_host_create_wrapper rta_host_create(char *name, struct sockaddr_storage *address); | 73 | ping_target_create_wrapper ping_target_create(char *name, struct sockaddr_storage *address); |
| 74 | unsigned int ping_target_list_append(ping_target *list, ping_target *elem); | 74 | unsigned int ping_target_list_append(ping_target *list, ping_target *elem); |
| 75 | 75 | ||
| 76 | void check_icmp_timeout_handler(int, siginfo_t *, void *); | 76 | void check_icmp_timeout_handler(int, siginfo_t *, void *); |
