grpc 1.83.1 → 1.84.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +21 -17
- data/include/grpc/credentials.h +10 -0
- data/include/grpc/grpc_security_constants.h +2 -0
- data/include/grpc/impl/channel_arg_names.h +9 -0
- data/src/core/call/call_filters.h +4 -2
- data/src/core/call/client_call.cc +20 -8
- data/src/core/call/client_call.h +4 -0
- data/src/core/call/interception_chain.cc +2 -0
- data/src/core/call/interception_chain.h +14 -1
- data/src/core/call/metadata.cc +1 -3
- data/src/core/call/metadata_batch.h +13 -5
- data/src/core/call/server_call.cc +31 -14
- data/src/core/call/server_call.h +4 -0
- data/src/core/channelz/text_encode.cc +9 -4
- data/src/core/channelz/v2tov1/convert.cc +2 -2
- data/src/core/client_channel/backup_poller.cc +1 -2
- data/src/core/client_channel/client_channel.cc +6 -33
- data/src/core/client_channel/client_channel_filter.cc +22 -55
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_service_config.cc +3 -19
- data/src/core/client_channel/direct_channel.cc +7 -1
- data/src/core/client_channel/direct_channel.h +2 -2
- data/src/core/client_channel/load_balanced_call_destination.cc +5 -3
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -12
- data/src/core/client_channel/subchannel.cc +310 -1058
- data/src/core/client_channel/subchannel.h +44 -329
- data/src/core/client_channel/subchannel_metrics.cc +48 -0
- data/src/core/client_channel/subchannel_metrics.h +60 -0
- data/src/core/credentials/call/external/file_external_account_credentials.cc +1 -1
- data/src/core/credentials/call/external/url_external_account_credentials.cc +2 -3
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +8 -24
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h +3 -6
- data/src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.cc +525 -0
- data/src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.h +138 -0
- data/src/core/credentials/call/json_util.h +1 -0
- data/src/core/credentials/call/jwt/json_token.cc +10 -2
- data/src/core/credentials/call/jwt/jwt_verifier.cc +15 -1
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +1 -1
- data/src/core/credentials/call/oauth2/oauth2_credentials.cc +42 -79
- data/src/core/credentials/call/oauth2/oauth2_credentials.h +2 -5
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +52 -31
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +21 -8
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +59 -72
- data/src/core/credentials/transport/ssl/ssl_credentials.h +9 -8
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +12 -6
- data/src/core/credentials/transport/ssl/ssl_security_connector.h +4 -4
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +29 -18
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +9 -6
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +45 -56
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +5 -4
- data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.h +26 -0
- data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +1 -1
- data/src/core/credentials/transport/tls/load_system_roots.h +2 -6
- data/src/core/credentials/transport/tls/load_system_roots_fallback.cc +2 -4
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +13 -15
- data/src/core/credentials/transport/tls/load_system_roots_supported.h +3 -2
- data/src/core/credentials/transport/tls/load_system_roots_windows.cc +5 -8
- data/src/core/credentials/transport/tls/spiffe_utils.cc +1 -1
- data/src/core/credentials/transport/tls/ssl_utils.cc +39 -28
- data/src/core/credentials/transport/tls/ssl_utils.h +12 -49
- data/src/core/credentials/transport/tls/tls_security_connector.cc +48 -33
- data/src/core/credentials/transport/tls/tls_security_connector.h +31 -10
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +15 -11
- data/src/core/ext/filters/http/http_filters_plugin.cc +20 -9
- data/src/core/ext/filters/rbac/rbac_filter.cc +43 -21
- data/src/core/ext/filters/rbac/rbac_filter.h +21 -3
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -20
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +32 -67
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +78 -4
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/goaway.h +7 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +5 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +141 -130
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +22 -22
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +402 -269
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +80 -49
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +1 -2
- data/src/core/ext/transport/chttp2/transport/http2_status.h +38 -37
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +178 -5
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +345 -5
- data/src/core/ext/transport/chttp2/transport/parsing.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +25 -5
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/read_context.h +30 -3
- data/src/core/ext/transport/chttp2/transport/stream.h +65 -23
- data/src/core/ext/transport/chttp2/transport/writing.cc +0 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +1 -5
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +4 -17
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb.h +1912 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.c +300 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.h +37 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb.h +187 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.c +64 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb.h +2362 -0
- data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.c +556 -0
- data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.h +47 -0
- data/src/core/ext/upb-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upb.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upb_minitable.h +5 -5
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.c +453 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.h +67 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.h +37 -0
- data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +715 -0
- data/src/core/ext/upbdefs-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upbdefs.h +44 -44
- data/src/core/filter/auth/server_auth_filter.cc +2 -3
- data/src/core/filter/composite/composite_filter.cc +45 -33
- data/src/core/filter/composite/composite_filter.h +5 -4
- data/src/core/filter/ext_proc/ext_proc_filter.cc +224 -0
- data/src/core/filter/ext_proc/ext_proc_filter.h +155 -0
- data/src/core/filter/ext_proc/ext_proc_messages.cc +701 -0
- data/src/core/filter/ext_proc/ext_proc_messages.h +297 -0
- data/src/core/filter/filter_args.h +13 -2
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +30 -3
- data/src/core/handshaker/security/security_handshaker.cc +9 -6
- data/src/core/lib/channel/channel_stack.cc +3 -0
- data/src/core/lib/channel/channel_stack.h +2 -0
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -2
- data/src/core/lib/channel/promise_based_filter.cc +132 -20
- data/src/core/lib/channel/promise_based_filter.h +42 -12
- data/src/core/lib/compression/compression_internal.cc +4 -5
- data/src/core/lib/debug/trace_flags.cc +8 -0
- data/src/core/lib/debug/trace_flags.h +3 -0
- data/src/core/lib/event_engine/ares_resolver.cc +54 -50
- data/src/core/lib/event_engine/ares_resolver.h +3 -2
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +4 -10
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +74 -33
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +4 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +1 -3
- data/src/core/lib/experiments/experiments.cc +60 -96
- data/src/core/lib/experiments/experiments.h +34 -50
- data/src/core/lib/iomgr/cfstream_handle.cc +2 -6
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -10
- data/src/core/lib/iomgr/error.cc +2 -6
- data/src/core/lib/iomgr/error_cfstream.cc +1 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +5 -9
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +1 -1
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +1 -2
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +1 -2
- data/src/core/lib/iomgr/iomgr_posix.cc +0 -4
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -4
- data/src/core/lib/iomgr/iomgr_windows.cc +0 -4
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.cc +3 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/systemd_utils.cc +0 -1
- data/src/core/lib/iomgr/tcp_client.h +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +23 -15
- data/src/core/lib/iomgr/tcp_server.h +1 -1
- data/src/core/lib/iomgr/tcp_server_posix.cc +2 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -1
- data/src/core/lib/iomgr/tcp_server_windows.cc +0 -1
- data/src/core/lib/iomgr/tcp_windows.cc +5 -10
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -4
- data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
- data/src/core/lib/iomgr/vsock.h +3 -1
- data/src/core/lib/resource_quota/memory_quota.cc +1 -1
- data/src/core/lib/security/authorization/rbac_policy.cc +139 -56
- data/src/core/lib/security/authorization/rbac_policy.h +21 -3
- data/src/core/lib/surface/call.cc +3 -9
- data/src/core/lib/surface/call_utils.h +113 -0
- data/src/core/lib/surface/channel_create.cc +1 -1
- data/src/core/lib/surface/channel_create.h +0 -2
- data/src/core/lib/surface/channel_init.cc +77 -38
- data/src/core/lib/surface/channel_init.h +30 -16
- data/src/core/lib/surface/filter_stack_call.cc +5 -10
- data/src/core/lib/surface/init.cc +13 -27
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +0 -27
- data/src/core/lib/transport/error_utils.h +0 -16
- data/src/core/lib/transport/transport.h +7 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +2 -0
- data/src/core/load_balancing/rls/rls.cc +28 -11
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +33 -42
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +0 -2
- data/src/core/load_balancing/xds/cds.cc +3 -1
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +0 -1
- data/src/core/mitigation_engine/mitigation.h +14 -5
- data/src/core/mitigation_engine/mitigation_engine.h +7 -3
- data/src/core/mitigation_engine/mitigation_provider.h +2 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +39 -8
- data/src/core/resolver/dns/{event_engine/event_engine_client_channel_resolver.cc → dns_resolver.cc} +42 -41
- data/src/core/resolver/dns/{event_engine/event_engine_client_channel_resolver.h → dns_resolver.h} +8 -5
- data/src/core/resolver/dns/{event_engine/service_config_helper.cc → service_config_helper.cc} +1 -1
- data/src/core/resolver/dns/{event_engine/service_config_helper.h → service_config_helper.h} +3 -3
- data/src/core/resolver/endpoint_addresses.h +3 -0
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +35 -9
- data/src/core/server/server.cc +2 -6
- data/src/core/server/server_config_selector.h +18 -3
- data/src/core/server/server_config_selector_filter.cc +178 -91
- data/src/core/server/server_config_selector_filter.h +58 -3
- data/src/core/server/xds_server_config_fetcher.cc +196 -129
- data/src/core/server/xds_server_config_fetcher.h +49 -0
- data/src/core/server/xds_server_config_fetcher_legacy.cc +41 -37
- data/src/core/telemetry/histogram.h +94 -14
- data/src/core/telemetry/instrument.cc +179 -74
- data/src/core/telemetry/instrument.h +78 -30
- data/src/core/telemetry/metrics.h +5 -0
- data/src/core/{resolver/dns/dns_resolver_plugin.h → telemetry/telemetry_label.h} +12 -8
- data/src/core/tsi/alts/crypt/aes_gcm.cc +10 -13
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +3 -1
- data/src/core/tsi/ssl_telemetry_utils.cc +216 -259
- data/src/core/tsi/ssl_telemetry_utils.h +12 -2
- data/src/core/tsi/ssl_transport_security.cc +238 -80
- data/src/core/tsi/ssl_transport_security.h +63 -33
- data/src/core/tsi/tls_telemetry.cc +31 -0
- data/src/core/tsi/tls_telemetry.h +47 -0
- data/src/core/tsi/transport_security.cc +2 -2
- data/src/core/tsi/transport_security.h +1 -1
- data/src/core/tsi/transport_security_interface.h +1 -1
- data/src/core/{resolver/dns/native/dns_resolver.h → util/address_sorting_init.cc} +21 -8
- data/src/core/{resolver/dns/c_ares/grpc_ares_wrapper_posix.cc → util/address_sorting_init.h} +7 -8
- data/src/core/util/http_client/httpcli.cc +16 -53
- data/src/core/util/http_client/httpcli.h +0 -7
- data/src/core/util/http_client/httpcli_security_connector.cc +13 -8
- data/src/core/util/linux/cpu.cc +1 -1
- data/src/core/util/load_file.cc +3 -9
- data/src/core/util/load_file.h +3 -4
- data/src/core/util/matchers.h +8 -0
- data/src/core/util/posix/cpu.cc +1 -1
- data/src/core/util/status_helper.cc +0 -20
- data/src/core/util/status_helper.h +3 -14
- data/src/core/xds/grpc/xds_audit_logger_registry.cc +51 -31
- data/src/core/xds/grpc/xds_audit_logger_registry.h +17 -3
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -10
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +8 -6
- data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +488 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc_builder.h +97 -0
- data/src/core/xds/grpc/xds_certificate_provider.cc +7 -7
- data/src/core/xds/grpc/xds_client_grpc.cc +4 -8
- data/src/core/xds/grpc/xds_client_grpc.h +0 -4
- data/src/core/xds/grpc/xds_cluster.h +1 -0
- data/src/core/xds/grpc/xds_cluster_parser.cc +1 -5
- data/src/core/xds/grpc/xds_cluster_parser.h +0 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +0 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +0 -2
- data/src/core/xds/grpc/xds_common_types.cc +0 -91
- data/src/core/xds/grpc/xds_common_types.h +1 -47
- data/src/core/xds/grpc/xds_common_types_parser.cc +84 -378
- data/src/core/xds/grpc/xds_common_types_parser.h +9 -11
- data/src/core/xds/grpc/xds_endpoint_parser.cc +0 -2
- data/src/core/xds/grpc/xds_grpc_service_parser.cc +177 -0
- data/src/core/{resolver/dns/c_ares/dns_resolver_ares.h → xds/grpc/xds_grpc_service_parser.h} +14 -9
- data/src/core/xds/grpc/xds_http_composite_filter.cc +26 -21
- data/src/core/xds/grpc/xds_http_composite_filter.h +4 -3
- data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +418 -0
- data/src/core/xds/grpc/xds_http_ext_proc_filter.h +89 -0
- data/src/core/xds/grpc/xds_http_fault_filter.cc +9 -12
- data/src/core/xds/grpc/xds_http_fault_filter.h +1 -4
- data/src/core/xds/grpc/xds_http_filter.cc +2 -1
- data/src/core/xds/grpc/xds_http_filter.h +6 -5
- data/src/core/xds/grpc/xds_http_filter_registry.cc +10 -127
- data/src/core/xds/grpc/xds_http_filter_registry.h +7 -59
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +13 -14
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -2
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +403 -25
- data/src/core/xds/grpc/xds_http_rbac_filter.h +1 -3
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +8 -13
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +1 -4
- data/src/core/xds/grpc/xds_lb_policy_registry.cc +0 -292
- data/src/core/xds/grpc/xds_lb_policy_registry.h +7 -3
- data/src/core/xds/grpc/xds_listener.cc +2 -0
- data/src/core/xds/grpc/xds_listener.h +5 -0
- data/src/core/xds/grpc/xds_listener_parser.cc +16 -11
- data/src/core/xds/grpc/xds_matcher_parse.h +3 -1
- data/src/core/xds/grpc/xds_metadata_parser.cc +6 -1
- data/src/core/xds/grpc/xds_metadata_parser.h +2 -0
- data/src/core/xds/grpc/xds_route_config.cc +2 -0
- data/src/core/xds/grpc/xds_route_config.h +3 -1
- data/src/core/xds/grpc/xds_route_config_parser.cc +13 -79
- data/src/core/xds/grpc/xds_route_config_parser.h +0 -3
- data/src/core/xds/grpc/xds_routing.cc +116 -69
- data/src/core/xds/grpc/xds_routing.h +19 -8
- data/src/core/xds/grpc/xds_tls_context.cc +117 -0
- data/src/core/xds/grpc/xds_tls_context.h +76 -0
- data/src/core/xds/grpc/xds_tls_context_parser.cc +275 -0
- data/src/core/xds/grpc/xds_tls_context_parser.h +35 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +41 -38
- data/src/core/xds/grpc/xds_transport_grpc.h +4 -2
- data/src/ruby/ext/grpc/rb_call.c +26 -15
- data/src/ruby/ext/grpc/rb_completion_queue.c +6 -5
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/test/client.rb +5 -4
- data/src/ruby/spec/call_spec.rb +14 -0
- data/src/ruby/spec/generic/server_interceptors_spec.rb +3 -6
- metadata +50 -35
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c +0 -716
- data/src/core/lib/iomgr/resolve_address.cc +0 -59
- data/src/core/lib/iomgr/resolve_address.h +0 -125
- data/src/core/lib/iomgr/resolve_address_impl.h +0 -58
- data/src/core/lib/iomgr/resolve_address_posix.cc +0 -184
- data/src/core/lib/iomgr/resolve_address_posix.h +0 -78
- data/src/core/lib/iomgr/resolve_address_windows.cc +0 -169
- data/src/core/lib/iomgr/resolve_address_windows.h +0 -76
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +0 -781
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +0 -93
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +0 -203
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +0 -838
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +0 -1237
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +0 -130
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +0 -35
- data/src/core/resolver/dns/dns_resolver_plugin.cc +0 -64
- data/src/core/resolver/dns/native/dns_resolver.cc +0 -173
- data/src/core/util/json/json_util.cc +0 -101
- data/src/core/util/json/json_util.h +0 -163
|
@@ -18,150 +18,33 @@
|
|
|
18
18
|
|
|
19
19
|
#include <map>
|
|
20
20
|
#include <utility>
|
|
21
|
-
#include <variant>
|
|
22
21
|
#include <vector>
|
|
23
22
|
|
|
24
|
-
#include "envoy/extensions/filters/http/router/v3/router.upb.h"
|
|
25
|
-
#include "envoy/extensions/filters/http/router/v3/router.upbdefs.h"
|
|
26
|
-
#include "src/core/config/experiment_env_var.h"
|
|
27
23
|
#include "src/core/util/grpc_check.h"
|
|
28
|
-
#include "src/core/util/json/json.h"
|
|
29
|
-
#include "src/core/util/sync.h"
|
|
30
|
-
#include "src/core/xds/grpc/xds_http_composite_filter.h"
|
|
31
|
-
#include "src/core/xds/grpc/xds_http_fault_filter.h"
|
|
32
|
-
#include "src/core/xds/grpc/xds_http_gcp_authn_filter.h"
|
|
33
|
-
#include "src/core/xds/grpc/xds_http_rbac_filter.h"
|
|
34
|
-
#include "src/core/xds/grpc/xds_http_stateful_session_filter.h"
|
|
35
|
-
#include "src/core/xds/grpc/xds_metadata_parser.h"
|
|
36
24
|
|
|
37
25
|
namespace grpc_core {
|
|
38
26
|
|
|
39
|
-
//
|
|
40
|
-
// XdsHttpRouterFilter
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
absl::string_view XdsHttpRouterFilter::ConfigProtoName() const {
|
|
44
|
-
return "envoy.extensions.filters.http.router.v3.Router";
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
absl::string_view XdsHttpRouterFilter::OverrideConfigProtoName() const {
|
|
48
|
-
return "";
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
void XdsHttpRouterFilter::PopulateSymtab(upb_DefPool* symtab) const {
|
|
52
|
-
envoy_extensions_filters_http_router_v3_Router_getmsgdef(symtab);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
std::optional<Json> XdsHttpRouterFilter::GenerateFilterConfig(
|
|
56
|
-
absl::string_view /*instance_name*/,
|
|
57
|
-
const XdsResourceType::DecodeContext& context,
|
|
58
|
-
const XdsExtension& extension, ValidationErrors* errors) const {
|
|
59
|
-
const absl::string_view* serialized_filter_config =
|
|
60
|
-
std::get_if<absl::string_view>(&extension.value);
|
|
61
|
-
if (serialized_filter_config == nullptr) {
|
|
62
|
-
errors->AddError("could not parse router filter config");
|
|
63
|
-
return std::nullopt;
|
|
64
|
-
}
|
|
65
|
-
if (envoy_extensions_filters_http_router_v3_Router_parse(
|
|
66
|
-
serialized_filter_config->data(), serialized_filter_config->size(),
|
|
67
|
-
context.arena) == nullptr) {
|
|
68
|
-
errors->AddError("could not parse router filter config");
|
|
69
|
-
return std::nullopt;
|
|
70
|
-
}
|
|
71
|
-
return Json();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
std::optional<Json> XdsHttpRouterFilter::GenerateFilterConfigOverride(
|
|
75
|
-
absl::string_view /*instance_name*/,
|
|
76
|
-
const XdsResourceType::DecodeContext& /*context*/,
|
|
77
|
-
const XdsExtension& /*extension*/, ValidationErrors* errors) const {
|
|
78
|
-
errors->AddError("router filter does not support config override");
|
|
79
|
-
return std::nullopt;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
RefCountedPtr<const FilterConfig> XdsHttpRouterFilter::ParseTopLevelConfig(
|
|
83
|
-
absl::string_view /*instance_name*/,
|
|
84
|
-
const XdsResourceType::DecodeContext& context,
|
|
85
|
-
const XdsExtension& extension, ValidationErrors* errors) const {
|
|
86
|
-
const absl::string_view* serialized_filter_config =
|
|
87
|
-
std::get_if<absl::string_view>(&extension.value);
|
|
88
|
-
if (serialized_filter_config == nullptr) {
|
|
89
|
-
errors->AddError("could not parse router filter config");
|
|
90
|
-
return nullptr;
|
|
91
|
-
}
|
|
92
|
-
if (envoy_extensions_filters_http_router_v3_Router_parse(
|
|
93
|
-
serialized_filter_config->data(), serialized_filter_config->size(),
|
|
94
|
-
context.arena) == nullptr) {
|
|
95
|
-
errors->AddError("could not parse router filter config");
|
|
96
|
-
return nullptr;
|
|
97
|
-
}
|
|
98
|
-
return nullptr;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
RefCountedPtr<const FilterConfig> XdsHttpRouterFilter::ParseOverrideConfig(
|
|
102
|
-
absl::string_view /*instance_name*/,
|
|
103
|
-
const XdsResourceType::DecodeContext& /*context*/,
|
|
104
|
-
const XdsExtension& /*extension*/, ValidationErrors* errors) const {
|
|
105
|
-
errors->AddError("router filter does not support config override");
|
|
106
|
-
return nullptr;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
//
|
|
110
|
-
// XdsHttpFilterRegistry
|
|
111
|
-
//
|
|
112
|
-
|
|
113
|
-
namespace {
|
|
114
|
-
|
|
115
|
-
Mutex* g_mu = new Mutex;
|
|
116
|
-
NoDestruct<absl::AnyInvocable<std::unique_ptr<XdsHttpFilterImpl>()>>
|
|
117
|
-
g_http_filter_factory_factory ABSL_GUARDED_BY(*g_mu);
|
|
118
|
-
|
|
119
|
-
} // namespace
|
|
120
|
-
|
|
121
|
-
void SetXdsHttpFilterFactoryForTest(
|
|
122
|
-
absl::AnyInvocable<std::unique_ptr<XdsHttpFilterImpl>()> factory) {
|
|
123
|
-
MutexLock lock(g_mu);
|
|
124
|
-
*g_http_filter_factory_factory = std::move(factory);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
XdsHttpFilterRegistry::XdsHttpFilterRegistry(bool register_builtins) {
|
|
128
|
-
if (register_builtins) {
|
|
129
|
-
RegisterFilter(std::make_unique<XdsHttpRouterFilter>());
|
|
130
|
-
RegisterFilter(std::make_unique<XdsHttpFaultFilter>());
|
|
131
|
-
RegisterFilter(std::make_unique<XdsHttpRbacFilter>());
|
|
132
|
-
RegisterFilter(std::make_unique<XdsHttpStatefulSessionFilter>());
|
|
133
|
-
RegisterFilter(std::make_unique<XdsHttpGcpAuthnFilter>());
|
|
134
|
-
if (IsExperimentEnvVarEnabled("GRPC_EXPERIMENTAL_XDS_COMPOSITE_FILTER")) {
|
|
135
|
-
RegisterFilter(std::make_unique<XdsHttpCompositeFilter>());
|
|
136
|
-
}
|
|
137
|
-
MutexLock lock(g_mu);
|
|
138
|
-
if (*g_http_filter_factory_factory != nullptr) {
|
|
139
|
-
RegisterFilter((*g_http_filter_factory_factory)());
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
27
|
void XdsHttpFilterRegistry::RegisterFilter(
|
|
145
|
-
std::unique_ptr<
|
|
28
|
+
std::unique_ptr<XdsHttpFilterFactory> factory) {
|
|
146
29
|
GRPC_CHECK(
|
|
147
|
-
top_level_config_map_.emplace(
|
|
30
|
+
top_level_config_map_.emplace(factory->ConfigProtoName(), factory.get())
|
|
148
31
|
.second);
|
|
149
|
-
auto override_proto_name =
|
|
32
|
+
auto override_proto_name = factory->OverrideConfigProtoName();
|
|
150
33
|
if (!override_proto_name.empty()) {
|
|
151
|
-
GRPC_CHECK(
|
|
152
|
-
|
|
34
|
+
GRPC_CHECK(override_config_map_.emplace(override_proto_name, factory.get())
|
|
35
|
+
.second);
|
|
153
36
|
}
|
|
154
|
-
owning_list_.push_back(std::move(
|
|
37
|
+
owning_list_.push_back(std::move(factory));
|
|
155
38
|
}
|
|
156
39
|
|
|
157
|
-
const
|
|
40
|
+
const XdsHttpFilterFactory* XdsHttpFilterRegistry::GetFilterForTopLevelType(
|
|
158
41
|
absl::string_view proto_type_name) const {
|
|
159
42
|
auto it = top_level_config_map_.find(proto_type_name);
|
|
160
43
|
if (it == top_level_config_map_.end()) return nullptr;
|
|
161
44
|
return it->second;
|
|
162
45
|
}
|
|
163
46
|
|
|
164
|
-
const
|
|
47
|
+
const XdsHttpFilterFactory* XdsHttpFilterRegistry::GetFilterForOverrideType(
|
|
165
48
|
absl::string_view proto_type_name) const {
|
|
166
49
|
auto it = override_config_map_.find(proto_type_name);
|
|
167
50
|
if (it == override_config_map_.end()) return nullptr;
|
|
@@ -169,8 +52,8 @@ const XdsHttpFilterImpl* XdsHttpFilterRegistry::GetFilterForOverrideType(
|
|
|
169
52
|
}
|
|
170
53
|
|
|
171
54
|
void XdsHttpFilterRegistry::PopulateSymtab(upb_DefPool* symtab) const {
|
|
172
|
-
for (const auto&
|
|
173
|
-
|
|
55
|
+
for (const auto& factory : owning_list_) {
|
|
56
|
+
factory->PopulateSymtab(symtab);
|
|
174
57
|
}
|
|
175
58
|
}
|
|
176
59
|
|
|
@@ -19,68 +19,19 @@
|
|
|
19
19
|
|
|
20
20
|
#include <map>
|
|
21
21
|
#include <memory>
|
|
22
|
-
#include <optional>
|
|
23
|
-
#include <string>
|
|
24
22
|
#include <utility>
|
|
25
23
|
#include <vector>
|
|
26
24
|
|
|
27
|
-
#include "src/core/lib/channel/channel_args.h"
|
|
28
25
|
#include "src/core/lib/channel/channel_fwd.h"
|
|
29
|
-
#include "src/core/util/validation_errors.h"
|
|
30
|
-
#include "src/core/xds/grpc/xds_common_types.h"
|
|
31
26
|
#include "src/core/xds/grpc/xds_http_filter.h"
|
|
32
|
-
#include "src/core/xds/xds_client/xds_resource_type.h"
|
|
33
27
|
#include "upb/reflection/def.h"
|
|
34
|
-
#include "absl/functional/any_invocable.h"
|
|
35
|
-
#include "absl/status/statusor.h"
|
|
36
28
|
#include "absl/strings/string_view.h"
|
|
37
29
|
|
|
38
30
|
namespace grpc_core {
|
|
39
31
|
|
|
40
|
-
// Exposed for testing purposes only.
|
|
41
|
-
class XdsHttpRouterFilter final : public XdsHttpFilterImpl {
|
|
42
|
-
public:
|
|
43
|
-
absl::string_view ConfigProtoName() const override;
|
|
44
|
-
absl::string_view OverrideConfigProtoName() const override;
|
|
45
|
-
void PopulateSymtab(upb_DefPool* symtab) const override;
|
|
46
|
-
std::optional<Json> GenerateFilterConfig(
|
|
47
|
-
absl::string_view /*instance_name*/,
|
|
48
|
-
const XdsResourceType::DecodeContext& context,
|
|
49
|
-
const XdsExtension& extension, ValidationErrors* errors) const override;
|
|
50
|
-
std::optional<Json> GenerateFilterConfigOverride(
|
|
51
|
-
absl::string_view /*instance_name*/,
|
|
52
|
-
const XdsResourceType::DecodeContext& context,
|
|
53
|
-
const XdsExtension& extension, ValidationErrors* errors) const override;
|
|
54
|
-
const grpc_channel_filter* channel_filter() const override { return nullptr; }
|
|
55
|
-
absl::StatusOr<ServiceConfigJsonEntry> GenerateMethodConfig(
|
|
56
|
-
const Json& /*hcm_filter_config*/,
|
|
57
|
-
const Json* /*filter_config_override*/) const override {
|
|
58
|
-
// This will never be called, since channel_filter() returns null.
|
|
59
|
-
return absl::UnimplementedError("router filter should never be called");
|
|
60
|
-
}
|
|
61
|
-
absl::StatusOr<ServiceConfigJsonEntry> GenerateServiceConfig(
|
|
62
|
-
const Json& /*hcm_filter_config*/) const override {
|
|
63
|
-
// This will never be called, since channel_filter() returns null.
|
|
64
|
-
return absl::UnimplementedError("router filter should never be called");
|
|
65
|
-
}
|
|
66
|
-
void AddFilter(FilterChainBuilder& /*builder*/,
|
|
67
|
-
RefCountedPtr<const FilterConfig> /*config*/) const override {}
|
|
68
|
-
RefCountedPtr<const FilterConfig> ParseTopLevelConfig(
|
|
69
|
-
absl::string_view instance_name,
|
|
70
|
-
const XdsResourceType::DecodeContext& context,
|
|
71
|
-
const XdsExtension& extension, ValidationErrors* errors) const override;
|
|
72
|
-
RefCountedPtr<const FilterConfig> ParseOverrideConfig(
|
|
73
|
-
absl::string_view instance_name,
|
|
74
|
-
const XdsResourceType::DecodeContext& context,
|
|
75
|
-
const XdsExtension& extension, ValidationErrors* errors) const override;
|
|
76
|
-
bool IsSupportedOnClients() const override { return true; }
|
|
77
|
-
bool IsSupportedOnServers() const override { return true; }
|
|
78
|
-
bool IsTerminalFilter() const override { return true; }
|
|
79
|
-
};
|
|
80
|
-
|
|
81
32
|
class XdsHttpFilterRegistry final {
|
|
82
33
|
public:
|
|
83
|
-
|
|
34
|
+
XdsHttpFilterRegistry() = default;
|
|
84
35
|
|
|
85
36
|
// Not copyable.
|
|
86
37
|
XdsHttpFilterRegistry(const XdsHttpFilterRegistry&) = delete;
|
|
@@ -98,25 +49,22 @@ class XdsHttpFilterRegistry final {
|
|
|
98
49
|
return *this;
|
|
99
50
|
}
|
|
100
51
|
|
|
101
|
-
void RegisterFilter(std::unique_ptr<
|
|
52
|
+
void RegisterFilter(std::unique_ptr<XdsHttpFilterFactory> factory);
|
|
102
53
|
|
|
103
|
-
const
|
|
54
|
+
const XdsHttpFilterFactory* GetFilterForTopLevelType(
|
|
104
55
|
absl::string_view proto_type_name) const;
|
|
105
56
|
|
|
106
|
-
const
|
|
57
|
+
const XdsHttpFilterFactory* GetFilterForOverrideType(
|
|
107
58
|
absl::string_view proto_type_name) const;
|
|
108
59
|
|
|
109
60
|
void PopulateSymtab(upb_DefPool* symtab) const;
|
|
110
61
|
|
|
111
62
|
private:
|
|
112
|
-
std::vector<std::unique_ptr<
|
|
113
|
-
std::map<absl::string_view,
|
|
114
|
-
std::map<absl::string_view,
|
|
63
|
+
std::vector<std::unique_ptr<XdsHttpFilterFactory>> owning_list_;
|
|
64
|
+
std::map<absl::string_view, XdsHttpFilterFactory*> top_level_config_map_;
|
|
65
|
+
std::map<absl::string_view, XdsHttpFilterFactory*> override_config_map_;
|
|
115
66
|
};
|
|
116
67
|
|
|
117
|
-
void SetXdsHttpFilterFactoryForTest(
|
|
118
|
-
absl::AnyInvocable<std::unique_ptr<XdsHttpFilterImpl>()> factory);
|
|
119
|
-
|
|
120
68
|
} // namespace grpc_core
|
|
121
69
|
|
|
122
70
|
#endif // GRPC_SRC_CORE_XDS_GRPC_XDS_HTTP_FILTER_REGISTRY_H
|
|
@@ -16,8 +16,6 @@
|
|
|
16
16
|
|
|
17
17
|
#include "src/core/xds/grpc/xds_http_gcp_authn_filter.h"
|
|
18
18
|
|
|
19
|
-
#include <grpc/support/json.h>
|
|
20
|
-
|
|
21
19
|
#include <string>
|
|
22
20
|
#include <utility>
|
|
23
21
|
#include <variant>
|
|
@@ -25,9 +23,6 @@
|
|
|
25
23
|
#include "envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h"
|
|
26
24
|
#include "envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h"
|
|
27
25
|
#include "src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h"
|
|
28
|
-
#include "src/core/lib/channel/channel_args.h"
|
|
29
|
-
#include "src/core/util/json/json.h"
|
|
30
|
-
#include "src/core/util/json/json_writer.h"
|
|
31
26
|
#include "src/core/util/validation_errors.h"
|
|
32
27
|
#include "src/core/xds/grpc/xds_common_types.h"
|
|
33
28
|
#include "src/core/xds/grpc/xds_common_types_parser.h"
|
|
@@ -37,35 +32,37 @@
|
|
|
37
32
|
|
|
38
33
|
namespace grpc_core {
|
|
39
34
|
|
|
40
|
-
absl::string_view
|
|
35
|
+
absl::string_view XdsHttpGcpAuthnFilterFactory::ConfigProtoName() const {
|
|
41
36
|
return "envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig";
|
|
42
37
|
}
|
|
43
38
|
|
|
44
|
-
absl::string_view
|
|
39
|
+
absl::string_view XdsHttpGcpAuthnFilterFactory::OverrideConfigProtoName()
|
|
40
|
+
const {
|
|
45
41
|
return "";
|
|
46
42
|
}
|
|
47
43
|
|
|
48
|
-
void
|
|
44
|
+
void XdsHttpGcpAuthnFilterFactory::PopulateSymtab(upb_DefPool* symtab) const {
|
|
49
45
|
envoy_extensions_filters_http_gcp_authn_v3_GcpAuthnFilterConfig_getmsgdef(
|
|
50
46
|
symtab);
|
|
51
47
|
}
|
|
52
48
|
|
|
53
|
-
const grpc_channel_filter*
|
|
49
|
+
const grpc_channel_filter* XdsHttpGcpAuthnFilterFactory::channel_filter()
|
|
50
|
+
const {
|
|
54
51
|
return &GcpAuthenticationFilter::kFilterVtable;
|
|
55
52
|
}
|
|
56
53
|
|
|
57
|
-
void
|
|
54
|
+
void XdsHttpGcpAuthnFilterFactory::AddFilter(
|
|
58
55
|
FilterChainBuilder& builder,
|
|
59
56
|
RefCountedPtr<const FilterConfig> config) const {
|
|
60
57
|
builder.AddFilter<GcpAuthenticationFilter>(std::move(config));
|
|
61
58
|
}
|
|
62
59
|
|
|
63
|
-
RefCountedPtr<const FilterConfig>
|
|
60
|
+
RefCountedPtr<const FilterConfig> XdsHttpGcpAuthnFilterFactory::MergeConfigs(
|
|
64
61
|
RefCountedPtr<const FilterConfig> top_level_config,
|
|
65
62
|
RefCountedPtr<const FilterConfig> /*virtual_host_override_config*/,
|
|
66
63
|
RefCountedPtr<const FilterConfig> /*route_override_config*/,
|
|
67
64
|
RefCountedPtr<const FilterConfig> /*cluster_weight_override_config*/,
|
|
68
|
-
Blackboard& blackboard) const {
|
|
65
|
+
XdsTransportFactory& /*transport_factory*/, Blackboard& blackboard) const {
|
|
69
66
|
// Make a copy of the parsed config.
|
|
70
67
|
const auto& parsed_config =
|
|
71
68
|
DownCast<const GcpAuthenticationFilter::Config&>(*top_level_config);
|
|
@@ -87,7 +84,8 @@ RefCountedPtr<const FilterConfig> XdsHttpGcpAuthnFilter::MergeConfigs(
|
|
|
87
84
|
return new_config;
|
|
88
85
|
}
|
|
89
86
|
|
|
90
|
-
RefCountedPtr<const FilterConfig>
|
|
87
|
+
RefCountedPtr<const FilterConfig>
|
|
88
|
+
XdsHttpGcpAuthnFilterFactory::ParseTopLevelConfig(
|
|
91
89
|
absl::string_view instance_name,
|
|
92
90
|
const XdsResourceType::DecodeContext& context,
|
|
93
91
|
const XdsExtension& extension, ValidationErrors* errors) const {
|
|
@@ -124,7 +122,8 @@ RefCountedPtr<const FilterConfig> XdsHttpGcpAuthnFilter::ParseTopLevelConfig(
|
|
|
124
122
|
return config;
|
|
125
123
|
}
|
|
126
124
|
|
|
127
|
-
RefCountedPtr<const FilterConfig>
|
|
125
|
+
RefCountedPtr<const FilterConfig>
|
|
126
|
+
XdsHttpGcpAuthnFilterFactory::ParseOverrideConfig(
|
|
128
127
|
absl::string_view /*instance_name*/,
|
|
129
128
|
const XdsResourceType::DecodeContext& /*context*/,
|
|
130
129
|
const XdsExtension& /*extension*/, ValidationErrors* errors) const {
|
|
@@ -19,19 +19,19 @@
|
|
|
19
19
|
|
|
20
20
|
#include <optional>
|
|
21
21
|
|
|
22
|
-
#include "src/core/lib/channel/channel_args.h"
|
|
23
22
|
#include "src/core/lib/channel/channel_fwd.h"
|
|
24
23
|
#include "src/core/util/validation_errors.h"
|
|
25
24
|
#include "src/core/xds/grpc/xds_common_types.h"
|
|
26
25
|
#include "src/core/xds/grpc/xds_http_filter.h"
|
|
27
26
|
#include "src/core/xds/xds_client/xds_resource_type.h"
|
|
27
|
+
#include "src/core/xds/xds_client/xds_transport.h"
|
|
28
28
|
#include "upb/reflection/def.h"
|
|
29
29
|
#include "absl/status/statusor.h"
|
|
30
30
|
#include "absl/strings/string_view.h"
|
|
31
31
|
|
|
32
32
|
namespace grpc_core {
|
|
33
33
|
|
|
34
|
-
class
|
|
34
|
+
class XdsHttpGcpAuthnFilterFactory final : public XdsHttpFilterFactory {
|
|
35
35
|
public:
|
|
36
36
|
absl::string_view ConfigProtoName() const override;
|
|
37
37
|
absl::string_view OverrideConfigProtoName() const override;
|
|
@@ -77,6 +77,7 @@ class XdsHttpGcpAuthnFilter final : public XdsHttpFilterImpl {
|
|
|
77
77
|
RefCountedPtr<const FilterConfig> /*virtual_host_override_config*/,
|
|
78
78
|
RefCountedPtr<const FilterConfig> /*route_override_config*/,
|
|
79
79
|
RefCountedPtr<const FilterConfig> /*cluster_weight_override_config*/,
|
|
80
|
+
XdsTransportFactory& transport_factory,
|
|
80
81
|
Blackboard& blackboard) const override;
|
|
81
82
|
bool IsSupportedOnClients() const override { return true; }
|
|
82
83
|
bool IsSupportedOnServers() const override { return false; }
|