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..6659368c80fc658a5c2222b149d741145fb94de8 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_connect_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::Connect(CompletionCallback* callback) { |
|
Mike Belshe
2011/06/03 18:34:59
I guess you didn't like accept() because its not a
Wez
2011/06/07 00:25:28
Yes, and the BSD sockets model seems to be what ne
|
| net_log_.BeginEvent(NetLog::TYPE_SSL_ACCEPT, NULL); |
| 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_connect_callback_ = callback; |
| } else { |
| net_log_.EndEventWithNetErrorCode(NetLog::TYPE_SSL_ACCEPT, rv); |
| } |
| @@ -127,7 +129,7 @@ int SSLServerSocketNSS::Accept(CompletionCallback* callback) { |
| int SSLServerSocketNSS::Read(IOBuffer* buf, int buf_len, |
| CompletionCallback* callback) { |
| DCHECK(!user_read_callback_); |
| - DCHECK(!user_accept_callback_); |
| + DCHECK(!user_connect_callback_); |
| DCHECK(!user_read_buf_); |
| DCHECK(nss_bufs_); |
| @@ -168,11 +170,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 +432,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_connect_callback_) |
| + DoConnectCallback(rv); |
| } |
| } |
| @@ -609,11 +655,11 @@ int SSLServerSocketNSS::DoHandshake() { |
| return net_error; |
| } |
| -void SSLServerSocketNSS::DoAcceptCallback(int rv) { |
| +void SSLServerSocketNSS::DoConnectCallback(int rv) { |
| DCHECK_NE(rv, ERR_IO_PENDING); |
| - CompletionCallback* c = user_accept_callback_; |
| - user_accept_callback_ = NULL; |
| + CompletionCallback* c = user_connect_callback_; |
| + user_connect_callback_ = NULL; |
| c->Run(rv > OK ? OK : rv); |
| } |