@@ -289,7 +289,7 @@ namespace boost { namespace network { namespace http {
289289 Handler & handler;
290290 utils::thread_pool & thread_pool_;
291291volatile bool headers_already_sent, first_line_already_sent, headers_in_progress, first_line_in_progress;
292- asio::streambuf headers_buffer;
292+ asio::streambuf headers_buffer, first_line_buffer ;
293293
294294 boost::recursive_mutex headers_mutex;
295295 buffer_type read_buffer_;
@@ -525,19 +525,18 @@ namespace boost { namespace network { namespace http {
525525if (first_line_in_progress)return ;
526526 first_line_in_progress =true ;
527527
528- std::vector<asio::const_buffer> buffers;
529528typedef constants<Tag> consts;
530- typename ostringstream<Tag>::type first_line_stream;
531- first_line_stream
529+ first_line_buffer.consume (first_line_buffer.size ());
530+ std::ostreamfirst_line_stream (&first_line_buffer);
531+ first_line_stream
532532 <<consts::http_slash () <<1 <<consts::dot () <<1 <<consts::space ()
533533 << status <<consts::space () <<status_message (status)
534534 <<consts::crlf ()
535+ << std::flush
535536 ;
536- std::string first_line = first_line_stream.str ();
537- buffers.push_back (asio::buffer (first_line));
538537asio::async_write (
539538socket ()
540- ,buffers
539+ ,first_line_buffer
541540 , callback);
542541 }
543542