Age | Commit message (Collapse) | Author | Files | Lines |
|
We can perfectly do icmp without root by using capabalities. So,
instead of doing unsufficient checks beforehand, we just try and fail if
it doesn't work.
Signed-off-by: Danijel Tasov <m@rbfh.de>
|
|
|
|
its good practice to use constants instead of (random) values.
Signed-off-by: Sven Nierlein <sven@nierlein.de>
|
|
|
|
This reverts commit a143739ed286cf9ae003792dbb1ce26ce43f3312.
Our current setup doesn't allow lib/*.c files to call functions defined
in plugins/utils.[ch].
|
|
---
Closes #1278
|
|
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
|
|
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.
|
|
Coverity 66502 - File descriptor fd in cmd_file_read is never closed, and thus file is left open after usage throughout runtime. - SR
|
|
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.
|
|
Print a useful error message if opening the configuration file fails.
|
|
Read the configuration file with privileges temporarily dropped if the
code is used by a setuid plugin.
|
|
Our die() function doesn't append a newline character to the message.
|
|
Replace an "if" with the ternary operator.
|
|
Add two path names to the list of default INI file locations, as some
users/distributions prefer to put configuration files into
subdirectories.
|
|
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.
|
|
|
|
|
|
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.
|
|
There's no need to cast malloc(3)'s return value.
|
|
The lib/parse_ini.c:np_get_defaults() function now dies if no
configuration file is found.
|
|
Read $MP_CONFIG_FILE if that variable is set in the environment.
|
|
Read "monitoring-plugins.ini" if that file exists, but fall back to
reading "plugins.ini" or "nagios-plugins.ini" for backward
compatibility.
|
|
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.
|
|
Signed-off-by: Davide Madrisan <davide.madrisan@gmail.com>
|
|
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
|
|
|
|
|
|
Also use strcasecmp imported from gnulib for simplicity
|
|
|
|
The change has also been updated in
https://www.monitoring-plugins.org/doc/state-retention.html
|
|
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.
|
|
|
|
Rename NAGIOS_PLUGIN_STATE_DIRECTORY to MP_STATE_DIRECTORY
|
|
|
|
1. libtab is now bundled, so suggest to enable it rather than install it
2. "parse-ini" feature has been called "extra-opts"
|
|
"Monitoring Plugins" is a name.
|
|
|
|
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.
|
|
|
|
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.
|
|
Replace the three boolean parameters of lib/utils_tcp.c's
np_expect_match() function with a single "flags" parameter.
|
|
Fix the issues found by GCC when the -Wimplicit-function-declaration
flag is specified.
|
|
Fix the issues found by GCC when the -Wuninitialized flag is specified.
|
|
|
|
|
|
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>
|
|
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.
|
|
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.
|
|
|