| 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..4f23e0436b7bbca4c9423e2786e62a0b06111d1d 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::StartHandshake(CompletionCallback* callback) {
|
| 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);
|
| }
|
| @@ -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_connect_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_connect_callback_)
|
| + DoConnectCallback(rv);
|
| }
|
| }
|
|
|
| @@ -609,11 +660,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);
|
| }
|
|
|
|
|