The prior bindRemote function was restricted to IPv4 by explicitly using
address family specific functions as pack_sockaddr_in or unparametrized
gethostbyname. Since Perl 5.14, released in early 2013, there is
IO::Socket::IP, which supports lookups and connects for a dual stacked
network.
By switching the connection establishment code, the plugin is now able
to establish connections to IPv6-only hosts. Furthermore, additional -4
and -6 flags were introduced to enforce a specific address family.
> $ netstat -p tcp -ln | grep 6667
> tcp6 0 0 *.6667 *.* LISTEN
> $ ./plugins-scripts/check_ircd -H localhost
> IRCD ok - Current Local Users: 4
> $ ./plugins-scripts/check_ircd -H localhost -4
> IRCD UNKNOWN: Could not start socket (Connection refused)
> $ ./plugins-scripts/check_ircd -H localhost -6
> IRCD ok - Current Local Users: 4
in case of $utils::PATH_TO_MAILQ beeing an empty string, the "defined" is still true
and leads to misleading error messages.
While on it, rewrite cascaded if/elsifs to more readably exit-early ifs.
On some OS, sockaddr structs include a length field. Perl's pack_sockaddr_in
takes this into account; the hand-rolled "pack('S n a4 x8'..." doesn't do so,
resulting in connection failures.
check_mailq.pl ignores the separate submission queue used in (modern?) sendmail
implementations.
For the queue output below with one message in the submission queue and no
messages in the transport queue, check_mailq.pl reports zero messages in the
queue because the request count from the last queue always overwrites previous
queues. If the sendmail MTA isn't running or has become wedged, messages will
sit in the submission queue forever.
The attached patch fixes this in a backwards compatible way (i.e., it shouldn't
break any of the currently supported formats).
--
Just turning attached patch of github issue #972 into a push request.
(Closes#972)
Added --exclude to exclude patterns
Cleaned up duplicated code in the args
Fixed a bug when using --all because the count always returned "1" even when nothing matched
entry=$($GREP "$query" "$tempdiff")
count=$(echo "$entry" | wc -l)
Example:
$ touch testfile
$ TEST123=$(grep 'test' testfile)
$ echo "$TEST123" | wc -l
1
attached is a patch that updates the format expected in the nullmailer
mailq output. the regex is a little more flexible and less specific
than the previous version.
Currently, the plugin output is:
CRITICAL: Uptime is 38829029 seconds.
When using the proposed `--days|-d` option, it will be:
CRITICAL: Uptime is 449 days.
check_ircd was using the string `ircd` plus the PID as a nickname
for connecting to a IRC network by default.
This caused errors, when the PID was too high and the network
restricted the length of the nickname to 9 characters.
This patch "fixes" this by just cutting it of, if it gets too big.