grpc 1.37.1 → 1.40.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +112 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +330 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +66 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +44 -19
- data/include/grpc/impl/codegen/port_platform.h +46 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +975 -3282
- data/src/core/ext/filters/client_channel/client_channel.h +513 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +20 -7
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +53 -51
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -23
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +16 -16
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -17
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +17 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +53 -65
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +36 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +33 -55
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +151 -163
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -16
- data/src/core/ext/filters/client_channel/lb_policy.h +70 -46
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +158 -102
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2598 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_call_data.h +45 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +33 -23
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +49 -46
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +141 -126
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +9 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +12 -12
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -16
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +11 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +652 -736
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +33 -28
- data/src/core/ext/transport/chttp2/transport/parsing.cc +129 -106
- data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +56 -35
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -76
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +97 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +67 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +66 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +227 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +32 -24
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -73
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +27 -19
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +57 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +29 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +15 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +85 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +274 -91
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +11 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +33 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +1 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +82 -66
- data/src/core/ext/upb-generated/validate/validate.upb.h +220 -124
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +437 -410
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +684 -664
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +441 -375
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +122 -114
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +665 -317
- data/src/core/ext/xds/xds_api.h +52 -14
- data/src/core/ext/xds/xds_bootstrap.cc +101 -160
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +370 -215
- data/src/core/ext/xds/xds_client.h +38 -28
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +3 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +11 -10
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/channel/status_util.h +4 -0
- data/src/core/lib/compression/stream_compression.h +1 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/debug/stats.h +1 -1
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/gprpp/sync.h +2 -30
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +8 -10
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +13 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +7 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +29 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +5 -6
- data/src/core/lib/matchers/matchers.cc +46 -58
- data/src/core/lib/matchers/matchers.h +30 -29
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +68 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +60 -76
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +45 -36
- data/src/core/lib/security/transport/server_auth_filter.cc +17 -18
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice_internal.h +1 -0
- data/src/core/lib/surface/call.cc +72 -52
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +31 -23
- data/src/core/lib/surface/server.h +19 -18
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +116 -51
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -29,15 +29,15 @@
|
|
29
29
|
typedef struct grpc_custom_resolver grpc_custom_resolver;
|
30
30
|
|
31
31
|
typedef struct grpc_custom_resolver_vtable {
|
32
|
-
|
33
|
-
|
32
|
+
grpc_error_handle (*resolve)(const char* host, const char* port,
|
33
|
+
grpc_resolved_addresses** res);
|
34
34
|
void (*resolve_async)(grpc_custom_resolver* resolver, const char* host,
|
35
35
|
const char* port);
|
36
36
|
} grpc_custom_resolver_vtable;
|
37
37
|
|
38
38
|
void grpc_custom_resolve_callback(grpc_custom_resolver* resolver,
|
39
39
|
grpc_resolved_addresses* result,
|
40
|
-
|
40
|
+
grpc_error_handle error);
|
41
41
|
|
42
42
|
/* Internal APIs */
|
43
43
|
void grpc_custom_resolver_init(grpc_custom_resolver_vtable* impl);
|
@@ -42,7 +42,7 @@
|
|
42
42
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
43
43
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
44
44
|
|
45
|
-
static
|
45
|
+
static grpc_error_handle posix_blocking_resolve_address(
|
46
46
|
const char* name, const char* default_port,
|
47
47
|
grpc_resolved_addresses** addresses) {
|
48
48
|
grpc_core::ExecCtx exec_ctx;
|
@@ -50,7 +50,7 @@ static grpc_error* posix_blocking_resolve_address(
|
|
50
50
|
struct addrinfo *result = nullptr, *resp;
|
51
51
|
int s;
|
52
52
|
size_t i;
|
53
|
-
|
53
|
+
grpc_error_handle err;
|
54
54
|
|
55
55
|
std::string host;
|
56
56
|
std::string port;
|
@@ -145,7 +145,7 @@ struct request {
|
|
145
145
|
};
|
146
146
|
/* Callback to be passed to grpc Executor to asynch-ify
|
147
147
|
* grpc_blocking_resolve_address */
|
148
|
-
static void do_request_thread(void* rp,
|
148
|
+
static void do_request_thread(void* rp, grpc_error_handle /*error*/) {
|
149
149
|
request* r = static_cast<request*>(rp);
|
150
150
|
grpc_core::ExecCtx::Run(
|
151
151
|
DEBUG_LOCATION, r->on_done,
|
@@ -39,13 +39,13 @@
|
|
39
39
|
#include <grpc/support/string_util.h>
|
40
40
|
#include <grpc/support/time.h>
|
41
41
|
|
42
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
42
43
|
#include "src/core/lib/gpr/string.h"
|
43
44
|
#include "src/core/lib/gprpp/host_port.h"
|
44
45
|
#include "src/core/lib/gprpp/thd.h"
|
45
46
|
#include "src/core/lib/iomgr/block_annotate.h"
|
46
47
|
#include "src/core/lib/iomgr/executor.h"
|
47
48
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
48
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
49
49
|
|
50
50
|
struct request {
|
51
51
|
char* name;
|
@@ -54,7 +54,7 @@ struct request {
|
|
54
54
|
grpc_closure* on_done;
|
55
55
|
grpc_resolved_addresses** addresses;
|
56
56
|
};
|
57
|
-
static
|
57
|
+
static grpc_error_handle windows_blocking_resolve_address(
|
58
58
|
const char* name, const char* default_port,
|
59
59
|
grpc_resolved_addresses** addresses) {
|
60
60
|
grpc_core::ExecCtx exec_ctx;
|
@@ -62,7 +62,7 @@ static grpc_error* windows_blocking_resolve_address(
|
|
62
62
|
struct addrinfo *result = NULL, *resp;
|
63
63
|
int s;
|
64
64
|
size_t i;
|
65
|
-
|
65
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
66
66
|
|
67
67
|
/* parse name, splitting it into host and port parts */
|
68
68
|
std::string host;
|
@@ -121,7 +121,7 @@ done:
|
|
121
121
|
|
122
122
|
/* Callback to be passed to grpc_executor to asynch-ify
|
123
123
|
* grpc_blocking_resolve_address */
|
124
|
-
static void do_request_thread(void* rp,
|
124
|
+
static void do_request_thread(void* rp, grpc_error_handle error) {
|
125
125
|
request* r = (request*)rp;
|
126
126
|
if (error == GRPC_ERROR_NONE) {
|
127
127
|
error =
|
@@ -276,7 +276,7 @@ static bool rq_reclaim_from_per_user_free_pool(
|
|
276
276
|
grpc_resource_quota* resource_quota);
|
277
277
|
static bool rq_reclaim(grpc_resource_quota* resource_quota, bool destructive);
|
278
278
|
|
279
|
-
static void rq_step(void* rq,
|
279
|
+
static void rq_step(void* rq, grpc_error_handle /*error*/) {
|
280
280
|
grpc_resource_quota* resource_quota = static_cast<grpc_resource_quota*>(rq);
|
281
281
|
resource_quota->step_scheduled = false;
|
282
282
|
do {
|
@@ -484,7 +484,7 @@ static grpc_slice ru_slice_create(grpc_resource_user* resource_user,
|
|
484
484
|
* the combiner
|
485
485
|
*/
|
486
486
|
|
487
|
-
static void ru_allocate(void* ru,
|
487
|
+
static void ru_allocate(void* ru, grpc_error_handle /*error*/) {
|
488
488
|
grpc_resource_user* resource_user = static_cast<grpc_resource_user*>(ru);
|
489
489
|
if (rulist_empty(resource_user->resource_quota,
|
490
490
|
GRPC_RULIST_AWAITING_ALLOCATION)) {
|
@@ -493,7 +493,7 @@ static void ru_allocate(void* ru, grpc_error* /*error*/) {
|
|
493
493
|
rulist_add_tail(resource_user, GRPC_RULIST_AWAITING_ALLOCATION);
|
494
494
|
}
|
495
495
|
|
496
|
-
static void ru_add_to_free_pool(void* ru,
|
496
|
+
static void ru_add_to_free_pool(void* ru, grpc_error_handle /*error*/) {
|
497
497
|
grpc_resource_user* resource_user = static_cast<grpc_resource_user*>(ru);
|
498
498
|
if (!rulist_empty(resource_user->resource_quota,
|
499
499
|
GRPC_RULIST_AWAITING_ALLOCATION) &&
|
@@ -518,7 +518,7 @@ static bool ru_post_reclaimer(grpc_resource_user* resource_user,
|
|
518
518
|
return true;
|
519
519
|
}
|
520
520
|
|
521
|
-
static void ru_post_benign_reclaimer(void* ru,
|
521
|
+
static void ru_post_benign_reclaimer(void* ru, grpc_error_handle /*error*/) {
|
522
522
|
grpc_resource_user* resource_user = static_cast<grpc_resource_user*>(ru);
|
523
523
|
if (!ru_post_reclaimer(resource_user, false)) return;
|
524
524
|
if (!rulist_empty(resource_user->resource_quota,
|
@@ -532,7 +532,8 @@ static void ru_post_benign_reclaimer(void* ru, grpc_error* /*error*/) {
|
|
532
532
|
rulist_add_tail(resource_user, GRPC_RULIST_RECLAIMER_BENIGN);
|
533
533
|
}
|
534
534
|
|
535
|
-
static void ru_post_destructive_reclaimer(void* ru,
|
535
|
+
static void ru_post_destructive_reclaimer(void* ru,
|
536
|
+
grpc_error_handle /*error*/) {
|
536
537
|
grpc_resource_user* resource_user = static_cast<grpc_resource_user*>(ru);
|
537
538
|
if (!ru_post_reclaimer(resource_user, true)) return;
|
538
539
|
if (!rulist_empty(resource_user->resource_quota,
|
@@ -548,7 +549,7 @@ static void ru_post_destructive_reclaimer(void* ru, grpc_error* /*error*/) {
|
|
548
549
|
rulist_add_tail(resource_user, GRPC_RULIST_RECLAIMER_DESTRUCTIVE);
|
549
550
|
}
|
550
551
|
|
551
|
-
static void ru_shutdown(void* ru,
|
552
|
+
static void ru_shutdown(void* ru, grpc_error_handle /*error*/) {
|
552
553
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
|
553
554
|
gpr_log(GPR_INFO, "RU shutdown %p", ru);
|
554
555
|
}
|
@@ -568,7 +569,7 @@ static void ru_shutdown(void* ru, grpc_error* /*error*/) {
|
|
568
569
|
gpr_mu_unlock(&resource_user->mu);
|
569
570
|
}
|
570
571
|
|
571
|
-
static void ru_destroy(void* ru,
|
572
|
+
static void ru_destroy(void* ru, grpc_error_handle /*error*/) {
|
572
573
|
grpc_resource_user* resource_user = static_cast<grpc_resource_user*>(ru);
|
573
574
|
GPR_ASSERT(gpr_atm_no_barrier_load(&resource_user->refs) == 0);
|
574
575
|
// Free all the remaining thread quota
|
@@ -601,7 +602,7 @@ static void ru_alloc_slices(
|
|
601
602
|
}
|
602
603
|
}
|
603
604
|
|
604
|
-
static void ru_allocated_slices(void* arg,
|
605
|
+
static void ru_allocated_slices(void* arg, grpc_error_handle error) {
|
605
606
|
grpc_resource_user_slice_allocator* slice_allocator =
|
606
607
|
static_cast<grpc_resource_user_slice_allocator*>(arg);
|
607
608
|
if (error == GRPC_ERROR_NONE) ru_alloc_slices(slice_allocator);
|
@@ -619,7 +620,7 @@ struct rq_resize_args {
|
|
619
620
|
grpc_resource_quota* resource_quota;
|
620
621
|
grpc_closure closure;
|
621
622
|
};
|
622
|
-
static void rq_resize(void* args,
|
623
|
+
static void rq_resize(void* args, grpc_error_handle /*error*/) {
|
623
624
|
rq_resize_args* a = static_cast<rq_resize_args*>(args);
|
624
625
|
int64_t delta = a->size - a->resource_quota->size;
|
625
626
|
a->resource_quota->size += delta;
|
@@ -630,7 +631,7 @@ static void rq_resize(void* args, grpc_error* /*error*/) {
|
|
630
631
|
gpr_free(a);
|
631
632
|
}
|
632
633
|
|
633
|
-
static void rq_reclamation_done(void* rq,
|
634
|
+
static void rq_reclamation_done(void* rq, grpc_error_handle /*error*/) {
|
634
635
|
grpc_resource_quota* resource_quota = static_cast<grpc_resource_quota*>(rq);
|
635
636
|
resource_quota->reclaiming = false;
|
636
637
|
rq_step_sched(resource_quota);
|
@@ -804,6 +805,8 @@ grpc_resource_user* grpc_resource_user_create(
|
|
804
805
|
for (int i = 0; i < GRPC_RULIST_COUNT; i++) {
|
805
806
|
resource_user->links[i].next = resource_user->links[i].prev = nullptr;
|
806
807
|
}
|
808
|
+
// TODO(hork): the RU should own a copy of the name. See Craig's comments on
|
809
|
+
// the EventEngine gRFC for justification.
|
807
810
|
if (name != nullptr) {
|
808
811
|
resource_user->name = name;
|
809
812
|
} else {
|
@@ -21,6 +21,7 @@
|
|
21
21
|
#include "src/core/lib/iomgr/socket_mutator.h"
|
22
22
|
|
23
23
|
#include <grpc/impl/codegen/grpc_types.h>
|
24
|
+
#include <grpc/support/log.h>
|
24
25
|
#include <grpc/support/sync.h>
|
25
26
|
|
26
27
|
#include "src/core/lib/channel/channel_args.h"
|
@@ -37,8 +38,20 @@ grpc_socket_mutator* grpc_socket_mutator_ref(grpc_socket_mutator* mutator) {
|
|
37
38
|
return mutator;
|
38
39
|
}
|
39
40
|
|
40
|
-
bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator* mutator, int fd
|
41
|
-
|
41
|
+
bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator* mutator, int fd,
|
42
|
+
grpc_fd_usage usage) {
|
43
|
+
if (mutator->vtable->mutate_fd_2 != nullptr) {
|
44
|
+
grpc_mutate_socket_info info{fd, usage};
|
45
|
+
return mutator->vtable->mutate_fd_2(&info, mutator);
|
46
|
+
}
|
47
|
+
switch (usage) {
|
48
|
+
case GRPC_FD_SERVER_CONNECTION_USAGE:
|
49
|
+
return true;
|
50
|
+
case GRPC_FD_CLIENT_CONNECTION_USAGE:
|
51
|
+
case GRPC_FD_SERVER_LISTENER_USAGE:
|
52
|
+
return mutator->vtable->mutate_fd(fd, mutator);
|
53
|
+
}
|
54
|
+
GPR_UNREACHABLE_CODE(return false);
|
42
55
|
}
|
43
56
|
|
44
57
|
int grpc_socket_mutator_compare(grpc_socket_mutator* a,
|
@@ -26,15 +26,38 @@
|
|
26
26
|
|
27
27
|
#include <stdbool.h>
|
28
28
|
|
29
|
+
/** How is an fd to be used? */
|
30
|
+
typedef enum {
|
31
|
+
/** Used for client connection */
|
32
|
+
GRPC_FD_CLIENT_CONNECTION_USAGE,
|
33
|
+
/** Used for server listening */
|
34
|
+
GRPC_FD_SERVER_LISTENER_USAGE,
|
35
|
+
/** Used for server connection */
|
36
|
+
GRPC_FD_SERVER_CONNECTION_USAGE,
|
37
|
+
} grpc_fd_usage;
|
38
|
+
|
39
|
+
/** Information about an fd to mutate */
|
40
|
+
typedef struct {
|
41
|
+
/** File descriptor to mutate */
|
42
|
+
int fd;
|
43
|
+
/** How the fd will be used */
|
44
|
+
grpc_fd_usage usage;
|
45
|
+
} grpc_mutate_socket_info;
|
46
|
+
|
29
47
|
/** The virtual table of grpc_socket_mutator */
|
30
48
|
struct grpc_socket_mutator_vtable {
|
31
|
-
/** Mutates the socket options of \a fd */
|
49
|
+
/** Mutates the socket options of \a fd -- deprecated, prefer mutate_fd_2 */
|
32
50
|
bool (*mutate_fd)(int fd, grpc_socket_mutator* mutator);
|
33
51
|
/** Compare socket mutator \a a and \a b */
|
34
52
|
int (*compare)(grpc_socket_mutator* a, grpc_socket_mutator* b);
|
35
53
|
/** Destroys the socket mutator instance */
|
36
54
|
void (*destroy)(grpc_socket_mutator* mutator);
|
55
|
+
/** Mutates the socket options of the fd in \a info - if set takes preference
|
56
|
+
* to mutate_fd */
|
57
|
+
bool (*mutate_fd_2)(const grpc_mutate_socket_info* info,
|
58
|
+
grpc_socket_mutator* mutator);
|
37
59
|
};
|
60
|
+
|
38
61
|
/** The Socket Mutator interface allows changes on socket options */
|
39
62
|
struct grpc_socket_mutator {
|
40
63
|
const grpc_socket_mutator_vtable* vtable;
|
@@ -49,7 +72,8 @@ void grpc_socket_mutator_init(grpc_socket_mutator* mutator,
|
|
49
72
|
grpc_arg grpc_socket_mutator_to_arg(grpc_socket_mutator* mutator);
|
50
73
|
|
51
74
|
/** Perform the file descriptor mutation operation of \a mutator on \a fd */
|
52
|
-
bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator* mutator, int fd
|
75
|
+
bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator* mutator, int fd,
|
76
|
+
grpc_fd_usage usage);
|
53
77
|
|
54
78
|
/** Compare if \a a and \a b are the same mutator or have same settings */
|
55
79
|
int grpc_socket_mutator_compare(grpc_socket_mutator* a, grpc_socket_mutator* b);
|
@@ -47,13 +47,13 @@
|
|
47
47
|
#include <grpc/support/log.h>
|
48
48
|
#include <grpc/support/sync.h>
|
49
49
|
|
50
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
50
51
|
#include "src/core/lib/channel/channel_args.h"
|
51
52
|
#include "src/core/lib/gpr/string.h"
|
52
53
|
#include "src/core/lib/iomgr/sockaddr.h"
|
53
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
54
54
|
|
55
55
|
/* set a socket to use zerocopy */
|
56
|
-
|
56
|
+
grpc_error_handle grpc_set_socket_zerocopy(int fd) {
|
57
57
|
#ifdef GRPC_LINUX_ERRQUEUE
|
58
58
|
const int enable = 1;
|
59
59
|
auto err = setsockopt(fd, SOL_SOCKET, SO_ZEROCOPY, &enable, sizeof(enable));
|
@@ -68,7 +68,7 @@ grpc_error* grpc_set_socket_zerocopy(int fd) {
|
|
68
68
|
}
|
69
69
|
|
70
70
|
/* set a socket to non blocking mode */
|
71
|
-
|
71
|
+
grpc_error_handle grpc_set_socket_nonblocking(int fd, int non_blocking) {
|
72
72
|
int oldflags = fcntl(fd, F_GETFL, 0);
|
73
73
|
if (oldflags < 0) {
|
74
74
|
return GRPC_OS_ERROR(errno, "fcntl");
|
@@ -87,7 +87,7 @@ grpc_error* grpc_set_socket_nonblocking(int fd, int non_blocking) {
|
|
87
87
|
return GRPC_ERROR_NONE;
|
88
88
|
}
|
89
89
|
|
90
|
-
|
90
|
+
grpc_error_handle grpc_set_socket_no_sigpipe_if_possible(int fd) {
|
91
91
|
#ifdef GRPC_HAVE_SO_NOSIGPIPE
|
92
92
|
int val = 1;
|
93
93
|
int newval;
|
@@ -108,7 +108,7 @@ grpc_error* grpc_set_socket_no_sigpipe_if_possible(int fd) {
|
|
108
108
|
return GRPC_ERROR_NONE;
|
109
109
|
}
|
110
110
|
|
111
|
-
|
111
|
+
grpc_error_handle grpc_set_socket_ip_pktinfo_if_possible(int fd) {
|
112
112
|
// Use conditionally-important parameter to avoid warning
|
113
113
|
(void)fd;
|
114
114
|
#ifdef GRPC_HAVE_IP_PKTINFO
|
@@ -121,7 +121,7 @@ grpc_error* grpc_set_socket_ip_pktinfo_if_possible(int fd) {
|
|
121
121
|
return GRPC_ERROR_NONE;
|
122
122
|
}
|
123
123
|
|
124
|
-
|
124
|
+
grpc_error_handle grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd) {
|
125
125
|
// Use conditionally-important parameter to avoid warning
|
126
126
|
(void)fd;
|
127
127
|
#ifdef GRPC_HAVE_IPV6_RECVPKTINFO
|
@@ -134,14 +134,14 @@ grpc_error* grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd) {
|
|
134
134
|
return GRPC_ERROR_NONE;
|
135
135
|
}
|
136
136
|
|
137
|
-
|
137
|
+
grpc_error_handle grpc_set_socket_sndbuf(int fd, int buffer_size_bytes) {
|
138
138
|
return 0 == setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &buffer_size_bytes,
|
139
139
|
sizeof(buffer_size_bytes))
|
140
140
|
? GRPC_ERROR_NONE
|
141
141
|
: GRPC_OS_ERROR(errno, "setsockopt(SO_SNDBUF)");
|
142
142
|
}
|
143
143
|
|
144
|
-
|
144
|
+
grpc_error_handle grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes) {
|
145
145
|
return 0 == setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &buffer_size_bytes,
|
146
146
|
sizeof(buffer_size_bytes))
|
147
147
|
? GRPC_ERROR_NONE
|
@@ -149,7 +149,7 @@ grpc_error* grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes) {
|
|
149
149
|
}
|
150
150
|
|
151
151
|
/* set a socket to close on exec */
|
152
|
-
|
152
|
+
grpc_error_handle grpc_set_socket_cloexec(int fd, int close_on_exec) {
|
153
153
|
int oldflags = fcntl(fd, F_GETFD, 0);
|
154
154
|
if (oldflags < 0) {
|
155
155
|
return GRPC_OS_ERROR(errno, "fcntl");
|
@@ -169,7 +169,7 @@ grpc_error* grpc_set_socket_cloexec(int fd, int close_on_exec) {
|
|
169
169
|
}
|
170
170
|
|
171
171
|
/* set a socket to reuse old addresses */
|
172
|
-
|
172
|
+
grpc_error_handle grpc_set_socket_reuse_addr(int fd, int reuse) {
|
173
173
|
int val = (reuse != 0);
|
174
174
|
int newval;
|
175
175
|
socklen_t intlen = sizeof(newval);
|
@@ -187,7 +187,7 @@ grpc_error* grpc_set_socket_reuse_addr(int fd, int reuse) {
|
|
187
187
|
}
|
188
188
|
|
189
189
|
/* set a socket to reuse old addresses */
|
190
|
-
|
190
|
+
grpc_error_handle grpc_set_socket_reuse_port(int fd, int reuse) {
|
191
191
|
#ifndef SO_REUSEPORT
|
192
192
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
193
193
|
"SO_REUSEPORT unavailable on compiling system");
|
@@ -232,7 +232,7 @@ bool grpc_is_socket_reuse_port_supported() {
|
|
232
232
|
}
|
233
233
|
|
234
234
|
/* disable nagle */
|
235
|
-
|
235
|
+
grpc_error_handle grpc_set_socket_low_latency(int fd, int low_latency) {
|
236
236
|
int val = (low_latency != 0);
|
237
237
|
int newval;
|
238
238
|
socklen_t intlen = sizeof(newval);
|
@@ -297,7 +297,7 @@ void config_default_tcp_user_timeout(bool enable, int timeout, bool is_client) {
|
|
297
297
|
}
|
298
298
|
|
299
299
|
/* Set TCP_USER_TIMEOUT */
|
300
|
-
|
300
|
+
grpc_error_handle grpc_set_socket_tcp_user_timeout(
|
301
301
|
int fd, const grpc_channel_args* channel_args, bool is_client) {
|
302
302
|
// Use conditionally-important parameter to avoid warning
|
303
303
|
(void)fd;
|
@@ -388,16 +388,17 @@ grpc_error* grpc_set_socket_tcp_user_timeout(
|
|
388
388
|
}
|
389
389
|
|
390
390
|
/* set a socket using a grpc_socket_mutator */
|
391
|
-
|
391
|
+
grpc_error_handle grpc_set_socket_with_mutator(int fd, grpc_fd_usage usage,
|
392
|
+
grpc_socket_mutator* mutator) {
|
392
393
|
GPR_ASSERT(mutator);
|
393
|
-
if (!grpc_socket_mutator_mutate_fd(mutator, fd)) {
|
394
|
+
if (!grpc_socket_mutator_mutate_fd(mutator, fd, usage)) {
|
394
395
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING("grpc_socket_mutator failed.");
|
395
396
|
}
|
396
397
|
return GRPC_ERROR_NONE;
|
397
398
|
}
|
398
399
|
|
399
|
-
|
400
|
-
|
400
|
+
grpc_error_handle grpc_apply_socket_mutator_in_args(
|
401
|
+
int fd, grpc_fd_usage usage, const grpc_channel_args* args) {
|
401
402
|
const grpc_arg* socket_mutator_arg =
|
402
403
|
grpc_channel_args_find(args, GRPC_ARG_SOCKET_MUTATOR);
|
403
404
|
if (socket_mutator_arg == nullptr) {
|
@@ -406,7 +407,7 @@ grpc_error* grpc_apply_socket_mutator_in_args(int fd,
|
|
406
407
|
GPR_DEBUG_ASSERT(socket_mutator_arg->type == GRPC_ARG_POINTER);
|
407
408
|
grpc_socket_mutator* mutator =
|
408
409
|
static_cast<grpc_socket_mutator*>(socket_mutator_arg->value.pointer.p);
|
409
|
-
return grpc_set_socket_with_mutator(fd, mutator);
|
410
|
+
return grpc_set_socket_with_mutator(fd, usage, mutator);
|
410
411
|
}
|
411
412
|
|
412
413
|
static gpr_once g_probe_ipv6_once = GPR_ONCE_INIT;
|
@@ -437,16 +438,17 @@ int grpc_ipv6_loopback_available(void) {
|
|
437
438
|
return g_ipv6_loopback_available;
|
438
439
|
}
|
439
440
|
|
440
|
-
static
|
441
|
+
static grpc_error_handle error_for_fd(int fd,
|
442
|
+
const grpc_resolved_address* addr) {
|
441
443
|
if (fd >= 0) return GRPC_ERROR_NONE;
|
442
444
|
std::string addr_str = grpc_sockaddr_to_string(addr, false);
|
443
|
-
|
445
|
+
grpc_error_handle err = grpc_error_set_str(
|
444
446
|
GRPC_OS_ERROR(errno, "socket"), GRPC_ERROR_STR_TARGET_ADDRESS,
|
445
447
|
grpc_slice_from_copied_string(addr_str.c_str()));
|
446
448
|
return err;
|
447
449
|
}
|
448
450
|
|
449
|
-
|
451
|
+
grpc_error_handle grpc_create_dualstack_socket(
|
450
452
|
const grpc_resolved_address* resolved_addr, int type, int protocol,
|
451
453
|
grpc_dualstack_mode* dsmode, int* newfd) {
|
452
454
|
return grpc_create_dualstack_socket_using_factory(
|
@@ -460,7 +462,7 @@ static int create_socket(grpc_socket_factory* factory, int domain, int type,
|
|
460
462
|
: socket(domain, type, protocol);
|
461
463
|
}
|
462
464
|
|
463
|
-
|
465
|
+
grpc_error_handle grpc_create_dualstack_socket_using_factory(
|
464
466
|
grpc_socket_factory* factory, const grpc_resolved_address* resolved_addr,
|
465
467
|
int type, int protocol, grpc_dualstack_mode* dsmode, int* newfd) {
|
466
468
|
const grpc_sockaddr* addr =
|
@@ -45,31 +45,31 @@ int grpc_accept4(int sockfd, grpc_resolved_address* resolved_addr, int nonblock,
|
|
45
45
|
int cloexec);
|
46
46
|
|
47
47
|
/* set a socket to use zerocopy */
|
48
|
-
|
48
|
+
grpc_error_handle grpc_set_socket_zerocopy(int fd);
|
49
49
|
|
50
50
|
/* set a socket to non blocking mode */
|
51
|
-
|
51
|
+
grpc_error_handle grpc_set_socket_nonblocking(int fd, int non_blocking);
|
52
52
|
|
53
53
|
/* set a socket to close on exec */
|
54
|
-
|
54
|
+
grpc_error_handle grpc_set_socket_cloexec(int fd, int close_on_exec);
|
55
55
|
|
56
56
|
/* set a socket to reuse old addresses */
|
57
|
-
|
57
|
+
grpc_error_handle grpc_set_socket_reuse_addr(int fd, int reuse);
|
58
58
|
|
59
59
|
/* return true if SO_REUSEPORT is supported */
|
60
60
|
bool grpc_is_socket_reuse_port_supported();
|
61
61
|
|
62
62
|
/* disable nagle */
|
63
|
-
|
63
|
+
grpc_error_handle grpc_set_socket_low_latency(int fd, int low_latency);
|
64
64
|
|
65
65
|
/* set SO_REUSEPORT */
|
66
|
-
|
66
|
+
grpc_error_handle grpc_set_socket_reuse_port(int fd, int reuse);
|
67
67
|
|
68
68
|
/* Configure the default values for TCP_USER_TIMEOUT */
|
69
69
|
void config_default_tcp_user_timeout(bool enable, int timeout, bool is_client);
|
70
70
|
|
71
71
|
/* Set TCP_USER_TIMEOUT */
|
72
|
-
|
72
|
+
grpc_error_handle grpc_set_socket_tcp_user_timeout(
|
73
73
|
int fd, const grpc_channel_args* channel_args, bool is_client);
|
74
74
|
|
75
75
|
/* Returns true if this system can create AF_INET6 sockets bound to ::1.
|
@@ -84,28 +84,29 @@ int grpc_ipv6_loopback_available(void);
|
|
84
84
|
|
85
85
|
/* Tries to set SO_NOSIGPIPE if available on this platform.
|
86
86
|
If SO_NO_SIGPIPE is not available, returns 1. */
|
87
|
-
|
87
|
+
grpc_error_handle grpc_set_socket_no_sigpipe_if_possible(int fd);
|
88
88
|
|
89
89
|
/* Tries to set IP_PKTINFO if available on this platform.
|
90
90
|
If IP_PKTINFO is not available, returns 1. */
|
91
|
-
|
91
|
+
grpc_error_handle grpc_set_socket_ip_pktinfo_if_possible(int fd);
|
92
92
|
|
93
93
|
/* Tries to set IPV6_RECVPKTINFO if available on this platform.
|
94
94
|
If IPV6_RECVPKTINFO is not available, returns 1. */
|
95
|
-
|
95
|
+
grpc_error_handle grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd);
|
96
96
|
|
97
97
|
/* Tries to set the socket's send buffer to given size. */
|
98
|
-
|
98
|
+
grpc_error_handle grpc_set_socket_sndbuf(int fd, int buffer_size_bytes);
|
99
99
|
|
100
100
|
/* Tries to set the socket's receive buffer to given size. */
|
101
|
-
|
101
|
+
grpc_error_handle grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes);
|
102
102
|
|
103
103
|
/* Tries to set the socket using a grpc_socket_mutator */
|
104
|
-
|
104
|
+
grpc_error_handle grpc_set_socket_with_mutator(int fd, grpc_fd_usage usage,
|
105
|
+
grpc_socket_mutator* mutator);
|
105
106
|
|
106
107
|
/* Extracts the first socket mutator from args if any and applies on the fd. */
|
107
|
-
|
108
|
-
|
108
|
+
grpc_error_handle grpc_apply_socket_mutator_in_args(
|
109
|
+
int fd, grpc_fd_usage usage, const grpc_channel_args* args);
|
109
110
|
|
110
111
|
/* An enum to keep track of IPv4/IPv6 socket modes.
|
111
112
|
|
@@ -149,14 +150,13 @@ int grpc_set_socket_dualstack(int fd);
|
|
149
150
|
IPv4, so that bind() or connect() see the correct family.
|
150
151
|
Also, it's important to distinguish between DUALSTACK and IPV6 when
|
151
152
|
listening on the [::] wildcard address. */
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
int* newfd);
|
153
|
+
grpc_error_handle grpc_create_dualstack_socket(
|
154
|
+
const grpc_resolved_address* addr, int type, int protocol,
|
155
|
+
grpc_dualstack_mode* dsmode, int* newfd);
|
156
156
|
|
157
157
|
/* Same as grpc_create_dualstack_socket(), but use the given socket factory (if
|
158
158
|
non-null) to create the socket, rather than calling socket() directly. */
|
159
|
-
|
159
|
+
grpc_error_handle grpc_create_dualstack_socket_using_factory(
|
160
160
|
grpc_socket_factory* factory, const grpc_resolved_address* addr, int type,
|
161
161
|
int protocol, grpc_dualstack_mode* dsmode, int* newfd);
|
162
162
|
|