diff options
Diffstat (limited to 'web/attachments/76454-check_pop3.diff')
| -rw-r--r-- | web/attachments/76454-check_pop3.diff | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/web/attachments/76454-check_pop3.diff b/web/attachments/76454-check_pop3.diff new file mode 100644 index 0000000..3e50a14 --- /dev/null +++ b/web/attachments/76454-check_pop3.diff | |||
| @@ -0,0 +1,110 @@ | |||
| 1 | --- check_pop3.pl 2004-01-05 16:43:27.000000000 -0600 | ||
| 2 | +++ /home/jason/sf/nagiosplug/contrib/check_pop3.pl 2002-02-28 00:42:53.000000000 -0600 | ||
| 3 | @@ -23,29 +23,6 @@ | ||
| 4 | # with perl -wT and 'use strict' | ||
| 5 | # 2000/01/20 RM Corrected POP3 Exit State. | ||
| 6 | # 2000/01/21 RM Fix Exit Codes Again!! | ||
| 7 | -# 2003/12/30 CZ Proper CRLF in communication w/server | ||
| 8 | -# Fixed infinite loop | ||
| 9 | -# Error checking on welcome banner, USER, PASS commands | ||
| 10 | -# Better error condition handling | ||
| 11 | -# This could probably be much much smaller using Net::POP3, | ||
| 12 | -# but I haven't looked into its error conditions yet, and I | ||
| 13 | -# don't think you can specify remote port. | ||
| 14 | - | ||
| 15 | -=cut | ||
| 16 | - | ||
| 17 | -use Net::POP3; | ||
| 18 | - | ||
| 19 | -my $pop = new Net::POP3("$ARGV[0]", Timeout => 60); | ||
| 20 | -my $ret = $pop->login("$ARGV[1]","$ARGV[2]"); | ||
| 21 | -$pop->quit(); | ||
| 22 | - | ||
| 23 | -do { print "some error msg\n"; exit 2; } unless defined $ret; | ||
| 24 | - | ||
| 25 | -print "POP3 OK - ".int($ret)." messages\n"; | ||
| 26 | -exit 0; | ||
| 27 | - | ||
| 28 | -=cut | ||
| 29 | - | ||
| 30 | # ------------------------------------------------------------------------------ | ||
| 31 | |||
| 32 | # -----------------------------------------------------------------[ Require ]-- | ||
| 33 | @@ -120,56 +97,47 @@ | ||
| 34 | my $ClientSocket = &bindRemote($remotehost,$remoteport,$hostname); | ||
| 35 | |||
| 36 | |||
| 37 | - err("no welcome banner\n") unless $_ = <ClientSocket>; | ||
| 38 | - err("bad welcome banner: " . $_) unless $_ =~ /^\+OK/; | ||
| 39 | +print ClientSocket "user $username\n"; | ||
| 40 | |||
| 41 | - print ClientSocket "USER $username\r\n"; | ||
| 42 | +#Debug Server | ||
| 43 | +#print "user $username\n"; | ||
| 44 | |||
| 45 | - #Debug Server | ||
| 46 | - #print "user $username\n"; | ||
| 47 | +#Sleep or 3 secs, incase server is slow. | ||
| 48 | +sleep 3; | ||
| 49 | |||
| 50 | - err("no response to USER command\n") unless $_ = <ClientSocket>; | ||
| 51 | - err("bad response to USER: " . $_) unless $_ =~ /^\+OK/; | ||
| 52 | +print ClientSocket "pass $password\n"; | ||
| 53 | |||
| 54 | - print ClientSocket "PASS $password\r\n"; | ||
| 55 | +#Debug Server | ||
| 56 | +#print "pass $password\n"; | ||
| 57 | |||
| 58 | - #Debug Server | ||
| 59 | - #print "pass $password\n"; | ||
| 60 | +while (<ClientSocket>) { | ||
| 61 | |||
| 62 | - err("no response to PASS command\n") unless $_ = <ClientSocket>; | ||
| 63 | - err("bad response to PASS: " . $_) unless $_ =~ /^\+OK/; | ||
| 64 | +print ClientSocket "pass $password\n"; | ||
| 65 | |||
| 66 | - print ClientSocket "LIST\r\n"; | ||
| 67 | +#Debug Server | ||
| 68 | +#print $_; | ||
| 69 | |||
| 70 | - my $bad = 1; | ||
| 71 | - my $msgs = 0; | ||
| 72 | - while (<ClientSocket>) { | ||
| 73 | - #Debug Server | ||
| 74 | - #print $_; | ||
| 75 | - | ||
| 76 | - err(($1||' UNKNOWN')."\n") if (m/\-ERR(.*)/); | ||
| 77 | - $bad = 0 if /^\+OK/; | ||
| 78 | - $msgs = $1 if /^(\d+)\s+/; | ||
| 79 | - last if /^\./; | ||
| 80 | - } | ||
| 81 | - &message("$msgs\n") unless $bad; | ||
| 82 | - err("missing +OK to LIST command\n"); | ||
| 83 | +err($_) if (m/\-ERR\s+(.*)\s+.*/); | ||
| 84 | +message($_) if (m/\+OK Mailbox open,\s+(.*\d)\s+messages.*/); | ||
| 85 | +} | ||
| 86 | } | ||
| 87 | |||
| 88 | sub message | ||
| 89 | { | ||
| 90 | - my $answer = "POP3 OK - Total Messages On Server: ".shift(); | ||
| 91 | + my $answer = "UNKNOWN"; | ||
| 92 | + $answer = "Pop3 OK - Total Messages On Server :- $1"; | ||
| 93 | alarm(0); | ||
| 94 | - print ClientSocket "QUIT\r\n"; | ||
| 95 | + print ClientSocket "quit\n"; | ||
| 96 | print "$answer"; | ||
| 97 | exit 0; | ||
| 98 | } | ||
| 99 | |||
| 100 | sub err | ||
| 101 | { | ||
| 102 | - my $answer = "POP3 Error:".shift(); | ||
| 103 | + my $answer = "UNKNOWN"; | ||
| 104 | + $answer = "Pop3 Error :- $1"; | ||
| 105 | alarm(0); | ||
| 106 | - print ClientSocket "QUIT\r\n"; | ||
| 107 | + print ClientSocket "quit\n"; | ||
| 108 | print "$answer"; | ||
| 109 | exit 2; | ||
| 110 | } | ||
