From 69e1b0fe391b611fed0dd57422dbff76d5ea9546 Mon Sep 17 00:00:00 2001 From: "M. Sean Finney" Date: Sun, 26 Jun 2005 16:27:05 +0000 Subject: spring cleaning of contrib directory from andreas git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1192 f882894a-f735-0410-b71e-b25c423dba1c --- contrib/check_pop3.pl | 148 -------------------------------------------------- 1 file changed, 148 deletions(-) delete mode 100644 contrib/check_pop3.pl (limited to 'contrib/check_pop3.pl') diff --git a/contrib/check_pop3.pl b/contrib/check_pop3.pl deleted file mode 100644 index 37f2ce03..00000000 --- a/contrib/check_pop3.pl +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/perl -# ------------------------------------------------------------------------------ -# File Name: check_pop3.pl -# Author: Richard Mayhew - South Africa -# Date: 2000/01/21 -# Version: 1.0 -# Description: This script will check to see if an POP3 is running -# and whether authentication can take place. -# Email: netsaint@splash.co.za -# ------------------------------------------------------------------------------ -# Copyright 1999 (c) Richard Mayhew -# Credits go to Ethan Galstad for coding Nagios -# If any changes are made to this script, please mail me a copy of the -# changes :) -# License GPL -# ------------------------------------------------------------------------------ -# Date Author Reason -# ---- ------ ------ -# 1999/09/20 RM Creation -# 1999/09/20 TP Changed script to use strict, more secure by -# specifying $ENV variables. The bind command is -# still insecure through. Did most of my work -# with perl -wT and 'use strict' -# 2000/01/20 RM Corrected POP3 Exit State. -# 2000/01/21 RM Fix Exit Codes Again!! -# 2003/12/30 CZ Proper CRLF in communication w/server -# Fixed infinite loop -# Error checking on welcome banner, USER, PASS commands -# Better error condition handling - -# ------------------------------------------------------------------------------ - -# -----------------------------------------------------------------[ Require ]-- -require 5.004; - -# --------------------------------------------------------------------[ Uses ]-- -use Socket; -use strict; - -# --------------------------------------------------------------[ Enviroment ]-- -$ENV{PATH} = "/bin"; -$ENV{BASH_ENV} = ""; -$|=1; -# ------------------------------------------------------------------[ Global ]-- -my $TIMEOUT = 60; - -# -------------------------------------------------------------------[ usage ]-- -sub usage -{ - print "Minimum arguments not supplied!\n"; - print "\n"; - print "Perl Check POP3 plugin for Nagios\n"; - print "Copyright (c) 2000 Richard Mayhew\n"; - print "\n"; - print "Usage: check_pop3.pl [port]\n"; - print "\n"; - print " = Port that the pop3 daemon is running on . Defaults to 110.\n"; - exit -1; - -} - -# --------------------------------------------------------------[ bindRemote ]-- -sub bindRemote -{ - my ($in_remotehost, $in_remoteport, $in_hostname) = @_; - my $proto; - my $sockaddr; - my $this; - my $thisaddr; - my $that; - my ($name, $aliases,$type,$len,$thataddr) = gethostbyname($in_remotehost); - - if (!socket(ClientSocket,AF_INET, SOCK_STREAM, $proto)) { die $!; } - $sockaddr = 'S n a4 x8'; - $this = pack($sockaddr, AF_INET, 0, $thisaddr); - $that = pack($sockaddr, AF_INET, $in_remoteport, $thataddr); - if (!bind(ClientSocket, $this)) { print "Connection Refused\n"; exit 2; } - if (!connect(ClientSocket, $that)) { print "Connection Refused\n"; exit 2; } - select(ClientSocket); $| = 1; select(STDOUT); - return \*ClientSocket; -} - -# ====================================================================[ MAIN ]== -MAIN: -{ - my $hostname; - my $remotehost = shift || &usage; - my $username = shift || &usage; - my $password = shift || &usage; - my $remoteport = shift || 110; - - # Just in case of problems, let's not hang Nagios - $SIG{'ALRM'} = sub { - print "Something is Taking a Long Time, Increase Your TIMEOUT (Currently Set At $TIMEOUT Seconds)\n"; - exit -1; - }; - - alarm($TIMEOUT); - - chop($hostname = `hostname`); - my ($name, $alias, $proto) = getprotobyname('tcp'); - my $ClientSocket = &bindRemote($remotehost,$remoteport,$hostname); - - - &err("no welcome banner\n") unless $_ = ; - &err("bad welcome banner: " . $_) unless $_ =~ /^\+OK/; - - print ClientSocket "USER $username\r\n"; - - &err("no response to USER command\n") unless $_ = ; - &err("bad response to USER: " . $_) unless $_ =~ /^\+OK/; - - print ClientSocket "PASS $password\r\n"; - - &err("no response to PASS command\n") unless $_ = ; - &err("bad response to PASS: " . $_) unless $_ =~ /^\+OK/; - - print ClientSocket "LIST\r\n"; - - my $bad = 1; - my $msgs = 0; - while () { - &err(($1||' UNKNOWN')."\n") if (m/\-ERR(.*)/); - $bad = 0 if /^\+OK/; - $msgs = $1 if /^(\d+)\s+/; - last if /^\./; - } - &message("$msgs\n") unless $bad; - &err("missing +OK to LIST command\n"); -} - -sub message -{ - my $msg = shift; - alarm(0); - print ClientSocket "QUIT\r\n"; - print "POP3 OK - Total Messages On Server: $msg"; - exit 0; -} - -sub err -{ - my $msg = shift; - alarm(0); - print ClientSocket "QUIT\r\n"; - print "POP3 Error: $msg"; - exit 2; -} -- cgit v1.2.3-74-g34f1