summaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2014-07-30Make use of xasprintf instead of asprintfrefs/pull/1278/headJan Wagner1-3/+3
--- Closes #1278
2014-07-30lib/utils_base.c: if asprintf fails, string is undefinedRicardo Maraschini1-5/+10
if asprintf fails, string content becomes invalid. we need to check if it ran OK by checking the returned value. in case of fail, asprintf returns -1, otherwise the number of writen bytes is returned. also, on ubuntu 13.10 i've receiving a lot of warnings: "warning: ignoring return value of ‘asprintf’" this patches fixes some of them Signed-off-by: Ricardo Maraschini <ricardo.maraschini@gmail.com> --- Closes #1227
2014-07-06check_icmp/check_dhcp: disable check, if we are rootJan Wagner2-16/+0
As it is possible to use capabilities(7) on linux or solaris privileges for example, it is not necessary in all cases to have those binaries making use of setuid.
2014-06-28lib/utils_cmd.c - Free file descriptorrefs/pull/1263/headSpenser Reinhardt1-0/+3
Coverity 66502 - File descriptor fd in cmd_file_read is never closed, and thus file is left open after usage throughout runtime. - SR
2014-06-21Add UID to state retention file pathHolger Weiss2-3/+9
Add the UID of the invoking user to the state retention file path. This helps solving permission issues when different users run the same plugin.
2014-06-18lib/parse_ini.c: Print proper read error messageHolger Weiss1-1/+2
Print a useful error message if opening the configuration file fails.
2014-06-18lib/parse_ini.c: Drop privileges for reading fileHolger Weiss1-0/+10
Read the configuration file with privileges temporarily dropped if the code is used by a setuid plugin.
2014-06-18lib/parse_ini.c: Add newline to die() callsHolger Weiss1-2/+2
Our die() function doesn't append a newline character to the message.
2014-06-18lib/parse_ini.c: Cosmetic changeHolger Weiss1-4/+1
Replace an "if" with the ternary operator.
2014-06-18lib/parse_ini.c: Search for INI file in subdirsHolger Weiss1-0/+2
Add two path names to the list of default INI file locations, as some users/distributions prefer to put configuration files into subdirectories.
2014-06-18lib/parse_ini.c: Add comment on NAGIOS_CONFIG_PATHHolger Weiss1-15/+17
We might want to spit out a warning when NAGIOS_CONFIG_PATH is used. While at it, move the function that handles this environment variable to the bottom.
2014-06-18lib/parse_ini.c: Cosmetic changes to commentsHolger Weiss1-16/+20
2014-06-18lib/parse_ini.c: Fix Clang warningsHolger Weiss1-8/+7
2014-06-18lib/parse_ini.[ch]: Change code formattingHolger Weiss2-156/+192
Change the indentation and formatting of the code in lib/parse_ini.c. This breaks patches against that file and makes it harder to track its history, but it (hopefully) improves readability a lot.
2014-06-17lib/parse_ini.c: Don't cast malloc(3) resultHolger Weiss1-2/+2
There's no need to cast malloc(3)'s return value.
2014-06-17lib/parse_ini.c: Remove outdated comment and codeHolger Weiss1-15/+10
The lib/parse_ini.c:np_get_defaults() function now dies if no configuration file is found.
2014-06-17lib/parse_ini.c: Read $MP_CONFIG_FILEHolger Weiss1-1/+2
Read $MP_CONFIG_FILE if that variable is set in the environment.
2014-06-17lib/parse_ini.c: Read "monitoring-plugins.ini"Holger Weiss1-0/+4
Read "monitoring-plugins.ini" if that file exists, but fall back to reading "plugins.ini" or "nagios-plugins.ini" for backward compatibility.
2014-06-17lib/parse_ini.[ch]: Simplify codeHolger Weiss2-110/+49
Rewrite the code that looks up the INI configuration file path (used by the Extra-Opts feature) in order to improve readability. The behaviour should not have changed.
2014-03-09build - avoid deprecated INCLUDESDavide Madrisan2-6/+4
Signed-off-by: Davide Madrisan <davide.madrisan@gmail.com>
2014-01-31Handle negative values properly with check_snmpStephane Lapie1-1/+1
check_snmp becomes capable of evaluating negative values properly, but it might be returning CRITICALs where it used to return OK and was ignored, if a negative value turns out to actually be a valid value. If negative values are valid, this can be worked around, by adding "~:" to the warning/critical threshold : 100 -> ~:100
2014-01-31Add tests for negative thresholds in test_utilsThomas Guyot-Sionnest1-2/+17
2014-01-30Add tests for mp_translate_state()Thomas Guyot-Sionnest1-5/+50
2014-01-29Move negate' translate_state() to utils_base.h mp_translate_state()Thomas Guyot-Sionnest2-4/+26
Also use strcasecmp imported from gnulib for simplicity
2014-01-27Rename MP_STATE_DIRECTORY to MP_STATE_PATHThomas Guyot-Sionnest2-5/+5
2014-01-27And release notes for previous change (MP_STATE_DIRECTORY)Thomas Guyot-Sionnest1-1/+0
The change has also been updated in https://www.monitoring-plugins.org/doc/state-retention.html
2014-01-25Ignore MP_STATE_DIRECTORY in suid pluginsThomas Guyot-Sionnest3-9/+21
If a plugin still has suid privileges at the time np_enable_state() is called, the MP_STATE_DIRECTORY environment will be ignored. There is no need for a NEWS entry as no suid plugins use np_enable_state yet.
2014-01-25Clean up parse_ini error messages, add missing newlinesThomas Guyot-Sionnest1-5/+5
2014-01-25Rename ENV variable, keep backward compatibilityThomas Guyot-Sionnest2-3/+9
Rename NAGIOS_PLUGIN_STATE_DIRECTORY to MP_STATE_DIRECTORY
2014-01-24Use access() instead of stat() in parse_ini.cThomas Guyot-Sionnest1-3/+2
2014-01-24Update commentsThomas Guyot-Sionnest10-10/+10
1. libtab is now bundled, so suggest to enable it rather than install it 2. "parse-ini" feature has been called "extra-opts"
2014-01-21Capitalize "Monitoring Plugins"Holger Weiss2-2/+2
"Monitoring Plugins" is a name.
2014-01-20Minor fixes to be amended into "rename" commitHolger Weiss2-2/+2
2014-01-19Project rename initial commit.Monitoring Plugins Development Team13-91/+91
This is an initial take at renaming the project to Monitoring Plugins. It's not expected to be fully complete, and it is expected to break things (The perl module for instance). More testing will be required before this goes mainline.
2013-09-12Minor cosmetic changesHolger Weiss2-7/+10
2013-09-12check_tcp: Properly deal will partial recv(3)sHolger Weiss3-27/+58
The np_expect_match() function now returns one of three possible states instead of just TRUE or FALSE: - NP_MATCH_SUCCESS - NP_MATCH_FAILURE - NP_MATCH_RETRY The NP_MATCH_RETRY state indicates that matching might succeed if np_expect_match() is called with a longer input string. This allows check_tcp to decide whether it makes sense to wait for additional data from the server.
2013-09-12Improve interface of np_expect_match() functionHolger Weiss3-18/+23
Replace the three boolean parameters of lib/utils_tcp.c's np_expect_match() function with a single "flags" parameter.
2013-09-10Fix GCC's -Wimplicit-function-declaration warningsHolger Weiss1-0/+3
Fix the issues found by GCC when the -Wimplicit-function-declaration flag is specified.
2013-09-10Fix GCC's -Wuninitialized warningsHolger Weiss1-1/+1
Fix the issues found by GCC when the -Wuninitialized flag is specified.
2013-08-20added missing header to fix build on freebsdSven Nierlein1-0/+1
2013-08-17Adding tests for range @1:1Dominique Broeglin1-1/+13
2012-11-03lib/utils_base.c: Stop dumping core on bad args to check_snmpAndreas Ericsson1-8/+8
Since the state patch introduction, we've been freeing uninitialized memory in lib/utils_base.c::np_cleanup(), which caused coredumps with check_snmp when illegal threshold ranges (for example) were passed, or when we called 'die' without having read any state. This patch fixes it by replacing the malloc() calls in there (all of them, since using malloc() is almost always an error) with calloc(). malloc() either doesn't initialize the memory at all, or taints it with a special marker so it can tell us when we're free()'ing memory that hasn't been initialized. calloc() explicitly initializes the allocated memory to nul bytes, which is a zero-cost operation when we get the memory from the kernel (which alread does that) and almost always desirable everywhere else. Signed-off-by: Andreas Ericsson <ae@op5.se>
2010-11-15Fix check_disk free space calculation if blocksizes differ within a disk ↵Matthias Eble2-0/+17
group (Bekar - #2973603) Various values (dused_pct, dfree_pct, inodes_free, inodes_total, ...) are now carried in the parameter_list structure. Assignments have been moved to a subroutine preventing code redundancies. Group metrics are now calculated based on units rather than blocks. This fixes freespace calculation when blocksizes differ within a group.
2010-07-02Fix cmd_run overwriting the environmentThomas Guyot-Sionnest1-4/+5
Some commands need the environment to function properly. One such example is check_ssh and check_by_ssh when a SOCKS proxy is required. This patch use setenv and extern char **environ to alter and pass the new environment to the child process Those modules have been added to Gnulib for portability.
2010-06-25Add test file directorytonvoon1-1/+1
2010-06-24Cleanup some warnings displayed from IRIX tinderbox serverTon Voon2-14/+9
2010-06-23Added state retention APIs. Implemented for check_snmp with --rate option.Ton Voon10-2/+593
See http://nagiosplugin.org/c-api-private for more details on the API. Also updated check_snmp -l option to change the perfdata label.
2009-06-11Use a more "natural" way of writing argument lists in extra-opts tests.Thomas Guyot-Sionnest3-173/+137
2009-06-01Fix the memory allocation for the thresholds dataHolger Weiss1-1/+3
Allocate the appropriate amount of memory for storing the thresholds data. Before, we allocated the amount of memory required for storing a _pointer_ to the thresholds data. This crashed (at least) check_mysql when using its "-S" option on FreeBSD/amd64 (as reported and analyzed by Nikita Kalabukhov - 2797757). Signed-off-by: Holger Weiss <holger@zedat.fu-berlin.de>
2009-05-28check_snmp: Make use of standard threshold functionsThomas Guyot-Sionnest1-0/+3
This patch makes use of standard threshold functions. This allows using doubles as thresholds. Since SNMP supports only integers, double precision numbers are only printed when parsed from a STRING type. In addition, support for printing properly Timeticks type has been added, and the code has been thoroughly cleaned.