From b15adb7762b6caaecaa83637abfcf5fdb4802092 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Mon, 2 Sep 2013 13:16:24 +0200 Subject: Remove "contrib" plugins These days, sites such as "Nagios Exchange" are a much better place for publishing plugins not maintained by the Plugins Development Team. --- contrib/check_rbl.c | 328 ---------------------------------------------------- 1 file changed, 328 deletions(-) delete mode 100644 contrib/check_rbl.c (limited to 'contrib/check_rbl.c') diff --git a/contrib/check_rbl.c b/contrib/check_rbl.c deleted file mode 100644 index eec84ad8..00000000 --- a/contrib/check_rbl.c +++ /dev/null @@ -1,328 +0,0 @@ -/****************************************************************************** -* -* check_rbl.c -* -* Modified by Tim Bell 2002-06-05 -* based on: -* -* * check_dig.c -* * -* * Program: dig plugin for NetSaint -* * License: GPL -* * Copyright (c) 2000 -* * -* * $Id: check_rbl.c 970 2004-12-02 00:30:32Z opensides $ -* -*****************************************************************************/ - -#include "config.h" -#include "common.h" -#include "utils.h" -#include "popen.h" -#include "string.h" - -const char progname = "check_rbl"; -const char *revision = "$Revision: 970 $"; -//const char *copyright = "2000-2003"; -//const char *email = "nagiosplug-devel@lists.sourceforge.net"; - -int process_arguments(int, char **); -int call_getopt(int, char **); -int validate_arguments(void); -int check_disk(int usp,int free_disk); -void print_help(void); -void print_usage(void); -char *reverse_ipaddr(char *ipaddr); - -char *query_address=NULL; -char *query_address_rev=NULL; -char *dns_server=NULL; -char *rbl_name=NULL; -int verbose=FALSE; - -int main(int argc, char **argv){ - char input_buffer[MAX_INPUT_BUFFER]; - char *command_line=NULL; - char *output=NULL; - int result=STATE_OK; - - /* Set signal handling and alarm */ - if (signal(SIGALRM,popen_timeout_alarm_handler)==SIG_ERR) - usage("Cannot catch SIGALRM\n"); - - if (process_arguments(argc,argv)!=OK) - usage (_("check_rbl: could not parse arguments\n")); - - /* reverse the octets in the IP address */ - query_address_rev = reverse_ipaddr(query_address); - - /* build the command to run */ - if (dns_server) { - command_line=ssprintf(command_line,"%s @%s %s.%s", - PATH_TO_DIG,dns_server, - query_address_rev, rbl_name); - } else { - command_line=ssprintf(command_line,"%s %s.%s", - PATH_TO_DIG, - query_address_rev, rbl_name); - } - alarm(timeout_interval); - time(&start_time); - - if (verbose) - printf("%s\n",command_line); - /* run the command */ - child_process=spopen(command_line); - if (child_process==NULL) { - printf("Could not open pipe: %s\n",command_line); - return STATE_UNKNOWN; - } - - child_stderr=fdopen(child_stderr_array[fileno(child_process)],"r"); - if(child_stderr==NULL) - printf("Could not open stderr for %s\n",command_line); - - output=strscpy(output,""); - - while (fgets(input_buffer,MAX_INPUT_BUFFER-1,child_process)) { - - /* the server is responding, we just got the host name... */ - if (strstr(input_buffer,";; ANSWER SECTION:")) { - - /* get the host address */ - if (!fgets(input_buffer,MAX_INPUT_BUFFER-1,child_process)) - break; - - if (strpbrk(input_buffer,"\r\n")) - input_buffer[strcspn(input_buffer,"\r\n")] = '\0'; - - if (strstr(input_buffer,query_address_rev)==input_buffer) { - output=strscpy(output,input_buffer); - /* we found it, which means it's listed! */ - result=STATE_CRITICAL; - } else { - strcpy(output,"Server not RBL listed."); - result=STATE_OK; - } - - continue; - } - - } - - /* - if (result!=STATE_OK) { - strcpy(output,"No ANSWER SECTION found"); - } - */ - - while (fgets(input_buffer,MAX_INPUT_BUFFER-1,child_stderr)) { - /* If we get anything on STDERR, at least set warning */ - result=error_set(result,STATE_WARNING); - printf("%s",input_buffer); - if (!strcmp(output,"")) - strcpy(output,1+index(input_buffer,':')); - } - - (void)fclose(child_stderr); - - /* close the pipe */ - if (spclose(child_process)) { - result=error_set(result,STATE_WARNING); - if (!strcmp(output,"")) - strcpy(output,"nslookup returned an error status"); - } - - (void)time(&end_time); - - if (result==STATE_OK) - printf("RBL check okay - not listed.\n"); - else if (result==STATE_WARNING) - printf("RBL WARNING - %s\n",!strcmp(output,"")?" Probably a non-existent host/domain":output); - else if (result==STATE_CRITICAL) - printf("RBL CRITICAL - %s is listed on %s\n",query_address, rbl_name); - else - printf("DNS problem - %s\n",!strcmp(output,"")?" Probably a non-existent host/domain":output); - - return result; -} - - - -/* reverse the ipaddr */ -char *reverse_ipaddr(char *ipaddr) -{ - static char revip[MAX_HOST_ADDRESS_LENGTH]; - int a, b, c, d; - - if (strlen(ipaddr) >= MAX_HOST_ADDRESS_LENGTH || - sscanf(ipaddr, "%d.%d.%d.%d", &a, &b, &c, &d) != 4) { - usage("IP address invalid or too long"); - } - sprintf(revip, "%d.%d.%d.%d", d, c, b, a); - - return revip; -} - - - -/* process command-line arguments */ -int process_arguments(int argc, char **argv) -{ - int c; - - if(argc<2) - return ERROR; - - - c=0; - while((c+=(call_getopt(argc-c,&argv[c])))