aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xautogen.sh58
-rw-r--r--configure.in51
-rw-r--r--plugins/utils.c12
-rw-r--r--plugins/utils.h.in2
4 files changed, 108 insertions, 15 deletions
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 00000000..0357d93a
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# autogen.sh glue for CMU Cyrus IMAP
+# $Id$
+#
+# Requires: automake, autoconf, dpkg-dev
+# set -e
+
+MAKE=$(which gnumake)
+if test ! -x "$MAKE" ; then MAKE=$(which gmake) ; fi
+if test ! -x "$MAKE" ; then MAKE=$(which make) ; fi
+HAVE_GNU_MAKE=$($MAKE --version|grep -c "Free Software Foundation")
+
+if test "$HAVE_GNU_MAKE" != "1"; then
+ echo Could not find GNU make on this system, can not proceed with build.
+ exit 1
+else
+ echo Found GNU Make at $MAKE ... good.
+fi
+
+# Refresh GNU autotools toolchain.
+for i in config.guess config.sub missing install-sh mkinstalldirs ; do
+ test -r /usr/share/automake/${i} && {
+ rm -f ${i}
+ cp /usr/share/automake/${i} .
+ }
+ chmod 755 ${i}
+done
+
+aclocal -I lib
+autoheader
+automake -c -a
+autoconf
+
+# For the Debian build
+test -d debian && {
+ # Kill executable list first
+ rm -f debian/executable.files
+
+ # Make sure our executable and removable lists won't be screwed up
+ debclean && echo Cleaned buildtree just in case...
+
+ # refresh list of executable scripts, to avoid possible breakage if
+ # upstream tarball does not include the file or if it is mispackaged
+ # for whatever reason.
+ echo Generating list of executable files...
+ rm -f debian/executable.files
+ find -type f -perm +111 ! -name '.*' -fprint debian/executable.files
+
+ # link these in Debian builds
+ rm -f config.sub config.guess
+ ln -s /usr/share/misc/config.sub .
+ ln -s /usr/share/misc/config.guess .
+}
+
+./configure $*
+
+exit 0
diff --git a/configure.in b/configure.in
index 48e45067..529b7bbc 100644
--- a/configure.in
+++ b/configure.in
@@ -300,6 +300,29 @@ AC_ARG_WITH(openssl,
[sets path to openssl installation]),
OPENSSL=$withval,)
+AC_ARG_WITH([ipv6],
+ ACX_HELP_STRING([--with-ipv6],
+ [enable IPv6 support (default=no)]),
+ ac_cv_sys_use_ipv6=$withval,
+ ac_cv_sys_use_ipv6=no)
+
+dnl Check for AF_INET6 support
+AC_CACHE_CHECK([for IPv6 support], ac_cv_sys_use_ipv6, [
+ AC_TRY_COMPILE([#include <netinet/in.h>],
+ [struct sockaddr_in6 sin6;
+ void *p;
+
+ sin6.sin6_family = AF_INET6;
+ sin6.sin6_port = 587;
+ p = &sin6.sin6_addr;],
+ [ac_cv_sys_use_ipv6=yes],
+ [ac_cv_sys_use_ipv6=no])
+ ])
+
+if test x"$ac_cv_sys_use_ipv6" != xno ; then
+ AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
+fi
+
dnl #########################################################################
dnl Check if Posix getaddrinfo() is available. It is also possible to use
dnl the version from the lwres library distributed with BIND.
@@ -398,21 +421,6 @@ if test x"$enable_emulate_getaddrinfo" != xno ; then
fi
LIBOBJS="$LIBOBJS gethostbyname.o"
- AC_CACHE_CHECK([for IPv6 support], acx_cv_sys_use_ipv6, [
- AC_TRY_COMPILE([
-# include <netinet/in.h>
- ], [
- struct sockaddr_in6 sin6;
- void *p;
-
- sin6.sin6_family = AF_INET6;
- sin6.sin6_port = 587;
- p = &sin6.sin6_addr;
- ], [acx_cv_sys_use_ipv6=yes], [acx_cv_sys_use_ipv6=no])
- ])
- if test x"$acx_cv_sys_use_ipv6" != xno ; then
- AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
- fi
fi
AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
@@ -1047,6 +1055,7 @@ AC_ARG_WITH(ping6_command,
[sets syntax for ICMPv6 ping]),
ac_cv_ping6_command=$withval,)
+if test x"$ac_cv_sys_use_ipv6" != xno ; then
AC_MSG_CHECKING(for ICMPv6 ping syntax)
ac_cv_ping6_packets_first=no
if test -n "$ac_cv_ping6_command"
@@ -1196,6 +1205,7 @@ if test "x$ac_cv_ping6_packets_first" != "xno"; then
AC_DEFINE(PING6_PACKETS_FIRST,1,
[Define if packet count must precede host])
fi
+fi
AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
@@ -1453,3 +1463,14 @@ AC_SUBST(DEPLIBS)
AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
AC_OUTPUT(Makefile subst lib/Makefile plugins/Makefile plugins-scripts/Makefile plugins-scripts/subst plugins-scripts/utils.pm plugins-scripts/utils.sh command.cfg test.pl,echo timestamp > plugins/stamp-h1;echo timestamp > plugins/stamp-h2;echo timestamp > plugins/stamp-h3;echo timestamp > plugins/stamp-h4;echo timestamp > plugins/stamp-h5;echo timestamp > plugins/stamp-h6;PATH=.:..:$PATH subst.sh command.cfg)
+
+ACX_FEATURE([with],[cgiurl],[$cgiurl])
+ACX_FEATURE([with],[nagios-user],[$nagios_usr])
+ACX_FEATURE([with],[nagios-group],[$nagios_grp])
+ACX_FEATURE([with],[trusted-path],[$trusted_path])
+ACX_FEATURE([with],[df-command],[$ac_cv_df_command])
+ACX_FEATURE([with],[ping-command],[$ac_cv_ping_command])
+ACX_FEATURE([with],[ping6-command],[$ac_cv_ping6_command])
+ACX_FEATURE([with],[lwres])
+ACX_FEATURE([with],[ipv6],[$ac_cv_sys_use_ipv6])
+ACX_FEATURE([enable],[emulate-getaddrinfo])
diff --git a/plugins/utils.c b/plugins/utils.c
index 0d250677..9ac5596e 100644
--- a/plugins/utils.c
+++ b/plugins/utils.c
@@ -32,7 +32,9 @@ int is_host (char *);
int is_addr (char *);
int resolve_host_or_addr (char *, int);
int is_inet_addr (char *);
+#ifdef USE_IPV6
int is_inet6_addr (char *);
+#endif
int is_hostname (char *);
int is_integer (char *);
@@ -181,7 +183,11 @@ is_host (char *address)
int
is_addr (char *address)
{
+#ifdef USE_IPV6
if (is_inet_addr (address) || is_inet6_addr (address))
+#else
+ if (is_inet_addr (address))
+#endif
return (TRUE);
return (FALSE);
@@ -212,11 +218,13 @@ is_inet_addr (char *address)
return resolve_host_or_addr (address, AF_INET);
}
+#ifdef USE_IPV6
int
is_inet6_addr (char *address)
{
return resolve_host_or_addr (address, AF_INET6);
}
+#endif
/* from RFC-1035
*
@@ -228,7 +236,11 @@ is_inet6_addr (char *address)
int
is_hostname (char *s1)
{
+#ifdef USE_IPV6
return resolve_host_or_addr (s1, AF_UNSPEC);
+#else
+ return resolve_host_or_addr (s1, AF_INET);
+#endif
}
int
diff --git a/plugins/utils.h.in b/plugins/utils.h.in
index 0d947f42..89ada6f0 100644
--- a/plugins/utils.h.in
+++ b/plugins/utils.h.in
@@ -30,7 +30,9 @@ int timeout_interval = DEFAULT_SOCKET_TIMEOUT;
int is_host (char *);
int is_addr (char *);
int is_inet_addr (char *);
+#ifdef USE_IPV6
int is_inet6_addr (char *);
+#endif
int is_hostname (char *);
int is_integer (char *);