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
@@ -38,14 +38,14 @@
|
|
38
38
|
|
39
39
|
#include <address_sorting/address_sorting.h>
|
40
40
|
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
|
41
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
42
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
41
43
|
#include "src/core/lib/gpr/string.h"
|
42
44
|
#include "src/core/lib/gprpp/host_port.h"
|
43
45
|
#include "src/core/lib/iomgr/error.h"
|
44
46
|
#include "src/core/lib/iomgr/executor.h"
|
45
47
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
46
48
|
#include "src/core/lib/iomgr/nameser.h"
|
47
|
-
#include "src/core/lib/iomgr/parse_address.h"
|
48
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
49
49
|
#include "src/core/lib/iomgr/timer.h"
|
50
50
|
#include "src/core/lib/transport/authority_override.h"
|
51
51
|
|
@@ -77,7 +77,7 @@ struct grpc_ares_request {
|
|
77
77
|
size_t pending_queries;
|
78
78
|
|
79
79
|
/** the errors explaining query failures, appended to in query callbacks */
|
80
|
-
|
80
|
+
grpc_error_handle error;
|
81
81
|
};
|
82
82
|
|
83
83
|
typedef struct fd_node {
|
@@ -238,14 +238,14 @@ void grpc_ares_ev_driver_shutdown_locked(grpc_ares_ev_driver* ev_driver) {
|
|
238
238
|
// Search fd in the fd_node list head. This is an O(n) search, the max possible
|
239
239
|
// value of n is ARES_GETSOCK_MAXNUM (16). n is typically 1 - 2 in our tests.
|
240
240
|
static fd_node* pop_fd_node_locked(fd_node** head, ares_socket_t as) {
|
241
|
-
fd_node
|
242
|
-
|
243
|
-
fd_node* node = &
|
241
|
+
fd_node phony_head;
|
242
|
+
phony_head.next = *head;
|
243
|
+
fd_node* node = &phony_head;
|
244
244
|
while (node->next != nullptr) {
|
245
245
|
if (node->next->grpc_polled_fd->GetWrappedAresSocketLocked() == as) {
|
246
246
|
fd_node* ret = node->next;
|
247
247
|
node->next = node->next->next;
|
248
|
-
*head =
|
248
|
+
*head = phony_head.next;
|
249
249
|
return ret;
|
250
250
|
}
|
251
251
|
node = node->next;
|
@@ -268,11 +268,13 @@ static grpc_millis calculate_next_ares_backup_poll_alarm_ms(
|
|
268
268
|
grpc_core::ExecCtx::Get()->Now();
|
269
269
|
}
|
270
270
|
|
271
|
-
static void on_timeout_locked(grpc_ares_ev_driver* driver,
|
271
|
+
static void on_timeout_locked(grpc_ares_ev_driver* driver,
|
272
|
+
grpc_error_handle error) {
|
272
273
|
GRPC_CARES_TRACE_LOG(
|
273
274
|
"request:%p ev_driver=%p on_timeout_locked. driver->shutting_down=%d. "
|
274
275
|
"err=%s",
|
275
|
-
driver->request, driver, driver->shutting_down,
|
276
|
+
driver->request, driver, driver->shutting_down,
|
277
|
+
grpc_error_std_string(error).c_str());
|
276
278
|
if (!driver->shutting_down && error == GRPC_ERROR_NONE) {
|
277
279
|
grpc_ares_ev_driver_shutdown_locked(driver);
|
278
280
|
}
|
@@ -280,7 +282,7 @@ static void on_timeout_locked(grpc_ares_ev_driver* driver, grpc_error* error) {
|
|
280
282
|
GRPC_ERROR_UNREF(error);
|
281
283
|
}
|
282
284
|
|
283
|
-
static void on_timeout(void* arg,
|
285
|
+
static void on_timeout(void* arg, grpc_error_handle error) {
|
284
286
|
grpc_ares_ev_driver* driver = static_cast<grpc_ares_ev_driver*>(arg);
|
285
287
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
286
288
|
driver->work_serializer->Run(
|
@@ -290,9 +292,9 @@ static void on_timeout(void* arg, grpc_error* error) {
|
|
290
292
|
static void grpc_ares_notify_on_event_locked(grpc_ares_ev_driver* ev_driver);
|
291
293
|
|
292
294
|
static void on_ares_backup_poll_alarm_locked(grpc_ares_ev_driver* driver,
|
293
|
-
|
295
|
+
grpc_error_handle error);
|
294
296
|
|
295
|
-
static void on_ares_backup_poll_alarm(void* arg,
|
297
|
+
static void on_ares_backup_poll_alarm(void* arg, grpc_error_handle error) {
|
296
298
|
grpc_ares_ev_driver* driver = static_cast<grpc_ares_ev_driver*>(arg);
|
297
299
|
GRPC_ERROR_REF(error);
|
298
300
|
driver->work_serializer->Run(
|
@@ -309,12 +311,13 @@ static void on_ares_backup_poll_alarm(void* arg, grpc_error* error) {
|
|
309
311
|
* For the latter, we use this backup poller. Also see
|
310
312
|
* https://github.com/grpc/grpc/pull/17688 description for more details. */
|
311
313
|
static void on_ares_backup_poll_alarm_locked(grpc_ares_ev_driver* driver,
|
312
|
-
|
314
|
+
grpc_error_handle error) {
|
313
315
|
GRPC_CARES_TRACE_LOG(
|
314
316
|
"request:%p ev_driver=%p on_ares_backup_poll_alarm_locked. "
|
315
317
|
"driver->shutting_down=%d. "
|
316
318
|
"err=%s",
|
317
|
-
driver->request, driver, driver->shutting_down,
|
319
|
+
driver->request, driver, driver->shutting_down,
|
320
|
+
grpc_error_std_string(error).c_str());
|
318
321
|
if (!driver->shutting_down && error == GRPC_ERROR_NONE) {
|
319
322
|
fd_node* fdn = driver->fds;
|
320
323
|
while (fdn != nullptr) {
|
@@ -329,6 +332,10 @@ static void on_ares_backup_poll_alarm_locked(grpc_ares_ev_driver* driver,
|
|
329
332
|
fdn = fdn->next;
|
330
333
|
}
|
331
334
|
if (!driver->shutting_down) {
|
335
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
336
|
+
// in a loop while draining the currently-held WorkSerializer.
|
337
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
338
|
+
grpc_core::ExecCtx::Get()->InvalidateNow();
|
332
339
|
grpc_millis next_ares_backup_poll_alarm =
|
333
340
|
calculate_next_ares_backup_poll_alarm_ms(driver);
|
334
341
|
grpc_ares_ev_driver_ref(driver);
|
@@ -345,7 +352,7 @@ static void on_ares_backup_poll_alarm_locked(grpc_ares_ev_driver* driver,
|
|
345
352
|
GRPC_ERROR_UNREF(error);
|
346
353
|
}
|
347
354
|
|
348
|
-
static void on_readable_locked(fd_node* fdn,
|
355
|
+
static void on_readable_locked(fd_node* fdn, grpc_error_handle error) {
|
349
356
|
GPR_ASSERT(fdn->readable_registered);
|
350
357
|
grpc_ares_ev_driver* ev_driver = fdn->ev_driver;
|
351
358
|
const ares_socket_t as = fdn->grpc_polled_fd->GetWrappedAresSocketLocked();
|
@@ -370,14 +377,14 @@ static void on_readable_locked(fd_node* fdn, grpc_error* error) {
|
|
370
377
|
GRPC_ERROR_UNREF(error);
|
371
378
|
}
|
372
379
|
|
373
|
-
static void on_readable(void* arg,
|
380
|
+
static void on_readable(void* arg, grpc_error_handle error) {
|
374
381
|
fd_node* fdn = static_cast<fd_node*>(arg);
|
375
382
|
GRPC_ERROR_REF(error); /* ref owned by lambda */
|
376
383
|
fdn->ev_driver->work_serializer->Run(
|
377
384
|
[fdn, error]() { on_readable_locked(fdn, error); }, DEBUG_LOCATION);
|
378
385
|
}
|
379
386
|
|
380
|
-
static void on_writable_locked(fd_node* fdn,
|
387
|
+
static void on_writable_locked(fd_node* fdn, grpc_error_handle error) {
|
381
388
|
GPR_ASSERT(fdn->writable_registered);
|
382
389
|
grpc_ares_ev_driver* ev_driver = fdn->ev_driver;
|
383
390
|
const ares_socket_t as = fdn->grpc_polled_fd->GetWrappedAresSocketLocked();
|
@@ -400,7 +407,7 @@ static void on_writable_locked(fd_node* fdn, grpc_error* error) {
|
|
400
407
|
GRPC_ERROR_UNREF(error);
|
401
408
|
}
|
402
409
|
|
403
|
-
static void on_writable(void* arg,
|
410
|
+
static void on_writable(void* arg, grpc_error_handle error) {
|
404
411
|
fd_node* fdn = static_cast<fd_node*>(arg);
|
405
412
|
GRPC_ERROR_REF(error); /* ref owned by lambda */
|
406
413
|
fdn->ev_driver->work_serializer->Run(
|
@@ -516,7 +523,7 @@ static void noop_inject_channel_config(ares_channel /*channel*/) {}
|
|
516
523
|
void (*grpc_ares_test_only_inject_config)(ares_channel channel) =
|
517
524
|
noop_inject_channel_config;
|
518
525
|
|
519
|
-
|
526
|
+
grpc_error_handle grpc_ares_ev_driver_create_locked(
|
520
527
|
grpc_ares_ev_driver** ev_driver, grpc_pollset_set* pollset_set,
|
521
528
|
int query_timeout_ms,
|
522
529
|
std::shared_ptr<grpc_core::WorkSerializer> work_serializer,
|
@@ -529,7 +536,7 @@ grpc_error* grpc_ares_ev_driver_create_locked(
|
|
529
536
|
grpc_ares_test_only_inject_config((*ev_driver)->channel);
|
530
537
|
GRPC_CARES_TRACE_LOG("request:%p grpc_ares_ev_driver_create_locked", request);
|
531
538
|
if (status != ARES_SUCCESS) {
|
532
|
-
|
539
|
+
grpc_error_handle err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
533
540
|
absl::StrCat("Failed to init ares channel. C-ares error: ",
|
534
541
|
ares_strerror(status))
|
535
542
|
.c_str());
|
@@ -713,7 +720,8 @@ static void on_hostbyname_done_locked(void* arg, int status, int /*timeouts*/,
|
|
713
720
|
hr->qtype, hr->host, hr->is_balancer, ares_strerror(status));
|
714
721
|
GRPC_CARES_TRACE_LOG("request:%p on_hostbyname_done_locked: %s", r,
|
715
722
|
error_msg.c_str());
|
716
|
-
|
723
|
+
grpc_error_handle error =
|
724
|
+
GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
|
717
725
|
r->error = grpc_error_add_child(error, r->error);
|
718
726
|
}
|
719
727
|
destroy_hostbyname_request_locked(hr);
|
@@ -757,7 +765,8 @@ static void on_srv_query_done_locked(void* arg, int status, int /*timeouts*/,
|
|
757
765
|
ares_strerror(status));
|
758
766
|
GRPC_CARES_TRACE_LOG("request:%p on_srv_query_done_locked: %s", r,
|
759
767
|
error_msg.c_str());
|
760
|
-
|
768
|
+
grpc_error_handle error =
|
769
|
+
GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
|
761
770
|
r->error = grpc_error_add_child(error, r->error);
|
762
771
|
}
|
763
772
|
delete q;
|
@@ -773,7 +782,7 @@ static void on_txt_done_locked(void* arg, int status, int /*timeouts*/,
|
|
773
782
|
const size_t prefix_len = sizeof(g_service_config_attribute_prefix) - 1;
|
774
783
|
struct ares_txt_ext* result = nullptr;
|
775
784
|
struct ares_txt_ext* reply = nullptr;
|
776
|
-
|
785
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
777
786
|
if (status != ARES_SUCCESS) goto fail;
|
778
787
|
GRPC_CARES_TRACE_LOG("request:%p on_txt_done_locked name=%s ARES_SUCCESS", r,
|
779
788
|
q->name().c_str());
|
@@ -825,7 +834,7 @@ void grpc_dns_lookup_ares_continue_after_check_localhost_and_ip_literals_locked(
|
|
825
834
|
const char* default_port, grpc_pollset_set* interested_parties,
|
826
835
|
int query_timeout_ms,
|
827
836
|
std::shared_ptr<grpc_core::WorkSerializer> work_serializer) {
|
828
|
-
|
837
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
829
838
|
grpc_ares_hostbyname_request* hr = nullptr;
|
830
839
|
/* parse name, splitting it into host and port parts */
|
831
840
|
std::string host;
|
@@ -971,11 +980,7 @@ static bool target_matches_localhost_inner(const char* name, std::string* host,
|
|
971
980
|
gpr_log(GPR_ERROR, "Unable to split host and port for name: %s", name);
|
972
981
|
return false;
|
973
982
|
}
|
974
|
-
|
975
|
-
return true;
|
976
|
-
} else {
|
977
|
-
return false;
|
978
|
-
}
|
983
|
+
return gpr_stricmp(host->c_str(), "localhost") == 0;
|
979
984
|
}
|
980
985
|
|
981
986
|
static bool target_matches_localhost(const char* name) {
|
@@ -1120,7 +1125,7 @@ void (*grpc_cancel_ares_request_locked)(grpc_ares_request* r) =
|
|
1120
1125
|
// Windows. Calling them may cause race conditions when other parts of the
|
1121
1126
|
// binary calls these functions concurrently.
|
1122
1127
|
#ifdef GPR_WINDOWS
|
1123
|
-
|
1128
|
+
grpc_error_handle grpc_ares_init(void) {
|
1124
1129
|
int status = ares_library_init(ARES_LIB_INIT_ALL);
|
1125
1130
|
if (status != ARES_SUCCESS) {
|
1126
1131
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
@@ -1132,7 +1137,7 @@ grpc_error* grpc_ares_init(void) {
|
|
1132
1137
|
|
1133
1138
|
void grpc_ares_cleanup(void) { ares_library_cleanup(); }
|
1134
1139
|
#else
|
1135
|
-
|
1140
|
+
grpc_error_handle grpc_ares_init(void) { return GRPC_ERROR_NONE; }
|
1136
1141
|
void grpc_ares_cleanup(void) {}
|
1137
1142
|
#endif // GPR_WINDOWS
|
1138
1143
|
|
@@ -1163,7 +1168,7 @@ typedef struct grpc_resolve_address_ares_request {
|
|
1163
1168
|
} grpc_resolve_address_ares_request;
|
1164
1169
|
|
1165
1170
|
static void on_dns_lookup_done_locked(grpc_resolve_address_ares_request* r,
|
1166
|
-
|
1171
|
+
grpc_error_handle error) {
|
1167
1172
|
gpr_free(r->ares_request);
|
1168
1173
|
grpc_resolved_addresses** resolved_addresses = r->addrs_out;
|
1169
1174
|
if (r->addresses == nullptr || r->addresses->empty()) {
|
@@ -1184,7 +1189,7 @@ static void on_dns_lookup_done_locked(grpc_resolve_address_ares_request* r,
|
|
1184
1189
|
delete r;
|
1185
1190
|
}
|
1186
1191
|
|
1187
|
-
static void on_dns_lookup_done(void* arg,
|
1192
|
+
static void on_dns_lookup_done(void* arg, grpc_error_handle error) {
|
1188
1193
|
grpc_resolve_address_ares_request* r =
|
1189
1194
|
static_cast<grpc_resolve_address_ares_request*>(arg);
|
1190
1195
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
@@ -76,7 +76,7 @@ extern void (*grpc_cancel_ares_request_locked)(grpc_ares_request* request);
|
|
76
76
|
|
77
77
|
/* Initialize gRPC ares wrapper. Must be called at least once before
|
78
78
|
grpc_resolve_address_ares(). */
|
79
|
-
|
79
|
+
grpc_error_handle grpc_ares_init(void);
|
80
80
|
|
81
81
|
/* Uninitialized gRPC ares wrapper. If there was more than one previous call to
|
82
82
|
grpc_ares_init(), this function uninitializes the gRPC ares wrapper only if
|
@@ -25,8 +25,8 @@
|
|
25
25
|
|
26
26
|
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
|
27
27
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
28
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
28
29
|
#include "src/core/lib/gpr/string.h"
|
29
|
-
#include "src/core/lib/iomgr/parse_address.h"
|
30
30
|
|
31
31
|
bool grpc_ares_query_ipv6() {
|
32
32
|
/* The libuv grpc code currently does not have the code to probe for this,
|
@@ -25,8 +25,8 @@
|
|
25
25
|
|
26
26
|
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
|
27
27
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
28
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
28
29
|
#include "src/core/lib/gpr/string.h"
|
29
|
-
#include "src/core/lib/iomgr/parse_address.h"
|
30
30
|
#include "src/core/lib/iomgr/socket_windows.h"
|
31
31
|
|
32
32
|
bool grpc_ares_query_ipv6() { return grpc_ipv6_loopback_available(); }
|
@@ -68,10 +68,10 @@ class NativeDnsResolver : public Resolver {
|
|
68
68
|
void MaybeStartResolvingLocked();
|
69
69
|
void StartResolvingLocked();
|
70
70
|
|
71
|
-
static void OnNextResolution(void* arg,
|
72
|
-
void OnNextResolutionLocked(
|
73
|
-
static void OnResolved(void* arg,
|
74
|
-
void OnResolvedLocked(
|
71
|
+
static void OnNextResolution(void* arg, grpc_error_handle error);
|
72
|
+
void OnNextResolutionLocked(grpc_error_handle error);
|
73
|
+
static void OnResolved(void* arg, grpc_error_handle error);
|
74
|
+
void OnResolvedLocked(grpc_error_handle error);
|
75
75
|
|
76
76
|
/// name to resolve
|
77
77
|
std::string name_to_resolve_;
|
@@ -148,14 +148,14 @@ void NativeDnsResolver::ShutdownLocked() {
|
|
148
148
|
}
|
149
149
|
}
|
150
150
|
|
151
|
-
void NativeDnsResolver::OnNextResolution(void* arg,
|
151
|
+
void NativeDnsResolver::OnNextResolution(void* arg, grpc_error_handle error) {
|
152
152
|
NativeDnsResolver* r = static_cast<NativeDnsResolver*>(arg);
|
153
153
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
154
154
|
r->work_serializer_->Run([r, error]() { r->OnNextResolutionLocked(error); },
|
155
155
|
DEBUG_LOCATION);
|
156
156
|
}
|
157
157
|
|
158
|
-
void NativeDnsResolver::OnNextResolutionLocked(
|
158
|
+
void NativeDnsResolver::OnNextResolutionLocked(grpc_error_handle error) {
|
159
159
|
have_next_resolution_timer_ = false;
|
160
160
|
if (error == GRPC_ERROR_NONE && !resolving_) {
|
161
161
|
StartResolvingLocked();
|
@@ -164,14 +164,14 @@ void NativeDnsResolver::OnNextResolutionLocked(grpc_error* error) {
|
|
164
164
|
GRPC_ERROR_UNREF(error);
|
165
165
|
}
|
166
166
|
|
167
|
-
void NativeDnsResolver::OnResolved(void* arg,
|
167
|
+
void NativeDnsResolver::OnResolved(void* arg, grpc_error_handle error) {
|
168
168
|
NativeDnsResolver* r = static_cast<NativeDnsResolver*>(arg);
|
169
169
|
GRPC_ERROR_REF(error); // owned by lambda
|
170
170
|
r->work_serializer_->Run([r, error]() { r->OnResolvedLocked(error); },
|
171
171
|
DEBUG_LOCATION);
|
172
172
|
}
|
173
173
|
|
174
|
-
void NativeDnsResolver::OnResolvedLocked(
|
174
|
+
void NativeDnsResolver::OnResolvedLocked(grpc_error_handle error) {
|
175
175
|
GPR_ASSERT(resolving_);
|
176
176
|
resolving_ = false;
|
177
177
|
if (shutdown_) {
|
@@ -194,7 +194,7 @@ void NativeDnsResolver::OnResolvedLocked(grpc_error* error) {
|
|
194
194
|
backoff_.Reset();
|
195
195
|
} else {
|
196
196
|
gpr_log(GPR_INFO, "dns resolution failed (will retry): %s",
|
197
|
-
|
197
|
+
grpc_error_std_string(error).c_str());
|
198
198
|
// Return transient error.
|
199
199
|
std::string error_message =
|
200
200
|
absl::StrCat("DNS resolution failed for service: ", name_to_resolve_);
|
@@ -203,6 +203,10 @@ void NativeDnsResolver::OnResolvedLocked(grpc_error* error) {
|
|
203
203
|
&error, 1),
|
204
204
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE));
|
205
205
|
// Set up for retry.
|
206
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
207
|
+
// in a loop while draining the currently-held WorkSerializer.
|
208
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
209
|
+
ExecCtx::Get()->InvalidateNow();
|
206
210
|
grpc_millis next_try = backoff_.NextAttemptTime();
|
207
211
|
grpc_millis timeout = next_try - ExecCtx::Get()->Now();
|
208
212
|
GPR_ASSERT(!have_next_resolution_timer_);
|
@@ -229,6 +233,10 @@ void NativeDnsResolver::MaybeStartResolvingLocked() {
|
|
229
233
|
// can start the next resolution.
|
230
234
|
if (have_next_resolution_timer_) return;
|
231
235
|
if (last_resolution_timestamp_ >= 0) {
|
236
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
237
|
+
// in a loop while draining the currently-held WorkSerializer.
|
238
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
239
|
+
ExecCtx::Get()->InvalidateNow();
|
232
240
|
const grpc_millis earliest_next_resolution =
|
233
241
|
last_resolution_timestamp_ + min_time_between_resolutions_;
|
234
242
|
const grpc_millis ms_until_next_resolution =
|
@@ -30,11 +30,11 @@
|
|
30
30
|
|
31
31
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
32
32
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
33
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
33
34
|
#include "src/core/lib/channel/channel_args.h"
|
34
35
|
#include "src/core/lib/gpr/string.h"
|
35
36
|
#include "src/core/lib/gpr/useful.h"
|
36
37
|
#include "src/core/lib/iomgr/closure.h"
|
37
|
-
#include "src/core/lib/iomgr/parse_address.h"
|
38
38
|
#include "src/core/lib/iomgr/resolve_address.h"
|
39
39
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
40
40
|
#include "src/core/lib/iomgr/work_serializer.h"
|
@@ -313,48 +313,40 @@ void FakeResolverResponseGenerator::SetFakeResolver(
|
|
313
313
|
|
314
314
|
namespace {
|
315
315
|
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
// TODO(roth): We currently deal with this ref manually. Once the
|
320
|
-
// new channel args code is converted to C++, find a way to track this ref
|
321
|
-
// in a cleaner way.
|
322
|
-
RefCountedPtr<FakeResolverResponseGenerator> copy = generator->Ref();
|
323
|
-
copy.release();
|
316
|
+
void* ResponseGeneratorChannelArgCopy(void* p) {
|
317
|
+
auto* generator = static_cast<FakeResolverResponseGenerator*>(p);
|
318
|
+
generator->Ref().release();
|
324
319
|
return p;
|
325
320
|
}
|
326
321
|
|
327
|
-
|
328
|
-
|
329
|
-
static_cast<FakeResolverResponseGenerator*>(p);
|
322
|
+
void ResponseGeneratorChannelArgDestroy(void* p) {
|
323
|
+
auto* generator = static_cast<FakeResolverResponseGenerator*>(p);
|
330
324
|
generator->Unref();
|
331
325
|
}
|
332
326
|
|
333
|
-
|
334
|
-
|
335
|
-
static const grpc_arg_pointer_vtable response_generator_arg_vtable = {
|
336
|
-
response_generator_arg_copy, response_generator_arg_destroy,
|
337
|
-
response_generator_cmp};
|
327
|
+
int ResponseGeneratorChannelArgCmp(void* a, void* b) { return GPR_ICMP(a, b); }
|
338
328
|
|
339
329
|
} // namespace
|
340
330
|
|
331
|
+
const grpc_arg_pointer_vtable
|
332
|
+
FakeResolverResponseGenerator::kChannelArgPointerVtable = {
|
333
|
+
ResponseGeneratorChannelArgCopy, ResponseGeneratorChannelArgDestroy,
|
334
|
+
ResponseGeneratorChannelArgCmp};
|
335
|
+
|
341
336
|
grpc_arg FakeResolverResponseGenerator::MakeChannelArg(
|
342
337
|
FakeResolverResponseGenerator* generator) {
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
arg.value.pointer.p = generator;
|
347
|
-
arg.value.pointer.vtable = &response_generator_arg_vtable;
|
348
|
-
return arg;
|
338
|
+
return grpc_channel_arg_pointer_create(
|
339
|
+
const_cast<char*>(GRPC_ARG_FAKE_RESOLVER_RESPONSE_GENERATOR), generator,
|
340
|
+
&kChannelArgPointerVtable);
|
349
341
|
}
|
350
342
|
|
351
343
|
RefCountedPtr<FakeResolverResponseGenerator>
|
352
344
|
FakeResolverResponseGenerator::GetFromArgs(const grpc_channel_args* args) {
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
345
|
+
auto* response_generator =
|
346
|
+
grpc_channel_args_find_pointer<FakeResolverResponseGenerator>(
|
347
|
+
args, GRPC_ARG_FAKE_RESOLVER_RESPONSE_GENERATOR);
|
348
|
+
if (response_generator == nullptr) return nullptr;
|
349
|
+
return response_generator->Ref();
|
358
350
|
}
|
359
351
|
|
360
352
|
//
|
@@ -42,6 +42,8 @@ class FakeResolver;
|
|
42
42
|
class FakeResolverResponseGenerator
|
43
43
|
: public RefCounted<FakeResolverResponseGenerator> {
|
44
44
|
public:
|
45
|
+
static const grpc_arg_pointer_vtable kChannelArgPointerVtable;
|
46
|
+
|
45
47
|
FakeResolverResponseGenerator();
|
46
48
|
~FakeResolverResponseGenerator() override;
|
47
49
|
|
@@ -69,6 +71,7 @@ class FakeResolverResponseGenerator
|
|
69
71
|
void SetFailureOnReresolution();
|
70
72
|
|
71
73
|
// Returns a channel arg containing \a generator.
|
74
|
+
// TODO(roth): When we have time, make this a non-static method.
|
72
75
|
static grpc_arg MakeChannelArg(FakeResolverResponseGenerator* generator);
|
73
76
|
|
74
77
|
// Returns the response generator in \a args, or null if not found.
|
@@ -82,12 +85,11 @@ class FakeResolverResponseGenerator
|
|
82
85
|
|
83
86
|
// Mutex protecting the members below.
|
84
87
|
Mutex mu_;
|
85
|
-
RefCountedPtr<FakeResolver> resolver_;
|
86
|
-
Resolver::Result result_;
|
87
|
-
bool has_result_ = false;
|
88
|
+
RefCountedPtr<FakeResolver> resolver_ ABSL_GUARDED_BY(mu_);
|
89
|
+
Resolver::Result result_ ABSL_GUARDED_BY(mu_);
|
90
|
+
bool has_result_ ABSL_GUARDED_BY(mu_) = false;
|
88
91
|
};
|
89
92
|
|
90
93
|
} // namespace grpc_core
|
91
94
|
|
92
|
-
#endif
|
93
|
-
*/
|
95
|
+
#endif // GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_FAKE_FAKE_RESOLVER_H
|