grpc 1.37.1 → 1.38.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +64 -58
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +5 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +101 -93
- data/src/core/ext/xds/xds_api.h +6 -6
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +4 -4
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +36 -34
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +477 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +68 -45
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
@@ -48,7 +48,7 @@ class XdsClient : public DualRefCounted<XdsClient> {
|
|
48
48
|
public:
|
49
49
|
virtual ~ListenerWatcherInterface() = default;
|
50
50
|
virtual void OnListenerChanged(XdsApi::LdsUpdate listener) = 0;
|
51
|
-
virtual void OnError(
|
51
|
+
virtual void OnError(grpc_error_handle error) = 0;
|
52
52
|
virtual void OnResourceDoesNotExist() = 0;
|
53
53
|
};
|
54
54
|
|
@@ -57,7 +57,7 @@ class XdsClient : public DualRefCounted<XdsClient> {
|
|
57
57
|
public:
|
58
58
|
virtual ~RouteConfigWatcherInterface() = default;
|
59
59
|
virtual void OnRouteConfigChanged(XdsApi::RdsUpdate route_config) = 0;
|
60
|
-
virtual void OnError(
|
60
|
+
virtual void OnError(grpc_error_handle error) = 0;
|
61
61
|
virtual void OnResourceDoesNotExist() = 0;
|
62
62
|
};
|
63
63
|
|
@@ -66,7 +66,7 @@ class XdsClient : public DualRefCounted<XdsClient> {
|
|
66
66
|
public:
|
67
67
|
virtual ~ClusterWatcherInterface() = default;
|
68
68
|
virtual void OnClusterChanged(XdsApi::CdsUpdate cluster_data) = 0;
|
69
|
-
virtual void OnError(
|
69
|
+
virtual void OnError(grpc_error_handle error) = 0;
|
70
70
|
virtual void OnResourceDoesNotExist() = 0;
|
71
71
|
};
|
72
72
|
|
@@ -75,17 +75,19 @@ class XdsClient : public DualRefCounted<XdsClient> {
|
|
75
75
|
public:
|
76
76
|
virtual ~EndpointWatcherInterface() = default;
|
77
77
|
virtual void OnEndpointChanged(XdsApi::EdsUpdate update) = 0;
|
78
|
-
virtual void OnError(
|
78
|
+
virtual void OnError(grpc_error_handle error) = 0;
|
79
79
|
virtual void OnResourceDoesNotExist() = 0;
|
80
80
|
};
|
81
81
|
|
82
82
|
// Factory function to get or create the global XdsClient instance.
|
83
83
|
// If *error is not GRPC_ERROR_NONE upon return, then there was
|
84
84
|
// an error initializing the client.
|
85
|
-
static RefCountedPtr<XdsClient> GetOrCreate(
|
85
|
+
static RefCountedPtr<XdsClient> GetOrCreate(const grpc_channel_args* args,
|
86
|
+
grpc_error_handle* error);
|
86
87
|
|
87
|
-
//
|
88
|
-
|
88
|
+
// Most callers should not instantiate directly. Use GetOrCreate() instead.
|
89
|
+
XdsClient(std::unique_ptr<XdsBootstrap> bootstrap,
|
90
|
+
const grpc_channel_args* args);
|
89
91
|
~XdsClient() override;
|
90
92
|
|
91
93
|
const XdsBootstrap& bootstrap() const {
|
@@ -200,6 +202,11 @@ class XdsClient : public DualRefCounted<XdsClient> {
|
|
200
202
|
// implementation.
|
201
203
|
std::string DumpClientConfigBinary();
|
202
204
|
|
205
|
+
// Helpers for encoding the XdsClient object in channel args.
|
206
|
+
grpc_arg MakeChannelArg() const;
|
207
|
+
static RefCountedPtr<XdsClient> GetFromChannelArgs(
|
208
|
+
const grpc_channel_args& args);
|
209
|
+
|
203
210
|
private:
|
204
211
|
// Contains a channel to the xds server and all the data related to the
|
205
212
|
// channel. Holds a ref to the xds client object.
|
@@ -236,9 +243,11 @@ class XdsClient : public DualRefCounted<XdsClient> {
|
|
236
243
|
void StartConnectivityWatchLocked();
|
237
244
|
void CancelConnectivityWatchLocked();
|
238
245
|
|
239
|
-
void
|
240
|
-
|
241
|
-
|
246
|
+
void SubscribeLocked(const std::string& type_url, const std::string& name)
|
247
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&XdsClient::mu_);
|
248
|
+
void UnsubscribeLocked(const std::string& type_url, const std::string& name,
|
249
|
+
bool delay_unsubscription)
|
250
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&XdsClient::mu_);
|
242
251
|
|
243
252
|
private:
|
244
253
|
class StateWatcher;
|
@@ -308,48 +317,53 @@ class XdsClient : public DualRefCounted<XdsClient> {
|
|
308
317
|
};
|
309
318
|
|
310
319
|
// Sends an error notification to all watchers.
|
311
|
-
void NotifyOnErrorLocked(
|
320
|
+
void NotifyOnErrorLocked(grpc_error_handle error)
|
321
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
312
322
|
|
313
323
|
XdsApi::ClusterLoadReportMap BuildLoadReportSnapshotLocked(
|
314
|
-
bool send_all_clusters, const std::set<std::string>& clusters)
|
324
|
+
bool send_all_clusters, const std::set<std::string>& clusters)
|
325
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
315
326
|
|
316
|
-
void
|
317
|
-
grpc_millis update_time, const XdsApi::AdsParseResult& result)
|
318
|
-
|
319
|
-
const std::string& type_url,
|
320
|
-
XdsApi::ResourceMetadataMap* resource_metadata_map);
|
327
|
+
void UpdateResourceMetadataWithFailedParseResultLocked(
|
328
|
+
grpc_millis update_time, const XdsApi::AdsParseResult& result)
|
329
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
321
330
|
|
331
|
+
std::unique_ptr<XdsBootstrap> bootstrap_;
|
332
|
+
grpc_channel_args* args_;
|
322
333
|
const grpc_millis request_timeout_;
|
323
334
|
grpc_pollset_set* interested_parties_;
|
324
|
-
std::unique_ptr<XdsBootstrap> bootstrap_;
|
325
335
|
OrphanablePtr<CertificateProviderStore> certificate_provider_store_;
|
326
336
|
XdsApi api_;
|
327
337
|
|
328
338
|
Mutex mu_;
|
329
339
|
|
330
340
|
// The channel for communicating with the xds server.
|
331
|
-
OrphanablePtr<ChannelState> chand_;
|
341
|
+
OrphanablePtr<ChannelState> chand_ ABSL_GUARDED_BY(mu_);
|
332
342
|
|
333
343
|
// One entry for each watched LDS resource.
|
334
|
-
std::map<std::string /*listener_name*/, ListenerState> listener_map_
|
344
|
+
std::map<std::string /*listener_name*/, ListenerState> listener_map_
|
345
|
+
ABSL_GUARDED_BY(mu_);
|
335
346
|
// One entry for each watched RDS resource.
|
336
347
|
std::map<std::string /*route_config_name*/, RouteConfigState>
|
337
|
-
route_config_map_;
|
348
|
+
route_config_map_ ABSL_GUARDED_BY(mu_);
|
338
349
|
// One entry for each watched CDS resource.
|
339
|
-
std::map<std::string /*cluster_name*/, ClusterState> cluster_map_
|
350
|
+
std::map<std::string /*cluster_name*/, ClusterState> cluster_map_
|
351
|
+
ABSL_GUARDED_BY(mu_);
|
340
352
|
// One entry for each watched EDS resource.
|
341
|
-
std::map<std::string /*eds_service_name*/, EndpointState> endpoint_map_
|
353
|
+
std::map<std::string /*eds_service_name*/, EndpointState> endpoint_map_
|
354
|
+
ABSL_GUARDED_BY(mu_);
|
342
355
|
|
343
356
|
// Load report data.
|
344
357
|
std::map<
|
345
358
|
std::pair<std::string /*cluster_name*/, std::string /*eds_service_name*/>,
|
346
359
|
LoadReportState>
|
347
|
-
load_report_map_;
|
360
|
+
load_report_map_ ABSL_GUARDED_BY(mu_);
|
348
361
|
|
349
362
|
// Stores the most recent accepted resource version for each resource type.
|
350
|
-
std::map<std::string /*type*/, std::string /*version*/> resource_version_map_
|
363
|
+
std::map<std::string /*type*/, std::string /*version*/> resource_version_map_
|
364
|
+
ABSL_GUARDED_BY(mu_);
|
351
365
|
|
352
|
-
bool shutting_down_ = false;
|
366
|
+
bool shutting_down_ ABSL_GUARDED_BY(mu_) = false;
|
353
367
|
};
|
354
368
|
|
355
369
|
namespace internal {
|
@@ -362,4 +376,4 @@ void SetXdsFallbackBootstrapConfig(const char* config);
|
|
362
376
|
|
363
377
|
} // namespace grpc_core
|
364
378
|
|
365
|
-
#endif
|
379
|
+
#endif // GRPC_CORE_EXT_XDS_XDS_CLIENT_H
|
@@ -149,7 +149,7 @@ class XdsClusterDropStats : public RefCounted<XdsClusterDropStats> {
|
|
149
149
|
// dropped_requests can be accessed by both the picker (from data plane
|
150
150
|
// mutex) and the load reporting thread (from the control plane combiner).
|
151
151
|
Mutex mu_;
|
152
|
-
CategorizedDropsMap categorized_drops_;
|
152
|
+
CategorizedDropsMap categorized_drops_ ABSL_GUARDED_BY(mu_);
|
153
153
|
};
|
154
154
|
|
155
155
|
// Locality stats for an xds cluster.
|
@@ -231,7 +231,8 @@ class XdsClusterLocalityStats : public RefCounted<XdsClusterLocalityStats> {
|
|
231
231
|
// call's recv_trailing_metadata (not from the control plane work serializer)
|
232
232
|
// and the load reporting thread (from the control plane work serializer).
|
233
233
|
Mutex backend_metrics_mu_;
|
234
|
-
std::map<std::string, BackendMetric> backend_metrics_
|
234
|
+
std::map<std::string, BackendMetric> backend_metrics_
|
235
|
+
ABSL_GUARDED_BY(backend_metrics_mu_);
|
235
236
|
};
|
236
237
|
|
237
238
|
} // namespace grpc_core
|
@@ -22,10 +22,10 @@
|
|
22
22
|
|
23
23
|
#include "src/core/ext/xds/xds_certificate_provider.h"
|
24
24
|
#include "src/core/ext/xds/xds_client.h"
|
25
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
25
26
|
#include "src/core/lib/channel/channel_args.h"
|
26
27
|
#include "src/core/lib/gprpp/host_port.h"
|
27
28
|
#include "src/core/lib/iomgr/sockaddr.h"
|
28
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
29
29
|
#include "src/core/lib/iomgr/socket_utils.h"
|
30
30
|
#include "src/core/lib/security/credentials/xds/xds_credentials.h"
|
31
31
|
#include "src/core/lib/surface/api_trace.h"
|
@@ -163,8 +163,14 @@ const XdsApi::LdsUpdate::FilterChainData* FindFilterChainDataForSourceType(
|
|
163
163
|
return nullptr;
|
164
164
|
}
|
165
165
|
grpc_resolved_address source_addr;
|
166
|
-
grpc_string_to_sockaddr(
|
167
|
-
|
166
|
+
grpc_error_handle error = grpc_string_to_sockaddr(
|
167
|
+
&source_addr, host.c_str(), 0 /* port doesn't matter here */);
|
168
|
+
if (error != GRPC_ERROR_NONE) {
|
169
|
+
gpr_log(GPR_DEBUG, "Could not parse string to socket address: %s",
|
170
|
+
host.c_str());
|
171
|
+
GRPC_ERROR_UNREF(error);
|
172
|
+
return nullptr;
|
173
|
+
}
|
168
174
|
// Use kAny only if kSameIporLoopback and kExternal are empty
|
169
175
|
if (source_types_array[static_cast<int>(
|
170
176
|
XdsApi::LdsUpdate::FilterChainMap::
|
@@ -208,8 +214,14 @@ const XdsApi::LdsUpdate::FilterChainData* FindFilterChainDataForDestinationIp(
|
|
208
214
|
return nullptr;
|
209
215
|
}
|
210
216
|
grpc_resolved_address destination_addr;
|
211
|
-
grpc_string_to_sockaddr(
|
212
|
-
|
217
|
+
grpc_error_handle error = grpc_string_to_sockaddr(
|
218
|
+
&destination_addr, host.c_str(), 0 /* port doesn't matter here */);
|
219
|
+
if (error != GRPC_ERROR_NONE) {
|
220
|
+
gpr_log(GPR_DEBUG, "Could not parse string to socket address: %s",
|
221
|
+
host.c_str());
|
222
|
+
GRPC_ERROR_UNREF(error);
|
223
|
+
return nullptr;
|
224
|
+
}
|
213
225
|
const XdsApi::LdsUpdate::FilterChainMap::DestinationIp* best_match = nullptr;
|
214
226
|
for (const auto& entry : destination_ip_vector) {
|
215
227
|
// Special case for catch-all
|
@@ -413,8 +425,8 @@ class XdsServerConfigFetcher : public grpc_server_config_fetcher {
|
|
413
425
|
return;
|
414
426
|
}
|
415
427
|
if (filter_chain_match_manager_ == nullptr) {
|
416
|
-
if (serving_status_notifier_.
|
417
|
-
serving_status_notifier_.
|
428
|
+
if (serving_status_notifier_.on_serving_status_update != nullptr) {
|
429
|
+
serving_status_notifier_.on_serving_status_update(
|
418
430
|
serving_status_notifier_.user_data, listening_address_.c_str(),
|
419
431
|
GRPC_STATUS_OK, "");
|
420
432
|
} else {
|
@@ -436,23 +448,25 @@ class XdsServerConfigFetcher : public grpc_server_config_fetcher {
|
|
436
448
|
}
|
437
449
|
}
|
438
450
|
|
439
|
-
void OnError(
|
451
|
+
void OnError(grpc_error_handle error) override {
|
440
452
|
if (filter_chain_match_manager_ != nullptr) {
|
441
453
|
gpr_log(GPR_ERROR,
|
442
454
|
"ListenerWatcher:%p XdsClient reports error: %s for %s; "
|
443
455
|
"ignoring in favor of existing resource",
|
444
|
-
this,
|
456
|
+
this, grpc_error_std_string(error).c_str(),
|
457
|
+
listening_address_.c_str());
|
445
458
|
} else {
|
446
|
-
if (serving_status_notifier_.
|
447
|
-
serving_status_notifier_.
|
459
|
+
if (serving_status_notifier_.on_serving_status_update != nullptr) {
|
460
|
+
serving_status_notifier_.on_serving_status_update(
|
448
461
|
serving_status_notifier_.user_data, listening_address_.c_str(),
|
449
|
-
GRPC_STATUS_UNAVAILABLE,
|
462
|
+
GRPC_STATUS_UNAVAILABLE, grpc_error_std_string(error).c_str());
|
450
463
|
} else {
|
451
464
|
gpr_log(
|
452
465
|
GPR_ERROR,
|
453
466
|
"ListenerWatcher:%p error obtaining xDS Listener resource: %s; "
|
454
467
|
"not serving on %s",
|
455
|
-
this,
|
468
|
+
this, grpc_error_std_string(error).c_str(),
|
469
|
+
listening_address_.c_str());
|
456
470
|
}
|
457
471
|
}
|
458
472
|
GRPC_ERROR_UNREF(error);
|
@@ -469,8 +483,8 @@ class XdsServerConfigFetcher : public grpc_server_config_fetcher {
|
|
469
483
|
server_config_watcher_->StopServing();
|
470
484
|
filter_chain_match_manager_.reset();
|
471
485
|
}
|
472
|
-
if (serving_status_notifier_.
|
473
|
-
serving_status_notifier_.
|
486
|
+
if (serving_status_notifier_.on_serving_status_update != nullptr) {
|
487
|
+
serving_status_notifier_.on_serving_status_update(
|
474
488
|
serving_status_notifier_.user_data, listening_address_.c_str(),
|
475
489
|
static_cast<grpc_status_code>(status.raw_code()),
|
476
490
|
std::string(status.message()).c_str());
|
@@ -500,23 +514,23 @@ class XdsServerConfigFetcher : public grpc_server_config_fetcher {
|
|
500
514
|
grpc_server_xds_status_notifier serving_status_notifier_;
|
501
515
|
Mutex mu_;
|
502
516
|
std::map<grpc_server_config_fetcher::WatcherInterface*, WatcherState>
|
503
|
-
watchers_;
|
517
|
+
watchers_ ABSL_GUARDED_BY(mu_);
|
504
518
|
};
|
505
519
|
|
506
520
|
} // namespace
|
507
521
|
} // namespace grpc_core
|
508
522
|
|
509
523
|
grpc_server_config_fetcher* grpc_server_config_fetcher_xds_create(
|
510
|
-
grpc_server_xds_status_notifier notifier) {
|
524
|
+
grpc_server_xds_status_notifier notifier, const grpc_channel_args* args) {
|
511
525
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
512
526
|
grpc_core::ExecCtx exec_ctx;
|
513
527
|
GRPC_API_TRACE("grpc_server_config_fetcher_xds_create()", 0, ());
|
514
|
-
|
528
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
515
529
|
grpc_core::RefCountedPtr<grpc_core::XdsClient> xds_client =
|
516
|
-
grpc_core::XdsClient::GetOrCreate(&error);
|
530
|
+
grpc_core::XdsClient::GetOrCreate(args, &error);
|
517
531
|
if (error != GRPC_ERROR_NONE) {
|
518
532
|
gpr_log(GPR_ERROR, "Failed to create xds client: %s",
|
519
|
-
|
533
|
+
grpc_error_std_string(error).c_str());
|
520
534
|
GRPC_ERROR_UNREF(error);
|
521
535
|
return nullptr;
|
522
536
|
}
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include "src/core/lib/
|
21
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
22
22
|
|
23
23
|
#include <stdio.h>
|
24
24
|
#include <string.h>
|
@@ -52,10 +52,10 @@ bool grpc_parse_unix(const grpc_core::URI& uri,
|
|
52
52
|
uri.scheme().c_str());
|
53
53
|
return false;
|
54
54
|
}
|
55
|
-
|
55
|
+
grpc_error_handle error =
|
56
56
|
grpc_core::UnixSockaddrPopulate(uri.path(), resolved_addr);
|
57
57
|
if (error != GRPC_ERROR_NONE) {
|
58
|
-
gpr_log(GPR_ERROR, "%s",
|
58
|
+
gpr_log(GPR_ERROR, "%s", grpc_error_std_string(error).c_str());
|
59
59
|
GRPC_ERROR_UNREF(error);
|
60
60
|
return false;
|
61
61
|
}
|
@@ -69,10 +69,10 @@ bool grpc_parse_unix_abstract(const grpc_core::URI& uri,
|
|
69
69
|
uri.scheme().c_str());
|
70
70
|
return false;
|
71
71
|
}
|
72
|
-
|
72
|
+
grpc_error_handle error =
|
73
73
|
grpc_core::UnixAbstractSockaddrPopulate(uri.path(), resolved_addr);
|
74
74
|
if (error != GRPC_ERROR_NONE) {
|
75
|
-
gpr_log(GPR_ERROR, "%s",
|
75
|
+
gpr_log(GPR_ERROR, "%s", grpc_error_std_string(error).c_str());
|
76
76
|
GRPC_ERROR_UNREF(error);
|
77
77
|
return false;
|
78
78
|
}
|
@@ -81,8 +81,8 @@ bool grpc_parse_unix_abstract(const grpc_core::URI& uri,
|
|
81
81
|
|
82
82
|
namespace grpc_core {
|
83
83
|
|
84
|
-
|
85
|
-
|
84
|
+
grpc_error_handle UnixSockaddrPopulate(absl::string_view path,
|
85
|
+
grpc_resolved_address* resolved_addr) {
|
86
86
|
struct sockaddr_un* un =
|
87
87
|
reinterpret_cast<struct sockaddr_un*>(resolved_addr->addr);
|
88
88
|
const size_t maxlen = sizeof(un->sun_path) - 1;
|
@@ -99,8 +99,8 @@ grpc_error* UnixSockaddrPopulate(absl::string_view path,
|
|
99
99
|
return GRPC_ERROR_NONE;
|
100
100
|
}
|
101
101
|
|
102
|
-
|
103
|
-
|
102
|
+
grpc_error_handle UnixAbstractSockaddrPopulate(
|
103
|
+
absl::string_view path, grpc_resolved_address* resolved_addr) {
|
104
104
|
struct sockaddr_un* un =
|
105
105
|
reinterpret_cast<struct sockaddr_un*>(resolved_addr->addr);
|
106
106
|
const size_t maxlen = sizeof(un->sun_path) - 1;
|
@@ -122,25 +122,25 @@ grpc_error* UnixAbstractSockaddrPopulate(absl::string_view path,
|
|
122
122
|
|
123
123
|
#else /* GRPC_HAVE_UNIX_SOCKET */
|
124
124
|
|
125
|
-
bool grpc_parse_unix(const grpc_core::URI& uri
|
126
|
-
grpc_resolved_address* resolved_addr) {
|
125
|
+
bool grpc_parse_unix(const grpc_core::URI& /* uri */,
|
126
|
+
grpc_resolved_address* /* resolved_addr */) {
|
127
127
|
abort();
|
128
128
|
}
|
129
129
|
|
130
|
-
bool grpc_parse_unix_abstract(const grpc_core::URI& uri
|
131
|
-
grpc_resolved_address* resolved_addr) {
|
130
|
+
bool grpc_parse_unix_abstract(const grpc_core::URI& /* uri */,
|
131
|
+
grpc_resolved_address* /* resolved_addr */) {
|
132
132
|
abort();
|
133
133
|
}
|
134
134
|
|
135
135
|
namespace grpc_core {
|
136
136
|
|
137
|
-
|
138
|
-
|
137
|
+
grpc_error_handle UnixSockaddrPopulate(
|
138
|
+
absl::string_view /* path */, grpc_resolved_address* /* resolved_addr */) {
|
139
139
|
abort();
|
140
140
|
}
|
141
141
|
|
142
|
-
|
143
|
-
|
142
|
+
grpc_error_handle UnixAbstractSockaddrPopulate(
|
143
|
+
absl::string_view /* path */, grpc_resolved_address* /* resolved_addr */) {
|
144
144
|
abort();
|
145
145
|
}
|
146
146
|
|
@@ -16,8 +16,8 @@
|
|
16
16
|
*
|
17
17
|
*/
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
#define
|
19
|
+
#ifndef GRPC_CORE_LIB_ADDRESS_UTILS_PARSE_ADDRESS_H
|
20
|
+
#define GRPC_CORE_LIB_ADDRESS_UTILS_PARSE_ADDRESS_H
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
@@ -64,14 +64,14 @@ uint16_t grpc_strhtons(const char* port);
|
|
64
64
|
namespace grpc_core {
|
65
65
|
|
66
66
|
/** Populate \a resolved_addr to be a unix socket at |path| */
|
67
|
-
|
68
|
-
|
67
|
+
grpc_error_handle UnixSockaddrPopulate(absl::string_view path,
|
68
|
+
grpc_resolved_address* resolved_addr);
|
69
69
|
|
70
70
|
/** Populate \a resolved_addr to be a unix socket in the abstract namespace
|
71
71
|
* at |path| */
|
72
|
-
|
73
|
-
|
72
|
+
grpc_error_handle UnixAbstractSockaddrPopulate(
|
73
|
+
absl::string_view path, grpc_resolved_address* resolved_addr);
|
74
74
|
|
75
75
|
} // namespace grpc_core
|
76
76
|
|
77
|
-
#endif /*
|
77
|
+
#endif /* GRPC_CORE_LIB_ADDRESS_UTILS_PARSE_ADDRESS_H */
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include "src/core/lib/
|
21
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
22
22
|
|
23
23
|
#include <errno.h>
|
24
24
|
#include <inttypes.h>
|
@@ -198,25 +198,8 @@ std::string grpc_sockaddr_to_string(const grpc_resolved_address* resolved_addr,
|
|
198
198
|
return out;
|
199
199
|
}
|
200
200
|
|
201
|
-
|
202
|
-
|
203
|
-
memset(out, 0, sizeof(grpc_resolved_address));
|
204
|
-
grpc_sockaddr_in6* addr6 = reinterpret_cast<grpc_sockaddr_in6*>(out->addr);
|
205
|
-
grpc_sockaddr_in* addr4 = reinterpret_cast<grpc_sockaddr_in*>(out->addr);
|
206
|
-
if (grpc_inet_pton(GRPC_AF_INET6, addr, &addr6->sin6_addr) == 1) {
|
207
|
-
addr6->sin6_family = GRPC_AF_INET6;
|
208
|
-
out->len = sizeof(grpc_sockaddr_in6);
|
209
|
-
} else if (grpc_inet_pton(GRPC_AF_INET, addr, &addr4->sin_addr) == 1) {
|
210
|
-
addr4->sin_family = GRPC_AF_INET;
|
211
|
-
out->len = sizeof(grpc_sockaddr_in);
|
212
|
-
} else {
|
213
|
-
GPR_ASSERT(0);
|
214
|
-
}
|
215
|
-
grpc_sockaddr_set_port(out, port);
|
216
|
-
}
|
217
|
-
|
218
|
-
grpc_error* grpc_string_to_sockaddr_new(grpc_resolved_address* out,
|
219
|
-
const char* addr, int port) {
|
201
|
+
grpc_error_handle grpc_string_to_sockaddr(grpc_resolved_address* out,
|
202
|
+
const char* addr, int port) {
|
220
203
|
memset(out, 0, sizeof(grpc_resolved_address));
|
221
204
|
grpc_sockaddr_in6* addr6 = reinterpret_cast<grpc_sockaddr_in6*>(out->addr);
|
222
205
|
grpc_sockaddr_in* addr4 = reinterpret_cast<grpc_sockaddr_in*>(out->addr);
|