diff --git a/.github/workflows/pr-auto-fix.yaml b/.github/workflows/pr-auto-fix.yaml index f86ee2e53d4..13511d3c86c 100644 --- a/.github/workflows/pr-auto-fix.yaml +++ b/.github/workflows/pr-auto-fix.yaml @@ -22,7 +22,7 @@ jobs: with: format: YYYYWWd - name: Cache bazel - uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3 + uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0 env: cache-name: bazel-cache with: @@ -38,7 +38,7 @@ jobs: # Cancel current runs if they're still running # (saves processing on fast pushes) - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@01ce38bf961b4e243a6342cbade0dbc8ba3f0432 # 0.12.0 + uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 with: access_token: ${{ github.token }} # Allow opt-out for some users @@ -90,7 +90,7 @@ jobs: run: ANDROID_NDK_HOME= ${{ github.workspace }}/tools/distrib/sanitize.sh # Report back with a PR if things are broken - name: Create Pull Request - uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5.0.2 + uses: peter-evans/create-pull-request@b1ddad2c994a25fbc81a28b3ec0e368bb2021c50 # v6.0.0 with: delete-branch: true branch-suffix: short-commit-hash diff --git a/BUILD b/BUILD index 3dd6e4f8d62..449a668cd08 100644 --- a/BUILD +++ b/BUILD @@ -2930,10 +2930,10 @@ grpc_cc_library( grpc_cc_library( name = "endpoint_addresses", srcs = [ - "//src/core:lib/resolver/endpoint_addresses.cc", + "//src/core:resolver/endpoint_addresses.cc", ], hdrs = [ - "//src/core:lib/resolver/endpoint_addresses.h", + "//src/core:resolver/endpoint_addresses.h", ], external_deps = [ "absl/functional:function_ref", @@ -2956,7 +2956,7 @@ grpc_cc_library( grpc_cc_library( name = "server_address", hdrs = [ - "//src/core:lib/resolver/server_address.h", + "//src/core:resolver/server_address.h", ], language = "c++", visibility = ["@grpc:client_channel"], @@ -2969,13 +2969,13 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver", srcs = [ - "//src/core:lib/resolver/resolver.cc", - "//src/core:lib/resolver/resolver_registry.cc", + "//src/core:resolver/resolver.cc", + "//src/core:resolver/resolver_registry.cc", ], hdrs = [ - "//src/core:lib/resolver/resolver.h", - "//src/core:lib/resolver/resolver_factory.h", - "//src/core:lib/resolver/resolver_registry.h", + "//src/core:resolver/resolver.h", + "//src/core:resolver/resolver_factory.h", + "//src/core:resolver/resolver_registry.h", ], external_deps = [ "absl/status", @@ -3162,17 +3162,17 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_dns_ares", srcs = [ - "//src/core:ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc", - "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc", - "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc", - "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc", - "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc", - "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc", + "//src/core:resolver/dns/c_ares/dns_resolver_ares.cc", + "//src/core:resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc", + "//src/core:resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc", + "//src/core:resolver/dns/c_ares/grpc_ares_wrapper.cc", + "//src/core:resolver/dns/c_ares/grpc_ares_wrapper_posix.cc", + "//src/core:resolver/dns/c_ares/grpc_ares_wrapper_windows.cc", ], hdrs = [ - "//src/core:ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h", - "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h", - "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h", + "//src/core:resolver/dns/c_ares/dns_resolver_ares.h", + "//src/core:resolver/dns/c_ares/grpc_ares_ev_driver.h", + "//src/core:resolver/dns/c_ares/grpc_ares_wrapper.h", ], external_deps = [ "absl/base:core_headers", @@ -3761,8 +3761,8 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_fake", - srcs = ["//src/core:ext/filters/client_channel/resolver/fake/fake_resolver.cc"], - hdrs = ["//src/core:ext/filters/client_channel/resolver/fake/fake_resolver.h"], + srcs = ["//src/core:resolver/fake/fake_resolver.cc"], + hdrs = ["//src/core:resolver/fake/fake_resolver.h"], external_deps = [ "absl/base:core_headers", "absl/strings", diff --git a/CMakeLists.txt b/CMakeLists.txt index 12959352064..98b83d153a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1795,24 +1795,6 @@ add_library(grpc src/core/ext/filters/client_channel/global_subchannel_pool.cc src/core/ext/filters/client_channel/http_proxy_mapper.cc src/core/ext/filters/client_channel/local_subchannel_pool.cc - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc - src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc - src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc - src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc - src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc - src/core/ext/filters/client_channel/resolver/polling_resolver.cc - src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc - src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc - src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc - src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc src/core/ext/filters/client_channel/retry_filter.cc src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc src/core/ext/filters/client_channel/retry_service_config.cc @@ -2393,9 +2375,6 @@ add_library(grpc src/core/lib/promise/party.cc src/core/lib/promise/sleep.cc src/core/lib/promise/trace.cc - src/core/lib/resolver/endpoint_addresses.cc - src/core/lib/resolver/resolver.cc - src/core/lib/resolver/resolver_registry.cc src/core/lib/resource_quota/api.cc src/core/lib/resource_quota/arena.cc src/core/lib/resource_quota/memory_quota.cc @@ -2548,6 +2527,27 @@ add_library(grpc src/core/load_balancing/xds/xds_wrr_locality.cc src/core/plugin_registry/grpc_plugin_registry.cc src/core/plugin_registry/grpc_plugin_registry_extra.cc + src/core/resolver/binder/binder_resolver.cc + src/core/resolver/dns/c_ares/dns_resolver_ares.cc + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc + src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc + src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc + src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc + src/core/resolver/dns/dns_resolver_plugin.cc + src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc + src/core/resolver/dns/event_engine/service_config_helper.cc + src/core/resolver/dns/native/dns_resolver.cc + src/core/resolver/endpoint_addresses.cc + src/core/resolver/fake/fake_resolver.cc + src/core/resolver/google_c2p/google_c2p_resolver.cc + src/core/resolver/polling_resolver.cc + src/core/resolver/resolver.cc + src/core/resolver/resolver_registry.cc + src/core/resolver/sockaddr/sockaddr_resolver.cc + src/core/resolver/xds/xds_dependency_manager.cc + src/core/resolver/xds/xds_resolver.cc + src/core/resolver/xds/xds_resolver_trace.cc src/core/tsi/alts/crypt/aes_gcm.cc src/core/tsi/alts/crypt/gsec.cc src/core/tsi/alts/frame_protector/alts_counter.cc @@ -2893,20 +2893,6 @@ add_library(grpc_unsecure src/core/ext/filters/client_channel/global_subchannel_pool.cc src/core/ext/filters/client_channel/http_proxy_mapper.cc src/core/ext/filters/client_channel/local_subchannel_pool.cc - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc - src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc - src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc - src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc - src/core/ext/filters/client_channel/resolver/polling_resolver.cc - src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc src/core/ext/filters/client_channel/retry_filter.cc src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc src/core/ext/filters/client_channel/retry_service_config.cc @@ -3151,9 +3137,6 @@ add_library(grpc_unsecure src/core/lib/promise/party.cc src/core/lib/promise/sleep.cc src/core/lib/promise/trace.cc - src/core/lib/resolver/endpoint_addresses.cc - src/core/lib/resolver/resolver.cc - src/core/lib/resolver/resolver_registry.cc src/core/lib/resource_quota/api.cc src/core/lib/resource_quota/arena.cc src/core/lib/resource_quota/memory_quota.cc @@ -3266,6 +3249,23 @@ add_library(grpc_unsecure src/core/load_balancing/weighted_target/weighted_target.cc src/core/plugin_registry/grpc_plugin_registry.cc src/core/plugin_registry/grpc_plugin_registry_noextra.cc + src/core/resolver/binder/binder_resolver.cc + src/core/resolver/dns/c_ares/dns_resolver_ares.cc + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc + src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc + src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc + src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc + src/core/resolver/dns/dns_resolver_plugin.cc + src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc + src/core/resolver/dns/event_engine/service_config_helper.cc + src/core/resolver/dns/native/dns_resolver.cc + src/core/resolver/endpoint_addresses.cc + src/core/resolver/fake/fake_resolver.cc + src/core/resolver/polling_resolver.cc + src/core/resolver/resolver.cc + src/core/resolver/resolver_registry.cc + src/core/resolver/sockaddr/sockaddr_resolver.cc src/core/tsi/alts/handshaker/transport_security_common_api.cc src/core/tsi/fake_transport_security.cc src/core/tsi/local_transport_security.cc @@ -5259,9 +5259,6 @@ add_library(grpc_authorization_provider src/core/lib/promise/activity.cc src/core/lib/promise/party.cc src/core/lib/promise/trace.cc - src/core/lib/resolver/endpoint_addresses.cc - src/core/lib/resolver/resolver.cc - src/core/lib/resolver/resolver_registry.cc src/core/lib/resource_quota/api.cc src/core/lib/resource_quota/arena.cc src/core/lib/resource_quota/memory_quota.cc @@ -5352,6 +5349,9 @@ add_library(grpc_authorization_provider src/core/lib/uri/uri_parser.cc src/core/load_balancing/lb_policy.cc src/core/load_balancing/lb_policy_registry.cc + src/core/resolver/endpoint_addresses.cc + src/core/resolver/resolver.cc + src/core/resolver/resolver_registry.cc src/core/tsi/alts/handshaker/transport_security_common_api.cc src/core/tsi/transport_security.cc src/core/tsi/transport_security_grpc.cc diff --git a/CONTRIBUTING_STEPS.md b/CONTRIBUTING_STEPS.md index 71de48fb34b..6318c2672b4 100644 --- a/CONTRIBUTING_STEPS.md +++ b/CONTRIBUTING_STEPS.md @@ -130,5 +130,8 @@ the submission process. When the submission happens: 1. A commit with your changes, along with a few additional formatting changes, will be committed to the `grpc/master` branch. +![Copybara commit](doc/images/img/grpc-copybara-commit.png) + 1. The pull request you originally created will be closed. +![Pull request closed by copybara](doc/images/img/grpc-pr-closed-by-copybara.png) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 345407b9bdd..6d868d6bc27 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -44,6 +44,7 @@ for general contribution guidelines. ## Emeritus Maintainers (in alphabetical order) + - [adelez](https://github.com/adelez), Google LLC - [AspirinSJL](https://github.com/AspirinSJL), Google LLC - [billfeng327](https://github.com/billfeng327), Google LLC @@ -90,3 +91,4 @@ for general contribution guidelines. - [yihuazhang](https://github.com/yihuazhang), Google LLC - [zpencer](https://github.com/zpencer), Google LLC - [ZhenLian](https://github.com/ZhenLian), Google LLC + diff --git a/Makefile b/Makefile index d72aa44ba90..2a61f91ad28 100644 --- a/Makefile +++ b/Makefile @@ -977,24 +977,6 @@ LIBGRPC_SRC = \ src/core/ext/filters/client_channel/global_subchannel_pool.cc \ src/core/ext/filters/client_channel/http_proxy_mapper.cc \ src/core/ext/filters/client_channel/local_subchannel_pool.cc \ - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc \ - src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ - src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc \ - src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc \ - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc \ - src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc \ - src/core/ext/filters/client_channel/resolver/polling_resolver.cc \ - src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \ - src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc \ - src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc \ - src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc \ src/core/ext/filters/client_channel/retry_filter.cc \ src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc \ src/core/ext/filters/client_channel/retry_service_config.cc \ @@ -1575,9 +1557,6 @@ LIBGRPC_SRC = \ src/core/lib/promise/party.cc \ src/core/lib/promise/sleep.cc \ src/core/lib/promise/trace.cc \ - src/core/lib/resolver/endpoint_addresses.cc \ - src/core/lib/resolver/resolver.cc \ - src/core/lib/resolver/resolver_registry.cc \ src/core/lib/resource_quota/api.cc \ src/core/lib/resource_quota/arena.cc \ src/core/lib/resource_quota/memory_quota.cc \ @@ -1730,6 +1709,27 @@ LIBGRPC_SRC = \ src/core/load_balancing/xds/xds_wrr_locality.cc \ src/core/plugin_registry/grpc_plugin_registry.cc \ src/core/plugin_registry/grpc_plugin_registry_extra.cc \ + src/core/resolver/binder/binder_resolver.cc \ + src/core/resolver/dns/c_ares/dns_resolver_ares.cc \ + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ + src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc \ + src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ + src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ + src/core/resolver/dns/dns_resolver_plugin.cc \ + src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ + src/core/resolver/dns/event_engine/service_config_helper.cc \ + src/core/resolver/dns/native/dns_resolver.cc \ + src/core/resolver/endpoint_addresses.cc \ + src/core/resolver/fake/fake_resolver.cc \ + src/core/resolver/google_c2p/google_c2p_resolver.cc \ + src/core/resolver/polling_resolver.cc \ + src/core/resolver/resolver.cc \ + src/core/resolver/resolver_registry.cc \ + src/core/resolver/sockaddr/sockaddr_resolver.cc \ + src/core/resolver/xds/xds_dependency_manager.cc \ + src/core/resolver/xds/xds_resolver.cc \ + src/core/resolver/xds/xds_resolver_trace.cc \ src/core/tsi/alts/crypt/aes_gcm.cc \ src/core/tsi/alts/crypt/gsec.cc \ src/core/tsi/alts/frame_protector/alts_counter.cc \ @@ -1909,20 +1909,6 @@ LIBGRPC_UNSECURE_SRC = \ src/core/ext/filters/client_channel/global_subchannel_pool.cc \ src/core/ext/filters/client_channel/http_proxy_mapper.cc \ src/core/ext/filters/client_channel/local_subchannel_pool.cc \ - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc \ - src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ - src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc \ - src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc \ - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc \ - src/core/ext/filters/client_channel/resolver/polling_resolver.cc \ - src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \ src/core/ext/filters/client_channel/retry_filter.cc \ src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc \ src/core/ext/filters/client_channel/retry_service_config.cc \ @@ -2167,9 +2153,6 @@ LIBGRPC_UNSECURE_SRC = \ src/core/lib/promise/party.cc \ src/core/lib/promise/sleep.cc \ src/core/lib/promise/trace.cc \ - src/core/lib/resolver/endpoint_addresses.cc \ - src/core/lib/resolver/resolver.cc \ - src/core/lib/resolver/resolver_registry.cc \ src/core/lib/resource_quota/api.cc \ src/core/lib/resource_quota/arena.cc \ src/core/lib/resource_quota/memory_quota.cc \ @@ -2282,6 +2265,23 @@ LIBGRPC_UNSECURE_SRC = \ src/core/load_balancing/weighted_target/weighted_target.cc \ src/core/plugin_registry/grpc_plugin_registry.cc \ src/core/plugin_registry/grpc_plugin_registry_noextra.cc \ + src/core/resolver/binder/binder_resolver.cc \ + src/core/resolver/dns/c_ares/dns_resolver_ares.cc \ + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ + src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc \ + src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ + src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ + src/core/resolver/dns/dns_resolver_plugin.cc \ + src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ + src/core/resolver/dns/event_engine/service_config_helper.cc \ + src/core/resolver/dns/native/dns_resolver.cc \ + src/core/resolver/endpoint_addresses.cc \ + src/core/resolver/fake/fake_resolver.cc \ + src/core/resolver/polling_resolver.cc \ + src/core/resolver/resolver.cc \ + src/core/resolver/resolver_registry.cc \ + src/core/resolver/sockaddr/sockaddr_resolver.cc \ src/core/tsi/alts/handshaker/transport_security_common_api.cc \ src/core/tsi/fake_transport_security.cc \ src/core/tsi/local_transport_security.cc \ @@ -3422,10 +3422,6 @@ ifneq ($(OPENSSL_DEP),) # This is to ensure the embedded OpenSSL is built beforehand, properly # installing headers to their final destination on the drive. We need this # otherwise parallel compilation will fail if a source is compiled first. -src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc: $(OPENSSL_DEP) -src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc: $(OPENSSL_DEP) -src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc: $(OPENSSL_DEP) -src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc: $(OPENSSL_DEP) src/core/ext/filters/rbac/rbac_filter.cc: $(OPENSSL_DEP) src/core/ext/filters/rbac/rbac_service_config_parser.cc: $(OPENSSL_DEP) src/core/ext/filters/server_config_selector/server_config_selector_filter.cc: $(OPENSSL_DEP) @@ -3803,6 +3799,10 @@ src/core/load_balancing/xds/xds_cluster_manager.cc: $(OPENSSL_DEP) src/core/load_balancing/xds/xds_override_host.cc: $(OPENSSL_DEP) src/core/load_balancing/xds/xds_wrr_locality.cc: $(OPENSSL_DEP) src/core/plugin_registry/grpc_plugin_registry_extra.cc: $(OPENSSL_DEP) +src/core/resolver/google_c2p/google_c2p_resolver.cc: $(OPENSSL_DEP) +src/core/resolver/xds/xds_dependency_manager.cc: $(OPENSSL_DEP) +src/core/resolver/xds/xds_resolver.cc: $(OPENSSL_DEP) +src/core/resolver/xds/xds_resolver_trace.cc: $(OPENSSL_DEP) src/core/tsi/alts/crypt/aes_gcm.cc: $(OPENSSL_DEP) src/core/tsi/alts/crypt/gsec.cc: $(OPENSSL_DEP) src/core/tsi/alts/frame_protector/alts_counter.cc: $(OPENSSL_DEP) diff --git a/Package.swift b/Package.swift index 39976a00980..79c17f2bfc4 100644 --- a/Package.swift +++ b/Package.swift @@ -151,36 +151,6 @@ let package = Package( "src/core/ext/filters/client_channel/http_proxy_mapper.h", "src/core/ext/filters/client_channel/local_subchannel_pool.cc", "src/core/ext/filters/client_channel/local_subchannel_pool.h", - "src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc", - "src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc", - "src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h", - "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h", - "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc", - "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc", - "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc", - "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h", - "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc", - "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc", - "src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc", - "src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h", - "src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc", - "src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h", - "src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc", - "src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h", - "src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc", - "src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h", - "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc", - "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h", - "src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc", - "src/core/ext/filters/client_channel/resolver/polling_resolver.cc", - "src/core/ext/filters/client_channel/resolver/polling_resolver.h", - "src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc", - "src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc", - "src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h", - "src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc", - "src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h", - "src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc", - "src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h", "src/core/ext/filters/client_channel/retry_filter.cc", "src/core/ext/filters/client_channel/retry_filter.h", "src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc", @@ -1637,14 +1607,6 @@ let package = Package( "src/core/lib/promise/trace.h", "src/core/lib/promise/try_join.h", "src/core/lib/promise/try_seq.h", - "src/core/lib/resolver/endpoint_addresses.cc", - "src/core/lib/resolver/endpoint_addresses.h", - "src/core/lib/resolver/resolver.cc", - "src/core/lib/resolver/resolver.h", - "src/core/lib/resolver/resolver_factory.h", - "src/core/lib/resolver/resolver_registry.cc", - "src/core/lib/resolver/resolver_registry.h", - "src/core/lib/resolver/server_address.h", "src/core/lib/resource_quota/api.cc", "src/core/lib/resource_quota/api.h", "src/core/lib/resource_quota/arena.cc", @@ -1946,6 +1908,44 @@ let package = Package( "src/core/load_balancing/xds/xds_wrr_locality.cc", "src/core/plugin_registry/grpc_plugin_registry.cc", "src/core/plugin_registry/grpc_plugin_registry_extra.cc", + "src/core/resolver/binder/binder_resolver.cc", + "src/core/resolver/dns/c_ares/dns_resolver_ares.cc", + "src/core/resolver/dns/c_ares/dns_resolver_ares.h", + "src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h", + "src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc", + "src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc", + "src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc", + "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h", + "src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc", + "src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc", + "src/core/resolver/dns/dns_resolver_plugin.cc", + "src/core/resolver/dns/dns_resolver_plugin.h", + "src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc", + "src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h", + "src/core/resolver/dns/event_engine/service_config_helper.cc", + "src/core/resolver/dns/event_engine/service_config_helper.h", + "src/core/resolver/dns/native/dns_resolver.cc", + "src/core/resolver/dns/native/dns_resolver.h", + "src/core/resolver/endpoint_addresses.cc", + "src/core/resolver/endpoint_addresses.h", + "src/core/resolver/fake/fake_resolver.cc", + "src/core/resolver/fake/fake_resolver.h", + "src/core/resolver/google_c2p/google_c2p_resolver.cc", + "src/core/resolver/polling_resolver.cc", + "src/core/resolver/polling_resolver.h", + "src/core/resolver/resolver.cc", + "src/core/resolver/resolver.h", + "src/core/resolver/resolver_factory.h", + "src/core/resolver/resolver_registry.cc", + "src/core/resolver/resolver_registry.h", + "src/core/resolver/server_address.h", + "src/core/resolver/sockaddr/sockaddr_resolver.cc", + "src/core/resolver/xds/xds_dependency_manager.cc", + "src/core/resolver/xds/xds_dependency_manager.h", + "src/core/resolver/xds/xds_resolver.cc", + "src/core/resolver/xds/xds_resolver_attributes.h", + "src/core/resolver/xds/xds_resolver_trace.cc", + "src/core/resolver/xds/xds_resolver_trace.h", "src/core/tsi/alts/crypt/aes_gcm.cc", "src/core/tsi/alts/crypt/gsec.cc", "src/core/tsi/alts/crypt/gsec.h", diff --git a/bazel/grpc_deps.bzl b/bazel/grpc_deps.bzl index bd3763579e1..8e49b733cba 100644 --- a/bazel/grpc_deps.bzl +++ b/bazel/grpc_deps.bzl @@ -240,11 +240,11 @@ def grpc_deps(): name = "boringssl", # Use github mirror instead of https://boringssl.googlesource.com/boringssl # to obtain a boringssl archive with consistent sha256 - sha256 = "057f662b0e85931a84945b2e89ba201fd44b0583da827c948fe443593690fb83", - strip_prefix = "boringssl-ae72a4514c7afd150596b0a80947f3ca9b8363b5", + sha256 = "c21ac7356f885189959b7f8b3df5fcc65e54098bfae323396fbb467205c64030", + strip_prefix = "boringssl-311e6f6d8e77da1f64c3256b30bd1992a555ce6c", urls = [ - "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/ae72a4514c7afd150596b0a80947f3ca9b8363b5.tar.gz", - "https://github.com/google/boringssl/archive/ae72a4514c7afd150596b0a80947f3ca9b8363b5.tar.gz", + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/311e6f6d8e77da1f64c3256b30bd1992a555ce6c.tar.gz", + "https://github.com/google/boringssl/archive/311e6f6d8e77da1f64c3256b30bd1992a555ce6c.tar.gz", ], ) diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 1964edf6d8a..9bb7a8a93dc 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -235,18 +235,6 @@ libs: - src/core/ext/filters/client_channel/global_subchannel_pool.h - src/core/ext/filters/client_channel/http_proxy_mapper.h - src/core/ext/filters/client_channel/local_subchannel_pool.h - - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h - - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h - - src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h - - src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h - - src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h - - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h - - src/core/ext/filters/client_channel/resolver/polling_resolver.h - - src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h - - src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h - - src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h - src/core/ext/filters/client_channel/retry_filter.h - src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h - src/core/ext/filters/client_channel/retry_service_config.h @@ -1052,11 +1040,6 @@ libs: - src/core/lib/promise/trace.h - src/core/lib/promise/try_join.h - src/core/lib/promise/try_seq.h - - src/core/lib/resolver/endpoint_addresses.h - - src/core/lib/resolver/resolver.h - - src/core/lib/resolver/resolver_factory.h - - src/core/lib/resolver/resolver_registry.h - - src/core/lib/resolver/server_address.h - src/core/lib/resource_quota/api.h - src/core/lib/resource_quota/arena.h - src/core/lib/resource_quota/memory_quota.h @@ -1202,6 +1185,23 @@ libs: - src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h - src/core/load_balancing/xds/xds_channel_args.h - src/core/load_balancing/xds/xds_override_host.h + - src/core/resolver/dns/c_ares/dns_resolver_ares.h + - src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h + - src/core/resolver/dns/c_ares/grpc_ares_wrapper.h + - src/core/resolver/dns/dns_resolver_plugin.h + - src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h + - src/core/resolver/dns/event_engine/service_config_helper.h + - src/core/resolver/dns/native/dns_resolver.h + - src/core/resolver/endpoint_addresses.h + - src/core/resolver/fake/fake_resolver.h + - src/core/resolver/polling_resolver.h + - src/core/resolver/resolver.h + - src/core/resolver/resolver_factory.h + - src/core/resolver/resolver_registry.h + - src/core/resolver/server_address.h + - src/core/resolver/xds/xds_dependency_manager.h + - src/core/resolver/xds/xds_resolver_attributes.h + - src/core/resolver/xds/xds_resolver_trace.h - src/core/tsi/alts/crypt/gsec.h - src/core/tsi/alts/frame_protector/alts_counter.h - src/core/tsi/alts/frame_protector/alts_crypter.h @@ -1252,24 +1252,6 @@ libs: - src/core/ext/filters/client_channel/global_subchannel_pool.cc - src/core/ext/filters/client_channel/http_proxy_mapper.cc - src/core/ext/filters/client_channel/local_subchannel_pool.cc - - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc - - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc - - src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc - - src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc - - src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc - - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc - - src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc - - src/core/ext/filters/client_channel/resolver/polling_resolver.cc - - src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc - - src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc - - src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc - - src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc - src/core/ext/filters/client_channel/retry_filter.cc - src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc - src/core/ext/filters/client_channel/retry_service_config.cc @@ -1850,9 +1832,6 @@ libs: - src/core/lib/promise/party.cc - src/core/lib/promise/sleep.cc - src/core/lib/promise/trace.cc - - src/core/lib/resolver/endpoint_addresses.cc - - src/core/lib/resolver/resolver.cc - - src/core/lib/resolver/resolver_registry.cc - src/core/lib/resource_quota/api.cc - src/core/lib/resource_quota/arena.cc - src/core/lib/resource_quota/memory_quota.cc @@ -2005,6 +1984,27 @@ libs: - src/core/load_balancing/xds/xds_wrr_locality.cc - src/core/plugin_registry/grpc_plugin_registry.cc - src/core/plugin_registry/grpc_plugin_registry_extra.cc + - src/core/resolver/binder/binder_resolver.cc + - src/core/resolver/dns/c_ares/dns_resolver_ares.cc + - src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc + - src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc + - src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc + - src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc + - src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc + - src/core/resolver/dns/dns_resolver_plugin.cc + - src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc + - src/core/resolver/dns/event_engine/service_config_helper.cc + - src/core/resolver/dns/native/dns_resolver.cc + - src/core/resolver/endpoint_addresses.cc + - src/core/resolver/fake/fake_resolver.cc + - src/core/resolver/google_c2p/google_c2p_resolver.cc + - src/core/resolver/polling_resolver.cc + - src/core/resolver/resolver.cc + - src/core/resolver/resolver_registry.cc + - src/core/resolver/sockaddr/sockaddr_resolver.cc + - src/core/resolver/xds/xds_dependency_manager.cc + - src/core/resolver/xds/xds_resolver.cc + - src/core/resolver/xds/xds_resolver_trace.cc - src/core/tsi/alts/crypt/aes_gcm.cc - src/core/tsi/alts/crypt/gsec.cc - src/core/tsi/alts/frame_protector/alts_counter.cc @@ -2214,15 +2214,6 @@ libs: - src/core/ext/filters/client_channel/global_subchannel_pool.h - src/core/ext/filters/client_channel/http_proxy_mapper.h - src/core/ext/filters/client_channel/local_subchannel_pool.h - - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h - - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h - - src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h - - src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h - - src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h - - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h - - src/core/ext/filters/client_channel/resolver/polling_resolver.h - src/core/ext/filters/client_channel/retry_filter.h - src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h - src/core/ext/filters/client_channel/retry_service_config.h @@ -2541,11 +2532,6 @@ libs: - src/core/lib/promise/trace.h - src/core/lib/promise/try_join.h - src/core/lib/promise/try_seq.h - - src/core/lib/resolver/endpoint_addresses.h - - src/core/lib/resolver/resolver.h - - src/core/lib/resolver/resolver_factory.h - - src/core/lib/resolver/resolver_registry.h - - src/core/lib/resolver/server_address.h - src/core/lib/resource_quota/api.h - src/core/lib/resource_quota/arena.h - src/core/lib/resource_quota/memory_quota.h @@ -2657,6 +2643,20 @@ libs: - src/core/load_balancing/subchannel_interface.h - src/core/load_balancing/subchannel_list.h - src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h + - src/core/resolver/dns/c_ares/dns_resolver_ares.h + - src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h + - src/core/resolver/dns/c_ares/grpc_ares_wrapper.h + - src/core/resolver/dns/dns_resolver_plugin.h + - src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h + - src/core/resolver/dns/event_engine/service_config_helper.h + - src/core/resolver/dns/native/dns_resolver.h + - src/core/resolver/endpoint_addresses.h + - src/core/resolver/fake/fake_resolver.h + - src/core/resolver/polling_resolver.h + - src/core/resolver/resolver.h + - src/core/resolver/resolver_factory.h + - src/core/resolver/resolver_registry.h + - src/core/resolver/server_address.h - src/core/tsi/alts/handshaker/transport_security_common_api.h - src/core/tsi/fake_transport_security.h - src/core/tsi/local_transport_security.h @@ -2703,20 +2703,6 @@ libs: - src/core/ext/filters/client_channel/global_subchannel_pool.cc - src/core/ext/filters/client_channel/http_proxy_mapper.cc - src/core/ext/filters/client_channel/local_subchannel_pool.cc - - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc - - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc - - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc - - src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc - - src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc - - src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc - - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc - - src/core/ext/filters/client_channel/resolver/polling_resolver.cc - - src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc - src/core/ext/filters/client_channel/retry_filter.cc - src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc - src/core/ext/filters/client_channel/retry_service_config.cc @@ -2961,9 +2947,6 @@ libs: - src/core/lib/promise/party.cc - src/core/lib/promise/sleep.cc - src/core/lib/promise/trace.cc - - src/core/lib/resolver/endpoint_addresses.cc - - src/core/lib/resolver/resolver.cc - - src/core/lib/resolver/resolver_registry.cc - src/core/lib/resource_quota/api.cc - src/core/lib/resource_quota/arena.cc - src/core/lib/resource_quota/memory_quota.cc @@ -3076,6 +3059,23 @@ libs: - src/core/load_balancing/weighted_target/weighted_target.cc - src/core/plugin_registry/grpc_plugin_registry.cc - src/core/plugin_registry/grpc_plugin_registry_noextra.cc + - src/core/resolver/binder/binder_resolver.cc + - src/core/resolver/dns/c_ares/dns_resolver_ares.cc + - src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc + - src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc + - src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc + - src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc + - src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc + - src/core/resolver/dns/dns_resolver_plugin.cc + - src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc + - src/core/resolver/dns/event_engine/service_config_helper.cc + - src/core/resolver/dns/native/dns_resolver.cc + - src/core/resolver/endpoint_addresses.cc + - src/core/resolver/fake/fake_resolver.cc + - src/core/resolver/polling_resolver.cc + - src/core/resolver/resolver.cc + - src/core/resolver/resolver_registry.cc + - src/core/resolver/sockaddr/sockaddr_resolver.cc - src/core/tsi/alts/handshaker/transport_security_common_api.cc - src/core/tsi/fake_transport_security.cc - src/core/tsi/local_transport_security.cc @@ -4604,11 +4604,6 @@ libs: - src/core/lib/promise/trace.h - src/core/lib/promise/try_join.h - src/core/lib/promise/try_seq.h - - src/core/lib/resolver/endpoint_addresses.h - - src/core/lib/resolver/resolver.h - - src/core/lib/resolver/resolver_factory.h - - src/core/lib/resolver/resolver_registry.h - - src/core/lib/resolver/server_address.h - src/core/lib/resource_quota/api.h - src/core/lib/resource_quota/arena.h - src/core/lib/resource_quota/memory_quota.h @@ -4702,6 +4697,11 @@ libs: - src/core/load_balancing/lb_policy_factory.h - src/core/load_balancing/lb_policy_registry.h - src/core/load_balancing/subchannel_interface.h + - src/core/resolver/endpoint_addresses.h + - src/core/resolver/resolver.h + - src/core/resolver/resolver_factory.h + - src/core/resolver/resolver_registry.h + - src/core/resolver/server_address.h - src/core/tsi/alts/handshaker/transport_security_common_api.h - src/core/tsi/transport_security.h - src/core/tsi/transport_security_grpc.h @@ -4903,9 +4903,6 @@ libs: - src/core/lib/promise/activity.cc - src/core/lib/promise/party.cc - src/core/lib/promise/trace.cc - - src/core/lib/resolver/endpoint_addresses.cc - - src/core/lib/resolver/resolver.cc - - src/core/lib/resolver/resolver_registry.cc - src/core/lib/resource_quota/api.cc - src/core/lib/resource_quota/arena.cc - src/core/lib/resource_quota/memory_quota.cc @@ -4996,6 +4993,9 @@ libs: - src/core/lib/uri/uri_parser.cc - src/core/load_balancing/lb_policy.cc - src/core/load_balancing/lb_policy_registry.cc + - src/core/resolver/endpoint_addresses.cc + - src/core/resolver/resolver.cc + - src/core/resolver/resolver_registry.cc - src/core/tsi/alts/handshaker/transport_security_common_api.cc - src/core/tsi/transport_security.cc - src/core/tsi/transport_security_grpc.cc diff --git a/config.m4 b/config.m4 index 30bbb2dcf5c..e6ca5d180da 100644 --- a/config.m4 +++ b/config.m4 @@ -59,24 +59,6 @@ if test "$PHP_GRPC" != "no"; then src/core/ext/filters/client_channel/global_subchannel_pool.cc \ src/core/ext/filters/client_channel/http_proxy_mapper.cc \ src/core/ext/filters/client_channel/local_subchannel_pool.cc \ - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc \ - src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ - src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc \ - src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc \ - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc \ - src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc \ - src/core/ext/filters/client_channel/resolver/polling_resolver.cc \ - src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \ - src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc \ - src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc \ - src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc \ src/core/ext/filters/client_channel/retry_filter.cc \ src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc \ src/core/ext/filters/client_channel/retry_service_config.cc \ @@ -703,9 +685,6 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/promise/party.cc \ src/core/lib/promise/sleep.cc \ src/core/lib/promise/trace.cc \ - src/core/lib/resolver/endpoint_addresses.cc \ - src/core/lib/resolver/resolver.cc \ - src/core/lib/resolver/resolver_registry.cc \ src/core/lib/resource_quota/api.cc \ src/core/lib/resource_quota/arena.cc \ src/core/lib/resource_quota/memory_quota.cc \ @@ -858,6 +837,27 @@ if test "$PHP_GRPC" != "no"; then src/core/load_balancing/xds/xds_wrr_locality.cc \ src/core/plugin_registry/grpc_plugin_registry.cc \ src/core/plugin_registry/grpc_plugin_registry_extra.cc \ + src/core/resolver/binder/binder_resolver.cc \ + src/core/resolver/dns/c_ares/dns_resolver_ares.cc \ + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ + src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ + src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc \ + src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ + src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ + src/core/resolver/dns/dns_resolver_plugin.cc \ + src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ + src/core/resolver/dns/event_engine/service_config_helper.cc \ + src/core/resolver/dns/native/dns_resolver.cc \ + src/core/resolver/endpoint_addresses.cc \ + src/core/resolver/fake/fake_resolver.cc \ + src/core/resolver/google_c2p/google_c2p_resolver.cc \ + src/core/resolver/polling_resolver.cc \ + src/core/resolver/resolver.cc \ + src/core/resolver/resolver_registry.cc \ + src/core/resolver/sockaddr/sockaddr_resolver.cc \ + src/core/resolver/xds/xds_dependency_manager.cc \ + src/core/resolver/xds/xds_resolver.cc \ + src/core/resolver/xds/xds_resolver_trace.cc \ src/core/tsi/alts/crypt/aes_gcm.cc \ src/core/tsi/alts/crypt/gsec.cc \ src/core/tsi/alts/frame_protector/alts_counter.cc \ @@ -1374,16 +1374,6 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/census) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/channel_idle) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/binder) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/dns) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/dns/c_ares) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/dns/event_engine) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/dns/native) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/fake) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/google_c2p) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/sockaddr) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/xds) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/deadline) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/fault_injection) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/http) @@ -1535,7 +1525,6 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/json) PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/matchers) PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/promise) - PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/resolver) PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/resource_quota) PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security/authorization) PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security/certificate_provider) @@ -1581,6 +1570,16 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/weighted_target) PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/xds) PHP_ADD_BUILD_DIR($ext_builddir/src/core/plugin_registry) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/binder) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/dns) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/dns/c_ares) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/dns/event_engine) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/dns/native) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/fake) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/google_c2p) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/sockaddr) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/xds) PHP_ADD_BUILD_DIR($ext_builddir/src/core/tsi) PHP_ADD_BUILD_DIR($ext_builddir/src/core/tsi/alts/crypt) PHP_ADD_BUILD_DIR($ext_builddir/src/core/tsi/alts/frame_protector) diff --git a/config.w32 b/config.w32 index b316bb9bbcb..226e4817739 100644 --- a/config.w32 +++ b/config.w32 @@ -24,24 +24,6 @@ if (PHP_GRPC != "no") { "src\\core\\ext\\filters\\client_channel\\global_subchannel_pool.cc " + "src\\core\\ext\\filters\\client_channel\\http_proxy_mapper.cc " + "src\\core\\ext\\filters\\client_channel\\local_subchannel_pool.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\binder\\binder_resolver.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\dns_resolver_ares.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_posix.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_windows.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper_posix.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper_windows.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\dns_resolver_plugin.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\event_engine\\event_engine_client_channel_resolver.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\event_engine\\service_config_helper.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\dns\\native\\dns_resolver.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\fake\\fake_resolver.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\google_c2p\\google_c2p_resolver.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\polling_resolver.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\sockaddr\\sockaddr_resolver.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\xds\\xds_dependency_manager.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\xds\\xds_resolver.cc " + - "src\\core\\ext\\filters\\client_channel\\resolver\\xds\\xds_resolver_trace.cc " + "src\\core\\ext\\filters\\client_channel\\retry_filter.cc " + "src\\core\\ext\\filters\\client_channel\\retry_filter_legacy_call_data.cc " + "src\\core\\ext\\filters\\client_channel\\retry_service_config.cc " + @@ -668,9 +650,6 @@ if (PHP_GRPC != "no") { "src\\core\\lib\\promise\\party.cc " + "src\\core\\lib\\promise\\sleep.cc " + "src\\core\\lib\\promise\\trace.cc " + - "src\\core\\lib\\resolver\\endpoint_addresses.cc " + - "src\\core\\lib\\resolver\\resolver.cc " + - "src\\core\\lib\\resolver\\resolver_registry.cc " + "src\\core\\lib\\resource_quota\\api.cc " + "src\\core\\lib\\resource_quota\\arena.cc " + "src\\core\\lib\\resource_quota\\memory_quota.cc " + @@ -823,6 +802,27 @@ if (PHP_GRPC != "no") { "src\\core\\load_balancing\\xds\\xds_wrr_locality.cc " + "src\\core\\plugin_registry\\grpc_plugin_registry.cc " + "src\\core\\plugin_registry\\grpc_plugin_registry_extra.cc " + + "src\\core\\resolver\\binder\\binder_resolver.cc " + + "src\\core\\resolver\\dns\\c_ares\\dns_resolver_ares.cc " + + "src\\core\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_posix.cc " + + "src\\core\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_windows.cc " + + "src\\core\\resolver\\dns\\c_ares\\grpc_ares_wrapper.cc " + + "src\\core\\resolver\\dns\\c_ares\\grpc_ares_wrapper_posix.cc " + + "src\\core\\resolver\\dns\\c_ares\\grpc_ares_wrapper_windows.cc " + + "src\\core\\resolver\\dns\\dns_resolver_plugin.cc " + + "src\\core\\resolver\\dns\\event_engine\\event_engine_client_channel_resolver.cc " + + "src\\core\\resolver\\dns\\event_engine\\service_config_helper.cc " + + "src\\core\\resolver\\dns\\native\\dns_resolver.cc " + + "src\\core\\resolver\\endpoint_addresses.cc " + + "src\\core\\resolver\\fake\\fake_resolver.cc " + + "src\\core\\resolver\\google_c2p\\google_c2p_resolver.cc " + + "src\\core\\resolver\\polling_resolver.cc " + + "src\\core\\resolver\\resolver.cc " + + "src\\core\\resolver\\resolver_registry.cc " + + "src\\core\\resolver\\sockaddr\\sockaddr_resolver.cc " + + "src\\core\\resolver\\xds\\xds_dependency_manager.cc " + + "src\\core\\resolver\\xds\\xds_resolver.cc " + + "src\\core\\resolver\\xds\\xds_resolver_trace.cc " + "src\\core\\tsi\\alts\\crypt\\aes_gcm.cc " + "src\\core\\tsi\\alts\\crypt\\gsec.cc " + "src\\core\\tsi\\alts\\frame_protector\\alts_counter.cc " + @@ -1368,16 +1368,6 @@ if (PHP_GRPC != "no") { FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\census"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\channel_idle"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\binder"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\dns"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\dns\\event_engine"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\dns\\native"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\fake"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\google_c2p"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\sockaddr"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\xds"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\deadline"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\fault_injection"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\http"); @@ -1672,7 +1662,6 @@ if (PHP_GRPC != "no") { FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\json"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\matchers"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\promise"); - FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\resolver"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\resource_quota"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\security"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\security\\authorization"); @@ -1719,6 +1708,16 @@ if (PHP_GRPC != "no") { FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\weighted_target"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\xds"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\plugin_registry"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\binder"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\dns"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\dns\\c_ares"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\dns\\event_engine"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\dns\\native"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\fake"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\google_c2p"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\sockaddr"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\xds"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\tsi"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\tsi\\alts"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\tsi\\alts\\crypt"); diff --git a/doc/images/img/grpc-copybara-commit.png b/doc/images/img/grpc-copybara-commit.png new file mode 100644 index 00000000000..5aa258810dd Binary files /dev/null and b/doc/images/img/grpc-copybara-commit.png differ diff --git a/doc/images/img/grpc-pr-closed-by-copybara.png b/doc/images/img/grpc-pr-closed-by-copybara.png new file mode 100644 index 00000000000..2a8874dbd5d Binary files /dev/null and b/doc/images/img/grpc-pr-closed-by-copybara.png differ diff --git a/examples/python/observability/requirements.txt b/examples/python/observability/requirements.txt index c20bd70143d..f7997817571 100644 --- a/examples/python/observability/requirements.txt +++ b/examples/python/observability/requirements.txt @@ -1,2 +1,3 @@ grpcio>=1.62.0 grpcio-observability>=1.62.0 +opentelemetry-sdk==1.21.0 diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec index 1b5a250be1b..cee645af1f6 100644 --- a/gRPC-C++.podspec +++ b/gRPC-C++.podspec @@ -275,18 +275,6 @@ Pod::Spec.new do |s| 'src/core/ext/filters/client_channel/global_subchannel_pool.h', 'src/core/ext/filters/client_channel/http_proxy_mapper.h', 'src/core/ext/filters/client_channel/local_subchannel_pool.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h', - 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h', - 'src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h', - 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h', - 'src/core/ext/filters/client_channel/resolver/polling_resolver.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h', 'src/core/ext/filters/client_channel/retry_filter.h', 'src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h', 'src/core/ext/filters/client_channel/retry_service_config.h', @@ -1156,11 +1144,6 @@ Pod::Spec.new do |s| 'src/core/lib/promise/trace.h', 'src/core/lib/promise/try_join.h', 'src/core/lib/promise/try_seq.h', - 'src/core/lib/resolver/endpoint_addresses.h', - 'src/core/lib/resolver/resolver.h', - 'src/core/lib/resolver/resolver_factory.h', - 'src/core/lib/resolver/resolver_registry.h', - 'src/core/lib/resolver/server_address.h', 'src/core/lib/resource_quota/api.h', 'src/core/lib/resource_quota/arena.h', 'src/core/lib/resource_quota/memory_quota.h', @@ -1306,6 +1289,23 @@ Pod::Spec.new do |s| 'src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h', 'src/core/load_balancing/xds/xds_channel_args.h', 'src/core/load_balancing/xds/xds_override_host.h', + 'src/core/resolver/dns/c_ares/dns_resolver_ares.h', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper.h', + 'src/core/resolver/dns/dns_resolver_plugin.h', + 'src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h', + 'src/core/resolver/dns/event_engine/service_config_helper.h', + 'src/core/resolver/dns/native/dns_resolver.h', + 'src/core/resolver/endpoint_addresses.h', + 'src/core/resolver/fake/fake_resolver.h', + 'src/core/resolver/polling_resolver.h', + 'src/core/resolver/resolver.h', + 'src/core/resolver/resolver_factory.h', + 'src/core/resolver/resolver_registry.h', + 'src/core/resolver/server_address.h', + 'src/core/resolver/xds/xds_dependency_manager.h', + 'src/core/resolver/xds/xds_resolver_attributes.h', + 'src/core/resolver/xds/xds_resolver_trace.h', 'src/core/tsi/alts/crypt/gsec.h', 'src/core/tsi/alts/frame_protector/alts_counter.h', 'src/core/tsi/alts/frame_protector/alts_crypter.h', @@ -1550,18 +1550,6 @@ Pod::Spec.new do |s| 'src/core/ext/filters/client_channel/global_subchannel_pool.h', 'src/core/ext/filters/client_channel/http_proxy_mapper.h', 'src/core/ext/filters/client_channel/local_subchannel_pool.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h', - 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h', - 'src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h', - 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h', - 'src/core/ext/filters/client_channel/resolver/polling_resolver.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h', 'src/core/ext/filters/client_channel/retry_filter.h', 'src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h', 'src/core/ext/filters/client_channel/retry_service_config.h', @@ -2413,11 +2401,6 @@ Pod::Spec.new do |s| 'src/core/lib/promise/trace.h', 'src/core/lib/promise/try_join.h', 'src/core/lib/promise/try_seq.h', - 'src/core/lib/resolver/endpoint_addresses.h', - 'src/core/lib/resolver/resolver.h', - 'src/core/lib/resolver/resolver_factory.h', - 'src/core/lib/resolver/resolver_registry.h', - 'src/core/lib/resolver/server_address.h', 'src/core/lib/resource_quota/api.h', 'src/core/lib/resource_quota/arena.h', 'src/core/lib/resource_quota/memory_quota.h', @@ -2563,6 +2546,23 @@ Pod::Spec.new do |s| 'src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h', 'src/core/load_balancing/xds/xds_channel_args.h', 'src/core/load_balancing/xds/xds_override_host.h', + 'src/core/resolver/dns/c_ares/dns_resolver_ares.h', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper.h', + 'src/core/resolver/dns/dns_resolver_plugin.h', + 'src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h', + 'src/core/resolver/dns/event_engine/service_config_helper.h', + 'src/core/resolver/dns/native/dns_resolver.h', + 'src/core/resolver/endpoint_addresses.h', + 'src/core/resolver/fake/fake_resolver.h', + 'src/core/resolver/polling_resolver.h', + 'src/core/resolver/resolver.h', + 'src/core/resolver/resolver_factory.h', + 'src/core/resolver/resolver_registry.h', + 'src/core/resolver/server_address.h', + 'src/core/resolver/xds/xds_dependency_manager.h', + 'src/core/resolver/xds/xds_resolver_attributes.h', + 'src/core/resolver/xds/xds_resolver_trace.h', 'src/core/tsi/alts/crypt/gsec.h', 'src/core/tsi/alts/frame_protector/alts_counter.h', 'src/core/tsi/alts/frame_protector/alts_crypter.h', diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index 19436806e23..a668f3de855 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -195,7 +195,7 @@ Pod::Spec.new do |s| ss.libraries = 'z' ss.dependency "#{s.name}/Interface", version ss.dependency "#{s.name}/Privacy", version - ss.dependency 'BoringSSL-GRPC', '0.0.32' + ss.dependency 'BoringSSL-GRPC', '0.0.33' ss.dependency 'abseil/algorithm/container', abseil_version ss.dependency 'abseil/base/base', abseil_version ss.dependency 'abseil/base/config', abseil_version @@ -264,36 +264,6 @@ Pod::Spec.new do |s| 'src/core/ext/filters/client_channel/http_proxy_mapper.h', 'src/core/ext/filters/client_channel/local_subchannel_pool.cc', 'src/core/ext/filters/client_channel/local_subchannel_pool.h', - 'src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc', - 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc', - 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h', - 'src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h', - 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h', - 'src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/polling_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/polling_resolver.h', - 'src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h', 'src/core/ext/filters/client_channel/retry_filter.cc', 'src/core/ext/filters/client_channel/retry_filter.h', 'src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc', @@ -1750,14 +1720,6 @@ Pod::Spec.new do |s| 'src/core/lib/promise/trace.h', 'src/core/lib/promise/try_join.h', 'src/core/lib/promise/try_seq.h', - 'src/core/lib/resolver/endpoint_addresses.cc', - 'src/core/lib/resolver/endpoint_addresses.h', - 'src/core/lib/resolver/resolver.cc', - 'src/core/lib/resolver/resolver.h', - 'src/core/lib/resolver/resolver_factory.h', - 'src/core/lib/resolver/resolver_registry.cc', - 'src/core/lib/resolver/resolver_registry.h', - 'src/core/lib/resolver/server_address.h', 'src/core/lib/resource_quota/api.cc', 'src/core/lib/resource_quota/api.h', 'src/core/lib/resource_quota/arena.cc', @@ -2055,6 +2017,44 @@ Pod::Spec.new do |s| 'src/core/load_balancing/xds/xds_wrr_locality.cc', 'src/core/plugin_registry/grpc_plugin_registry.cc', 'src/core/plugin_registry/grpc_plugin_registry_extra.cc', + 'src/core/resolver/binder/binder_resolver.cc', + 'src/core/resolver/dns/c_ares/dns_resolver_ares.cc', + 'src/core/resolver/dns/c_ares/dns_resolver_ares.h', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper.h', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc', + 'src/core/resolver/dns/dns_resolver_plugin.cc', + 'src/core/resolver/dns/dns_resolver_plugin.h', + 'src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc', + 'src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h', + 'src/core/resolver/dns/event_engine/service_config_helper.cc', + 'src/core/resolver/dns/event_engine/service_config_helper.h', + 'src/core/resolver/dns/native/dns_resolver.cc', + 'src/core/resolver/dns/native/dns_resolver.h', + 'src/core/resolver/endpoint_addresses.cc', + 'src/core/resolver/endpoint_addresses.h', + 'src/core/resolver/fake/fake_resolver.cc', + 'src/core/resolver/fake/fake_resolver.h', + 'src/core/resolver/google_c2p/google_c2p_resolver.cc', + 'src/core/resolver/polling_resolver.cc', + 'src/core/resolver/polling_resolver.h', + 'src/core/resolver/resolver.cc', + 'src/core/resolver/resolver.h', + 'src/core/resolver/resolver_factory.h', + 'src/core/resolver/resolver_registry.cc', + 'src/core/resolver/resolver_registry.h', + 'src/core/resolver/server_address.h', + 'src/core/resolver/sockaddr/sockaddr_resolver.cc', + 'src/core/resolver/xds/xds_dependency_manager.cc', + 'src/core/resolver/xds/xds_dependency_manager.h', + 'src/core/resolver/xds/xds_resolver.cc', + 'src/core/resolver/xds/xds_resolver_attributes.h', + 'src/core/resolver/xds/xds_resolver_trace.cc', + 'src/core/resolver/xds/xds_resolver_trace.h', 'src/core/tsi/alts/crypt/aes_gcm.cc', 'src/core/tsi/alts/crypt/gsec.cc', 'src/core/tsi/alts/crypt/gsec.h', @@ -2351,18 +2351,6 @@ Pod::Spec.new do |s| 'src/core/ext/filters/client_channel/global_subchannel_pool.h', 'src/core/ext/filters/client_channel/http_proxy_mapper.h', 'src/core/ext/filters/client_channel/local_subchannel_pool.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h', - 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h', - 'src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h', - 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h', - 'src/core/ext/filters/client_channel/resolver/polling_resolver.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h', 'src/core/ext/filters/client_channel/retry_filter.h', 'src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h', 'src/core/ext/filters/client_channel/retry_service_config.h', @@ -3193,11 +3181,6 @@ Pod::Spec.new do |s| 'src/core/lib/promise/trace.h', 'src/core/lib/promise/try_join.h', 'src/core/lib/promise/try_seq.h', - 'src/core/lib/resolver/endpoint_addresses.h', - 'src/core/lib/resolver/resolver.h', - 'src/core/lib/resolver/resolver_factory.h', - 'src/core/lib/resolver/resolver_registry.h', - 'src/core/lib/resolver/server_address.h', 'src/core/lib/resource_quota/api.h', 'src/core/lib/resource_quota/arena.h', 'src/core/lib/resource_quota/memory_quota.h', @@ -3343,6 +3326,23 @@ Pod::Spec.new do |s| 'src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h', 'src/core/load_balancing/xds/xds_channel_args.h', 'src/core/load_balancing/xds/xds_override_host.h', + 'src/core/resolver/dns/c_ares/dns_resolver_ares.h', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper.h', + 'src/core/resolver/dns/dns_resolver_plugin.h', + 'src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h', + 'src/core/resolver/dns/event_engine/service_config_helper.h', + 'src/core/resolver/dns/native/dns_resolver.h', + 'src/core/resolver/endpoint_addresses.h', + 'src/core/resolver/fake/fake_resolver.h', + 'src/core/resolver/polling_resolver.h', + 'src/core/resolver/resolver.h', + 'src/core/resolver/resolver_factory.h', + 'src/core/resolver/resolver_registry.h', + 'src/core/resolver/server_address.h', + 'src/core/resolver/xds/xds_dependency_manager.h', + 'src/core/resolver/xds/xds_resolver_attributes.h', + 'src/core/resolver/xds/xds_resolver_trace.h', 'src/core/tsi/alts/crypt/gsec.h', 'src/core/tsi/alts/frame_protector/alts_counter.h', 'src/core/tsi/alts/frame_protector/alts_crypter.h', diff --git a/grpc.gemspec b/grpc.gemspec index b78139acfa3..4caf5f23bc2 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -157,36 +157,6 @@ Gem::Specification.new do |s| s.files += %w( src/core/ext/filters/client_channel/http_proxy_mapper.h ) s.files += %w( src/core/ext/filters/client_channel/local_subchannel_pool.cc ) s.files += %w( src/core/ext/filters/client_channel/local_subchannel_pool.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/polling_resolver.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/polling_resolver.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h ) - s.files += %w( src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h ) s.files += %w( src/core/ext/filters/client_channel/retry_filter.cc ) s.files += %w( src/core/ext/filters/client_channel/retry_filter.h ) s.files += %w( src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc ) @@ -1643,14 +1613,6 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/promise/trace.h ) s.files += %w( src/core/lib/promise/try_join.h ) s.files += %w( src/core/lib/promise/try_seq.h ) - s.files += %w( src/core/lib/resolver/endpoint_addresses.cc ) - s.files += %w( src/core/lib/resolver/endpoint_addresses.h ) - s.files += %w( src/core/lib/resolver/resolver.cc ) - s.files += %w( src/core/lib/resolver/resolver.h ) - s.files += %w( src/core/lib/resolver/resolver_factory.h ) - s.files += %w( src/core/lib/resolver/resolver_registry.cc ) - s.files += %w( src/core/lib/resolver/resolver_registry.h ) - s.files += %w( src/core/lib/resolver/server_address.h ) s.files += %w( src/core/lib/resource_quota/api.cc ) s.files += %w( src/core/lib/resource_quota/api.h ) s.files += %w( src/core/lib/resource_quota/arena.cc ) @@ -1948,6 +1910,44 @@ Gem::Specification.new do |s| s.files += %w( src/core/load_balancing/xds/xds_wrr_locality.cc ) s.files += %w( src/core/plugin_registry/grpc_plugin_registry.cc ) s.files += %w( src/core/plugin_registry/grpc_plugin_registry_extra.cc ) + s.files += %w( src/core/resolver/binder/binder_resolver.cc ) + s.files += %w( src/core/resolver/dns/c_ares/dns_resolver_ares.cc ) + s.files += %w( src/core/resolver/dns/c_ares/dns_resolver_ares.h ) + s.files += %w( src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h ) + s.files += %w( src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc ) + s.files += %w( src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc ) + s.files += %w( src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc ) + s.files += %w( src/core/resolver/dns/c_ares/grpc_ares_wrapper.h ) + s.files += %w( src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc ) + s.files += %w( src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc ) + s.files += %w( src/core/resolver/dns/dns_resolver_plugin.cc ) + s.files += %w( src/core/resolver/dns/dns_resolver_plugin.h ) + s.files += %w( src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc ) + s.files += %w( src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h ) + s.files += %w( src/core/resolver/dns/event_engine/service_config_helper.cc ) + s.files += %w( src/core/resolver/dns/event_engine/service_config_helper.h ) + s.files += %w( src/core/resolver/dns/native/dns_resolver.cc ) + s.files += %w( src/core/resolver/dns/native/dns_resolver.h ) + s.files += %w( src/core/resolver/endpoint_addresses.cc ) + s.files += %w( src/core/resolver/endpoint_addresses.h ) + s.files += %w( src/core/resolver/fake/fake_resolver.cc ) + s.files += %w( src/core/resolver/fake/fake_resolver.h ) + s.files += %w( src/core/resolver/google_c2p/google_c2p_resolver.cc ) + s.files += %w( src/core/resolver/polling_resolver.cc ) + s.files += %w( src/core/resolver/polling_resolver.h ) + s.files += %w( src/core/resolver/resolver.cc ) + s.files += %w( src/core/resolver/resolver.h ) + s.files += %w( src/core/resolver/resolver_factory.h ) + s.files += %w( src/core/resolver/resolver_registry.cc ) + s.files += %w( src/core/resolver/resolver_registry.h ) + s.files += %w( src/core/resolver/server_address.h ) + s.files += %w( src/core/resolver/sockaddr/sockaddr_resolver.cc ) + s.files += %w( src/core/resolver/xds/xds_dependency_manager.cc ) + s.files += %w( src/core/resolver/xds/xds_dependency_manager.h ) + s.files += %w( src/core/resolver/xds/xds_resolver.cc ) + s.files += %w( src/core/resolver/xds/xds_resolver_attributes.h ) + s.files += %w( src/core/resolver/xds/xds_resolver_trace.cc ) + s.files += %w( src/core/resolver/xds/xds_resolver_trace.h ) s.files += %w( src/core/tsi/alts/crypt/aes_gcm.cc ) s.files += %w( src/core/tsi/alts/crypt/gsec.cc ) s.files += %w( src/core/tsi/alts/crypt/gsec.h ) diff --git a/grpc.gyp b/grpc.gyp index b43595e2b0d..97d4590242b 100644 --- a/grpc.gyp +++ b/grpc.gyp @@ -291,24 +291,6 @@ 'src/core/ext/filters/client_channel/global_subchannel_pool.cc', 'src/core/ext/filters/client_channel/http_proxy_mapper.cc', 'src/core/ext/filters/client_channel/local_subchannel_pool.cc', - 'src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc', - 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc', - 'src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/polling_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc', 'src/core/ext/filters/client_channel/retry_filter.cc', 'src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc', 'src/core/ext/filters/client_channel/retry_service_config.cc', @@ -889,9 +871,6 @@ 'src/core/lib/promise/party.cc', 'src/core/lib/promise/sleep.cc', 'src/core/lib/promise/trace.cc', - 'src/core/lib/resolver/endpoint_addresses.cc', - 'src/core/lib/resolver/resolver.cc', - 'src/core/lib/resolver/resolver_registry.cc', 'src/core/lib/resource_quota/api.cc', 'src/core/lib/resource_quota/arena.cc', 'src/core/lib/resource_quota/memory_quota.cc', @@ -1044,6 +1023,27 @@ 'src/core/load_balancing/xds/xds_wrr_locality.cc', 'src/core/plugin_registry/grpc_plugin_registry.cc', 'src/core/plugin_registry/grpc_plugin_registry_extra.cc', + 'src/core/resolver/binder/binder_resolver.cc', + 'src/core/resolver/dns/c_ares/dns_resolver_ares.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc', + 'src/core/resolver/dns/dns_resolver_plugin.cc', + 'src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc', + 'src/core/resolver/dns/event_engine/service_config_helper.cc', + 'src/core/resolver/dns/native/dns_resolver.cc', + 'src/core/resolver/endpoint_addresses.cc', + 'src/core/resolver/fake/fake_resolver.cc', + 'src/core/resolver/google_c2p/google_c2p_resolver.cc', + 'src/core/resolver/polling_resolver.cc', + 'src/core/resolver/resolver.cc', + 'src/core/resolver/resolver_registry.cc', + 'src/core/resolver/sockaddr/sockaddr_resolver.cc', + 'src/core/resolver/xds/xds_dependency_manager.cc', + 'src/core/resolver/xds/xds_resolver.cc', + 'src/core/resolver/xds/xds_resolver_trace.cc', 'src/core/tsi/alts/crypt/aes_gcm.cc', 'src/core/tsi/alts/crypt/gsec.cc', 'src/core/tsi/alts/frame_protector/alts_counter.cc', @@ -1163,20 +1163,6 @@ 'src/core/ext/filters/client_channel/global_subchannel_pool.cc', 'src/core/ext/filters/client_channel/http_proxy_mapper.cc', 'src/core/ext/filters/client_channel/local_subchannel_pool.cc', - 'src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc', - 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc', - 'src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/polling_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc', 'src/core/ext/filters/client_channel/retry_filter.cc', 'src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc', 'src/core/ext/filters/client_channel/retry_service_config.cc', @@ -1421,9 +1407,6 @@ 'src/core/lib/promise/party.cc', 'src/core/lib/promise/sleep.cc', 'src/core/lib/promise/trace.cc', - 'src/core/lib/resolver/endpoint_addresses.cc', - 'src/core/lib/resolver/resolver.cc', - 'src/core/lib/resolver/resolver_registry.cc', 'src/core/lib/resource_quota/api.cc', 'src/core/lib/resource_quota/arena.cc', 'src/core/lib/resource_quota/memory_quota.cc', @@ -1536,6 +1519,23 @@ 'src/core/load_balancing/weighted_target/weighted_target.cc', 'src/core/plugin_registry/grpc_plugin_registry.cc', 'src/core/plugin_registry/grpc_plugin_registry_noextra.cc', + 'src/core/resolver/binder/binder_resolver.cc', + 'src/core/resolver/dns/c_ares/dns_resolver_ares.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc', + 'src/core/resolver/dns/dns_resolver_plugin.cc', + 'src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc', + 'src/core/resolver/dns/event_engine/service_config_helper.cc', + 'src/core/resolver/dns/native/dns_resolver.cc', + 'src/core/resolver/endpoint_addresses.cc', + 'src/core/resolver/fake/fake_resolver.cc', + 'src/core/resolver/polling_resolver.cc', + 'src/core/resolver/resolver.cc', + 'src/core/resolver/resolver_registry.cc', + 'src/core/resolver/sockaddr/sockaddr_resolver.cc', 'src/core/tsi/alts/handshaker/transport_security_common_api.cc', 'src/core/tsi/fake_transport_security.cc', 'src/core/tsi/local_transport_security.cc', @@ -2211,9 +2211,6 @@ 'src/core/lib/promise/activity.cc', 'src/core/lib/promise/party.cc', 'src/core/lib/promise/trace.cc', - 'src/core/lib/resolver/endpoint_addresses.cc', - 'src/core/lib/resolver/resolver.cc', - 'src/core/lib/resolver/resolver_registry.cc', 'src/core/lib/resource_quota/api.cc', 'src/core/lib/resource_quota/arena.cc', 'src/core/lib/resource_quota/memory_quota.cc', @@ -2304,6 +2301,9 @@ 'src/core/lib/uri/uri_parser.cc', 'src/core/load_balancing/lb_policy.cc', 'src/core/load_balancing/lb_policy_registry.cc', + 'src/core/resolver/endpoint_addresses.cc', + 'src/core/resolver/resolver.cc', + 'src/core/resolver/resolver_registry.cc', 'src/core/tsi/alts/handshaker/transport_security_common_api.cc', 'src/core/tsi/transport_security.cc', 'src/core/tsi/transport_security_grpc.cc', diff --git a/package.xml b/package.xml index 2248624d4d4..5b1b5aae823 100644 --- a/package.xml +++ b/package.xml @@ -139,36 +139,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1625,14 +1595,6 @@ - - - - - - - - @@ -1930,6 +1892,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/boringssl/boringssl_prefix_symbols.h b/src/boringssl/boringssl_prefix_symbols.h index 368614cbed7..fdb81e30c7f 100644 --- a/src/boringssl/boringssl_prefix_symbols.h +++ b/src/boringssl/boringssl_prefix_symbols.h @@ -1,4 +1,4 @@ -// generated by generate_boringssl_prefix_header.sh on BoringSSL commit: ae72a4514c7afd150596b0a80947f3ca9b8363b5 +// generated by generate_boringssl_prefix_header.sh on BoringSSL commit: 311e6f6d8e77da1f64c3256b30bd1992a555ce6c // Copyright (c) 2018, Google Inc. // @@ -1285,12 +1285,17 @@ #define ChaCha20_ctr32_ssse3_4x BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ChaCha20_ctr32_ssse3_4x) #define DES_decrypt3 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_decrypt3) #define DES_ecb3_encrypt BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_ecb3_encrypt) +#define DES_ecb3_encrypt_ex BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_ecb3_encrypt_ex) #define DES_ecb_encrypt BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_ecb_encrypt) +#define DES_ecb_encrypt_ex BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_ecb_encrypt_ex) #define DES_ede2_cbc_encrypt BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_ede2_cbc_encrypt) #define DES_ede3_cbc_encrypt BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_ede3_cbc_encrypt) +#define DES_ede3_cbc_encrypt_ex BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_ede3_cbc_encrypt_ex) #define DES_encrypt3 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_encrypt3) #define DES_ncbc_encrypt BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_ncbc_encrypt) +#define DES_ncbc_encrypt_ex BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_ncbc_encrypt_ex) #define DES_set_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_set_key) +#define DES_set_key_ex BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_set_key_ex) #define DES_set_key_unchecked BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_set_key_unchecked) #define DES_set_odd_parity BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DES_set_odd_parity) #define DH_bits BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DH_bits) diff --git a/src/core/BUILD b/src/core/BUILD index 4603f0cba85..b4779505fcb 100644 --- a/src/core/BUILD +++ b/src/core/BUILD @@ -2188,6 +2188,7 @@ grpc_cc_library( "posix_event_engine_tcp_socket_utils", "socket_mutator", "status_helper", + "strerror", "time", "//:event_engine_base_hdrs", "//:exec_ctx", @@ -5655,10 +5656,10 @@ grpc_cc_library( grpc_cc_library( name = "polling_resolver", srcs = [ - "ext/filters/client_channel/resolver/polling_resolver.cc", + "resolver/polling_resolver.cc", ], hdrs = [ - "ext/filters/client_channel/resolver/polling_resolver.h", + "resolver/polling_resolver.h", ], external_deps = [ "absl/status", @@ -5690,10 +5691,10 @@ grpc_cc_library( grpc_cc_library( name = "service_config_helper", srcs = [ - "ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc", + "resolver/dns/event_engine/service_config_helper.cc", ], hdrs = [ - "ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h", + "resolver/dns/event_engine/service_config_helper.h", ], external_deps = [ "absl/status:statusor", @@ -5715,10 +5716,10 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_dns_event_engine", srcs = [ - "ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc", + "resolver/dns/event_engine/event_engine_client_channel_resolver.cc", ], hdrs = [ - "ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h", + "resolver/dns/event_engine/event_engine_client_channel_resolver.h", ], external_deps = [ "absl/base:core_headers", @@ -5758,10 +5759,10 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_dns_plugin", srcs = [ - "ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc", + "resolver/dns/dns_resolver_plugin.cc", ], hdrs = [ - "ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h", + "resolver/dns/dns_resolver_plugin.h", ], external_deps = ["absl/strings"], language = "c++", @@ -5780,10 +5781,10 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_dns_native", srcs = [ - "ext/filters/client_channel/resolver/dns/native/dns_resolver.cc", + "resolver/dns/native/dns_resolver.cc", ], hdrs = [ - "ext/filters/client_channel/resolver/dns/native/dns_resolver.h", + "resolver/dns/native/dns_resolver.h", ], external_deps = [ "absl/functional:bind_front", @@ -5816,7 +5817,7 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_sockaddr", srcs = [ - "ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc", + "resolver/sockaddr/sockaddr_resolver.cc", ], external_deps = [ "absl/status:statusor", @@ -5840,7 +5841,7 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_binder", srcs = [ - "ext/filters/client_channel/resolver/binder/binder_resolver.cc", + "resolver/binder/binder_resolver.cc", ], external_deps = [ "absl/status", @@ -5866,7 +5867,7 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_xds_attributes", hdrs = [ - "ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h", + "resolver/xds/xds_resolver_attributes.h", ], external_deps = ["absl/strings"], language = "c++", @@ -5880,10 +5881,10 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_xds_trace", srcs = [ - "ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc", + "resolver/xds/xds_resolver_trace.cc", ], hdrs = [ - "ext/filters/client_channel/resolver/xds/xds_resolver_trace.h", + "resolver/xds/xds_resolver_trace.h", ], language = "c++", deps = [ @@ -5895,10 +5896,10 @@ grpc_cc_library( grpc_cc_library( name = "xds_dependency_manager", srcs = [ - "ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc", + "resolver/xds/xds_dependency_manager.cc", ], hdrs = [ - "ext/filters/client_channel/resolver/xds/xds_dependency_manager.h", + "resolver/xds/xds_dependency_manager.h", ], external_deps = [ "absl/container:flat_hash_map", @@ -5922,7 +5923,7 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_xds", srcs = [ - "ext/filters/client_channel/resolver/xds/xds_resolver.cc", + "resolver/xds/xds_resolver.cc", ], external_deps = [ "absl/meta:type_traits", @@ -5981,7 +5982,7 @@ grpc_cc_library( grpc_cc_library( name = "grpc_resolver_c2p", srcs = [ - "ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc", + "resolver/google_c2p/google_c2p_resolver.cc", ], external_deps = [ "absl/status:statusor", diff --git a/src/core/ext/filters/client_channel/client_channel.cc b/src/core/ext/filters/client_channel/client_channel.cc index 47647a2da08..8fc6976560d 100644 --- a/src/core/ext/filters/client_channel/client_channel.cc +++ b/src/core/ext/filters/client_channel/client_channel.cc @@ -91,8 +91,6 @@ #include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/promise/try_seq.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/security/credentials/credentials.h" #include "src/core/lib/service_config/service_config_call_data.h" #include "src/core/lib/service_config/service_config_impl.h" @@ -106,6 +104,8 @@ #include "src/core/load_balancing/child_policy_handler.h" #include "src/core/load_balancing/lb_policy_registry.h" #include "src/core/load_balancing/subchannel_interface.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver_registry.h" // // Client channel filter diff --git a/src/core/ext/filters/client_channel/client_channel.h b/src/core/ext/filters/client_channel/client_channel.h index 02f17796a19..6da29141bd3 100644 --- a/src/core/ext/filters/client_channel/client_channel.h +++ b/src/core/ext/filters/client_channel/client_channel.h @@ -62,7 +62,6 @@ #include "src/core/lib/iomgr/polling_entity.h" #include "src/core/lib/promise/activity.h" #include "src/core/lib/promise/arena_promise.h" -#include "src/core/lib/resolver/resolver.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/service_config/service_config.h" #include "src/core/lib/slice/slice.h" @@ -72,6 +71,7 @@ #include "src/core/lib/transport/transport.h" #include "src/core/load_balancing/backend_metric_data.h" #include "src/core/load_balancing/lb_policy.h" +#include "src/core/resolver/resolver.h" // // Client channel filter diff --git a/src/core/ext/filters/logging/logging_filter.cc b/src/core/ext/filters/logging/logging_filter.cc index 0774e95c232..f68ce1788c1 100644 --- a/src/core/ext/filters/logging/logging_filter.cc +++ b/src/core/ext/filters/logging/logging_filter.cc @@ -62,7 +62,6 @@ #include "src/core/lib/promise/context.h" #include "src/core/lib/promise/map.h" #include "src/core/lib/promise/pipe.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/slice/slice.h" #include "src/core/lib/slice/slice_buffer.h" @@ -70,6 +69,7 @@ #include "src/core/lib/transport/metadata_batch.h" #include "src/core/lib/transport/transport.h" #include "src/core/lib/uri/uri_parser.h" +#include "src/core/resolver/resolver_registry.h" namespace grpc_core { diff --git a/src/core/ext/filters/stateful_session/stateful_session_filter.cc b/src/core/ext/filters/stateful_session/stateful_session_filter.cc index 65fa3dc0bd0..19f72a4831d 100644 --- a/src/core/ext/filters/stateful_session/stateful_session_filter.cc +++ b/src/core/ext/filters/stateful_session/stateful_session_filter.cc @@ -38,7 +38,6 @@ #include -#include "src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h" #include "src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h" #include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/channel/context.h" @@ -54,6 +53,7 @@ #include "src/core/lib/slice/slice.h" #include "src/core/lib/transport/metadata_batch.h" #include "src/core/lib/transport/transport.h" +#include "src/core/resolver/xds/xds_resolver_attributes.h" namespace grpc_core { diff --git a/src/core/ext/transport/chttp2/client/chttp2_connector.cc b/src/core/ext/transport/chttp2/client/chttp2_connector.cc index 37e490458d1..17d7975dc6c 100644 --- a/src/core/ext/transport/chttp2/client/chttp2_connector.cc +++ b/src/core/ext/transport/chttp2/client/chttp2_connector.cc @@ -59,7 +59,6 @@ #include "src/core/lib/iomgr/endpoint.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/security/credentials/credentials.h" #include "src/core/lib/security/credentials/insecure/insecure_credentials.h" #include "src/core/lib/security/security_connector/security_connector.h" @@ -71,6 +70,7 @@ #include "src/core/lib/transport/handshaker_registry.h" #include "src/core/lib/transport/tcp_connect_handshaker.h" #include "src/core/lib/transport/transport.h" +#include "src/core/resolver/resolver_registry.h" #ifdef GPR_SUPPORT_CHANNELS_FROM_FD diff --git a/src/core/ext/xds/xds_client_grpc.h b/src/core/ext/xds/xds_client_grpc.h index 48029dc3d28..7093ec4017b 100644 --- a/src/core/ext/xds/xds_client_grpc.h +++ b/src/core/ext/xds/xds_client_grpc.h @@ -35,7 +35,7 @@ #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/iomgr/iomgr_fwd.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/ext/xds/xds_client_stats.h b/src/core/ext/xds/xds_client_stats.h index b7ffb1a3a15..77300f1b241 100644 --- a/src/core/ext/xds/xds_client_stats.h +++ b/src/core/ext/xds/xds_client_stats.h @@ -37,7 +37,7 @@ #include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/ext/xds/xds_endpoint.h b/src/core/ext/xds/xds_endpoint.h index 369e0921a6c..faa33192c33 100644 --- a/src/core/ext/xds/xds_endpoint.h +++ b/src/core/ext/xds/xds_endpoint.h @@ -40,7 +40,7 @@ #include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/ext/xds/xds_health_status.h b/src/core/ext/xds/xds_health_status.h index 73fbc3df4a3..2ad46f082f3 100644 --- a/src/core/ext/xds/xds_health_status.h +++ b/src/core/ext/xds/xds_health_status.h @@ -25,7 +25,7 @@ #include "absl/types/optional.h" #include "absl/types/span.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" // Channel arg key for xDS health status. // Value is an XdsHealthStatus::HealthStatus enum. diff --git a/src/core/lib/config/core_configuration.h b/src/core/lib/config/core_configuration.h index d46138b7da4..327f9be8ce2 100644 --- a/src/core/lib/config/core_configuration.h +++ b/src/core/lib/config/core_configuration.h @@ -25,13 +25,13 @@ #include "src/core/lib/channel/channel_args_preconditioning.h" #include "src/core/lib/handshaker/proxy_mapper_registry.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/security/certificate_provider/certificate_provider_registry.h" #include "src/core/lib/security/credentials/channel_creds_registry.h" #include "src/core/lib/service_config/service_config_parser.h" #include "src/core/lib/surface/channel_init.h" #include "src/core/lib/transport/handshaker_registry.h" #include "src/core/load_balancing/lb_policy_registry.h" +#include "src/core/resolver/resolver_registry.h" namespace grpc_core { diff --git a/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc b/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc index 09dc4d5929c..1048e589c2d 100644 --- a/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +++ b/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc @@ -45,6 +45,7 @@ #include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h" #include "src/core/lib/event_engine/tcp_socket_utils.h" #include "src/core/lib/gprpp/status_helper.h" +#include "src/core/lib/gprpp/strerror.h" #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/socket_mutator.h" @@ -173,7 +174,7 @@ void PosixEngineListenerImpl::AsyncConnectionAcceptor::NotifyOnAccept( return; default: gpr_log(GPR_ERROR, "Closing acceptor. Failed accept4: %s", - strerror(errno)); + grpc_core::StrError(errno).c_str()); // Shutting down the acceptor. Unref the ref grabbed in // AsyncConnectionAcceptor::Start(). Unref(); @@ -189,15 +190,13 @@ void PosixEngineListenerImpl::AsyncConnectionAcceptor::NotifyOnAccept( auto listener_addr_uri = ResolvedAddressToURI(socket_.addr); gpr_log( GPR_ERROR, - "Failed getpeername: %s. This is a critical failure, the " - "listener on %s:%d is shutting down.", - strerror(errno), + "Failed getpeername: %s. Dropping the connection, and continuing " + "to listen on %s:%d.", + grpc_core::StrError(errno).c_str(), listener_addr_uri.ok() ? listener_addr_uri->c_str() : "", socket_.port); close(fd); - // Shutting down the acceptor. Unref the ref grabbed in - // AsyncConnectionAcceptor::Start(). - Unref(); + handle_->NotifyOnRead(notify_on_accept_); return; } addr = EventEngine::ResolvedAddress(addr.address(), len); diff --git a/src/core/lib/iomgr/tcp_server_posix.cc b/src/core/lib/iomgr/tcp_server_posix.cc index 6f373751c82..85404201425 100644 --- a/src/core/lib/iomgr/tcp_server_posix.cc +++ b/src/core/lib/iomgr/tcp_server_posix.cc @@ -429,13 +429,13 @@ static void on_read(void* arg, grpc_error_handle err) { auto listener_addr_uri = grpc_sockaddr_to_uri(&sp->addr); gpr_log( GPR_ERROR, - "Failed getpeername: %s. This is a critical failure, the " - "listener on %s:%d is shutting down.", + "Failed getpeername: %s. Dropping the connection, and continuing " + "to listen on %s:%d.", grpc_core::StrError(errno).c_str(), listener_addr_uri.ok() ? listener_addr_uri->c_str() : "", sp->port); close(fd); - goto error; + continue; } } diff --git a/src/core/load_balancing/address_filtering.h b/src/core/load_balancing/address_filtering.h index 1f39f5d6cc9..d81d5cacbbb 100644 --- a/src/core/load_balancing/address_filtering.h +++ b/src/core/load_balancing/address_filtering.h @@ -29,7 +29,7 @@ #include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/gprpp/ref_counted_string.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" // The resolver returns a flat list of addresses. When a hierarchy of // LB policies is in use, each leaf of the hierarchy will need a diff --git a/src/core/load_balancing/endpoint_list.cc b/src/core/load_balancing/endpoint_list.cc index 10f5151ff94..73399d7e125 100644 --- a/src/core/load_balancing/endpoint_list.cc +++ b/src/core/load_balancing/endpoint_list.cc @@ -43,7 +43,7 @@ #include "src/core/load_balancing/delegating_helper.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_registry.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/load_balancing/endpoint_list.h b/src/core/load_balancing/endpoint_list.h index f56027f88f7..2c842fe32fb 100644 --- a/src/core/load_balancing/endpoint_list.h +++ b/src/core/load_balancing/endpoint_list.h @@ -39,7 +39,7 @@ #include "src/core/lib/iomgr/resolved_address.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/load_balancing/grpclb/grpclb.cc b/src/core/load_balancing/grpclb/grpclb.cc index 812658ccde8..d4697e5d465 100644 --- a/src/core/load_balancing/grpclb/grpclb.cc +++ b/src/core/load_balancing/grpclb/grpclb.cc @@ -94,12 +94,6 @@ #include #include "src/core/ext/filters/client_channel/client_channel.h" -#include "src/core/load_balancing/child_policy_handler.h" -#include "src/core/load_balancing/grpclb/client_load_reporting_filter.h" -#include "src/core/load_balancing/grpclb/grpclb_balancer_addresses.h" -#include "src/core/load_balancing/grpclb/grpclb_client_stats.h" -#include "src/core/load_balancing/grpclb/load_balancer_api.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/backoff/backoff.h" #include "src/core/lib/channel/channel_args.h" @@ -128,13 +122,6 @@ #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_args.h" #include "src/core/lib/json/json_object_loader.h" -#include "src/core/load_balancing/delegating_helper.h" -#include "src/core/load_balancing/lb_policy.h" -#include "src/core/load_balancing/lb_policy_factory.h" -#include "src/core/load_balancing/lb_policy_registry.h" -#include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" #include "src/core/lib/security/credentials/credentials.h" #include "src/core/lib/slice/slice.h" #include "src/core/lib/slice/slice_string_helpers.h" @@ -143,6 +130,19 @@ #include "src/core/lib/surface/channel_stack_type.h" #include "src/core/lib/transport/connectivity_state.h" #include "src/core/lib/transport/metadata_batch.h" +#include "src/core/load_balancing/child_policy_handler.h" +#include "src/core/load_balancing/delegating_helper.h" +#include "src/core/load_balancing/grpclb/client_load_reporting_filter.h" +#include "src/core/load_balancing/grpclb/grpclb_balancer_addresses.h" +#include "src/core/load_balancing/grpclb/grpclb_client_stats.h" +#include "src/core/load_balancing/grpclb/load_balancer_api.h" +#include "src/core/load_balancing/lb_policy.h" +#include "src/core/load_balancing/lb_policy_factory.h" +#include "src/core/load_balancing/lb_policy_registry.h" +#include "src/core/load_balancing/subchannel_interface.h" +#include "src/core/resolver/fake/fake_resolver.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver.h" #define GRPC_GRPCLB_INITIAL_CONNECT_BACKOFF_SECONDS 1 #define GRPC_GRPCLB_RECONNECT_BACKOFF_MULTIPLIER 1.6 diff --git a/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h b/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h index cb6614fd17f..bb9d67885d3 100644 --- a/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h +++ b/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h @@ -22,7 +22,7 @@ #include #include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/load_balancing/lb_policy.h b/src/core/load_balancing/lb_policy.h index 9224e1e61d2..54d30446ae5 100644 --- a/src/core/load_balancing/lb_policy.h +++ b/src/core/load_balancing/lb_policy.h @@ -51,7 +51,7 @@ #include "src/core/lib/iomgr/iomgr_fwd.h" #include "src/core/lib/iomgr/resolved_address.h" #include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/load_balancing/outlier_detection/outlier_detection.cc b/src/core/load_balancing/outlier_detection/outlier_detection.cc index 14da92d770e..5318356d39d 100644 --- a/src/core/load_balancing/outlier_detection/outlier_detection.cc +++ b/src/core/load_balancing/outlier_detection/outlier_detection.cc @@ -65,13 +65,13 @@ #include "src/core/lib/iomgr/pollset_set.h" #include "src/core/lib/iomgr/resolved_address.h" #include "src/core/lib/json/json.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/delegating_helper.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/lb_policy_registry.h" #include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/load_balancing/pick_first/pick_first.cc b/src/core/load_balancing/pick_first/pick_first.cc index 91a654f1ede..9d3733ddbed 100644 --- a/src/core/load_balancing/pick_first/pick_first.cc +++ b/src/core/load_balancing/pick_first/pick_first.cc @@ -60,11 +60,11 @@ #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_args.h" #include "src/core/lib/json/json_object_loader.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/load_balancing/pick_first/pick_first.h b/src/core/load_balancing/pick_first/pick_first.h index 0bbfee66c7a..5b40c0fa3a0 100644 --- a/src/core/load_balancing/pick_first/pick_first.h +++ b/src/core/load_balancing/pick_first/pick_first.h @@ -19,7 +19,7 @@ #include -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" // Internal channel arg to enable health checking in pick_first. // Intended to be used by petiole policies (e.g., round_robin) that diff --git a/src/core/load_balancing/priority/priority.cc b/src/core/load_balancing/priority/priority.cc index 4cbf19d9cd3..e6a77772ffc 100644 --- a/src/core/load_balancing/priority/priority.cc +++ b/src/core/load_balancing/priority/priority.cc @@ -56,12 +56,12 @@ #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_args.h" #include "src/core/lib/json/json_object_loader.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/delegating_helper.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/lb_policy_registry.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/load_balancing/ring_hash/ring_hash.cc b/src/core/load_balancing/ring_hash/ring_hash.cc index 7958e098290..f6b403b03dc 100644 --- a/src/core/load_balancing/ring_hash/ring_hash.cc +++ b/src/core/load_balancing/ring_hash/ring_hash.cc @@ -62,12 +62,12 @@ #include "src/core/lib/iomgr/pollset_set.h" #include "src/core/lib/iomgr/resolved_address.h" #include "src/core/lib/json/json.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/delegating_helper.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/lb_policy_registry.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/load_balancing/rls/rls.cc b/src/core/load_balancing/rls/rls.cc index 62429272509..e5f895eae73 100644 --- a/src/core/load_balancing/rls/rls.cc +++ b/src/core/load_balancing/rls/rls.cc @@ -87,12 +87,6 @@ #include "src/core/lib/json/json_args.h" #include "src/core/lib/json/json_object_loader.h" #include "src/core/lib/json/json_writer.h" -#include "src/core/load_balancing/delegating_helper.h" -#include "src/core/load_balancing/lb_policy.h" -#include "src/core/load_balancing/lb_policy_factory.h" -#include "src/core/load_balancing/lb_policy_registry.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "src/core/lib/service_config/service_config_impl.h" #include "src/core/lib/slice/slice.h" @@ -101,6 +95,12 @@ #include "src/core/lib/surface/channel.h" #include "src/core/lib/transport/connectivity_state.h" #include "src/core/lib/transport/error_utils.h" +#include "src/core/load_balancing/delegating_helper.h" +#include "src/core/load_balancing/lb_policy.h" +#include "src/core/load_balancing/lb_policy_factory.h" +#include "src/core/load_balancing/lb_policy_registry.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver_registry.h" #include "src/proto/grpc/lookup/v1/rls.upb.h" namespace grpc_core { diff --git a/src/core/load_balancing/round_robin/round_robin.cc b/src/core/load_balancing/round_robin/round_robin.cc index 0f2863d6a20..66065aa06bf 100644 --- a/src/core/load_balancing/round_robin/round_robin.cc +++ b/src/core/load_balancing/round_robin/round_robin.cc @@ -48,12 +48,12 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/work_serializer.h" #include "src/core/lib/json/json.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/server_address.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/server_address.h" namespace grpc_core { diff --git a/src/core/load_balancing/subchannel_list.h b/src/core/load_balancing/subchannel_list.h index 71a59015787..da9e35272a6 100644 --- a/src/core/load_balancing/subchannel_list.h +++ b/src/core/load_balancing/subchannel_list.h @@ -40,11 +40,11 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/work_serializer.h" #include "src/core/lib/iomgr/iomgr_fwd.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/server_address.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/server_address.h" // Code for maintaining a list of subchannels within an LB policy. // diff --git a/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc b/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc index 6cafea50c1c..d52e3d95908 100644 --- a/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +++ b/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc @@ -71,12 +71,12 @@ #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_args.h" #include "src/core/lib/json/json_object_loader.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/server_address.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/server_address.h" namespace grpc_core { diff --git a/src/core/load_balancing/weighted_target/weighted_target.cc b/src/core/load_balancing/weighted_target/weighted_target.cc index ca50b79bd66..fe951c308ca 100644 --- a/src/core/load_balancing/weighted_target/weighted_target.cc +++ b/src/core/load_balancing/weighted_target/weighted_target.cc @@ -57,12 +57,12 @@ #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_args.h" #include "src/core/lib/json/json_object_loader.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/delegating_helper.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/lb_policy_registry.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" // IWYU pragma: no_include diff --git a/src/core/load_balancing/xds/cds.cc b/src/core/load_balancing/xds/cds.cc index d30724fd275..61883499a33 100644 --- a/src/core/load_balancing/xds/cds.cc +++ b/src/core/load_balancing/xds/cds.cc @@ -40,7 +40,6 @@ #include "src/core/load_balancing/address_filtering.h" #include "src/core/load_balancing/outlier_detection/outlier_detection.h" #include "src/core/load_balancing/xds/xds_channel_args.h" -#include "src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h" #include "src/core/ext/xds/xds_cluster.h" #include "src/core/ext/xds/xds_common_types.h" #include "src/core/ext/xds/xds_health_status.h" @@ -64,6 +63,7 @@ #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/lb_policy_registry.h" +#include "src/core/resolver/xds/xds_dependency_manager.h" namespace grpc_core { diff --git a/src/core/load_balancing/xds/xds_channel_args.h b/src/core/load_balancing/xds/xds_channel_args.h index 8f47a0796a9..bafc59ffd1d 100644 --- a/src/core/load_balancing/xds/xds_channel_args.h +++ b/src/core/load_balancing/xds/xds_channel_args.h @@ -19,7 +19,7 @@ #include -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" // Channel arg indicating the xDS cluster name. // Set by xds_cluster_impl LB policy and used by GoogleDefaultCredentials. diff --git a/src/core/load_balancing/xds/xds_cluster_impl.cc b/src/core/load_balancing/xds/xds_cluster_impl.cc index 5fab4494a80..8650f4de5e4 100644 --- a/src/core/load_balancing/xds/xds_cluster_impl.cc +++ b/src/core/load_balancing/xds/xds_cluster_impl.cc @@ -41,7 +41,6 @@ #include "src/core/load_balancing/backend_metric_data.h" #include "src/core/load_balancing/child_policy_handler.h" #include "src/core/load_balancing/xds/xds_channel_args.h" -#include "src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h" #include "src/core/ext/xds/xds_bootstrap.h" #include "src/core/ext/xds/xds_bootstrap_grpc.h" #include "src/core/ext/xds/xds_client.h" @@ -62,14 +61,15 @@ #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_args.h" #include "src/core/lib/json/json_object_loader.h" +#include "src/core/lib/security/credentials/xds/xds_credentials.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/delegating_helper.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/lb_policy_registry.h" #include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/security/credentials/xds/xds_credentials.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/xds/xds_dependency_manager.h" namespace grpc_core { diff --git a/src/core/load_balancing/xds/xds_cluster_manager.cc b/src/core/load_balancing/xds/xds_cluster_manager.cc index 2693c61c9fd..c52e464fd71 100644 --- a/src/core/load_balancing/xds/xds_cluster_manager.cc +++ b/src/core/load_balancing/xds/xds_cluster_manager.cc @@ -40,7 +40,6 @@ #include "src/core/ext/filters/client_channel/client_channel_internal.h" #include "src/core/load_balancing/child_policy_handler.h" -#include "src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/config/core_configuration.h" #include "src/core/lib/debug/trace.h" @@ -55,12 +54,13 @@ #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_args.h" #include "src/core/lib/json/json_object_loader.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/delegating_helper.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/lb_policy_registry.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/xds/xds_resolver_attributes.h" namespace grpc_core { diff --git a/src/core/load_balancing/xds/xds_override_host.cc b/src/core/load_balancing/xds/xds_override_host.cc index 698a2af62c0..ffe13949117 100644 --- a/src/core/load_balancing/xds/xds_override_host.cc +++ b/src/core/load_balancing/xds/xds_override_host.cc @@ -49,7 +49,6 @@ #include "src/core/ext/filters/client_channel/client_channel_internal.h" #include "src/core/load_balancing/child_policy_handler.h" -#include "src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h" #include "src/core/ext/filters/stateful_session/stateful_session_filter.h" #include "src/core/ext/xds/xds_health_status.h" #include "src/core/lib/address_utils/parse_address.h" @@ -75,13 +74,14 @@ #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_args.h" #include "src/core/lib/json/json_object_loader.h" +#include "src/core/lib/transport/connectivity_state.h" #include "src/core/load_balancing/delegating_helper.h" #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/lb_policy_registry.h" #include "src/core/load_balancing/subchannel_interface.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/xds/xds_dependency_manager.h" namespace grpc_core { diff --git a/src/core/load_balancing/xds/xds_wrr_locality.cc b/src/core/load_balancing/xds/xds_wrr_locality.cc index cf32f2082f8..b5bb19172f8 100644 --- a/src/core/load_balancing/xds/xds_wrr_locality.cc +++ b/src/core/load_balancing/xds/xds_wrr_locality.cc @@ -50,7 +50,7 @@ #include "src/core/load_balancing/lb_policy.h" #include "src/core/load_balancing/lb_policy_factory.h" #include "src/core/load_balancing/lb_policy_registry.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/src/core/ext/filters/client_channel/resolver/.clang-format b/src/core/resolver/.clang-format similarity index 100% rename from src/core/ext/filters/client_channel/resolver/.clang-format rename to src/core/resolver/.clang-format diff --git a/src/core/ext/filters/client_channel/resolver/README.md b/src/core/resolver/README.md similarity index 100% rename from src/core/ext/filters/client_channel/resolver/README.md rename to src/core/resolver/README.md diff --git a/src/core/ext/filters/client_channel/resolver/binder/README.md b/src/core/resolver/binder/README.md similarity index 100% rename from src/core/ext/filters/client_channel/resolver/binder/README.md rename to src/core/resolver/binder/README.md diff --git a/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc b/src/core/resolver/binder/binder_resolver.cc similarity index 96% rename from src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc rename to src/core/resolver/binder/binder_resolver.cc index 15d7ec1eaca..5f1916958a6 100644 --- a/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +++ b/src/core/resolver/binder/binder_resolver.cc @@ -42,9 +42,9 @@ #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" #include "src/core/lib/uri/uri_parser.h" namespace grpc_core { diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc b/src/core/resolver/dns/c_ares/dns_resolver_ares.cc similarity index 98% rename from src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc rename to src/core/resolver/dns/c_ares/dns_resolver_ares.cc index 81d7eed6c76..400816bcabd 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +++ b/src/core/resolver/dns/c_ares/dns_resolver_ares.cc @@ -37,7 +37,7 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h" +#include "src/core/resolver/dns/event_engine/service_config_helper.h" #include "src/core/lib/config/core_configuration.h" #include "src/core/lib/debug/trace.h" #include "src/core/lib/gprpp/debug_location.h" @@ -51,8 +51,8 @@ #include "src/core/lib/iomgr/iomgr_fwd.h" #include "src/core/lib/iomgr/pollset_set.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" #include "src/core/lib/service_config/service_config.h" #include "src/core/lib/uri/uri_parser.h" @@ -62,16 +62,16 @@ #include "absl/strings/str_cat.h" -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" -#include "src/core/ext/filters/client_channel/resolver/polling_resolver.h" #include "src/core/lib/backoff/backoff.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/config/config_vars.h" #include "src/core/lib/iomgr/resolve_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" #include "src/core/lib/service_config/service_config_impl.h" #include "src/core/lib/transport/error_utils.h" #include "src/core/load_balancing/grpclb/grpclb_balancer_addresses.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/polling_resolver.h" #define GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS 1 #define GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER 1.6 diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h b/src/core/resolver/dns/c_ares/dns_resolver_ares.h similarity index 76% rename from src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h rename to src/core/resolver/dns/c_ares/dns_resolver_ares.h index 5b80fe5db40..5660361545e 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +++ b/src/core/resolver/dns/c_ares/dns_resolver_ares.h @@ -11,8 +11,8 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_DNS_RESOLVER_ARES_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_DNS_RESOLVER_ARES_H +#ifndef GRPC_SRC_CORE_RESOLVER_DNS_C_ARES_DNS_RESOLVER_ARES_H +#define GRPC_SRC_CORE_RESOLVER_DNS_C_ARES_DNS_RESOLVER_ARES_H #include @@ -27,4 +27,4 @@ void RegisterAresDnsResolver(CoreConfiguration::Builder*); } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_DNS_RESOLVER_ARES_H +#endif // GRPC_SRC_CORE_RESOLVER_DNS_C_ARES_DNS_RESOLVER_ARES_H diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h similarity index 90% rename from src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h rename to src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h index 5daa687d803..9627cef9ccd 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +++ b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h @@ -16,8 +16,8 @@ // // -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_GRPC_ARES_EV_DRIVER_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_GRPC_ARES_EV_DRIVER_H +#ifndef GRPC_SRC_CORE_RESOLVER_DNS_C_ARES_GRPC_ARES_EV_DRIVER_H +#define GRPC_SRC_CORE_RESOLVER_DNS_C_ARES_GRPC_ARES_EV_DRIVER_H #include @@ -27,7 +27,7 @@ #include "absl/base/thread_annotations.h" -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/gprpp/sync.h" #include "src/core/lib/iomgr/closure.h" #include "src/core/lib/iomgr/error.h" @@ -87,4 +87,4 @@ std::unique_ptr NewGrpcPolledFdFactory(Mutex* mu); } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_GRPC_ARES_EV_DRIVER_H +#endif // GRPC_SRC_CORE_RESOLVER_DNS_C_ARES_GRPC_ARES_EV_DRIVER_H diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc similarity index 97% rename from src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc rename to src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc index 79deb800fb8..6e6c2bd62e6 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +++ b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc @@ -40,8 +40,8 @@ #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h" -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/gprpp/sync.h" #include "src/core/lib/iomgr/closure.h" #include "src/core/lib/iomgr/error.h" diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc similarity index 99% rename from src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc rename to src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc index ad1d73fb45a..9969e95546f 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +++ b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc @@ -37,8 +37,8 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h" -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/gprpp/crash.h" diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc b/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc similarity index 99% rename from src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc rename to src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc index 14dcc8814ed..e1abc64b95f 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +++ b/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc @@ -57,8 +57,8 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h" -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/channel/channel_args.h" diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h b/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h similarity index 94% rename from src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h rename to src/core/resolver/dns/c_ares/grpc_ares_wrapper.h index 3849579cebb..122e727b65f 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +++ b/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h @@ -16,8 +16,8 @@ // // -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_GRPC_ARES_WRAPPER_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_GRPC_ARES_WRAPPER_H +#ifndef GRPC_SRC_CORE_RESOLVER_DNS_C_ARES_GRPC_ARES_WRAPPER_H +#define GRPC_SRC_CORE_RESOLVER_DNS_C_ARES_GRPC_ARES_WRAPPER_H #include @@ -36,7 +36,7 @@ #include "src/core/lib/iomgr/closure.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/iomgr/iomgr_fwd.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" #define GRPC_DNS_ARES_DEFAULT_QUERY_TIMEOUT_MS 120000 @@ -137,4 +137,4 @@ extern void (*grpc_ares_test_only_inject_config)(ares_channel* channel); // Exposed in this header for C-core tests only extern bool g_grpc_ares_test_only_force_tcp; -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_GRPC_ARES_WRAPPER_H +#endif // GRPC_SRC_CORE_RESOLVER_DNS_C_ARES_GRPC_ARES_WRAPPER_H diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc b/src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc similarity index 91% rename from src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc rename to src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc index db9c30208c3..9f6290eba57 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +++ b/src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc @@ -21,7 +21,7 @@ #include "src/core/lib/iomgr/port.h" #if GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER) -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/iomgr/socket_utils_posix.h" bool grpc_ares_query_ipv6() { return grpc_ipv6_loopback_available(); } diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc b/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc similarity index 88% rename from src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc rename to src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc index 6c8a0ea65ac..849c6b11ec3 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +++ b/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc @@ -24,11 +24,11 @@ #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/iomgr/socket_windows.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" bool grpc_ares_query_ipv6() { return grpc_ipv6_loopback_available(); } diff --git a/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc b/src/core/resolver/dns/dns_resolver_plugin.cc similarity index 83% rename from src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc rename to src/core/resolver/dns/dns_resolver_plugin.cc index 790e393f6e0..81b411024d7 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +++ b/src/core/resolver/dns/dns_resolver_plugin.cc @@ -13,7 +13,7 @@ // limitations under the License. #include -#include "src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h" +#include "src/core/resolver/dns/dns_resolver_plugin.h" #include @@ -21,13 +21,13 @@ #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h" -#include "src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h" -#include "src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h" +#include "src/core/resolver/dns/c_ares/dns_resolver_ares.h" +#include "src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h" +#include "src/core/resolver/dns/native/dns_resolver.h" #include "src/core/lib/config/config_vars.h" #include "src/core/lib/experiments/experiments.h" #include "src/core/lib/gprpp/crash.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/resolver_factory.h" namespace grpc_core { diff --git a/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h b/src/core/resolver/dns/dns_resolver_plugin.h similarity index 77% rename from src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h rename to src/core/resolver/dns/dns_resolver_plugin.h index 97318f12c6c..a9025f741f5 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h +++ b/src/core/resolver/dns/dns_resolver_plugin.h @@ -11,8 +11,8 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_DNS_RESOLVER_PLUGIN_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_DNS_RESOLVER_PLUGIN_H +#ifndef GRPC_SRC_CORE_RESOLVER_DNS_DNS_RESOLVER_PLUGIN_H +#define GRPC_SRC_CORE_RESOLVER_DNS_DNS_RESOLVER_PLUGIN_H #include #include "src/core/lib/config/core_configuration.h" @@ -24,4 +24,4 @@ void RegisterDnsResolver(CoreConfiguration::Builder* builder); } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_DNS_RESOLVER_PLUGIN_H +#endif // GRPC_SRC_CORE_RESOLVER_DNS_DNS_RESOLVER_PLUGIN_H diff --git a/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc b/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc similarity index 98% rename from src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc rename to src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc index 309acf50a7c..14ef76734a0 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +++ b/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc @@ -13,7 +13,7 @@ // limitations under the License. #include -#include "src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h" +#include "src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h" #include #include @@ -38,8 +38,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h" -#include "src/core/ext/filters/client_channel/resolver/polling_resolver.h" #include "src/core/lib/backoff/backoff.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/debug/trace.h" @@ -51,12 +49,14 @@ #include "src/core/lib/gprpp/validation_errors.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/resolve_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" #include "src/core/lib/service_config/service_config.h" #include "src/core/lib/service_config/service_config_impl.h" #include "src/core/load_balancing/grpclb/grpclb_balancer_addresses.h" +#include "src/core/resolver/dns/event_engine/service_config_helper.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/polling_resolver.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" // IWYU pragma: no_include diff --git a/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h b/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h similarity index 71% rename from src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h rename to src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h index 665b4781787..57492bf9677 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +++ b/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h @@ -11,15 +11,15 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_EVENT_ENGINE_EVENT_ENGINE_CLIENT_CHANNEL_RESOLVER_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_EVENT_ENGINE_EVENT_ENGINE_CLIENT_CHANNEL_RESOLVER_H +#ifndef GRPC_SRC_CORE_RESOLVER_DNS_EVENT_ENGINE_EVENT_ENGINE_CLIENT_CHANNEL_RESOLVER_H +#define GRPC_SRC_CORE_RESOLVER_DNS_EVENT_ENGINE_EVENT_ENGINE_CLIENT_CHANNEL_RESOLVER_H #include #include "absl/strings/string_view.h" #include "src/core/lib/gprpp/orphanable.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" #include "src/core/lib/uri/uri_parser.h" namespace grpc_core { @@ -32,4 +32,4 @@ class EventEngineClientChannelDNSResolverFactory : public ResolverFactory { } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_EVENT_ENGINE_EVENT_ENGINE_CLIENT_CHANNEL_RESOLVER_H +#endif // GRPC_SRC_CORE_RESOLVER_DNS_EVENT_ENGINE_EVENT_ENGINE_CLIENT_CHANNEL_RESOLVER_H diff --git a/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc b/src/core/resolver/dns/event_engine/service_config_helper.cc similarity index 97% rename from src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc rename to src/core/resolver/dns/event_engine/service_config_helper.cc index fff78c86623..7d3dcb4d389 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +++ b/src/core/resolver/dns/event_engine/service_config_helper.cc @@ -13,7 +13,7 @@ // limitations under the License. #include -#include "src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h" +#include "src/core/resolver/dns/event_engine/service_config_helper.h" #include diff --git a/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h b/src/core/resolver/dns/event_engine/service_config_helper.h similarity index 74% rename from src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h rename to src/core/resolver/dns/event_engine/service_config_helper.h index cbb7f5e9aa6..5c89aa5e1e4 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +++ b/src/core/resolver/dns/event_engine/service_config_helper.h @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_EVENT_ENGINE_SERVICE_CONFIG_HELPER_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_EVENT_ENGINE_SERVICE_CONFIG_HELPER_H +#ifndef GRPC_SRC_CORE_RESOLVER_DNS_EVENT_ENGINE_SERVICE_CONFIG_HELPER_H +#define GRPC_SRC_CORE_RESOLVER_DNS_EVENT_ENGINE_SERVICE_CONFIG_HELPER_H #include @@ -29,4 +29,4 @@ absl::StatusOr ChooseServiceConfig( } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_EVENT_ENGINE_SERVICE_CONFIG_HELPER_H +#endif // GRPC_SRC_CORE_RESOLVER_DNS_EVENT_ENGINE_SERVICE_CONFIG_HELPER_H diff --git a/src/core/ext/filters/client_channel/resolver/dns/native/README.md b/src/core/resolver/dns/native/README.md similarity index 100% rename from src/core/ext/filters/client_channel/resolver/dns/native/README.md rename to src/core/resolver/dns/native/README.md diff --git a/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc b/src/core/resolver/dns/native/dns_resolver.cc similarity index 96% rename from src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc rename to src/core/resolver/dns/native/dns_resolver.cc index 158bd63c3f9..9ee003c81b9 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +++ b/src/core/resolver/dns/native/dns_resolver.cc @@ -32,7 +32,7 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/polling_resolver.h" +#include "src/core/resolver/polling_resolver.h" #include "src/core/lib/backoff/backoff.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/config/core_configuration.h" @@ -43,9 +43,9 @@ #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" #include "src/core/lib/uri/uri_parser.h" #define GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS 1 diff --git a/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h b/src/core/resolver/dns/native/dns_resolver.h similarity index 75% rename from src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h rename to src/core/resolver/dns/native/dns_resolver.h index 5ab6fb4c8a7..84e13036020 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +++ b/src/core/resolver/dns/native/dns_resolver.h @@ -11,8 +11,8 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_NATIVE_DNS_RESOLVER_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_NATIVE_DNS_RESOLVER_H +#ifndef GRPC_SRC_CORE_RESOLVER_DNS_NATIVE_DNS_RESOLVER_H +#define GRPC_SRC_CORE_RESOLVER_DNS_NATIVE_DNS_RESOLVER_H #include #include "src/core/lib/config/core_configuration.h" @@ -21,4 +21,4 @@ namespace grpc_core { void RegisterNativeDnsResolver(CoreConfiguration::Builder* builder); } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_NATIVE_DNS_RESOLVER_H +#endif // GRPC_SRC_CORE_RESOLVER_DNS_NATIVE_DNS_RESOLVER_H diff --git a/src/core/lib/resolver/endpoint_addresses.cc b/src/core/resolver/endpoint_addresses.cc similarity index 98% rename from src/core/lib/resolver/endpoint_addresses.cc rename to src/core/resolver/endpoint_addresses.cc index 7b5f4c0a329..b474876020e 100644 --- a/src/core/lib/resolver/endpoint_addresses.cc +++ b/src/core/resolver/endpoint_addresses.cc @@ -18,7 +18,7 @@ #include -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" #include diff --git a/src/core/lib/resolver/endpoint_addresses.h b/src/core/resolver/endpoint_addresses.h similarity index 96% rename from src/core/lib/resolver/endpoint_addresses.h rename to src/core/resolver/endpoint_addresses.h index 5746df19c5b..5c9fdf956dd 100644 --- a/src/core/lib/resolver/endpoint_addresses.h +++ b/src/core/resolver/endpoint_addresses.h @@ -16,8 +16,8 @@ // // -#ifndef GRPC_SRC_CORE_LIB_RESOLVER_ENDPOINT_ADDRESSES_H -#define GRPC_SRC_CORE_LIB_RESOLVER_ENDPOINT_ADDRESSES_H +#ifndef GRPC_SRC_CORE_RESOLVER_ENDPOINT_ADDRESSES_H +#define GRPC_SRC_CORE_RESOLVER_ENDPOINT_ADDRESSES_H #include @@ -161,4 +161,4 @@ class SingleEndpointIterator : public EndpointAddressesIterator { } // namespace grpc_core -#endif // GRPC_SRC_CORE_LIB_RESOLVER_ENDPOINT_ADDRESSES_H +#endif // GRPC_SRC_CORE_RESOLVER_ENDPOINT_ADDRESSES_H diff --git a/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc b/src/core/resolver/fake/fake_resolver.cc similarity index 98% rename from src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc rename to src/core/resolver/fake/fake_resolver.cc index b054f6e4771..713df2ad595 100644 --- a/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +++ b/src/core/resolver/fake/fake_resolver.cc @@ -19,7 +19,7 @@ #include -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" +#include "src/core/resolver/fake/fake_resolver.h" #include #include @@ -35,7 +35,7 @@ #include "src/core/lib/gprpp/debug_location.h" #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/work_serializer.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/resolver_factory.h" #include "src/core/lib/uri/uri_parser.h" namespace grpc_core { diff --git a/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h b/src/core/resolver/fake/fake_resolver.h similarity index 94% rename from src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h rename to src/core/resolver/fake/fake_resolver.h index 0a39dd42354..3a878233f2a 100644 --- a/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +++ b/src/core/resolver/fake/fake_resolver.h @@ -14,8 +14,8 @@ // limitations under the License. // -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_FAKE_FAKE_RESOLVER_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_FAKE_FAKE_RESOLVER_H +#ifndef GRPC_SRC_CORE_RESOLVER_FAKE_FAKE_RESOLVER_H +#define GRPC_SRC_CORE_RESOLVER_FAKE_FAKE_RESOLVER_H #include @@ -33,7 +33,7 @@ #include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" -#include "src/core/lib/resolver/resolver.h" +#include "src/core/resolver/resolver.h" #define GRPC_ARG_FAKE_RESOLVER_RESPONSE_GENERATOR \ "grpc.fake_resolver.response_generator" @@ -126,4 +126,4 @@ class FakeResolverResponseGenerator } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_FAKE_FAKE_RESOLVER_H +#endif // GRPC_SRC_CORE_RESOLVER_FAKE_FAKE_RESOLVER_H diff --git a/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc b/src/core/resolver/google_c2p/google_c2p_resolver.cc similarity index 98% rename from src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc rename to src/core/resolver/google_c2p/google_c2p_resolver.cc index e868255570a..657ac27e35d 100644 --- a/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +++ b/src/core/resolver/google_c2p/google_c2p_resolver.cc @@ -46,9 +46,9 @@ #include "src/core/lib/iomgr/polling_entity.h" #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_writer.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" -#include "src/core/lib/resolver/resolver_registry.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" +#include "src/core/resolver/resolver_registry.h" #include "src/core/lib/resource_quota/resource_quota.h" #include "src/core/lib/security/credentials/alts/check_gcp_environment.h" #include "src/core/lib/uri/uri_parser.h" diff --git a/src/core/ext/filters/client_channel/resolver/polling_resolver.cc b/src/core/resolver/polling_resolver.cc similarity index 98% rename from src/core/ext/filters/client_channel/resolver/polling_resolver.cc rename to src/core/resolver/polling_resolver.cc index e8d81e91808..01956a2c8e1 100644 --- a/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +++ b/src/core/resolver/polling_resolver.cc @@ -16,7 +16,7 @@ #include -#include "src/core/ext/filters/client_channel/resolver/polling_resolver.h" +#include "src/core/resolver/polling_resolver.h" #include @@ -38,7 +38,7 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/work_serializer.h" #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" #include "src/core/lib/service_config/service_config.h" #include "src/core/lib/uri/uri_parser.h" diff --git a/src/core/ext/filters/client_channel/resolver/polling_resolver.h b/src/core/resolver/polling_resolver.h similarity index 92% rename from src/core/ext/filters/client_channel/resolver/polling_resolver.h rename to src/core/resolver/polling_resolver.h index c214387c2cc..961ec493225 100644 --- a/src/core/ext/filters/client_channel/resolver/polling_resolver.h +++ b/src/core/resolver/polling_resolver.h @@ -14,8 +14,8 @@ // limitations under the License. // -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_POLLING_RESOLVER_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_POLLING_RESOLVER_H +#ifndef GRPC_SRC_CORE_RESOLVER_POLLING_RESOLVER_H +#define GRPC_SRC_CORE_RESOLVER_POLLING_RESOLVER_H #include @@ -34,8 +34,8 @@ #include "src/core/lib/gprpp/time.h" #include "src/core/lib/gprpp/work_serializer.h" #include "src/core/lib/iomgr/iomgr_fwd.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" namespace grpc_core { @@ -118,4 +118,4 @@ class PollingResolver : public Resolver { } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_POLLING_RESOLVER_H +#endif // GRPC_SRC_CORE_RESOLVER_POLLING_RESOLVER_H diff --git a/src/core/lib/resolver/resolver.cc b/src/core/resolver/resolver.cc similarity index 95% rename from src/core/lib/resolver/resolver.cc rename to src/core/resolver/resolver.cc index df303f3d337..c1135731ea8 100644 --- a/src/core/lib/resolver/resolver.cc +++ b/src/core/resolver/resolver.cc @@ -18,7 +18,7 @@ #include -#include "src/core/lib/resolver/resolver.h" +#include "src/core/resolver/resolver.h" grpc_core::DebugOnlyTraceFlag grpc_trace_resolver_refcount(false, "resolver_refcount"); diff --git a/src/core/lib/resolver/resolver.h b/src/core/resolver/resolver.h similarity index 95% rename from src/core/lib/resolver/resolver.h rename to src/core/resolver/resolver.h index bfd48d61c87..de6379c83e8 100644 --- a/src/core/lib/resolver/resolver.h +++ b/src/core/resolver/resolver.h @@ -14,8 +14,8 @@ // limitations under the License. // -#ifndef GRPC_SRC_CORE_LIB_RESOLVER_RESOLVER_H -#define GRPC_SRC_CORE_LIB_RESOLVER_RESOLVER_H +#ifndef GRPC_SRC_CORE_RESOLVER_RESOLVER_H +#define GRPC_SRC_CORE_RESOLVER_RESOLVER_H #include @@ -29,8 +29,8 @@ #include "src/core/lib/debug/trace.h" #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/server_address.h" // IWYU pragma: keep +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/server_address.h" // IWYU pragma: keep #include "src/core/lib/service_config/service_config.h" extern grpc_core::DebugOnlyTraceFlag grpc_trace_resolver_refcount; @@ -136,4 +136,4 @@ class Resolver : public InternallyRefCounted { } // namespace grpc_core -#endif // GRPC_SRC_CORE_LIB_RESOLVER_RESOLVER_H +#endif // GRPC_SRC_CORE_RESOLVER_RESOLVER_H diff --git a/src/core/lib/resolver/resolver_factory.h b/src/core/resolver/resolver_factory.h similarity index 92% rename from src/core/lib/resolver/resolver_factory.h rename to src/core/resolver/resolver_factory.h index ac002319ed9..889c50190a5 100644 --- a/src/core/lib/resolver/resolver_factory.h +++ b/src/core/resolver/resolver_factory.h @@ -14,8 +14,8 @@ // limitations under the License. // -#ifndef GRPC_SRC_CORE_LIB_RESOLVER_RESOLVER_FACTORY_H -#define GRPC_SRC_CORE_LIB_RESOLVER_RESOLVER_FACTORY_H +#ifndef GRPC_SRC_CORE_RESOLVER_RESOLVER_FACTORY_H +#define GRPC_SRC_CORE_RESOLVER_RESOLVER_FACTORY_H #include @@ -28,7 +28,7 @@ #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/iomgr/iomgr_fwd.h" -#include "src/core/lib/resolver/resolver.h" +#include "src/core/resolver/resolver.h" #include "src/core/lib/uri/uri_parser.h" namespace grpc_core { @@ -75,4 +75,4 @@ class ResolverFactory { } // namespace grpc_core -#endif // GRPC_SRC_CORE_LIB_RESOLVER_RESOLVER_FACTORY_H +#endif // GRPC_SRC_CORE_RESOLVER_RESOLVER_FACTORY_H diff --git a/src/core/lib/resolver/resolver_registry.cc b/src/core/resolver/resolver_registry.cc similarity index 98% rename from src/core/lib/resolver/resolver_registry.cc rename to src/core/resolver/resolver_registry.cc index 821b71d4050..1edc210ccb9 100644 --- a/src/core/lib/resolver/resolver_registry.cc +++ b/src/core/resolver/resolver_registry.cc @@ -16,7 +16,7 @@ #include -#include "src/core/lib/resolver/resolver_registry.h" +#include "src/core/resolver/resolver_registry.h" #include "absl/status/status.h" #include "absl/status/statusor.h" diff --git a/src/core/lib/resolver/resolver_registry.h b/src/core/resolver/resolver_registry.h similarity index 94% rename from src/core/lib/resolver/resolver_registry.h rename to src/core/resolver/resolver_registry.h index 3432f5edef5..75d4b6f5789 100644 --- a/src/core/lib/resolver/resolver_registry.h +++ b/src/core/resolver/resolver_registry.h @@ -14,8 +14,8 @@ // limitations under the License. // -#ifndef GRPC_SRC_CORE_LIB_RESOLVER_RESOLVER_REGISTRY_H -#define GRPC_SRC_CORE_LIB_RESOLVER_RESOLVER_REGISTRY_H +#ifndef GRPC_SRC_CORE_RESOLVER_RESOLVER_REGISTRY_H +#define GRPC_SRC_CORE_RESOLVER_RESOLVER_REGISTRY_H #include @@ -29,8 +29,8 @@ #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/iomgr/iomgr_fwd.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" #include "src/core/lib/uri/uri_parser.h" namespace grpc_core { @@ -120,4 +120,4 @@ class ResolverRegistry { } // namespace grpc_core -#endif // GRPC_SRC_CORE_LIB_RESOLVER_RESOLVER_REGISTRY_H +#endif // GRPC_SRC_CORE_RESOLVER_RESOLVER_REGISTRY_H diff --git a/src/core/lib/resolver/server_address.h b/src/core/resolver/server_address.h similarity index 80% rename from src/core/lib/resolver/server_address.h rename to src/core/resolver/server_address.h index a7d39481e63..b823064ef85 100644 --- a/src/core/lib/resolver/server_address.h +++ b/src/core/resolver/server_address.h @@ -16,12 +16,12 @@ // // -#ifndef GRPC_SRC_CORE_LIB_RESOLVER_SERVER_ADDRESS_H -#define GRPC_SRC_CORE_LIB_RESOLVER_SERVER_ADDRESS_H +#ifndef GRPC_SRC_CORE_RESOLVER_SERVER_ADDRESS_H +#define GRPC_SRC_CORE_RESOLVER_SERVER_ADDRESS_H #include -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { @@ -32,4 +32,4 @@ using ServerAddressList = EndpointAddressesList; } // namespace grpc_core -#endif // GRPC_SRC_CORE_LIB_RESOLVER_SERVER_ADDRESS_H +#endif // GRPC_SRC_CORE_RESOLVER_SERVER_ADDRESS_H diff --git a/src/core/ext/filters/client_channel/resolver/sockaddr/README.md b/src/core/resolver/sockaddr/README.md similarity index 100% rename from src/core/ext/filters/client_channel/resolver/sockaddr/README.md rename to src/core/resolver/sockaddr/README.md diff --git a/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc b/src/core/resolver/sockaddr/sockaddr_resolver.cc similarity index 97% rename from src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc rename to src/core/resolver/sockaddr/sockaddr_resolver.cc index 8bfd6b233fc..e95652c8b28 100644 --- a/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +++ b/src/core/resolver/sockaddr/sockaddr_resolver.cc @@ -33,9 +33,9 @@ #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/iomgr/port.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" #include "src/core/lib/uri/uri_parser.h" namespace grpc_core { diff --git a/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc b/src/core/resolver/xds/xds_dependency_manager.cc similarity index 99% rename from src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc rename to src/core/resolver/xds/xds_dependency_manager.cc index 03e4e975e95..35e18addade 100644 --- a/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc +++ b/src/core/resolver/xds/xds_dependency_manager.cc @@ -16,16 +16,16 @@ #include -#include "src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h" +#include "src/core/resolver/xds/xds_dependency_manager.h" #include "absl/strings/str_join.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" -#include "src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h" #include "src/core/ext/xds/xds_routing.h" #include "src/core/lib/config/core_configuration.h" #include "src/core/lib/gprpp/match.h" #include "src/core/load_balancing/xds/xds_channel_args.h" +#include "src/core/resolver/fake/fake_resolver.h" +#include "src/core/resolver/xds/xds_resolver_trace.h" namespace grpc_core { diff --git a/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h b/src/core/resolver/xds/xds_dependency_manager.h similarity index 97% rename from src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h rename to src/core/resolver/xds/xds_dependency_manager.h index f834715b671..91db088fb71 100644 --- a/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h +++ b/src/core/resolver/xds/xds_dependency_manager.h @@ -14,8 +14,8 @@ // limitations under the License. // -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_DEPENDENCY_MANAGER_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_DEPENDENCY_MANAGER_H +#ifndef GRPC_SRC_CORE_RESOLVER_XDS_XDS_DEPENDENCY_MANAGER_H +#define GRPC_SRC_CORE_RESOLVER_XDS_XDS_DEPENDENCY_MANAGER_H #include @@ -29,7 +29,7 @@ #include "src/core/ext/xds/xds_listener.h" #include "src/core/ext/xds/xds_route_config.h" #include "src/core/lib/gprpp/ref_counted.h" -#include "src/core/lib/resolver/resolver.h" +#include "src/core/resolver/resolver.h" namespace grpc_core { @@ -274,4 +274,4 @@ class XdsDependencyManager : public RefCounted, } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_DEPENDENCY_MANAGER_H +#endif // GRPC_SRC_CORE_RESOLVER_XDS_XDS_DEPENDENCY_MANAGER_H diff --git a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc b/src/core/resolver/xds/xds_resolver.cc similarity index 99% rename from src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc rename to src/core/resolver/xds/xds_resolver.cc index a94b8f53c2e..aff6f61f584 100644 --- a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +++ b/src/core/resolver/xds/xds_resolver.cc @@ -50,9 +50,6 @@ #include "src/core/ext/filters/client_channel/client_channel_internal.h" #include "src/core/ext/filters/client_channel/config_selector.h" -#include "src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h" -#include "src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h" -#include "src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h" #include "src/core/ext/xds/xds_bootstrap.h" #include "src/core/ext/xds/xds_bootstrap_grpc.h" #include "src/core/ext/xds/xds_client_grpc.h" @@ -82,9 +79,9 @@ #include "src/core/lib/iomgr/pollset_set.h" #include "src/core/lib/promise/arena_promise.h" #include "src/core/lib/promise/context.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/service_config/service_config.h" #include "src/core/lib/service_config/service_config_impl.h" @@ -93,6 +90,9 @@ #include "src/core/lib/transport/transport.h" #include "src/core/lib/uri/uri_parser.h" #include "src/core/load_balancing/ring_hash/ring_hash.h" +#include "src/core/resolver/xds/xds_dependency_manager.h" +#include "src/core/resolver/xds/xds_resolver_attributes.h" +#include "src/core/resolver/xds/xds_resolver_trace.h" namespace grpc_core { diff --git a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h b/src/core/resolver/xds/xds_resolver_attributes.h similarity index 86% rename from src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h rename to src/core/resolver/xds/xds_resolver_attributes.h index f8b8c838f8e..cfe833db798 100644 --- a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h +++ b/src/core/resolver/xds/xds_resolver_attributes.h @@ -14,8 +14,8 @@ // limitations under the License. // -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_RESOLVER_ATTRIBUTES_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_RESOLVER_ATTRIBUTES_H +#ifndef GRPC_SRC_CORE_RESOLVER_XDS_XDS_RESOLVER_ATTRIBUTES_H +#define GRPC_SRC_CORE_RESOLVER_XDS_XDS_RESOLVER_ATTRIBUTES_H #include @@ -59,4 +59,4 @@ class XdsRouteStateAttribute } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_RESOLVER_ATTRIBUTES_H +#endif // GRPC_SRC_CORE_RESOLVER_XDS_XDS_RESOLVER_ATTRIBUTES_H diff --git a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc b/src/core/resolver/xds/xds_resolver_trace.cc similarity index 90% rename from src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc rename to src/core/resolver/xds/xds_resolver_trace.cc index a56990484bb..a97ac81b010 100644 --- a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc +++ b/src/core/resolver/xds/xds_resolver_trace.cc @@ -16,7 +16,7 @@ #include -#include "src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h" +#include "src/core/resolver/xds/xds_resolver_trace.h" namespace grpc_core { diff --git a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h b/src/core/resolver/xds/xds_resolver_trace.h similarity index 75% rename from src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h rename to src/core/resolver/xds/xds_resolver_trace.h index 63e3396639a..759b49f1bd2 100644 --- a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h +++ b/src/core/resolver/xds/xds_resolver_trace.h @@ -14,8 +14,8 @@ // limitations under the License. // -#ifndef GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_RESOLVER_TRACE_H -#define GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_RESOLVER_TRACE_H +#ifndef GRPC_SRC_CORE_RESOLVER_XDS_XDS_RESOLVER_TRACE_H +#define GRPC_SRC_CORE_RESOLVER_XDS_XDS_RESOLVER_TRACE_H #include @@ -27,4 +27,4 @@ extern TraceFlag grpc_xds_resolver_trace; } // namespace grpc_core -#endif // GRPC_SRC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_RESOLVER_TRACE_H +#endif // GRPC_SRC_CORE_RESOLVER_XDS_XDS_RESOLVER_TRACE_H diff --git a/src/objective-c/BoringSSL-GRPC.podspec b/src/objective-c/BoringSSL-GRPC.podspec index a1f9c545f8d..cbed966aa69 100644 --- a/src/objective-c/BoringSSL-GRPC.podspec +++ b/src/objective-c/BoringSSL-GRPC.podspec @@ -39,7 +39,7 @@ Pod::Spec.new do |s| s.name = 'BoringSSL-GRPC' - version = '0.0.32' + version = '0.0.33' s.version = version s.summary = 'BoringSSL is a fork of OpenSSL that is designed to meet Google\'s needs.' # Adapted from the homepage: @@ -76,7 +76,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/google/boringssl.git', - :commit => "ae72a4514c7afd150596b0a80947f3ca9b8363b5", + :commit => "311e6f6d8e77da1f64c3256b30bd1992a555ce6c", } s.ios.deployment_target = '10.0' @@ -175,523 +175,524 @@ Pod::Spec.new do |s| *) opts="--ignore-garbage" ;; esac base64 --decode $opts < src/include/openssl/boringssl_prefix_symbols.h - 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 - 1zYrVLrb7m7fES2G+sKA2XfPyf3rJPtjowLhBMF3Ab8VckQ+S1QCzNmb8c+rDVRHKTHFvpWKiD0Rj+x3 - 4YJm7+x6ZtcthwJZYM8RUSzTjthmBF38MoKgfNqn9skMwbUJbjBqo+TnFeRnkvxstu0y3VUXFPhUTdGH - 1smsQYWzR22cDC01zwIWeJjF21b7GMiMlzpnVYUuPT9PIl2XrzXsiChW30CP/EAYMOFJve/smobXLWoH - rgDt6wjibRXrXnB7eOoJ/eXTL9+e7fe0dh7F0FYq+036Yo8Iw3W6TmW3Pa986FzoA6u22fJ3/hmM55eX - BzN8ZfsyWXVoOr3vGbIiCbTLdfov8q00I/f4bWeWP7WTsc0YP5TXzgI8D/uhQW9/f9L7QHRXSnCNqWm9 - +3eYO0pdrhkVT8q0bJHHt6cLiMNzV9sdi3cQOpUGXPvYMsOyRa1KYOiekYf8pt4P44fnrNf7wga+PnDQ - ZwUv8U5IA27VNCeVVuWpSPNa2WMA8QThr3/5P8wvEPid1gQA + H4sICAAAAAAC/2JvcmluZ3NzbF9wcmVmaXhfc3ltYm9scy5oALS9XXPbuJaofT+/wnXm5kzVrpnYaafd + 751jK4kmju0tKT2duWFREmRzhyIVgvJH//oDkJSIj7VArgW/VbtmOpaeZ1EAiC+CwH/918mDKESV1mJ9 + snw9/iNZllVWPEiZJ7tKbLKX5FGka1H9p3w8KYuTj82n8/nNyarcbrP6/zt5f3oqPmw+rC/E77+v09PN + h99W78/OPyzfv1uuT//44yw9Pz9fiQ+rf/u3//qvk6ty91plD4/1yf9d/cfJ2bvTi3+cfC7Lh1ycTIvV + f6qv6G/di2qbSZmpeHV5spfiHyra7vUfJ9tynW3U/0+L9X+V1ck6k3WVLfe1OKkfM3kiy039nFbiZKM+ + TItX7drtq10pxclzVqsfUDX/v9zXJxshThTyKCqhf32VFioh/nGyq8qnbK2SpH5Ma/V/xEm6LJ+ENq2O + 116UdbYS+irauLv+eg8f7XYirU6y4iTNc01mQh5+3eLL5GR+92nxP5ezycl0fnI/u/tzej25Pvk/l3P1 + 7/9zcnl73Xzp8vviy93s5Ho6v7q5nH6bn1ze3JwoanZ5u5hO5tr1P9PFl5PZ5PPlTCF3ilK+3n17dfP9 + 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 + yLmGfFHYBAA= EOF # PrivacyInfo.xcprivacy is not part of BoringSSL repo, inject it during pod installation diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index 9d766455be7..886feca5dcc 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -33,24 +33,6 @@ CORE_SOURCE_FILES = [ 'src/core/ext/filters/client_channel/global_subchannel_pool.cc', 'src/core/ext/filters/client_channel/http_proxy_mapper.cc', 'src/core/ext/filters/client_channel/local_subchannel_pool.cc', - 'src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc', - 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc', - 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc', - 'src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/polling_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc', 'src/core/ext/filters/client_channel/retry_filter.cc', 'src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc', 'src/core/ext/filters/client_channel/retry_service_config.cc', @@ -677,9 +659,6 @@ CORE_SOURCE_FILES = [ 'src/core/lib/promise/party.cc', 'src/core/lib/promise/sleep.cc', 'src/core/lib/promise/trace.cc', - 'src/core/lib/resolver/endpoint_addresses.cc', - 'src/core/lib/resolver/resolver.cc', - 'src/core/lib/resolver/resolver_registry.cc', 'src/core/lib/resource_quota/api.cc', 'src/core/lib/resource_quota/arena.cc', 'src/core/lib/resource_quota/memory_quota.cc', @@ -832,6 +811,27 @@ CORE_SOURCE_FILES = [ 'src/core/load_balancing/xds/xds_wrr_locality.cc', 'src/core/plugin_registry/grpc_plugin_registry.cc', 'src/core/plugin_registry/grpc_plugin_registry_extra.cc', + 'src/core/resolver/binder/binder_resolver.cc', + 'src/core/resolver/dns/c_ares/dns_resolver_ares.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc', + 'src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc', + 'src/core/resolver/dns/dns_resolver_plugin.cc', + 'src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc', + 'src/core/resolver/dns/event_engine/service_config_helper.cc', + 'src/core/resolver/dns/native/dns_resolver.cc', + 'src/core/resolver/endpoint_addresses.cc', + 'src/core/resolver/fake/fake_resolver.cc', + 'src/core/resolver/google_c2p/google_c2p_resolver.cc', + 'src/core/resolver/polling_resolver.cc', + 'src/core/resolver/resolver.cc', + 'src/core/resolver/resolver_registry.cc', + 'src/core/resolver/sockaddr/sockaddr_resolver.cc', + 'src/core/resolver/xds/xds_dependency_manager.cc', + 'src/core/resolver/xds/xds_resolver.cc', + 'src/core/resolver/xds/xds_resolver_trace.cc', 'src/core/tsi/alts/crypt/aes_gcm.cc', 'src/core/tsi/alts/crypt/gsec.cc', 'src/core/tsi/alts/frame_protector/alts_counter.cc', diff --git a/src/python/grpcio_observability/README.rst b/src/python/grpcio_observability/README.rst index a597057198f..a4122f79bd8 100644 --- a/src/python/grpcio_observability/README.rst +++ b/src/python/grpcio_observability/README.rst @@ -62,7 +62,6 @@ gRPC Python Observability Depends on the following packages: :: grpcio - opentelemetry-sdk==1.21.0 opentelemetry-api==1.21.0 diff --git a/src/python/grpcio_observability/grpc_observability/_open_telemetry_observability.py b/src/python/grpcio_observability/grpc_observability/_open_telemetry_observability.py index e6f94e77211..a102509e5c8 100644 --- a/src/python/grpcio_observability/grpc_observability/_open_telemetry_observability.py +++ b/src/python/grpcio_observability/grpc_observability/_open_telemetry_observability.py @@ -62,7 +62,6 @@ class OpenTelemetryObservability(grpc._observability.ObservabilityPlugin): This is class is part of an EXPERIMENTAL API. Args: - exporter: Exporter used to export data. plugin: OpenTelemetryPlugin to enable. """ @@ -73,17 +72,13 @@ class OpenTelemetryObservability(grpc._observability.ObservabilityPlugin): self, *, plugins: Optional[Iterable[OpenTelemetryPlugin]] = None, - exporter: "grpc_observability.Exporter" = None, ): _plugins = [] if plugins: for plugin in plugins: _plugins.append(_OpenTelemetryPlugin(plugin)) - if exporter: - self.exporter = exporter - else: - self.exporter = _OpenTelemetryExporterDelegator(_plugins) + self.exporter = _OpenTelemetryExporterDelegator(_plugins) try: _cyobservability.activate_stats() diff --git a/src/python/grpcio_observability/grpc_observability/_open_telemetry_plugin.py b/src/python/grpcio_observability/grpc_observability/_open_telemetry_plugin.py index 212a9ec1b82..fd782bdef47 100644 --- a/src/python/grpcio_observability/grpc_observability/_open_telemetry_plugin.py +++ b/src/python/grpcio_observability/grpc_observability/_open_telemetry_plugin.py @@ -20,10 +20,10 @@ import grpc from grpc_observability import _open_telemetry_measures from grpc_observability._cyobservability import MetricsName from grpc_observability._observability import StatsData -from opentelemetry.sdk.metrics import Counter -from opentelemetry.sdk.metrics import Histogram -from opentelemetry.sdk.metrics import Meter -from opentelemetry.sdk.metrics import MeterProvider +from opentelemetry.metrics import Counter +from opentelemetry.metrics import Histogram +from opentelemetry.metrics import Meter +from opentelemetry.metrics import MeterProvider GRPC_METHOD_LABEL = "grpc.method" GRPC_TARGET_LABEL = "grpc.target" @@ -123,7 +123,7 @@ class OpenTelemetryPlugin: self, target: str # pylint: disable=unused-argument ) -> bool: """ - If set, this will be called per channel to decide whether to record the + Once overridden, this will be called per channel to decide whether to record the target attribute on client or to replace it with "other". This helps reduce the cardinality on metrics in cases where many channels are created with different targets in the same binary (which might happen @@ -142,7 +142,7 @@ class OpenTelemetryPlugin: self, method: str # pylint: disable=unused-argument ) -> bool: """ - If set, this will be called with a generic method type to decide whether to + Once overridden, this will be called with a generic method type to decide whether to record the method name or to replace it with "other". Note that pre-registered methods will always be recorded no matter what this diff --git a/src/python/grpcio_observability/setup.py b/src/python/grpcio_observability/setup.py index cac2417d919..4d4ebbeec57 100644 --- a/src/python/grpcio_observability/setup.py +++ b/src/python/grpcio_observability/setup.py @@ -290,7 +290,6 @@ setuptools.setup( install_requires=[ "grpcio=={version}".format(version=grpc_version.VERSION), "setuptools>=59.6.0", - "opentelemetry-sdk==1.21.0", "opentelemetry-api==1.21.0", ], cmdclass={ diff --git a/src/python/grpcio_tests/tests/observability/BUILD.bazel b/src/python/grpcio_tests/tests/observability/BUILD.bazel index bd4e10b450a..b7a531423a7 100644 --- a/src/python/grpcio_tests/tests/observability/BUILD.bazel +++ b/src/python/grpcio_tests/tests/observability/BUILD.bazel @@ -23,20 +23,6 @@ py_library( srcs = ["_from_observability_import_star.py"], ) -py_test( - name = "_observability_test", - size = "small", - srcs = ["_observability_test.py"], - imports = ["../../"], - main = "_observability_test.py", - deps = [ - ":test_server", - "//src/python/grpcio/grpc:grpcio", - "//src/python/grpcio_observability/grpc_observability:pyobservability", - "//src/python/grpcio_tests/tests/testing", - ], -) - py_test( name = "_open_telemetry_observability_test", size = "small", diff --git a/src/python/grpcio_tests/tests/observability/_observability_test.py b/src/python/grpcio_tests/tests/observability/_observability_test.py deleted file mode 100644 index 55450b035d9..00000000000 --- a/src/python/grpcio_tests/tests/observability/_observability_test.py +++ /dev/null @@ -1,208 +0,0 @@ -# Copyright 2023 gRPC authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import logging -import os -import sys -from typing import List -import unittest - -import grpc -import grpc_observability -from grpc_observability import _cyobservability -from grpc_observability import _observability - -from tests.observability import _test_server - -logger = logging.getLogger(__name__) - -STREAM_LENGTH = 5 - - -class TestExporter(_observability.Exporter): - def __init__( - self, - metrics: List[_observability.StatsData], - spans: List[_observability.TracingData], - ): - self.span_collecter = spans - self.metric_collecter = metrics - self._server = None - - def export_stats_data( - self, stats_data: List[_observability.StatsData] - ) -> None: - self.metric_collecter.extend(stats_data) - - def export_tracing_data( - self, tracing_data: List[_observability.TracingData] - ) -> None: - self.span_collecter.extend(tracing_data) - - -class _ClientUnaryUnaryInterceptor(grpc.UnaryUnaryClientInterceptor): - def intercept_unary_unary( - self, continuation, client_call_details, request_or_iterator - ): - response = continuation(client_call_details, request_or_iterator) - return response - - -class _ServerInterceptor(grpc.ServerInterceptor): - def intercept_service(self, continuation, handler_call_details): - return continuation(handler_call_details) - - -@unittest.skipIf( - os.name == "nt" or "darwin" in sys.platform, - "Observability is not supported in Windows and MacOS", -) -class ObservabilityTest(unittest.TestCase): - def setUp(self): - self.all_metric = [] - self.all_span = [] - self.test_exporter = TestExporter(self.all_metric, self.all_span) - self._server = None - self._port = None - - def tearDown(self): - if self._server: - self._server.stop(0) - - def testRecordUnaryUnary(self): - with grpc_observability.OpenTelemetryObservability( - exporter=self.test_exporter - ): - server, port = _test_server.start_server() - self._server = server - _test_server.unary_unary_call(port=port) - - self.assertGreater(len(self.all_metric), 0) - self._validate_metrics(self.all_metric) - - def testRecordUnaryUnaryWithClientInterceptor(self): - interceptor = _ClientUnaryUnaryInterceptor() - with grpc_observability.OpenTelemetryObservability( - exporter=self.test_exporter - ): - server, port = _test_server.start_server() - self._server = server - _test_server.intercepted_unary_unary_call( - port=port, interceptors=interceptor - ) - - self.assertGreater(len(self.all_metric), 0) - self._validate_metrics(self.all_metric) - - def testRecordUnaryUnaryWithServerInterceptor(self): - interceptor = _ServerInterceptor() - with grpc_observability.OpenTelemetryObservability( - exporter=self.test_exporter - ): - server, port = _test_server.start_server(interceptors=[interceptor]) - self._server = server - _test_server.unary_unary_call(port=port) - - self.assertGreater(len(self.all_metric), 0) - self._validate_metrics(self.all_metric) - - def testThrowErrorWhenCallingMultipleInit(self): - with self.assertRaises(ValueError): - with grpc_observability.OpenTelemetryObservability( - exporter=self.test_exporter - ) as o11y: - grpc._observability.observability_init(o11y) - - def testRecordUnaryStream(self): - with grpc_observability.OpenTelemetryObservability( - exporter=self.test_exporter - ): - server, port = _test_server.start_server() - self._server = server - _test_server.unary_stream_call(port=port) - - self.assertGreater(len(self.all_metric), 0) - self._validate_metrics(self.all_metric) - - def testRecordStreamUnary(self): - with grpc_observability.OpenTelemetryObservability( - exporter=self.test_exporter - ): - server, port = _test_server.start_server() - self._server = server - _test_server.stream_unary_call(port=port) - - self.assertTrue(len(self.all_metric) > 0) - self._validate_metrics(self.all_metric) - - def testRecordStreamStream(self): - with grpc_observability.OpenTelemetryObservability( - exporter=self.test_exporter - ): - server, port = _test_server.start_server() - self._server = server - _test_server.stream_stream_call(port=port) - - self.assertGreater(len(self.all_metric), 0) - self._validate_metrics(self.all_metric) - - def testNoRecordBeforeInit(self): - server, port = _test_server.start_server() - _test_server.unary_unary_call(port=port) - self.assertEqual(len(self.all_metric), 0) - server.stop(0) - - with grpc_observability.OpenTelemetryObservability( - exporter=self.test_exporter - ): - server, port = _test_server.start_server() - self._server = server - _test_server.unary_unary_call(port=port) - - self.assertGreater(len(self.all_metric), 0) - self._validate_metrics(self.all_metric) - - def testNoRecordAfterExit(self): - with grpc_observability.OpenTelemetryObservability( - exporter=self.test_exporter - ): - server, port = _test_server.start_server() - self._server = server - self._port = port - _test_server.unary_unary_call(port=port) - - self.assertGreater(len(self.all_metric), 0) - current_metric_len = len(self.all_metric) - self._validate_metrics(self.all_metric) - - _test_server.unary_unary_call(port=self._port) - self.assertEqual(len(self.all_metric), current_metric_len) - - def _validate_metrics( - self, metrics: List[_observability.StatsData] - ) -> None: - metric_names = set(metric.name for metric in metrics) - for name in _cyobservability.MetricsName: - if name not in metric_names: - logger.error( - "metric %s not found in exported metrics: %s!", - name, - metric_names, - ) - self.assertTrue(name in metric_names) - - -if __name__ == "__main__": - logging.basicConfig() - unittest.main(verbosity=2) diff --git a/src/python/grpcio_tests/tests/observability/_open_telemetry_observability_test.py b/src/python/grpcio_tests/tests/observability/_open_telemetry_observability_test.py index a3115b0108a..81c9750970f 100644 --- a/src/python/grpcio_tests/tests/observability/_open_telemetry_observability_test.py +++ b/src/python/grpcio_tests/tests/observability/_open_telemetry_observability_test.py @@ -21,6 +21,7 @@ import time from typing import Any, Callable, Dict, List, Optional, Set import unittest +import grpc import grpc_observability from grpc_observability import _open_telemetry_measures from grpc_observability._open_telemetry_plugin import GRPC_METHOD_LABEL @@ -100,6 +101,19 @@ class BaseTestOpenTelemetryPlugin(grpc_observability.OpenTelemetryPlugin): return self.provider +class _ClientUnaryUnaryInterceptor(grpc.UnaryUnaryClientInterceptor): + def intercept_unary_unary( + self, continuation, client_call_details, request_or_iterator + ): + response = continuation(client_call_details, request_or_iterator) + return response + + +class _ServerInterceptor(grpc.ServerInterceptor): + def intercept_service(self, continuation, handler_call_details): + return continuation(handler_call_details) + + @unittest.skipIf( os.name == "nt" or "darwin" in sys.platform, "Observability is not supported in Windows and MacOS", @@ -132,6 +146,42 @@ class OpenTelemetryObservabilityTest(unittest.TestCase): self._validate_metrics_exist(self.all_metrics) self._validate_all_metrics_names(self.all_metrics) + def testRecordUnaryUnaryWithClientInterceptor(self): + interceptor = _ClientUnaryUnaryInterceptor() + otel_plugin = BaseTestOpenTelemetryPlugin(self._provider) + with grpc_observability.OpenTelemetryObservability( + plugins=[otel_plugin] + ): + server, port = _test_server.start_server() + self._server = server + _test_server.intercepted_unary_unary_call( + port=port, interceptors=interceptor + ) + + self._validate_metrics_exist(self.all_metrics) + self._validate_all_metrics_names(self.all_metrics) + + def testRecordUnaryUnaryWithServerInterceptor(self): + interceptor = _ServerInterceptor() + otel_plugin = BaseTestOpenTelemetryPlugin(self._provider) + with grpc_observability.OpenTelemetryObservability( + plugins=[otel_plugin] + ): + server, port = _test_server.start_server(interceptors=[interceptor]) + self._server = server + _test_server.unary_unary_call(port=port) + + self._validate_metrics_exist(self.all_metrics) + self._validate_all_metrics_names(self.all_metrics) + + def testThrowErrorWhenCallingMultipleInit(self): + otel_plugin = BaseTestOpenTelemetryPlugin(self._provider) + with self.assertRaises(ValueError): + with grpc_observability.OpenTelemetryObservability( + plugins=[otel_plugin] + ) as o11y: + grpc._observability.observability_init(o11y) + def testRecordUnaryUnaryClientOnly(self): server, port = _test_server.start_server() self._server = server @@ -145,6 +195,41 @@ class OpenTelemetryObservabilityTest(unittest.TestCase): self._validate_metrics_exist(self.all_metrics) self._validate_client_metrics_names(self.all_metrics) + def testNoRecordBeforeInit(self): + server, port = _test_server.start_server() + _test_server.unary_unary_call(port=port) + self.assertEqual(len(self.all_metrics), 0) + server.stop(0) + + otel_plugin = BaseTestOpenTelemetryPlugin(self._provider) + with grpc_observability.OpenTelemetryObservability( + plugins=[otel_plugin] + ): + server, port = _test_server.start_server() + self._server = server + _test_server.unary_unary_call(port=port) + + self._validate_metrics_exist(self.all_metrics) + self._validate_all_metrics_names(self.all_metrics) + + def testNoRecordAfterExit(self): + otel_plugin = BaseTestOpenTelemetryPlugin(self._provider) + with grpc_observability.OpenTelemetryObservability( + plugins=[otel_plugin] + ): + server, port = _test_server.start_server() + self._server = server + self._port = port + _test_server.unary_unary_call(port=port) + + self._validate_metrics_exist(self.all_metrics) + self._validate_all_metrics_names(self.all_metrics) + + self.all_metrics = defaultdict(list) + _test_server.unary_unary_call(port=self._port) + with self.assertRaisesRegex(AssertionError, "No metrics was exported"): + self._validate_metrics_exist(self.all_metrics) + def testRecordUnaryStream(self): otel_plugin = BaseTestOpenTelemetryPlugin(self._provider) diff --git a/src/python/grpcio_tests/tests/tests.json b/src/python/grpcio_tests/tests/tests.json index 657cb94c028..9c42ec7baa0 100644 --- a/src/python/grpcio_tests/tests/tests.json +++ b/src/python/grpcio_tests/tests/tests.json @@ -10,7 +10,6 @@ "tests.interop._insecure_intraop_test.InsecureIntraopTest", "tests.interop._secure_intraop_test.SecureIntraopTest", "tests.observability._observability_api_test.AllTest", - "tests.observability._observability_test.ObservabilityTest", "tests.observability._open_telemetry_observability_test.OpenTelemetryObservabilityTest", "tests.protoc_plugin._python_plugin_test.ModuleMainTest", "tests.protoc_plugin._python_plugin_test.PythonPluginTest", diff --git a/templates/gRPC-Core.podspec.template b/templates/gRPC-Core.podspec.template index 2a20a9c5a94..790db12b670 100644 --- a/templates/gRPC-Core.podspec.template +++ b/templates/gRPC-Core.podspec.template @@ -198,7 +198,7 @@ ss.libraries = 'z' ss.dependency "#{s.name}/Interface", version ss.dependency "#{s.name}/Privacy", version - ss.dependency 'BoringSSL-GRPC', '0.0.32' + ss.dependency 'BoringSSL-GRPC', '0.0.33' % for abseil_spec in grpc_abseil_specs: ss.dependency '${abseil_spec}', abseil_version % endfor diff --git a/templates/src/objective-c/BoringSSL-GRPC.podspec.template b/templates/src/objective-c/BoringSSL-GRPC.podspec.template index b770f9f6cc1..0d99cd189a8 100644 --- a/templates/src/objective-c/BoringSSL-GRPC.podspec.template +++ b/templates/src/objective-c/BoringSSL-GRPC.podspec.template @@ -70,7 +70,7 @@ Pod::Spec.new do |s| s.name = 'BoringSSL-GRPC' - version = '0.0.32' + version = '0.0.33' s.version = version s.summary = 'BoringSSL is a fork of OpenSSL that is designed to meet Google\'s needs.' # Adapted from the homepage: diff --git a/test/core/client_channel/client_channel_test.cc b/test/core/client_channel/client_channel_test.cc index c012dd46396..51cbf8f9aa1 100644 --- a/test/core/client_channel/client_channel_test.cc +++ b/test/core/client_channel/client_channel_test.cc @@ -27,7 +27,7 @@ #include "src/core/ext/filters/client_channel/subchannel_pool_interface.h" #include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" #include "test/core/util/test_config.h" namespace grpc_core { diff --git a/test/core/client_channel/lb_policy/lb_policy_test_lib.h b/test/core/client_channel/lb_policy/lb_policy_test_lib.h index 9b0224a4b69..125f343e2d4 100644 --- a/test/core/client_channel/lb_policy/lb_policy_test_lib.h +++ b/test/core/client_channel/lb_policy/lb_policy_test_lib.h @@ -73,7 +73,6 @@ #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/resolved_address.h" #include "src/core/lib/json/json.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/lib/security/credentials/credentials.h" #include "src/core/lib/service_config/service_config_call_data.h" #include "src/core/lib/transport/connectivity_state.h" @@ -85,6 +84,7 @@ #include "src/core/load_balancing/oob_backend_metric.h" #include "src/core/load_balancing/oob_backend_metric_internal.h" #include "src/core/load_balancing/subchannel_interface.h" +#include "src/core/resolver/endpoint_addresses.h" #include "test/core/event_engine/event_engine_test_utils.h" #include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h" #include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h" diff --git a/test/core/client_channel/lb_policy/outlier_detection_test.cc b/test/core/client_channel/lb_policy/outlier_detection_test.cc index 45515cf4e69..8e93de35f0f 100644 --- a/test/core/client_channel/lb_policy/outlier_detection_test.cc +++ b/test/core/client_channel/lb_policy/outlier_detection_test.cc @@ -40,9 +40,9 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/time.h" #include "src/core/lib/json/json.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/load_balancing/backend_metric_data.h" #include "src/core/load_balancing/lb_policy.h" +#include "src/core/resolver/endpoint_addresses.h" #include "test/core/client_channel/lb_policy/lb_policy_test_lib.h" #include "test/core/util/test_config.h" diff --git a/test/core/client_channel/lb_policy/pick_first_test.cc b/test/core/client_channel/lb_policy/pick_first_test.cc index bcb4aa935a6..b5cdf28801e 100644 --- a/test/core/client_channel/lb_policy/pick_first_test.cc +++ b/test/core/client_channel/lb_policy/pick_first_test.cc @@ -43,8 +43,8 @@ #include "src/core/lib/gprpp/work_serializer.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/json/json.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/load_balancing/lb_policy.h" +#include "src/core/resolver/endpoint_addresses.h" #include "test/core/client_channel/lb_policy/lb_policy_test_lib.h" #include "test/core/util/test_config.h" diff --git a/test/core/client_channel/lb_policy/ring_hash_test.cc b/test/core/client_channel/lb_policy/ring_hash_test.cc index c7e2ae09a92..a8739678e07 100644 --- a/test/core/client_channel/lb_policy/ring_hash_test.cc +++ b/test/core/client_channel/lb_policy/ring_hash_test.cc @@ -37,8 +37,8 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/xxhash_inline.h" #include "src/core/lib/json/json.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/load_balancing/lb_policy.h" +#include "src/core/resolver/endpoint_addresses.h" #include "test/core/client_channel/lb_policy/lb_policy_test_lib.h" #include "test/core/util/test_config.h" diff --git a/test/core/client_channel/lb_policy/round_robin_test.cc b/test/core/client_channel/lb_policy/round_robin_test.cc index d0e5229fd3f..ce49f7ef6b4 100644 --- a/test/core/client_channel/lb_policy/round_robin_test.cc +++ b/test/core/client_channel/lb_policy/round_robin_test.cc @@ -27,7 +27,7 @@ #include "src/core/lib/experiments/experiments.h" #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" #include "test/core/client_channel/lb_policy/lb_policy_test_lib.h" #include "test/core/util/test_config.h" diff --git a/test/core/client_channel/lb_policy/weighted_round_robin_test.cc b/test/core/client_channel/lb_policy/weighted_round_robin_test.cc index 489e9a9eadf..a6cbcbe2c1a 100644 --- a/test/core/client_channel/lb_policy/weighted_round_robin_test.cc +++ b/test/core/client_channel/lb_policy/weighted_round_robin_test.cc @@ -47,9 +47,9 @@ #include "src/core/lib/gprpp/time.h" #include "src/core/lib/json/json.h" #include "src/core/lib/json/json_writer.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/load_balancing/backend_metric_data.h" #include "src/core/load_balancing/lb_policy.h" +#include "src/core/resolver/endpoint_addresses.h" #include "test/core/client_channel/lb_policy/lb_policy_test_lib.h" #include "test/core/util/test_config.h" diff --git a/test/core/client_channel/lb_policy/xds_override_host_test.cc b/test/core/client_channel/lb_policy/xds_override_host_test.cc index e634ccee399..de6ec9fb9bd 100644 --- a/test/core/client_channel/lb_policy/xds_override_host_test.cc +++ b/test/core/client_channel/lb_policy/xds_override_host_test.cc @@ -37,7 +37,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h" #include "src/core/ext/filters/stateful_session/stateful_session_filter.h" #include "src/core/ext/xds/xds_health_status.h" #include "src/core/lib/channel/channel_args.h" @@ -45,8 +44,9 @@ #include "src/core/lib/gprpp/debug_location.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/json/json.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/load_balancing/lb_policy.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/xds/xds_dependency_manager.h" #include "test/core/client_channel/lb_policy/lb_policy_test_lib.h" #include "test/core/util/test_config.h" diff --git a/test/core/client_channel/resolvers/binder_resolver_test.cc b/test/core/client_channel/resolvers/binder_resolver_test.cc index 5c2c7d4fda3..4abae7ee1a6 100644 --- a/test/core/client_channel/resolvers/binder_resolver_test.cc +++ b/test/core/client_channel/resolvers/binder_resolver_test.cc @@ -25,10 +25,10 @@ #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/iomgr/port.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" #include "src/core/lib/uri/uri_parser.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" #include "test/core/util/test_config.h" #ifdef GRPC_HAVE_UNIX_SOCKET @@ -40,7 +40,7 @@ #include #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/resolver/resolver_registry.h" +#include "src/core/resolver/resolver_registry.h" // Registers the factory with `grpc_core::ResolverRegistry`. Defined in // binder_resolver.cc diff --git a/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc b/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc index 08f7e161a8f..331e175898a 100644 --- a/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc +++ b/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc @@ -38,7 +38,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/config/core_configuration.h" #include "src/core/lib/event_engine/default_event_engine.h" @@ -57,11 +56,12 @@ #include "src/core/lib/iomgr/pollset_set.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/uri/uri_parser.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" +#include "src/core/resolver/resolver_registry.h" #include "test/core/util/test_config.h" using ::grpc_event_engine::experimental::GetDefaultEventEngine; diff --git a/test/core/client_channel/resolvers/dns_resolver_test.cc b/test/core/client_channel/resolvers/dns_resolver_test.cc index 41c22cc4b48..fff3e22495f 100644 --- a/test/core/client_channel/resolvers/dns_resolver_test.cc +++ b/test/core/client_channel/resolvers/dns_resolver_test.cc @@ -34,10 +34,10 @@ #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/work_serializer.h" #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/uri/uri_parser.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" +#include "src/core/resolver/resolver_registry.h" #include "test/core/util/test_config.h" using ::grpc_event_engine::experimental::GetDefaultEventEngine; diff --git a/test/core/client_channel/resolvers/fake_resolver_test.cc b/test/core/client_channel/resolvers/fake_resolver_test.cc index 97f6ec587e1..fdf7f66d58b 100644 --- a/test/core/client_channel/resolvers/fake_resolver_test.cc +++ b/test/core/client_channel/resolvers/fake_resolver_test.cc @@ -16,7 +16,7 @@ // // -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" +#include "src/core/resolver/fake/fake_resolver.h" #include #include @@ -47,10 +47,10 @@ #include "src/core/lib/gprpp/work_serializer.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver_factory.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/uri/uri_parser.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver_factory.h" +#include "src/core/resolver/resolver_registry.h" #include "test/core/util/test_config.h" namespace grpc_core { diff --git a/test/core/client_channel/resolvers/sockaddr_resolver_test.cc b/test/core/client_channel/resolvers/sockaddr_resolver_test.cc index 49cb0db9ac0..39f58d4fb14 100644 --- a/test/core/client_channel/resolvers/sockaddr_resolver_test.cc +++ b/test/core/client_channel/resolvers/sockaddr_resolver_test.cc @@ -32,10 +32,10 @@ #include "src/core/lib/gprpp/work_serializer.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/port.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/uri/uri_parser.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" +#include "src/core/resolver/resolver_registry.h" #include "test/core/util/test_config.h" static std::shared_ptr* g_work_serializer; diff --git a/test/core/end2end/fuzzers/api_fuzzer.cc b/test/core/end2end/fuzzers/api_fuzzer.cc index a209b17d399..98dd58e7df5 100644 --- a/test/core/end2end/fuzzers/api_fuzzer.cc +++ b/test/core/end2end/fuzzers/api_fuzzer.cc @@ -41,7 +41,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/ext/transport/inproc/inproc_transport.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/channel/channel_args.h" @@ -56,7 +55,8 @@ #include "src/core/lib/iomgr/iomgr_fwd.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/endpoint_addresses.h" #include "src/libfuzzer/libfuzzer_macro.h" #include "test/core/end2end/data/ssl_test_data.h" #include "test/core/end2end/fuzzers/api_fuzzer.pb.h" diff --git a/test/core/end2end/goaway_server_test.cc b/test/core/end2end/goaway_server_test.cc index 06c5c483fb0..0359b71db11 100644 --- a/test/core/end2end/goaway_server_test.cc +++ b/test/core/end2end/goaway_server_test.cc @@ -42,7 +42,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/event_engine/default_event_engine.h" #include "src/core/lib/experiments/experiments.h" @@ -57,7 +56,8 @@ #include "src/core/lib/iomgr/resolved_address.h" #include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/socket_utils.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/endpoint_addresses.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" diff --git a/test/core/end2end/no_server_test.cc b/test/core/end2end/no_server_test.cc index 59e25efc9ab..9096408c145 100644 --- a/test/core/end2end/no_server_test.cc +++ b/test/core/end2end/no_server_test.cc @@ -32,13 +32,13 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" #include "src/core/lib/service_config/service_config.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/fake/fake_resolver.h" +#include "src/core/resolver/resolver.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/util/test_config.h" diff --git a/test/core/event_engine/test_suite/tools/echo_client.cc b/test/core/event_engine/test_suite/tools/echo_client.cc index e821730aaba..17a88792c4d 100644 --- a/test/core/event_engine/test_suite/tools/echo_client.cc +++ b/test/core/event_engine/test_suite/tools/echo_client.cc @@ -53,8 +53,8 @@ #include "src/core/lib/event_engine/default_event_engine.h" #include "src/core/lib/event_engine/tcp_socket_utils.h" #include "src/core/lib/gprpp/notification.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/lib/resource_quota/memory_quota.h" +#include "src/core/resolver/resolver_registry.h" extern absl::AnyInvocable< std::unique_ptr(void)> diff --git a/test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.cc b/test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.cc index 97ed6eaa71c..3bb9afeb4d2 100644 --- a/test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.cc +++ b/test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.cc @@ -30,7 +30,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/event_engine/default_event_engine.h" #include "src/core/lib/event_engine/tcp_socket_utils.h" @@ -38,9 +37,10 @@ #include "src/core/lib/gprpp/debug_location.h" #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/work_serializer.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_factory.h" #include "src/core/lib/uri/uri_parser.h" +#include "src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_factory.h" #include "src/libfuzzer/libfuzzer_macro.h" #include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h" #include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h" diff --git a/test/core/http/httpcli_test.cc b/test/core/http/httpcli_test.cc index 07dfa88afdf..8ed555af61b 100644 --- a/test/core/http/httpcli_test.cc +++ b/test/core/http/httpcli_test.cc @@ -41,7 +41,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/gpr/subprocess.h" #include "src/core/lib/gprpp/status_helper.h" #include "src/core/lib/gprpp/time.h" @@ -49,6 +48,7 @@ #include "src/core/lib/iomgr/pollset.h" #include "src/core/lib/iomgr/pollset_set.h" #include "src/core/lib/security/credentials/credentials.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "test/core/http/httpcli_test_util.h" #include "test/core/util/fake_udp_and_tcp_server.h" #include "test/core/util/port.h" diff --git a/test/core/iomgr/resolve_address_test.cc b/test/core/iomgr/resolve_address_test.cc index 4dd7e04f08b..8e133934ccf 100644 --- a/test/core/iomgr/resolve_address_test.cc +++ b/test/core/iomgr/resolve_address_test.cc @@ -33,7 +33,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/config/config_vars.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/gprpp/crash.h" @@ -42,6 +41,7 @@ #include "src/core/lib/iomgr/executor.h" #include "src/core/lib/iomgr/iomgr.h" #include "src/core/lib/iomgr/pollset.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "test/core/util/cmdline.h" #include "test/core/util/fake_udp_and_tcp_server.h" #include "test/core/util/test_config.h" diff --git a/test/core/resolver/endpoint_addresses_test.cc b/test/core/resolver/endpoint_addresses_test.cc index 2665c5f6d0b..2a4f75c73d9 100644 --- a/test/core/resolver/endpoint_addresses_test.cc +++ b/test/core/resolver/endpoint_addresses_test.cc @@ -16,7 +16,7 @@ #include -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" #include diff --git a/test/core/transport/chttp2/too_many_pings_test.cc b/test/core/transport/chttp2/too_many_pings_test.cc index f5d8565f95d..3477fe2041c 100644 --- a/test/core/transport/chttp2/too_many_pings_test.cc +++ b/test/core/transport/chttp2/too_many_pings_test.cc @@ -42,7 +42,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/channel/channel_args.h" @@ -53,10 +52,11 @@ #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/uri/uri_parser.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/fake/fake_resolver.h" +#include "src/core/resolver/resolver.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/util/port.h" #include "test/core/util/resolve_localhost_ip46.h" diff --git a/test/core/util/test_lb_policies.h b/test/core/util/test_lb_policies.h index 842b4100d06..c3f8b473fad 100644 --- a/test/core/util/test_lb_policies.h +++ b/test/core/util/test_lb_policies.h @@ -29,8 +29,8 @@ #include "absl/strings/string_view.h" #include "src/core/lib/config/core_configuration.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/load_balancing/backend_metric_data.h" +#include "src/core/resolver/endpoint_addresses.h" namespace grpc_core { diff --git a/test/core/xds/xds_endpoint_resource_type_test.cc b/test/core/xds/xds_endpoint_resource_type_test.cc index b3939099304..08e95f9164f 100644 --- a/test/core/xds/xds_endpoint_resource_type_test.cc +++ b/test/core/xds/xds_endpoint_resource_type_test.cc @@ -49,7 +49,7 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/iomgr/resolved_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" #include "src/proto/grpc/testing/xds/v3/address.pb.h" #include "src/proto/grpc/testing/xds/v3/base.pb.h" #include "src/proto/grpc/testing/xds/v3/endpoint.pb.h" diff --git a/test/cpp/client/destroy_grpclb_channel_with_active_connect_stress_test.cc b/test/cpp/client/destroy_grpclb_channel_with_active_connect_stress_test.cc index 334b187458c..9eb7f201d0d 100644 --- a/test/cpp/client/destroy_grpclb_channel_with_active_connect_stress_test.cc +++ b/test/cpp/client/destroy_grpclb_channel_with_active_connect_stress_test.cc @@ -37,16 +37,16 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gprpp/crash.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/thd.h" #include "src/core/lib/iomgr/sockaddr.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/lib/service_config/service_config_impl.h" #include "src/core/load_balancing/grpclb/grpclb_balancer_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/fake/fake_resolver.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" diff --git a/test/cpp/end2end/client_lb_end2end_test.cc b/test/cpp/end2end/client_lb_end2end_test.cc index 4a2eb3f1d45..770d7879737 100644 --- a/test/cpp/end2end/client_lb_end2end_test.cc +++ b/test/cpp/end2end/client_lb_end2end_test.cc @@ -51,7 +51,6 @@ #include "src/core/ext/filters/client_channel/backup_poller.h" #include "src/core/ext/filters/client_channel/config_selector.h" #include "src/core/ext/filters/client_channel/global_subchannel_pool.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/backoff/backoff.h" @@ -65,12 +64,13 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/tcp_client.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "src/core/lib/service_config/service_config.h" #include "src/core/lib/service_config/service_config_impl.h" #include "src/core/lib/surface/server.h" #include "src/core/lib/transport/connectivity_state.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/fake/fake_resolver.h" #include "src/cpp/client/secure_credentials.h" #include "src/cpp/server/secure_server_credentials.h" #include "src/proto/grpc/health/v1/health.grpc.pb.h" diff --git a/test/cpp/end2end/grpclb_end2end_test.cc b/test/cpp/end2end/grpclb_end2end_test.cc index 2b051aae008..ef6f7610fe9 100644 --- a/test/cpp/end2end/grpclb_end2end_test.cc +++ b/test/cpp/end2end/grpclb_end2end_test.cc @@ -43,7 +43,6 @@ #include #include "src/core/ext/filters/client_channel/backup_poller.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/config/config_vars.h" @@ -53,11 +52,12 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" #include "src/core/lib/iomgr/sockaddr.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "src/core/lib/service_config/service_config_impl.h" #include "src/core/load_balancing/grpclb/grpclb.h" #include "src/core/load_balancing/grpclb/grpclb_balancer_addresses.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/fake/fake_resolver.h" #include "src/cpp/client/secure_credentials.h" #include "src/cpp/server/secure_server_credentials.h" #include "src/proto/grpc/lb/v1/load_balancer.grpc.pb.h" diff --git a/test/cpp/end2end/rls_end2end_test.cc b/test/cpp/end2end/rls_end2end_test.cc index 7a2c4414457..eaa0c908cd1 100644 --- a/test/cpp/end2end/rls_end2end_test.cc +++ b/test/cpp/end2end/rls_end2end_test.cc @@ -40,7 +40,6 @@ #include #include "src/core/ext/filters/client_channel/backup_poller.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/config/config_vars.h" @@ -51,6 +50,7 @@ #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "src/core/lib/service_config/service_config_impl.h" #include "src/core/lib/uri/uri_parser.h" +#include "src/core/resolver/fake/fake_resolver.h" #include "src/cpp/client/secure_credentials.h" #include "src/cpp/server/secure_server_credentials.h" #include "src/proto/grpc/lookup/v1/rls.grpc.pb.h" diff --git a/test/cpp/end2end/service_config_end2end_test.cc b/test/cpp/end2end/service_config_end2end_test.cc index 3f8cb8f3758..d2772bc13a8 100644 --- a/test/cpp/end2end/service_config_end2end_test.cc +++ b/test/cpp/end2end/service_config_end2end_test.cc @@ -46,7 +46,6 @@ #include "src/core/ext/filters/client_channel/backup_poller.h" #include "src/core/ext/filters/client_channel/global_subchannel_pool.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/backoff/backoff.h" #include "src/core/lib/channel/channel_args.h" @@ -55,10 +54,11 @@ #include "src/core/lib/gprpp/debug_location.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/iomgr/tcp_client.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "src/core/lib/service_config/service_config_impl.h" #include "src/core/lib/transport/error_utils.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/fake/fake_resolver.h" #include "src/cpp/client/secure_credentials.h" #include "src/cpp/server/secure_server_credentials.h" #include "src/proto/grpc/testing/echo.grpc.pb.h" diff --git a/test/cpp/end2end/xds/xds_cluster_type_end2end_test.cc b/test/cpp/end2end/xds/xds_cluster_type_end2end_test.cc index f4f4f5a00d4..95a9fa1b68d 100644 --- a/test/cpp/end2end/xds/xds_cluster_type_end2end_test.cc +++ b/test/cpp/end2end/xds/xds_cluster_type_end2end_test.cc @@ -24,12 +24,12 @@ #include #include "src/core/ext/filters/client_channel/backup_poller.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/config/config_vars.h" #include "src/core/lib/gprpp/env.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/load_balancing/xds/xds_channel_args.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/fake/fake_resolver.h" #include "src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.h" #include "test/core/util/resolve_localhost_ip46.h" #include "test/core/util/scoped_env_var.h" diff --git a/test/cpp/end2end/xds/xds_end2end_test.cc b/test/cpp/end2end/xds/xds_end2end_test.cc index b6dde40a810..d6426220bcc 100644 --- a/test/cpp/end2end/xds/xds_end2end_test.cc +++ b/test/cpp/end2end/xds/xds_end2end_test.cc @@ -56,7 +56,6 @@ #include #include "src/core/ext/filters/client_channel/backup_poller.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/ext/filters/http/client/http_client_filter.h" #include "src/core/ext/xds/xds_api.h" #include "src/core/ext/xds/xds_channel_args.h" @@ -78,12 +77,13 @@ #include "src/core/lib/gprpp/time_util.h" #include "src/core/lib/iomgr/load_file.h" #include "src/core/lib/iomgr/sockaddr.h" -#include "src/core/lib/resolver/endpoint_addresses.h" #include "src/core/lib/security/authorization/audit_logging.h" #include "src/core/lib/security/certificate_provider/certificate_provider_registry.h" #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h" #include "src/core/load_balancing/xds/xds_channel_args.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/fake/fake_resolver.h" #include "src/cpp/client/secure_credentials.h" #include "src/cpp/server/secure_server_credentials.h" #include "src/proto/grpc/testing/echo.grpc.pb.h" diff --git a/test/cpp/end2end/xds/xds_pick_first_end2end_test.cc b/test/cpp/end2end/xds/xds_pick_first_end2end_test.cc index 4e1eca12ff1..7aad620437f 100644 --- a/test/cpp/end2end/xds/xds_pick_first_end2end_test.cc +++ b/test/cpp/end2end/xds/xds_pick_first_end2end_test.cc @@ -30,11 +30,11 @@ #include #include "src/core/ext/filters/client_channel/backup_poller.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/config/config_vars.h" #include "src/core/lib/gprpp/env.h" #include "src/core/load_balancing/xds/xds_channel_args.h" +#include "src/core/resolver/fake/fake_resolver.h" #include "src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h" #include "src/proto/grpc/testing/xds/v3/pick_first.pb.h" #include "test/core/util/test_config.h" diff --git a/test/cpp/end2end/xds/xds_ring_hash_end2end_test.cc b/test/cpp/end2end/xds/xds_ring_hash_end2end_test.cc index 6ce5076be59..534fc99595c 100644 --- a/test/cpp/end2end/xds/xds_ring_hash_end2end_test.cc +++ b/test/cpp/end2end/xds/xds_ring_hash_end2end_test.cc @@ -25,11 +25,11 @@ #include #include "src/core/ext/filters/client_channel/backup_poller.h" -#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/config/config_vars.h" #include "src/core/lib/gprpp/env.h" #include "src/core/load_balancing/xds/xds_channel_args.h" +#include "src/core/resolver/fake/fake_resolver.h" #include "src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.h" #include "src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h" #include "test/core/util/resolve_localhost_ip46.h" diff --git a/test/cpp/naming/address_sorting_test.cc b/test/cpp/naming/address_sorting_test.cc index 5dedf8c0835..3a768e2ad39 100644 --- a/test/cpp/naming/address_sorting_test.cc +++ b/test/cpp/naming/address_sorting_test.cc @@ -32,7 +32,6 @@ #include #include "src/core/ext/filters/client_channel/client_channel.h" -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/config/config_vars.h" @@ -43,9 +42,10 @@ #include "src/core/lib/iomgr/executor.h" #include "src/core/lib/iomgr/iomgr.h" #include "src/core/lib/iomgr/resolve_address.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_registry.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_registry.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" #include "test/cpp/util/subprocess.h" diff --git a/test/cpp/naming/cancel_ares_query_test.cc b/test/cpp/naming/cancel_ares_query_test.cc index 50f824251be..c2009ae970a 100644 --- a/test/cpp/naming/cancel_ares_query_test.cc +++ b/test/cpp/naming/cancel_ares_query_test.cc @@ -33,7 +33,6 @@ #include #include -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/config/config_vars.h" #include "src/core/lib/config/core_configuration.h" @@ -50,8 +49,9 @@ #include "src/core/lib/iomgr/iomgr.h" #include "src/core/lib/iomgr/pollset.h" #include "src/core/lib/iomgr/pollset_set.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_registry.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_registry.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/util/cmdline.h" #include "test/core/util/fake_udp_and_tcp_server.h" @@ -460,7 +460,7 @@ TEST_F(CancelDuringAresQuery, TestQueryFailsBecauseTcpServerClosesSocket) { // This test is meant to repro a bug noticed in internal issue b/297538255. // The general issue is the loop in -// https://github.com/grpc/grpc/blob/f6a994229e72bc771963706de7a0cd8aa9150bb6/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc#L371. +// https://github.com/grpc/grpc/blob/f6a994229e72bc771963706de7a0cd8aa9150bb6/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc#L371. // The problem with that loop is that c-ares *can* in certain situations stop // caring about the fd being processed without reading all of the data out of // the read buffer. In that case, we keep looping because @@ -486,10 +486,10 @@ TEST_F(CancelDuringAresQuery, TestQueryFailsBecauseTcpServerClosesSocket) { // 6) Because we overwrite the socket "close" method, c-ares attempt to close // the socket in handle_error does nothing except for removing the socket // from ARES_GETSOCK_READABLE: -// https://github.com/grpc/grpc/blob/f6a994229e72bc771963706de7a0cd8aa9150bb6/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc#L156. +// https://github.com/grpc/grpc/blob/f6a994229e72bc771963706de7a0cd8aa9150bb6/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc#L156. // 7) Because there is still one byte left in the TCP read buffer, // IsFdStillReadableLocked will keep returning true: -// https://github.com/grpc/grpc/blob/f6a994229e72bc771963706de7a0cd8aa9150bb6/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc#L82. +// https://github.com/grpc/grpc/blob/f6a994229e72bc771963706de7a0cd8aa9150bb6/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc#L82. // But c-ares will never try to read from that socket again, so we have an // infinite busy loop. TEST_F(CancelDuringAresQuery, TestQueryFailsWithDataRemainingInReadBuffer) { diff --git a/test/cpp/naming/resolver_component_test.cc b/test/cpp/naming/resolver_component_test.cc index 6505c0b0977..64155d3bc7e 100644 --- a/test/cpp/naming/resolver_component_test.cc +++ b/test/cpp/naming/resolver_component_test.cc @@ -41,7 +41,6 @@ #include #include "src/core/ext/filters/client_channel/client_channel.h" -#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/channel/channel_args.h" @@ -58,10 +57,11 @@ #include "src/core/lib/iomgr/iomgr.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/socket_utils.h" -#include "src/core/lib/resolver/endpoint_addresses.h" -#include "src/core/lib/resolver/resolver.h" -#include "src/core/lib/resolver/resolver_registry.h" #include "src/core/load_balancing/grpclb/grpclb_balancer_addresses.h" +#include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/resolver/endpoint_addresses.h" +#include "src/core/resolver/resolver.h" +#include "src/core/resolver/resolver_registry.h" #include "test/core/util/fake_udp_and_tcp_server.h" #include "test/core/util/port.h" #include "test/core/util/socket_use_after_close_detector.h" diff --git a/third_party/boringssl-with-bazel b/third_party/boringssl-with-bazel index ae72a4514c7..311e6f6d8e7 160000 --- a/third_party/boringssl-with-bazel +++ b/third_party/boringssl-with-bazel @@ -1 +1 @@ -Subproject commit ae72a4514c7afd150596b0a80947f3ca9b8363b5 +Subproject commit 311e6f6d8e77da1f64c3256b30bd1992a555ce6c diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index 70c8d9c1a39..ecefda74720 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -1117,36 +1117,6 @@ src/core/ext/filters/client_channel/http_proxy_mapper.cc \ src/core/ext/filters/client_channel/http_proxy_mapper.h \ src/core/ext/filters/client_channel/local_subchannel_pool.cc \ src/core/ext/filters/client_channel/local_subchannel_pool.h \ -src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ -src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc \ -src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h \ -src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ -src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h \ -src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc \ -src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h \ -src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc \ -src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h \ -src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc \ -src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h \ -src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc \ -src/core/ext/filters/client_channel/resolver/polling_resolver.cc \ -src/core/ext/filters/client_channel/resolver/polling_resolver.h \ -src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h \ src/core/ext/filters/client_channel/retry_filter.cc \ src/core/ext/filters/client_channel/retry_filter.h \ src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc \ @@ -2642,14 +2612,6 @@ src/core/lib/promise/trace.cc \ src/core/lib/promise/trace.h \ src/core/lib/promise/try_join.h \ src/core/lib/promise/try_seq.h \ -src/core/lib/resolver/endpoint_addresses.cc \ -src/core/lib/resolver/endpoint_addresses.h \ -src/core/lib/resolver/resolver.cc \ -src/core/lib/resolver/resolver.h \ -src/core/lib/resolver/resolver_factory.h \ -src/core/lib/resolver/resolver_registry.cc \ -src/core/lib/resolver/resolver_registry.h \ -src/core/lib/resolver/server_address.h \ src/core/lib/resource_quota/api.cc \ src/core/lib/resource_quota/api.h \ src/core/lib/resource_quota/arena.cc \ @@ -2947,6 +2909,44 @@ src/core/load_balancing/xds/xds_override_host.h \ src/core/load_balancing/xds/xds_wrr_locality.cc \ src/core/plugin_registry/grpc_plugin_registry.cc \ src/core/plugin_registry/grpc_plugin_registry_extra.cc \ +src/core/resolver/binder/binder_resolver.cc \ +src/core/resolver/dns/c_ares/dns_resolver_ares.cc \ +src/core/resolver/dns/c_ares/dns_resolver_ares.h \ +src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h \ +src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ +src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ +src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc \ +src/core/resolver/dns/c_ares/grpc_ares_wrapper.h \ +src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ +src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ +src/core/resolver/dns/dns_resolver_plugin.cc \ +src/core/resolver/dns/dns_resolver_plugin.h \ +src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ +src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h \ +src/core/resolver/dns/event_engine/service_config_helper.cc \ +src/core/resolver/dns/event_engine/service_config_helper.h \ +src/core/resolver/dns/native/dns_resolver.cc \ +src/core/resolver/dns/native/dns_resolver.h \ +src/core/resolver/endpoint_addresses.cc \ +src/core/resolver/endpoint_addresses.h \ +src/core/resolver/fake/fake_resolver.cc \ +src/core/resolver/fake/fake_resolver.h \ +src/core/resolver/google_c2p/google_c2p_resolver.cc \ +src/core/resolver/polling_resolver.cc \ +src/core/resolver/polling_resolver.h \ +src/core/resolver/resolver.cc \ +src/core/resolver/resolver.h \ +src/core/resolver/resolver_factory.h \ +src/core/resolver/resolver_registry.cc \ +src/core/resolver/resolver_registry.h \ +src/core/resolver/server_address.h \ +src/core/resolver/sockaddr/sockaddr_resolver.cc \ +src/core/resolver/xds/xds_dependency_manager.cc \ +src/core/resolver/xds/xds_dependency_manager.h \ +src/core/resolver/xds/xds_resolver.cc \ +src/core/resolver/xds/xds_resolver_attributes.h \ +src/core/resolver/xds/xds_resolver_trace.cc \ +src/core/resolver/xds/xds_resolver_trace.h \ src/core/tsi/alts/crypt/aes_gcm.cc \ src/core/tsi/alts/crypt/gsec.cc \ src/core/tsi/alts/crypt/gsec.h \ diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index 022958293f7..84df8476912 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -922,40 +922,6 @@ src/core/ext/filters/client_channel/http_proxy_mapper.cc \ src/core/ext/filters/client_channel/http_proxy_mapper.h \ src/core/ext/filters/client_channel/local_subchannel_pool.cc \ src/core/ext/filters/client_channel/local_subchannel_pool.h \ -src/core/ext/filters/client_channel/resolver/README.md \ -src/core/ext/filters/client_channel/resolver/binder/README.md \ -src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ -src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ -src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc \ -src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h \ -src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ -src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h \ -src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc \ -src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h \ -src/core/ext/filters/client_channel/resolver/dns/native/README.md \ -src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc \ -src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h \ -src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc \ -src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h \ -src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc \ -src/core/ext/filters/client_channel/resolver/polling_resolver.cc \ -src/core/ext/filters/client_channel/resolver/polling_resolver.h \ -src/core/ext/filters/client_channel/resolver/sockaddr/README.md \ -src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h \ src/core/ext/filters/client_channel/retry_filter.cc \ src/core/ext/filters/client_channel/retry_filter.h \ src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc \ @@ -2421,14 +2387,6 @@ src/core/lib/promise/trace.cc \ src/core/lib/promise/trace.h \ src/core/lib/promise/try_join.h \ src/core/lib/promise/try_seq.h \ -src/core/lib/resolver/endpoint_addresses.cc \ -src/core/lib/resolver/endpoint_addresses.h \ -src/core/lib/resolver/resolver.cc \ -src/core/lib/resolver/resolver.h \ -src/core/lib/resolver/resolver_factory.h \ -src/core/lib/resolver/resolver_registry.cc \ -src/core/lib/resolver/resolver_registry.h \ -src/core/lib/resolver/server_address.h \ src/core/lib/resource_quota/api.cc \ src/core/lib/resource_quota/api.h \ src/core/lib/resource_quota/arena.cc \ @@ -2728,6 +2686,48 @@ src/core/load_balancing/xds/xds_override_host.h \ src/core/load_balancing/xds/xds_wrr_locality.cc \ src/core/plugin_registry/grpc_plugin_registry.cc \ src/core/plugin_registry/grpc_plugin_registry_extra.cc \ +src/core/resolver/README.md \ +src/core/resolver/binder/README.md \ +src/core/resolver/binder/binder_resolver.cc \ +src/core/resolver/dns/c_ares/dns_resolver_ares.cc \ +src/core/resolver/dns/c_ares/dns_resolver_ares.h \ +src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h \ +src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \ +src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \ +src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc \ +src/core/resolver/dns/c_ares/grpc_ares_wrapper.h \ +src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \ +src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \ +src/core/resolver/dns/dns_resolver_plugin.cc \ +src/core/resolver/dns/dns_resolver_plugin.h \ +src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \ +src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h \ +src/core/resolver/dns/event_engine/service_config_helper.cc \ +src/core/resolver/dns/event_engine/service_config_helper.h \ +src/core/resolver/dns/native/README.md \ +src/core/resolver/dns/native/dns_resolver.cc \ +src/core/resolver/dns/native/dns_resolver.h \ +src/core/resolver/endpoint_addresses.cc \ +src/core/resolver/endpoint_addresses.h \ +src/core/resolver/fake/fake_resolver.cc \ +src/core/resolver/fake/fake_resolver.h \ +src/core/resolver/google_c2p/google_c2p_resolver.cc \ +src/core/resolver/polling_resolver.cc \ +src/core/resolver/polling_resolver.h \ +src/core/resolver/resolver.cc \ +src/core/resolver/resolver.h \ +src/core/resolver/resolver_factory.h \ +src/core/resolver/resolver_registry.cc \ +src/core/resolver/resolver_registry.h \ +src/core/resolver/server_address.h \ +src/core/resolver/sockaddr/README.md \ +src/core/resolver/sockaddr/sockaddr_resolver.cc \ +src/core/resolver/xds/xds_dependency_manager.cc \ +src/core/resolver/xds/xds_dependency_manager.h \ +src/core/resolver/xds/xds_resolver.cc \ +src/core/resolver/xds/xds_resolver_attributes.h \ +src/core/resolver/xds/xds_resolver_trace.cc \ +src/core/resolver/xds/xds_resolver_trace.h \ src/core/tsi/README.md \ src/core/tsi/alts/crypt/aes_gcm.cc \ src/core/tsi/alts/crypt/gsec.cc \ diff --git a/tools/internal_ci/linux/grpc_build_submodule_at_head.sh b/tools/internal_ci/linux/grpc_build_submodule_at_head.sh index 3417b091a41..365bcf1284d 100755 --- a/tools/internal_ci/linux/grpc_build_submodule_at_head.sh +++ b/tools/internal_ci/linux/grpc_build_submodule_at_head.sh @@ -71,8 +71,7 @@ fi tools/buildgen/generate_projects.sh - # commit so that changes are passed to Docker git -c user.name='foo' -c user.email='foo@google.com' commit -a -m 'Update submodule' --allow-empty -tools/run_tests/run_tests_matrix.py -f linux --exclude c sanity basictests_arm64 openssl --inner_jobs 16 -j 2 --internal_ci --build_only +tools/run_tests/run_tests_matrix.py -f linux --exclude c sanity basictests_arm64 openssl dbg --inner_jobs 16 -j 2 --internal_ci --build_only diff --git a/tools/run_tests/helper_scripts/build_python.sh b/tools/run_tests/helper_scripts/build_python.sh index db71c656e50..dedbe02641f 100755 --- a/tools/run_tests/helper_scripts/build_python.sh +++ b/tools/run_tests/helper_scripts/build_python.sh @@ -217,7 +217,8 @@ pip_install_dir "$ROOT/src/python/grpcio_testing" # Build/install tests pip_install coverage==7.2.0 oauth2client==4.1.0 \ google-auth>=1.35.0 requests==2.31.0 \ - googleapis-common-protos>=1.5.5 rsa==4.0 absl-py==1.4.0 + googleapis-common-protos>=1.5.5 rsa==4.0 absl-py==1.4.0 \ + opentelemetry-sdk==1.21.0 $VENV_PYTHON "$ROOT/src/python/grpcio_tests/setup.py" preprocess $VENV_PYTHON "$ROOT/src/python/grpcio_tests/setup.py" build_package_protos pip_install_dir "$ROOT/src/python/grpcio_tests" diff --git a/tools/run_tests/sanity/check_submodules.sh b/tools/run_tests/sanity/check_submodules.sh index 35a19807ae9..9f79f7bae78 100755 --- a/tools/run_tests/sanity/check_submodules.sh +++ b/tools/run_tests/sanity/check_submodules.sh @@ -28,7 +28,7 @@ cat <"$want_submodules" third_party/abseil-cpp 4a2c63365eff8823a5221db86ef490e828306f9d third_party/benchmark 344117638c8ff7e239044fd0fa7085839fc03021 third_party/bloaty 60209eb1ccc34d5deefb002d1b7f37545204f7f2 -third_party/boringssl-with-bazel ae72a4514c7afd150596b0a80947f3ca9b8363b5 +third_party/boringssl-with-bazel 311e6f6d8e77da1f64c3256b30bd1992a555ce6c third_party/cares/cares 6360e96b5cf8e5980c887ce58ef727e53d77243a third_party/envoy-api 78f198cf96ecdc7120ef640406770aa01af775c4 third_party/googleapis 2f9af297c84c55c8b871ba4495e01ade42476c92 diff --git a/tools/run_tests/sanity/core_banned_functions.py b/tools/run_tests/sanity/core_banned_functions.py index 7421d3caedb..5340cc87ce1 100755 --- a/tools/run_tests/sanity/core_banned_functions.py +++ b/tools/run_tests/sanity/core_banned_functions.py @@ -79,7 +79,7 @@ BANNED_EXCEPT = { # TODO(roth): Fix these callers to use the absl random library instead. "std::random_device": [ "src/core/load_balancing/rls/rls.cc", - "src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc", + "src/core/resolver/google_c2p/google_c2p_resolver.cc", ], # use 'grpc_core::Crash' instead "GPR_ASSERT(false": [],