[svn] commit: r2080 - /experiments/jinmei-onmemdb/src/bin/auth/main.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Jun 7 07:46:47 UTC 2010


Author: jinmei
Date: Mon Jun  7 07:46:46 2010
New Revision: 2080

Log:
use optimized renderer buffer
use synchronous send for UDP

Modified:
    experiments/jinmei-onmemdb/src/bin/auth/main.cc

Modified: experiments/jinmei-onmemdb/src/bin/auth/main.cc
==============================================================================
--- experiments/jinmei-onmemdb/src/bin/auth/main.cc (original)
+++ experiments/jinmei-onmemdb/src/bin/auth/main.cc Mon Jun  7 07:46:46 2010
@@ -220,8 +220,8 @@
     void responseWrite(const boost::system::error_code& error) {
         if (!error) {
                 async_write(socket_,
-                            boost::asio::buffer(response_buffer_.getData(),
-                                                response_buffer_.getLength()),
+                            boost::asio::buffer(response_renderer_.getData(),
+                                                response_renderer_.getLength()),
                         boost::bind(&TCPClient::handleWrite, this,
                                     placeholders::error));
         } else {
@@ -300,7 +300,8 @@
         io_service_(io_service),
         socket_(io_service, af == AF_INET6 ? udp::v6() : udp::v4()),
         response_buffer_(0),
-        response_renderer_(response_buffer_, &offset_table_),
+        //response_renderer_(response_buffer_, &offset_table_),
+        response_renderer_(4096, &offset_table_),
         dns_message_(Message::PARSE)
     {
         // Set v6-only (we use a different instantiation for v4,
@@ -324,20 +325,14 @@
             response_renderer_.clear();
             if (auth_server->processMessage(request_buffer, dns_message_,
                                             response_renderer_, true)) {
-                socket_.async_send_to(
-                    boost::asio::buffer(response_buffer_.getData(),
-                                        response_buffer_.getLength()),
-                    sender_endpoint_,
-                    boost::bind(&UDPServer::sendCompleted,
-                                this,
-                                placeholders::error,
-                                placeholders::bytes_transferred));
-            } else {
-                startReceive();
+                socket_.send_to(
+                    boost::asio::buffer(response_renderer_.getData(),
+                                        response_renderer_.getLength()),
+                    sender_endpoint_, 0, serror_);
+                // ignore the error right now...
             }
-        } else {
-            startReceive();
-        }
+        }
+        startReceive();
     }
 
     void sendCompleted(const boost::system::error_code& error UNUSED_PARAM,
@@ -366,6 +361,7 @@
     enum { MAX_LENGTH = 4096 };
     char data_[MAX_LENGTH];
     CompressOffsetTable offset_table_;
+    boost::system::error_code serror_;
 };
 
 struct ServerSet {
@@ -660,7 +656,8 @@
     Message dns_message(Message::PARSE);
     CompressOffsetTable offset_table;
     OutputBuffer resonse_buffer(0);
-    MessageRenderer response_renderer(resonse_buffer, &offset_table);
+    //MessageRenderer response_renderer(resonse_buffer, &offset_table);
+    MessageRenderer response_renderer(4096, &offset_table);
     ++nfds;
 
     running = true;




More information about the bind10-changes mailing list