grpc 1.37.1 → 1.39.0
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 +96 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +334 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +91 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +28 -13
- data/include/grpc/impl/codegen/port_platform.h +22 -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 +630 -3103
- 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 +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- 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/ring_hash/ring_hash.cc +755 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- 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 +46 -54
- 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 +146 -155
- 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_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/dns/c_ares/dns_resolver_ares.cc +24 -18
- 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_event_engine.cc +31 -0
- 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_event_engine.cc +28 -0
- 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 +18 -12
- 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 +20 -13
- 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 +60 -32
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- 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 +2449 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -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 +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +25 -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 +3 -2
- 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 +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
- 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 +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- 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 +348 -199
- data/src/core/ext/xds/xds_api.h +21 -12
- 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 +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -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/channelz.h +3 -0
- 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/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/slice_allocator.cc +89 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- 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 +183 -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_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -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/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- 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 +2 -2
- 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 +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- 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 +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -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/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- 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 +22 -19
- 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 +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- 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 +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- 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.h +6 -1
- 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/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- 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 +12 -10
- 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/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -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 +22 -9
- 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 +27 -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 +67 -46
- data/src/core/lib/surface/call.h +13 -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 +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -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 +21 -10
- 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 +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -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/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- 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 +483 -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 +9 -7
- 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/cipher_extra.c +4 -0
- 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/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- 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/bn/prime.c +0 -4
- 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/digest.c +7 -0
- 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 +87 -160
- 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 +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- 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/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -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 +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- 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 +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -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 +42 -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_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- 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_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -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/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- 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/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -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 +20 -49
- 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/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- 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/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- 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 +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +94 -46
- 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
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -47,7 +47,7 @@ namespace {
|
|
47
47
|
class HttpConnectHandshaker : public Handshaker {
|
48
48
|
public:
|
49
49
|
HttpConnectHandshaker();
|
50
|
-
void Shutdown(
|
50
|
+
void Shutdown(grpc_error_handle why) override;
|
51
51
|
void DoHandshake(grpc_tcp_server_acceptor* acceptor,
|
52
52
|
grpc_closure* on_handshake_done,
|
53
53
|
HandshakerArgs* args) override;
|
@@ -55,30 +55,31 @@ class HttpConnectHandshaker : public Handshaker {
|
|
55
55
|
|
56
56
|
private:
|
57
57
|
~HttpConnectHandshaker() override;
|
58
|
-
void CleanupArgsForFailureLocked();
|
59
|
-
void HandshakeFailedLocked(
|
60
|
-
|
61
|
-
static void
|
62
|
-
static void
|
63
|
-
static void
|
58
|
+
void CleanupArgsForFailureLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
59
|
+
void HandshakeFailedLocked(grpc_error_handle error)
|
60
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
61
|
+
static void OnWriteDone(void* arg, grpc_error_handle error);
|
62
|
+
static void OnReadDone(void* arg, grpc_error_handle error);
|
63
|
+
static void OnWriteDoneScheduler(void* arg, grpc_error_handle error);
|
64
|
+
static void OnReadDoneScheduler(void* arg, grpc_error_handle error);
|
64
65
|
|
65
66
|
Mutex mu_;
|
66
67
|
|
67
|
-
bool is_shutdown_ = false;
|
68
|
+
bool is_shutdown_ ABSL_GUARDED_BY(mu_) = false;
|
68
69
|
// Endpoint and read buffer to destroy after a shutdown.
|
69
|
-
grpc_endpoint* endpoint_to_destroy_ = nullptr;
|
70
|
-
grpc_slice_buffer* read_buffer_to_destroy_ = nullptr;
|
70
|
+
grpc_endpoint* endpoint_to_destroy_ ABSL_GUARDED_BY(mu_) = nullptr;
|
71
|
+
grpc_slice_buffer* read_buffer_to_destroy_ ABSL_GUARDED_BY(mu_) = nullptr;
|
71
72
|
|
72
73
|
// State saved while performing the handshake.
|
73
74
|
HandshakerArgs* args_ = nullptr;
|
74
75
|
grpc_closure* on_handshake_done_ = nullptr;
|
75
76
|
|
76
77
|
// Objects for processing the HTTP CONNECT request and response.
|
77
|
-
grpc_slice_buffer write_buffer_;
|
78
|
-
grpc_closure request_done_closure_;
|
79
|
-
grpc_closure response_read_closure_;
|
80
|
-
grpc_http_parser http_parser_;
|
81
|
-
grpc_http_response http_response_;
|
78
|
+
grpc_slice_buffer write_buffer_ ABSL_GUARDED_BY(mu_);
|
79
|
+
grpc_closure request_done_closure_ ABSL_GUARDED_BY(mu_);
|
80
|
+
grpc_closure response_read_closure_ ABSL_GUARDED_BY(mu_);
|
81
|
+
grpc_http_parser http_parser_ ABSL_GUARDED_BY(mu_);
|
82
|
+
grpc_http_response http_response_ ABSL_GUARDED_BY(mu_);
|
82
83
|
};
|
83
84
|
|
84
85
|
HttpConnectHandshaker::~HttpConnectHandshaker() {
|
@@ -107,7 +108,7 @@ void HttpConnectHandshaker::CleanupArgsForFailureLocked() {
|
|
107
108
|
|
108
109
|
// If the handshake failed or we're shutting down, clean up and invoke the
|
109
110
|
// callback with the error.
|
110
|
-
void HttpConnectHandshaker::HandshakeFailedLocked(
|
111
|
+
void HttpConnectHandshaker::HandshakeFailedLocked(grpc_error_handle error) {
|
111
112
|
if (error == GRPC_ERROR_NONE) {
|
112
113
|
// If we were shut down after an endpoint operation succeeded but
|
113
114
|
// before the endpoint callback was invoked, we need to generate our
|
@@ -133,7 +134,8 @@ void HttpConnectHandshaker::HandshakeFailedLocked(grpc_error* error) {
|
|
133
134
|
|
134
135
|
// This callback can be invoked inline while already holding onto the mutex. To
|
135
136
|
// avoid deadlocks, schedule OnWriteDone on ExecCtx.
|
136
|
-
void HttpConnectHandshaker::OnWriteDoneScheduler(void* arg,
|
137
|
+
void HttpConnectHandshaker::OnWriteDoneScheduler(void* arg,
|
138
|
+
grpc_error_handle error) {
|
137
139
|
auto* handshaker = static_cast<HttpConnectHandshaker*>(arg);
|
138
140
|
grpc_core::ExecCtx::Run(
|
139
141
|
DEBUG_LOCATION,
|
@@ -144,7 +146,7 @@ void HttpConnectHandshaker::OnWriteDoneScheduler(void* arg, grpc_error* error) {
|
|
144
146
|
}
|
145
147
|
|
146
148
|
// Callback invoked when finished writing HTTP CONNECT request.
|
147
|
-
void HttpConnectHandshaker::OnWriteDone(void* arg,
|
149
|
+
void HttpConnectHandshaker::OnWriteDone(void* arg, grpc_error_handle error) {
|
148
150
|
auto* handshaker = static_cast<HttpConnectHandshaker*>(arg);
|
149
151
|
ReleasableMutexLock lock(&handshaker->mu_);
|
150
152
|
if (error != GRPC_ERROR_NONE || handshaker->is_shutdown_) {
|
@@ -167,7 +169,8 @@ void HttpConnectHandshaker::OnWriteDone(void* arg, grpc_error* error) {
|
|
167
169
|
|
168
170
|
// This callback can be invoked inline while already holding onto the mutex. To
|
169
171
|
// avoid deadlocks, schedule OnReadDone on ExecCtx.
|
170
|
-
void HttpConnectHandshaker::OnReadDoneScheduler(void* arg,
|
172
|
+
void HttpConnectHandshaker::OnReadDoneScheduler(void* arg,
|
173
|
+
grpc_error_handle error) {
|
171
174
|
auto* handshaker = static_cast<HttpConnectHandshaker*>(arg);
|
172
175
|
grpc_core::ExecCtx::Run(
|
173
176
|
DEBUG_LOCATION,
|
@@ -178,7 +181,7 @@ void HttpConnectHandshaker::OnReadDoneScheduler(void* arg, grpc_error* error) {
|
|
178
181
|
}
|
179
182
|
|
180
183
|
// Callback invoked for reading HTTP CONNECT response.
|
181
|
-
void HttpConnectHandshaker::OnReadDone(void* arg,
|
184
|
+
void HttpConnectHandshaker::OnReadDone(void* arg, grpc_error_handle error) {
|
182
185
|
auto* handshaker = static_cast<HttpConnectHandshaker*>(arg);
|
183
186
|
ReleasableMutexLock lock(&handshaker->mu_);
|
184
187
|
if (error != GRPC_ERROR_NONE || handshaker->is_shutdown_) {
|
@@ -264,7 +267,7 @@ done:
|
|
264
267
|
// Public handshaker methods
|
265
268
|
//
|
266
269
|
|
267
|
-
void HttpConnectHandshaker::Shutdown(
|
270
|
+
void HttpConnectHandshaker::Shutdown(grpc_error_handle why) {
|
268
271
|
{
|
269
272
|
MutexLock lock(&mu_);
|
270
273
|
if (!is_shutdown_) {
|
@@ -36,6 +36,7 @@
|
|
36
36
|
#include "src/core/lib/gpr/env.h"
|
37
37
|
#include "src/core/lib/gpr/string.h"
|
38
38
|
#include "src/core/lib/gprpp/host_port.h"
|
39
|
+
#include "src/core/lib/iomgr/resolve_address.h"
|
39
40
|
#include "src/core/lib/slice/b64.h"
|
40
41
|
#include "src/core/lib/uri/uri_parser.h"
|
41
42
|
|
@@ -107,6 +108,17 @@ done:
|
|
107
108
|
return proxy_name;
|
108
109
|
}
|
109
110
|
|
111
|
+
// Adds the default port if target does not contain a port.
|
112
|
+
std::string MaybeAddDefaultPort(absl::string_view target) {
|
113
|
+
absl::string_view host;
|
114
|
+
absl::string_view port;
|
115
|
+
SplitHostPort(target, &host, &port);
|
116
|
+
if (port.empty()) {
|
117
|
+
return JoinHostPort(host, kDefaultSecurePortInt);
|
118
|
+
}
|
119
|
+
return std::string(target);
|
120
|
+
}
|
121
|
+
|
110
122
|
class HttpProxyMapper : public ProxyMapperInterface {
|
111
123
|
public:
|
112
124
|
bool MapName(const char* server_uri, const grpc_channel_args* args,
|
@@ -118,6 +130,7 @@ class HttpProxyMapper : public ProxyMapperInterface {
|
|
118
130
|
*name_to_resolve = GetHttpProxyServer(args, &user_cred);
|
119
131
|
if (*name_to_resolve == nullptr) return false;
|
120
132
|
char* no_proxy_str = nullptr;
|
133
|
+
std::string server_target;
|
121
134
|
absl::StatusOr<URI> uri = URI::Parse(server_uri);
|
122
135
|
if (!uri.ok() || uri->path().empty()) {
|
123
136
|
gpr_log(GPR_ERROR,
|
@@ -173,10 +186,12 @@ class HttpProxyMapper : public ProxyMapperInterface {
|
|
173
186
|
if (!use_proxy) goto no_use_proxy;
|
174
187
|
}
|
175
188
|
}
|
189
|
+
server_target =
|
190
|
+
MaybeAddDefaultPort(absl::StripPrefix(uri->path(), "/")).c_str();
|
176
191
|
grpc_arg args_to_add[2];
|
177
192
|
args_to_add[0] = grpc_channel_arg_string_create(
|
178
193
|
const_cast<char*>(GRPC_ARG_HTTP_CONNECT_SERVER),
|
179
|
-
const_cast<char*>(
|
194
|
+
const_cast<char*>(server_target.c_str()));
|
180
195
|
if (user_cred != nullptr) {
|
181
196
|
/* Use base64 encoding for user credentials as stated in RFC 7617 */
|
182
197
|
char* encoded_user_cred =
|
@@ -30,8 +30,8 @@
|
|
30
30
|
#include "src/core/lib/iomgr/error.h"
|
31
31
|
#include "src/core/lib/profiling/timers.h"
|
32
32
|
|
33
|
-
static
|
34
|
-
|
33
|
+
static grpc_error_handle clr_init_channel_elem(
|
34
|
+
grpc_channel_element* /*elem*/, grpc_channel_element_args* /*args*/) {
|
35
35
|
return GRPC_ERROR_NONE;
|
36
36
|
}
|
37
37
|
|
@@ -54,7 +54,7 @@ struct call_data {
|
|
54
54
|
|
55
55
|
} // namespace
|
56
56
|
|
57
|
-
static void on_complete_for_send(void* arg,
|
57
|
+
static void on_complete_for_send(void* arg, grpc_error_handle error) {
|
58
58
|
call_data* calld = static_cast<call_data*>(arg);
|
59
59
|
if (error == GRPC_ERROR_NONE) {
|
60
60
|
calld->send_initial_metadata_succeeded = true;
|
@@ -63,7 +63,7 @@ static void on_complete_for_send(void* arg, grpc_error* error) {
|
|
63
63
|
GRPC_ERROR_REF(error));
|
64
64
|
}
|
65
65
|
|
66
|
-
static void recv_initial_metadata_ready(void* arg,
|
66
|
+
static void recv_initial_metadata_ready(void* arg, grpc_error_handle error) {
|
67
67
|
call_data* calld = static_cast<call_data*>(arg);
|
68
68
|
if (error == GRPC_ERROR_NONE) {
|
69
69
|
calld->recv_initial_metadata_succeeded = true;
|
@@ -73,8 +73,8 @@ static void recv_initial_metadata_ready(void* arg, grpc_error* error) {
|
|
73
73
|
GRPC_ERROR_REF(error));
|
74
74
|
}
|
75
75
|
|
76
|
-
static
|
77
|
-
|
76
|
+
static grpc_error_handle clr_init_call_elem(
|
77
|
+
grpc_call_element* elem, const grpc_call_element_args* args) {
|
78
78
|
GPR_ASSERT(args->context != nullptr);
|
79
79
|
new (elem->call_data) call_data();
|
80
80
|
return GRPC_ERROR_NONE;
|
@@ -90,6 +90,8 @@
|
|
90
90
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
91
91
|
#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"
|
92
92
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
93
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
94
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
93
95
|
#include "src/core/lib/backoff/backoff.h"
|
94
96
|
#include "src/core/lib/channel/channel_args.h"
|
95
97
|
#include "src/core/lib/channel/channel_stack.h"
|
@@ -98,9 +100,7 @@
|
|
98
100
|
#include "src/core/lib/gprpp/memory.h"
|
99
101
|
#include "src/core/lib/gprpp/orphanable.h"
|
100
102
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
101
|
-
#include "src/core/lib/iomgr/parse_address.h"
|
102
103
|
#include "src/core/lib/iomgr/sockaddr.h"
|
103
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
104
104
|
#include "src/core/lib/iomgr/timer.h"
|
105
105
|
#include "src/core/lib/slice/slice_internal.h"
|
106
106
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
@@ -186,17 +186,17 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
186
186
|
void ScheduleNextClientLoadReportLocked();
|
187
187
|
void SendClientLoadReportLocked();
|
188
188
|
|
189
|
-
static void MaybeSendClientLoadReport(void* arg,
|
190
|
-
static void ClientLoadReportDone(void* arg,
|
191
|
-
static void OnInitialRequestSent(void* arg,
|
192
|
-
static void OnBalancerMessageReceived(void* arg,
|
193
|
-
static void OnBalancerStatusReceived(void* arg,
|
189
|
+
static void MaybeSendClientLoadReport(void* arg, grpc_error_handle error);
|
190
|
+
static void ClientLoadReportDone(void* arg, grpc_error_handle error);
|
191
|
+
static void OnInitialRequestSent(void* arg, grpc_error_handle error);
|
192
|
+
static void OnBalancerMessageReceived(void* arg, grpc_error_handle error);
|
193
|
+
static void OnBalancerStatusReceived(void* arg, grpc_error_handle error);
|
194
194
|
|
195
|
-
void MaybeSendClientLoadReportLocked(
|
196
|
-
void ClientLoadReportDoneLocked(
|
195
|
+
void MaybeSendClientLoadReportLocked(grpc_error_handle error);
|
196
|
+
void ClientLoadReportDoneLocked(grpc_error_handle error);
|
197
197
|
void OnInitialRequestSentLocked();
|
198
198
|
void OnBalancerMessageReceivedLocked();
|
199
|
-
void OnBalancerStatusReceivedLocked(
|
199
|
+
void OnBalancerStatusReceivedLocked(grpc_error_handle error);
|
200
200
|
|
201
201
|
// The owning LB policy.
|
202
202
|
RefCountedPtr<LoadBalancingPolicy> grpclb_policy_;
|
@@ -410,14 +410,14 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
410
410
|
|
411
411
|
// Methods for dealing with fallback state.
|
412
412
|
void MaybeEnterFallbackModeAfterStartup();
|
413
|
-
static void OnFallbackTimer(void* arg,
|
414
|
-
void OnFallbackTimerLocked(
|
413
|
+
static void OnFallbackTimer(void* arg, grpc_error_handle error);
|
414
|
+
void OnFallbackTimerLocked(grpc_error_handle error);
|
415
415
|
|
416
416
|
// Methods for dealing with the balancer call.
|
417
417
|
void StartBalancerCallLocked();
|
418
418
|
void StartBalancerCallRetryTimerLocked();
|
419
|
-
static void OnBalancerCallRetryTimer(void* arg,
|
420
|
-
void OnBalancerCallRetryTimerLocked(
|
419
|
+
static void OnBalancerCallRetryTimer(void* arg, grpc_error_handle error);
|
420
|
+
void OnBalancerCallRetryTimerLocked(grpc_error_handle error);
|
421
421
|
|
422
422
|
// Methods for dealing with the child policy.
|
423
423
|
grpc_channel_args* CreateChildPolicyArgsLocked(
|
@@ -893,6 +893,10 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
893
893
|
}
|
894
894
|
|
895
895
|
void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
896
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
897
|
+
// in a loop while draining the currently-held WorkSerializer.
|
898
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
899
|
+
ExecCtx::Get()->InvalidateNow();
|
896
900
|
const grpc_millis next_client_load_report_time =
|
897
901
|
ExecCtx::Get()->Now() + client_stats_report_interval_;
|
898
902
|
GRPC_CLOSURE_INIT(&client_load_report_closure_, MaybeSendClientLoadReport,
|
@@ -902,8 +906,8 @@ void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
|
902
906
|
client_load_report_timer_callback_pending_ = true;
|
903
907
|
}
|
904
908
|
|
905
|
-
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(
|
906
|
-
|
909
|
+
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(
|
910
|
+
void* arg, grpc_error_handle error) {
|
907
911
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
908
912
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
909
913
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -912,7 +916,7 @@ void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(void* arg,
|
|
912
916
|
}
|
913
917
|
|
914
918
|
void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked(
|
915
|
-
|
919
|
+
grpc_error_handle error) {
|
916
920
|
client_load_report_timer_callback_pending_ = false;
|
917
921
|
if (error != GRPC_ERROR_NONE || this != grpclb_policy()->lb_calld_.get()) {
|
918
922
|
Unref(DEBUG_LOCATION, "client_load_report");
|
@@ -982,7 +986,7 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
|
|
982
986
|
}
|
983
987
|
|
984
988
|
void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
|
985
|
-
|
989
|
+
grpc_error_handle error) {
|
986
990
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
987
991
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
988
992
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -990,7 +994,8 @@ void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
|
|
990
994
|
DEBUG_LOCATION);
|
991
995
|
}
|
992
996
|
|
993
|
-
void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(
|
997
|
+
void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(
|
998
|
+
grpc_error_handle error) {
|
994
999
|
grpc_byte_buffer_destroy(send_message_payload_);
|
995
1000
|
send_message_payload_ = nullptr;
|
996
1001
|
if (error != GRPC_ERROR_NONE || this != grpclb_policy()->lb_calld_.get()) {
|
@@ -1001,8 +1006,8 @@ void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(grpc_error* error) {
|
|
1001
1006
|
ScheduleNextClientLoadReportLocked();
|
1002
1007
|
}
|
1003
1008
|
|
1004
|
-
void GrpcLb::BalancerCallState::OnInitialRequestSent(
|
1005
|
-
|
1009
|
+
void GrpcLb::BalancerCallState::OnInitialRequestSent(
|
1010
|
+
void* arg, grpc_error_handle /*error*/) {
|
1006
1011
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1007
1012
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
1008
1013
|
[lb_calld]() { lb_calld->OnInitialRequestSentLocked(); }, DEBUG_LOCATION);
|
@@ -1021,7 +1026,7 @@ void GrpcLb::BalancerCallState::OnInitialRequestSentLocked() {
|
|
1021
1026
|
}
|
1022
1027
|
|
1023
1028
|
void GrpcLb::BalancerCallState::OnBalancerMessageReceived(
|
1024
|
-
void* arg,
|
1029
|
+
void* arg, grpc_error_handle /*error*/) {
|
1025
1030
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1026
1031
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
1027
1032
|
[lb_calld]() { lb_calld->OnBalancerMessageReceivedLocked(); },
|
@@ -1183,8 +1188,8 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
|
|
1183
1188
|
}
|
1184
1189
|
}
|
1185
1190
|
|
1186
|
-
void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
|
1187
|
-
|
1191
|
+
void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
|
1192
|
+
void* arg, grpc_error_handle error) {
|
1188
1193
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1189
1194
|
GRPC_ERROR_REF(error); // owned by lambda
|
1190
1195
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -1193,7 +1198,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceived(void* arg,
|
|
1193
1198
|
}
|
1194
1199
|
|
1195
1200
|
void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
1196
|
-
|
1201
|
+
grpc_error_handle error) {
|
1197
1202
|
GPR_ASSERT(lb_call_ != nullptr);
|
1198
1203
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1199
1204
|
char* status_details = grpc_slice_to_c_string(lb_call_status_details_);
|
@@ -1201,7 +1206,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
|
1201
1206
|
"[grpclb %p] lb_calld=%p: Status from LB server received. "
|
1202
1207
|
"Status = %d, details = '%s', (lb_call: %p), error '%s'",
|
1203
1208
|
grpclb_policy(), this, lb_call_status_, status_details, lb_call_,
|
1204
|
-
|
1209
|
+
grpc_error_std_string(error).c_str());
|
1205
1210
|
gpr_free(status_details);
|
1206
1211
|
}
|
1207
1212
|
GRPC_ERROR_UNREF(error);
|
@@ -1420,13 +1425,12 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1420
1425
|
// Start watching the channel's connectivity state. If the channel
|
1421
1426
|
// goes into state TRANSIENT_FAILURE before the timer fires, we go into
|
1422
1427
|
// fallback mode even if the fallback timeout has not elapsed.
|
1423
|
-
|
1424
|
-
|
1425
|
-
GPR_ASSERT(client_channel_elem->filter == &grpc_client_channel_filter);
|
1428
|
+
ClientChannel* client_channel = ClientChannel::GetFromChannel(lb_channel_);
|
1429
|
+
GPR_ASSERT(client_channel != nullptr);
|
1426
1430
|
// Ref held by callback.
|
1427
1431
|
watcher_ = new StateWatcher(Ref(DEBUG_LOCATION, "StateWatcher"));
|
1428
|
-
|
1429
|
-
|
1432
|
+
client_channel->AddConnectivityWatcher(
|
1433
|
+
GRPC_CHANNEL_IDLE,
|
1430
1434
|
OrphanablePtr<AsyncConnectivityStateWatcherInterface>(watcher_));
|
1431
1435
|
// Start balancer call.
|
1432
1436
|
StartBalancerCallLocked();
|
@@ -1490,10 +1494,9 @@ void GrpcLb::ProcessAddressesAndChannelArgsLocked(
|
|
1490
1494
|
}
|
1491
1495
|
|
1492
1496
|
void GrpcLb::CancelBalancerChannelConnectivityWatchLocked() {
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
grpc_client_channel_stop_connectivity_watch(client_channel_elem, watcher_);
|
1497
|
+
ClientChannel* client_channel = ClientChannel::GetFromChannel(lb_channel_);
|
1498
|
+
GPR_ASSERT(client_channel != nullptr);
|
1499
|
+
client_channel->RemoveConnectivityWatcher(watcher_);
|
1497
1500
|
}
|
1498
1501
|
|
1499
1502
|
//
|
@@ -1536,7 +1539,7 @@ void GrpcLb::StartBalancerCallRetryTimerLocked() {
|
|
1536
1539
|
grpc_timer_init(&lb_call_retry_timer_, next_try, &lb_on_call_retry_);
|
1537
1540
|
}
|
1538
1541
|
|
1539
|
-
void GrpcLb::OnBalancerCallRetryTimer(void* arg,
|
1542
|
+
void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error_handle error) {
|
1540
1543
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1541
1544
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
1542
1545
|
grpclb_policy->work_serializer()->Run(
|
@@ -1546,7 +1549,7 @@ void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error* error) {
|
|
1546
1549
|
DEBUG_LOCATION);
|
1547
1550
|
}
|
1548
1551
|
|
1549
|
-
void GrpcLb::OnBalancerCallRetryTimerLocked(
|
1552
|
+
void GrpcLb::OnBalancerCallRetryTimerLocked(grpc_error_handle error) {
|
1550
1553
|
retry_timer_callback_pending_ = false;
|
1551
1554
|
if (!shutting_down_ && error == GRPC_ERROR_NONE && lb_calld_ == nullptr) {
|
1552
1555
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
@@ -1580,7 +1583,7 @@ void GrpcLb::MaybeEnterFallbackModeAfterStartup() {
|
|
1580
1583
|
}
|
1581
1584
|
}
|
1582
1585
|
|
1583
|
-
void GrpcLb::OnFallbackTimer(void* arg,
|
1586
|
+
void GrpcLb::OnFallbackTimer(void* arg, grpc_error_handle error) {
|
1584
1587
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1585
1588
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
1586
1589
|
grpclb_policy->work_serializer()->Run(
|
@@ -1588,7 +1591,7 @@ void GrpcLb::OnFallbackTimer(void* arg, grpc_error* error) {
|
|
1588
1591
|
DEBUG_LOCATION);
|
1589
1592
|
}
|
1590
1593
|
|
1591
|
-
void GrpcLb::OnFallbackTimerLocked(
|
1594
|
+
void GrpcLb::OnFallbackTimerLocked(grpc_error_handle error) {
|
1592
1595
|
// If we receive a serverlist after the timer fires but before this callback
|
1593
1596
|
// actually runs, don't fall back.
|
1594
1597
|
if (fallback_at_startup_checks_pending_ && !shutting_down_ &&
|
@@ -1692,12 +1695,12 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1692
1695
|
const char* name() const override { return kGrpclb; }
|
1693
1696
|
|
1694
1697
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
1695
|
-
const Json& json,
|
1698
|
+
const Json& json, grpc_error_handle* error) const override {
|
1696
1699
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
1697
1700
|
if (json.type() == Json::Type::JSON_NULL) {
|
1698
1701
|
return MakeRefCounted<GrpcLbConfig>(nullptr, "");
|
1699
1702
|
}
|
1700
|
-
std::vector<
|
1703
|
+
std::vector<grpc_error_handle> error_list;
|
1701
1704
|
Json child_policy_config_json_tmp;
|
1702
1705
|
const Json* child_policy_config_json;
|
1703
1706
|
std::string service_name;
|
@@ -1720,12 +1723,12 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1720
1723
|
} else {
|
1721
1724
|
child_policy_config_json = &it->second;
|
1722
1725
|
}
|
1723
|
-
|
1726
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
1724
1727
|
RefCountedPtr<LoadBalancingPolicy::Config> child_policy_config =
|
1725
1728
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
1726
1729
|
*child_policy_config_json, &parse_error);
|
1727
1730
|
if (parse_error != GRPC_ERROR_NONE) {
|
1728
|
-
std::vector<
|
1731
|
+
std::vector<grpc_error_handle> child_errors;
|
1729
1732
|
child_errors.push_back(parse_error);
|
1730
1733
|
error_list.push_back(
|
1731
1734
|
GRPC_ERROR_CREATE_FROM_VECTOR("field:childPolicy", &child_errors));
|
@@ -31,9 +31,9 @@
|
|
31
31
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
32
32
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h"
|
33
33
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
34
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
34
35
|
#include "src/core/lib/channel/channel_args.h"
|
35
36
|
#include "src/core/lib/gpr/string.h"
|
36
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
37
37
|
#include "src/core/lib/security/credentials/credentials.h"
|
38
38
|
#include "src/core/lib/slice/slice_internal.h"
|
39
39
|
|