Code

Fix for regex input of '|', being output causing problems with Nagios' parsing of
[nagiosplug.git] / plugins / common.h
index b3357431a5d7ce4f4dba7359d049292fb370f9ed..dfc09416453372792334ebb90e8ab9c8dbd8f7a6 100644 (file)
@@ -1,47 +1,37 @@
-/******************************************************************************
- *
- * Nagios plugins common include file
- *
- * License: GPL
- * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)
- *
- * Last Modified: 11-05-1999
- *
- * Description:
- *
- * This file contains common include files and defines used in many of
- * the plugins.
- *
- * License Information:
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id$
- *
- *****************************************************************************/
+/*****************************************************************************
+* 
+* Nagios plugins common include file
+* 
+* License: GPL
+* Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)
+* Copyright (c) 2003-2007 Nagios Plugins Development Team
+* 
+* Description:
+* 
+* This file contains common include files and defines used in many of
+* the plugins.
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* 
+*****************************************************************************/
 
 #ifndef _COMMON_H_
 #define _COMMON_H_
 
 #include "config.h"
-/* This needs to be removed for Solaris servers, where 64 bit files, but 32 bit architecture
-   This needs to be done early on because subsequent system includes use _FILE_OFFSET_BITS
-   Cannot remove from config.h because is included by regex.c from lib/ */
-#if __sun__ && !defined(_LP64) && _FILE_OFFSET_BITS == 64
-#undef _FILE_OFFSET_BITS
-#endif
 
 #ifdef HAVE_FEATURES_H
 #include <features.h>
 #include <unistd.h>
 #endif
 
+/* GET_NUMBER_OF_CPUS is a macro to return 
+   number of CPUs, if we can get that data.
+   Use configure.in to test for various OS ways of
+   getting that data
+   Will return -1 if cannot get data
+*/
+#ifdef HAVE_SYSCONF__SC_NPROCESSORS_CONF 
+#define GET_NUMBER_OF_CPUS() sysconf(_SC_NPROCESSORS_CONF)
+#else
+#define GET_NUMBER_OF_CPUS() -1
+#endif
+
 #ifdef TIME_WITH_SYS_TIME
 # include <sys/time.h>
 # include <time.h>
 #include <signal.h>
 #endif
 
+/* GNU Libraries */
 #include <getopt.h>
-#include <ctype.h>
-
-#ifdef HAVE_LWRES_NETDB_H
-#include <lwres/netdb.h>
-#else
-# if !HAVE_GETADDRINFO
-#  include "getaddrinfo.h"
-# else
-#  include <netdb.h>
-# endif
-#endif
+#include "dirname.h"
 
 #ifdef HAVE_LOCALE_H
 #include <locale.h>
 # define strtoul(a,b,c) (unsigned long)atol((a))
 #endif
 
-#ifndef HAVE_ASPRINTF
-int asprintf(char **strp, const char *fmt, ...);
-#endif
-
-#ifndef HAVE_VASPRINTF
-/* int vasprintf(char **strp, const char *fmt, va_list ap); */
-#endif
-
-#ifndef HAVE_SNPRINTF
-int snprintf(char *str, size_t size, const  char  *format, ...);
-#endif
-
-#ifndef HAVE_VSNPRINTF
-int vsnprintf(char *str, size_t size, const char  *format, va_list ap);
-#endif
-
 /* SSL implementations */
 #ifdef HAVE_GNUTLS_OPENSSL_H
 #  include <gnutls/openssl.h>
@@ -196,11 +173,6 @@ enum {
 };
 #endif
 
-/* Solaris does not have floorf, but floor works. Should probably be in configure */
-#if defined(__sun) || defined(__sun__)
-static inline float floorf (float x) { return floor(x); }
-#endif
-
 enum {
        STATE_OK,
        STATE_WARNING,
@@ -211,7 +183,7 @@ enum {
 
 enum {
        DEFAULT_SOCKET_TIMEOUT = 10,     /* timeout after 10 seconds */
-       MAX_INPUT_BUFFER = 1024,             /* max size of most buffers we use */
+       MAX_INPUT_BUFFER = 8192,             /* max size of most buffers we use */
        MAX_HOST_ADDRESS_LENGTH = 256    /* max size of a host address */
 };