| Index: net/curvecp/test_server.cc
|
| diff --git a/net/curvecp/test_server.cc b/net/curvecp/test_server.cc
|
| index a1ad4b2f52d13f119b65aeae0aeff8e510cfaa6b..d8badb9958134fc3b96fbca428e5475dd54886a3 100644
|
| --- a/net/curvecp/test_server.cc
|
| +++ b/net/curvecp/test_server.cc
|
| @@ -63,11 +63,7 @@ void TestServer::OnAccept(CurveCPServerSocket* new_socket) {
|
|
|
| EchoServer::EchoServer()
|
| : socket_(NULL),
|
| - bytes_received_(0),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - read_callback_(this, &EchoServer::OnReadComplete)),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - write_callback_(this, &EchoServer::OnWriteComplete)) {
|
| + bytes_received_(0) {
|
| }
|
|
|
| EchoServer::~EchoServer() {
|
| @@ -100,7 +96,9 @@ void EchoServer::OnReadComplete(int result) {
|
| // Echo the read data back here.
|
| DCHECK(!write_buffer_.get());
|
| write_buffer_ = new DrainableIOBuffer(read_buffer_, result);
|
| - int rv = socket_->Write(write_buffer_, result, &write_callback_);
|
| + int rv = socket_->Write(write_buffer_, result,
|
| + base::Bind(&EchoServer::OnWriteComplete,
|
| + base::Unretained(this)));
|
| if (rv == ERR_IO_PENDING)
|
| return;
|
| OnWriteComplete(rv);
|
| @@ -116,7 +114,8 @@ void EchoServer::OnWriteComplete(int result) {
|
| while (write_buffer_->BytesRemaining()) {
|
| int rv = socket_->Write(write_buffer_,
|
| write_buffer_->BytesRemaining(),
|
| - &write_callback_);
|
| + base::Bind(&EchoServer::OnWriteComplete,
|
| + base::Unretained(this)));
|
| if (rv == ERR_IO_PENDING)
|
| return;
|
| OnWriteComplete(rv);
|
| @@ -134,7 +133,9 @@ void EchoServer::ReadData() {
|
|
|
| int rv;
|
| do {
|
| - rv = socket_->Read(read_buffer_, kMaxMessage, &read_callback_);
|
| + rv = socket_->Read(read_buffer_, kMaxMessage,
|
| + base::Bind(&EchoServer::OnReadComplete,
|
| + base::Unretained(this)));
|
| if (rv == ERR_IO_PENDING)
|
| return;
|
| OnReadComplete(rv); // Complete the read manually
|
|
|