OLD | NEW |
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_client_socket_pool.h" | 5 #include "net/socket/ssl_client_socket_pool.h" |
6 | 6 |
7 #include "base/metrics/field_trial.h" | 7 #include "base/metrics/field_trial.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "net/base/net_errors.h" | 10 #include "net/base/net_errors.h" |
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
470 SSLClientSocketContext( | 470 SSLClientSocketContext( |
471 cert_verifier, | 471 cert_verifier, |
472 origin_bound_cert_service, | 472 origin_bound_cert_service, |
473 dnsrr_resolver, | 473 dnsrr_resolver, |
474 dns_cert_checker, | 474 dns_cert_checker, |
475 ssl_host_info_factory), | 475 ssl_host_info_factory), |
476 net_log)), | 476 net_log)), |
477 ssl_config_service_(ssl_config_service) { | 477 ssl_config_service_(ssl_config_service) { |
478 if (ssl_config_service_) | 478 if (ssl_config_service_) |
479 ssl_config_service_->AddObserver(this); | 479 ssl_config_service_->AddObserver(this); |
480 if (transport_pool_) | |
481 transport_pool_->AddLayeredPool(this); | |
482 if (socks_pool_) | |
483 socks_pool_->AddLayeredPool(this); | |
484 if (http_proxy_pool_) | |
485 http_proxy_pool_->AddLayeredPool(this); | |
486 } | 480 } |
487 | 481 |
488 SSLClientSocketPool::~SSLClientSocketPool() { | 482 SSLClientSocketPool::~SSLClientSocketPool() { |
489 if (http_proxy_pool_) | |
490 http_proxy_pool_->RemoveLayeredPool(this); | |
491 if (socks_pool_) | |
492 socks_pool_->RemoveLayeredPool(this); | |
493 if (transport_pool_) | |
494 transport_pool_->RemoveLayeredPool(this); | |
495 if (ssl_config_service_) | 483 if (ssl_config_service_) |
496 ssl_config_service_->RemoveObserver(this); | 484 ssl_config_service_->RemoveObserver(this); |
497 } | 485 } |
498 | 486 |
499 ConnectJob* SSLClientSocketPool::SSLConnectJobFactory::NewConnectJob( | 487 ConnectJob* SSLClientSocketPool::SSLConnectJobFactory::NewConnectJob( |
500 const std::string& group_name, | 488 const std::string& group_name, |
501 const PoolBase::Request& request, | 489 const PoolBase::Request& request, |
502 ConnectJob::Delegate* delegate) const { | 490 ConnectJob::Delegate* delegate) const { |
503 return new SSLConnectJob(group_name, request.params(), ConnectionTimeout(), | 491 return new SSLConnectJob(group_name, request.params(), ConnectionTimeout(), |
504 transport_pool_, socks_pool_, http_proxy_pool_, | 492 transport_pool_, socks_pool_, http_proxy_pool_, |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
537 | 525 |
538 void SSLClientSocketPool::ReleaseSocket(const std::string& group_name, | 526 void SSLClientSocketPool::ReleaseSocket(const std::string& group_name, |
539 StreamSocket* socket, int id) { | 527 StreamSocket* socket, int id) { |
540 base_.ReleaseSocket(group_name, socket, id); | 528 base_.ReleaseSocket(group_name, socket, id); |
541 } | 529 } |
542 | 530 |
543 void SSLClientSocketPool::Flush() { | 531 void SSLClientSocketPool::Flush() { |
544 base_.Flush(); | 532 base_.Flush(); |
545 } | 533 } |
546 | 534 |
547 bool SSLClientSocketPool::IsStalled() const { | |
548 return base_.IsStalled() || | |
549 (transport_pool_ && transport_pool_->IsStalled()) || | |
550 (socks_pool_ && socks_pool_->IsStalled()) || | |
551 (http_proxy_pool_ && http_proxy_pool_->IsStalled()); | |
552 } | |
553 | |
554 void SSLClientSocketPool::CloseIdleSockets() { | 535 void SSLClientSocketPool::CloseIdleSockets() { |
555 base_.CloseIdleSockets(); | 536 base_.CloseIdleSockets(); |
556 } | 537 } |
557 | 538 |
558 int SSLClientSocketPool::IdleSocketCount() const { | 539 int SSLClientSocketPool::IdleSocketCount() const { |
559 return base_.idle_socket_count(); | 540 return base_.idle_socket_count(); |
560 } | 541 } |
561 | 542 |
562 int SSLClientSocketPool::IdleSocketCountInGroup( | 543 int SSLClientSocketPool::IdleSocketCountInGroup( |
563 const std::string& group_name) const { | 544 const std::string& group_name) const { |
564 return base_.IdleSocketCountInGroup(group_name); | 545 return base_.IdleSocketCountInGroup(group_name); |
565 } | 546 } |
566 | 547 |
567 LoadState SSLClientSocketPool::GetLoadState( | 548 LoadState SSLClientSocketPool::GetLoadState( |
568 const std::string& group_name, const ClientSocketHandle* handle) const { | 549 const std::string& group_name, const ClientSocketHandle* handle) const { |
569 return base_.GetLoadState(group_name, handle); | 550 return base_.GetLoadState(group_name, handle); |
570 } | 551 } |
571 | 552 |
572 void SSLClientSocketPool::AddLayeredPool(LayeredPool* layered_pool) { | |
573 base_.AddLayeredPool(layered_pool); | |
574 } | |
575 | |
576 void SSLClientSocketPool::RemoveLayeredPool(LayeredPool* layered_pool) { | |
577 base_.RemoveLayeredPool(layered_pool); | |
578 } | |
579 | |
580 DictionaryValue* SSLClientSocketPool::GetInfoAsValue( | 553 DictionaryValue* SSLClientSocketPool::GetInfoAsValue( |
581 const std::string& name, | 554 const std::string& name, |
582 const std::string& type, | 555 const std::string& type, |
583 bool include_nested_pools) const { | 556 bool include_nested_pools) const { |
584 DictionaryValue* dict = base_.GetInfoAsValue(name, type); | 557 DictionaryValue* dict = base_.GetInfoAsValue(name, type); |
585 if (include_nested_pools) { | 558 if (include_nested_pools) { |
586 ListValue* list = new ListValue(); | 559 ListValue* list = new ListValue(); |
587 if (transport_pool_) { | 560 if (transport_pool_) { |
588 list->Append(transport_pool_->GetInfoAsValue("transport_socket_pool", | 561 list->Append(transport_pool_->GetInfoAsValue("transport_socket_pool", |
589 "transport_socket_pool", | 562 "transport_socket_pool", |
(...skipping 19 matching lines...) Expand all Loading... |
609 } | 582 } |
610 | 583 |
611 ClientSocketPoolHistograms* SSLClientSocketPool::histograms() const { | 584 ClientSocketPoolHistograms* SSLClientSocketPool::histograms() const { |
612 return base_.histograms(); | 585 return base_.histograms(); |
613 } | 586 } |
614 | 587 |
615 void SSLClientSocketPool::OnSSLConfigChanged() { | 588 void SSLClientSocketPool::OnSSLConfigChanged() { |
616 Flush(); | 589 Flush(); |
617 } | 590 } |
618 | 591 |
619 bool SSLClientSocketPool::CloseOneIdleConnection() { | |
620 if (base_.CloseOneIdleSocket()) | |
621 return true; | |
622 return base_.CloseOneIdleConnectionInLayeredPool(); | |
623 } | |
624 | |
625 } // namespace net | 592 } // namespace net |
OLD | NEW |