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

Side by Side Diff: net/socket/ssl_server_socket_nss.cc

Issue 8889036: Revert 113699 - base::Bind: Convert Socket::Write. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/socket/ssl_server_socket_nss.h ('k') | net/socket/ssl_server_socket_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Deleted: svn:mergeinfo
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/socket/ssl_server_socket_nss.h" 5 #include "net/socket/ssl_server_socket_nss.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <winsock2.h> 8 #include <winsock2.h>
9 #endif 9 #endif
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 crypto::RSAPrivateKey* key, 59 crypto::RSAPrivateKey* key,
60 const SSLConfig& ssl_config) 60 const SSLConfig& ssl_config)
61 : ALLOW_THIS_IN_INITIALIZER_LIST(buffer_send_callback_( 61 : ALLOW_THIS_IN_INITIALIZER_LIST(buffer_send_callback_(
62 this, &SSLServerSocketNSS::BufferSendComplete)), 62 this, &SSLServerSocketNSS::BufferSendComplete)),
63 ALLOW_THIS_IN_INITIALIZER_LIST(buffer_recv_callback_( 63 ALLOW_THIS_IN_INITIALIZER_LIST(buffer_recv_callback_(
64 this, &SSLServerSocketNSS::BufferRecvComplete)), 64 this, &SSLServerSocketNSS::BufferRecvComplete)),
65 transport_send_busy_(false), 65 transport_send_busy_(false),
66 transport_recv_busy_(false), 66 transport_recv_busy_(false),
67 user_handshake_callback_(NULL), 67 user_handshake_callback_(NULL),
68 old_user_read_callback_(NULL), 68 old_user_read_callback_(NULL),
69 old_user_write_callback_(NULL), 69 user_write_callback_(NULL),
70 nss_fd_(NULL), 70 nss_fd_(NULL),
71 nss_bufs_(NULL), 71 nss_bufs_(NULL),
72 transport_socket_(transport_socket), 72 transport_socket_(transport_socket),
73 ssl_config_(ssl_config), 73 ssl_config_(ssl_config),
74 cert_(cert), 74 cert_(cert),
75 next_handshake_state_(STATE_NONE), 75 next_handshake_state_(STATE_NONE),
76 completed_handshake_(false) { 76 completed_handshake_(false) {
77 ssl_config_.false_start_enabled = false; 77 ssl_config_.false_start_enabled = false;
78 ssl_config_.ssl3_enabled = true; 78 ssl_config_.ssl3_enabled = true;
79 ssl_config_.tls1_enabled = true; 79 ssl_config_.tls1_enabled = true;
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 user_read_callback_ = callback; 192 user_read_callback_ = callback;
193 } else { 193 } else {
194 user_read_buf_ = NULL; 194 user_read_buf_ = NULL;
195 user_read_buf_len_ = 0; 195 user_read_buf_len_ = 0;
196 } 196 }
197 return rv; 197 return rv;
198 } 198 }
199 199
200 int SSLServerSocketNSS::Write(IOBuffer* buf, int buf_len, 200 int SSLServerSocketNSS::Write(IOBuffer* buf, int buf_len,
201 OldCompletionCallback* callback) { 201 OldCompletionCallback* callback) {
202 DCHECK(!old_user_write_callback_ && user_write_callback_.is_null()); 202 DCHECK(!user_write_callback_);
203 DCHECK(!user_write_buf_); 203 DCHECK(!user_write_buf_);
204 DCHECK(nss_bufs_); 204 DCHECK(nss_bufs_);
205 205
206 user_write_buf_ = buf; 206 user_write_buf_ = buf;
207 user_write_buf_len_ = buf_len; 207 user_write_buf_len_ = buf_len;
208 208
209 int rv = DoWriteLoop(OK); 209 int rv = DoWriteLoop(OK);
210 210
211 if (rv == ERR_IO_PENDING) { 211 if (rv == ERR_IO_PENDING) {
212 old_user_write_callback_ = callback;
213 } else {
214 user_write_buf_ = NULL;
215 user_write_buf_len_ = 0;
216 }
217 return rv;
218 }
219 int SSLServerSocketNSS::Write(IOBuffer* buf, int buf_len,
220 const CompletionCallback& callback) {
221 DCHECK(!old_user_write_callback_ && user_write_callback_.is_null());
222 DCHECK(!user_write_buf_);
223 DCHECK(nss_bufs_);
224
225 user_write_buf_ = buf;
226 user_write_buf_len_ = buf_len;
227
228 int rv = DoWriteLoop(OK);
229
230 if (rv == ERR_IO_PENDING) {
231 user_write_callback_ = callback; 212 user_write_callback_ = callback;
232 } else { 213 } else {
233 user_write_buf_ = NULL; 214 user_write_buf_ = NULL;
234 user_write_buf_len_ = 0; 215 user_write_buf_len_ = 0;
235 } 216 }
236 return rv; 217 return rv;
237 } 218 }
238 219
239 bool SSLServerSocketNSS::SetReceiveBufferSize(int32 size) { 220 bool SSLServerSocketNSS::SetReceiveBufferSize(int32 size) {
240 return transport_socket_->SetReceiveBufferSize(size); 221 return transport_socket_->SetReceiveBufferSize(size);
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 CompletionCallback c = user_read_callback_; 753 CompletionCallback c = user_read_callback_;
773 user_read_callback_.Reset(); 754 user_read_callback_.Reset();
774 user_read_buf_ = NULL; 755 user_read_buf_ = NULL;
775 user_read_buf_len_ = 0; 756 user_read_buf_len_ = 0;
776 c.Run(rv); 757 c.Run(rv);
777 } 758 }
778 } 759 }
779 760
780 void SSLServerSocketNSS::DoWriteCallback(int rv) { 761 void SSLServerSocketNSS::DoWriteCallback(int rv) {
781 DCHECK(rv != ERR_IO_PENDING); 762 DCHECK(rv != ERR_IO_PENDING);
782 DCHECK(old_user_write_callback_ || !user_write_callback_.is_null()); 763 DCHECK(user_write_callback_);
783 764
784 // Since Run may result in Write being called, clear |user_write_callback_| 765 // Since Run may result in Write being called, clear |user_write_callback_|
785 // up front. 766 // up front.
786 if (old_user_write_callback_) { 767 OldCompletionCallback* c = user_write_callback_;
787 OldCompletionCallback* c = old_user_write_callback_; 768 user_write_callback_ = NULL;
788 old_user_write_callback_ = NULL; 769 user_write_buf_ = NULL;
789 user_write_buf_ = NULL; 770 user_write_buf_len_ = 0;
790 user_write_buf_len_ = 0; 771 c->Run(rv);
791 c->Run(rv);
792 } else {
793 CompletionCallback c = user_write_callback_;
794 user_write_callback_.Reset();
795 user_write_buf_ = NULL;
796 user_write_buf_len_ = 0;
797 c.Run(rv);
798 }
799 } 772 }
800 773
801 // static 774 // static
802 // NSS calls this if an incoming certificate needs to be verified. 775 // NSS calls this if an incoming certificate needs to be verified.
803 // Do nothing but return SECSuccess. 776 // Do nothing but return SECSuccess.
804 // This is called only in full handshake mode. 777 // This is called only in full handshake mode.
805 // Peer certificate is retrieved in HandshakeCallback() later, which is called 778 // Peer certificate is retrieved in HandshakeCallback() later, which is called
806 // in full handshake mode or in resumption handshake mode. 779 // in full handshake mode or in resumption handshake mode.
807 SECStatus SSLServerSocketNSS::OwnAuthCertHandler(void* arg, 780 SECStatus SSLServerSocketNSS::OwnAuthCertHandler(void* arg,
808 PRFileDesc* socket, 781 PRFileDesc* socket,
(...skipping 16 matching lines...) Expand all
825 // Initialize the NSS SSL library in a threadsafe way. This also 798 // Initialize the NSS SSL library in a threadsafe way. This also
826 // initializes the NSS base library. 799 // initializes the NSS base library.
827 EnsureNSSSSLInit(); 800 EnsureNSSSSLInit();
828 if (!NSS_IsInitialized()) 801 if (!NSS_IsInitialized())
829 return ERR_UNEXPECTED; 802 return ERR_UNEXPECTED;
830 803
831 return OK; 804 return OK;
832 } 805 }
833 806
834 } // namespace net 807 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/ssl_server_socket_nss.h ('k') | net/socket/ssl_server_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698