grpc 1.35.0 → 1.38.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +168 -131
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +15 -1
- data/include/grpc/grpc_security.h +16 -11
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +7 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +740 -3185
- data/src/core/ext/filters/client_channel/client_channel.h +488 -56
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +10 -2
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +18 -14
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +26 -23
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +49 -48
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +22 -18
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +318 -193
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +30 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +32 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +316 -171
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
- data/src/core/ext/filters/client_channel/resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver.h +3 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +59 -60
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +17 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +67 -74
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +33 -23
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +38 -43
- 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 +379 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +346 -178
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- data/src/core/ext/filters/client_channel/server_address.cc +10 -1
- data/src/core/ext/filters/client_channel/server_address.h +31 -0
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +86 -162
- data/src/core/ext/filters/client_channel/subchannel.h +68 -99
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +501 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +47 -42
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +5 -4
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +5 -4
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +507 -196
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +13 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +3 -3
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +64 -21
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +167 -122
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +13 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +11 -16
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +42 -59
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +75 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +28 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +41 -7
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +122 -77
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +13 -9
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +37 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +11 -9
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +44 -27
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +57 -16
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +150 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +67 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +19 -21
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +64 -51
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +16 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +50 -18
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +4 -7
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +0 -17
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +30 -23
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +85 -73
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -3
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -3
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -2
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +21 -4
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +29 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
- data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/authority.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +143 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +84 -0
- data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/resource.upb.c +9 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +166 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +168 -171
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +405 -420
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +2 -2
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +177 -171
- 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 +88 -88
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +153 -153
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +4 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +33 -20
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +56 -59
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +116 -111
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +129 -121
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +21 -24
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +17 -13
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +753 -724
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +22 -25
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +371 -377
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +12 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +112 -108
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +45 -53
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +177 -180
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +92 -102
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +32 -42
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +30 -40
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +4 -7
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +38 -44
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +30 -33
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +2179 -688
- data/src/core/ext/xds/xds_api.h +326 -124
- data/src/core/ext/xds/xds_bootstrap.cc +115 -142
- data/src/core/ext/xds/xds_bootstrap.h +24 -17
- data/src/core/ext/xds/xds_certificate_provider.cc +184 -78
- data/src/core/ext/xds/xds_certificate_provider.h +84 -45
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +462 -183
- data/src/core/ext/xds/xds_client.h +65 -22
- data/src/core/ext/xds/xds_client_stats.cc +2 -1
- data/src/core/ext/xds/xds_client_stats.h +5 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
- data/src/core/ext/xds/xds_http_filters.cc +114 -0
- data/src/core/ext/xds/xds_http_filters.h +130 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +444 -29
- 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 +108 -5
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +26 -6
- data/src/core/lib/channel/channel_stack.cc +22 -9
- data/src/core/lib/channel/channel_stack.h +17 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +108 -12
- data/src/core/lib/channel/channelz.h +30 -1
- data/src/core/lib/channel/channelz_registry.cc +14 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +9 -50
- data/src/core/lib/channel/handshaker.h +6 -23
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +5 -0
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gpr/log.cc +6 -1
- data/src/core/lib/gpr/sync_abseil.cc +3 -6
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gprpp/atomic.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
- data/src/core/lib/gprpp/mpscq.cc +2 -2
- data/src/core/lib/gprpp/ref_counted.h +29 -15
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/gprpp/sync.h +129 -40
- data/src/core/lib/gprpp/thd.h +1 -1
- data/src/core/lib/gprpp/time_util.cc +77 -0
- data/src/core/lib/gprpp/time_util.h +42 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +13 -9
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +5 -6
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +5 -5
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +218 -107
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +16 -13
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +22 -22
- data/src/core/lib/iomgr/ev_epollex_linux.cc +52 -49
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +12 -11
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +10 -6
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -3
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +12 -11
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +23 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +16 -18
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +41 -42
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +27 -25
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +8 -8
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +339 -0
- data/src/core/lib/matchers/matchers.h +160 -0
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- 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 +4 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +18 -14
- 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 +17 -14
- 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 +6 -5
- 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 +9 -9
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +16 -15
- 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/insecure/insecure_credentials.cc +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -5
- 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 -8
- data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- 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/ssl/ssl_credentials.cc +2 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +2 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +130 -61
- data/src/core/lib/security/credentials/xds/xds_credentials.h +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 +5 -5
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +31 -8
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +88 -74
- 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 +66 -37
- data/src/core/lib/security/transport/server_auth_filter.cc +24 -11
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice_intern.cc +5 -6
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +6 -5
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/init.cc +13 -15
- data/src/core/lib/surface/lame_client.cc +43 -24
- data/src/core/lib/surface/lame_client.h +4 -3
- data/src/core/lib/surface/server.cc +71 -58
- data/src/core/lib/surface/server.h +91 -28
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata.cc +6 -2
- data/src/core/lib/transport/metadata_batch.cc +64 -37
- data/src/core/lib/transport/metadata_batch.h +33 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/plugin_registry/grpc_plugin_registry.cc +12 -0
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +23 -28
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +23 -27
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
- data/src/core/tsi/fake_transport_security.cc +11 -2
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +2 -4
- data/src/core/tsi/ssl_transport_security.cc +32 -17
- data/src/core/tsi/ssl_transport_security.h +3 -7
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +9 -1
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
- data/src/ruby/ext/grpc/rb_server.c +13 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +7 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +32 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +1 -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 +742 -724
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +4 -11
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +22 -10
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +16 -16
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +40 -86
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +6 -17
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +158 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +60 -45
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
- 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 +101 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +28 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +135 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +51 -32
- 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 +161 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +121 -71
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +71 -41
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/is_fips.c → rand_extra/passive.c} +16 -11
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +4 -31
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +17 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +29 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +6 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +39 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +11 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +25 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +40 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +25 -36
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
- 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 +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +6 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +737 -551
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +22 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +15 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +56 -26
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +13 -40
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +239 -37
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +28 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +702 -219
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +141 -36
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +47 -15
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +11 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +159 -13
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +253 -58
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -8
- 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 +90 -25
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +7 -8
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +450 -104
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +48 -15
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +232 -85
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +5443 -0
- metadata +174 -95
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -60
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -143
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -84
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -94
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -173
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -92
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +0 -42
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +0 -62
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +0 -45
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +0 -49
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +0 -68
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +0 -51
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +0 -35
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/authorization_engine.h +0 -84
- data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
- data/src/core/lib/security/authorization/evaluate_args.h +0 -59
- data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -97
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/upb/upb/json_decode.c +0 -1443
- data/third_party/upb/upb/json_decode.h +0 -23
- data/third_party/upb/upb/json_encode.c +0 -713
- data/third_party/upb/upb/json_encode.h +0 -36
@@ -23,10 +23,11 @@
|
|
23
23
|
|
24
24
|
#include "src/core/lib/channel/channel_stack.h"
|
25
25
|
|
26
|
-
extern const grpc_channel_filter grpc_lame_filter;
|
27
|
-
|
28
26
|
namespace grpc_core {
|
29
|
-
|
27
|
+
// Does NOT take ownership of error.
|
28
|
+
grpc_arg MakeLameClientErrorArg(grpc_error_handle error);
|
30
29
|
} // namespace grpc_core
|
31
30
|
|
31
|
+
extern const grpc_channel_filter grpc_lame_filter;
|
32
|
+
|
32
33
|
#endif /* GRPC_CORE_LIB_SURFACE_LAME_CLIENT_H */
|
@@ -159,7 +159,7 @@ class Server::RequestMatcherInterface {
|
|
159
159
|
// Mark all application-requested RPCs failed if they have not been matched to
|
160
160
|
// an incoming RPC. The error parameter indicates why the RPCs are being
|
161
161
|
// failed (always server shutdown in all current implementations).
|
162
|
-
virtual void KillRequests(
|
162
|
+
virtual void KillRequests(grpc_error_handle error) = 0;
|
163
163
|
|
164
164
|
// How many request queues are supported by this matcher. This is an abstract
|
165
165
|
// concept that essentially maps to gRPC completion queues.
|
@@ -211,7 +211,7 @@ class Server::RealRequestMatcher : public RequestMatcherInterface {
|
|
211
211
|
}
|
212
212
|
}
|
213
213
|
|
214
|
-
void KillRequests(
|
214
|
+
void KillRequests(grpc_error_handle error) override {
|
215
215
|
for (size_t i = 0; i < requests_per_cq_.size(); i++) {
|
216
216
|
RequestedCall* rc;
|
217
217
|
while ((rc = reinterpret_cast<RequestedCall*>(
|
@@ -318,7 +318,8 @@ class Server::RealRequestMatcher : public RequestMatcherInterface {
|
|
318
318
|
// advance or queue up any incoming RPC for later match. Instead, MatchOrQueue
|
319
319
|
// will call out to an allocation function passed in at the construction of the
|
320
320
|
// object. These request matchers are designed for the C++ callback API, so they
|
321
|
-
// only support 1 completion queue (passed in at the constructor).
|
321
|
+
// only support 1 completion queue (passed in at the constructor). They are also
|
322
|
+
// used for the sync API.
|
322
323
|
class Server::AllocatingRequestMatcherBase : public RequestMatcherInterface {
|
323
324
|
public:
|
324
325
|
AllocatingRequestMatcherBase(Server* server, grpc_completion_queue* cq)
|
@@ -335,7 +336,9 @@ class Server::AllocatingRequestMatcherBase : public RequestMatcherInterface {
|
|
335
336
|
|
336
337
|
void ZombifyPending() override {}
|
337
338
|
|
338
|
-
void KillRequests(
|
339
|
+
void KillRequests(grpc_error_handle error) override {
|
340
|
+
GRPC_ERROR_UNREF(error);
|
341
|
+
}
|
339
342
|
|
340
343
|
size_t request_queue_count() const override { return 0; }
|
341
344
|
|
@@ -370,15 +373,20 @@ class Server::AllocatingRequestMatcherBatch
|
|
370
373
|
|
371
374
|
void MatchOrQueue(size_t /*start_request_queue_index*/,
|
372
375
|
CallData* calld) override {
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
376
|
+
if (server()->ShutdownRefOnRequest()) {
|
377
|
+
BatchCallAllocation call_info = allocator_();
|
378
|
+
GPR_ASSERT(server()->ValidateServerRequest(
|
379
|
+
cq(), static_cast<void*>(call_info.tag), nullptr,
|
380
|
+
nullptr) == GRPC_CALL_OK);
|
381
|
+
RequestedCall* rc = new RequestedCall(
|
382
|
+
static_cast<void*>(call_info.tag), call_info.cq, call_info.call,
|
383
|
+
call_info.initial_metadata, call_info.details);
|
384
|
+
calld->SetState(CallData::CallState::ACTIVATED);
|
385
|
+
calld->Publish(cq_idx(), rc);
|
386
|
+
} else {
|
387
|
+
calld->FailCallCreation();
|
388
|
+
}
|
389
|
+
server()->ShutdownUnrefOnRequest();
|
382
390
|
}
|
383
391
|
|
384
392
|
private:
|
@@ -398,17 +406,21 @@ class Server::AllocatingRequestMatcherRegistered
|
|
398
406
|
|
399
407
|
void MatchOrQueue(size_t /*start_request_queue_index*/,
|
400
408
|
CallData* calld) override {
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
409
|
+
if (server()->ShutdownRefOnRequest()) {
|
410
|
+
RegisteredCallAllocation call_info = allocator_();
|
411
|
+
GPR_ASSERT(server()->ValidateServerRequest(
|
412
|
+
cq(), call_info.tag, call_info.optional_payload,
|
413
|
+
registered_method_) == GRPC_CALL_OK);
|
414
|
+
RequestedCall* rc =
|
415
|
+
new RequestedCall(call_info.tag, call_info.cq, call_info.call,
|
416
|
+
call_info.initial_metadata, registered_method_,
|
417
|
+
call_info.deadline, call_info.optional_payload);
|
418
|
+
calld->SetState(CallData::CallState::ACTIVATED);
|
419
|
+
calld->Publish(cq_idx(), rc);
|
420
|
+
} else {
|
421
|
+
calld->FailCallCreation();
|
422
|
+
}
|
423
|
+
server()->ShutdownUnrefOnRequest();
|
412
424
|
}
|
413
425
|
|
414
426
|
private:
|
@@ -434,7 +446,7 @@ class ChannelBroadcaster {
|
|
434
446
|
}
|
435
447
|
|
436
448
|
// Broadcasts a shutdown on each channel.
|
437
|
-
void BroadcastShutdown(bool send_goaway,
|
449
|
+
void BroadcastShutdown(bool send_goaway, grpc_error_handle force_disconnect) {
|
438
450
|
for (grpc_channel* channel : channels_) {
|
439
451
|
SendShutdown(channel, send_goaway, GRPC_ERROR_REF(force_disconnect));
|
440
452
|
GRPC_CHANNEL_INTERNAL_UNREF(channel, "broadcast");
|
@@ -449,14 +461,14 @@ class ChannelBroadcaster {
|
|
449
461
|
grpc_slice slice;
|
450
462
|
};
|
451
463
|
|
452
|
-
static void ShutdownCleanup(void* arg,
|
464
|
+
static void ShutdownCleanup(void* arg, grpc_error_handle /*error*/) {
|
453
465
|
ShutdownCleanupArgs* a = static_cast<ShutdownCleanupArgs*>(arg);
|
454
466
|
grpc_slice_unref_internal(a->slice);
|
455
467
|
delete a;
|
456
468
|
}
|
457
469
|
|
458
470
|
static void SendShutdown(grpc_channel* channel, bool send_goaway,
|
459
|
-
|
471
|
+
grpc_error_handle send_disconnect) {
|
460
472
|
ShutdownCleanupArgs* sc = new ShutdownCleanupArgs;
|
461
473
|
GRPC_CLOSURE_INIT(&sc->closure, ShutdownCleanup, sc,
|
462
474
|
grpc_schedule_on_exec_ctx);
|
@@ -513,7 +525,7 @@ grpc_resource_user* CreateDefaultResourceUser(const grpc_channel_args* args) {
|
|
513
525
|
}
|
514
526
|
|
515
527
|
RefCountedPtr<channelz::ServerNode> CreateChannelzNode(
|
516
|
-
|
528
|
+
const grpc_channel_args* args) {
|
517
529
|
RefCountedPtr<channelz::ServerNode> channelz_node;
|
518
530
|
if (grpc_channel_args_find_bool(args, GRPC_ARG_ENABLE_CHANNELZ,
|
519
531
|
GRPC_ENABLE_CHANNELZ_DEFAULT)) {
|
@@ -534,7 +546,7 @@ RefCountedPtr<channelz::ServerNode> CreateChannelzNode(
|
|
534
546
|
Server::Server(const grpc_channel_args* args)
|
535
547
|
: channel_args_(grpc_channel_args_copy(args)),
|
536
548
|
default_resource_user_(CreateDefaultResourceUser(args)),
|
537
|
-
channelz_node_(CreateChannelzNode(
|
549
|
+
channelz_node_(CreateChannelzNode(args)) {}
|
538
550
|
|
539
551
|
Server::~Server() {
|
540
552
|
grpc_channel_args_destroy(channel_args_);
|
@@ -597,13 +609,13 @@ void Server::Start() {
|
|
597
609
|
starting_cv_.Signal();
|
598
610
|
}
|
599
611
|
|
600
|
-
|
612
|
+
grpc_error_handle Server::SetupTransport(
|
601
613
|
grpc_transport* transport, grpc_pollset* accepting_pollset,
|
602
614
|
const grpc_channel_args* args,
|
603
615
|
const RefCountedPtr<grpc_core::channelz::SocketNode>& socket_node,
|
604
616
|
grpc_resource_user* resource_user) {
|
605
617
|
// Create channel.
|
606
|
-
|
618
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
607
619
|
grpc_channel* channel = grpc_channel_create(
|
608
620
|
nullptr, args, GRPC_SERVER_CHANNEL, transport, resource_user, &error);
|
609
621
|
if (channel == nullptr) {
|
@@ -700,7 +712,8 @@ void Server::DoneRequestEvent(void* req, grpc_cq_completion* /*c*/) {
|
|
700
712
|
delete static_cast<RequestedCall*>(req);
|
701
713
|
}
|
702
714
|
|
703
|
-
void Server::FailCall(size_t cq_idx, RequestedCall* rc,
|
715
|
+
void Server::FailCall(size_t cq_idx, RequestedCall* rc,
|
716
|
+
grpc_error_handle error) {
|
704
717
|
*rc->call = nullptr;
|
705
718
|
rc->initial_metadata->count = 0;
|
706
719
|
GPR_ASSERT(error != GRPC_ERROR_NONE);
|
@@ -711,7 +724,7 @@ void Server::FailCall(size_t cq_idx, RequestedCall* rc, grpc_error* error) {
|
|
711
724
|
// Before calling MaybeFinishShutdown(), we must hold mu_global_ and not
|
712
725
|
// hold mu_call_.
|
713
726
|
void Server::MaybeFinishShutdown() {
|
714
|
-
if (!
|
727
|
+
if (!ShutdownReady() || shutdown_published_) {
|
715
728
|
return;
|
716
729
|
}
|
717
730
|
{
|
@@ -740,7 +753,7 @@ void Server::MaybeFinishShutdown() {
|
|
740
753
|
}
|
741
754
|
}
|
742
755
|
|
743
|
-
void Server::KillPendingWorkLocked(
|
756
|
+
void Server::KillPendingWorkLocked(grpc_error_handle error) {
|
744
757
|
if (started_) {
|
745
758
|
unregistered_request_matcher_->KillRequests(GRPC_ERROR_REF(error));
|
746
759
|
unregistered_request_matcher_->ZombifyPending();
|
@@ -762,7 +775,7 @@ std::vector<grpc_channel*> Server::GetChannelsLocked() const {
|
|
762
775
|
return channels;
|
763
776
|
}
|
764
777
|
|
765
|
-
void Server::ListenerDestroyDone(void* arg,
|
778
|
+
void Server::ListenerDestroyDone(void* arg, grpc_error_handle /*error*/) {
|
766
779
|
Server* server = static_cast<Server*>(arg);
|
767
780
|
MutexLock lock(&server->mu_global_);
|
768
781
|
server->listeners_destroyed_++;
|
@@ -796,7 +809,7 @@ void Server::ShutdownAndNotify(grpc_completion_queue* cq, void* tag) {
|
|
796
809
|
{
|
797
810
|
// Wait for startup to be finished. Locks mu_global.
|
798
811
|
MutexLock lock(&mu_global_);
|
799
|
-
|
812
|
+
WaitUntil(&starting_cv_, &mu_global_, [this] { return !starting_; });
|
800
813
|
// Stay locked, and gather up some stuff to do.
|
801
814
|
GPR_ASSERT(grpc_cq_begin_op(cq, tag));
|
802
815
|
if (shutdown_published_) {
|
@@ -805,19 +818,18 @@ void Server::ShutdownAndNotify(grpc_completion_queue* cq, void* tag) {
|
|
805
818
|
return;
|
806
819
|
}
|
807
820
|
shutdown_tags_.emplace_back(tag, cq);
|
808
|
-
if (
|
821
|
+
if (ShutdownCalled()) {
|
809
822
|
return;
|
810
823
|
}
|
811
824
|
last_shutdown_message_time_ = gpr_now(GPR_CLOCK_REALTIME);
|
812
825
|
broadcaster.FillChannelsLocked(GetChannelsLocked());
|
813
|
-
shutdown_flag_.store(true, std::memory_order_release);
|
814
826
|
// Collect all unregistered then registered calls.
|
815
827
|
{
|
816
828
|
MutexLock lock(&mu_call_);
|
817
829
|
KillPendingWorkLocked(
|
818
830
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server Shutdown"));
|
819
831
|
}
|
820
|
-
|
832
|
+
ShutdownUnrefOnShutdownCall();
|
821
833
|
}
|
822
834
|
// Shutdown listeners.
|
823
835
|
for (auto& listener : listeners_) {
|
@@ -849,8 +861,7 @@ void Server::CancelAllCalls() {
|
|
849
861
|
void Server::Orphan() {
|
850
862
|
{
|
851
863
|
MutexLock lock(&mu_global_);
|
852
|
-
GPR_ASSERT(
|
853
|
-
listeners_.empty());
|
864
|
+
GPR_ASSERT(ShutdownCalled() || listeners_.empty());
|
854
865
|
GPR_ASSERT(listeners_destroyed_ == listeners_.size());
|
855
866
|
}
|
856
867
|
if (default_resource_user_ != nullptr) {
|
@@ -869,7 +880,7 @@ grpc_call_error Server::ValidateServerRequest(
|
|
869
880
|
(rm->payload_handling == GRPC_SRM_PAYLOAD_NONE)))) {
|
870
881
|
return GRPC_CALL_ERROR_PAYLOAD_TYPE_MISMATCH;
|
871
882
|
}
|
872
|
-
if (grpc_cq_begin_op(cq_for_notification, tag)
|
883
|
+
if (!grpc_cq_begin_op(cq_for_notification, tag)) {
|
873
884
|
return GRPC_CALL_ERROR_COMPLETION_QUEUE_SHUTDOWN;
|
874
885
|
}
|
875
886
|
return GRPC_CALL_OK;
|
@@ -897,7 +908,7 @@ grpc_call_error Server::ValidateServerRequestAndCq(
|
|
897
908
|
}
|
898
909
|
|
899
910
|
grpc_call_error Server::QueueRequestedCall(size_t cq_idx, RequestedCall* rc) {
|
900
|
-
if (
|
911
|
+
if (ShutdownCalled()) {
|
901
912
|
FailCall(cq_idx, rc,
|
902
913
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server Shutdown"));
|
903
914
|
return GRPC_CALL_OK;
|
@@ -1066,7 +1077,7 @@ void Server::ChannelData::InitTransport(RefCountedPtr<Server> server,
|
|
1066
1077
|
op->set_accept_stream_fn = AcceptStream;
|
1067
1078
|
op->set_accept_stream_user_data = this;
|
1068
1079
|
op->start_connectivity_watch = MakeOrphanable<ConnectivityWatcher>(this);
|
1069
|
-
if (server_->
|
1080
|
+
if (server_->ShutdownCalled()) {
|
1070
1081
|
op->disconnect_with_error =
|
1071
1082
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server shutdown");
|
1072
1083
|
}
|
@@ -1126,7 +1137,7 @@ void Server::ChannelData::AcceptStream(void* arg, grpc_transport* /*transport*/,
|
|
1126
1137
|
args.add_initial_metadata_count = 0;
|
1127
1138
|
args.send_deadline = GRPC_MILLIS_INF_FUTURE;
|
1128
1139
|
grpc_call* call;
|
1129
|
-
|
1140
|
+
grpc_error_handle error = grpc_call_create(&args, &call);
|
1130
1141
|
grpc_call_element* elem =
|
1131
1142
|
grpc_call_stack_element(grpc_call_get_call_stack(call), 0);
|
1132
1143
|
auto* calld = static_cast<Server::CallData*>(elem->call_data);
|
@@ -1138,7 +1149,8 @@ void Server::ChannelData::AcceptStream(void* arg, grpc_transport* /*transport*/,
|
|
1138
1149
|
calld->Start(elem);
|
1139
1150
|
}
|
1140
1151
|
|
1141
|
-
void Server::ChannelData::FinishDestroy(void* arg,
|
1152
|
+
void Server::ChannelData::FinishDestroy(void* arg,
|
1153
|
+
grpc_error_handle /*error*/) {
|
1142
1154
|
auto* chand = static_cast<Server::ChannelData*>(arg);
|
1143
1155
|
Server* server = chand->server_.get();
|
1144
1156
|
GRPC_CHANNEL_INTERNAL_UNREF(chand->channel_, "server");
|
@@ -1165,7 +1177,7 @@ void Server::ChannelData::Destroy() {
|
|
1165
1177
|
op);
|
1166
1178
|
}
|
1167
1179
|
|
1168
|
-
|
1180
|
+
grpc_error_handle Server::ChannelData::InitChannelElement(
|
1169
1181
|
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
1170
1182
|
GPR_ASSERT(args->is_first);
|
1171
1183
|
GPR_ASSERT(!args->is_last);
|
@@ -1276,14 +1288,13 @@ void Server::CallData::Publish(size_t cq_idx, RequestedCall* rc) {
|
|
1276
1288
|
rc, &rc->completion, true);
|
1277
1289
|
}
|
1278
1290
|
|
1279
|
-
void Server::CallData::PublishNewRpc(void* arg,
|
1291
|
+
void Server::CallData::PublishNewRpc(void* arg, grpc_error_handle error) {
|
1280
1292
|
grpc_call_element* call_elem = static_cast<grpc_call_element*>(arg);
|
1281
1293
|
auto* calld = static_cast<Server::CallData*>(call_elem->call_data);
|
1282
1294
|
auto* chand = static_cast<Server::ChannelData*>(call_elem->channel_data);
|
1283
1295
|
RequestMatcherInterface* rm = calld->matcher_;
|
1284
1296
|
Server* server = rm->server();
|
1285
|
-
if (error != GRPC_ERROR_NONE ||
|
1286
|
-
server->shutdown_flag_.load(std::memory_order_acquire)) {
|
1297
|
+
if (error != GRPC_ERROR_NONE || server->ShutdownCalled()) {
|
1287
1298
|
calld->state_.Store(CallState::ZOMBIED, MemoryOrder::RELAXED);
|
1288
1299
|
calld->KillZombie();
|
1289
1300
|
return;
|
@@ -1293,7 +1304,7 @@ void Server::CallData::PublishNewRpc(void* arg, grpc_error* error) {
|
|
1293
1304
|
|
1294
1305
|
namespace {
|
1295
1306
|
|
1296
|
-
void KillZombieClosure(void* call,
|
1307
|
+
void KillZombieClosure(void* call, grpc_error_handle /*error*/) {
|
1297
1308
|
grpc_call_unref(static_cast<grpc_call*>(call));
|
1298
1309
|
}
|
1299
1310
|
|
@@ -1307,7 +1318,7 @@ void Server::CallData::KillZombie() {
|
|
1307
1318
|
|
1308
1319
|
void Server::CallData::StartNewRpc(grpc_call_element* elem) {
|
1309
1320
|
auto* chand = static_cast<ChannelData*>(elem->channel_data);
|
1310
|
-
if (server_->
|
1321
|
+
if (server_->ShutdownCalled()) {
|
1311
1322
|
state_.Store(CallState::ZOMBIED, MemoryOrder::RELAXED);
|
1312
1323
|
KillZombie();
|
1313
1324
|
return;
|
@@ -1345,8 +1356,8 @@ void Server::CallData::StartNewRpc(grpc_call_element* elem) {
|
|
1345
1356
|
}
|
1346
1357
|
}
|
1347
1358
|
|
1348
|
-
void Server::CallData::RecvInitialMetadataBatchComplete(
|
1349
|
-
|
1359
|
+
void Server::CallData::RecvInitialMetadataBatchComplete(
|
1360
|
+
void* arg, grpc_error_handle error) {
|
1350
1361
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
1351
1362
|
auto* calld = static_cast<Server::CallData*>(elem->call_data);
|
1352
1363
|
if (error != GRPC_ERROR_NONE) {
|
@@ -1378,7 +1389,8 @@ void Server::CallData::StartTransportStreamOpBatchImpl(
|
|
1378
1389
|
grpc_call_next_op(elem, batch);
|
1379
1390
|
}
|
1380
1391
|
|
1381
|
-
void Server::CallData::RecvInitialMetadataReady(void* arg,
|
1392
|
+
void Server::CallData::RecvInitialMetadataReady(void* arg,
|
1393
|
+
grpc_error_handle error) {
|
1382
1394
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
1383
1395
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
1384
1396
|
grpc_millis op_deadline;
|
@@ -1404,7 +1416,7 @@ void Server::CallData::RecvInitialMetadataReady(void* arg, grpc_error* error) {
|
|
1404
1416
|
/* do nothing */
|
1405
1417
|
} else {
|
1406
1418
|
/* Pass the error reference to calld->recv_initial_metadata_error */
|
1407
|
-
|
1419
|
+
grpc_error_handle src_error = error;
|
1408
1420
|
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
1409
1421
|
"Missing :authority or :path", &src_error, 1);
|
1410
1422
|
GRPC_ERROR_UNREF(src_error);
|
@@ -1421,7 +1433,8 @@ void Server::CallData::RecvInitialMetadataReady(void* arg, grpc_error* error) {
|
|
1421
1433
|
Closure::Run(DEBUG_LOCATION, closure, error);
|
1422
1434
|
}
|
1423
1435
|
|
1424
|
-
void Server::CallData::RecvTrailingMetadataReady(void* arg,
|
1436
|
+
void Server::CallData::RecvTrailingMetadataReady(void* arg,
|
1437
|
+
grpc_error_handle error) {
|
1425
1438
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
1426
1439
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
1427
1440
|
if (calld->original_recv_initial_metadata_ready_ != nullptr) {
|
@@ -1442,7 +1455,7 @@ void Server::CallData::RecvTrailingMetadataReady(void* arg, grpc_error* error) {
|
|
1442
1455
|
error);
|
1443
1456
|
}
|
1444
1457
|
|
1445
|
-
|
1458
|
+
grpc_error_handle Server::CallData::InitCallElement(
|
1446
1459
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
1447
1460
|
auto* chand = static_cast<ChannelData*>(elem->channel_data);
|
1448
1461
|
new (elem->call_data) Server::CallData(elem, *args, chand->server());
|
@@ -22,6 +22,7 @@
|
|
22
22
|
#include <list>
|
23
23
|
#include <vector>
|
24
24
|
|
25
|
+
#include "absl/status/statusor.h"
|
25
26
|
#include "absl/types/optional.h"
|
26
27
|
|
27
28
|
#include <grpc/grpc.h>
|
@@ -31,6 +32,7 @@
|
|
31
32
|
#include "src/core/lib/channel/channelz.h"
|
32
33
|
#include "src/core/lib/debug/trace.h"
|
33
34
|
#include "src/core/lib/gprpp/atomic.h"
|
35
|
+
#include "src/core/lib/iomgr/resolve_address.h"
|
34
36
|
#include "src/core/lib/surface/completion_queue.h"
|
35
37
|
#include "src/core/lib/transport/transport.h"
|
36
38
|
|
@@ -49,21 +51,23 @@ class Server : public InternallyRefCounted<Server> {
|
|
49
51
|
// An object to represent the most relevant characteristics of a
|
50
52
|
// newly-allocated call object when using an AllocatingRequestMatcherBatch.
|
51
53
|
struct BatchCallAllocation {
|
52
|
-
|
54
|
+
void* tag;
|
53
55
|
grpc_call** call;
|
54
56
|
grpc_metadata_array* initial_metadata;
|
55
57
|
grpc_call_details* details;
|
58
|
+
grpc_completion_queue* cq;
|
56
59
|
};
|
57
60
|
|
58
61
|
// An object to represent the most relevant characteristics of a
|
59
62
|
// newly-allocated call object when using an
|
60
63
|
// AllocatingRequestMatcherRegistered.
|
61
64
|
struct RegisteredCallAllocation {
|
62
|
-
|
65
|
+
void* tag;
|
63
66
|
grpc_call** call;
|
64
67
|
grpc_metadata_array* initial_metadata;
|
65
68
|
gpr_timespec* deadline;
|
66
69
|
grpc_byte_buffer** optional_payload;
|
70
|
+
grpc_completion_queue* cq;
|
67
71
|
};
|
68
72
|
|
69
73
|
/// Interface for listeners.
|
@@ -90,7 +94,7 @@ class Server : public InternallyRefCounted<Server> {
|
|
90
94
|
explicit Server(const grpc_channel_args* args);
|
91
95
|
~Server() override;
|
92
96
|
|
93
|
-
void Orphan() override;
|
97
|
+
void Orphan() ABSL_LOCKS_EXCLUDED(mu_global_) override;
|
94
98
|
|
95
99
|
const grpc_channel_args* channel_args() const { return channel_args_; }
|
96
100
|
grpc_resource_user* default_resource_user() const {
|
@@ -112,7 +116,7 @@ class Server : public InternallyRefCounted<Server> {
|
|
112
116
|
config_fetcher_ = std::move(config_fetcher);
|
113
117
|
}
|
114
118
|
|
115
|
-
bool HasOpenConnections();
|
119
|
+
bool HasOpenConnections() ABSL_LOCKS_EXCLUDED(mu_global_);
|
116
120
|
|
117
121
|
// Adds a listener to the server. When the server starts, it will call
|
118
122
|
// the listener's Start() method, and when it shuts down, it will orphan
|
@@ -120,11 +124,11 @@ class Server : public InternallyRefCounted<Server> {
|
|
120
124
|
void AddListener(OrphanablePtr<ListenerInterface> listener);
|
121
125
|
|
122
126
|
// Starts listening for connections.
|
123
|
-
void Start();
|
127
|
+
void Start() ABSL_LOCKS_EXCLUDED(mu_global_);
|
124
128
|
|
125
129
|
// Sets up a transport. Creates a channel stack and binds the transport to
|
126
130
|
// the server. Called from the listener when a new connection is accepted.
|
127
|
-
|
131
|
+
grpc_error_handle SetupTransport(
|
128
132
|
grpc_transport* transport, grpc_pollset* accepting_pollset,
|
129
133
|
const grpc_channel_args* args,
|
130
134
|
const RefCountedPtr<channelz::SocketNode>& socket_node,
|
@@ -158,9 +162,10 @@ class Server : public InternallyRefCounted<Server> {
|
|
158
162
|
grpc_completion_queue* cq_bound_to_call,
|
159
163
|
grpc_completion_queue* cq_for_notification, void* tag_new);
|
160
164
|
|
161
|
-
void ShutdownAndNotify(grpc_completion_queue* cq, void* tag)
|
165
|
+
void ShutdownAndNotify(grpc_completion_queue* cq, void* tag)
|
166
|
+
ABSL_LOCKS_EXCLUDED(mu_global_, mu_call_);
|
162
167
|
|
163
|
-
void CancelAllCalls();
|
168
|
+
void CancelAllCalls() ABSL_LOCKS_EXCLUDED(mu_global_);
|
164
169
|
|
165
170
|
private:
|
166
171
|
struct RequestedCall;
|
@@ -197,8 +202,8 @@ class Server : public InternallyRefCounted<Server> {
|
|
197
202
|
bool is_idempotent);
|
198
203
|
|
199
204
|
// Filter vtable functions.
|
200
|
-
static
|
201
|
-
|
205
|
+
static grpc_error_handle InitChannelElement(
|
206
|
+
grpc_channel_element* elem, grpc_channel_element_args* args);
|
202
207
|
static void DestroyChannelElement(grpc_channel_element* elem);
|
203
208
|
|
204
209
|
private:
|
@@ -207,9 +212,9 @@ class Server : public InternallyRefCounted<Server> {
|
|
207
212
|
static void AcceptStream(void* arg, grpc_transport* /*transport*/,
|
208
213
|
const void* transport_server_data);
|
209
214
|
|
210
|
-
void Destroy();
|
215
|
+
void Destroy() ABSL_EXCLUSIVE_LOCKS_REQUIRED(server_->mu_global_);
|
211
216
|
|
212
|
-
static void FinishDestroy(void* arg,
|
217
|
+
static void FinishDestroy(void* arg, grpc_error_handle error);
|
213
218
|
|
214
219
|
RefCountedPtr<Server> server_;
|
215
220
|
grpc_channel* channel_;
|
@@ -259,8 +264,8 @@ class Server : public InternallyRefCounted<Server> {
|
|
259
264
|
void FailCallCreation();
|
260
265
|
|
261
266
|
// Filter vtable functions.
|
262
|
-
static
|
263
|
-
|
267
|
+
static grpc_error_handle InitCallElement(
|
268
|
+
grpc_call_element* elem, const grpc_call_element_args* args);
|
264
269
|
static void DestroyCallElement(grpc_call_element* elem,
|
265
270
|
const grpc_call_final_info* /*final_info*/,
|
266
271
|
grpc_closure* /*ignored*/);
|
@@ -269,15 +274,16 @@ class Server : public InternallyRefCounted<Server> {
|
|
269
274
|
|
270
275
|
private:
|
271
276
|
// Helper functions for handling calls at the top of the call stack.
|
272
|
-
static void RecvInitialMetadataBatchComplete(void* arg,
|
277
|
+
static void RecvInitialMetadataBatchComplete(void* arg,
|
278
|
+
grpc_error_handle error);
|
273
279
|
void StartNewRpc(grpc_call_element* elem);
|
274
|
-
static void PublishNewRpc(void* arg,
|
280
|
+
static void PublishNewRpc(void* arg, grpc_error_handle error);
|
275
281
|
|
276
282
|
// Functions used inside the call stack.
|
277
283
|
void StartTransportStreamOpBatchImpl(grpc_call_element* elem,
|
278
284
|
grpc_transport_stream_op_batch* batch);
|
279
|
-
static void RecvInitialMetadataReady(void* arg,
|
280
|
-
static void RecvTrailingMetadataReady(void* arg,
|
285
|
+
static void RecvInitialMetadataReady(void* arg, grpc_error_handle error);
|
286
|
+
static void RecvTrailingMetadataReady(void* arg, grpc_error_handle error);
|
281
287
|
|
282
288
|
RefCountedPtr<Server> server_;
|
283
289
|
|
@@ -304,12 +310,12 @@ class Server : public InternallyRefCounted<Server> {
|
|
304
310
|
uint32_t recv_initial_metadata_flags_ = 0;
|
305
311
|
grpc_closure recv_initial_metadata_ready_;
|
306
312
|
grpc_closure* original_recv_initial_metadata_ready_;
|
307
|
-
|
313
|
+
grpc_error_handle recv_initial_metadata_error_ = GRPC_ERROR_NONE;
|
308
314
|
|
309
315
|
bool seen_recv_trailing_metadata_ready_ = false;
|
310
316
|
grpc_closure recv_trailing_metadata_ready_;
|
311
317
|
grpc_closure* original_recv_trailing_metadata_ready_;
|
312
|
-
|
318
|
+
grpc_error_handle recv_trailing_metadata_error_ = GRPC_ERROR_NONE;
|
313
319
|
|
314
320
|
grpc_closure publish_;
|
315
321
|
|
@@ -331,7 +337,7 @@ class Server : public InternallyRefCounted<Server> {
|
|
331
337
|
grpc_cq_completion completion;
|
332
338
|
};
|
333
339
|
|
334
|
-
static void ListenerDestroyDone(void* arg,
|
340
|
+
static void ListenerDestroyDone(void* arg, grpc_error_handle error);
|
335
341
|
|
336
342
|
static void DoneShutdownEvent(void* server,
|
337
343
|
grpc_cq_completion* /*completion*/) {
|
@@ -340,12 +346,14 @@ class Server : public InternallyRefCounted<Server> {
|
|
340
346
|
|
341
347
|
static void DoneRequestEvent(void* req, grpc_cq_completion* completion);
|
342
348
|
|
343
|
-
void FailCall(size_t cq_idx, RequestedCall* rc,
|
349
|
+
void FailCall(size_t cq_idx, RequestedCall* rc, grpc_error_handle error);
|
344
350
|
grpc_call_error QueueRequestedCall(size_t cq_idx, RequestedCall* rc);
|
345
351
|
|
346
|
-
void MaybeFinishShutdown()
|
352
|
+
void MaybeFinishShutdown() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_global_)
|
353
|
+
ABSL_LOCKS_EXCLUDED(mu_call_);
|
347
354
|
|
348
|
-
void KillPendingWorkLocked(
|
355
|
+
void KillPendingWorkLocked(grpc_error_handle error)
|
356
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_call_);
|
349
357
|
|
350
358
|
static grpc_call_error ValidateServerRequest(
|
351
359
|
grpc_completion_queue* cq_for_notification, void* tag,
|
@@ -356,6 +364,39 @@ class Server : public InternallyRefCounted<Server> {
|
|
356
364
|
|
357
365
|
std::vector<grpc_channel*> GetChannelsLocked() const;
|
358
366
|
|
367
|
+
// Take a shutdown ref for a request (increment by 2) and return if shutdown
|
368
|
+
// has already been called.
|
369
|
+
bool ShutdownRefOnRequest() {
|
370
|
+
int old_value = shutdown_refs_.FetchAdd(2, MemoryOrder::ACQ_REL);
|
371
|
+
return (old_value & 1) != 0;
|
372
|
+
}
|
373
|
+
|
374
|
+
// Decrement the shutdown ref counter by either 1 (for shutdown call) or 2
|
375
|
+
// (for in-flight request) and possibly call MaybeFinishShutdown if
|
376
|
+
// appropriate.
|
377
|
+
void ShutdownUnrefOnRequest() ABSL_LOCKS_EXCLUDED(mu_global_) {
|
378
|
+
if (shutdown_refs_.FetchSub(2, MemoryOrder::ACQ_REL) == 2) {
|
379
|
+
MutexLock lock(&mu_global_);
|
380
|
+
MaybeFinishShutdown();
|
381
|
+
}
|
382
|
+
}
|
383
|
+
void ShutdownUnrefOnShutdownCall() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_global_) {
|
384
|
+
if (shutdown_refs_.FetchSub(1, MemoryOrder::ACQ_REL) == 1) {
|
385
|
+
MaybeFinishShutdown();
|
386
|
+
}
|
387
|
+
}
|
388
|
+
|
389
|
+
bool ShutdownCalled() const {
|
390
|
+
return (shutdown_refs_.Load(MemoryOrder::ACQUIRE) & 1) == 0;
|
391
|
+
}
|
392
|
+
|
393
|
+
// Returns whether there are no more shutdown refs, which means that shutdown
|
394
|
+
// has been called and all accepted requests have been published if using an
|
395
|
+
// AllocatingRequestMatcher.
|
396
|
+
bool ShutdownReady() const {
|
397
|
+
return shutdown_refs_.Load(MemoryOrder::ACQUIRE) == 0;
|
398
|
+
}
|
399
|
+
|
359
400
|
grpc_channel_args* const channel_args_;
|
360
401
|
grpc_resource_user* default_resource_user_ = nullptr;
|
361
402
|
RefCountedPtr<channelz::ServerNode> channelz_node_;
|
@@ -385,9 +426,15 @@ class Server : public InternallyRefCounted<Server> {
|
|
385
426
|
// Request matcher for unregistered methods.
|
386
427
|
std::unique_ptr<RequestMatcherInterface> unregistered_request_matcher_;
|
387
428
|
|
388
|
-
|
389
|
-
|
390
|
-
|
429
|
+
// The shutdown refs counter tracks whether or not shutdown has been called
|
430
|
+
// and whether there are any AllocatingRequestMatcher requests that have been
|
431
|
+
// accepted but not yet started (+2 on each one). If shutdown has been called,
|
432
|
+
// the lowest bit will be 0 (defaults to 1) and the counter will be even. The
|
433
|
+
// server should not notify on shutdown until the counter is 0 (shutdown is
|
434
|
+
// called and there are no requests that are accepted but not started).
|
435
|
+
Atomic<int> shutdown_refs_{1};
|
436
|
+
bool shutdown_published_ ABSL_GUARDED_BY(mu_global_) = false;
|
437
|
+
std::vector<ShutdownTag> shutdown_tags_ ABSL_GUARDED_BY(mu_global_);
|
391
438
|
|
392
439
|
std::list<ChannelData*> channels_;
|
393
440
|
|
@@ -412,15 +459,31 @@ struct grpc_server {
|
|
412
459
|
// approaches here.
|
413
460
|
struct grpc_server_config_fetcher {
|
414
461
|
public:
|
462
|
+
class ConnectionManager : public grpc_core::RefCounted<ConnectionManager> {
|
463
|
+
public:
|
464
|
+
// Ownership of \a args is transfered.
|
465
|
+
virtual absl::StatusOr<grpc_channel_args*> UpdateChannelArgsForConnection(
|
466
|
+
grpc_channel_args* args, grpc_endpoint* tcp) = 0;
|
467
|
+
};
|
468
|
+
|
415
469
|
class WatcherInterface {
|
416
470
|
public:
|
417
471
|
virtual ~WatcherInterface() = default;
|
418
|
-
|
472
|
+
// UpdateConnectionManager() is invoked by the config fetcher when a new
|
473
|
+
// config is available. Implementations should update the connection manager
|
474
|
+
// and start serving if not already serving.
|
475
|
+
virtual void UpdateConnectionManager(
|
476
|
+
grpc_core::RefCountedPtr<ConnectionManager> manager) = 0;
|
477
|
+
// Implementations should stop serving when this is called. Serving should
|
478
|
+
// only resume when UpdateConfig() is invoked.
|
479
|
+
virtual void StopServing() = 0;
|
419
480
|
};
|
420
481
|
|
421
482
|
virtual ~grpc_server_config_fetcher() = default;
|
422
483
|
|
484
|
+
// Ownership of \a args is transferred.
|
423
485
|
virtual void StartWatch(std::string listening_address,
|
486
|
+
grpc_channel_args* args,
|
424
487
|
std::unique_ptr<WatcherInterface> watcher) = 0;
|
425
488
|
virtual void CancelWatch(WatcherInterface* watcher) = 0;
|
426
489
|
virtual grpc_pollset_set* interested_parties() = 0;
|