void Client::onReadHeader(MessagePtr msg, const error_code& error) { // make sure everything was successful if (!error && msg->decodeHeader()) { // read content boost::asio::async_read(mSocket, boost::asio::buffer(msg->rawBody(), msg->rawBodyLength()), boost::bind(&Client::onReadBody, this, msg, boost::asio::placeholders::error)); } else // error { printf("Error reading header\n"); kill(); } }