grpc 1.36.0 → 1.38.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 +126 -92
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +15 -1
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +7 -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 +715 -3166
- 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_factory.h +2 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +9 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +18 -14
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -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 +36 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +29 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +32 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +86 -63
- 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/local_subchannel_pool.cc +27 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
- data/src/core/ext/filters/client_channel/resolver.cc +3 -0
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +17 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +38 -33
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +31 -14
- 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 +334 -114
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- data/src/core/ext/filters/client_channel/server_address.cc +4 -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 +86 -162
- data/src/core/ext/filters/client_channel/subchannel.h +68 -99
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
- 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 +501 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
- 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 +5 -4
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +5 -4
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +485 -199
- 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 +3 -3
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +167 -122
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- 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 +13 -9
- 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_encoder.cc +1 -1
- 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 +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +15 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +44 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +13 -9
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +13 -7
- 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/common/fault/v3/fault.upbdefs.c +102 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +21 -20
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
- 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 +1649 -329
- data/src/core/ext/xds/xds_api.h +284 -44
- data/src/core/ext/xds/xds_bootstrap.cc +110 -156
- data/src/core/ext/xds/xds_bootstrap.h +24 -25
- 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 +454 -177
- data/src/core/ext/xds/xds_client.h +62 -22
- data/src/core/ext/xds/xds_client_stats.h +5 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
- data/src/core/ext/xds/xds_http_filters.cc +114 -0
- data/src/core/ext/xds/xds_http_filters.h +130 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +410 -131
- 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 +107 -4
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +26 -6
- data/src/core/lib/channel/channel_stack.cc +22 -9
- data/src/core/lib/channel/channel_stack.h +17 -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 +108 -12
- data/src/core/lib/channel/channelz.h +30 -1
- data/src/core/lib/channel/channelz_registry.cc +14 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -45
- data/src/core/lib/channel/handshaker.h +5 -22
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +5 -0
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gpr/sync_abseil.cc +3 -6
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gprpp/atomic.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/gprpp/thd.h +1 -1
- 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 +5 -6
- 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 +5 -5
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +218 -107
- 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 +6 -6
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +22 -22
- 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 +12 -11
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +10 -6
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +12 -11
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +37 -38
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +27 -25
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +8 -8
- 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_nospecial.cc +1 -1
- 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/{security/authorization → matchers}/matchers.cc +47 -47
- data/src/core/lib/{security/authorization → matchers}/matchers.h +42 -40
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +28 -8
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +62 -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 +65 -34
- data/src/core/lib/security/transport/server_auth_filter.cc +24 -11
- 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_intern.cc +6 -7
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +6 -5
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/lame_client.cc +43 -24
- data/src/core/lib/surface/lame_client.h +4 -3
- data/src/core/lib/surface/server.cc +68 -55
- data/src/core/lib/surface/server.h +89 -29
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +64 -37
- data/src/core/lib/transport/metadata_batch.h +33 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -0
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +6 -8
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
- data/src/core/tsi/fake_transport_security.cc +10 -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 +9 -1
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
- data/src/ruby/ext/grpc/rb_server.c +13 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -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/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +32 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- 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 +478 -462
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -30
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +210 -26
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -122
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +131 -83
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +5443 -0
- metadata +128 -61
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/authorization_engine.h +0 -84
- data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
- data/src/core/lib/security/authorization/evaluate_args.h +0 -59
- data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -99
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
- 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/upb/upb/json_decode.c +0 -1443
- data/third_party/upb/upb/json_decode.h +0 -23
- data/third_party/upb/upb/json_encode.c +0 -713
- data/third_party/upb/upb/json_encode.h +0 -36
@@ -39,7 +39,7 @@ class LoadBalancingPolicyFactory {
|
|
39
39
|
virtual const char* name() const = 0;
|
40
40
|
|
41
41
|
virtual RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
42
|
-
const Json& json,
|
42
|
+
const Json& json, grpc_error_handle* error) const = 0;
|
43
43
|
};
|
44
44
|
|
45
45
|
} // namespace grpc_core
|
@@ -109,7 +109,7 @@ bool LoadBalancingPolicyRegistry::LoadBalancingPolicyExists(
|
|
109
109
|
return false;
|
110
110
|
}
|
111
111
|
if (requires_config != nullptr) {
|
112
|
-
|
112
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
113
113
|
// Check if the load balancing policy allows an empty config
|
114
114
|
*requires_config =
|
115
115
|
factory->ParseLoadBalancingConfig(Json(), &error) == nullptr;
|
@@ -122,7 +122,7 @@ namespace {
|
|
122
122
|
|
123
123
|
// Returns the JSON node of policy (with both policy name and config content)
|
124
124
|
// given the JSON node of a LoadBalancingConfig array.
|
125
|
-
|
125
|
+
grpc_error_handle ParseLoadBalancingConfigHelper(
|
126
126
|
const Json& lb_config_array, Json::Object::const_iterator* result) {
|
127
127
|
if (lb_config_array.type() != Json::Type::ARRAY) {
|
128
128
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING("type should be array");
|
@@ -163,8 +163,8 @@ grpc_error* ParseLoadBalancingConfigHelper(
|
|
163
163
|
} // namespace
|
164
164
|
|
165
165
|
RefCountedPtr<LoadBalancingPolicy::Config>
|
166
|
-
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
167
|
-
|
166
|
+
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
167
|
+
const Json& json, grpc_error_handle* error) {
|
168
168
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
169
169
|
GPR_ASSERT(g_state != nullptr);
|
170
170
|
Json::Object::const_iterator policy;
|
@@ -57,7 +57,7 @@ class LoadBalancingPolicyRegistry {
|
|
57
57
|
/// Returns a parsed object of the load balancing policy to be used from a
|
58
58
|
/// LoadBalancingConfig array \a json.
|
59
59
|
static RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
60
|
-
const Json& json,
|
60
|
+
const Json& json, grpc_error_handle* error);
|
61
61
|
};
|
62
62
|
|
63
63
|
} // namespace grpc_core
|
@@ -24,73 +24,33 @@
|
|
24
24
|
|
25
25
|
namespace grpc_core {
|
26
26
|
|
27
|
-
LocalSubchannelPool::
|
28
|
-
|
27
|
+
RefCountedPtr<Subchannel> LocalSubchannelPool::RegisterSubchannel(
|
28
|
+
const SubchannelKey& key, RefCountedPtr<Subchannel> constructed) {
|
29
|
+
auto it = subchannel_map_.find(key);
|
30
|
+
// Because this pool is only accessed under the client channel's work
|
31
|
+
// serializer, and because FindSubchannel is checked before invoking
|
32
|
+
// RegisterSubchannel, no such subchannel should exist in the map.
|
33
|
+
GPR_ASSERT(it == subchannel_map_.end());
|
34
|
+
subchannel_map_[key] = constructed.get();
|
35
|
+
return constructed;
|
36
|
+
}
|
37
|
+
|
38
|
+
void LocalSubchannelPool::UnregisterSubchannel(const SubchannelKey& key,
|
39
|
+
Subchannel* subchannel) {
|
40
|
+
auto it = subchannel_map_.find(key);
|
41
|
+
// Because this subchannel pool is accessed only under the client
|
42
|
+
// channel's work serializer, any subchannel created by RegisterSubchannel
|
43
|
+
// will be deleted from the map in UnregisterSubchannel.
|
44
|
+
GPR_ASSERT(it != subchannel_map_.end());
|
45
|
+
GPR_ASSERT(it->second == subchannel);
|
46
|
+
subchannel_map_.erase(it);
|
47
|
+
}
|
48
|
+
|
49
|
+
RefCountedPtr<Subchannel> LocalSubchannelPool::FindSubchannel(
|
50
|
+
const SubchannelKey& key) {
|
51
|
+
auto it = subchannel_map_.find(key);
|
52
|
+
if (it == subchannel_map_.end()) return nullptr;
|
53
|
+
return it->second->Ref();
|
29
54
|
}
|
30
55
|
|
31
|
-
LocalSubchannelPool::~LocalSubchannelPool() {
|
32
|
-
grpc_avl_unref(subchannel_map_, nullptr);
|
33
|
-
}
|
34
|
-
|
35
|
-
Subchannel* LocalSubchannelPool::RegisterSubchannel(SubchannelKey* key,
|
36
|
-
Subchannel* constructed) {
|
37
|
-
// Check to see if a subchannel already exists.
|
38
|
-
Subchannel* c =
|
39
|
-
static_cast<Subchannel*>(grpc_avl_get(subchannel_map_, key, nullptr));
|
40
|
-
if (c != nullptr) {
|
41
|
-
// The subchannel already exists. Reuse it.
|
42
|
-
c = GRPC_SUBCHANNEL_REF(c, "subchannel_register+reuse");
|
43
|
-
GRPC_SUBCHANNEL_UNREF(constructed, "subchannel_register+found_existing");
|
44
|
-
} else {
|
45
|
-
// There hasn't been such subchannel. Add one.
|
46
|
-
subchannel_map_ = grpc_avl_add(subchannel_map_, new SubchannelKey(*key),
|
47
|
-
constructed, nullptr);
|
48
|
-
c = constructed;
|
49
|
-
}
|
50
|
-
return c;
|
51
|
-
}
|
52
|
-
|
53
|
-
void LocalSubchannelPool::UnregisterSubchannel(SubchannelKey* key) {
|
54
|
-
subchannel_map_ = grpc_avl_remove(subchannel_map_, key, nullptr);
|
55
|
-
}
|
56
|
-
|
57
|
-
Subchannel* LocalSubchannelPool::FindSubchannel(SubchannelKey* key) {
|
58
|
-
Subchannel* c =
|
59
|
-
static_cast<Subchannel*>(grpc_avl_get(subchannel_map_, key, nullptr));
|
60
|
-
return c == nullptr ? c : GRPC_SUBCHANNEL_REF(c, "found_from_pool");
|
61
|
-
}
|
62
|
-
|
63
|
-
namespace {
|
64
|
-
|
65
|
-
void sck_avl_destroy(void* p, void* /*user_data*/) {
|
66
|
-
SubchannelKey* key = static_cast<SubchannelKey*>(p);
|
67
|
-
delete key;
|
68
|
-
}
|
69
|
-
|
70
|
-
void* sck_avl_copy(void* p, void* /*unused*/) {
|
71
|
-
const SubchannelKey* key = static_cast<const SubchannelKey*>(p);
|
72
|
-
auto new_key = new SubchannelKey(*key);
|
73
|
-
return static_cast<void*>(new_key);
|
74
|
-
}
|
75
|
-
|
76
|
-
long sck_avl_compare(void* a, void* b, void* /*unused*/) {
|
77
|
-
const SubchannelKey* key_a = static_cast<const SubchannelKey*>(a);
|
78
|
-
const SubchannelKey* key_b = static_cast<const SubchannelKey*>(b);
|
79
|
-
return key_a->Cmp(*key_b);
|
80
|
-
}
|
81
|
-
|
82
|
-
void scv_avl_destroy(void* /*p*/, void* /*user_data*/) {}
|
83
|
-
|
84
|
-
void* scv_avl_copy(void* p, void* /*unused*/) { return p; }
|
85
|
-
|
86
|
-
} // namespace
|
87
|
-
|
88
|
-
const grpc_avl_vtable LocalSubchannelPool::subchannel_avl_vtable_ = {
|
89
|
-
sck_avl_destroy, // destroy_key
|
90
|
-
sck_avl_copy, // copy_key
|
91
|
-
sck_avl_compare, // compare_keys
|
92
|
-
scv_avl_destroy, // destroy_value
|
93
|
-
scv_avl_copy // copy_value
|
94
|
-
};
|
95
|
-
|
96
56
|
} // namespace grpc_core
|
@@ -21,6 +21,8 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <map>
|
25
|
+
|
24
26
|
#include "src/core/ext/filters/client_channel/subchannel_pool_interface.h"
|
25
27
|
|
26
28
|
namespace grpc_core {
|
@@ -34,22 +36,21 @@ namespace grpc_core {
|
|
34
36
|
// Thread-unsafe.
|
35
37
|
class LocalSubchannelPool final : public SubchannelPoolInterface {
|
36
38
|
public:
|
37
|
-
LocalSubchannelPool()
|
38
|
-
~LocalSubchannelPool() override
|
39
|
+
LocalSubchannelPool() {}
|
40
|
+
~LocalSubchannelPool() override {}
|
39
41
|
|
40
42
|
// Implements interface methods.
|
41
43
|
// Thread-unsafe. Intended to be invoked within the client_channel work
|
42
44
|
// serializer.
|
43
|
-
Subchannel
|
44
|
-
|
45
|
-
void UnregisterSubchannel(SubchannelKey
|
46
|
-
|
45
|
+
RefCountedPtr<Subchannel> RegisterSubchannel(
|
46
|
+
const SubchannelKey& key, RefCountedPtr<Subchannel> constructed) override;
|
47
|
+
void UnregisterSubchannel(const SubchannelKey& key,
|
48
|
+
Subchannel* subchannel) override;
|
49
|
+
RefCountedPtr<Subchannel> FindSubchannel(const SubchannelKey& key) override;
|
47
50
|
|
48
51
|
private:
|
49
|
-
// The vtable for subchannel operations in an AVL tree.
|
50
|
-
static const grpc_avl_vtable subchannel_avl_vtable_;
|
51
52
|
// A map from subchannel key to subchannel.
|
52
|
-
|
53
|
+
std::map<SubchannelKey, Subchannel*> subchannel_map_;
|
53
54
|
};
|
54
55
|
|
55
56
|
} // namespace grpc_core
|
@@ -60,6 +60,9 @@ Resolver::Result::Result(Result&& other) noexcept {
|
|
60
60
|
}
|
61
61
|
|
62
62
|
Resolver::Result& Resolver::Result::operator=(const Result& other) {
|
63
|
+
if (&other == this) {
|
64
|
+
return *this;
|
65
|
+
}
|
63
66
|
addresses = other.addresses;
|
64
67
|
service_config = other.service_config;
|
65
68
|
GRPC_ERROR_UNREF(service_config_error);
|
@@ -55,7 +55,7 @@ class Resolver : public InternallyRefCounted<Resolver> {
|
|
55
55
|
struct Result {
|
56
56
|
ServerAddressList addresses;
|
57
57
|
RefCountedPtr<ServiceConfig> service_config;
|
58
|
-
|
58
|
+
grpc_error_handle service_config_error = GRPC_ERROR_NONE;
|
59
59
|
const grpc_channel_args* args = nullptr;
|
60
60
|
|
61
61
|
// TODO(roth): Remove everything below once grpc_error and
|
@@ -81,7 +81,7 @@ class Resolver : public InternallyRefCounted<Resolver> {
|
|
81
81
|
/// Returns a transient error to the channel.
|
82
82
|
/// If the resolver does not set the GRPC_ERROR_INT_GRPC_STATUS
|
83
83
|
/// attribute on the error, calls will be failed with status UNKNOWN.
|
84
|
-
virtual void ReturnError(
|
84
|
+
virtual void ReturnError(grpc_error_handle error) = 0;
|
85
85
|
|
86
86
|
// TODO(yashkt): As part of the service config error handling
|
87
87
|
// changes, add a method to parse the service config JSON string.
|
@@ -80,10 +80,10 @@ class AresDnsResolver : public Resolver {
|
|
80
80
|
void MaybeStartResolvingLocked();
|
81
81
|
void StartResolvingLocked();
|
82
82
|
|
83
|
-
static void OnNextResolution(void* arg,
|
84
|
-
static void OnResolved(void* arg,
|
85
|
-
void OnNextResolutionLocked(
|
86
|
-
void OnResolvedLocked(
|
83
|
+
static void OnNextResolution(void* arg, grpc_error_handle error);
|
84
|
+
static void OnResolved(void* arg, grpc_error_handle error);
|
85
|
+
void OnNextResolutionLocked(grpc_error_handle error);
|
86
|
+
void OnResolvedLocked(grpc_error_handle error);
|
87
87
|
|
88
88
|
/// DNS server to use (if not system default)
|
89
89
|
std::string dns_server_;
|
@@ -193,18 +193,18 @@ void AresDnsResolver::ShutdownLocked() {
|
|
193
193
|
}
|
194
194
|
}
|
195
195
|
|
196
|
-
void AresDnsResolver::OnNextResolution(void* arg,
|
196
|
+
void AresDnsResolver::OnNextResolution(void* arg, grpc_error_handle error) {
|
197
197
|
AresDnsResolver* r = static_cast<AresDnsResolver*>(arg);
|
198
198
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
199
199
|
r->work_serializer_->Run([r, error]() { r->OnNextResolutionLocked(error); },
|
200
200
|
DEBUG_LOCATION);
|
201
201
|
}
|
202
202
|
|
203
|
-
void AresDnsResolver::OnNextResolutionLocked(
|
203
|
+
void AresDnsResolver::OnNextResolutionLocked(grpc_error_handle error) {
|
204
204
|
GRPC_CARES_TRACE_LOG(
|
205
205
|
"resolver:%p re-resolution timer fired. error: %s. shutdown_initiated_: "
|
206
206
|
"%d",
|
207
|
-
this,
|
207
|
+
this, grpc_error_std_string(error).c_str(), shutdown_initiated_);
|
208
208
|
have_next_resolution_timer_ = false;
|
209
209
|
if (error == GRPC_ERROR_NONE && !shutdown_initiated_) {
|
210
210
|
if (!resolving_) {
|
@@ -227,7 +227,7 @@ bool ValueInJsonArray(const Json::Array& array, const char* value) {
|
|
227
227
|
}
|
228
228
|
|
229
229
|
std::string ChooseServiceConfig(char* service_config_choice_json,
|
230
|
-
|
230
|
+
grpc_error_handle* error) {
|
231
231
|
Json json = Json::Parse(service_config_choice_json, error);
|
232
232
|
if (*error != GRPC_ERROR_NONE) return "";
|
233
233
|
if (json.type() != Json::Type::ARRAY) {
|
@@ -236,7 +236,7 @@ std::string ChooseServiceConfig(char* service_config_choice_json,
|
|
236
236
|
return "";
|
237
237
|
}
|
238
238
|
const Json* service_config = nullptr;
|
239
|
-
absl::InlinedVector<
|
239
|
+
absl::InlinedVector<grpc_error_handle, 4> error_list;
|
240
240
|
for (const Json& choice : json.array_value()) {
|
241
241
|
if (choice.type() != Json::Type::OBJECT) {
|
242
242
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -305,14 +305,14 @@ std::string ChooseServiceConfig(char* service_config_choice_json,
|
|
305
305
|
return service_config->Dump();
|
306
306
|
}
|
307
307
|
|
308
|
-
void AresDnsResolver::OnResolved(void* arg,
|
308
|
+
void AresDnsResolver::OnResolved(void* arg, grpc_error_handle error) {
|
309
309
|
AresDnsResolver* r = static_cast<AresDnsResolver*>(arg);
|
310
310
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
311
311
|
r->work_serializer_->Run([r, error]() { r->OnResolvedLocked(error); },
|
312
312
|
DEBUG_LOCATION);
|
313
313
|
}
|
314
314
|
|
315
|
-
void AresDnsResolver::OnResolvedLocked(
|
315
|
+
void AresDnsResolver::OnResolvedLocked(grpc_error_handle error) {
|
316
316
|
GPR_ASSERT(resolving_);
|
317
317
|
resolving_ = false;
|
318
318
|
gpr_free(pending_request_);
|
@@ -354,7 +354,7 @@ void AresDnsResolver::OnResolvedLocked(grpc_error* error) {
|
|
354
354
|
backoff_.Reset();
|
355
355
|
} else {
|
356
356
|
GRPC_CARES_TRACE_LOG("resolver:%p dns resolution failed: %s", this,
|
357
|
-
|
357
|
+
grpc_error_std_string(error).c_str());
|
358
358
|
std::string error_message =
|
359
359
|
absl::StrCat("DNS resolution failed for service: ", name_to_resolve_);
|
360
360
|
result_handler_->ReturnError(grpc_error_set_int(
|
@@ -362,10 +362,14 @@ void AresDnsResolver::OnResolvedLocked(grpc_error* error) {
|
|
362
362
|
&error, 1),
|
363
363
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE));
|
364
364
|
// Set retry timer.
|
365
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
366
|
+
// in a loop while draining the currently-held WorkSerializer.
|
367
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
368
|
+
ExecCtx::Get()->InvalidateNow();
|
365
369
|
grpc_millis next_try = backoff_.NextAttemptTime();
|
366
370
|
grpc_millis timeout = next_try - ExecCtx::Get()->Now();
|
367
371
|
GRPC_CARES_TRACE_LOG("resolver:%p dns resolution failed (will retry): %s",
|
368
|
-
this,
|
372
|
+
this, grpc_error_std_string(error).c_str());
|
369
373
|
GPR_ASSERT(!have_next_resolution_timer_);
|
370
374
|
have_next_resolution_timer_ = true;
|
371
375
|
// TODO(roth): We currently deal with this ref manually. Once the
|
@@ -389,6 +393,10 @@ void AresDnsResolver::MaybeStartResolvingLocked() {
|
|
389
393
|
// can start the next resolution.
|
390
394
|
if (have_next_resolution_timer_) return;
|
391
395
|
if (last_resolution_timestamp_ >= 0) {
|
396
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
397
|
+
// in a loop while draining the currently-held WorkSerializer.
|
398
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
399
|
+
ExecCtx::Get()->InvalidateNow();
|
392
400
|
const grpc_millis earliest_next_resolution =
|
393
401
|
last_resolution_timestamp_ + min_time_between_resolutions_;
|
394
402
|
const grpc_millis ms_until_next_resolution =
|
@@ -455,7 +463,7 @@ class AresDnsResolverFactory : public ResolverFactory {
|
|
455
463
|
extern grpc_address_resolver_vtable* grpc_resolve_address_impl;
|
456
464
|
static grpc_address_resolver_vtable* default_resolver;
|
457
465
|
|
458
|
-
static
|
466
|
+
static grpc_error_handle blocking_resolve_address_ares(
|
459
467
|
const char* name, const char* default_port,
|
460
468
|
grpc_resolved_addresses** addresses) {
|
461
469
|
return default_resolver->blocking_resolve_address(name, default_port,
|
@@ -490,7 +498,7 @@ void grpc_resolver_dns_ares_init() {
|
|
490
498
|
g_use_ares_dns_resolver = true;
|
491
499
|
gpr_log(GPR_DEBUG, "Using ares dns resolver");
|
492
500
|
address_sorting_init();
|
493
|
-
|
501
|
+
grpc_error_handle error = grpc_ares_init();
|
494
502
|
if (error != GRPC_ERROR_NONE) {
|
495
503
|
GRPC_LOG_IF_ERROR("grpc_ares_init() failed", error);
|
496
504
|
return;
|
@@ -42,7 +42,7 @@ class GrpcPolledFd {
|
|
42
42
|
virtual bool IsFdStillReadableLocked() = 0;
|
43
43
|
/* Called once and only once. Must cause cancellation of any pending
|
44
44
|
* read/write callbacks. */
|
45
|
-
virtual void ShutdownLocked(
|
45
|
+
virtual void ShutdownLocked(grpc_error_handle error) = 0;
|
46
46
|
/* Get the underlying ares_socket_t that this was created from */
|
47
47
|
virtual ares_socket_t GetWrappedAresSocketLocked() = 0;
|
48
48
|
/* A unique name, for logging */
|
@@ -75,7 +75,7 @@ class GrpcPolledFdLibuv : public GrpcPolledFd {
|
|
75
75
|
return false;
|
76
76
|
}
|
77
77
|
|
78
|
-
void ShutdownInternalLocked(
|
78
|
+
void ShutdownInternalLocked(grpc_error_handle error) {
|
79
79
|
uv_poll_stop(handle_);
|
80
80
|
uv_close(reinterpret_cast<uv_handle_t*>(handle_), ares_uv_poll_close_cb);
|
81
81
|
if (read_closure_ != nullptr) {
|
@@ -88,7 +88,7 @@ class GrpcPolledFdLibuv : public GrpcPolledFd {
|
|
88
88
|
}
|
89
89
|
}
|
90
90
|
|
91
|
-
void ShutdownLocked(
|
91
|
+
void ShutdownLocked(grpc_error_handle error) override {
|
92
92
|
if (grpc_core::ExecCtx::Get() == nullptr) {
|
93
93
|
grpc_core::ExecCtx exec_ctx;
|
94
94
|
ShutdownInternalLocked(error);
|
@@ -127,7 +127,7 @@ static void ares_uv_poll_cb_locked(AresUvPollCbArg* arg) {
|
|
127
127
|
int events = arg_struct->events;
|
128
128
|
GrpcPolledFdLibuv* polled_fd =
|
129
129
|
reinterpret_cast<GrpcPolledFdLibuv*>(handle->data);
|
130
|
-
|
130
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
131
131
|
if (status < 0) {
|
132
132
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("cares polling error");
|
133
133
|
error =
|
@@ -33,10 +33,10 @@
|
|
33
33
|
#include <grpc/support/string_util.h>
|
34
34
|
#include <grpc/support/time.h>
|
35
35
|
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
|
36
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
36
37
|
#include "src/core/lib/gpr/string.h"
|
37
38
|
#include "src/core/lib/iomgr/ev_posix.h"
|
38
39
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
39
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
40
40
|
|
41
41
|
namespace grpc_core {
|
42
42
|
|
@@ -54,8 +54,8 @@ class GrpcPolledFdPosix : public GrpcPolledFd {
|
|
54
54
|
/* c-ares library will close the fd inside grpc_fd. This fd may be picked up
|
55
55
|
immediately by another thread, and should not be closed by the following
|
56
56
|
grpc_fd_orphan. */
|
57
|
-
int
|
58
|
-
grpc_fd_orphan(fd_, nullptr, &
|
57
|
+
int phony_release_fd;
|
58
|
+
grpc_fd_orphan(fd_, nullptr, &phony_release_fd, "c-ares query finished");
|
59
59
|
}
|
60
60
|
|
61
61
|
void RegisterForOnReadableLocked(grpc_closure* read_closure) override {
|
@@ -72,7 +72,7 @@ class GrpcPolledFdPosix : public GrpcPolledFd {
|
|
72
72
|
bytes_available > 0;
|
73
73
|
}
|
74
74
|
|
75
|
-
void ShutdownLocked(
|
75
|
+
void ShutdownLocked(grpc_error_handle error) override {
|
76
76
|
grpc_fd_shutdown(fd_, error);
|
77
77
|
}
|
78
78
|
|
@@ -30,10 +30,10 @@
|
|
30
30
|
#include <grpc/support/string_util.h>
|
31
31
|
#include <grpc/support/time.h>
|
32
32
|
#include <string.h>
|
33
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
33
34
|
#include "src/core/lib/gpr/string.h"
|
34
35
|
#include "src/core/lib/gprpp/memory.h"
|
35
36
|
#include "src/core/lib/iomgr/iocp_windows.h"
|
36
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
37
37
|
#include "src/core/lib/iomgr/sockaddr_windows.h"
|
38
38
|
#include "src/core/lib/iomgr/socket_windows.h"
|
39
39
|
#include "src/core/lib/iomgr/tcp_windows.h"
|
@@ -131,12 +131,12 @@ class GrpcPolledFdWindows {
|
|
131
131
|
grpc_winsocket_destroy(winsocket_);
|
132
132
|
}
|
133
133
|
|
134
|
-
void ScheduleAndNullReadClosure(
|
134
|
+
void ScheduleAndNullReadClosure(grpc_error_handle error) {
|
135
135
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, read_closure_, error);
|
136
136
|
read_closure_ = nullptr;
|
137
137
|
}
|
138
138
|
|
139
|
-
void ScheduleAndNullWriteClosure(
|
139
|
+
void ScheduleAndNullWriteClosure(grpc_error_handle error) {
|
140
140
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, write_closure_, error);
|
141
141
|
write_closure_ = nullptr;
|
142
142
|
}
|
@@ -251,9 +251,9 @@ class GrpcPolledFdWindows {
|
|
251
251
|
}
|
252
252
|
}
|
253
253
|
|
254
|
-
bool IsFdStillReadableLocked() { return
|
254
|
+
bool IsFdStillReadableLocked() { return read_buf_has_data_; }
|
255
255
|
|
256
|
-
void ShutdownLocked(
|
256
|
+
void ShutdownLocked(grpc_error_handle error) {
|
257
257
|
grpc_winsocket_shutdown(winsocket_);
|
258
258
|
}
|
259
259
|
|
@@ -362,6 +362,8 @@ class GrpcPolledFdWindows {
|
|
362
362
|
DWORD bytes_sent = 0;
|
363
363
|
int wsa_error_code = 0;
|
364
364
|
if (SendWriteBuf(&bytes_sent, nullptr, &wsa_error_code) != 0) {
|
365
|
+
grpc_slice_unref_internal(write_buf_);
|
366
|
+
write_buf_ = grpc_empty_slice();
|
365
367
|
wsa_error_ctx->SetWSAError(wsa_error_code);
|
366
368
|
char* msg = gpr_format_message(wsa_error_code);
|
367
369
|
GRPC_CARES_TRACE_LOG(
|
@@ -418,7 +420,7 @@ class GrpcPolledFdWindows {
|
|
418
420
|
abort();
|
419
421
|
}
|
420
422
|
|
421
|
-
static void OnTcpConnect(void* arg,
|
423
|
+
static void OnTcpConnect(void* arg, grpc_error_handle error) {
|
422
424
|
GrpcPolledFdWindows* grpc_polled_fd =
|
423
425
|
static_cast<GrpcPolledFdWindows*>(arg);
|
424
426
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
@@ -429,12 +431,12 @@ class GrpcPolledFdWindows {
|
|
429
431
|
DEBUG_LOCATION);
|
430
432
|
}
|
431
433
|
|
432
|
-
void OnTcpConnectLocked(
|
434
|
+
void OnTcpConnectLocked(grpc_error_handle error) {
|
433
435
|
GRPC_CARES_TRACE_LOG(
|
434
436
|
"fd:%s InnerOnTcpConnectLocked error:|%s| "
|
435
437
|
"pending_register_for_readable:%d"
|
436
438
|
" pending_register_for_writeable:%d",
|
437
|
-
GetName(),
|
439
|
+
GetName(), grpc_error_std_string(error).c_str(),
|
438
440
|
pending_continue_register_for_on_readable_locked_,
|
439
441
|
pending_continue_register_for_on_writeable_locked_);
|
440
442
|
GPR_ASSERT(!connect_done_);
|
@@ -574,7 +576,7 @@ class GrpcPolledFdWindows {
|
|
574
576
|
return out;
|
575
577
|
}
|
576
578
|
|
577
|
-
static void OnIocpReadable(void* arg,
|
579
|
+
static void OnIocpReadable(void* arg, grpc_error_handle error) {
|
578
580
|
GrpcPolledFdWindows* polled_fd = static_cast<GrpcPolledFdWindows*>(arg);
|
579
581
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
580
582
|
polled_fd->work_serializer_->Run(
|
@@ -587,7 +589,7 @@ class GrpcPolledFdWindows {
|
|
587
589
|
// c-ares reads from this socket later, but it shouldn't necessarily cancel
|
588
590
|
// the entire resolution attempt. Doing so will allow the "inject broken
|
589
591
|
// nameserver list" test to pass on Windows.
|
590
|
-
void OnIocpReadableLocked(
|
592
|
+
void OnIocpReadableLocked(grpc_error_handle error) {
|
591
593
|
if (error == GRPC_ERROR_NONE) {
|
592
594
|
if (winsocket_->read_info.wsa_error != 0) {
|
593
595
|
/* WSAEMSGSIZE would be due to receiving more data
|
@@ -601,7 +603,7 @@ class GrpcPolledFdWindows {
|
|
601
603
|
"fd:|%s| OnIocpReadableInner winsocket_->read_info.wsa_error "
|
602
604
|
"code:|%d| msg:|%s|",
|
603
605
|
GetName(), winsocket_->read_info.wsa_error,
|
604
|
-
|
606
|
+
grpc_error_std_string(error).c_str());
|
605
607
|
}
|
606
608
|
}
|
607
609
|
}
|
@@ -619,7 +621,7 @@ class GrpcPolledFdWindows {
|
|
619
621
|
ScheduleAndNullReadClosure(error);
|
620
622
|
}
|
621
623
|
|
622
|
-
static void OnIocpWriteable(void* arg,
|
624
|
+
static void OnIocpWriteable(void* arg, grpc_error_handle error) {
|
623
625
|
GrpcPolledFdWindows* polled_fd = static_cast<GrpcPolledFdWindows*>(arg);
|
624
626
|
GRPC_ERROR_REF(error); // error owned by lambda
|
625
627
|
polled_fd->work_serializer_->Run(
|
@@ -627,7 +629,7 @@ class GrpcPolledFdWindows {
|
|
627
629
|
DEBUG_LOCATION);
|
628
630
|
}
|
629
631
|
|
630
|
-
void OnIocpWriteableLocked(
|
632
|
+
void OnIocpWriteableLocked(grpc_error_handle error) {
|
631
633
|
GRPC_CARES_TRACE_LOG("OnIocpWriteableInner. fd:|%s|", GetName());
|
632
634
|
GPR_ASSERT(socket_type_ == SOCK_STREAM);
|
633
635
|
if (error == GRPC_ERROR_NONE) {
|
@@ -638,7 +640,7 @@ class GrpcPolledFdWindows {
|
|
638
640
|
"fd:|%s| OnIocpWriteableInner. winsocket_->write_info.wsa_error "
|
639
641
|
"code:|%d| msg:|%s|",
|
640
642
|
GetName(), winsocket_->write_info.wsa_error,
|
641
|
-
|
643
|
+
grpc_error_std_string(error).c_str());
|
642
644
|
}
|
643
645
|
}
|
644
646
|
GPR_ASSERT(tcp_write_state_ == WRITE_PENDING);
|
@@ -849,7 +851,7 @@ class GrpcPolledFdWindowsWrapper : public GrpcPolledFd {
|
|
849
851
|
return wrapped_->IsFdStillReadableLocked();
|
850
852
|
}
|
851
853
|
|
852
|
-
void ShutdownLocked(
|
854
|
+
void ShutdownLocked(grpc_error_handle error) override {
|
853
855
|
wrapped_->ShutdownLocked(error);
|
854
856
|
}
|
855
857
|
|