grpc 1.37.1 → 1.40.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 +112 -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 +330 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +66 -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 +44 -19
- data/include/grpc/impl/codegen/port_platform.h +46 -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 +975 -3282
- data/src/core/ext/filters/client_channel/client_channel.h +513 -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 +20 -7
- 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 +53 -51
- 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 +14 -23
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +16 -16
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +734 -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 +10 -17
- 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 +17 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +53 -65
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +36 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +33 -55
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +151 -163
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -16
- data/src/core/ext/filters/client_channel/lb_policy.h +70 -46
- 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 +158 -102
- 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 +2598 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -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_call_data.h +45 -5
- 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 +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 +33 -23
- 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 +49 -46
- 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/bin_decoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +141 -126
- 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 +9 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +12 -12
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -16
- 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 +11 -10
- 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 +652 -736
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
- 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 +33 -28
- data/src/core/ext/transport/chttp2/transport/parsing.cc +129 -106
- data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
- 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/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +56 -35
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -76
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +97 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +67 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +66 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +227 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +32 -24
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -73
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +27 -19
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +57 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +29 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +15 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +85 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +274 -91
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +11 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +33 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +1 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +82 -66
- data/src/core/ext/upb-generated/validate/validate.upb.h +220 -124
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +437 -410
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +684 -664
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +441 -375
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +122 -114
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- 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 +665 -317
- data/src/core/ext/xds/xds_api.h +52 -14
- data/src/core/ext/xds/xds_bootstrap.cc +101 -160
- 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 +370 -215
- data/src/core/ext/xds/xds_client.h +38 -28
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +3 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -0
- 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/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +11 -10
- 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/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/channel/status_util.h +4 -0
- data/src/core/lib/compression/stream_compression.h +1 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/debug/stats.h +1 -1
- 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/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +3 -3
- 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/gprpp/sync.h +2 -30
- 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 +8 -10
- 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_apple.h +1 -1
- 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 +192 -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 +263 -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 +2 -2
- 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 +13 -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 +7 -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 +29 -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/timer_manager.cc +1 -1
- 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 +5 -6
- data/src/core/lib/matchers/matchers.cc +46 -58
- data/src/core/lib/matchers/matchers.h +30 -29
- 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 +68 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -0
- 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 +60 -76
- 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 +45 -36
- data/src/core/lib/security/transport/server_auth_filter.cc +17 -18
- 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/slice/slice_internal.h +1 -0
- data/src/core/lib/surface/call.cc +72 -52
- 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 +31 -23
- data/src/core/lib/surface/server.h +19 -18
- 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 +2 -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
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +116 -51
- data/src/core/lib/gpr/arena.h +0 -47
- 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(
|
@@ -606,7 +606,6 @@ const char* GrpcLb::Serverlist::ShouldDrop() {
|
|
606
606
|
//
|
607
607
|
|
608
608
|
GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
609
|
-
PickResult result;
|
610
609
|
// Check if we should drop the call.
|
611
610
|
const char* drop_token =
|
612
611
|
serverlist_ == nullptr ? nullptr : serverlist_->ShouldDrop();
|
@@ -619,16 +618,16 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
619
618
|
if (client_stats_ != nullptr) {
|
620
619
|
client_stats_->AddCallDropped(drop_token);
|
621
620
|
}
|
622
|
-
|
623
|
-
|
621
|
+
return PickResult::Drop(
|
622
|
+
absl::UnavailableError("drop directed by grpclb balancer"));
|
624
623
|
}
|
625
624
|
// Forward pick to child policy.
|
626
|
-
result = child_picker_->Pick(args);
|
625
|
+
PickResult result = child_picker_->Pick(args);
|
627
626
|
// If pick succeeded, add LB token to initial metadata.
|
628
|
-
|
629
|
-
|
627
|
+
auto* complete_pick = absl::get_if<PickResult::Complete>(&result.result);
|
628
|
+
if (complete_pick != nullptr) {
|
630
629
|
const SubchannelWrapper* subchannel_wrapper =
|
631
|
-
static_cast<SubchannelWrapper*>(
|
630
|
+
static_cast<SubchannelWrapper*>(complete_pick->subchannel.get());
|
632
631
|
// Encode client stats object into metadata for use by
|
633
632
|
// client_load_reporting filter.
|
634
633
|
GrpcLbClientStats* client_stats = subchannel_wrapper->client_stats();
|
@@ -654,7 +653,7 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
654
653
|
args.initial_metadata->Add(kGrpcLbLbTokenMetadataKey, lb_token);
|
655
654
|
}
|
656
655
|
// Unwrap subchannel to pass up to the channel.
|
657
|
-
|
656
|
+
complete_pick->subchannel = subchannel_wrapper->wrapped_subchannel();
|
658
657
|
}
|
659
658
|
return result;
|
660
659
|
}
|
@@ -893,6 +892,10 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
893
892
|
}
|
894
893
|
|
895
894
|
void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
895
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
896
|
+
// in a loop while draining the currently-held WorkSerializer.
|
897
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
898
|
+
ExecCtx::Get()->InvalidateNow();
|
896
899
|
const grpc_millis next_client_load_report_time =
|
897
900
|
ExecCtx::Get()->Now() + client_stats_report_interval_;
|
898
901
|
GRPC_CLOSURE_INIT(&client_load_report_closure_, MaybeSendClientLoadReport,
|
@@ -902,8 +905,8 @@ void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
|
902
905
|
client_load_report_timer_callback_pending_ = true;
|
903
906
|
}
|
904
907
|
|
905
|
-
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(
|
906
|
-
|
908
|
+
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(
|
909
|
+
void* arg, grpc_error_handle error) {
|
907
910
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
908
911
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
909
912
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -912,7 +915,7 @@ void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(void* arg,
|
|
912
915
|
}
|
913
916
|
|
914
917
|
void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked(
|
915
|
-
|
918
|
+
grpc_error_handle error) {
|
916
919
|
client_load_report_timer_callback_pending_ = false;
|
917
920
|
if (error != GRPC_ERROR_NONE || this != grpclb_policy()->lb_calld_.get()) {
|
918
921
|
Unref(DEBUG_LOCATION, "client_load_report");
|
@@ -982,7 +985,7 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
|
|
982
985
|
}
|
983
986
|
|
984
987
|
void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
|
985
|
-
|
988
|
+
grpc_error_handle error) {
|
986
989
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
987
990
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
988
991
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -990,7 +993,8 @@ void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
|
|
990
993
|
DEBUG_LOCATION);
|
991
994
|
}
|
992
995
|
|
993
|
-
void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(
|
996
|
+
void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(
|
997
|
+
grpc_error_handle error) {
|
994
998
|
grpc_byte_buffer_destroy(send_message_payload_);
|
995
999
|
send_message_payload_ = nullptr;
|
996
1000
|
if (error != GRPC_ERROR_NONE || this != grpclb_policy()->lb_calld_.get()) {
|
@@ -1001,8 +1005,8 @@ void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(grpc_error* error) {
|
|
1001
1005
|
ScheduleNextClientLoadReportLocked();
|
1002
1006
|
}
|
1003
1007
|
|
1004
|
-
void GrpcLb::BalancerCallState::OnInitialRequestSent(
|
1005
|
-
|
1008
|
+
void GrpcLb::BalancerCallState::OnInitialRequestSent(
|
1009
|
+
void* arg, grpc_error_handle /*error*/) {
|
1006
1010
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1007
1011
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
1008
1012
|
[lb_calld]() { lb_calld->OnInitialRequestSentLocked(); }, DEBUG_LOCATION);
|
@@ -1021,7 +1025,7 @@ void GrpcLb::BalancerCallState::OnInitialRequestSentLocked() {
|
|
1021
1025
|
}
|
1022
1026
|
|
1023
1027
|
void GrpcLb::BalancerCallState::OnBalancerMessageReceived(
|
1024
|
-
void* arg,
|
1028
|
+
void* arg, grpc_error_handle /*error*/) {
|
1025
1029
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1026
1030
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
1027
1031
|
[lb_calld]() { lb_calld->OnBalancerMessageReceivedLocked(); },
|
@@ -1183,8 +1187,8 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
|
|
1183
1187
|
}
|
1184
1188
|
}
|
1185
1189
|
|
1186
|
-
void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
|
1187
|
-
|
1190
|
+
void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
|
1191
|
+
void* arg, grpc_error_handle error) {
|
1188
1192
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1189
1193
|
GRPC_ERROR_REF(error); // owned by lambda
|
1190
1194
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -1193,7 +1197,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceived(void* arg,
|
|
1193
1197
|
}
|
1194
1198
|
|
1195
1199
|
void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
1196
|
-
|
1200
|
+
grpc_error_handle error) {
|
1197
1201
|
GPR_ASSERT(lb_call_ != nullptr);
|
1198
1202
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1199
1203
|
char* status_details = grpc_slice_to_c_string(lb_call_status_details_);
|
@@ -1201,7 +1205,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
|
1201
1205
|
"[grpclb %p] lb_calld=%p: Status from LB server received. "
|
1202
1206
|
"Status = %d, details = '%s', (lb_call: %p), error '%s'",
|
1203
1207
|
grpclb_policy(), this, lb_call_status_, status_details, lb_call_,
|
1204
|
-
|
1208
|
+
grpc_error_std_string(error).c_str());
|
1205
1209
|
gpr_free(status_details);
|
1206
1210
|
}
|
1207
1211
|
GRPC_ERROR_UNREF(error);
|
@@ -1420,13 +1424,12 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1420
1424
|
// Start watching the channel's connectivity state. If the channel
|
1421
1425
|
// goes into state TRANSIENT_FAILURE before the timer fires, we go into
|
1422
1426
|
// fallback mode even if the fallback timeout has not elapsed.
|
1423
|
-
|
1424
|
-
|
1425
|
-
GPR_ASSERT(client_channel_elem->filter == &grpc_client_channel_filter);
|
1427
|
+
ClientChannel* client_channel = ClientChannel::GetFromChannel(lb_channel_);
|
1428
|
+
GPR_ASSERT(client_channel != nullptr);
|
1426
1429
|
// Ref held by callback.
|
1427
1430
|
watcher_ = new StateWatcher(Ref(DEBUG_LOCATION, "StateWatcher"));
|
1428
|
-
|
1429
|
-
|
1431
|
+
client_channel->AddConnectivityWatcher(
|
1432
|
+
GRPC_CHANNEL_IDLE,
|
1430
1433
|
OrphanablePtr<AsyncConnectivityStateWatcherInterface>(watcher_));
|
1431
1434
|
// Start balancer call.
|
1432
1435
|
StartBalancerCallLocked();
|
@@ -1490,10 +1493,9 @@ void GrpcLb::ProcessAddressesAndChannelArgsLocked(
|
|
1490
1493
|
}
|
1491
1494
|
|
1492
1495
|
void GrpcLb::CancelBalancerChannelConnectivityWatchLocked() {
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
grpc_client_channel_stop_connectivity_watch(client_channel_elem, watcher_);
|
1496
|
+
ClientChannel* client_channel = ClientChannel::GetFromChannel(lb_channel_);
|
1497
|
+
GPR_ASSERT(client_channel != nullptr);
|
1498
|
+
client_channel->RemoveConnectivityWatcher(watcher_);
|
1497
1499
|
}
|
1498
1500
|
|
1499
1501
|
//
|
@@ -1536,7 +1538,7 @@ void GrpcLb::StartBalancerCallRetryTimerLocked() {
|
|
1536
1538
|
grpc_timer_init(&lb_call_retry_timer_, next_try, &lb_on_call_retry_);
|
1537
1539
|
}
|
1538
1540
|
|
1539
|
-
void GrpcLb::OnBalancerCallRetryTimer(void* arg,
|
1541
|
+
void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error_handle error) {
|
1540
1542
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1541
1543
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
1542
1544
|
grpclb_policy->work_serializer()->Run(
|
@@ -1546,7 +1548,7 @@ void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error* error) {
|
|
1546
1548
|
DEBUG_LOCATION);
|
1547
1549
|
}
|
1548
1550
|
|
1549
|
-
void GrpcLb::OnBalancerCallRetryTimerLocked(
|
1551
|
+
void GrpcLb::OnBalancerCallRetryTimerLocked(grpc_error_handle error) {
|
1550
1552
|
retry_timer_callback_pending_ = false;
|
1551
1553
|
if (!shutting_down_ && error == GRPC_ERROR_NONE && lb_calld_ == nullptr) {
|
1552
1554
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
@@ -1580,7 +1582,7 @@ void GrpcLb::MaybeEnterFallbackModeAfterStartup() {
|
|
1580
1582
|
}
|
1581
1583
|
}
|
1582
1584
|
|
1583
|
-
void GrpcLb::OnFallbackTimer(void* arg,
|
1585
|
+
void GrpcLb::OnFallbackTimer(void* arg, grpc_error_handle error) {
|
1584
1586
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1585
1587
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
1586
1588
|
grpclb_policy->work_serializer()->Run(
|
@@ -1588,7 +1590,7 @@ void GrpcLb::OnFallbackTimer(void* arg, grpc_error* error) {
|
|
1588
1590
|
DEBUG_LOCATION);
|
1589
1591
|
}
|
1590
1592
|
|
1591
|
-
void GrpcLb::OnFallbackTimerLocked(
|
1593
|
+
void GrpcLb::OnFallbackTimerLocked(grpc_error_handle error) {
|
1592
1594
|
// If we receive a serverlist after the timer fires but before this callback
|
1593
1595
|
// actually runs, don't fall back.
|
1594
1596
|
if (fallback_at_startup_checks_pending_ && !shutting_down_ &&
|
@@ -1692,12 +1694,12 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1692
1694
|
const char* name() const override { return kGrpclb; }
|
1693
1695
|
|
1694
1696
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
1695
|
-
const Json& json,
|
1697
|
+
const Json& json, grpc_error_handle* error) const override {
|
1696
1698
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
1697
1699
|
if (json.type() == Json::Type::JSON_NULL) {
|
1698
1700
|
return MakeRefCounted<GrpcLbConfig>(nullptr, "");
|
1699
1701
|
}
|
1700
|
-
std::vector<
|
1702
|
+
std::vector<grpc_error_handle> error_list;
|
1701
1703
|
Json child_policy_config_json_tmp;
|
1702
1704
|
const Json* child_policy_config_json;
|
1703
1705
|
std::string service_name;
|
@@ -1720,12 +1722,12 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1720
1722
|
} else {
|
1721
1723
|
child_policy_config_json = &it->second;
|
1722
1724
|
}
|
1723
|
-
|
1725
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
1724
1726
|
RefCountedPtr<LoadBalancingPolicy::Config> child_policy_config =
|
1725
1727
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
1726
1728
|
*child_policy_config_json, &parse_error);
|
1727
1729
|
if (parse_error != GRPC_ERROR_NONE) {
|
1728
|
-
std::vector<
|
1730
|
+
std::vector<grpc_error_handle> child_errors;
|
1729
1731
|
child_errors.push_back(parse_error);
|
1730
1732
|
error_list.push_back(
|
1731
1733
|
GRPC_ERROR_CREATE_FROM_VECTOR("field:childPolicy", &child_errors));
|