Browse Source

suppress noisy per-query debug messages unless the -v option is specified
(this is an ad hoc short-term hack. eventually we should design and implement
more generic logging mechanism)


git-svn-id: svn://bind10.isc.org/svn/bind10/trunk@1257 e5f2f494-b856-4b98-b285-d166d9295462

JINMEI Tatuya 15 years ago
parent
commit
e96a4c939e
3 changed files with 42 additions and 16 deletions
  1. 9 5
      src/bin/auth/auth_srv.cc
  2. 1 1
      src/bin/auth/auth_srv.h
  3. 32 10
      src/bin/auth/main.cc

+ 9 - 5
src/bin/auth/auth_srv.cc

@@ -89,7 +89,7 @@ int
 AuthSrv::processMessage(InputBuffer& request_buffer,
                         Message& message,
                         MessageRenderer& response_renderer,
-                        const bool udp_buffer)
+                        const bool udp_buffer, const bool verbose_mode)
 {
     try {
         message.fromWire(request_buffer);
@@ -98,7 +98,9 @@ AuthSrv::processMessage(InputBuffer& request_buffer,
         return (-1);
     }
 
-    cout << "[AuthSrv] received a message:\n" << message.toText() << endl;
+    if (verbose_mode) {
+        cerr << "[AuthSrv] received a message:\n" << message.toText() << endl;
+    }
 
     if (message.getRRCount(Section::QUESTION()) != 1) {
         return (-1);
@@ -119,9 +121,11 @@ AuthSrv::processMessage(InputBuffer& request_buffer,
 
     response_renderer.setLengthLimit(udp_buffer ? remote_bufsize : 65535);
     message.toWire(response_renderer);
-    cout << "sending a response (" <<
-        boost::lexical_cast<string>(response_renderer.getLength())
-         << " bytes):\n" << message.toText() << endl;
+    if (verbose_mode) {
+        cerr << "sending a response (" <<
+            boost::lexical_cast<string>(response_renderer.getLength())
+             << " bytes):\n" << message.toText() << endl;
+    }
 
     return (0);
 }

+ 1 - 1
src/bin/auth/auth_srv.h

@@ -49,7 +49,7 @@ public:
     int processMessage(isc::dns::InputBuffer& request_buffer,
                        isc::dns::Message& message,
                        isc::dns::MessageRenderer& response_renderer,
-                       bool udp_buffer);
+                       bool udp_buffer, bool verbose_mode);
     void serve(std::string zone_name);
     isc::data::ElementPtr setDbFile(const isc::data::ElementPtr config);
     isc::data::ElementPtr updateConfig(isc::data::ElementPtr config);

+ 32 - 10
src/bin/auth/main.cc

@@ -59,6 +59,10 @@ using namespace isc::config;
 using namespace isc::dns;
 
 namespace {
+static bool verbose_mode = false;
+}
+
+namespace {
 const string PROGRAM = "Auth";
 const char* DNSPORT = "5300";
 }
@@ -136,7 +140,8 @@ public:
         if (!error) {
             InputBuffer dnsbuffer(data_, bytes_transferred);
             if (auth_server->processMessage(dnsbuffer, dns_message_,
-                                            response_renderer_, false) == 0) {
+                                            response_renderer_, false,
+                                            verbose_mode) == 0) {
                 responselen_buffer_.writeUint16(response_buffer_.getLength());
                 async_write(socket_,
                             boost::asio::buffer(
@@ -240,7 +245,8 @@ public:
             dns_message_.clear(Message::PARSE);
             response_renderer_.clear();
             if (auth_server->processMessage(request_buffer, dns_message_,
-                                            response_renderer_, true) == 0) {
+                                            response_renderer_, true,
+                                            verbose_mode) == 0) {
                 socket_.async_send_to(
                     boost::asio::buffer(response_buffer_.getData(),
                                         response_buffer_.getLength()),
@@ -451,19 +457,27 @@ processMessageTCP(const int fd, Message& dns_message,
     int cc;
     int ts = accept(fd, sa, &sa_len);
 
-    cout << "[XX] process TCP" << endl;
+    if (verbose_mode) {
+        cerr << "[XX] process TCP" << endl;
+    }
     cc = recv(ts, sizebuf, 2, 0);
-    cout << "[XX] got: " << cc << endl;
+    if (verbose_mode) {
+        cerr << "[XX] got: " << cc << endl;
+    }
     uint16_t size, size_n;
     memcpy(&size_n, sizebuf, 2);
     size = ntohs(size_n);
-    cout << "[XX] got: " << size << endl;
+    if (verbose_mode) {
+        cerr << "[XX] got: " << size << endl;
+    }
 
     vector<char> message_buffer;
     message_buffer.reserve(size);
     cc = 0;
     while (cc < size) {
-        cout << "[XX] cc now: " << cc << " of " << size << endl;
+        if (verbose_mode) {
+            cerr << "[XX] cc now: " << cc << " of " << size << endl;
+        }
         cc += recv(ts, &message_buffer[0] + cc, size - cc, 0);
     }
 
@@ -478,10 +492,15 @@ processMessageTCP(const int fd, Message& dns_message,
             cc = send(ts, response_renderer.getData(),
                       response_renderer.getLength(), 0);
             if (cc == -1) {
-                cerr << "[AuthSrv] error in sending TCP response message" <<
-                    endl;
+                if (verbose_mode) {
+                    cerr << "[AuthSrv] error in sending TCP response message" <<
+                        endl;
+                }
             } else {
-                cout << "[XX] sent TCP response: " << cc << " bytes" << endl;
+                if (verbose_mode) {
+                    cerr << "[XX] sent TCP response: " << cc << " bytes"
+                         << endl;
+                }
             }
         }
     }
@@ -570,7 +589,7 @@ main(int argc, char* argv[]) {
     bool ipv4_only = false, ipv6_only = false;
     bool use_ipv4 = false, use_ipv6 = false;
 
-    while ((ch = getopt(argc, argv, "46p:")) != -1) {
+    while ((ch = getopt(argc, argv, "46p:v")) != -1) {
         switch (ch) {
         case '4':
             ipv4_only = true;
@@ -581,6 +600,9 @@ main(int argc, char* argv[]) {
         case 'p':
             port = optarg;
             break;
+        case 'v':
+            verbose_mode = true;
+            break;
         case '?':
         default:
             usage();