@@ -291,7 +291,7 @@ namespace boost { namespace network { namespace http {
291291 Handler & handler;
292292 utils::thread_pool & thread_pool_;
293293volatile bool headers_already_sent, first_line_already_sent, headers_in_progress, first_line_in_progress;
294- asio::streambuf headers_buffer;
294+ asio::streambuf headers_buffer, first_line_buffer ;
295295
296296 boost::recursive_mutex headers_mutex;
297297 buffer_type read_buffer_;
@@ -503,19 +503,18 @@ namespace boost { namespace network { namespace http {
503503if (first_line_in_progress)return ;
504504 first_line_in_progress =true ;
505505
506- std::vector<asio::const_buffer> buffers;
507506typedef constants<Tag> consts;
508- typename ostringstream<Tag>::type first_line_stream;
509- first_line_stream
507+ first_line_buffer.consume (first_line_buffer.size ());
508+ std::ostreamfirst_line_stream (&first_line_buffer);
509+ first_line_stream
510510 <<consts::http_slash () <<1 <<consts::dot () <<1 <<consts::space ()
511511 << status <<consts::space () <<status_message (status)
512512 <<consts::crlf ()
513+ << std::flush
513514 ;
514- std::string first_line = first_line_stream.str ();
515- buffers.push_back (asio::buffer (first_line));
516515asio::async_write (
517516socket ()
518- ,buffers
517+ ,first_line_buffer
519518 , callback);
520519 }
521520