Fix

I have to change a line in the script in order to receive the correct report, otherwise the report is always CRITICAL although the server is working properly. This is an example with verbose output:

# ./check_tftp -H server.com -p 67 -v
opening echo status | /usr/bin/tftp server.com 67
output is:

tftp> Connected to server.com.
Mode: netascii Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp>

STATUS: tftp> Connected to server.com.

TFTP CRITICAL: tftp> Connected to server.com.
#

This is the change:

92 my ($state, $answer);
93 -if ($status =~ /^Connected to/) {
93 +if ($status =~ /Connected to/) {
94 $state = $ERRORS{OK};
95 $answer = $status;
96 chomp $answer;

And this is the report now:

# ./check_tftp -H server.com -p 67 -v
opening echo status | /usr/bin/tftp server.com 67
output is:

tftp> Connected to server.com.
Mode: netascii Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp>

STATUS: tftp> Connected to server.com.

TFTP OK: tftp> Connected to server.com.
#