diff options
| author | Lorenz Kästle <lorenz.kaestle@netways.de> | 2026-06-10 14:16:33 +0200 |
|---|---|---|
| committer | Lorenz Kästle <lorenz.kaestle@netways.de> | 2026-06-10 14:16:33 +0200 |
| commit | b55444c2b44fcebefbc3b6394d3c8468d6320bca (patch) | |
| tree | f02a4bd900775bd08bf709b390bbeee32b9c7a1c | |
| parent | 47b1b2d754d4809006f6dc1aa13ba9c80405975c (diff) | |
| download | monitoring-plugins-b55444c2.tar.gz | |
Run clang-format on everything once again
| -rw-r--r-- | config_test/child_test.c | 116 | ||||
| -rw-r--r-- | lib/output.h | 2 | ||||
| -rw-r--r-- | lib/parse_ini.c | 3 | ||||
| -rw-r--r-- | lib/perfdata.c | 6 | ||||
| -rw-r--r-- | lib/utils_cmd.h | 10 | ||||
| -rw-r--r-- | plugins/check_by_ssh.c | 3 | ||||
| -rw-r--r-- | plugins/check_curl.d/check_curl_helpers.c | 2 | ||||
| -rw-r--r-- | plugins/check_curl.d/config.h | 1 | ||||
| -rw-r--r-- | plugins/check_disk.plist | 1598 | ||||
| -rw-r--r-- | plugins/check_ide_smart.c | 78 | ||||
| -rw-r--r-- | plugins/check_nagios.c | 33 | ||||
| -rw-r--r-- | plugins/common.h | 4 | ||||
| -rw-r--r-- | plugins/netutils.h | 7 | ||||
| -rw-r--r-- | plugins/sslutils.c | 3 | ||||
| -rw-r--r-- | plugins/utils.c | 1 |
15 files changed, 1747 insertions, 120 deletions
diff --git a/config_test/child_test.c b/config_test/child_test.c index 2add3bcf..21439330 100644 --- a/config_test/child_test.c +++ b/config_test/child_test.c | |||
| @@ -5,73 +5,75 @@ | |||
| 5 | #include <stdio.h> | 5 | #include <stdio.h> |
| 6 | #include <sys/types.h> | 6 | #include <sys/types.h> |
| 7 | #include <signal.h> | 7 | #include <signal.h> |
| 8 | void popen_sigchld_handler (int); | 8 | void popen_sigchld_handler(int); |
| 9 | int childtermd; | 9 | int childtermd; |
| 10 | 10 | ||
| 11 | int main(){ | 11 | int main() { |
| 12 | char str[1024]; | 12 | char str[1024]; |
| 13 | int pipefd[2]; | 13 | int pipefd[2]; |
| 14 | pid_t pid; | 14 | pid_t pid; |
| 15 | int status, died; | 15 | int status, died; |
| 16 | 16 | ||
| 17 | if (signal (SIGCHLD, popen_sigchld_handler) == SIG_ERR) { | 17 | if (signal(SIGCHLD, popen_sigchld_handler) == SIG_ERR) { |
| 18 | printf ("Cannot catch SIGCHLD\n"); | 18 | printf("Cannot catch SIGCHLD\n"); |
| 19 | _exit(-1); | 19 | _exit(-1); |
| 20 | } | 20 | } |
| 21 | 21 | ||
| 22 | pipe (pipefd); | 22 | pipe(pipefd); |
| 23 | switch(pid=fork()){ | 23 | switch (pid = fork()) { |
| 24 | case -1: | 24 | case -1: |
| 25 | printf("can't fork\n"); | 25 | printf("can't fork\n"); |
| 26 | _exit(-1); | 26 | _exit(-1); |
| 27 | 27 | ||
| 28 | case 0 : /* this is the code the child runs */ | 28 | case 0: /* this is the code the child runs */ |
| 29 | close(1); /* close stdout */ | 29 | close(1); /* close stdout */ |
| 30 | /* pipefd[1] is for writing to the pipe. We want the output | 30 | /* pipefd[1] is for writing to the pipe. We want the output |
| 31 | * that used to go to the standard output (file descriptor 1) | 31 | * that used to go to the standard output (file descriptor 1) |
| 32 | * to be written to the pipe. The following command does this, | 32 | * to be written to the pipe. The following command does this, |
| 33 | * creating a new file descriptor 1 (the lowest available) | 33 | * creating a new file descriptor 1 (the lowest available) |
| 34 | * that writes where pipefd[1] goes. */ | 34 | * that writes where pipefd[1] goes. */ |
| 35 | dup (pipefd[1]); /* points pipefd at file descriptor */ | 35 | dup(pipefd[1]); /* points pipefd at file descriptor */ |
| 36 | /* the child isn't going to read from the pipe, so | 36 | /* the child isn't going to read from the pipe, so |
| 37 | * pipefd[0] can be closed */ | 37 | * pipefd[0] can be closed */ |
| 38 | close (pipefd[0]); | 38 | close(pipefd[0]); |
| 39 | 39 | ||
| 40 | /* These are the commands to run, with success commented. dig and nslookup only problems */ | 40 | /* These are the commands to run, with success commented. dig and nslookup only problems */ |
| 41 | /*execl ("/bin/date","date",0);*/ /* 100% */ | 41 | /*execl ("/bin/date","date",0);*/ /* 100% */ |
| 42 | /*execl ("/bin/cat", "cat", "/etc/hosts", 0);*/ /* 100% */ | 42 | /*execl ("/bin/cat", "cat", "/etc/hosts", 0);*/ /* 100% */ |
| 43 | /*execl ("/usr/bin/dig", "dig", "redhat.com", 0);*/ /* 69% */ | 43 | /*execl ("/usr/bin/dig", "dig", "redhat.com", 0);*/ /* 69% */ |
| 44 | /*execl("/bin/sleep", "sleep", "1", 0);*/ /* 100% */ | 44 | /*execl("/bin/sleep", "sleep", "1", 0);*/ /* 100% */ |
| 45 | execl ("/usr/bin/nslookup","nslookup","redhat.com",0); /* 90% (after 100 tests), 40% (after 10 tests) */ | 45 | execl("/usr/bin/nslookup", "nslookup", "redhat.com", |
| 46 | /*execl ("/bin/ping","ping","-c","1","localhost",0);*/ /* 100% */ | 46 | 0); /* 90% (after 100 tests), 40% (after 10 tests) */ |
| 47 | /*execl ("/bin/ping","ping","-c","1","192.168.10.32",0);*/ /* 100% */ | 47 | /*execl ("/bin/ping","ping","-c","1","localhost",0);*/ /* 100% */ |
| 48 | _exit(0); | 48 | /*execl ("/bin/ping","ping","-c","1","192.168.10.32",0);*/ /* 100% */ |
| 49 | _exit(0); | ||
| 49 | 50 | ||
| 50 | default: /* this is the code the parent runs */ | 51 | default: /* this is the code the parent runs */ |
| 51 | 52 | ||
| 52 | close(0); /* close stdin */ | 53 | close(0); /* close stdin */ |
| 53 | /* Set file descriptor 0 (stdin) to read from the pipe */ | 54 | /* Set file descriptor 0 (stdin) to read from the pipe */ |
| 54 | dup (pipefd[0]); | 55 | dup(pipefd[0]); |
| 55 | /* the parent isn't going to write to the pipe */ | 56 | /* the parent isn't going to write to the pipe */ |
| 56 | close (pipefd[1]); | 57 | close(pipefd[1]); |
| 57 | /* Now read from the pipe */ | 58 | /* Now read from the pipe */ |
| 58 | fgets(str, 1023, stdin); | 59 | fgets(str, 1023, stdin); |
| 59 | /*printf("1st line output is %s\n", str);*/ | 60 | /*printf("1st line output is %s\n", str);*/ |
| 60 | 61 | ||
| 61 | /*while (!childtermd);*/ /* Uncomment this line to fix */ | 62 | /*while (!childtermd);*/ /* Uncomment this line to fix */ |
| 62 | 63 | ||
| 63 | died= wait(&status); | 64 | died = wait(&status); |
| 64 | /*printf("died=%d status=%d\n", died, status);*/ | 65 | /*printf("died=%d status=%d\n", died, status);*/ |
| 65 | if (died > 0) _exit(0); | 66 | if (died > 0) { |
| 66 | else _exit(1); | 67 | _exit(0); |
| 67 | } | 68 | } else { |
| 69 | _exit(1); | ||
| 70 | } | ||
| 71 | } | ||
| 68 | } | 72 | } |
| 69 | 73 | ||
| 70 | void | 74 | void popen_sigchld_handler(int signo) { |
| 71 | popen_sigchld_handler (int signo) | 75 | if (signo == SIGCHLD) { |
| 72 | { | 76 | /*printf("Caught sigchld\n");*/ |
| 73 | if (signo == SIGCHLD) { | 77 | childtermd = 1; |
| 74 | /*printf("Caught sigchld\n");*/ | 78 | } |
| 75 | childtermd = 1; | ||
| 76 | } | ||
| 77 | } | 79 | } |
diff --git a/lib/output.h b/lib/output.h index b9cdb07d..37486925 100644 --- a/lib/output.h +++ b/lib/output.h | |||
| @@ -65,7 +65,7 @@ mp_output_detail_level mp_get_level_of_detail(void); | |||
| 65 | */ | 65 | */ |
| 66 | typedef struct mp_check mp_check; | 66 | typedef struct mp_check mp_check; |
| 67 | struct mp_check { | 67 | struct mp_check { |
| 68 | char *summary; // Overall summary, if not set a summary will be automatically generated | 68 | char *summary; // Overall summary, if not set a summary will be automatically generated |
| 69 | char *ok_summary; // (optional) Summary if the overall state is OK | 69 | char *ok_summary; // (optional) Summary if the overall state is OK |
| 70 | mp_subcheck_list *subchecks; | 70 | mp_subcheck_list *subchecks; |
| 71 | 71 | ||
diff --git a/lib/parse_ini.c b/lib/parse_ini.c index 8a54af58..98207051 100644 --- a/lib/parse_ini.c +++ b/lib/parse_ini.c | |||
| @@ -130,7 +130,8 @@ np_arg_list *np_get_defaults(const char *locator, const char *default_section) { | |||
| 130 | 130 | ||
| 131 | np_arg_list *defaults = NULL; | 131 | np_arg_list *defaults = NULL; |
| 132 | if (!read_defaults(inifile, ini_info.stanza, &defaults)) { | 132 | if (!read_defaults(inifile, ini_info.stanza, &defaults)) { |
| 133 | die(STATE_UNKNOWN, _("Invalid section '%s' in config file '%s'\n"), ini_info.stanza, ini_info.file); | 133 | die(STATE_UNKNOWN, _("Invalid section '%s' in config file '%s'\n"), ini_info.stanza, |
| 134 | ini_info.file); | ||
| 134 | } | 135 | } |
| 135 | 136 | ||
| 136 | if (ini_info.file_string_on_heap) { | 137 | if (ini_info.file_string_on_heap) { |
diff --git a/lib/perfdata.c b/lib/perfdata.c index e3710ec7..f57f7c06 100644 --- a/lib/perfdata.c +++ b/lib/perfdata.c | |||
| @@ -253,9 +253,9 @@ char *mp_range_to_string(const mp_range input) { | |||
| 253 | } else { | 253 | } else { |
| 254 | // check for zeroes, so we can use the short form | 254 | // check for zeroes, so we can use the short form |
| 255 | if ((input.start.type == PD_TYPE_NONE) || | 255 | if ((input.start.type == PD_TYPE_NONE) || |
| 256 | ((input.start.type == PD_TYPE_INT) && (input.start.pd_int == 0)) || | 256 | ((input.start.type == PD_TYPE_INT) && (input.start.pd_int == 0)) || |
| 257 | ((input.start.type == PD_TYPE_UINT) && (input.start.pd_uint == 0)) || | 257 | ((input.start.type == PD_TYPE_UINT) && (input.start.pd_uint == 0)) || |
| 258 | ((input.start.type == PD_TYPE_DOUBLE) && (input.start.pd_double == 0))){ | 258 | ((input.start.type == PD_TYPE_DOUBLE) && (input.start.pd_double == 0))) { |
| 259 | // nothing to do here | 259 | // nothing to do here |
| 260 | } else { | 260 | } else { |
| 261 | // Start value is an actual value | 261 | // Start value is an actual value |
diff --git a/lib/utils_cmd.h b/lib/utils_cmd.h index 04a624b8..e4869ce8 100644 --- a/lib/utils_cmd.h +++ b/lib/utils_cmd.h | |||
| @@ -22,13 +22,13 @@ int cmd_run_array(char *const *, output *, output *, int); | |||
| 22 | int cmd_file_read(const char *, output *, int); | 22 | int cmd_file_read(const char *, output *, int); |
| 23 | 23 | ||
| 24 | typedef struct { | 24 | typedef struct { |
| 25 | int error_code; | 25 | int error_code; |
| 26 | int cmd_error_code; | 26 | int cmd_error_code; |
| 27 | output out; | 27 | output out; |
| 28 | output err; | 28 | output err; |
| 29 | } cmd_run_result; | 29 | } cmd_run_result; |
| 30 | cmd_run_result cmd_run2(const char *cmd, int flags); | 30 | cmd_run_result cmd_run2(const char *cmd, int flags); |
| 31 | cmd_run_result cmd_run_array2(char * const *cmd, int flags); | 31 | cmd_run_result cmd_run_array2(char *const *cmd, int flags); |
| 32 | 32 | ||
| 33 | /* only multi-threaded plugins need to bother with this */ | 33 | /* only multi-threaded plugins need to bother with this */ |
| 34 | void cmd_init(void); | 34 | void cmd_init(void); |
diff --git a/plugins/check_by_ssh.c b/plugins/check_by_ssh.c index 4d0c8e7d..178908cf 100644 --- a/plugins/check_by_ssh.c +++ b/plugins/check_by_ssh.c | |||
| @@ -100,8 +100,7 @@ int main(int argc, char **argv) { | |||
| 100 | if (child_result.cmd_error_code == 255 && config.unknown_timeout) { | 100 | if (child_result.cmd_error_code == 255 && config.unknown_timeout) { |
| 101 | mp_subcheck sc_ssh_execution = mp_subcheck_init(); | 101 | mp_subcheck sc_ssh_execution = mp_subcheck_init(); |
| 102 | xasprintf(&sc_ssh_execution.output, "SSH connection failed: %s", | 102 | xasprintf(&sc_ssh_execution.output, "SSH connection failed: %s", |
| 103 | child_result.err.lines > 0 ? child_result.err.line[0] | 103 | child_result.err.lines > 0 ? child_result.err.line[0] : "(no error output)"); |
| 104 | : "(no error output)"); | ||
| 105 | 104 | ||
| 106 | sc_ssh_execution = mp_set_subcheck_state(sc_ssh_execution, STATE_UNKNOWN); | 105 | sc_ssh_execution = mp_set_subcheck_state(sc_ssh_execution, STATE_UNKNOWN); |
| 107 | mp_add_subcheck_to_check(&overall, sc_ssh_execution); | 106 | mp_add_subcheck_to_check(&overall, sc_ssh_execution); |
diff --git a/plugins/check_curl.d/check_curl_helpers.c b/plugins/check_curl.d/check_curl_helpers.c index 5b13a138..4edd0bbf 100644 --- a/plugins/check_curl.d/check_curl_helpers.c +++ b/plugins/check_curl.d/check_curl_helpers.c | |||
| @@ -222,7 +222,7 @@ check_curl_configure_curl(const check_curl_static_curl_config config, | |||
| 222 | 222 | ||
| 223 | bool have_local_resolution = hostname_gets_resolved_locally(working_state); | 223 | bool have_local_resolution = hostname_gets_resolved_locally(working_state); |
| 224 | if (verbose >= 1) { | 224 | if (verbose >= 1) { |
| 225 | printf("* have local name resolution: %s\n", (have_local_resolution ? "true": "false")); | 225 | printf("* have local name resolution: %s\n", (have_local_resolution ? "true" : "false")); |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | /* enable haproxy protocol */ | 228 | /* enable haproxy protocol */ |
diff --git a/plugins/check_curl.d/config.h b/plugins/check_curl.d/config.h index 0a7fa01d..2ff486c9 100644 --- a/plugins/check_curl.d/config.h +++ b/plugins/check_curl.d/config.h | |||
| @@ -118,7 +118,6 @@ typedef struct { | |||
| 118 | bool show_extended_perfdata; | 118 | bool show_extended_perfdata; |
| 119 | bool show_body; | 119 | bool show_body; |
| 120 | 120 | ||
| 121 | |||
| 122 | bool output_format_is_set; | 121 | bool output_format_is_set; |
| 123 | mp_output_format output_format; | 122 | mp_output_format output_format; |
| 124 | } check_curl_config; | 123 | } check_curl_config; |
diff --git a/plugins/check_disk.plist b/plugins/check_disk.plist new file mode 100644 index 00000000..0867cb87 --- /dev/null +++ b/plugins/check_disk.plist | |||
| @@ -0,0 +1,1598 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| 3 | <plist version="1.0"> | ||
| 4 | <dict> | ||
| 5 | <key>clang_version</key> | ||
| 6 | <string>Debian clang version 21.1.8 (3+b1)</string> | ||
| 7 | <key>diagnostics</key> | ||
| 8 | <array> | ||
| 9 | <dict> | ||
| 10 | <key>path</key> | ||
| 11 | <array> | ||
| 12 | <dict> | ||
| 13 | <key>kind</key><string>control</string> | ||
| 14 | <key>edges</key> | ||
| 15 | <array> | ||
| 16 | <dict> | ||
| 17 | <key>start</key> | ||
| 18 | <array> | ||
| 19 | <dict> | ||
| 20 | <key>line</key><integer>368</integer> | ||
| 21 | <key>col</key><integer>2</integer> | ||
| 22 | <key>file</key><integer>0</integer> | ||
| 23 | </dict> | ||
| 24 | <dict> | ||
| 25 | <key>line</key><integer>368</integer> | ||
| 26 | <key>col</key><integer>26</integer> | ||
| 27 | <key>file</key><integer>0</integer> | ||
| 28 | </dict> | ||
| 29 | </array> | ||
| 30 | <key>end</key> | ||
| 31 | <array> | ||
| 32 | <dict> | ||
| 33 | <key>line</key><integer>373</integer> | ||
| 34 | <key>col</key><integer>2</integer> | ||
| 35 | <key>file</key><integer>0</integer> | ||
| 36 | </dict> | ||
| 37 | <dict> | ||
| 38 | <key>line</key><integer>373</integer> | ||
| 39 | <key>col</key><integer>3</integer> | ||
| 40 | <key>file</key><integer>0</integer> | ||
| 41 | </dict> | ||
| 42 | </array> | ||
| 43 | </dict> | ||
| 44 | </array> | ||
| 45 | </dict> | ||
| 46 | <dict> | ||
| 47 | <key>kind</key><string>control</string> | ||
| 48 | <key>edges</key> | ||
| 49 | <array> | ||
| 50 | <dict> | ||
| 51 | <key>start</key> | ||
| 52 | <array> | ||
| 53 | <dict> | ||
| 54 | <key>line</key><integer>373</integer> | ||
| 55 | <key>col</key><integer>2</integer> | ||
| 56 | <key>file</key><integer>0</integer> | ||
| 57 | </dict> | ||
| 58 | <dict> | ||
| 59 | <key>line</key><integer>373</integer> | ||
| 60 | <key>col</key><integer>3</integer> | ||
| 61 | <key>file</key><integer>0</integer> | ||
| 62 | </dict> | ||
| 63 | </array> | ||
| 64 | <key>end</key> | ||
| 65 | <array> | ||
| 66 | <dict> | ||
| 67 | <key>line</key><integer>373</integer> | ||
| 68 | <key>col</key><integer>6</integer> | ||
| 69 | <key>file</key><integer>0</integer> | ||
| 70 | </dict> | ||
| 71 | <dict> | ||
| 72 | <key>line</key><integer>373</integer> | ||
| 73 | <key>col</key><integer>9</integer> | ||
| 74 | <key>file</key><integer>0</integer> | ||
| 75 | </dict> | ||
| 76 | </array> | ||
| 77 | </dict> | ||
| 78 | </array> | ||
| 79 | </dict> | ||
| 80 | <dict> | ||
| 81 | <key>kind</key><string>event</string> | ||
| 82 | <key>location</key> | ||
| 83 | <dict> | ||
| 84 | <key>line</key><integer>373</integer> | ||
| 85 | <key>col</key><integer>6</integer> | ||
| 86 | <key>file</key><integer>0</integer> | ||
| 87 | </dict> | ||
| 88 | <key>ranges</key> | ||
| 89 | <array> | ||
| 90 | <array> | ||
| 91 | <dict> | ||
| 92 | <key>line</key><integer>373</integer> | ||
| 93 | <key>col</key><integer>6</integer> | ||
| 94 | <key>file</key><integer>0</integer> | ||
| 95 | </dict> | ||
| 96 | <dict> | ||
| 97 | <key>line</key><integer>373</integer> | ||
| 98 | <key>col</key><integer>13</integer> | ||
| 99 | <key>file</key><integer>0</integer> | ||
| 100 | </dict> | ||
| 101 | </array> | ||
| 102 | </array> | ||
| 103 | <key>depth</key><integer>0</integer> | ||
| 104 | <key>extended_message</key> | ||
| 105 | <string>Assuming 'argc' is >= 2</string> | ||
| 106 | <key>message</key> | ||
| 107 | <string>Assuming 'argc' is >= 2</string> | ||
| 108 | </dict> | ||
| 109 | <dict> | ||
| 110 | <key>kind</key><string>control</string> | ||
| 111 | <key>edges</key> | ||
| 112 | <array> | ||
| 113 | <dict> | ||
| 114 | <key>start</key> | ||
| 115 | <array> | ||
| 116 | <dict> | ||
| 117 | <key>line</key><integer>373</integer> | ||
| 118 | <key>col</key><integer>6</integer> | ||
| 119 | <key>file</key><integer>0</integer> | ||
| 120 | </dict> | ||
| 121 | <dict> | ||
| 122 | <key>line</key><integer>373</integer> | ||
| 123 | <key>col</key><integer>9</integer> | ||
| 124 | <key>file</key><integer>0</integer> | ||
| 125 | </dict> | ||
| 126 | </array> | ||
| 127 | <key>end</key> | ||
| 128 | <array> | ||
| 129 | <dict> | ||
| 130 | <key>line</key><integer>383</integer> | ||
| 131 | <key>col</key><integer>2</integer> | ||
| 132 | <key>file</key><integer>0</integer> | ||
| 133 | </dict> | ||
| 134 | <dict> | ||
| 135 | <key>line</key><integer>383</integer> | ||
| 136 | <key>col</key><integer>7</integer> | ||
| 137 | <key>file</key><integer>0</integer> | ||
| 138 | </dict> | ||
| 139 | </array> | ||
| 140 | </dict> | ||
| 141 | </array> | ||
| 142 | </dict> | ||
| 143 | <dict> | ||
| 144 | <key>kind</key><string>control</string> | ||
| 145 | <key>edges</key> | ||
| 146 | <array> | ||
| 147 | <dict> | ||
| 148 | <key>start</key> | ||
| 149 | <array> | ||
| 150 | <dict> | ||
| 151 | <key>line</key><integer>383</integer> | ||
| 152 | <key>col</key><integer>2</integer> | ||
| 153 | <key>file</key><integer>0</integer> | ||
| 154 | </dict> | ||
| 155 | <dict> | ||
| 156 | <key>line</key><integer>383</integer> | ||
| 157 | <key>col</key><integer>7</integer> | ||
| 158 | <key>file</key><integer>0</integer> | ||
| 159 | </dict> | ||
| 160 | </array> | ||
| 161 | <key>end</key> | ||
| 162 | <array> | ||
| 163 | <dict> | ||
| 164 | <key>line</key><integer>423</integer> | ||
| 165 | <key>col</key><integer>2</integer> | ||
| 166 | <key>file</key><integer>0</integer> | ||
| 167 | </dict> | ||
| 168 | <dict> | ||
| 169 | <key>line</key><integer>423</integer> | ||
| 170 | <key>col</key><integer>4</integer> | ||
| 171 | <key>file</key><integer>0</integer> | ||
| 172 | </dict> | ||
| 173 | </array> | ||
| 174 | </dict> | ||
| 175 | </array> | ||
| 176 | </dict> | ||
| 177 | <dict> | ||
| 178 | <key>kind</key><string>control</string> | ||
| 179 | <key>edges</key> | ||
| 180 | <array> | ||
| 181 | <dict> | ||
| 182 | <key>start</key> | ||
| 183 | <array> | ||
| 184 | <dict> | ||
| 185 | <key>line</key><integer>423</integer> | ||
| 186 | <key>col</key><integer>2</integer> | ||
| 187 | <key>file</key><integer>0</integer> | ||
| 188 | </dict> | ||
| 189 | <dict> | ||
| 190 | <key>line</key><integer>423</integer> | ||
| 191 | <key>col</key><integer>4</integer> | ||
| 192 | <key>file</key><integer>0</integer> | ||
| 193 | </dict> | ||
| 194 | </array> | ||
| 195 | <key>end</key> | ||
| 196 | <array> | ||
| 197 | <dict> | ||
| 198 | <key>line</key><integer>423</integer> | ||
| 199 | <key>col</key><integer>22</integer> | ||
| 200 | <key>file</key><integer>0</integer> | ||
| 201 | </dict> | ||
| 202 | <dict> | ||
| 203 | <key>line</key><integer>423</integer> | ||
| 204 | <key>col</key><integer>26</integer> | ||
| 205 | <key>file</key><integer>0</integer> | ||
| 206 | </dict> | ||
| 207 | </array> | ||
| 208 | </dict> | ||
| 209 | </array> | ||
| 210 | </dict> | ||
| 211 | <dict> | ||
| 212 | <key>kind</key><string>pop-up</string> | ||
| 213 | <key>location</key> | ||
| 214 | <dict> | ||
| 215 | <key>line</key><integer>423</integer> | ||
| 216 | <key>col</key><integer>22</integer> | ||
| 217 | <key>file</key><integer>0</integer> | ||
| 218 | </dict> | ||
| 219 | <key>ranges</key> | ||
| 220 | <array> | ||
| 221 | <array> | ||
| 222 | <dict> | ||
| 223 | <key>line</key><integer>423</integer> | ||
| 224 | <key>col</key><integer>22</integer> | ||
| 225 | <key>file</key><integer>0</integer> | ||
| 226 | </dict> | ||
| 227 | <dict> | ||
| 228 | <key>line</key><integer>423</integer> | ||
| 229 | <key>col</key><integer>26</integer> | ||
| 230 | <key>file</key><integer>0</integer> | ||
| 231 | </dict> | ||
| 232 | </array> | ||
| 233 | </array> | ||
| 234 | <key>extended_message</key> | ||
| 235 | <string>'index' is < 'argc'</string> | ||
| 236 | <key>message</key> | ||
| 237 | <string>'index' is < 'argc'</string> | ||
| 238 | </dict> | ||
| 239 | <dict> | ||
| 240 | <key>kind</key><string>event</string> | ||
| 241 | <key>location</key> | ||
| 242 | <dict> | ||
| 243 | <key>line</key><integer>423</integer> | ||
| 244 | <key>col</key><integer>22</integer> | ||
| 245 | <key>file</key><integer>0</integer> | ||
| 246 | </dict> | ||
| 247 | <key>ranges</key> | ||
| 248 | <array> | ||
| 249 | <array> | ||
| 250 | <dict> | ||
| 251 | <key>line</key><integer>423</integer> | ||
| 252 | <key>col</key><integer>22</integer> | ||
| 253 | <key>file</key><integer>0</integer> | ||
| 254 | </dict> | ||
| 255 | <dict> | ||
| 256 | <key>line</key><integer>423</integer> | ||
| 257 | <key>col</key><integer>33</integer> | ||
| 258 | <key>file</key><integer>0</integer> | ||
| 259 | </dict> | ||
| 260 | </array> | ||
| 261 | </array> | ||
| 262 | <key>depth</key><integer>0</integer> | ||
| 263 | <key>extended_message</key> | ||
| 264 | <string>Entering loop body</string> | ||
| 265 | <key>message</key> | ||
| 266 | <string>Entering loop body</string> | ||
| 267 | </dict> | ||
| 268 | <dict> | ||
| 269 | <key>kind</key><string>control</string> | ||
| 270 | <key>edges</key> | ||
| 271 | <array> | ||
| 272 | <dict> | ||
| 273 | <key>start</key> | ||
| 274 | <array> | ||
| 275 | <dict> | ||
| 276 | <key>line</key><integer>423</integer> | ||
| 277 | <key>col</key><integer>22</integer> | ||
| 278 | <key>file</key><integer>0</integer> | ||
| 279 | </dict> | ||
| 280 | <dict> | ||
| 281 | <key>line</key><integer>423</integer> | ||
| 282 | <key>col</key><integer>26</integer> | ||
| 283 | <key>file</key><integer>0</integer> | ||
| 284 | </dict> | ||
| 285 | </array> | ||
| 286 | <key>end</key> | ||
| 287 | <array> | ||
| 288 | <dict> | ||
| 289 | <key>line</key><integer>424</integer> | ||
| 290 | <key>col</key><integer>3</integer> | ||
| 291 | <key>file</key><integer>0</integer> | ||
| 292 | </dict> | ||
| 293 | <dict> | ||
| 294 | <key>line</key><integer>424</integer> | ||
| 295 | <key>col</key><integer>4</integer> | ||
| 296 | <key>file</key><integer>0</integer> | ||
| 297 | </dict> | ||
| 298 | </array> | ||
| 299 | </dict> | ||
| 300 | </array> | ||
| 301 | </dict> | ||
| 302 | <dict> | ||
| 303 | <key>kind</key><string>control</string> | ||
| 304 | <key>edges</key> | ||
| 305 | <array> | ||
| 306 | <dict> | ||
| 307 | <key>start</key> | ||
| 308 | <array> | ||
| 309 | <dict> | ||
| 310 | <key>line</key><integer>424</integer> | ||
| 311 | <key>col</key><integer>3</integer> | ||
| 312 | <key>file</key><integer>0</integer> | ||
| 313 | </dict> | ||
| 314 | <dict> | ||
| 315 | <key>line</key><integer>424</integer> | ||
| 316 | <key>col</key><integer>4</integer> | ||
| 317 | <key>file</key><integer>0</integer> | ||
| 318 | </dict> | ||
| 319 | </array> | ||
| 320 | <key>end</key> | ||
| 321 | <array> | ||
| 322 | <dict> | ||
| 323 | <key>line</key><integer>424</integer> | ||
| 324 | <key>col</key><integer>7</integer> | ||
| 325 | <key>file</key><integer>0</integer> | ||
| 326 | </dict> | ||
| 327 | <dict> | ||
| 328 | <key>line</key><integer>424</integer> | ||
| 329 | <key>col</key><integer>12</integer> | ||
| 330 | <key>file</key><integer>0</integer> | ||
| 331 | </dict> | ||
| 332 | </array> | ||
| 333 | </dict> | ||
| 334 | </array> | ||
| 335 | </dict> | ||
| 336 | <dict> | ||
| 337 | <key>kind</key><string>event</string> | ||
| 338 | <key>location</key> | ||
| 339 | <dict> | ||
| 340 | <key>line</key><integer>424</integer> | ||
| 341 | <key>col</key><integer>7</integer> | ||
| 342 | <key>file</key><integer>0</integer> | ||
| 343 | </dict> | ||
| 344 | <key>ranges</key> | ||
| 345 | <array> | ||
| 346 | <array> | ||
| 347 | <dict> | ||
| 348 | <key>line</key><integer>424</integer> | ||
| 349 | <key>col</key><integer>7</integer> | ||
| 350 | <key>file</key><integer>0</integer> | ||
| 351 | </dict> | ||
| 352 | <dict> | ||
| 353 | <key>line</key><integer>424</integer> | ||
| 354 | <key>col</key><integer>37</integer> | ||
| 355 | <key>file</key><integer>0</integer> | ||
| 356 | </dict> | ||
| 357 | </array> | ||
| 358 | </array> | ||
| 359 | <key>depth</key><integer>0</integer> | ||
| 360 | <key>extended_message</key> | ||
| 361 | <string>Assuming the condition is false</string> | ||
| 362 | <key>message</key> | ||
| 363 | <string>Assuming the condition is false</string> | ||
| 364 | </dict> | ||
| 365 | <dict> | ||
| 366 | <key>kind</key><string>control</string> | ||
| 367 | <key>edges</key> | ||
| 368 | <array> | ||
| 369 | <dict> | ||
| 370 | <key>start</key> | ||
| 371 | <array> | ||
| 372 | <dict> | ||
| 373 | <key>line</key><integer>424</integer> | ||
| 374 | <key>col</key><integer>7</integer> | ||
| 375 | <key>file</key><integer>0</integer> | ||
| 376 | </dict> | ||
| 377 | <dict> | ||
| 378 | <key>line</key><integer>424</integer> | ||
| 379 | <key>col</key><integer>12</integer> | ||
| 380 | <key>file</key><integer>0</integer> | ||
| 381 | </dict> | ||
| 382 | </array> | ||
| 383 | <key>end</key> | ||
| 384 | <array> | ||
| 385 | <dict> | ||
| 386 | <key>line</key><integer>427</integer> | ||
| 387 | <key>col</key><integer>2</integer> | ||
| 388 | <key>file</key><integer>0</integer> | ||
| 389 | </dict> | ||
| 390 | <dict> | ||
| 391 | <key>line</key><integer>427</integer> | ||
| 392 | <key>col</key><integer>2</integer> | ||
| 393 | <key>file</key><integer>0</integer> | ||
| 394 | </dict> | ||
| 395 | </array> | ||
| 396 | </dict> | ||
| 397 | </array> | ||
| 398 | </dict> | ||
| 399 | <dict> | ||
| 400 | <key>kind</key><string>control</string> | ||
| 401 | <key>edges</key> | ||
| 402 | <array> | ||
| 403 | <dict> | ||
| 404 | <key>start</key> | ||
| 405 | <array> | ||
| 406 | <dict> | ||
| 407 | <key>line</key><integer>427</integer> | ||
| 408 | <key>col</key><integer>2</integer> | ||
| 409 | <key>file</key><integer>0</integer> | ||
| 410 | </dict> | ||
| 411 | <dict> | ||
| 412 | <key>line</key><integer>427</integer> | ||
| 413 | <key>col</key><integer>2</integer> | ||
| 414 | <key>file</key><integer>0</integer> | ||
| 415 | </dict> | ||
| 416 | </array> | ||
| 417 | <key>end</key> | ||
| 418 | <array> | ||
| 419 | <dict> | ||
| 420 | <key>line</key><integer>423</integer> | ||
| 421 | <key>col</key><integer>2</integer> | ||
| 422 | <key>file</key><integer>0</integer> | ||
| 423 | </dict> | ||
| 424 | <dict> | ||
| 425 | <key>line</key><integer>423</integer> | ||
| 426 | <key>col</key><integer>4</integer> | ||
| 427 | <key>file</key><integer>0</integer> | ||
| 428 | </dict> | ||
| 429 | </array> | ||
| 430 | </dict> | ||
| 431 | </array> | ||
| 432 | </dict> | ||
| 433 | <dict> | ||
| 434 | <key>kind</key><string>event</string> | ||
| 435 | <key>location</key> | ||
| 436 | <dict> | ||
| 437 | <key>line</key><integer>423</integer> | ||
| 438 | <key>col</key><integer>2</integer> | ||
| 439 | <key>file</key><integer>0</integer> | ||
| 440 | </dict> | ||
| 441 | <key>ranges</key> | ||
| 442 | <array> | ||
| 443 | <array> | ||
| 444 | <dict> | ||
| 445 | <key>line</key><integer>423</integer> | ||
| 446 | <key>col</key><integer>2</integer> | ||
| 447 | <key>file</key><integer>0</integer> | ||
| 448 | </dict> | ||
| 449 | <dict> | ||
| 450 | <key>line</key><integer>423</integer> | ||
| 451 | <key>col</key><integer>4</integer> | ||
| 452 | <key>file</key><integer>0</integer> | ||
| 453 | </dict> | ||
| 454 | </array> | ||
| 455 | </array> | ||
| 456 | <key>depth</key><integer>0</integer> | ||
| 457 | <key>extended_message</key> | ||
| 458 | <string>Looping back to the head of the loop</string> | ||
| 459 | <key>message</key> | ||
| 460 | <string>Looping back to the head of the loop</string> | ||
| 461 | </dict> | ||
| 462 | <dict> | ||
| 463 | <key>kind</key><string>control</string> | ||
| 464 | <key>edges</key> | ||
| 465 | <array> | ||
| 466 | <dict> | ||
| 467 | <key>start</key> | ||
| 468 | <array> | ||
| 469 | <dict> | ||
| 470 | <key>line</key><integer>423</integer> | ||
| 471 | <key>col</key><integer>2</integer> | ||
| 472 | <key>file</key><integer>0</integer> | ||
| 473 | </dict> | ||
| 474 | <dict> | ||
| 475 | <key>line</key><integer>423</integer> | ||
| 476 | <key>col</key><integer>4</integer> | ||
| 477 | <key>file</key><integer>0</integer> | ||
| 478 | </dict> | ||
| 479 | </array> | ||
| 480 | <key>end</key> | ||
| 481 | <array> | ||
| 482 | <dict> | ||
| 483 | <key>line</key><integer>423</integer> | ||
| 484 | <key>col</key><integer>22</integer> | ||
| 485 | <key>file</key><integer>0</integer> | ||
| 486 | </dict> | ||
| 487 | <dict> | ||
| 488 | <key>line</key><integer>423</integer> | ||
| 489 | <key>col</key><integer>26</integer> | ||
| 490 | <key>file</key><integer>0</integer> | ||
| 491 | </dict> | ||
| 492 | </array> | ||
| 493 | </dict> | ||
| 494 | </array> | ||
| 495 | </dict> | ||
| 496 | <dict> | ||
| 497 | <key>kind</key><string>event</string> | ||
| 498 | <key>location</key> | ||
| 499 | <dict> | ||
| 500 | <key>line</key><integer>423</integer> | ||
| 501 | <key>col</key><integer>22</integer> | ||
| 502 | <key>file</key><integer>0</integer> | ||
| 503 | </dict> | ||
| 504 | <key>ranges</key> | ||
| 505 | <array> | ||
| 506 | <array> | ||
| 507 | <dict> | ||
| 508 | <key>line</key><integer>423</integer> | ||
| 509 | <key>col</key><integer>22</integer> | ||
| 510 | <key>file</key><integer>0</integer> | ||
| 511 | </dict> | ||
| 512 | <dict> | ||
| 513 | <key>line</key><integer>423</integer> | ||
| 514 | <key>col</key><integer>33</integer> | ||
| 515 | <key>file</key><integer>0</integer> | ||
| 516 | </dict> | ||
| 517 | </array> | ||
| 518 | </array> | ||
| 519 | <key>depth</key><integer>0</integer> | ||
| 520 | <key>extended_message</key> | ||
| 521 | <string>Assuming 'index' is >= 'argc'</string> | ||
| 522 | <key>message</key> | ||
| 523 | <string>Assuming 'index' is >= 'argc'</string> | ||
| 524 | </dict> | ||
| 525 | <dict> | ||
| 526 | <key>kind</key><string>control</string> | ||
| 527 | <key>edges</key> | ||
| 528 | <array> | ||
| 529 | <dict> | ||
| 530 | <key>start</key> | ||
| 531 | <array> | ||
| 532 | <dict> | ||
| 533 | <key>line</key><integer>423</integer> | ||
| 534 | <key>col</key><integer>22</integer> | ||
| 535 | <key>file</key><integer>0</integer> | ||
| 536 | </dict> | ||
| 537 | <dict> | ||
| 538 | <key>line</key><integer>423</integer> | ||
| 539 | <key>col</key><integer>26</integer> | ||
| 540 | <key>file</key><integer>0</integer> | ||
| 541 | </dict> | ||
| 542 | </array> | ||
| 543 | <key>end</key> | ||
| 544 | <array> | ||
| 545 | <dict> | ||
| 546 | <key>line</key><integer>429</integer> | ||
| 547 | <key>col</key><integer>2</integer> | ||
| 548 | <key>file</key><integer>0</integer> | ||
| 549 | </dict> | ||
| 550 | <dict> | ||
| 551 | <key>line</key><integer>429</integer> | ||
| 552 | <key>col</key><integer>4</integer> | ||
| 553 | <key>file</key><integer>0</integer> | ||
| 554 | </dict> | ||
| 555 | </array> | ||
| 556 | </dict> | ||
| 557 | </array> | ||
| 558 | </dict> | ||
| 559 | <dict> | ||
| 560 | <key>kind</key><string>control</string> | ||
| 561 | <key>edges</key> | ||
| 562 | <array> | ||
| 563 | <dict> | ||
| 564 | <key>start</key> | ||
| 565 | <array> | ||
| 566 | <dict> | ||
| 567 | <key>line</key><integer>429</integer> | ||
| 568 | <key>col</key><integer>2</integer> | ||
| 569 | <key>file</key><integer>0</integer> | ||
| 570 | </dict> | ||
| 571 | <dict> | ||
| 572 | <key>line</key><integer>429</integer> | ||
| 573 | <key>col</key><integer>4</integer> | ||
| 574 | <key>file</key><integer>0</integer> | ||
| 575 | </dict> | ||
| 576 | </array> | ||
| 577 | <key>end</key> | ||
| 578 | <array> | ||
| 579 | <dict> | ||
| 580 | <key>line</key><integer>446</integer> | ||
| 581 | <key>col</key><integer>2</integer> | ||
| 582 | <key>file</key><integer>0</integer> | ||
| 583 | </dict> | ||
| 584 | <dict> | ||
| 585 | <key>line</key><integer>446</integer> | ||
| 586 | <key>col</key><integer>6</integer> | ||
| 587 | <key>file</key><integer>0</integer> | ||
| 588 | </dict> | ||
| 589 | </array> | ||
| 590 | </dict> | ||
| 591 | </array> | ||
| 592 | </dict> | ||
| 593 | <dict> | ||
| 594 | <key>kind</key><string>event</string> | ||
| 595 | <key>location</key> | ||
| 596 | <dict> | ||
| 597 | <key>line</key><integer>446</integer> | ||
| 598 | <key>col</key><integer>9</integer> | ||
| 599 | <key>file</key><integer>0</integer> | ||
| 600 | </dict> | ||
| 601 | <key>ranges</key> | ||
| 602 | <array> | ||
| 603 | <array> | ||
| 604 | <dict> | ||
| 605 | <key>line</key><integer>446</integer> | ||
| 606 | <key>col</key><integer>9</integer> | ||
| 607 | <key>file</key><integer>0</integer> | ||
| 608 | </dict> | ||
| 609 | <dict> | ||
| 610 | <key>line</key><integer>446</integer> | ||
| 611 | <key>col</key><integer>12</integer> | ||
| 612 | <key>file</key><integer>0</integer> | ||
| 613 | </dict> | ||
| 614 | </array> | ||
| 615 | </array> | ||
| 616 | <key>depth</key><integer>0</integer> | ||
| 617 | <key>extended_message</key> | ||
| 618 | <string>Entering loop body</string> | ||
| 619 | <key>message</key> | ||
| 620 | <string>Entering loop body</string> | ||
| 621 | </dict> | ||
| 622 | <dict> | ||
| 623 | <key>kind</key><string>control</string> | ||
| 624 | <key>edges</key> | ||
| 625 | <array> | ||
| 626 | <dict> | ||
| 627 | <key>start</key> | ||
| 628 | <array> | ||
| 629 | <dict> | ||
| 630 | <key>line</key><integer>446</integer> | ||
| 631 | <key>col</key><integer>2</integer> | ||
| 632 | <key>file</key><integer>0</integer> | ||
| 633 | </dict> | ||
| 634 | <dict> | ||
| 635 | <key>line</key><integer>446</integer> | ||
| 636 | <key>col</key><integer>6</integer> | ||
| 637 | <key>file</key><integer>0</integer> | ||
| 638 | </dict> | ||
| 639 | </array> | ||
| 640 | <key>end</key> | ||
| 641 | <array> | ||
| 642 | <dict> | ||
| 643 | <key>line</key><integer>447</integer> | ||
| 644 | <key>col</key><integer>3</integer> | ||
| 645 | <key>file</key><integer>0</integer> | ||
| 646 | </dict> | ||
| 647 | <dict> | ||
| 648 | <key>line</key><integer>447</integer> | ||
| 649 | <key>col</key><integer>5</integer> | ||
| 650 | <key>file</key><integer>0</integer> | ||
| 651 | </dict> | ||
| 652 | </array> | ||
| 653 | </dict> | ||
| 654 | </array> | ||
| 655 | </dict> | ||
| 656 | <dict> | ||
| 657 | <key>kind</key><string>control</string> | ||
| 658 | <key>edges</key> | ||
| 659 | <array> | ||
| 660 | <dict> | ||
| 661 | <key>start</key> | ||
| 662 | <array> | ||
| 663 | <dict> | ||
| 664 | <key>line</key><integer>447</integer> | ||
| 665 | <key>col</key><integer>3</integer> | ||
| 666 | <key>file</key><integer>0</integer> | ||
| 667 | </dict> | ||
| 668 | <dict> | ||
| 669 | <key>line</key><integer>447</integer> | ||
| 670 | <key>col</key><integer>5</integer> | ||
| 671 | <key>file</key><integer>0</integer> | ||
| 672 | </dict> | ||
| 673 | </array> | ||
| 674 | <key>end</key> | ||
| 675 | <array> | ||
| 676 | <dict> | ||
| 677 | <key>line</key><integer>448</integer> | ||
| 678 | <key>col</key><integer>3</integer> | ||
| 679 | <key>file</key><integer>0</integer> | ||
| 680 | </dict> | ||
| 681 | <dict> | ||
| 682 | <key>line</key><integer>448</integer> | ||
| 683 | <key>col</key><integer>5</integer> | ||
| 684 | <key>file</key><integer>0</integer> | ||
| 685 | </dict> | ||
| 686 | </array> | ||
| 687 | </dict> | ||
| 688 | </array> | ||
| 689 | </dict> | ||
| 690 | <dict> | ||
| 691 | <key>kind</key><string>control</string> | ||
| 692 | <key>edges</key> | ||
| 693 | <array> | ||
| 694 | <dict> | ||
| 695 | <key>start</key> | ||
| 696 | <array> | ||
| 697 | <dict> | ||
| 698 | <key>line</key><integer>448</integer> | ||
| 699 | <key>col</key><integer>3</integer> | ||
| 700 | <key>file</key><integer>0</integer> | ||
| 701 | </dict> | ||
| 702 | <dict> | ||
| 703 | <key>line</key><integer>448</integer> | ||
| 704 | <key>col</key><integer>5</integer> | ||
| 705 | <key>file</key><integer>0</integer> | ||
| 706 | </dict> | ||
| 707 | </array> | ||
| 708 | <key>end</key> | ||
| 709 | <array> | ||
| 710 | <dict> | ||
| 711 | <key>line</key><integer>451</integer> | ||
| 712 | <key>col</key><integer>7</integer> | ||
| 713 | <key>file</key><integer>0</integer> | ||
| 714 | </dict> | ||
| 715 | <dict> | ||
| 716 | <key>line</key><integer>451</integer> | ||
| 717 | <key>col</key><integer>15</integer> | ||
| 718 | <key>file</key><integer>0</integer> | ||
| 719 | </dict> | ||
| 720 | </array> | ||
| 721 | </dict> | ||
| 722 | </array> | ||
| 723 | </dict> | ||
| 724 | <dict> | ||
| 725 | <key>kind</key><string>event</string> | ||
| 726 | <key>location</key> | ||
| 727 | <dict> | ||
| 728 | <key>line</key><integer>451</integer> | ||
| 729 | <key>col</key><integer>7</integer> | ||
| 730 | <key>file</key><integer>0</integer> | ||
| 731 | </dict> | ||
| 732 | <key>ranges</key> | ||
| 733 | <array> | ||
| 734 | <array> | ||
| 735 | <dict> | ||
| 736 | <key>line</key><integer>451</integer> | ||
| 737 | <key>col</key><integer>7</integer> | ||
| 738 | <key>file</key><integer>0</integer> | ||
| 739 | </dict> | ||
| 740 | <dict> | ||
| 741 | <key>line</key><integer>451</integer> | ||
| 742 | <key>col</key><integer>29</integer> | ||
| 743 | <key>file</key><integer>0</integer> | ||
| 744 | </dict> | ||
| 745 | </array> | ||
| 746 | </array> | ||
| 747 | <key>depth</key><integer>0</integer> | ||
| 748 | <key>extended_message</key> | ||
| 749 | <string>Assuming the condition is true</string> | ||
| 750 | <key>message</key> | ||
| 751 | <string>Assuming the condition is true</string> | ||
| 752 | </dict> | ||
| 753 | <dict> | ||
| 754 | <key>kind</key><string>control</string> | ||
| 755 | <key>edges</key> | ||
| 756 | <array> | ||
| 757 | <dict> | ||
| 758 | <key>start</key> | ||
| 759 | <array> | ||
| 760 | <dict> | ||
| 761 | <key>line</key><integer>451</integer> | ||
| 762 | <key>col</key><integer>7</integer> | ||
| 763 | <key>file</key><integer>0</integer> | ||
| 764 | </dict> | ||
| 765 | <dict> | ||
| 766 | <key>line</key><integer>451</integer> | ||
| 767 | <key>col</key><integer>15</integer> | ||
| 768 | <key>file</key><integer>0</integer> | ||
| 769 | </dict> | ||
| 770 | </array> | ||
| 771 | <key>end</key> | ||
| 772 | <array> | ||
| 773 | <dict> | ||
| 774 | <key>line</key><integer>452</integer> | ||
| 775 | <key>col</key><integer>4</integer> | ||
| 776 | <key>file</key><integer>0</integer> | ||
| 777 | </dict> | ||
| 778 | <dict> | ||
| 779 | <key>line</key><integer>452</integer> | ||
| 780 | <key>col</key><integer>8</integer> | ||
| 781 | <key>file</key><integer>0</integer> | ||
| 782 | </dict> | ||
| 783 | </array> | ||
| 784 | </dict> | ||
| 785 | </array> | ||
| 786 | </dict> | ||
| 787 | <dict> | ||
| 788 | <key>kind</key><string>control</string> | ||
| 789 | <key>edges</key> | ||
| 790 | <array> | ||
| 791 | <dict> | ||
| 792 | <key>start</key> | ||
| 793 | <array> | ||
| 794 | <dict> | ||
| 795 | <key>line</key><integer>452</integer> | ||
| 796 | <key>col</key><integer>4</integer> | ||
| 797 | <key>file</key><integer>0</integer> | ||
| 798 | </dict> | ||
| 799 | <dict> | ||
| 800 | <key>line</key><integer>452</integer> | ||
| 801 | <key>col</key><integer>8</integer> | ||
| 802 | <key>file</key><integer>0</integer> | ||
| 803 | </dict> | ||
| 804 | </array> | ||
| 805 | <key>end</key> | ||
| 806 | <array> | ||
| 807 | <dict> | ||
| 808 | <key>line</key><integer>833</integer> | ||
| 809 | <key>col</key><integer>2</integer> | ||
| 810 | <key>file</key><integer>0</integer> | ||
| 811 | </dict> | ||
| 812 | <dict> | ||
| 813 | <key>line</key><integer>833</integer> | ||
| 814 | <key>col</key><integer>4</integer> | ||
| 815 | <key>file</key><integer>0</integer> | ||
| 816 | </dict> | ||
| 817 | </array> | ||
| 818 | </dict> | ||
| 819 | </array> | ||
| 820 | </dict> | ||
| 821 | <dict> | ||
| 822 | <key>kind</key><string>control</string> | ||
| 823 | <key>edges</key> | ||
| 824 | <array> | ||
| 825 | <dict> | ||
| 826 | <key>start</key> | ||
| 827 | <array> | ||
| 828 | <dict> | ||
| 829 | <key>line</key><integer>833</integer> | ||
| 830 | <key>col</key><integer>2</integer> | ||
| 831 | <key>file</key><integer>0</integer> | ||
| 832 | </dict> | ||
| 833 | <dict> | ||
| 834 | <key>line</key><integer>833</integer> | ||
| 835 | <key>col</key><integer>4</integer> | ||
| 836 | <key>file</key><integer>0</integer> | ||
| 837 | </dict> | ||
| 838 | </array> | ||
| 839 | <key>end</key> | ||
| 840 | <array> | ||
| 841 | <dict> | ||
| 842 | <key>line</key><integer>835</integer> | ||
| 843 | <key>col</key><integer>2</integer> | ||
| 844 | <key>file</key><integer>0</integer> | ||
| 845 | </dict> | ||
| 846 | <dict> | ||
| 847 | <key>line</key><integer>835</integer> | ||
| 848 | <key>col</key><integer>3</integer> | ||
| 849 | <key>file</key><integer>0</integer> | ||
| 850 | </dict> | ||
| 851 | </array> | ||
| 852 | </dict> | ||
| 853 | </array> | ||
| 854 | </dict> | ||
| 855 | <dict> | ||
| 856 | <key>kind</key><string>control</string> | ||
| 857 | <key>edges</key> | ||
| 858 | <array> | ||
| 859 | <dict> | ||
| 860 | <key>start</key> | ||
| 861 | <array> | ||
| 862 | <dict> | ||
| 863 | <key>line</key><integer>835</integer> | ||
| 864 | <key>col</key><integer>2</integer> | ||
| 865 | <key>file</key><integer>0</integer> | ||
| 866 | </dict> | ||
| 867 | <dict> | ||
| 868 | <key>line</key><integer>835</integer> | ||
| 869 | <key>col</key><integer>3</integer> | ||
| 870 | <key>file</key><integer>0</integer> | ||
| 871 | </dict> | ||
| 872 | </array> | ||
| 873 | <key>end</key> | ||
| 874 | <array> | ||
| 875 | <dict> | ||
| 876 | <key>line</key><integer>835</integer> | ||
| 877 | <key>col</key><integer>6</integer> | ||
| 878 | <key>file</key><integer>0</integer> | ||
| 879 | </dict> | ||
| 880 | <dict> | ||
| 881 | <key>line</key><integer>835</integer> | ||
| 882 | <key>col</key><integer>9</integer> | ||
| 883 | <key>file</key><integer>0</integer> | ||
| 884 | </dict> | ||
| 885 | </array> | ||
| 886 | </dict> | ||
| 887 | </array> | ||
| 888 | </dict> | ||
| 889 | <dict> | ||
| 890 | <key>kind</key><string>event</string> | ||
| 891 | <key>location</key> | ||
| 892 | <dict> | ||
| 893 | <key>line</key><integer>835</integer> | ||
| 894 | <key>col</key><integer>6</integer> | ||
| 895 | <key>file</key><integer>0</integer> | ||
| 896 | </dict> | ||
| 897 | <key>ranges</key> | ||
| 898 | <array> | ||
| 899 | <array> | ||
| 900 | <dict> | ||
| 901 | <key>line</key><integer>835</integer> | ||
| 902 | <key>col</key><integer>6</integer> | ||
| 903 | <key>file</key><integer>0</integer> | ||
| 904 | </dict> | ||
| 905 | <dict> | ||
| 906 | <key>line</key><integer>835</integer> | ||
| 907 | <key>col</key><integer>17</integer> | ||
| 908 | <key>file</key><integer>0</integer> | ||
| 909 | </dict> | ||
| 910 | </array> | ||
| 911 | </array> | ||
| 912 | <key>depth</key><integer>0</integer> | ||
| 913 | <key>extended_message</key> | ||
| 914 | <string>Assuming 'argc' is > 'index'</string> | ||
| 915 | <key>message</key> | ||
| 916 | <string>Assuming 'argc' is > 'index'</string> | ||
| 917 | </dict> | ||
| 918 | <dict> | ||
| 919 | <key>kind</key><string>control</string> | ||
| 920 | <key>edges</key> | ||
| 921 | <array> | ||
| 922 | <dict> | ||
| 923 | <key>start</key> | ||
| 924 | <array> | ||
| 925 | <dict> | ||
| 926 | <key>line</key><integer>835</integer> | ||
| 927 | <key>col</key><integer>6</integer> | ||
| 928 | <key>file</key><integer>0</integer> | ||
| 929 | </dict> | ||
| 930 | <dict> | ||
| 931 | <key>line</key><integer>835</integer> | ||
| 932 | <key>col</key><integer>9</integer> | ||
| 933 | <key>file</key><integer>0</integer> | ||
| 934 | </dict> | ||
| 935 | </array> | ||
| 936 | <key>end</key> | ||
| 937 | <array> | ||
| 938 | <dict> | ||
| 939 | <key>line</key><integer>835</integer> | ||
| 940 | <key>col</key><integer>22</integer> | ||
| 941 | <key>file</key><integer>0</integer> | ||
| 942 | </dict> | ||
| 943 | <dict> | ||
| 944 | <key>line</key><integer>835</integer> | ||
| 945 | <key>col</key><integer>33</integer> | ||
| 946 | <key>file</key><integer>0</integer> | ||
| 947 | </dict> | ||
| 948 | </array> | ||
| 949 | </dict> | ||
| 950 | </array> | ||
| 951 | </dict> | ||
| 952 | <dict> | ||
| 953 | <key>kind</key><string>event</string> | ||
| 954 | <key>location</key> | ||
| 955 | <dict> | ||
| 956 | <key>line</key><integer>835</integer> | ||
| 957 | <key>col</key><integer>22</integer> | ||
| 958 | <key>file</key><integer>0</integer> | ||
| 959 | </dict> | ||
| 960 | <key>ranges</key> | ||
| 961 | <array> | ||
| 962 | <array> | ||
| 963 | <dict> | ||
| 964 | <key>line</key><integer>835</integer> | ||
| 965 | <key>col</key><integer>22</integer> | ||
| 966 | <key>file</key><integer>0</integer> | ||
| 967 | </dict> | ||
| 968 | <dict> | ||
| 969 | <key>line</key><integer>835</integer> | ||
| 970 | <key>col</key><integer>46</integer> | ||
| 971 | <key>file</key><integer>0</integer> | ||
| 972 | </dict> | ||
| 973 | </array> | ||
| 974 | </array> | ||
| 975 | <key>depth</key><integer>0</integer> | ||
| 976 | <key>extended_message</key> | ||
| 977 | <string>Assuming the condition is false</string> | ||
| 978 | <key>message</key> | ||
| 979 | <string>Assuming the condition is false</string> | ||
| 980 | </dict> | ||
| 981 | <dict> | ||
| 982 | <key>kind</key><string>control</string> | ||
| 983 | <key>edges</key> | ||
| 984 | <array> | ||
| 985 | <dict> | ||
| 986 | <key>start</key> | ||
| 987 | <array> | ||
| 988 | <dict> | ||
| 989 | <key>line</key><integer>835</integer> | ||
| 990 | <key>col</key><integer>22</integer> | ||
| 991 | <key>file</key><integer>0</integer> | ||
| 992 | </dict> | ||
| 993 | <dict> | ||
| 994 | <key>line</key><integer>835</integer> | ||
| 995 | <key>col</key><integer>33</integer> | ||
| 996 | <key>file</key><integer>0</integer> | ||
| 997 | </dict> | ||
| 998 | </array> | ||
| 999 | <key>end</key> | ||
| 1000 | <array> | ||
| 1001 | <dict> | ||
| 1002 | <key>line</key><integer>856</integer> | ||
| 1003 | <key>col</key><integer>2</integer> | ||
| 1004 | <key>file</key><integer>0</integer> | ||
| 1005 | </dict> | ||
| 1006 | <dict> | ||
| 1007 | <key>line</key><integer>856</integer> | ||
| 1008 | <key>col</key><integer>3</integer> | ||
| 1009 | <key>file</key><integer>0</integer> | ||
| 1010 | </dict> | ||
| 1011 | </array> | ||
| 1012 | </dict> | ||
| 1013 | </array> | ||
| 1014 | </dict> | ||
| 1015 | <dict> | ||
| 1016 | <key>kind</key><string>control</string> | ||
| 1017 | <key>edges</key> | ||
| 1018 | <array> | ||
| 1019 | <dict> | ||
| 1020 | <key>start</key> | ||
| 1021 | <array> | ||
| 1022 | <dict> | ||
| 1023 | <key>line</key><integer>856</integer> | ||
| 1024 | <key>col</key><integer>2</integer> | ||
| 1025 | <key>file</key><integer>0</integer> | ||
| 1026 | </dict> | ||
| 1027 | <dict> | ||
| 1028 | <key>line</key><integer>856</integer> | ||
| 1029 | <key>col</key><integer>3</integer> | ||
| 1030 | <key>file</key><integer>0</integer> | ||
| 1031 | </dict> | ||
| 1032 | </array> | ||
| 1033 | <key>end</key> | ||
| 1034 | <array> | ||
| 1035 | <dict> | ||
| 1036 | <key>line</key><integer>856</integer> | ||
| 1037 | <key>col</key><integer>6</integer> | ||
| 1038 | <key>file</key><integer>0</integer> | ||
| 1039 | </dict> | ||
| 1040 | <dict> | ||
| 1041 | <key>line</key><integer>856</integer> | ||
| 1042 | <key>col</key><integer>9</integer> | ||
| 1043 | <key>file</key><integer>0</integer> | ||
| 1044 | </dict> | ||
| 1045 | </array> | ||
| 1046 | </dict> | ||
| 1047 | </array> | ||
| 1048 | </dict> | ||
| 1049 | <dict> | ||
| 1050 | <key>kind</key><string>pop-up</string> | ||
| 1051 | <key>location</key> | ||
| 1052 | <dict> | ||
| 1053 | <key>line</key><integer>856</integer> | ||
| 1054 | <key>col</key><integer>6</integer> | ||
| 1055 | <key>file</key><integer>0</integer> | ||
| 1056 | </dict> | ||
| 1057 | <key>ranges</key> | ||
| 1058 | <array> | ||
| 1059 | <array> | ||
| 1060 | <dict> | ||
| 1061 | <key>line</key><integer>856</integer> | ||
| 1062 | <key>col</key><integer>6</integer> | ||
| 1063 | <key>file</key><integer>0</integer> | ||
| 1064 | </dict> | ||
| 1065 | <dict> | ||
| 1066 | <key>line</key><integer>856</integer> | ||
| 1067 | <key>col</key><integer>9</integer> | ||
| 1068 | <key>file</key><integer>0</integer> | ||
| 1069 | </dict> | ||
| 1070 | </array> | ||
| 1071 | </array> | ||
| 1072 | <key>extended_message</key> | ||
| 1073 | <string>'argc' is > 'index'</string> | ||
| 1074 | <key>message</key> | ||
| 1075 | <string>'argc' is > 'index'</string> | ||
| 1076 | </dict> | ||
| 1077 | <dict> | ||
| 1078 | <key>kind</key><string>control</string> | ||
| 1079 | <key>edges</key> | ||
| 1080 | <array> | ||
| 1081 | <dict> | ||
| 1082 | <key>start</key> | ||
| 1083 | <array> | ||
| 1084 | <dict> | ||
| 1085 | <key>line</key><integer>856</integer> | ||
| 1086 | <key>col</key><integer>6</integer> | ||
| 1087 | <key>file</key><integer>0</integer> | ||
| 1088 | </dict> | ||
| 1089 | <dict> | ||
| 1090 | <key>line</key><integer>856</integer> | ||
| 1091 | <key>col</key><integer>9</integer> | ||
| 1092 | <key>file</key><integer>0</integer> | ||
| 1093 | </dict> | ||
| 1094 | </array> | ||
| 1095 | <key>end</key> | ||
| 1096 | <array> | ||
| 1097 | <dict> | ||
| 1098 | <key>line</key><integer>856</integer> | ||
| 1099 | <key>col</key><integer>22</integer> | ||
| 1100 | <key>file</key><integer>0</integer> | ||
| 1101 | </dict> | ||
| 1102 | <dict> | ||
| 1103 | <key>line</key><integer>856</integer> | ||
| 1104 | <key>col</key><integer>33</integer> | ||
| 1105 | <key>file</key><integer>0</integer> | ||
| 1106 | </dict> | ||
| 1107 | </array> | ||
| 1108 | </dict> | ||
| 1109 | </array> | ||
| 1110 | </dict> | ||
| 1111 | <dict> | ||
| 1112 | <key>kind</key><string>event</string> | ||
| 1113 | <key>location</key> | ||
| 1114 | <dict> | ||
| 1115 | <key>line</key><integer>856</integer> | ||
| 1116 | <key>col</key><integer>22</integer> | ||
| 1117 | <key>file</key><integer>0</integer> | ||
| 1118 | </dict> | ||
| 1119 | <key>ranges</key> | ||
| 1120 | <array> | ||
| 1121 | <array> | ||
| 1122 | <dict> | ||
| 1123 | <key>line</key><integer>856</integer> | ||
| 1124 | <key>col</key><integer>22</integer> | ||
| 1125 | <key>file</key><integer>0</integer> | ||
| 1126 | </dict> | ||
| 1127 | <dict> | ||
| 1128 | <key>line</key><integer>856</integer> | ||
| 1129 | <key>col</key><integer>46</integer> | ||
| 1130 | <key>file</key><integer>0</integer> | ||
| 1131 | </dict> | ||
| 1132 | </array> | ||
| 1133 | </array> | ||
| 1134 | <key>depth</key><integer>0</integer> | ||
| 1135 | <key>extended_message</key> | ||
| 1136 | <string>Assuming the condition is false</string> | ||
| 1137 | <key>message</key> | ||
| 1138 | <string>Assuming the condition is false</string> | ||
| 1139 | </dict> | ||
| 1140 | <dict> | ||
| 1141 | <key>kind</key><string>control</string> | ||
| 1142 | <key>edges</key> | ||
| 1143 | <array> | ||
| 1144 | <dict> | ||
| 1145 | <key>start</key> | ||
| 1146 | <array> | ||
| 1147 | <dict> | ||
| 1148 | <key>line</key><integer>856</integer> | ||
| 1149 | <key>col</key><integer>22</integer> | ||
| 1150 | <key>file</key><integer>0</integer> | ||
| 1151 | </dict> | ||
| 1152 | <dict> | ||
| 1153 | <key>line</key><integer>856</integer> | ||
| 1154 | <key>col</key><integer>33</integer> | ||
| 1155 | <key>file</key><integer>0</integer> | ||
| 1156 | </dict> | ||
| 1157 | </array> | ||
| 1158 | <key>end</key> | ||
| 1159 | <array> | ||
| 1160 | <dict> | ||
| 1161 | <key>line</key><integer>877</integer> | ||
| 1162 | <key>col</key><integer>2</integer> | ||
| 1163 | <key>file</key><integer>0</integer> | ||
| 1164 | </dict> | ||
| 1165 | <dict> | ||
| 1166 | <key>line</key><integer>877</integer> | ||
| 1167 | <key>col</key><integer>3</integer> | ||
| 1168 | <key>file</key><integer>0</integer> | ||
| 1169 | </dict> | ||
| 1170 | </array> | ||
| 1171 | </dict> | ||
| 1172 | </array> | ||
| 1173 | </dict> | ||
| 1174 | <dict> | ||
| 1175 | <key>kind</key><string>control</string> | ||
| 1176 | <key>edges</key> | ||
| 1177 | <array> | ||
| 1178 | <dict> | ||
| 1179 | <key>start</key> | ||
| 1180 | <array> | ||
| 1181 | <dict> | ||
| 1182 | <key>line</key><integer>877</integer> | ||
| 1183 | <key>col</key><integer>2</integer> | ||
| 1184 | <key>file</key><integer>0</integer> | ||
| 1185 | </dict> | ||
| 1186 | <dict> | ||
| 1187 | <key>line</key><integer>877</integer> | ||
| 1188 | <key>col</key><integer>3</integer> | ||
| 1189 | <key>file</key><integer>0</integer> | ||
| 1190 | </dict> | ||
| 1191 | </array> | ||
| 1192 | <key>end</key> | ||
| 1193 | <array> | ||
| 1194 | <dict> | ||
| 1195 | <key>line</key><integer>877</integer> | ||
| 1196 | <key>col</key><integer>6</integer> | ||
| 1197 | <key>file</key><integer>0</integer> | ||
| 1198 | </dict> | ||
| 1199 | <dict> | ||
| 1200 | <key>line</key><integer>877</integer> | ||
| 1201 | <key>col</key><integer>9</integer> | ||
| 1202 | <key>file</key><integer>0</integer> | ||
| 1203 | </dict> | ||
| 1204 | </array> | ||
| 1205 | </dict> | ||
| 1206 | </array> | ||
| 1207 | </dict> | ||
| 1208 | <dict> | ||
| 1209 | <key>kind</key><string>pop-up</string> | ||
| 1210 | <key>location</key> | ||
| 1211 | <dict> | ||
| 1212 | <key>line</key><integer>877</integer> | ||
| 1213 | <key>col</key><integer>6</integer> | ||
| 1214 | <key>file</key><integer>0</integer> | ||
| 1215 | </dict> | ||
| 1216 | <key>ranges</key> | ||
| 1217 | <array> | ||
| 1218 | <array> | ||
| 1219 | <dict> | ||
| 1220 | <key>line</key><integer>877</integer> | ||
| 1221 | <key>col</key><integer>6</integer> | ||
| 1222 | <key>file</key><integer>0</integer> | ||
| 1223 | </dict> | ||
| 1224 | <dict> | ||
| 1225 | <key>line</key><integer>877</integer> | ||
| 1226 | <key>col</key><integer>9</integer> | ||
| 1227 | <key>file</key><integer>0</integer> | ||
| 1228 | </dict> | ||
| 1229 | </array> | ||
| 1230 | </array> | ||
| 1231 | <key>extended_message</key> | ||
| 1232 | <string>'argc' is > 'index'</string> | ||
| 1233 | <key>message</key> | ||
| 1234 | <string>'argc' is > 'index'</string> | ||
| 1235 | </dict> | ||
| 1236 | <dict> | ||
| 1237 | <key>kind</key><string>control</string> | ||
| 1238 | <key>edges</key> | ||
| 1239 | <array> | ||
| 1240 | <dict> | ||
| 1241 | <key>start</key> | ||
| 1242 | <array> | ||
| 1243 | <dict> | ||
| 1244 | <key>line</key><integer>877</integer> | ||
| 1245 | <key>col</key><integer>6</integer> | ||
| 1246 | <key>file</key><integer>0</integer> | ||
| 1247 | </dict> | ||
| 1248 | <dict> | ||
| 1249 | <key>line</key><integer>877</integer> | ||
| 1250 | <key>col</key><integer>9</integer> | ||
| 1251 | <key>file</key><integer>0</integer> | ||
| 1252 | </dict> | ||
| 1253 | </array> | ||
| 1254 | <key>end</key> | ||
| 1255 | <array> | ||
| 1256 | <dict> | ||
| 1257 | <key>line</key><integer>878</integer> | ||
| 1258 | <key>col</key><integer>3</integer> | ||
| 1259 | <key>file</key><integer>0</integer> | ||
| 1260 | </dict> | ||
| 1261 | <dict> | ||
| 1262 | <key>line</key><integer>878</integer> | ||
| 1263 | <key>col</key><integer>4</integer> | ||
| 1264 | <key>file</key><integer>0</integer> | ||
| 1265 | </dict> | ||
| 1266 | </array> | ||
| 1267 | </dict> | ||
| 1268 | </array> | ||
| 1269 | </dict> | ||
| 1270 | <dict> | ||
| 1271 | <key>kind</key><string>control</string> | ||
| 1272 | <key>edges</key> | ||
| 1273 | <array> | ||
| 1274 | <dict> | ||
| 1275 | <key>start</key> | ||
| 1276 | <array> | ||
| 1277 | <dict> | ||
| 1278 | <key>line</key><integer>878</integer> | ||
| 1279 | <key>col</key><integer>3</integer> | ||
| 1280 | <key>file</key><integer>0</integer> | ||
| 1281 | </dict> | ||
| 1282 | <dict> | ||
| 1283 | <key>line</key><integer>878</integer> | ||
| 1284 | <key>col</key><integer>4</integer> | ||
| 1285 | <key>file</key><integer>0</integer> | ||
| 1286 | </dict> | ||
| 1287 | </array> | ||
| 1288 | <key>end</key> | ||
| 1289 | <array> | ||
| 1290 | <dict> | ||
| 1291 | <key>line</key><integer>878</integer> | ||
| 1292 | <key>col</key><integer>7</integer> | ||
| 1293 | <key>file</key><integer>0</integer> | ||
| 1294 | </dict> | ||
| 1295 | <dict> | ||
| 1296 | <key>line</key><integer>878</integer> | ||
| 1297 | <key>col</key><integer>13</integer> | ||
| 1298 | <key>file</key><integer>0</integer> | ||
| 1299 | </dict> | ||
| 1300 | </array> | ||
| 1301 | </dict> | ||
| 1302 | </array> | ||
| 1303 | </dict> | ||
| 1304 | <dict> | ||
| 1305 | <key>kind</key><string>event</string> | ||
| 1306 | <key>location</key> | ||
| 1307 | <dict> | ||
| 1308 | <key>line</key><integer>878</integer> | ||
| 1309 | <key>col</key><integer>7</integer> | ||
| 1310 | <key>file</key><integer>0</integer> | ||
| 1311 | </dict> | ||
| 1312 | <key>ranges</key> | ||
| 1313 | <array> | ||
| 1314 | <array> | ||
| 1315 | <dict> | ||
| 1316 | <key>line</key><integer>878</integer> | ||
| 1317 | <key>col</key><integer>7</integer> | ||
| 1318 | <key>file</key><integer>0</integer> | ||
| 1319 | </dict> | ||
| 1320 | <dict> | ||
| 1321 | <key>line</key><integer>878</integer> | ||
| 1322 | <key>col</key><integer>17</integer> | ||
| 1323 | <key>file</key><integer>0</integer> | ||
| 1324 | </dict> | ||
| 1325 | </array> | ||
| 1326 | </array> | ||
| 1327 | <key>depth</key><integer>0</integer> | ||
| 1328 | <key>extended_message</key> | ||
| 1329 | <string>Assuming 'verbose' is <= 0</string> | ||
| 1330 | <key>message</key> | ||
| 1331 | <string>Assuming 'verbose' is <= 0</string> | ||
| 1332 | </dict> | ||
| 1333 | <dict> | ||
| 1334 | <key>kind</key><string>control</string> | ||
| 1335 | <key>edges</key> | ||
| 1336 | <array> | ||
| 1337 | <dict> | ||
| 1338 | <key>start</key> | ||
| 1339 | <array> | ||
| 1340 | <dict> | ||
| 1341 | <key>line</key><integer>878</integer> | ||
| 1342 | <key>col</key><integer>7</integer> | ||
| 1343 | <key>file</key><integer>0</integer> | ||
| 1344 | </dict> | ||
| 1345 | <dict> | ||
| 1346 | <key>line</key><integer>878</integer> | ||
| 1347 | <key>col</key><integer>13</integer> | ||
| 1348 | <key>file</key><integer>0</integer> | ||
| 1349 | </dict> | ||
| 1350 | </array> | ||
| 1351 | <key>end</key> | ||
| 1352 | <array> | ||
| 1353 | <dict> | ||
| 1354 | <key>line</key><integer>881</integer> | ||
| 1355 | <key>col</key><integer>3</integer> | ||
| 1356 | <key>file</key><integer>0</integer> | ||
| 1357 | </dict> | ||
| 1358 | <dict> | ||
| 1359 | <key>line</key><integer>881</integer> | ||
| 1360 | <key>col</key><integer>8</integer> | ||
| 1361 | <key>file</key><integer>0</integer> | ||
| 1362 | </dict> | ||
| 1363 | </array> | ||
| 1364 | </dict> | ||
| 1365 | </array> | ||
| 1366 | </dict> | ||
| 1367 | <dict> | ||
| 1368 | <key>kind</key><string>control</string> | ||
| 1369 | <key>edges</key> | ||
| 1370 | <array> | ||
| 1371 | <dict> | ||
| 1372 | <key>start</key> | ||
| 1373 | <array> | ||
| 1374 | <dict> | ||
| 1375 | <key>line</key><integer>881</integer> | ||
| 1376 | <key>col</key><integer>3</integer> | ||
| 1377 | <key>file</key><integer>0</integer> | ||
| 1378 | </dict> | ||
| 1379 | <dict> | ||
| 1380 | <key>line</key><integer>881</integer> | ||
| 1381 | <key>col</key><integer>8</integer> | ||
| 1382 | <key>file</key><integer>0</integer> | ||
| 1383 | </dict> | ||
| 1384 | </array> | ||
| 1385 | <key>end</key> | ||
| 1386 | <array> | ||
| 1387 | <dict> | ||
| 1388 | <key>line</key><integer>882</integer> | ||
| 1389 | <key>col</key><integer>59</integer> | ||
| 1390 | <key>file</key><integer>0</integer> | ||
| 1391 | </dict> | ||
| 1392 | <dict> | ||
| 1393 | <key>line</key><integer>882</integer> | ||
| 1394 | <key>col</key><integer>64</integer> | ||
| 1395 | <key>file</key><integer>0</integer> | ||
| 1396 | </dict> | ||
| 1397 | </array> | ||
| 1398 | </dict> | ||
| 1399 | </array> | ||
| 1400 | </dict> | ||
| 1401 | <dict> | ||
| 1402 | <key>kind</key><string>event</string> | ||
| 1403 | <key>location</key> | ||
| 1404 | <dict> | ||
| 1405 | <key>line</key><integer>882</integer> | ||
| 1406 | <key>col</key><integer>59</integer> | ||
| 1407 | <key>file</key><integer>0</integer> | ||
| 1408 | </dict> | ||
| 1409 | <key>ranges</key> | ||
| 1410 | <array> | ||
| 1411 | <array> | ||
| 1412 | <dict> | ||
| 1413 | <key>line</key><integer>882</integer> | ||
| 1414 | <key>col</key><integer>59</integer> | ||
| 1415 | <key>file</key><integer>0</integer> | ||
| 1416 | </dict> | ||
| 1417 | <dict> | ||
| 1418 | <key>line</key><integer>882</integer> | ||
| 1419 | <key>col</key><integer>79</integer> | ||
| 1420 | <key>file</key><integer>0</integer> | ||
| 1421 | </dict> | ||
| 1422 | </array> | ||
| 1423 | </array> | ||
| 1424 | <key>depth</key><integer>0</integer> | ||
| 1425 | <key>extended_message</key> | ||
| 1426 | <string>Memory is allocated</string> | ||
| 1427 | <key>message</key> | ||
| 1428 | <string>Memory is allocated</string> | ||
| 1429 | </dict> | ||
| 1430 | <dict> | ||
| 1431 | <key>kind</key><string>control</string> | ||
| 1432 | <key>edges</key> | ||
| 1433 | <array> | ||
| 1434 | <dict> | ||
| 1435 | <key>start</key> | ||
| 1436 | <array> | ||
| 1437 | <dict> | ||
| 1438 | <key>line</key><integer>882</integer> | ||
| 1439 | <key>col</key><integer>59</integer> | ||
| 1440 | <key>file</key><integer>0</integer> | ||
| 1441 | </dict> | ||
| 1442 | <dict> | ||
| 1443 | <key>line</key><integer>882</integer> | ||
| 1444 | <key>col</key><integer>64</integer> | ||
| 1445 | <key>file</key><integer>0</integer> | ||
| 1446 | </dict> | ||
| 1447 | </array> | ||
| 1448 | <key>end</key> | ||
| 1449 | <array> | ||
| 1450 | <dict> | ||
| 1451 | <key>line</key><integer>881</integer> | ||
| 1452 | <key>col</key><integer>3</integer> | ||
| 1453 | <key>file</key><integer>0</integer> | ||
| 1454 | </dict> | ||
| 1455 | <dict> | ||
| 1456 | <key>line</key><integer>881</integer> | ||
| 1457 | <key>col</key><integer>8</integer> | ||
| 1458 | <key>file</key><integer>0</integer> | ||
| 1459 | </dict> | ||
| 1460 | </array> | ||
| 1461 | </dict> | ||
| 1462 | </array> | ||
| 1463 | </dict> | ||
| 1464 | <dict> | ||
| 1465 | <key>kind</key><string>event</string> | ||
| 1466 | <key>location</key> | ||
| 1467 | <dict> | ||
| 1468 | <key>line</key><integer>881</integer> | ||
| 1469 | <key>col</key><integer>3</integer> | ||
| 1470 | <key>file</key><integer>0</integer> | ||
| 1471 | </dict> | ||
| 1472 | <key>depth</key><integer>0</integer> | ||
| 1473 | <key>extended_message</key> | ||
| 1474 | <string>Potential memory leak</string> | ||
| 1475 | <key>message</key> | ||
| 1476 | <string>Potential memory leak</string> | ||
| 1477 | </dict> | ||
| 1478 | </array> | ||
| 1479 | <key>description</key><string>Potential memory leak</string> | ||
| 1480 | <key>category</key><string>Memory error</string> | ||
| 1481 | <key>type</key><string>Memory leak</string> | ||
| 1482 | <key>check_name</key><string>unix.Malloc</string> | ||
| 1483 | <!-- This hash is experimental and going to change! --> | ||
| 1484 | <key>issue_hash_content_of_line_in_context</key><string>a7c61b731c695bcaf2905c17cf9d23d4</string> | ||
| 1485 | <key>issue_context_kind</key><string>function</string> | ||
| 1486 | <key>issue_context</key><string>process_arguments</string> | ||
| 1487 | <key>issue_hash_function_offset</key><string>516</string> | ||
| 1488 | <key>location</key> | ||
| 1489 | <dict> | ||
| 1490 | <key>line</key><integer>881</integer> | ||
| 1491 | <key>col</key><integer>3</integer> | ||
| 1492 | <key>file</key><integer>0</integer> | ||
| 1493 | </dict> | ||
| 1494 | <key>ExecutedLines</key> | ||
| 1495 | <dict> | ||
| 1496 | <key>0</key> | ||
| 1497 | <array> | ||
| 1498 | <integer>366</integer> | ||
| 1499 | <integer>368</integer> | ||
| 1500 | <integer>369</integer> | ||
| 1501 | <integer>370</integer> | ||
| 1502 | <integer>373</integer> | ||
| 1503 | <integer>383</integer> | ||
| 1504 | <integer>423</integer> | ||
| 1505 | <integer>424</integer> | ||
| 1506 | <integer>427</integer> | ||
| 1507 | <integer>429</integer> | ||
| 1508 | <integer>430</integer> | ||
| 1509 | <integer>431</integer> | ||
| 1510 | <integer>432</integer> | ||
| 1511 | <integer>433</integer> | ||
| 1512 | <integer>434</integer> | ||
| 1513 | <integer>435</integer> | ||
| 1514 | <integer>436</integer> | ||
| 1515 | <integer>438</integer> | ||
| 1516 | <integer>439</integer> | ||
| 1517 | <integer>440</integer> | ||
| 1518 | <integer>442</integer> | ||
| 1519 | <integer>444</integer> | ||
| 1520 | <integer>446</integer> | ||
| 1521 | <integer>447</integer> | ||
| 1522 | <integer>448</integer> | ||
| 1523 | <integer>449</integer> | ||
| 1524 | <integer>451</integer> | ||
| 1525 | <integer>452</integer> | ||
| 1526 | <integer>833</integer> | ||
| 1527 | <integer>835</integer> | ||
| 1528 | <integer>856</integer> | ||
| 1529 | <integer>877</integer> | ||
| 1530 | <integer>878</integer> | ||
| 1531 | <integer>881</integer> | ||
| 1532 | <integer>882</integer> | ||
| 1533 | </array> | ||
| 1534 | </dict> | ||
| 1535 | </dict> | ||
| 1536 | <dict> | ||
| 1537 | <key>path</key> | ||
| 1538 | <array> | ||
| 1539 | <dict> | ||
| 1540 | <key>kind</key><string>event</string> | ||
| 1541 | <key>location</key> | ||
| 1542 | <dict> | ||
| 1543 | <key>line</key><integer>1249</integer> | ||
| 1544 | <key>col</key><integer>3</integer> | ||
| 1545 | <key>file</key><integer>0</integer> | ||
| 1546 | </dict> | ||
| 1547 | <key>ranges</key> | ||
| 1548 | <array> | ||
| 1549 | <array> | ||
| 1550 | <dict> | ||
| 1551 | <key>line</key><integer>1250</integer> | ||
| 1552 | <key>col</key><integer>4</integer> | ||
| 1553 | <key>file</key><integer>0</integer> | ||
| 1554 | </dict> | ||
| 1555 | <dict> | ||
| 1556 | <key>line</key><integer>1250</integer> | ||
| 1557 | <key>col</key><integer>83</integer> | ||
| 1558 | <key>file</key><integer>0</integer> | ||
| 1559 | </dict> | ||
| 1560 | </array> | ||
| 1561 | </array> | ||
| 1562 | <key>depth</key><integer>0</integer> | ||
| 1563 | <key>extended_message</key> | ||
| 1564 | <string>Value stored to 'free_space_pd' is never read</string> | ||
| 1565 | <key>message</key> | ||
| 1566 | <string>Value stored to 'free_space_pd' is never read</string> | ||
| 1567 | </dict> | ||
| 1568 | </array> | ||
| 1569 | <key>description</key><string>Value stored to 'free_space_pd' is never read</string> | ||
| 1570 | <key>category</key><string>Unused code</string> | ||
| 1571 | <key>type</key><string>Dead assignment</string> | ||
| 1572 | <key>check_name</key><string>deadcode.DeadStores</string> | ||
| 1573 | <!-- This hash is experimental and going to change! --> | ||
| 1574 | <key>issue_hash_content_of_line_in_context</key><string>86bfaa83876ef1de53102c483be5b2cd</string> | ||
| 1575 | <key>issue_context_kind</key><string>function</string> | ||
| 1576 | <key>issue_context</key><string>evaluate_filesystem</string> | ||
| 1577 | <key>issue_hash_function_offset</key><string>78</string> | ||
| 1578 | <key>location</key> | ||
| 1579 | <dict> | ||
| 1580 | <key>line</key><integer>1249</integer> | ||
| 1581 | <key>col</key><integer>3</integer> | ||
| 1582 | <key>file</key><integer>0</integer> | ||
| 1583 | </dict> | ||
| 1584 | <key>ExecutedLines</key> | ||
| 1585 | <dict> | ||
| 1586 | <key>0</key> | ||
| 1587 | <array> | ||
| 1588 | <integer>1249</integer> | ||
| 1589 | </array> | ||
| 1590 | </dict> | ||
| 1591 | </dict> | ||
| 1592 | </array> | ||
| 1593 | <key>files</key> | ||
| 1594 | <array> | ||
| 1595 | <string>check_disk.c</string> | ||
| 1596 | </array> | ||
| 1597 | </dict> | ||
| 1598 | </plist> | ||
diff --git a/plugins/check_ide_smart.c b/plugins/check_ide_smart.c index 43731039..e6b29f1c 100644 --- a/plugins/check_ide_smart.c +++ b/plugins/check_ide_smart.c | |||
| @@ -118,7 +118,8 @@ typedef struct { | |||
| 118 | static struct { | 118 | static struct { |
| 119 | uint8_t value; | 119 | uint8_t value; |
| 120 | char *text; | 120 | char *text; |
| 121 | } offline_status_text[] = {{0x00, "NeverStarted"}, {0x02, "Completed"}, {0x04, "Suspended"}, {0x05, "Aborted"}, {0x06, "Failed"}, {0, 0}}; | 121 | } offline_status_text[] = {{0x00, "NeverStarted"}, {0x02, "Completed"}, {0x04, "Suspended"}, |
| 122 | {0x05, "Aborted"}, {0x06, "Failed"}, {0, 0}}; | ||
| 122 | 123 | ||
| 123 | static struct { | 124 | static struct { |
| 124 | uint8_t value; | 125 | uint8_t value; |
| @@ -141,7 +142,8 @@ static int smart_read_values(int /*fd*/, smart_values * /*values*/); | |||
| 141 | static mp_state_enum compare_values_and_thresholds(smart_values * /*p*/, smart_thresholds * /*t*/); | 142 | static mp_state_enum compare_values_and_thresholds(smart_values * /*p*/, smart_thresholds * /*t*/); |
| 142 | static void print_value(smart_value * /*p*/, smart_threshold * /*t*/); | 143 | static void print_value(smart_value * /*p*/, smart_threshold * /*t*/); |
| 143 | static void print_values(smart_values * /*p*/, smart_thresholds * /*t*/); | 144 | static void print_values(smart_values * /*p*/, smart_thresholds * /*t*/); |
| 144 | static mp_state_enum smart_cmd_simple(int /*fd*/, enum SmartCommand /*command*/, uint8_t /*val0*/, bool /*show_error*/); | 145 | static mp_state_enum smart_cmd_simple(int /*fd*/, enum SmartCommand /*command*/, uint8_t /*val0*/, |
| 146 | bool /*show_error*/); | ||
| 145 | static int smart_read_thresholds(int /*fd*/, smart_thresholds * /*thresholds*/); | 147 | static int smart_read_thresholds(int /*fd*/, smart_thresholds * /*thresholds*/); |
| 146 | static int verbose = 0; | 148 | static int verbose = 0; |
| 147 | 149 | ||
| @@ -150,15 +152,16 @@ typedef struct { | |||
| 150 | check_ide_smart_config config; | 152 | check_ide_smart_config config; |
| 151 | } check_ide_smart_config_wrapper; | 153 | } check_ide_smart_config_wrapper; |
| 152 | static check_ide_smart_config_wrapper process_arguments(int argc, char **argv) { | 154 | static check_ide_smart_config_wrapper process_arguments(int argc, char **argv) { |
| 153 | static struct option longopts[] = {{"device", required_argument, 0, 'd'}, | 155 | static struct option longopts[] = { |
| 154 | {"immediate", no_argument, 0, 'i'}, | 156 | {"device", required_argument, 0, 'd'}, |
| 155 | {"quiet-check", no_argument, 0, 'q'}, | 157 | {"immediate", no_argument, 0, 'i'}, |
| 156 | {"auto-on", no_argument, 0, '1'}, | 158 | {"quiet-check", no_argument, 0, 'q'}, |
| 157 | {"auto-off", no_argument, 0, '0'}, | 159 | {"auto-on", no_argument, 0, '1'}, |
| 158 | {"nagios", no_argument, 0, 'n'}, /* DEPRECATED, but we still accept it */ | 160 | {"auto-off", no_argument, 0, '0'}, |
| 159 | {"help", no_argument, 0, 'h'}, | 161 | {"nagios", no_argument, 0, 'n'}, /* DEPRECATED, but we still accept it */ |
| 160 | {"version", no_argument, 0, 'V'}, | 162 | {"help", no_argument, 0, 'h'}, |
| 161 | {0, 0, 0, 0}}; | 163 | {"version", no_argument, 0, 'V'}, |
| 164 | {0, 0, 0, 0}}; | ||
| 162 | 165 | ||
| 163 | check_ide_smart_config_wrapper result = { | 166 | check_ide_smart_config_wrapper result = { |
| 164 | .errorcode = OK, | 167 | .errorcode = OK, |
| @@ -178,18 +181,21 @@ static check_ide_smart_config_wrapper process_arguments(int argc, char **argv) { | |||
| 178 | result.config.device = optarg; | 181 | result.config.device = optarg; |
| 179 | break; | 182 | break; |
| 180 | case 'q': | 183 | case 'q': |
| 181 | fprintf(stderr, "%s\n", _("DEPRECATION WARNING: the -q switch (quiet output) is no longer \"quiet\".")); | 184 | fprintf(stderr, "%s\n", |
| 185 | _("DEPRECATION WARNING: the -q switch (quiet output) is no longer \"quiet\".")); | ||
| 182 | fprintf(stderr, "%s\n", _("Nagios-compatible output is now always returned.")); | 186 | fprintf(stderr, "%s\n", _("Nagios-compatible output is now always returned.")); |
| 183 | break; | 187 | break; |
| 184 | case 'i': | 188 | case 'i': |
| 185 | case '1': | 189 | case '1': |
| 186 | case '0': | 190 | case '0': |
| 187 | printf("%s\n", _("SMART commands are broken and have been disabled (See Notes in --help).")); | 191 | printf("%s\n", |
| 192 | _("SMART commands are broken and have been disabled (See Notes in --help).")); | ||
| 188 | result.errorcode = ERROR; | 193 | result.errorcode = ERROR; |
| 189 | return result; | 194 | return result; |
| 190 | break; | 195 | break; |
| 191 | case 'n': | 196 | case 'n': |
| 192 | fprintf(stderr, "%s\n", _("DEPRECATION WARNING: the -n switch (Nagios-compatible output) is now the")); | 197 | fprintf(stderr, "%s\n", |
| 198 | _("DEPRECATION WARNING: the -n switch (Nagios-compatible output) is now the")); | ||
| 193 | fprintf(stderr, "%s\n", _("default and will be removed from future releases.")); | 199 | fprintf(stderr, "%s\n", _("default and will be removed from future releases.")); |
| 194 | break; | 200 | break; |
| 195 | case 'v': /* verbose */ | 201 | case 'v': /* verbose */ |
| @@ -348,12 +354,13 @@ mp_state_enum compare_values_and_thresholds(smart_values *values, smart_threshol | |||
| 348 | 354 | ||
| 349 | switch (status) { | 355 | switch (status) { |
| 350 | case PREFAILURE: | 356 | case PREFAILURE: |
| 351 | printf(_("CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n"), prefailure, prefailure > 1 ? 's' : ' ', failed, | 357 | printf(_("CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n"), prefailure, |
| 352 | total); | 358 | prefailure > 1 ? 's' : ' ', failed, total); |
| 353 | status = STATE_CRITICAL; | 359 | status = STATE_CRITICAL; |
| 354 | break; | 360 | break; |
| 355 | case ADVISORY: | 361 | case ADVISORY: |
| 356 | printf(_("WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n"), advisory, advisory > 1 ? "ies" : "y", failed, total); | 362 | printf(_("WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n"), advisory, |
| 363 | advisory > 1 ? "ies" : "y", failed, total); | ||
| 357 | status = STATE_WARNING; | 364 | status = STATE_WARNING; |
| 358 | break; | 365 | break; |
| 359 | case OPERATIONAL: | 366 | case OPERATIONAL: |
| @@ -369,9 +376,11 @@ mp_state_enum compare_values_and_thresholds(smart_values *values, smart_threshol | |||
| 369 | } | 376 | } |
| 370 | 377 | ||
| 371 | void print_value(smart_value *value_pointer, smart_threshold *threshold_pointer) { | 378 | void print_value(smart_value *value_pointer, smart_threshold *threshold_pointer) { |
| 372 | printf("Id=%3d, Status=%2d {%s , %s}, Value=%3d, Threshold=%3d, %s\n", value_pointer->id, value_pointer->status, | 379 | printf("Id=%3d, Status=%2d {%s , %s}, Value=%3d, Threshold=%3d, %s\n", value_pointer->id, |
| 373 | value_pointer->status & 1 ? "PreFailure" : "Advisory ", value_pointer->status & 2 ? "OnLine " : "OffLine", | 380 | value_pointer->status, value_pointer->status & 1 ? "PreFailure" : "Advisory ", |
| 374 | value_pointer->value, threshold_pointer->threshold, value_pointer->value >= threshold_pointer->threshold ? "Passed" : "Failed"); | 381 | value_pointer->status & 2 ? "OnLine " : "OffLine", value_pointer->value, |
| 382 | threshold_pointer->threshold, | ||
| 383 | value_pointer->value >= threshold_pointer->threshold ? "Passed" : "Failed"); | ||
| 375 | } | 384 | } |
| 376 | 385 | ||
| 377 | void print_values(smart_values *values, smart_thresholds *thresholds) { | 386 | void print_values(smart_values *values, smart_thresholds *thresholds) { |
| @@ -382,15 +391,21 @@ void print_values(smart_values *values, smart_thresholds *thresholds) { | |||
| 382 | print_value(value++, threshold++); | 391 | print_value(value++, threshold++); |
| 383 | } | 392 | } |
| 384 | } | 393 | } |
| 385 | printf(_("OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n"), values->offline_status, | 394 | printf(_("OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n"), |
| 386 | get_offline_text(values->offline_status & 0x7f), (values->offline_status & 0x80 ? "Yes" : "No"), values->offline_timeout / 60); | 395 | values->offline_status, get_offline_text(values->offline_status & 0x7f), |
| 387 | printf(_("OffLineCapability=%d {%s %s %s}\n"), values->offline_capability, values->offline_capability & 1 ? "Immediate" : "", | 396 | (values->offline_status & 0x80 ? "Yes" : "No"), values->offline_timeout / 60); |
| 388 | values->offline_capability & 2 ? "Auto" : "", values->offline_capability & 4 ? "AbortOnCmd" : "SuspendOnCmd"); | 397 | printf(_("OffLineCapability=%d {%s %s %s}\n"), values->offline_capability, |
| 389 | printf(_("SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n"), values->revision, values->checksum, values->smart_capability, | 398 | values->offline_capability & 1 ? "Immediate" : "", |
| 390 | values->smart_capability & 1 ? "SaveOnStandBy" : "", values->smart_capability & 2 ? "AutoSave" : ""); | 399 | values->offline_capability & 2 ? "Auto" : "", |
| 400 | values->offline_capability & 4 ? "AbortOnCmd" : "SuspendOnCmd"); | ||
| 401 | printf(_("SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n"), values->revision, | ||
| 402 | values->checksum, values->smart_capability, | ||
| 403 | values->smart_capability & 1 ? "SaveOnStandBy" : "", | ||
| 404 | values->smart_capability & 2 ? "AutoSave" : ""); | ||
| 391 | } | 405 | } |
| 392 | 406 | ||
| 393 | mp_state_enum smart_cmd_simple(int file_descriptor, enum SmartCommand command, uint8_t val0, bool show_error) { | 407 | mp_state_enum smart_cmd_simple(int file_descriptor, enum SmartCommand command, uint8_t val0, |
| 408 | bool show_error) { | ||
| 394 | mp_state_enum result = STATE_UNKNOWN; | 409 | mp_state_enum result = STATE_UNKNOWN; |
| 395 | #ifdef __linux__ | 410 | #ifdef __linux__ |
| 396 | uint8_t args[4] = { | 411 | uint8_t args[4] = { |
| @@ -517,15 +532,18 @@ void print_help(void) { | |||
| 517 | 532 | ||
| 518 | printf(" %s\n", "-d, --device=DEVICE"); | 533 | printf(" %s\n", "-d, --device=DEVICE"); |
| 519 | printf(" %s\n", _("Select device DEVICE")); | 534 | printf(" %s\n", _("Select device DEVICE")); |
| 520 | printf(" %s\n", _("Note: if the device is specified without this option, any further option will")); | 535 | printf(" %s\n", |
| 536 | _("Note: if the device is specified without this option, any further option will")); | ||
| 521 | printf(" %s\n", _("be ignored.")); | 537 | printf(" %s\n", _("be ignored.")); |
| 522 | 538 | ||
| 523 | printf(UT_VERBOSE); | 539 | printf(UT_VERBOSE); |
| 524 | 540 | ||
| 525 | printf("\n"); | 541 | printf("\n"); |
| 526 | printf("%s\n", _("Notes:")); | 542 | printf("%s\n", _("Notes:")); |
| 527 | printf(" %s\n", _("The SMART command modes (-i/--immediate, -0/--auto-off and -1/--auto-on) were")); | 543 | printf(" %s\n", |
| 528 | printf(" %s\n", _("broken in an underhand manner and have been disabled. You can use smartctl")); | 544 | _("The SMART command modes (-i/--immediate, -0/--auto-off and -1/--auto-on) were")); |
| 545 | printf(" %s\n", | ||
| 546 | _("broken in an underhand manner and have been disabled. You can use smartctl")); | ||
| 529 | printf(" %s\n", _("instead:")); | 547 | printf(" %s\n", _("instead:")); |
| 530 | printf(" %s\n", _("-0/--auto-off: use \"smartctl --offlineauto=off\"")); | 548 | printf(" %s\n", _("-0/--auto-off: use \"smartctl --offlineauto=off\"")); |
| 531 | printf(" %s\n", _("-1/--auto-on: use \"smartctl --offlineauto=on\"")); | 549 | printf(" %s\n", _("-1/--auto-on: use \"smartctl --offlineauto=on\"")); |
diff --git a/plugins/check_nagios.c b/plugins/check_nagios.c index e2f230c9..84506bb4 100644 --- a/plugins/check_nagios.c +++ b/plugins/check_nagios.c | |||
| @@ -79,7 +79,8 @@ int main(int argc, char **argv) { | |||
| 79 | /* open the status log */ | 79 | /* open the status log */ |
| 80 | FILE *log_file = fopen(config.status_log, "r"); | 80 | FILE *log_file = fopen(config.status_log, "r"); |
| 81 | if (log_file == NULL) { | 81 | if (log_file == NULL) { |
| 82 | die(STATE_CRITICAL, "NAGIOS %s: %s\n", _("CRITICAL"), _("Cannot open status log for reading!")); | 82 | die(STATE_CRITICAL, "NAGIOS %s: %s\n", _("CRITICAL"), |
| 83 | _("Cannot open status log for reading!")); | ||
| 83 | } | 84 | } |
| 84 | 85 | ||
| 85 | unsigned long latest_entry_time = 0L; | 86 | unsigned long latest_entry_time = 0L; |
| @@ -153,7 +154,8 @@ int main(int argc, char **argv) { | |||
| 153 | } | 154 | } |
| 154 | 155 | ||
| 155 | /* May get empty procargs */ | 156 | /* May get empty procargs */ |
| 156 | if (!strstr(procargs, argv[0]) && strstr(procargs, config.process_string) && strcmp(procargs, "")) { | 157 | if (!strstr(procargs, argv[0]) && strstr(procargs, config.process_string) && |
| 158 | strcmp(procargs, "")) { | ||
| 157 | proc_entries++; | 159 | proc_entries++; |
| 158 | if (verbose >= 2) { | 160 | if (verbose >= 2) { |
| 159 | printf(_("Found process: %s %s\n"), procprog, procargs); | 161 | printf(_("Found process: %s %s\n"), procprog, procargs); |
| @@ -171,11 +173,13 @@ int main(int argc, char **argv) { | |||
| 171 | alarm(0); | 173 | alarm(0); |
| 172 | 174 | ||
| 173 | if (proc_entries == 0) { | 175 | if (proc_entries == 0) { |
| 174 | die(STATE_CRITICAL, "NAGIOS %s: %s\n", _("CRITICAL"), _("Could not locate a running Nagios process!")); | 176 | die(STATE_CRITICAL, "NAGIOS %s: %s\n", _("CRITICAL"), |
| 177 | _("Could not locate a running Nagios process!")); | ||
| 175 | } | 178 | } |
| 176 | 179 | ||
| 177 | if (latest_entry_time == 0L) { | 180 | if (latest_entry_time == 0L) { |
| 178 | die(STATE_CRITICAL, "NAGIOS %s: %s\n", _("CRITICAL"), _("Cannot parse Nagios log file for valid time")); | 181 | die(STATE_CRITICAL, "NAGIOS %s: %s\n", _("CRITICAL"), |
| 182 | _("Cannot parse Nagios log file for valid time")); | ||
| 179 | } | 183 | } |
| 180 | 184 | ||
| 181 | time_t current_time; | 185 | time_t current_time; |
| @@ -189,7 +193,8 @@ int main(int argc, char **argv) { | |||
| 189 | printf("NAGIOS %s: ", (result == STATE_OK) ? _("OK") : _("WARNING")); | 193 | printf("NAGIOS %s: ", (result == STATE_OK) ? _("OK") : _("WARNING")); |
| 190 | printf(ngettext("%d process", "%d processes", proc_entries), proc_entries); | 194 | printf(ngettext("%d process", "%d processes", proc_entries), proc_entries); |
| 191 | printf(", "); | 195 | printf(", "); |
| 192 | printf(ngettext("status log updated %d second ago", "status log updated %d seconds ago", (int)(current_time - latest_entry_time)), | 196 | printf(ngettext("status log updated %d second ago", "status log updated %d seconds ago", |
| 197 | (int)(current_time - latest_entry_time)), | ||
| 193 | (int)(current_time - latest_entry_time)); | 198 | (int)(current_time - latest_entry_time)); |
| 194 | printf("\n"); | 199 | printf("\n"); |
| 195 | 200 | ||
| @@ -198,10 +203,11 @@ int main(int argc, char **argv) { | |||
| 198 | 203 | ||
| 199 | /* process command-line arguments */ | 204 | /* process command-line arguments */ |
| 200 | check_nagios_config_wrapper process_arguments(int argc, char **argv) { | 205 | check_nagios_config_wrapper process_arguments(int argc, char **argv) { |
| 201 | static struct option longopts[] = {{"filename", required_argument, 0, 'F'}, {"expires", required_argument, 0, 'e'}, | 206 | static struct option longopts[] = { |
| 202 | {"command", required_argument, 0, 'C'}, {"timeout", optional_argument, 0, 't'}, | 207 | {"filename", required_argument, 0, 'F'}, {"expires", required_argument, 0, 'e'}, |
| 203 | {"version", no_argument, 0, 'V'}, {"help", no_argument, 0, 'h'}, | 208 | {"command", required_argument, 0, 'C'}, {"timeout", optional_argument, 0, 't'}, |
| 204 | {"verbose", no_argument, 0, 'v'}, {0, 0, 0, 0}}; | 209 | {"version", no_argument, 0, 'V'}, {"help", no_argument, 0, 'h'}, |
| 210 | {"verbose", no_argument, 0, 'v'}, {0, 0, 0, 0}}; | ||
| 205 | 211 | ||
| 206 | check_nagios_config_wrapper result = { | 212 | check_nagios_config_wrapper result = { |
| 207 | .errorcode = OK, | 213 | .errorcode = OK, |
| @@ -285,7 +291,8 @@ void print_help(void) { | |||
| 285 | printf("%s\n", _("This plugin checks the status of the Nagios process on the local machine")); | 291 | printf("%s\n", _("This plugin checks the status of the Nagios process on the local machine")); |
| 286 | printf("%s\n", _("The plugin will check to make sure the Nagios status log is no older than")); | 292 | printf("%s\n", _("The plugin will check to make sure the Nagios status log is no older than")); |
| 287 | printf("%s\n", _("the number of minutes specified by the expires option.")); | 293 | printf("%s\n", _("the number of minutes specified by the expires option.")); |
| 288 | printf("%s\n", _("It also checks the process table for a process matching the command argument.")); | 294 | printf("%s\n", |
| 295 | _("It also checks the process table for a process matching the command argument.")); | ||
| 289 | 296 | ||
| 290 | printf("\n\n"); | 297 | printf("\n\n"); |
| 291 | 298 | ||
| @@ -306,12 +313,14 @@ void print_help(void) { | |||
| 306 | 313 | ||
| 307 | printf("\n"); | 314 | printf("\n"); |
| 308 | printf("%s\n", _("Examples:")); | 315 | printf("%s\n", _("Examples:")); |
| 309 | printf(" %s\n", "check_nagios -t 20 -e 5 -F /usr/local/nagios/var/status.log -C /usr/local/nagios/bin/nagios"); | 316 | printf(" %s\n", "check_nagios -t 20 -e 5 -F /usr/local/nagios/var/status.log -C " |
| 317 | "/usr/local/nagios/bin/nagios"); | ||
| 310 | 318 | ||
| 311 | printf(UT_SUPPORT); | 319 | printf(UT_SUPPORT); |
| 312 | } | 320 | } |
| 313 | 321 | ||
| 314 | void print_usage(void) { | 322 | void print_usage(void) { |
| 315 | printf("%s\n", _("Usage:")); | 323 | printf("%s\n", _("Usage:")); |
| 316 | printf("%s -F <status log file> -t <timeout_seconds> -e <expire_minutes> -C <process_string>\n", progname); | 324 | printf("%s -F <status log file> -t <timeout_seconds> -e <expire_minutes> -C <process_string>\n", |
| 325 | progname); | ||
| 317 | } | 326 | } |
diff --git a/plugins/common.h b/plugins/common.h index 9d1434a3..577f70fe 100644 --- a/plugins/common.h +++ b/plugins/common.h | |||
| @@ -207,9 +207,9 @@ enum { | |||
| 207 | 207 | ||
| 208 | /* for checking the result of getopt_long */ | 208 | /* for checking the result of getopt_long */ |
| 209 | #if EOF == -1 | 209 | #if EOF == -1 |
| 210 | #define CHECK_EOF(c) ((c) == EOF) | 210 | # define CHECK_EOF(c) ((c) == EOF) |
| 211 | #else | 211 | #else |
| 212 | #define CHECK_EOF(c) ((c) == -1 || (c) == EOF) | 212 | # define CHECK_EOF(c) ((c) == -1 || (c) == EOF) |
| 213 | #endif | 213 | #endif |
| 214 | 214 | ||
| 215 | #endif /* _COMMON_H_ */ | 215 | #endif /* _COMMON_H_ */ |
diff --git a/plugins/netutils.h b/plugins/netutils.h index 16c2d31f..a74930b8 100644 --- a/plugins/netutils.h +++ b/plugins/netutils.h | |||
| @@ -78,8 +78,8 @@ bool dns_lookup(const char *, struct sockaddr_storage *, int); | |||
| 78 | void host_or_die(const char *str); | 78 | void host_or_die(const char *str); |
| 79 | #define resolve_host_or_addr(addr, family) dns_lookup(addr, NULL, family) | 79 | #define resolve_host_or_addr(addr, family) dns_lookup(addr, NULL, family) |
| 80 | #define is_inet_addr(addr) resolve_host_or_addr(addr, AF_INET) | 80 | #define is_inet_addr(addr) resolve_host_or_addr(addr, AF_INET) |
| 81 | # define is_inet6_addr(addr) resolve_host_or_addr(addr, AF_INET6) | 81 | #define is_inet6_addr(addr) resolve_host_or_addr(addr, AF_INET6) |
| 82 | # define is_hostname(addr) resolve_host_or_addr(addr, address_family) | 82 | #define is_hostname(addr) resolve_host_or_addr(addr, address_family) |
| 83 | 83 | ||
| 84 | extern unsigned int socket_timeout; | 84 | extern unsigned int socket_timeout; |
| 85 | extern mp_state_enum socket_timeout_state; | 85 | extern mp_state_enum socket_timeout_state; |
| @@ -128,7 +128,8 @@ typedef struct { | |||
| 128 | double remaining_seconds; | 128 | double remaining_seconds; |
| 129 | retrieve_expiration_date_errors errors; | 129 | retrieve_expiration_date_errors errors; |
| 130 | } net_ssl_check_cert_result; | 130 | } net_ssl_check_cert_result; |
| 131 | net_ssl_check_cert_result np_net_ssl_check_cert2(unsigned int days_till_exp_warn, unsigned int days_till_exp_crit); | 131 | net_ssl_check_cert_result np_net_ssl_check_cert2(unsigned int days_till_exp_warn, |
| 132 | unsigned int days_till_exp_crit); | ||
| 132 | 133 | ||
| 133 | mp_state_enum np_net_ssl_check_cert(int days_till_exp_warn, int days_till_exp_crit); | 134 | mp_state_enum np_net_ssl_check_cert(int days_till_exp_warn, int days_till_exp_crit); |
| 134 | mp_subcheck mp_net_ssl_check_cert(int days_till_exp_warn, int days_till_exp_crit); | 135 | mp_subcheck mp_net_ssl_check_cert(int days_till_exp_warn, int days_till_exp_crit); |
diff --git a/plugins/sslutils.c b/plugins/sslutils.c index bcfb08d6..9151f722 100644 --- a/plugins/sslutils.c +++ b/plugins/sslutils.c | |||
| @@ -410,7 +410,8 @@ retrieve_expiration_time_result np_net_ssl_get_cert_expiration(X509 *certificate | |||
| 410 | # endif /* MOPL_USE_OPENSSL */ | 410 | # endif /* MOPL_USE_OPENSSL */ |
| 411 | } | 411 | } |
| 412 | 412 | ||
| 413 | net_ssl_check_cert_result np_net_ssl_check_cert2(unsigned int days_till_exp_warn, unsigned int days_till_exp_crit) { | 413 | net_ssl_check_cert_result np_net_ssl_check_cert2(unsigned int days_till_exp_warn, |
| 414 | unsigned int days_till_exp_crit) { | ||
| 414 | # ifdef MOPL_USE_OPENSSL | 415 | # ifdef MOPL_USE_OPENSSL |
| 415 | X509 *certificate = NULL; | 416 | X509 *certificate = NULL; |
| 416 | certificate = SSL_get_peer_certificate(s); | 417 | certificate = SSL_get_peer_certificate(s); |
diff --git a/plugins/utils.c b/plugins/utils.c index dc6f5a85..941efa39 100644 --- a/plugins/utils.c +++ b/plugins/utils.c | |||
| @@ -40,7 +40,6 @@ extern const char *progname; | |||
| 40 | #define STRLEN 64 | 40 | #define STRLEN 64 |
| 41 | #define TXTBLK 128 | 41 | #define TXTBLK 128 |
| 42 | 42 | ||
| 43 | |||
| 44 | void usage(const char *msg) { | 43 | void usage(const char *msg) { |
| 45 | printf("%s\n", msg); | 44 | printf("%s\n", msg); |
| 46 | print_usage(); | 45 | print_usage(); |
