Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(793)

Unified Diff: net/socket/ssl_server_socket_nss.cc

Issue 7054010: Update SSLServerSocket to provide the net::StreamSocket interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add a StartHandshake method, and make Connect NOT_IMPLEMENTED. Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698