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
@@ -37,8 +37,9 @@
|
|
37
37
|
#include "src/core/lib/surface/call.h"
|
38
38
|
#include "src/core/lib/surface/channel_init.h"
|
39
39
|
|
40
|
-
static void recv_message_ready(void* user_data,
|
41
|
-
static void recv_trailing_metadata_ready(void* user_data,
|
40
|
+
static void recv_message_ready(void* user_data, grpc_error_handle error);
|
41
|
+
static void recv_trailing_metadata_ready(void* user_data,
|
42
|
+
grpc_error_handle error);
|
42
43
|
|
43
44
|
namespace grpc_core {
|
44
45
|
|
@@ -67,9 +68,10 @@ const MessageSizeParsedConfig* MessageSizeParsedConfig::GetFromCallContext(
|
|
67
68
|
|
68
69
|
std::unique_ptr<ServiceConfigParser::ParsedConfig>
|
69
70
|
MessageSizeParser::ParsePerMethodParams(const grpc_channel_args* /*args*/,
|
70
|
-
const Json& json,
|
71
|
+
const Json& json,
|
72
|
+
grpc_error_handle* error) {
|
71
73
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
72
|
-
std::vector<
|
74
|
+
std::vector<grpc_error_handle> error_list;
|
73
75
|
// Max request size.
|
74
76
|
int max_request_message_bytes = -1;
|
75
77
|
auto it = json.object_value().find("maxRequestMessageBytes");
|
@@ -179,7 +181,7 @@ struct call_data {
|
|
179
181
|
grpc_closure recv_message_ready;
|
180
182
|
grpc_closure recv_trailing_metadata_ready;
|
181
183
|
// The error caused by a message that is too large, or GRPC_ERROR_NONE
|
182
|
-
|
184
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
183
185
|
// Used by recv_message_ready.
|
184
186
|
grpc_core::OrphanablePtr<grpc_core::ByteStream>* recv_message = nullptr;
|
185
187
|
// Original recv_message_ready callback, invoked after our own.
|
@@ -187,20 +189,20 @@ struct call_data {
|
|
187
189
|
// Original recv_trailing_metadata callback, invoked after our own.
|
188
190
|
grpc_closure* original_recv_trailing_metadata_ready;
|
189
191
|
bool seen_recv_trailing_metadata = false;
|
190
|
-
|
192
|
+
grpc_error_handle recv_trailing_metadata_error;
|
191
193
|
};
|
192
194
|
|
193
195
|
} // namespace
|
194
196
|
|
195
197
|
// Callback invoked when we receive a message. Here we check the max
|
196
198
|
// receive message size.
|
197
|
-
static void recv_message_ready(void* user_data,
|
199
|
+
static void recv_message_ready(void* user_data, grpc_error_handle error) {
|
198
200
|
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
199
201
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
200
202
|
if (*calld->recv_message != nullptr && calld->limits.max_recv_size >= 0 &&
|
201
203
|
(*calld->recv_message)->length() >
|
202
204
|
static_cast<size_t>(calld->limits.max_recv_size)) {
|
203
|
-
|
205
|
+
grpc_error_handle new_error = grpc_error_set_int(
|
204
206
|
GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
205
207
|
absl::StrFormat("Received message larger than max (%u vs. %d)",
|
206
208
|
(*calld->recv_message)->length(),
|
@@ -233,7 +235,8 @@ static void recv_message_ready(void* user_data, grpc_error* error) {
|
|
233
235
|
|
234
236
|
// Callback invoked on completion of recv_trailing_metadata
|
235
237
|
// Notifies the recv_trailing_metadata batch of any message size failures
|
236
|
-
static void recv_trailing_metadata_ready(void* user_data,
|
238
|
+
static void recv_trailing_metadata_ready(void* user_data,
|
239
|
+
grpc_error_handle error) {
|
237
240
|
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
238
241
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
239
242
|
if (calld->next_recv_message_ready != nullptr) {
|
@@ -291,7 +294,7 @@ static void message_size_start_transport_stream_op_batch(
|
|
291
294
|
}
|
292
295
|
|
293
296
|
// Constructor for call_data.
|
294
|
-
static
|
297
|
+
static grpc_error_handle message_size_init_call_elem(
|
295
298
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
296
299
|
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
297
300
|
new (elem->call_data) call_data(elem, *chand, *args);
|
@@ -315,7 +318,7 @@ grpc_core::MessageSizeParsedConfig::message_size_limits get_message_size_limits(
|
|
315
318
|
}
|
316
319
|
|
317
320
|
// Constructor for channel_data.
|
318
|
-
static
|
321
|
+
static grpc_error_handle message_size_init_channel_elem(
|
319
322
|
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
320
323
|
GPR_ASSERT(!args->is_last);
|
321
324
|
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
@@ -51,7 +51,7 @@ class MessageSizeParser : public ServiceConfigParser::Parser {
|
|
51
51
|
public:
|
52
52
|
std::unique_ptr<ServiceConfigParser::ParsedConfig> ParsePerMethodParams(
|
53
53
|
const grpc_channel_args* /*args*/, const Json& json,
|
54
|
-
|
54
|
+
grpc_error_handle* error) override;
|
55
55
|
|
56
56
|
static void Register();
|
57
57
|
|
@@ -54,7 +54,8 @@ static bool get_user_agent_mdelem(const grpc_metadata_batch* batch,
|
|
54
54
|
}
|
55
55
|
|
56
56
|
// Callback invoked when we receive an initial metadata.
|
57
|
-
static void recv_initial_metadata_ready(void* user_data,
|
57
|
+
static void recv_initial_metadata_ready(void* user_data,
|
58
|
+
grpc_error_handle error) {
|
58
59
|
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
59
60
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
60
61
|
|
@@ -105,7 +106,7 @@ static void cronet_compression_start_transport_stream_op_batch(
|
|
105
106
|
}
|
106
107
|
|
107
108
|
// Constructor for call_data.
|
108
|
-
static
|
109
|
+
static grpc_error_handle cronet_compression_init_call_elem(
|
109
110
|
grpc_call_element* elem, const grpc_call_element_args* /*args*/) {
|
110
111
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
111
112
|
calld->next_recv_initial_metadata_ready = nullptr;
|
@@ -122,7 +123,7 @@ static void cronet_compression_destroy_call_elem(
|
|
122
123
|
grpc_closure* /*ignored*/) {}
|
123
124
|
|
124
125
|
// Constructor for channel_data.
|
125
|
-
static
|
126
|
+
static grpc_error_handle cronet_compression_init_channel_elem(
|
126
127
|
grpc_channel_element* /*elem*/, grpc_channel_element_args* /*args*/) {
|
127
128
|
return GRPC_ERROR_NONE;
|
128
129
|
}
|
@@ -75,7 +75,7 @@ void Chttp2Connector::Connect(const Args& args, Result* result,
|
|
75
75
|
args.channel_args, &addr, args.deadline);
|
76
76
|
}
|
77
77
|
|
78
|
-
void Chttp2Connector::Shutdown(
|
78
|
+
void Chttp2Connector::Shutdown(grpc_error_handle error) {
|
79
79
|
MutexLock lock(&mu_);
|
80
80
|
shutdown_ = true;
|
81
81
|
if (handshake_mgr_ != nullptr) {
|
@@ -89,7 +89,7 @@ void Chttp2Connector::Shutdown(grpc_error* error) {
|
|
89
89
|
GRPC_ERROR_UNREF(error);
|
90
90
|
}
|
91
91
|
|
92
|
-
void Chttp2Connector::Connected(void* arg,
|
92
|
+
void Chttp2Connector::Connected(void* arg, grpc_error_handle error) {
|
93
93
|
Chttp2Connector* self = static_cast<Chttp2Connector*>(arg);
|
94
94
|
bool unref = false;
|
95
95
|
{
|
@@ -131,14 +131,14 @@ void Chttp2Connector::StartHandshakeLocked() {
|
|
131
131
|
|
132
132
|
namespace {
|
133
133
|
void NullThenSchedClosure(const DebugLocation& location, grpc_closure** closure,
|
134
|
-
|
134
|
+
grpc_error_handle error) {
|
135
135
|
grpc_closure* c = *closure;
|
136
136
|
*closure = nullptr;
|
137
137
|
ExecCtx::Run(location, c, error);
|
138
138
|
}
|
139
139
|
} // namespace
|
140
140
|
|
141
|
-
void Chttp2Connector::OnHandshakeDone(void* arg,
|
141
|
+
void Chttp2Connector::OnHandshakeDone(void* arg, grpc_error_handle error) {
|
142
142
|
auto* args = static_cast<HandshakerArgs*>(arg);
|
143
143
|
Chttp2Connector* self = static_cast<Chttp2Connector*>(args->user_data);
|
144
144
|
{
|
@@ -194,7 +194,7 @@ void Chttp2Connector::OnHandshakeDone(void* arg, grpc_error* error) {
|
|
194
194
|
self->Unref();
|
195
195
|
}
|
196
196
|
|
197
|
-
void Chttp2Connector::OnReceiveSettings(void* arg,
|
197
|
+
void Chttp2Connector::OnReceiveSettings(void* arg, grpc_error_handle error) {
|
198
198
|
Chttp2Connector* self = static_cast<Chttp2Connector*>(arg);
|
199
199
|
{
|
200
200
|
MutexLock lock(&self->mu_);
|
@@ -220,7 +220,7 @@ void Chttp2Connector::OnReceiveSettings(void* arg, grpc_error* error) {
|
|
220
220
|
self->Unref();
|
221
221
|
}
|
222
222
|
|
223
|
-
void Chttp2Connector::OnTimeout(void* arg,
|
223
|
+
void Chttp2Connector::OnTimeout(void* arg, grpc_error_handle /*error*/) {
|
224
224
|
Chttp2Connector* self = static_cast<Chttp2Connector*>(arg);
|
225
225
|
{
|
226
226
|
MutexLock lock(&self->mu_);
|
@@ -245,7 +245,7 @@ void Chttp2Connector::OnTimeout(void* arg, grpc_error* /*error*/) {
|
|
245
245
|
self->Unref();
|
246
246
|
}
|
247
247
|
|
248
|
-
void Chttp2Connector::MaybeNotify(
|
248
|
+
void Chttp2Connector::MaybeNotify(grpc_error_handle error) {
|
249
249
|
if (notify_error_.has_value()) {
|
250
250
|
GRPC_ERROR_UNREF(error);
|
251
251
|
NullThenSchedClosure(DEBUG_LOCATION, ¬ify_, notify_error_.value());
|
@@ -33,14 +33,14 @@ class Chttp2Connector : public SubchannelConnector {
|
|
33
33
|
~Chttp2Connector() override;
|
34
34
|
|
35
35
|
void Connect(const Args& args, Result* result, grpc_closure* notify) override;
|
36
|
-
void Shutdown(
|
36
|
+
void Shutdown(grpc_error_handle error) override;
|
37
37
|
|
38
38
|
private:
|
39
|
-
static void Connected(void* arg,
|
39
|
+
static void Connected(void* arg, grpc_error_handle error);
|
40
40
|
void StartHandshakeLocked();
|
41
|
-
static void OnHandshakeDone(void* arg,
|
42
|
-
static void OnReceiveSettings(void* arg,
|
43
|
-
static void OnTimeout(void* arg,
|
41
|
+
static void OnHandshakeDone(void* arg, grpc_error_handle error);
|
42
|
+
static void OnReceiveSettings(void* arg, grpc_error_handle error);
|
43
|
+
static void OnTimeout(void* arg, grpc_error_handle error);
|
44
44
|
|
45
45
|
// We cannot invoke notify_ until both OnTimeout() and OnReceiveSettings()
|
46
46
|
// have been called since that is an indicator to the upper layer that we are
|
@@ -51,7 +51,7 @@ class Chttp2Connector : public SubchannelConnector {
|
|
51
51
|
// invoked, we call MaybeNotify() again to actually invoke the notify_
|
52
52
|
// callback. Note that this only happens if the handshake is done and the
|
53
53
|
// connector is waiting on the SETTINGS frame.
|
54
|
-
void MaybeNotify(
|
54
|
+
void MaybeNotify(grpc_error_handle error);
|
55
55
|
|
56
56
|
Mutex mu_;
|
57
57
|
Args args_;
|
@@ -66,7 +66,7 @@ class Chttp2Connector : public SubchannelConnector {
|
|
66
66
|
grpc_closure on_receive_settings_;
|
67
67
|
grpc_timer timer_;
|
68
68
|
grpc_closure on_timeout_;
|
69
|
-
absl::optional<
|
69
|
+
absl::optional<grpc_error_handle> notify_error_;
|
70
70
|
RefCountedPtr<HandshakeManager> handshake_mgr_;
|
71
71
|
};
|
72
72
|
|
@@ -51,7 +51,7 @@ class Chttp2InsecureClientChannelFactory : public ClientChannelFactory {
|
|
51
51
|
namespace {
|
52
52
|
|
53
53
|
grpc_channel* CreateChannel(const char* target, const grpc_channel_args* args,
|
54
|
-
|
54
|
+
grpc_error_handle* error) {
|
55
55
|
if (target == nullptr) {
|
56
56
|
gpr_log(GPR_ERROR, "cannot create channel with NULL target name");
|
57
57
|
if (error != nullptr) {
|
@@ -106,7 +106,7 @@ grpc_channel* grpc_insecure_channel_create(const char* target,
|
|
106
106
|
const char* arg_to_remove = arg.key;
|
107
107
|
grpc_channel_args* new_args = grpc_channel_args_copy_and_add_and_remove(
|
108
108
|
args, &arg_to_remove, 1, &arg, 1);
|
109
|
-
|
109
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
110
110
|
// Create channel.
|
111
111
|
grpc_channel* channel = grpc_core::CreateChannel(target, new_args, &error);
|
112
112
|
// Clean up.
|
@@ -56,7 +56,7 @@ grpc_channel* grpc_insecure_channel_create_from_fd(
|
|
56
56
|
grpc_transport* transport =
|
57
57
|
grpc_create_chttp2_transport(final_args, client, true);
|
58
58
|
GPR_ASSERT(transport);
|
59
|
-
|
59
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
60
60
|
grpc_channel* channel =
|
61
61
|
grpc_channel_create(target, final_args, GRPC_CLIENT_DIRECT_CHANNEL,
|
62
62
|
transport, nullptr, &error);
|
@@ -82,7 +82,8 @@ grpc_channel* grpc_insecure_channel_create_from_fd(
|
|
82
82
|
#else // !GPR_SUPPORT_CHANNELS_FROM_FD
|
83
83
|
|
84
84
|
grpc_channel* grpc_insecure_channel_create_from_fd(
|
85
|
-
const char* target
|
85
|
+
const char* /* target */, int /* fd */,
|
86
|
+
const grpc_channel_args* /* args */) {
|
86
87
|
GPR_ASSERT(0);
|
87
88
|
return nullptr;
|
88
89
|
}
|
@@ -28,9 +28,9 @@
|
|
28
28
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
29
29
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
30
30
|
#include "src/core/ext/transport/chttp2/client/chttp2_connector.h"
|
31
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
31
32
|
#include "src/core/lib/channel/channel_args.h"
|
32
33
|
#include "src/core/lib/gprpp/memory.h"
|
33
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
34
34
|
#include "src/core/lib/security/credentials/credentials.h"
|
35
35
|
#include "src/core/lib/security/security_connector/security_connector.h"
|
36
36
|
#include "src/core/lib/slice/slice_internal.h"
|
@@ -129,7 +129,7 @@ class Chttp2SecureClientChannelFactory : public ClientChannelFactory {
|
|
129
129
|
namespace {
|
130
130
|
|
131
131
|
grpc_channel* CreateChannel(const char* target, const grpc_channel_args* args,
|
132
|
-
|
132
|
+
grpc_error_handle* error) {
|
133
133
|
if (target == nullptr) {
|
134
134
|
gpr_log(GPR_ERROR, "cannot create channel with NULL target name");
|
135
135
|
if (error != nullptr) {
|
@@ -181,7 +181,7 @@ grpc_channel* grpc_secure_channel_create(grpc_channel_credentials* creds,
|
|
181
181
|
4, ((void*)creds, target, (void*)args, (void*)reserved));
|
182
182
|
GPR_ASSERT(reserved == nullptr);
|
183
183
|
grpc_channel* channel = nullptr;
|
184
|
-
|
184
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
185
185
|
if (creds != nullptr) {
|
186
186
|
// Add channel args containing the client channel factory and channel
|
187
187
|
// credentials.
|
@@ -38,6 +38,7 @@
|
|
38
38
|
#include "src/core/ext/filters/http/server/http_server_filter.h"
|
39
39
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
40
40
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
41
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
41
42
|
#include "src/core/lib/channel/channel_args.h"
|
42
43
|
#include "src/core/lib/channel/handshaker.h"
|
43
44
|
#include "src/core/lib/channel/handshaker_registry.h"
|
@@ -46,7 +47,6 @@
|
|
46
47
|
#include "src/core/lib/iomgr/endpoint.h"
|
47
48
|
#include "src/core/lib/iomgr/resolve_address.h"
|
48
49
|
#include "src/core/lib/iomgr/resource_quota.h"
|
49
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
50
50
|
#include "src/core/lib/iomgr/tcp_server.h"
|
51
51
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
52
52
|
#include "src/core/lib/slice/slice_internal.h"
|
@@ -61,14 +61,14 @@ const char kUnixAbstractUriPrefix[] = "unix-abstract:";
|
|
61
61
|
|
62
62
|
class Chttp2ServerListener : public Server::ListenerInterface {
|
63
63
|
public:
|
64
|
-
static
|
65
|
-
|
66
|
-
|
67
|
-
|
64
|
+
static grpc_error_handle Create(Server* server, grpc_resolved_address* addr,
|
65
|
+
grpc_channel_args* args,
|
66
|
+
Chttp2ServerArgsModifier args_modifier,
|
67
|
+
int* port_num);
|
68
68
|
|
69
|
-
static
|
70
|
-
|
71
|
-
|
69
|
+
static grpc_error_handle CreateWithAcceptor(
|
70
|
+
Server* server, const char* name, grpc_channel_args* args,
|
71
|
+
Chttp2ServerArgsModifier args_modifier);
|
72
72
|
|
73
73
|
// Do not instantiate directly. Use one of the factory methods above.
|
74
74
|
Chttp2ServerListener(Server* server, grpc_channel_args* args,
|
@@ -122,12 +122,12 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
122
122
|
using InternallyRefCounted<HandshakingState>::Ref;
|
123
123
|
|
124
124
|
private:
|
125
|
-
static void OnTimeout(void* arg,
|
126
|
-
static void OnReceiveSettings(void* arg,
|
127
|
-
static void OnHandshakeDone(void* arg,
|
125
|
+
static void OnTimeout(void* arg, grpc_error_handle error);
|
126
|
+
static void OnReceiveSettings(void* arg, grpc_error_handle /* error */);
|
127
|
+
static void OnHandshakeDone(void* arg, grpc_error_handle error);
|
128
128
|
RefCountedPtr<ActiveConnection> const connection_;
|
129
129
|
grpc_pollset* const accepting_pollset_;
|
130
|
-
grpc_tcp_server_acceptor*
|
130
|
+
grpc_tcp_server_acceptor* acceptor_;
|
131
131
|
RefCountedPtr<HandshakeManager> handshake_mgr_
|
132
132
|
ABSL_GUARDED_BY(&connection_->mu_);
|
133
133
|
// State for enforcing handshake timeout on receiving HTTP/2 settings.
|
@@ -155,7 +155,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
155
155
|
using InternallyRefCounted<ActiveConnection>::Ref;
|
156
156
|
|
157
157
|
private:
|
158
|
-
static void OnClose(void* arg,
|
158
|
+
static void OnClose(void* arg, grpc_error_handle error);
|
159
159
|
|
160
160
|
RefCountedPtr<Chttp2ServerListener> listener_;
|
161
161
|
Mutex mu_ ABSL_ACQUIRED_AFTER(&listener_->mu_);
|
@@ -179,7 +179,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
179
179
|
grpc_pollset* accepting_pollset,
|
180
180
|
grpc_tcp_server_acceptor* acceptor);
|
181
181
|
|
182
|
-
static void TcpServerShutdownComplete(void* arg,
|
182
|
+
static void TcpServerShutdownComplete(void* arg, grpc_error_handle error);
|
183
183
|
|
184
184
|
static void DestroyListener(Server* /*server*/, void* arg,
|
185
185
|
grpc_closure* destroy_done);
|
@@ -259,12 +259,12 @@ void Chttp2ServerListener::ConfigFetcherWatcher::UpdateConnectionManager(
|
|
259
259
|
if (listener_->started_) return;
|
260
260
|
}
|
261
261
|
int port_temp;
|
262
|
-
|
262
|
+
grpc_error_handle error = grpc_tcp_server_add_port(
|
263
263
|
listener_->tcp_server_, &listener_->resolved_address_, &port_temp);
|
264
264
|
if (error != GRPC_ERROR_NONE) {
|
265
265
|
GRPC_ERROR_UNREF(error);
|
266
266
|
gpr_log(GPR_ERROR, "Error adding port to server: %s",
|
267
|
-
|
267
|
+
grpc_error_std_string(error).c_str());
|
268
268
|
// TODO(yashykt): We wouldn't need to assert here if we bound to the
|
269
269
|
// port earlier during AddPort.
|
270
270
|
GPR_ASSERT(0);
|
@@ -320,6 +320,7 @@ Chttp2ServerListener::ActiveConnection::HandshakingState::HandshakingState(
|
|
320
320
|
Chttp2ServerListener::ActiveConnection::HandshakingState::~HandshakingState() {
|
321
321
|
grpc_pollset_set_del_pollset(interested_parties_, accepting_pollset_);
|
322
322
|
grpc_pollset_set_destroy(interested_parties_);
|
323
|
+
gpr_free(acceptor_);
|
323
324
|
}
|
324
325
|
|
325
326
|
void Chttp2ServerListener::ActiveConnection::HandshakingState::Orphan() {
|
@@ -347,7 +348,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::Start(
|
|
347
348
|
}
|
348
349
|
|
349
350
|
void Chttp2ServerListener::ActiveConnection::HandshakingState::OnTimeout(
|
350
|
-
void* arg,
|
351
|
+
void* arg, grpc_error_handle error) {
|
351
352
|
HandshakingState* self = static_cast<HandshakingState*>(arg);
|
352
353
|
// Note that we may be called with GRPC_ERROR_NONE when the timer fires
|
353
354
|
// or with an error indicating that the timer system is being shut down.
|
@@ -366,14 +367,14 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnTimeout(
|
|
366
367
|
}
|
367
368
|
|
368
369
|
void Chttp2ServerListener::ActiveConnection::HandshakingState::
|
369
|
-
OnReceiveSettings(void* arg,
|
370
|
+
OnReceiveSettings(void* arg, grpc_error_handle /* error */) {
|
370
371
|
HandshakingState* self = static_cast<HandshakingState*>(arg);
|
371
372
|
grpc_timer_cancel(&self->timer_);
|
372
373
|
self->Unref();
|
373
374
|
}
|
374
375
|
|
375
376
|
void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
376
|
-
void* arg,
|
377
|
+
void* arg, grpc_error_handle error) {
|
377
378
|
auto* args = static_cast<HandshakerArgs*>(arg);
|
378
379
|
HandshakingState* self = static_cast<HandshakingState*>(args->user_data);
|
379
380
|
OrphanablePtr<HandshakingState> handshaking_state_ref;
|
@@ -385,8 +386,8 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
385
386
|
{
|
386
387
|
MutexLock connection_lock(&self->connection_->mu_);
|
387
388
|
if (error != GRPC_ERROR_NONE || self->connection_->shutdown_) {
|
388
|
-
|
389
|
-
gpr_log(GPR_DEBUG, "Handshaking failed: %s", error_str);
|
389
|
+
std::string error_str = grpc_error_std_string(error);
|
390
|
+
gpr_log(GPR_DEBUG, "Handshaking failed: %s", error_str.c_str());
|
390
391
|
cleanup_connection = true;
|
391
392
|
free_resource_quota = true;
|
392
393
|
if (error == GRPC_ERROR_NONE && args->endpoint != nullptr) {
|
@@ -409,7 +410,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
409
410
|
if (args->endpoint != nullptr) {
|
410
411
|
grpc_transport* transport = grpc_create_chttp2_transport(
|
411
412
|
args->args, args->endpoint, false, resource_user);
|
412
|
-
|
413
|
+
grpc_error_handle channel_init_err =
|
413
414
|
self->connection_->listener_->server_->SetupTransport(
|
414
415
|
transport, self->accepting_pollset_, args->args,
|
415
416
|
grpc_chttp2_transport_get_socket_node(transport),
|
@@ -455,7 +456,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
455
456
|
} else {
|
456
457
|
// Failed to create channel from transport. Clean up.
|
457
458
|
gpr_log(GPR_ERROR, "Failed to create channel: %s",
|
458
|
-
|
459
|
+
grpc_error_std_string(channel_init_err).c_str());
|
459
460
|
GRPC_ERROR_UNREF(channel_init_err);
|
460
461
|
grpc_transport_destroy(transport);
|
461
462
|
grpc_slice_buffer_destroy_internal(args->read_buffer);
|
@@ -477,6 +478,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
477
478
|
handshaking_state_ref = std::move(self->connection_->handshaking_state_);
|
478
479
|
}
|
479
480
|
gpr_free(self->acceptor_);
|
481
|
+
self->acceptor_ = nullptr;
|
480
482
|
OrphanablePtr<ActiveConnection> connection;
|
481
483
|
if (free_resource_quota && resource_user != nullptr) {
|
482
484
|
grpc_resource_user_free(resource_user, GRPC_RESOURCE_QUOTA_CHANNEL_SIZE);
|
@@ -553,8 +555,8 @@ void Chttp2ServerListener::ActiveConnection::Start(
|
|
553
555
|
handshaking_state_ref->Start(endpoint, args);
|
554
556
|
}
|
555
557
|
|
556
|
-
void Chttp2ServerListener::ActiveConnection::OnClose(
|
557
|
-
|
558
|
+
void Chttp2ServerListener::ActiveConnection::OnClose(
|
559
|
+
void* arg, grpc_error_handle /* error */) {
|
558
560
|
ActiveConnection* self = static_cast<ActiveConnection*>(arg);
|
559
561
|
OrphanablePtr<ActiveConnection> connection;
|
560
562
|
{
|
@@ -577,15 +579,13 @@ void Chttp2ServerListener::ActiveConnection::OnClose(void* arg,
|
|
577
579
|
// Chttp2ServerListener
|
578
580
|
//
|
579
581
|
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
Chttp2ServerArgsModifier args_modifier,
|
584
|
-
int* port_num) {
|
582
|
+
grpc_error_handle Chttp2ServerListener::Create(
|
583
|
+
Server* server, grpc_resolved_address* addr, grpc_channel_args* args,
|
584
|
+
Chttp2ServerArgsModifier args_modifier, int* port_num) {
|
585
585
|
Chttp2ServerListener* listener = nullptr;
|
586
586
|
// The bulk of this method is inside of a lambda to make cleanup
|
587
587
|
// easier without using goto.
|
588
|
-
|
588
|
+
grpc_error_handle error = [&]() {
|
589
589
|
// Create Chttp2ServerListener.
|
590
590
|
listener = new Chttp2ServerListener(server, args, args_modifier);
|
591
591
|
error = grpc_tcp_server_create(&listener->tcp_server_shutdown_complete_,
|
@@ -627,12 +627,12 @@ grpc_error* Chttp2ServerListener::Create(Server* server,
|
|
627
627
|
return error;
|
628
628
|
}
|
629
629
|
|
630
|
-
|
630
|
+
grpc_error_handle Chttp2ServerListener::CreateWithAcceptor(
|
631
631
|
Server* server, const char* name, grpc_channel_args* args,
|
632
632
|
Chttp2ServerArgsModifier args_modifier) {
|
633
633
|
Chttp2ServerListener* listener =
|
634
634
|
new Chttp2ServerListener(server, args, args_modifier);
|
635
|
-
|
635
|
+
grpc_error_handle error = grpc_tcp_server_create(
|
636
636
|
&listener->tcp_server_shutdown_complete_, args, &listener->tcp_server_);
|
637
637
|
if (error != GRPC_ERROR_NONE) {
|
638
638
|
delete listener;
|
@@ -710,14 +710,14 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
710
710
|
args = grpc_channel_args_copy(self->args_);
|
711
711
|
connection_manager = self->connection_manager_;
|
712
712
|
}
|
713
|
-
auto endpoint_cleanup = [&](
|
713
|
+
auto endpoint_cleanup = [&](grpc_error_handle error) {
|
714
714
|
grpc_endpoint_shutdown(tcp, error);
|
715
715
|
grpc_endpoint_destroy(tcp);
|
716
716
|
gpr_free(acceptor);
|
717
717
|
};
|
718
718
|
if (self->server_->config_fetcher() != nullptr) {
|
719
719
|
if (connection_manager == nullptr) {
|
720
|
-
|
720
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
721
721
|
"No ConnectionManager configured. Closing connection.");
|
722
722
|
endpoint_cleanup(error);
|
723
723
|
grpc_channel_args_destroy(args);
|
@@ -734,10 +734,11 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
734
734
|
args_result.status().ToString().c_str()));
|
735
735
|
return;
|
736
736
|
}
|
737
|
-
|
737
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
738
738
|
args = self->args_modifier_(*args_result, &error);
|
739
739
|
if (error != GRPC_ERROR_NONE) {
|
740
|
-
gpr_log(GPR_DEBUG, "Closing connection: %s",
|
740
|
+
gpr_log(GPR_DEBUG, "Closing connection: %s",
|
741
|
+
grpc_error_std_string(error).c_str());
|
741
742
|
endpoint_cleanup(error);
|
742
743
|
grpc_channel_args_destroy(args);
|
743
744
|
return;
|
@@ -745,6 +746,8 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
745
746
|
}
|
746
747
|
auto connection =
|
747
748
|
MakeOrphanable<ActiveConnection>(accepting_pollset, acceptor, args);
|
749
|
+
// We no longer own acceptor
|
750
|
+
acceptor = nullptr;
|
748
751
|
// Hold a ref to connection to allow starting handshake outside the
|
749
752
|
// critical region
|
750
753
|
RefCountedPtr<ActiveConnection> connection_ref = connection->Ref();
|
@@ -781,7 +784,7 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
781
784
|
}
|
782
785
|
|
783
786
|
void Chttp2ServerListener::TcpServerShutdownComplete(void* arg,
|
784
|
-
|
787
|
+
grpc_error_handle error) {
|
785
788
|
Chttp2ServerListener* self = static_cast<Chttp2ServerListener*>(arg);
|
786
789
|
self->channelz_listen_socket_.reset();
|
787
790
|
GRPC_ERROR_UNREF(error);
|
@@ -822,19 +825,19 @@ void Chttp2ServerListener::Orphan() {
|
|
822
825
|
// Chttp2ServerAddPort()
|
823
826
|
//
|
824
827
|
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
828
|
+
grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
829
|
+
grpc_channel_args* args,
|
830
|
+
Chttp2ServerArgsModifier args_modifier,
|
831
|
+
int* port_num) {
|
829
832
|
if (strncmp(addr, "external:", 9) == 0) {
|
830
833
|
return grpc_core::Chttp2ServerListener::CreateWithAcceptor(
|
831
834
|
server, addr, args, args_modifier);
|
832
835
|
}
|
833
836
|
*port_num = -1;
|
834
837
|
grpc_resolved_addresses* resolved = nullptr;
|
835
|
-
std::vector<
|
838
|
+
std::vector<grpc_error_handle> error_list;
|
836
839
|
// Using lambda to avoid use of goto.
|
837
|
-
|
840
|
+
grpc_error_handle error = [&]() {
|
838
841
|
if (absl::StartsWith(addr, kUnixUriPrefix)) {
|
839
842
|
error = grpc_resolve_unix_domain_address(
|
840
843
|
addr + sizeof(kUnixUriPrefix) - 1, &resolved);
|
@@ -879,13 +882,13 @@ grpc_error* Chttp2ServerAddPort(Server* server, const char* addr,
|
|
879
882
|
resolved->naddrs - error_list.size(), resolved->naddrs);
|
880
883
|
error = GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(
|
881
884
|
msg.c_str(), error_list.data(), error_list.size());
|
882
|
-
gpr_log(GPR_INFO, "WARNING: %s",
|
885
|
+
gpr_log(GPR_INFO, "WARNING: %s", grpc_error_std_string(error).c_str());
|
883
886
|
GRPC_ERROR_UNREF(error);
|
884
887
|
// we managed to bind some addresses: continue without error
|
885
888
|
}
|
886
889
|
return GRPC_ERROR_NONE;
|
887
890
|
}(); // lambda end
|
888
|
-
for (
|
891
|
+
for (grpc_error_handle error : error_list) {
|
889
892
|
GRPC_ERROR_UNREF(error);
|
890
893
|
}
|
891
894
|
grpc_channel_args_destroy(args);
|