Chromium Code Reviews| Index: net/socket/ssl_server_socket_nss.cc |
| diff --git a/net/socket/ssl_server_socket_nss.cc b/net/socket/ssl_server_socket_nss.cc |
| index de212e299ce1e3bdd239336513b7815d9666ccee..229de829a39f3358f7c68ceb513966dbf97384fd 100644 |
| --- a/net/socket/ssl_server_socket_nss.cc |
| +++ b/net/socket/ssl_server_socket_nss.cc |
| @@ -46,13 +46,15 @@ static const int kRecvBufferSize = 4096; |
| namespace net { |
| SSLServerSocket* CreateSSLServerSocket( |
| - Socket* socket, X509Certificate* cert, crypto::RSAPrivateKey* key, |
| + StreamSocket* socket, |
| + X509Certificate* cert, |
| + crypto::RSAPrivateKey* key, |
| const SSLConfig& ssl_config) { |
| return new SSLServerSocketNSS(socket, cert, key, ssl_config); |
| } |
| SSLServerSocketNSS::SSLServerSocketNSS( |
| - Socket* transport_socket, |
| + StreamSocket* transport_socket, |
| scoped_refptr<X509Certificate> cert, |
| crypto::RSAPrivateKey* key, |
| const SSLConfig& ssl_config) |
| @@ -62,7 +64,7 @@ SSLServerSocketNSS::SSLServerSocketNSS( |
| this, &SSLServerSocketNSS::BufferRecvComplete)), |
| transport_send_busy_(false), |
| transport_recv_busy_(false), |
| - user_accept_callback_(NULL), |
| + user_handshake_callback_(NULL), |
| user_read_callback_(NULL), |
| user_write_callback_(NULL), |
| nss_fd_(NULL), |
| @@ -90,7 +92,7 @@ SSLServerSocketNSS::~SSLServerSocketNSS() { |
| } |
| } |
| -int SSLServerSocketNSS::Accept(CompletionCallback* callback) { |
| +int SSLServerSocketNSS::Handshake(CompletionCallback* callback) { |
| net_log_.BeginEvent(NetLog::TYPE_SSL_ACCEPT, NULL); |
|
wtc
2011/06/16 21:35:07
NetLog::TYPE_SSL_ACCEPT probably should be renamed
Wez
2011/06/17 04:53:38
Done.
I've renamed to SSL_SERVER_HANDSHAKE, and u
|
| int rv = Init(); |
| @@ -116,7 +118,7 @@ int SSLServerSocketNSS::Accept(CompletionCallback* callback) { |
| GotoState(STATE_HANDSHAKE); |
| rv = DoHandshakeLoop(net::OK); |
| if (rv == ERR_IO_PENDING) { |
| - user_accept_callback_ = callback; |
| + user_handshake_callback_ = callback; |
| } else { |
| net_log_.EndEventWithNetErrorCode(NetLog::TYPE_SSL_ACCEPT, rv); |
| } |
| @@ -124,10 +126,15 @@ int SSLServerSocketNSS::Accept(CompletionCallback* callback) { |
| return rv > OK ? OK : rv; |
| } |
| +int SSLServerSocketNSS::Connect(CompletionCallback* callback) { |
| + NOTIMPLEMENTED(); |
| + return ERR_NOT_IMPLEMENTED; |
| +} |
| + |
| int SSLServerSocketNSS::Read(IOBuffer* buf, int buf_len, |
| CompletionCallback* callback) { |
| DCHECK(!user_read_callback_); |
| - DCHECK(!user_accept_callback_); |
| + DCHECK(!user_handshake_callback_); |
| DCHECK(!user_read_buf_); |
| DCHECK(nss_bufs_); |
| @@ -168,11 +175,55 @@ int SSLServerSocketNSS::Write(IOBuffer* buf, int buf_len, |
| } |
| bool SSLServerSocketNSS::SetReceiveBufferSize(int32 size) { |
| - return false; |
| + return transport_socket_->SetReceiveBufferSize(size); |
| } |
| bool SSLServerSocketNSS::SetSendBufferSize(int32 size) { |
| - return false; |
| + return transport_socket_->SetSendBufferSize(size); |
| +} |
| + |
| +bool SSLServerSocketNSS::IsConnected() const { |
| + return completed_handshake_; |
| +} |
| + |
| +void SSLServerSocketNSS::Disconnect() { |
| + transport_socket_->Disconnect(); |
| +} |
| + |
| +bool SSLServerSocketNSS::IsConnectedAndIdle() const { |
| + return completed_handshake_ && transport_socket_->IsConnectedAndIdle(); |
| +} |
| + |
| +int SSLServerSocketNSS::GetPeerAddress(AddressList* address) const { |
| + if (!IsConnected()) |
| + return ERR_SOCKET_NOT_CONNECTED; |
| + return transport_socket_->GetPeerAddress(address); |
| +} |
| + |
| +int SSLServerSocketNSS::GetLocalAddress(IPEndPoint* address) const { |
| + if (!IsConnected()) |
| + return ERR_SOCKET_NOT_CONNECTED; |
| + return transport_socket_->GetLocalAddress(address); |
| +} |
| + |
| +const BoundNetLog& SSLServerSocketNSS::NetLog() const { |
| + return net_log_; |
| +} |
| + |
| +void SSLServerSocketNSS::SetSubresourceSpeculation() { |
| + transport_socket_->SetSubresourceSpeculation(); |
| +} |
| + |
| +void SSLServerSocketNSS::SetOmniboxSpeculation() { |
| + transport_socket_->SetOmniboxSpeculation(); |
| +} |
| + |
| +bool SSLServerSocketNSS::WasEverUsed() const { |
| + return transport_socket_->WasEverUsed(); |
| +} |
| + |
| +bool SSLServerSocketNSS::UsingTCPFastOpen() const { |
| + return transport_socket_->UsingTCPFastOpen(); |
| } |
| int SSLServerSocketNSS::InitializeSSLOptions() { |
| @@ -386,8 +437,8 @@ void SSLServerSocketNSS::OnHandshakeIOComplete(int result) { |
| int rv = DoHandshakeLoop(result); |
| if (rv != ERR_IO_PENDING) { |
| net_log_.EndEventWithNetErrorCode(net::NetLog::TYPE_SSL_ACCEPT, rv); |
| - if (user_accept_callback_) |
| - DoAcceptCallback(rv); |
| + if (user_handshake_callback_) |
| + DoHandshakeCallback(rv); |
| } |
| } |
| @@ -609,11 +660,11 @@ int SSLServerSocketNSS::DoHandshake() { |
| return net_error; |
| } |
| -void SSLServerSocketNSS::DoAcceptCallback(int rv) { |
| +void SSLServerSocketNSS::DoHandshakeCallback(int rv) { |
| DCHECK_NE(rv, ERR_IO_PENDING); |
| - CompletionCallback* c = user_accept_callback_; |
| - user_accept_callback_ = NULL; |
| + CompletionCallback* c = user_handshake_callback_; |
| + user_handshake_callback_ = NULL; |
| c->Run(rv > OK ? OK : rv); |
| } |