BIND 10 trac2156, updated. b3d9dd1d5624efbd25f04b025ebc34e1bf533c26 [2156] Some improvements (compilable with -Werror)

BIND 10 source code commits bind10-changes at lists.isc.org
Fri Aug 31 10:03:46 UTC 2012


The branch, trac2156 has been updated
       via  b3d9dd1d5624efbd25f04b025ebc34e1bf533c26 (commit)
      from  40e62a2bed6e81c02c5965bea6165ad803956ad7 (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 b3d9dd1d5624efbd25f04b025ebc34e1bf533c26
Author: Kazunori Fujiwara <fujiwara at wide.ad.jp>
Date:   Fri Aug 31 15:58:36 2012 +0900

    [2156] Some improvements (compilable with -Werror)

-----------------------------------------------------------------------

Summary of changes:
 src/bin/auth/statistics.cc                         |   10 +++++--
 src/bin/auth/statistics_items.h                    |    4 ++-
 src/bin/resolver/Makefile.am                       |    1 -
 src/bin/resolver/tests/Makefile.am                 |    1 -
 src/lib/asiodns/Makefile.am                        |    3 +-
 src/lib/asiodns/socketstatistics.cc                |   25 +++++++++++-----
 src/lib/asiodns/socketstatistics.h                 |   31 ++++++++++++++++++--
 src/lib/asiodns/tcp_server.cc                      |    1 +
 src/lib/asiodns/tests/socketstatistics_unittest.cc |   14 ++++-----
 9 files changed, 65 insertions(+), 25 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/bin/auth/statistics.cc b/src/bin/auth/statistics.cc
index 65d025c..b81e862 100644
--- a/src/bin/auth/statistics.cc
+++ b/src/bin/auth/statistics.cc
@@ -46,13 +46,15 @@
 using namespace isc::dns;
 using namespace isc::auth;
 using namespace isc::statistics;
+using namespace isc::asiodns;
 
 namespace {
 using namespace isc::data;
 using isc::statistics::Counter;
 using isc::auth::statistics::Counters;
 void
-fillNodes(const Counter &counter, const char *nodename[], const size_t size,
+fillNodes(const Counter &counter, const std::string nodename[],
+          const size_t size,
           const std::string &prefix, Counters::item_tree_type &trees)
 {
     for (size_t i = 0; i < size; ++i) {
@@ -303,7 +305,8 @@ CountersImpl::get(const Counters::item_node_name_set_type &trees) const {
             fillNodes(server_qr_counter_, QRCounterItemName, QR_COUNTER_TYPES,
                       "auth.server.qr.", item_tree);
         } else if (node == "auth.server.socket") {
-            fillNodes(isc::asiodns::SocketCounter, SocketCounterItemName,
+            fillNodes(SocketCounter,
+                      SocketCounterItemName,
                       SOCKET_ASIODNS_COUNTER_TYPES, "auth.server.socket.",
                       item_tree);
         } else if (node == "auth.zones") {
@@ -325,7 +328,8 @@ CountersImpl::dump() const {
 
     fillNodes(server_qr_counter_, QRCounterItemName, QR_COUNTER_TYPES,
               "auth.server.qr.", item_tree);
-    fillNodes(isc::asiodns::SocketCounter, SocketCounterItemName,
+    fillNodes(isc::asiodns::SocketCounter,
+              isc::asiodns::SocketCounterItemName,
               SOCKET_ASIODNS_COUNTER_TYPES, "auth.server.socket.", item_tree);
 
     return (item_tree);
diff --git a/src/bin/auth/statistics_items.h b/src/bin/auth/statistics_items.h
index dfe36ea..69f919c 100644
--- a/src/bin/auth/statistics_items.h
+++ b/src/bin/auth/statistics_items.h
@@ -15,6 +15,8 @@
 #ifndef __STATISTICS_ITEMS_H
 #define __STATISTICS_ITEMS_H 1
 
+#include <string>
+
 /// This file defines a set of statistics items in Auth module for internal
 /// use. This file is intended to be included in statistics.cc.
 
@@ -147,7 +149,7 @@ enum QRCounterType {
     QR_COUNTER_TYPES  ///< The number of defined counters
 };
 // item names for query/response counters
-const char *QRCounterItemName[QR_COUNTER_TYPES] = {
+const std::string QRCounterItemName[QR_COUNTER_TYPES] = {
     "request.v4",
     "request.v6",
     "request.edns0",
diff --git a/src/bin/resolver/Makefile.am b/src/bin/resolver/Makefile.am
index b8d2254..83bf8b3 100644
--- a/src/bin/resolver/Makefile.am
+++ b/src/bin/resolver/Makefile.am
@@ -70,7 +70,6 @@ b10_resolver_LDADD += $(top_builddir)/src/lib/server_common/libb10-server-common
 b10_resolver_LDADD += $(top_builddir)/src/lib/cache/libb10-cache.la
 b10_resolver_LDADD += $(top_builddir)/src/lib/nsas/libb10-nsas.la
 b10_resolver_LDADD += $(top_builddir)/src/lib/resolve/libb10-resolve.la
-b10_resolver_LDADD += $(top_builddir)/src/lib/statistics/libb10-statistics.la
 b10_resolver_LDFLAGS = -pthread
 
 # TODO: config.h.in is wrong because doesn't honor pkgdatadir
diff --git a/src/bin/resolver/tests/Makefile.am b/src/bin/resolver/tests/Makefile.am
index fa21afe..52b39a1 100644
--- a/src/bin/resolver/tests/Makefile.am
+++ b/src/bin/resolver/tests/Makefile.am
@@ -54,7 +54,6 @@ run_unittests_LDADD += $(top_builddir)/src/lib/nsas/libb10-nsas.la
 run_unittests_LDADD += $(top_builddir)/src/lib/acl/libb10-acl.la
 run_unittests_LDADD += $(top_builddir)/src/lib/util/libb10-util.la
 run_unittests_LDADD += $(top_builddir)/src/lib/util/unittests/libutil_unittests.la
-run_unittests_LDADD += $(top_builddir)/src/lib/statistics/libb10-statistics.la
 
 # Note the ordering matters: -Wno-... must follow -Wextra (defined in
 # B10_CXXFLAGS
diff --git a/src/lib/asiodns/Makefile.am b/src/lib/asiodns/Makefile.am
index 22669cf..498410e 100644
--- a/src/lib/asiodns/Makefile.am
+++ b/src/lib/asiodns/Makefile.am
@@ -41,4 +41,5 @@ if USE_CLANGPP
 libb10_asiodns_la_CXXFLAGS += -Wno-error
 endif
 libb10_asiodns_la_CPPFLAGS = $(AM_CPPFLAGS)
-libb10_asiodns_la_LIBADD = $(top_builddir)/src/lib/log/libb10-log.la
+libb10_asiodns_la_LIBADD = $(top_builddir)/src/lib/log/libb10-log.la \
+                           $(top_builddir)/src/lib/statistics/libb10-statistics.la
diff --git a/src/lib/asiodns/socketstatistics.cc b/src/lib/asiodns/socketstatistics.cc
index 588a740..2ec8266 100644
--- a/src/lib/asiodns/socketstatistics.cc
+++ b/src/lib/asiodns/socketstatistics.cc
@@ -12,19 +12,28 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
-#ifndef __SOCKETSTATISTICS_H
-#define __SOCKETSTATISTICS_H 1
-
 #include <statistics/counter.h>
-#include <asiodns/socketstatistics_items.h>
+#include <asiodns/socketstatistics.h>
 
 namespace isc {
 namespace asiodns {
 
 // Global SocketCounter
-class isc::statistics::Counter SocketCounter(SOCKET_ASIODNS_COUNTER_TYPES);
+isc::statistics::Counter SocketCounter(SOCKET_ASIODNS_COUNTER_TYPES);
 
-}   // namespace statistics
-}   // namespace isc
+// item names for socket statistics
+const std::string SocketCounterItemName[SOCKET_ASIODNS_COUNTER_TYPES] = {
+    "asiodns_fd_add_tcp",
+    "asiodns_fd_add_udp",
+    "asiodns_fetch_completed",
+    "asiodns_fetch_stopped",
+    "asiodns_socket_open_error",
+    "asiodns_read_data_error",
+    "asiodns_read_timeout",
+    "asiodns_send_data_error",
+    "asiodns_unknown_origin",
+    "asiodns_unknown_result",
+};
 
-#endif
+}   // namespace asiodns
+}   // namespace isc
diff --git a/src/lib/asiodns/socketstatistics.h b/src/lib/asiodns/socketstatistics.h
index e4f6c60..337cf17 100644
--- a/src/lib/asiodns/socketstatistics.h
+++ b/src/lib/asiodns/socketstatistics.h
@@ -15,16 +15,41 @@
 #ifndef __SOCKETSTATISTICS_H
 #define __SOCKETSTATISTICS_H 1
 
+#include <string>
 #include <statistics/counter.h>
-#include <asiodns/socketstatistics_items.h>
 
 namespace isc {
 namespace asiodns {
 
+// enum for socket statistics
+enum SocketCounterType {
+    // Socket statistics
+    SOCKET_ASIODNS_FD_ADD_TCP,         ///< adding a new TCP server
+    SOCKET_ASIODNS_FD_ADD_UDP,         ///< adding a new UDP server
+    SOCKET_ASIODNS_FETCH_COMPLETED,    ///< upstream fetch has now completed
+    SOCKET_ASIODNS_FETCH_STOPPED,      ///< upstream fetch has been stopped
+    SOCKET_ASIODNS_SOCKET_OPEN_ERROR,  ///< error opening socket
+    SOCKET_ASIODNS_READ_DATA_ERROR,    ///< error reading data
+    SOCKET_ASIODNS_READ_TIMEOUT,       ///< receive timeout
+    SOCKET_ASIODNS_SEND_DATA_ERROR,    ///< error sending data
+    SOCKET_ASIODNS_UNKNOWN_ORIGIN,     ///< unknown origin for ASIO error
+    SOCKET_ASIODNS_UNKNOWN_RESULT,     ///< unknown result
+    SOCKET_ASIODNS_COUNTER_TYPES       ///< The number of defined counters
+};
+
 // Global SocketCounter
-extern class isc::statistics::Counter SocketCounter;
+extern isc::statistics::Counter SocketCounter;
+extern const std::string SocketCounterItemName[SOCKET_ASIODNS_COUNTER_TYPES];
+
+/// This file defines a set of statistics items in Auth module for internal
+/// use. This file is intended to be included in statistics.cc.
 
 }   // namespace statistics
 }   // namespace isc
 
-#endif
+#endif // __SOCKETSTATISTICS_H
+
+// Local Variables:
+// mode: c++
+// End:
+
diff --git a/src/lib/asiodns/tcp_server.cc b/src/lib/asiodns/tcp_server.cc
index 6fd52f2..418b803 100644
--- a/src/lib/asiodns/tcp_server.cc
+++ b/src/lib/asiodns/tcp_server.cc
@@ -41,6 +41,7 @@ using namespace std;
 using namespace isc::dns;
 using namespace isc::util;
 using namespace isc::asiolink;
+using namespace isc::asiodns;
 
 namespace isc {
 namespace asiodns {
diff --git a/src/lib/asiodns/tests/socketstatistics_unittest.cc b/src/lib/asiodns/tests/socketstatistics_unittest.cc
index 69f6577..3bf2aa7 100644
--- a/src/lib/asiodns/tests/socketstatistics_unittest.cc
+++ b/src/lib/asiodns/tests/socketstatistics_unittest.cc
@@ -608,12 +608,14 @@ public:
 
 TEST(StatisticsItemsTest, SocketItemNamesCheck) {
     // check the number of elements in the array
-    EXPECT_EQ(sizeof(SocketCounterItemName)
-              / sizeof(SocketCounterItemName[0]),
+    EXPECT_EQ(sizeof(isc::asiodns::SocketCounterItemName)
+              / sizeof(isc::asiodns::SocketCounterItemName[0]),
               SOCKET_ASIODNS_COUNTER_TYPES);
     // check the name of the first enum element
+    std::string s = SocketCounterItemName[SOCKET_ASIODNS_FETCH_COMPLETED];
     EXPECT_EQ(SocketCounterItemName[SOCKET_ASIODNS_FETCH_COMPLETED],
               "asiodns_fetch_completed");
+    // SocketCounterItemName[SOCKET_ASIODNS_FETCH_COMPLETED]);
     // check the name of the last enum element
     EXPECT_EQ(SocketCounterItemName[SOCKET_ASIODNS_UNKNOWN_RESULT],
               "asiodns_unknown_result");
@@ -630,17 +632,15 @@ TEST_F(StatisticsIOFetchTest, UdpStop) {
 // Do the same tests for TCP transport
 
 TEST_F(StatisticsIOFetchTest, TcpStop) {
-    int a = isc::asiodns::SocketCounter.get(SOCKET_ASIODNS_FETCH_STOPPED);
+    int a = SocketCounter.get(SOCKET_ASIODNS_FETCH_STOPPED);
     stopTest(IOFetch::TCP, tcp_fetch_);
-    int b = isc::asiodns::SocketCounter.get(SOCKET_ASIODNS_FETCH_STOPPED);
-    EXPECT_EQ(a+1, b);
+    EXPECT_EQ(a+1, SocketCounter.get(SOCKET_ASIODNS_FETCH_STOPPED));
 }
 
 TEST_F(StatisticsIOFetchTest, TcpTimeout) {
     int a = isc::asiodns::SocketCounter.get(SOCKET_ASIODNS_READ_TIMEOUT);
     timeoutTest(IOFetch::TCP, tcp_fetch_);
-    int b = isc::asiodns::SocketCounter.get(SOCKET_ASIODNS_READ_TIMEOUT);
-    EXPECT_EQ(a+1, b);
+    EXPECT_EQ(a+1, SocketCounter.get(SOCKET_ASIODNS_READ_TIMEOUT));
 }
 
 } // namespace asiodns



More information about the bind10-changes mailing list