From 1c4dd10d70ba9ed6dead6cc56cd0f572627cf619 Mon Sep 17 00:00:00 2001
From: Karl DeBisschop <kdebisschop@users.sourceforge.net>
Date: Fri, 8 Nov 2002 07:20:05 +0000
Subject: patches required to build on solaris with asprintf and gettimeofday

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@174 f882894a-f735-0410-b71e-b25c423dba1c

diff --git a/acconfig.h b/acconfig.h
index 55fb9a2..b283039 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -1,15 +1,20 @@
 #undef CGIURL
 #undef COMPILER_SUPPORTS_LL
 #undef DF_COMMAND
+#undef HAVE_ASPRINTF
 #undef HAVE_C99_VSNPRINTF
 #undef HAVE_GETOPT_H
 #undef HAVE_GETOPT_LONG
+#undef HAVE_GETTIMEOFDAY
 #undef HAVE_LONGLONG
 #undef HAVE_PROC_LOADAVG
 #undef HAVE_PROC_MEMINFO
 #undef HAVE_SSL
+#undef HAVE_SNPRINTF
 #undef HAVE_SWAP
 #undef HAVE_VA_COPY
+#undef HAVE_VASPRINTF
+#undef HAVE_VSNPRINTF
 #undef NSLOOKUP_COMMAND
 #undef HOST_COMMAND
 #undef PACKAGE_VERSION
diff --git a/configure.in b/configure.in
index d759405..bdd4013 100644
--- a/configure.in
+++ b/configure.in
@@ -12,17 +12,6 @@ AM_CONFIG_HEADER(plugins/config.h plugins/common.h plugins/version.h plugins/net
 
 AC_PREFIX_DEFAULT(/usr/local/nagios)
 
-#AC_DEFUN(AC_HAVE_DECL,
-#[
-# AC_CACHE_CHECK([for $1 declaration],ac_cv_have_$1_decl,[
-#    AC_TRY_COMPILE([$2],[int i = (int)$1],
-#        ac_cv_have_$1_decl=yes,ac_cv_have_$1_decl=no)])
-# if test x"$ac_cv_have_$1_decl" = x"yes"; then
-#    AC_DEFINE([HAVE_]translit([$1], [a-z], [A-Z])[_DECL],1,[Whether $1() is available])
-# fi
-#])
-
-
 dnl Figure out how to invoke "install" and what install options to use.
 
 AC_PROG_INSTALL
@@ -338,6 +327,28 @@ if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
 fi
 
+#AC_HAVE_DECL(asprintf, [#include <stdio.h>])
+#AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
+#AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
+#AC_HAVE_DECL(snprintf, [#include <stdio.h>])
+
+AC_CHECK_FUNC(snprintf,
+              AC_DEFINE(HAVE_SNPRINTF,1,[Define if snprintf is present]),
+              LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
+AC_CHECK_FUNC(vsnprintf,
+              AC_DEFINE(HAVE_VSNPRINTF,1,[Define if vsnprintf is present]),
+              LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
+AC_CHECK_FUNC(vasprintf,
+              AC_DEFINE(HAVE_VASPRINTF,1,[Define if vasprintf is present]),
+              LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
+AC_CHECK_FUNC(asprintf,
+              AC_DEFINE(HAVE_ASPRINTF,1,[Define if asprintf is present]),
+              LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
+
+if test x"$ac_cv_HAVE_SNPRINTF" = x"no" -o x"$ac_cv_HAVE_VSNPRINTF" = x"no" -o x"$ac_cv_HAVE_VASPRINTF" = x"no" -o x"$ac_cv_HAVE_ASPRINTF" = x"no"; then
+  LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a"
+fi
+
 dnl We used to not do long options unless a compatible lib was found
 dnl Now we provide code and make libgetopt if native is not suitable
 AC_MSG_CHECKING(for getopt_long)
@@ -356,23 +367,16 @@ AC_TRY_COMPILE([#include <getopt.h>
 
 AC_CHECK_FUNCS(getopt_long_only,,LIBS="$LIBS -lgetopt" DEPLIBS="$DEPLIBS libgetopt.a")
 
-#AC_HAVE_DECL(asprintf, [#include <stdio.h>])
-#AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
-#AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
-#AC_HAVE_DECL(snprintf, [#include <stdio.h>])
-
-AC_CHECK_FUNC(snprintf,AC_DEFINE(HAVE_SNPRINTF,1,[Define if snprintf is present]))
-AC_CHECK_FUNC(vsnprintf,AC_DEFINE(HAVE_VSNPRINTF,1,[Define if vsnprintf is present]))
-AC_CHECK_FUNC(vasprintf,AC_DEFINE(HAVE_VASPRINTF,1,[Define if vasprintf is present]))
-AC_CHECK_FUNC(asprintf,AC_DEFINE(HAVE_ASPRINTF,1,[Define if asprintf is present]))
-
-if test x"$ac_cv_HAVE_SNPRINTF" = x"no" -o x"$ac_cv_HAVE_VSNPRINTF" = x"no" -o x"$ac_cv_HAVE_VASPRINTF" = x"no" -o x"$ac_cv_HAVE_ASPRINTF" = x"no"; then
-  LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a"
-fi
+AC_TRY_COMPILE([#include <sys/time.h>],
+               [struct timeval *foo;],
+               [AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])])
 
+AC_TRY_COMPILE([#include <sys/time.h>],
+               [gettimeofday(NULL, NULL);],
+               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]))
 
 dnl Checks for library functions.
-AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul gettimeofday)
+AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
 
 AC_MSG_CHECKING(for type of socket size)
 AC_TRY_COMPILE([#include <stdlib.h>
diff --git a/plugins/common.h.in b/plugins/common.h.in
index 7281702..535ae4a 100644
--- a/plugins/common.h.in
+++ b/plugins/common.h.in
@@ -87,6 +87,22 @@
 # 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
+
 /*
  *
  * Standard Values
diff --git a/plugins/utils.c b/plugins/utils.c
index a4519f2..bf1d204 100644
--- a/plugins/utils.c
+++ b/plugins/utils.c
@@ -44,6 +44,8 @@ int is_percentage (char *);
 
 int is_option (char *str);
 
+double delta_time (struct timeval tv);
+
 void strip (char *);
 char *strscpy (char *dest, const char *src);
 char *strscat (char *dest, const char *src);
@@ -315,13 +317,21 @@ is_option (char *str)
 
 
 
+#ifndef HAVE_GETTIMEOFDAY
+int
+gettimeofday (struct timeval *tv, struct timezone *tz)
+{
+	tv->tv_usec = 0;
+	tv->tv_sec = (long) time ((time_t) 0);
+}
+#endif
+
+
 
 double
 delta_time (struct timeval tv)
 {
 	struct timeval now;
-	struct timezone tz;
-	double et;
 
 	gettimeofday (&now, NULL);
 	return ((double)(now.tv_sec - tv.tv_sec) + (double)(now.tv_usec - tv.tv_usec) / (double)1000000);
@@ -366,8 +376,6 @@ strip (char *buffer)
 char *
 strscpy (char *dest, const char *src)
 {
-	size_t len;
-
 	if (src == NULL)
 		return NULL;
 
diff --git a/plugins/utils.h.in b/plugins/utils.h.in
index d88d0cb..2b668f3 100644
--- a/plugins/utils.h.in
+++ b/plugins/utils.h.in
@@ -46,16 +46,15 @@ int is_percentage (char *);
 int is_option (char *);
 
 /* generalized timer that will do milliseconds if available */
-#ifndef HAVE_GETTIMEOFDAY
+#ifndef HAVE_STRUCT_TIMEVAL
 struct timeval {
 	long tv_sec;        /* seconds */
 	long tv_usec;  /* microseconds */
 };
+#endif
 
-#define gettimeofday (tvp,tz) {\
- tvp->tv_usec=0;\
- tvp->tv_sec=(long)time();\
-}
+#ifndef HAVE_GETTIMEOFDAY
+int gettimeofday(struct timeval *tv, struct timezone *tz);
 #endif
 
 double delta_time (struct timeval tv);
-- 
cgit v0.10-9-g596f

