BIND 10 trac1527, updated. 5a18f692351fe3631ee0749583b6ffb09f20b9c7 [1527] Disable perfdhcp if getifaddrs() is not available
BIND 10 source code commits
bind10-changes at lists.isc.org
Fri Dec 23 16:19:59 UTC 2011
The branch, trac1527 has been updated
via 5a18f692351fe3631ee0749583b6ffb09f20b9c7 (commit)
from dc49f886943c9f66a1f5bce734c7e434af88686d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5a18f692351fe3631ee0749583b6ffb09f20b9c7
Author: Stephen Morris <stephen at isc.org>
Date: Fri Dec 23 16:17:42 2011 +0000
[1527] Disable perfdhcp if getifaddrs() is not available
This is a fairly complex function so instead of writing a replacement
for it, compile a short program that outputs a message saying that
perfdhcp is not supported on that operating system.
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 11 +++++++++++
tests/tools/Makefile.am | 2 +-
tests/tools/perfdhcp/perfdhcp.c | 27 +++++++++++++++++++++++++++
3 files changed, 39 insertions(+), 1 deletions(-)
-----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index 3ab7beb..81ead0c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -861,10 +861,20 @@ EV_SET(NULL, 0, 0, 0, 0, 0, udata);],
])
fi
+# perfdhcp: If the clock_gettime() function does not exist on the system,
+# use an alternative supplied in the code based on gettimeofday().
CLOCK_GETTIME_LDFLAGS=
AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_GETTIME_LDFLAGS=-lrt], [])
AC_SUBST([CLOCK_GETTIME_LDFLAGS])
+# perfdhcp: if getifaddrs() does not exist, have the code output a message
+# that it can't be run on this version of the operating system. For the
+# systems on which BIND 10 is built, this means Solaris 10. (Replacements
+# for this function are long and involved, and the function is reported present
+# on Solaris 11 and later, either in the libsocket or libnsl libraries.)
+AC_SEARCH_LIBS([getifaddrs], [socket nsl],
+ [AC_DEFINE([HAVE_GETIFADDRS], [1], [getifaddrs() present])])
+
# /dev/poll issue: ASIO uses /dev/poll by default if it's available (generally
# the case with Solaris). Unfortunately its /dev/poll specific code would
# trigger the gcc's "missing-field-initializers" warning, which would
@@ -1031,6 +1041,7 @@ AC_CONFIG_FILES([Makefile
tests/tools/Makefile
tests/tools/badpacket/Makefile
tests/tools/badpacket/tests/Makefile
+ tests/tools/perfdhcp/Makefile
])
AC_OUTPUT([doc/version.ent
compatcheck/sqlite3-difftbl-check.py
diff --git a/tests/tools/Makefile.am b/tests/tools/Makefile.am
index 56cade3..b4c1394 100644
--- a/tests/tools/Makefile.am
+++ b/tests/tools/Makefile.am
@@ -2,4 +2,4 @@
# portable (at least not exist on our Solaris buildbot). For a short term
# workaround we stop building it until it's resolved.
#SUBDIRS = badpacket perfdhcp
-SUBDIRS = badpacket
+SUBDIRS = badpacket perfdhcp
diff --git a/tests/tools/perfdhcp/perfdhcp.c b/tests/tools/perfdhcp/perfdhcp.c
index b987a3b..6e02b7e 100644
--- a/tests/tools/perfdhcp/perfdhcp.c
+++ b/tests/tools/perfdhcp/perfdhcp.c
@@ -14,6 +14,31 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
+#include <config.h>
+
+#ifndef HAVE_GETIFADDRS
+
+/*
+ * Solaris 10 does not have the getifaddrs() function available (although it
+ * is present on Solaris 11 and later). For the present we will not implement
+ * a replacement (as we do with clock_gettime) as the implementation is
+ * relatively complex. Just output a message saying that the utility is not
+ * supported on this operating system.
+ */
+
+#include <stdio.h>
+
+int
+main(const int argc, char* const argv[])
+{
+ fprintf(stderr, "perfdhcp is not supported on this version of the operating system\n");
+ return (1);
+}
+
+#else
+
+/* getifaddrs() present, so the code should compile */
+
#ifdef __linux__
#define _GNU_SOURCE
#endif
@@ -3494,3 +3519,5 @@ main(const int argc, char * const argv[])
else
exit(3);
}
+
+#endif /* HAVE_GETIFADDRS */
More information about the bind10-changes
mailing list