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

Side by Side Diff: net/tools/flip_server/sm_connection.cc

Issue 2141993002: Remove many-many SpdyMajorVersion and NextProto arguments and members. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove OnSynStream() and OnSynReply(). Created 4 years, 5 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 unified diff | Download patch
« no previous file with comments | « net/tools/flip_server/sm_connection.h ('k') | net/tools/flip_server/spdy_interface.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/tools/flip_server/sm_connection.h" 5 #include "net/tools/flip_server/sm_connection.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <netinet/tcp.h> 8 #include <netinet/tcp.h>
9 #include <sys/socket.h> 9 #include <sys/socket.h>
10 #include <unistd.h> 10 #include <unistd.h>
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 VLOG(1) << log_prefix_ << ACCEPTOR_CLIENT_IDENT << "!!! Got HUP or ERR"; 297 VLOG(1) << log_prefix_ << ACCEPTOR_CLIENT_IDENT << "!!! Got HUP or ERR";
298 goto handle_close_or_error; 298 goto handle_close_or_error;
299 } 299 }
300 return; 300 return;
301 301
302 handle_close_or_error: 302 handle_close_or_error:
303 Cleanup("HandleEvents"); 303 Cleanup("HandleEvents");
304 } 304 }
305 305
306 // Decide if SPDY was negotiated. 306 // Decide if SPDY was negotiated.
307 bool SMConnection::WasSpdyNegotiated(SpdyMajorVersion* version_negotiated) { 307 bool SMConnection::WasSpdyNegotiated() {
308 *version_negotiated = SPDY3;
309 if (force_spdy()) 308 if (force_spdy())
310 return true; 309 return true;
311 310
312 // If this is an SSL connection, check if NPN specifies SPDY. 311 // If this is an SSL connection, check if NPN specifies SPDY.
313 if (ssl_) { 312 if (ssl_) {
314 const unsigned char* npn_proto; 313 const unsigned char* npn_proto;
315 unsigned int npn_proto_len; 314 unsigned int npn_proto_len;
316 SSL_get0_next_proto_negotiated(ssl_, &npn_proto, &npn_proto_len); 315 SSL_get0_next_proto_negotiated(ssl_, &npn_proto, &npn_proto_len);
317 if (npn_proto_len > 0) { 316 if (npn_proto_len > 0) {
318 std::string npn_proto_str((const char*)npn_proto, npn_proto_len); 317 std::string npn_proto_str((const char*)npn_proto, npn_proto_len);
319 VLOG(1) << log_prefix_ << ACCEPTOR_CLIENT_IDENT 318 VLOG(1) << log_prefix_ << ACCEPTOR_CLIENT_IDENT
320 << "NPN protocol detected: " << npn_proto_str; 319 << "NPN protocol detected: " << npn_proto_str;
321 if (!strncmp(reinterpret_cast<const char*>(npn_proto), 320 if (!strncmp(reinterpret_cast<const char*>(npn_proto),
322 "spdy/3", 321 "spdy/3",
323 npn_proto_len)) { 322 npn_proto_len)) {
324 *version_negotiated = SPDY3;
325 return true; 323 return true;
326 } 324 }
327 if (!strncmp(reinterpret_cast<const char*>(npn_proto), 325 if (!strncmp(reinterpret_cast<const char*>(npn_proto),
328 "spdy/4a2", 326 "spdy/4a2",
329 npn_proto_len)) { 327 npn_proto_len)) {
330 *version_negotiated = HTTP2;
331 return true; 328 return true;
332 } 329 }
333 } 330 }
334 } 331 }
335 332
336 return false; 333 return false;
337 } 334 }
338 335
339 bool SMConnection::SetupProtocolInterfaces() { 336 bool SMConnection::SetupProtocolInterfaces() {
340 DCHECK(!protocol_detected_); 337 DCHECK(!protocol_detected_);
341 protocol_detected_ = true; 338 protocol_detected_ = true;
342 339
343 SpdyMajorVersion version; 340 bool spdy_negotiated = WasSpdyNegotiated();
344 bool spdy_negotiated = WasSpdyNegotiated(&version);
345 bool using_ssl = ssl_ != NULL; 341 bool using_ssl = ssl_ != NULL;
346 342
347 if (using_ssl) 343 if (using_ssl)
348 VLOG(1) << (SSL_session_reused(ssl_) ? "Resumed" : "Renegotiated") 344 VLOG(1) << (SSL_session_reused(ssl_) ? "Resumed" : "Renegotiated")
349 << " SSL Session."; 345 << " SSL Session.";
350 346
351 if (acceptor_->spdy_only_ && !spdy_negotiated) { 347 if (acceptor_->spdy_only_ && !spdy_negotiated) {
352 VLOG(1) << log_prefix_ << ACCEPTOR_CLIENT_IDENT 348 VLOG(1) << log_prefix_ << ACCEPTOR_CLIENT_IDENT
353 << "SPDY proxy only, closing HTTPS connection."; 349 << "SPDY proxy only, closing HTTPS connection.";
354 return false; 350 return false;
(...skipping 25 matching lines...) Expand all
380 if (!spdy_negotiated) 376 if (!spdy_negotiated)
381 break; 377 break;
382 } 378 }
383 // Otherwise fall through into the case below. 379 // Otherwise fall through into the case below.
384 case FLIP_HANDLER_SPDY_SERVER: { 380 case FLIP_HANDLER_SPDY_SERVER: {
385 DCHECK(spdy_negotiated); 381 DCHECK(spdy_negotiated);
386 VLOG(2) << log_prefix_ << ACCEPTOR_CLIENT_IDENT 382 VLOG(2) << log_prefix_ << ACCEPTOR_CLIENT_IDENT
387 << (sm_spdy_interface_ ? "Creating" : "Reusing") 383 << (sm_spdy_interface_ ? "Creating" : "Reusing")
388 << " SPDY interface."; 384 << " SPDY interface.";
389 if (sm_spdy_interface_) 385 if (sm_spdy_interface_)
390 sm_spdy_interface_->CreateFramer(version); 386 sm_spdy_interface_->CreateFramer();
391 else 387 else
392 sm_spdy_interface_ = new SpdySM( 388 sm_spdy_interface_ =
393 this, NULL, epoll_server_, memory_cache_, acceptor_, version); 389 new SpdySM(this, NULL, epoll_server_, memory_cache_, acceptor_);
394 sm_interface_ = sm_spdy_interface_; 390 sm_interface_ = sm_spdy_interface_;
395 break; 391 break;
396 } 392 }
397 } 393 }
398 394
399 CorkSocket(); 395 CorkSocket();
400 if (!sm_interface_->PostAcceptHook()) 396 if (!sm_interface_->PostAcceptHook())
401 return false; 397 return false;
402 398
403 return true; 399 return true;
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 SMConnection* SMConnection::NewSMConnection(EpollServer* epoll_server, 648 SMConnection* SMConnection::NewSMConnection(EpollServer* epoll_server,
653 SSLState* ssl_state, 649 SSLState* ssl_state,
654 MemoryCache* memory_cache, 650 MemoryCache* memory_cache,
655 FlipAcceptor* acceptor, 651 FlipAcceptor* acceptor,
656 std::string log_prefix) { 652 std::string log_prefix) {
657 return new SMConnection( 653 return new SMConnection(
658 epoll_server, ssl_state, memory_cache, acceptor, log_prefix); 654 epoll_server, ssl_state, memory_cache, acceptor, log_prefix);
659 } 655 }
660 656
661 } // namespace net 657 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/flip_server/sm_connection.h ('k') | net/tools/flip_server/spdy_interface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698