LCOV - code coverage report
Current view: top level - source/common/upstream - default_local_address_selector.cc (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 10 16 62.5 %
Date: 2024-01-05 06:35:25 Functions: 2 2 100.0 %

          Line data    Source code
       1             : #include "source/common/upstream/default_local_address_selector.h"
       2             : 
       3             : #include <string>
       4             : 
       5             : namespace Envoy {
       6             : namespace Upstream {
       7             : 
       8             : DefaultUpstreamLocalAddressSelector::DefaultUpstreamLocalAddressSelector(
       9             :     std::vector<::Envoy::Upstream::UpstreamLocalAddress>&& upstream_local_addresses)
      10         159 :     : upstream_local_addresses_(std::move(upstream_local_addresses)) {
      11             :   // If bind config is not provided, we insert at least one
      12             :   // ``UpstreamLocalAddress`` with null address.
      13         159 :   ASSERT(!upstream_local_addresses_.empty());
      14         159 : }
      15             : 
      16             : UpstreamLocalAddress DefaultUpstreamLocalAddressSelector::getUpstreamLocalAddressImpl(
      17         173 :     const Network::Address::InstanceConstSharedPtr& endpoint_address) const {
      18         173 :   for (auto& local_address : upstream_local_addresses_) {
      19         173 :     if (local_address.address_ == nullptr) {
      20         173 :       continue;
      21         173 :     }
      22             : 
      23             :     // Invalid addresses should have been rejected while parsing the bind
      24             :     // config.
      25           0 :     ASSERT(local_address.address_->ip() != nullptr);
      26           0 :     if (endpoint_address->ip() != nullptr &&
      27           0 :         local_address.address_->ip()->version() == endpoint_address->ip()->version()) {
      28           0 :       return local_address;
      29           0 :     }
      30           0 :   }
      31             : 
      32         173 :   return upstream_local_addresses_[0];
      33         173 : }
      34             : 
      35             : } // namespace Upstream
      36             : } // namespace Envoy

Generated by: LCOV version 1.15