grpc 1.15.0 → 1.30.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 +8591 -13387
- data/etc/roots.pem +455 -130
- data/include/grpc/grpc.h +39 -9
- data/include/grpc/grpc_posix.h +0 -8
- data/include/grpc/grpc_security.h +409 -14
- data/include/grpc/grpc_security_constants.h +55 -22
- data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
- data/include/grpc/impl/codegen/atm_windows.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer.h +13 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -1
- data/include/grpc/impl/codegen/gpr_types.h +1 -1
- data/include/grpc/impl/codegen/grpc_types.h +111 -16
- data/include/grpc/impl/codegen/port_platform.h +171 -9
- data/include/grpc/impl/codegen/slice.h +2 -22
- data/include/grpc/impl/codegen/status.h +2 -1
- data/include/grpc/impl/codegen/sync.h +5 -3
- data/include/grpc/impl/codegen/sync_abseil.h +36 -0
- data/include/grpc/impl/codegen/sync_generic.h +1 -1
- data/include/grpc/impl/codegen/sync_posix.h +18 -0
- data/include/grpc/module.modulemap +25 -37
- data/include/grpc/slice.h +3 -3
- data/include/grpc/support/alloc.h +0 -16
- data/include/grpc/support/sync_abseil.h +26 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +81 -0
- data/src/core/ext/filters/client_channel/backend_metric.h +36 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +26 -19
- data/src/core/ext/filters/client_channel/backup_poller.h +8 -2
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +21 -5
- data/src/core/ext/filters/client_channel/client_channel.cc +2888 -2206
- data/src/core/ext/filters/client_channel/client_channel.h +26 -6
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +54 -72
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +33 -26
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +22 -34
- data/src/core/ext/filters/client_channel/client_channel_factory.h +12 -39
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +13 -14
- data/src/core/ext/filters/client_channel/connector.h +43 -37
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +179 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +68 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +606 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.h +175 -0
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +177 -158
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +1 -1
- data/src/core/ext/filters/client_channel/http_proxy.cc +125 -121
- data/src/core/ext/filters/client_channel/http_proxy.h +5 -1
- data/src/core/ext/filters/client_channel/lb_policy.cc +105 -26
- data/src/core/ext/filters/client_channel/lb_policy.h +352 -152
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +297 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +64 -47
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1010 -1155
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +7 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +89 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +40 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +12 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +53 -40
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +10 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +19 -16
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +157 -271
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +43 -59
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +235 -384
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +174 -409
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +157 -285
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +417 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +32 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +7 -91
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +93 -8
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +13 -2
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +96 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +57 -0
- data/src/core/ext/filters/client_channel/parse_address.cc +76 -30
- data/src/core/ext/filters/client_channel/parse_address.h +4 -1
- data/src/core/ext/filters/client_channel/proxy_mapper.h +14 -34
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +46 -79
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +23 -17
- data/src/core/ext/filters/client_channel/resolver.cc +55 -5
- data/src/core/ext/filters/client_channel/resolver.h +61 -61
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +251 -226
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +200 -36
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -20
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +177 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +8 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +491 -131
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +434 -233
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +15 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +38 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +7 -2
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +29 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +92 -131
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +220 -134
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +27 -17
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +73 -99
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +184 -0
- data/src/core/ext/filters/client_channel/resolver_factory.h +13 -11
- data/src/core/ext/filters/client_channel/resolver_registry.cc +33 -14
- data/src/core/ext/filters/client_channel/resolver_registry.h +19 -13
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +443 -0
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +127 -0
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +348 -0
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +123 -0
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -5
- data/src/core/ext/filters/client_channel/retry_throttle.h +2 -6
- data/src/core/ext/filters/client_channel/server_address.cc +48 -0
- data/src/core/ext/filters/client_channel/server_address.h +90 -0
- data/src/core/ext/filters/client_channel/service_config.cc +221 -0
- data/src/core/ext/filters/client_channel/service_config.h +123 -0
- data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
- data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
- data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +903 -634
- data/src/core/ext/filters/client_channel/subchannel.h +364 -131
- data/src/core/ext/filters/client_channel/subchannel_interface.h +94 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +97 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +91 -0
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +1906 -0
- data/src/core/ext/filters/client_channel/xds/xds_api.h +280 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +342 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +88 -0
- data/src/core/ext/filters/client_channel/xds/xds_channel.h +46 -0
- data/src/core/ext/filters/client_channel/xds/xds_channel_args.h +26 -0
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +106 -0
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +2367 -0
- data/src/core/ext/filters/client_channel/xds/xds_client.h +309 -0
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +115 -0
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +211 -0
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +440 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +49 -52
- data/src/core/ext/filters/deadline/deadline_filter.h +11 -14
- data/src/core/ext/filters/http/client/http_client_filter.cc +122 -85
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +26 -24
- data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +342 -295
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +156 -54
- data/src/core/ext/filters/max_age/max_age_filter.cc +76 -63
- data/src/core/ext/filters/message_size/message_size_filter.cc +218 -119
- data/src/core/ext/filters/message_size/message_size_filter.h +33 -0
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +19 -17
- data/src/core/ext/transport/chttp2/alpn/alpn.h +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +141 -164
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +31 -1
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +36 -34
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +133 -138
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +128 -30
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +8 -11
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +4 -4
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +11 -12
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +4 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +9 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +911 -716
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -1
- data/src/core/ext/transport/chttp2/transport/context_list.cc +69 -0
- data/src/core/ext/transport/chttp2/transport/context_list.h +53 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/flow_control.h +22 -30
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +47 -54
- data/src/core/ext/transport/chttp2/transport/frame_data.h +11 -13
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +9 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +5 -5
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -5
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -4
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +17 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +11 -4
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +11 -7
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +548 -351
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +26 -15
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +201 -120
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +14 -6
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +47 -169
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +70 -17
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +10 -17
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +19 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +226 -161
- data/src/core/ext/transport/chttp2/transport/parsing.cc +166 -110
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +28 -18
- data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +95 -35
- data/src/core/ext/transport/inproc/inproc_transport.cc +406 -388
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +17 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +30 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +27 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +54 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +21 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +35 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +28 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +403 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +1447 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +218 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +69 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +55 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +305 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +328 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +313 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +897 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +96 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +322 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +197 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +642 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +172 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +673 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +80 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +152 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +518 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +129 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +392 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +31 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +92 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +240 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +18 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +33 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +266 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +324 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +31 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +109 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +399 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +18 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +33 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +145 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +527 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +112 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +30 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +199 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +18 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +33 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +815 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +3032 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +59 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +134 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +28 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +228 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +725 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +316 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +1132 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +33 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +24 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +50 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +134 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.c +17 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.h +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +144 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +133 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +39 -0
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +87 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +50 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +112 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +62 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +89 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +249 -0
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +17 -0
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +30 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +18 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -0
- data/src/core/ext/upb-generated/google/api/http.upb.c +66 -0
- data/src/core/ext/upb-generated/google/api/http.upb.h +190 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +27 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +58 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +486 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1696 -0
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +27 -0
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +58 -0
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +22 -0
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +50 -0
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +79 -0
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +215 -0
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +27 -0
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +58 -0
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +106 -0
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +238 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +33 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +74 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +49 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +126 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +212 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +693 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +42 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +109 -0
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +36 -0
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +84 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +141 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +393 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +48 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +104 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +17 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +30 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +58 -0
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +144 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +448 -0
- data/src/core/ext/upb-generated/validate/validate.upb.h +2073 -0
- data/src/core/lib/avl/avl.cc +1 -1
- data/src/core/lib/channel/channel_args.cc +54 -115
- data/src/core/lib/channel/channel_args.h +44 -40
- data/src/core/lib/channel/channel_stack.cc +6 -5
- data/src/core/lib/channel/channel_stack.h +52 -28
- data/src/core/lib/channel/channel_stack_builder.cc +14 -2
- data/src/core/lib/channel/channel_stack_builder.h +8 -0
- data/src/core/lib/channel/channel_trace.cc +75 -85
- data/src/core/lib/channel/channel_trace.h +37 -32
- data/src/core/lib/channel/channelz.cc +496 -106
- data/src/core/lib/channel/channelz.h +262 -61
- data/src/core/lib/channel/channelz_registry.cc +191 -69
- data/src/core/lib/channel/channelz_registry.h +30 -53
- data/src/core/lib/channel/connected_channel.cc +30 -27
- data/src/core/lib/channel/context.h +6 -6
- data/src/core/lib/channel/handshaker.cc +150 -218
- data/src/core/lib/channel/handshaker.h +111 -102
- data/src/core/lib/channel/handshaker_factory.h +9 -17
- data/src/core/lib/channel/handshaker_registry.cc +57 -49
- data/src/core/lib/channel/handshaker_registry.h +21 -15
- data/src/core/lib/channel/status_util.cc +2 -3
- data/src/core/lib/compression/algorithm_metadata.h +3 -3
- data/src/core/lib/compression/compression.cc +17 -12
- data/src/core/lib/compression/compression_args.cc +134 -0
- data/src/core/lib/compression/compression_args.h +56 -0
- data/src/core/lib/compression/compression_internal.cc +17 -13
- data/src/core/lib/compression/compression_internal.h +9 -1
- data/src/core/lib/compression/message_compress.cc +8 -3
- data/src/core/lib/compression/stream_compression.cc +3 -2
- data/src/core/lib/compression/stream_compression.h +2 -2
- data/src/core/lib/compression/stream_compression_gzip.cc +9 -9
- data/src/core/lib/compression/stream_compression_identity.cc +5 -7
- data/src/core/lib/debug/stats.cc +21 -27
- data/src/core/lib/debug/stats.h +3 -1
- data/src/core/lib/debug/trace.cc +16 -7
- data/src/core/lib/debug/trace.h +20 -4
- data/src/core/lib/gpr/alloc.cc +4 -29
- data/src/core/lib/gpr/arena.h +13 -7
- data/src/core/lib/gpr/cpu_linux.cc +1 -1
- data/src/core/lib/gpr/cpu_posix.cc +5 -3
- data/src/core/lib/gpr/env.h +3 -6
- data/src/core/lib/gpr/env_linux.cc +15 -21
- data/src/core/lib/gpr/env_posix.cc +5 -5
- data/src/core/lib/gpr/env_windows.cc +7 -5
- data/src/core/lib/gpr/log.cc +9 -13
- data/src/core/lib/gpr/log_linux.cc +2 -2
- data/src/core/lib/gpr/log_posix.cc +4 -3
- data/src/core/lib/gpr/spinlock.h +2 -3
- data/src/core/lib/gpr/string.cc +29 -35
- data/src/core/lib/gpr/string.h +11 -19
- data/src/core/lib/gpr/sync_abseil.cc +116 -0
- data/src/core/lib/gpr/sync_posix.cc +78 -9
- data/src/core/lib/gpr/sync_windows.cc +4 -2
- data/src/core/lib/gpr/time.cc +12 -0
- data/src/core/lib/gpr/time_posix.cc +22 -3
- data/src/core/lib/gpr/time_precise.cc +123 -36
- data/src/core/lib/gpr/time_precise.h +37 -0
- data/src/core/lib/gprpp/arena.cc +103 -0
- data/src/core/lib/gprpp/arena.h +120 -0
- data/src/core/lib/gprpp/atomic.h +79 -5
- data/src/core/lib/gprpp/debug_location.h +3 -2
- data/src/core/lib/gprpp/fork.cc +30 -56
- data/src/core/lib/gprpp/fork.h +18 -3
- data/src/core/lib/gprpp/global_config.h +96 -0
- data/src/core/lib/gprpp/global_config_custom.h +29 -0
- data/src/core/lib/gprpp/global_config_env.cc +135 -0
- data/src/core/lib/gprpp/global_config_env.h +131 -0
- data/src/core/lib/gprpp/global_config_generic.h +44 -0
- data/src/core/lib/gprpp/host_port.cc +112 -0
- data/src/core/lib/gprpp/host_port.h +56 -0
- data/src/core/lib/gprpp/map.h +53 -0
- data/src/core/lib/gprpp/memory.h +11 -83
- data/src/core/lib/gprpp/mpscq.cc +108 -0
- data/src/core/lib/gprpp/mpscq.h +98 -0
- data/src/core/lib/gprpp/orphanable.h +27 -95
- data/src/core/lib/gprpp/ref_counted.h +228 -83
- data/src/core/lib/gprpp/ref_counted_ptr.h +39 -16
- data/src/core/lib/gprpp/sync.h +135 -0
- data/src/core/lib/gprpp/thd.h +54 -12
- data/src/core/lib/gprpp/thd_posix.cc +57 -13
- data/src/core/lib/gprpp/thd_windows.cc +54 -33
- data/src/core/lib/http/format_request.cc +46 -65
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +121 -107
- data/src/core/lib/http/parser.cc +4 -3
- data/src/core/lib/http/parser.h +9 -9
- data/src/core/lib/iomgr/buffer_list.cc +308 -0
- data/src/core/lib/iomgr/buffer_list.h +165 -0
- data/src/core/lib/iomgr/call_combiner.cc +113 -69
- data/src/core/lib/iomgr/call_combiner.h +96 -74
- data/src/core/lib/iomgr/cfstream_handle.cc +209 -0
- data/src/core/lib/iomgr/cfstream_handle.h +90 -0
- data/src/core/lib/iomgr/closure.h +44 -141
- data/src/core/lib/iomgr/combiner.cc +50 -86
- data/src/core/lib/iomgr/combiner.h +31 -9
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
- data/src/core/lib/iomgr/dynamic_annotations.h +67 -0
- data/src/core/lib/iomgr/endpoint.cc +8 -4
- data/src/core/lib/iomgr/endpoint.h +12 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +376 -0
- data/src/core/lib/iomgr/endpoint_cfstream.h +49 -0
- data/src/core/lib/iomgr/endpoint_pair.h +2 -3
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +2 -2
- data/src/core/lib/iomgr/error.cc +71 -64
- data/src/core/lib/iomgr/error.h +74 -10
- data/src/core/lib/iomgr/error_cfstream.cc +52 -0
- data/src/core/lib/iomgr/error_cfstream.h +31 -0
- data/src/core/lib/iomgr/error_internal.h +1 -3
- data/src/core/lib/iomgr/ev_apple.cc +356 -0
- data/src/core/lib/iomgr/ev_apple.h +43 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +99 -69
- data/src/core/lib/iomgr/ev_epollex_linux.cc +238 -259
- data/src/core/lib/iomgr/ev_poll_posix.cc +52 -504
- data/src/core/lib/iomgr/ev_posix.cc +54 -31
- data/src/core/lib/iomgr/ev_posix.h +29 -3
- data/src/core/lib/iomgr/ev_windows.cc +2 -2
- data/src/core/lib/iomgr/exec_ctx.cc +79 -8
- data/src/core/lib/iomgr/exec_ctx.h +163 -21
- data/src/core/lib/iomgr/executor.cc +137 -101
- data/src/core/lib/iomgr/executor.h +54 -48
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +183 -0
- data/src/core/lib/iomgr/executor/mpmcqueue.h +175 -0
- data/src/core/lib/iomgr/executor/threadpool.cc +137 -0
- data/src/core/lib/iomgr/executor/threadpool.h +149 -0
- data/src/core/lib/iomgr/fork_posix.cc +15 -8
- data/src/core/lib/iomgr/grpc_if_nametoindex.h +30 -0
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +42 -0
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +38 -0
- data/src/core/lib/iomgr/internal_errqueue.cc +67 -0
- data/src/core/lib/iomgr/internal_errqueue.h +191 -0
- data/src/core/lib/iomgr/iocp_windows.cc +2 -2
- data/src/core/lib/iomgr/iomgr.cc +27 -13
- data/src/core/lib/iomgr/iomgr.h +19 -0
- data/src/core/lib/iomgr/iomgr_custom.cc +18 -2
- data/src/core/lib/iomgr/iomgr_custom.h +2 -0
- data/src/core/lib/iomgr/iomgr_internal.cc +14 -0
- data/src/core/lib/iomgr/iomgr_internal.h +16 -0
- data/src/core/lib/iomgr/iomgr_posix.cc +23 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +171 -0
- data/src/core/lib/iomgr/iomgr_uv.cc +3 -0
- data/src/core/lib/iomgr/iomgr_windows.cc +20 -1
- data/src/core/lib/iomgr/load_file.cc +1 -0
- data/src/core/lib/iomgr/lockfree_event.cc +16 -15
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +87 -0
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +88 -0
- data/src/core/lib/iomgr/polling_entity.h +4 -4
- data/src/core/lib/iomgr/pollset_custom.cc +5 -5
- data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
- data/src/core/lib/iomgr/pollset_uv.h +32 -0
- data/src/core/lib/iomgr/pollset_windows.cc +16 -2
- data/src/core/lib/iomgr/port.h +49 -2
- data/src/core/lib/iomgr/python_util.h +46 -0
- data/src/core/lib/iomgr/resolve_address.h +5 -7
- data/src/core/lib/iomgr/resolve_address_custom.cc +36 -50
- data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +22 -25
- data/src/core/lib/iomgr/resolve_address_windows.cc +14 -26
- data/src/core/lib/iomgr/resource_quota.cc +175 -110
- data/src/core/lib/iomgr/resource_quota.h +30 -11
- data/src/core/lib/iomgr/sockaddr_utils.cc +26 -31
- data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
- data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
- data/src/core/lib/iomgr/socket_mutator.h +2 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +145 -27
- data/src/core/lib/iomgr/socket_utils_posix.h +26 -0
- data/src/core/lib/iomgr/socket_windows.cc +21 -2
- data/src/core/lib/iomgr/socket_windows.h +9 -1
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +215 -0
- data/src/core/lib/iomgr/tcp_client_custom.cc +19 -7
- data/src/core/lib/iomgr/tcp_client_posix.cc +40 -38
- data/src/core/lib/iomgr/tcp_client_posix.h +6 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +11 -10
- data/src/core/lib/iomgr/tcp_custom.cc +37 -32
- data/src/core/lib/iomgr/tcp_custom.h +3 -0
- data/src/core/lib/iomgr/tcp_posix.cc +1196 -168
- data/src/core/lib/iomgr/tcp_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_server.cc +5 -0
- data/src/core/lib/iomgr/tcp_server.h +21 -0
- data/src/core/lib/iomgr/tcp_server_custom.cc +43 -30
- data/src/core/lib/iomgr/tcp_server_posix.cc +97 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -16
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
- data/src/core/lib/iomgr/tcp_server_windows.cc +19 -15
- data/src/core/lib/iomgr/tcp_uv.cc +8 -9
- data/src/core/lib/iomgr/tcp_windows.cc +110 -48
- data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
- data/src/core/lib/iomgr/timer.h +2 -1
- data/src/core/lib/iomgr/timer_custom.cc +7 -5
- data/src/core/lib/iomgr/timer_generic.cc +42 -40
- data/src/core/lib/iomgr/timer_generic.h +39 -0
- data/src/core/lib/iomgr/timer_heap.cc +2 -2
- data/src/core/lib/iomgr/timer_heap.h +5 -6
- data/src/core/lib/iomgr/timer_manager.cc +34 -16
- data/src/core/lib/iomgr/timer_manager.h +4 -2
- data/src/core/lib/iomgr/udp_server.cc +31 -30
- data/src/core/lib/iomgr/udp_server.h +6 -12
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -19
- data/src/core/lib/iomgr/work_serializer.cc +155 -0
- data/src/core/lib/iomgr/work_serializer.h +65 -0
- data/src/core/lib/json/json.h +209 -68
- data/src/core/lib/json/json_reader.cc +511 -319
- data/src/core/lib/json/json_writer.cc +202 -110
- data/src/core/lib/profiling/basic_timers.cc +12 -6
- data/src/core/lib/security/context/security_context.cc +92 -119
- data/src/core/lib/security/context/security_context.h +79 -48
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +39 -48
- data/src/core/lib/security/credentials/alts/alts_credentials.h +37 -10
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +45 -57
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +2 -1
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +3 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +119 -159
- data/src/core/lib/security/credentials/composite/composite_credentials.h +71 -24
- data/src/core/lib/security/credentials/credentials.cc +18 -142
- data/src/core/lib/security/credentials/credentials.h +141 -105
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +48 -72
- data/src/core/lib/security/credentials/fake/fake_credentials.h +28 -5
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +186 -99
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +32 -6
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +33 -39
- data/src/core/lib/security/credentials/iam/iam_credentials.h +22 -4
- data/src/core/lib/security/credentials/jwt/json_token.cc +32 -58
- data/src/core/lib/security/credentials/jwt/json_token.h +5 -7
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +70 -88
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +41 -10
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +159 -170
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -5
- data/src/core/lib/security/credentials/local/local_credentials.cc +21 -34
- data/src/core/lib/security/credentials/local/local_credentials.h +32 -11
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +438 -203
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +98 -33
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +89 -91
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +43 -17
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +84 -83
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +60 -15
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +245 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +313 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +128 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.h +62 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +301 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +76 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +324 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +45 -0
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +2 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +15 -9
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +281 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.h +59 -0
- data/src/core/lib/security/security_connector/security_connector.cc +40 -1158
- data/src/core/lib/security/security_connector/security_connector.h +100 -209
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +439 -0
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +77 -0
- data/src/core/lib/security/security_connector/ssl_utils.cc +563 -0
- data/src/core/lib/security/security_connector/ssl_utils.h +184 -0
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +32 -0
- data/src/core/lib/security/security_connector/ssl_utils_config.h +30 -0
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +603 -0
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +183 -0
- data/src/core/lib/security/transport/auth_filters.h +5 -2
- data/src/core/lib/security/transport/client_auth_filter.cc +164 -116
- data/src/core/lib/security/transport/secure_endpoint.cc +70 -53
- data/src/core/lib/security/transport/security_handshaker.cc +340 -297
- data/src/core/lib/security/transport/security_handshaker.h +14 -3
- data/src/core/lib/security/transport/server_auth_filter.cc +115 -55
- data/src/core/lib/security/transport/target_authority_table.h +1 -1
- data/src/core/lib/security/util/json_util.cc +34 -13
- data/src/core/lib/security/util/json_util.h +5 -3
- data/src/core/lib/slice/b64.cc +3 -4
- data/src/core/lib/slice/b64.h +3 -4
- data/src/core/lib/slice/percent_encoding.cc +3 -3
- data/src/core/lib/slice/percent_encoding.h +3 -3
- data/src/core/lib/slice/slice.cc +219 -153
- data/src/core/lib/slice/slice_buffer.cc +60 -26
- data/src/core/lib/slice/slice_hash_table.h +9 -15
- data/src/core/lib/slice/slice_intern.cc +186 -143
- data/src/core/lib/slice/slice_internal.h +318 -3
- data/src/core/lib/slice/slice_string_helpers.cc +10 -1
- data/src/core/lib/slice/slice_string_helpers.h +3 -1
- data/src/core/lib/slice/slice_utils.h +200 -0
- data/src/core/lib/slice/slice_weak_hash_table.h +10 -17
- data/src/core/lib/surface/api_trace.h +1 -1
- data/src/core/lib/surface/byte_buffer_reader.cc +15 -43
- data/src/core/lib/surface/call.cc +419 -438
- data/src/core/lib/surface/call.h +14 -5
- data/src/core/lib/surface/call_details.cc +0 -1
- data/src/core/lib/surface/call_log_batch.cc +51 -60
- data/src/core/lib/surface/channel.cc +205 -144
- data/src/core/lib/surface/channel.h +85 -14
- data/src/core/lib/surface/channel_init.h +5 -0
- data/src/core/lib/surface/channel_ping.cc +3 -4
- data/src/core/lib/surface/completion_queue.cc +322 -281
- data/src/core/lib/surface/completion_queue.h +7 -21
- data/src/core/lib/surface/completion_queue_factory.cc +4 -4
- data/src/core/lib/surface/event_string.cc +18 -25
- data/src/core/lib/surface/event_string.h +3 -1
- data/src/core/lib/surface/init.cc +86 -31
- data/src/core/lib/surface/init.h +1 -0
- data/src/core/lib/surface/init_secure.cc +4 -4
- data/src/core/lib/surface/lame_client.cc +46 -35
- data/src/core/lib/surface/server.cc +815 -476
- data/src/core/lib/surface/server.h +50 -9
- data/src/core/lib/surface/validate_metadata.cc +18 -8
- data/src/core/lib/surface/validate_metadata.h +13 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -3
- data/src/core/lib/transport/bdp_estimator.h +2 -2
- data/src/core/lib/transport/byte_stream.cc +5 -7
- data/src/core/lib/transport/byte_stream.h +13 -12
- data/src/core/lib/transport/connectivity_state.cc +114 -129
- data/src/core/lib/transport/connectivity_state.h +102 -58
- data/src/core/lib/transport/error_utils.cc +25 -2
- data/src/core/lib/transport/metadata.cc +428 -288
- data/src/core/lib/transport/metadata.h +307 -26
- data/src/core/lib/transport/metadata_batch.cc +81 -18
- data/src/core/lib/transport/metadata_batch.h +47 -6
- data/src/core/lib/transport/static_metadata.cc +1150 -521
- data/src/core/lib/transport/static_metadata.h +311 -317
- data/src/core/lib/transport/status_conversion.cc +7 -15
- data/src/core/lib/transport/status_metadata.cc +11 -4
- data/src/core/lib/transport/status_metadata.h +18 -0
- data/src/core/lib/transport/timeout_encoding.cc +8 -1
- data/src/core/lib/transport/timeout_encoding.h +4 -3
- data/src/core/lib/transport/transport.cc +49 -80
- data/src/core/lib/transport/transport.h +132 -54
- data/src/core/lib/transport/transport_impl.h +1 -1
- data/src/core/lib/transport/transport_op_string.cc +67 -105
- data/src/core/lib/uri/uri_parser.cc +314 -0
- data/src/core/lib/uri/uri_parser.h +49 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +32 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +715 -144
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +49 -35
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +83 -0
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +73 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +373 -217
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +45 -24
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +43 -10
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +13 -7
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +4 -3
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +75 -48
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +35 -27
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +2 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +13 -3
- data/src/core/tsi/fake_transport_security.cc +26 -25
- data/src/core/tsi/fake_transport_security.h +2 -0
- data/src/core/tsi/local_transport_security.cc +8 -6
- data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -6
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +2 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +14 -11
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -13
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -3
- data/src/core/tsi/ssl_transport_security.cc +289 -125
- data/src/core/tsi/ssl_transport_security.h +52 -13
- data/src/core/tsi/ssl_types.h +0 -2
- data/src/core/tsi/transport_security.cc +31 -1
- data/src/core/tsi/transport_security.h +8 -10
- data/src/core/tsi/transport_security_grpc.cc +7 -0
- data/src/core/tsi/transport_security_grpc.h +8 -3
- data/src/core/tsi/transport_security_interface.h +15 -3
- data/src/ruby/bin/math_pb.rb +23 -21
- data/src/ruby/ext/grpc/ext-export.clang +1 -0
- data/src/ruby/ext/grpc/ext-export.gcc +6 -0
- data/src/ruby/ext/grpc/extconf.rb +18 -4
- data/src/ruby/ext/grpc/rb_call.c +11 -2
- data/src/ruby/ext/grpc/rb_call_credentials.c +12 -6
- data/src/ruby/ext/grpc/rb_channel.c +18 -11
- data/src/ruby/ext/grpc/rb_channel_credentials.c +8 -4
- data/src/ruby/ext/grpc/rb_compression_options.c +9 -7
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +22 -0
- data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc.c +48 -60
- data/src/ruby/ext/grpc/rb_grpc.h +5 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +42 -6
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +67 -13
- data/src/ruby/ext/grpc/rb_server.c +10 -4
- data/src/ruby/lib/grpc.rb +2 -0
- data/src/ruby/lib/grpc/core/status_codes.rb +135 -0
- data/src/ruby/lib/grpc/errors.rb +122 -46
- data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -2
- data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +3 -3
- data/src/ruby/lib/grpc/generic/rpc_server.rb +64 -4
- data/src/ruby/lib/grpc/generic/service.rb +6 -5
- data/src/ruby/lib/grpc/google_rpc_status_utils.rb +9 -4
- data/src/ruby/lib/grpc/grpc.rb +1 -1
- data/src/ruby/lib/grpc/structs.rb +15 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/README.md +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +5 -3
- data/src/ruby/pb/grpc/health/checker.rb +2 -3
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +16 -13
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +18 -0
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +4 -2
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +92 -69
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
- data/src/ruby/spec/channel_spec.rb +44 -0
- data/src/ruby/spec/client_auth_spec.rb +5 -5
- data/src/ruby/spec/debug_message_spec.rb +134 -0
- data/src/ruby/spec/errors_spec.rb +142 -0
- data/src/ruby/spec/generic/client_stub_spec.rb +13 -9
- data/src/ruby/spec/generic/rpc_server_spec.rb +25 -3
- data/src/ruby/spec/generic/service_spec.rb +2 -0
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +2 -2
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options.proto +28 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto +22 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +39 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +78 -0
- data/src/ruby/spec/support/services.rb +29 -22
- data/src/ruby/spec/testdata/ca.pem +18 -13
- data/src/ruby/spec/testdata/client.key +26 -14
- data/src/ruby/spec/testdata/client.pem +18 -12
- data/src/ruby/spec/testdata/server1.key +26 -14
- data/src/ruby/spec/testdata/server1.pem +20 -14
- data/third_party/abseil-cpp/absl/algorithm/algorithm.h +159 -0
- data/third_party/abseil-cpp/absl/base/attributes.h +621 -0
- data/third_party/abseil-cpp/absl/base/call_once.h +226 -0
- data/third_party/abseil-cpp/absl/base/casts.h +184 -0
- data/third_party/abseil-cpp/absl/base/config.h +671 -0
- data/third_party/abseil-cpp/absl/base/const_init.h +76 -0
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +129 -0
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +389 -0
- data/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +200 -0
- data/third_party/abseil-cpp/absl/base/internal/bits.h +218 -0
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +107 -0
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +94 -0
- data/third_party/abseil-cpp/absl/base/internal/endian.h +266 -0
- data/third_party/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
- data/third_party/abseil-cpp/absl/base/internal/hide_ptr.h +51 -0
- data/third_party/abseil-cpp/absl/base/internal/identity.h +37 -0
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +107 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +187 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +107 -0
- data/third_party/abseil-cpp/absl/base/internal/per_thread_tls.h +52 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +240 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +183 -0
- data/third_party/abseil-cpp/absl/base/internal/scheduling_mode.h +58 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +233 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +243 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +35 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +66 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +46 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc +81 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +93 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +37 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +416 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +66 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +271 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +152 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +259 -0
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +108 -0
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.h +75 -0
- data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +66 -0
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +158 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +140 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +124 -0
- data/third_party/abseil-cpp/absl/base/log_severity.cc +27 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +121 -0
- data/third_party/abseil-cpp/absl/base/macros.h +220 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +181 -0
- data/third_party/abseil-cpp/absl/base/options.h +211 -0
- data/third_party/abseil-cpp/absl/base/policy_checks.h +111 -0
- data/third_party/abseil-cpp/absl/base/port.h +26 -0
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +280 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +848 -0
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +265 -0
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +892 -0
- data/third_party/abseil-cpp/absl/memory/memory.h +695 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +759 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +404 -0
- data/third_party/abseil-cpp/absl/numeric/int128.h +1091 -0
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +302 -0
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +308 -0
- data/third_party/abseil-cpp/absl/strings/ascii.cc +200 -0
- data/third_party/abseil-cpp/absl/strings/ascii.h +242 -0
- data/third_party/abseil-cpp/absl/strings/charconv.cc +984 -0
- data/third_party/abseil-cpp/absl/strings/charconv.h +119 -0
- data/third_party/abseil-cpp/absl/strings/escaping.cc +949 -0
- data/third_party/abseil-cpp/absl/strings/escaping.h +164 -0
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +156 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +359 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +423 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +504 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.h +99 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +180 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +58 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +112 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.h +148 -0
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +36 -0
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +89 -0
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +73 -0
- data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +248 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +388 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +432 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +245 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +209 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +326 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +51 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +415 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +493 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +23 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +72 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +104 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +334 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +333 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +314 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +455 -0
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +53 -0
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +50 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +40 -0
- data/third_party/abseil-cpp/absl/strings/match.h +90 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +965 -0
- data/third_party/abseil-cpp/absl/strings/numbers.h +266 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +246 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.h +408 -0
- data/third_party/abseil-cpp/absl/strings/str_format.h +537 -0
- data/third_party/abseil-cpp/absl/strings/str_join.h +293 -0
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +82 -0
- data/third_party/abseil-cpp/absl/strings/str_replace.h +219 -0
- data/third_party/abseil-cpp/absl/strings/str_split.cc +139 -0
- data/third_party/abseil-cpp/absl/strings/str_split.h +513 -0
- data/third_party/abseil-cpp/absl/strings/string_view.cc +235 -0
- data/third_party/abseil-cpp/absl/strings/string_view.h +622 -0
- data/third_party/abseil-cpp/absl/strings/strip.h +91 -0
- data/third_party/abseil-cpp/absl/strings/substitute.cc +171 -0
- data/third_party/abseil-cpp/absl/strings/substitute.h +693 -0
- data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
- data/third_party/abseil-cpp/absl/time/clock.h +74 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
- data/third_party/abseil-cpp/absl/time/format.cc +153 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
- data/third_party/abseil-cpp/absl/time/time.cc +499 -0
- data/third_party/abseil-cpp/absl/time/time.h +1584 -0
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +48 -0
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +78 -0
- data/third_party/abseil-cpp/absl/types/internal/optional.h +396 -0
- data/third_party/abseil-cpp/absl/types/internal/span.h +128 -0
- data/third_party/abseil-cpp/absl/types/optional.h +776 -0
- data/third_party/abseil-cpp/absl/types/span.h +713 -0
- data/third_party/abseil-cpp/absl/utility/utility.h +350 -0
- data/third_party/boringssl-with-bazel/err_data.c +1439 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bitstr.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +123 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +93 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +87 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +195 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_gentm.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +88 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +420 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +305 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +286 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_octet.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_print.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +313 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +212 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_type.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utctm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utf8.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +446 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_locl.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_par.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn_pack.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_enum.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_string.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_dec.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +664 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_fre.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_new.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_typ.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_utl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/time_support.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +466 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +700 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio_mem.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +545 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +279 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +317 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/hexdump.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/internal.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +488 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/printf.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +206 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +118 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/bn_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +470 -0
- data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +172 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/asn1_compat.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +265 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +719 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +688 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +96 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +155 -0
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +184 -0
- data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +45 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +143 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +152 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesccm.c +447 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +283 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +891 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +418 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_null.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc4.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +688 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/internal.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +491 -0
- data/third_party/boringssl-with-bazel/src/crypto/cmac/cmac.c +278 -0
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +810 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf_def.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-fuchsia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-linux.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +220 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.h +201 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +291 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-ppc64le.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +226 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +2159 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +7872 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +146 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +539 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh/check.c +217 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +533 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/params.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/digest_extra/digest_extra.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +980 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +574 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +95 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +124 -0
- data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +267 -0
- data/third_party/boringssl-with-bazel/src/crypto/engine/engine.c +99 -0
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +850 -0
- data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +58 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/digestsign.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +443 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +388 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +484 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +269 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +273 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +286 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +255 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +104 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +221 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +648 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +194 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +110 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +248 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/pbkdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/print.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +213 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/sign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ex_data.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +108 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1282 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +238 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +236 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +106 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +263 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/add.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +445 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bytes.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +200 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +236 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +886 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +87 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +1288 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +378 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +325 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/generic.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +694 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/jacobi.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +502 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +186 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +749 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +1068 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +341 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +226 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +104 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +364 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/sqrt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/aead.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +620 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +1302 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_des.c +237 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +128 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +89 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/des.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/internal.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +271 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +296 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/internal.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +268 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +1252 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +465 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +524 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +100 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +775 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +328 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +1178 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9497 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +632 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.h +153 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +175 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +357 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +270 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +255 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +270 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +122 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +328 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +32 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/hmac/hmac.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +29 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +256 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h +37 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +301 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +167 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +202 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +200 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +729 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +304 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +441 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +96 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/polyval.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +202 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +163 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +378 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +391 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +243 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +127 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +695 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +898 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +1358 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +654 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +53 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1-altivec.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +371 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +343 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +544 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/kdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hkdf/hkdf.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +2100 -0
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +61 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +834 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +348 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +359 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +549 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +11585 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_xref.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +261 -0
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +360 -0
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +777 -0
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +87 -0
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +257 -0
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +218 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_xaux.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/internal.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +159 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +385 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +131 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +316 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +530 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1305 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/internal.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +318 -0
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +305 -0
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +856 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +45 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +220 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +52 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/forkunsafe.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +30 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/rand_extra.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +69 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rc4/rc4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_c11.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +53 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c +22 -0
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +82 -0
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +431 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +59 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +210 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +260 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_digest.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_sign.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +653 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +114 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/algorithm.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +842 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +458 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +275 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/charmap.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/i2d_pr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/rsa_pss.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +125 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +244 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +544 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509a.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/vpm_int.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_att.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +476 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_d2.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +103 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_ext.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +834 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +198 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c +116 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +341 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +185 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +326 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +204 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_v3.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +2487 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +671 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +210 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +389 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509rset.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509spki.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_algor.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +399 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_attrib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_crl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_exten.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_info.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_name.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pkey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pubkey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_req.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_sig.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_spki.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_val.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +334 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509a.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +141 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +56 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +286 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_data.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_int.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_map.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +189 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +842 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +207 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akeya.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +629 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bcons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bitst.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +463 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +503 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_crld.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +100 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_extku.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +246 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ia5.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +218 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_int.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +371 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ncons.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +68 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +288 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pku.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pmaps.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_prn.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +843 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +155 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_sxnet.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1395 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +459 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +195 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/arm_arch.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +911 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1_mac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1t.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +575 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +190 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +933 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +93 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +1057 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +137 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buffer.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +561 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +96 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/chacha.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +638 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +91 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +180 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +212 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +149 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +201 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/des.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +319 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +331 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +457 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dtls1.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +18 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +424 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +372 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +118 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +205 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +109 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +465 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1050 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ex_data.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hkdf.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +186 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +100 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/is_boringssl.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +282 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +108 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +109 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +175 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +4259 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +236 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj_mac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/objects.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslconf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslv.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ossl_typ.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +435 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs12.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +215 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +269 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +49 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +102 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +111 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rc4.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +108 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +818 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/safestack.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +294 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +37 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +199 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/srtp.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +5198 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +333 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +542 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +191 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +632 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +90 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1207 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +681 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +831 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/bio_ssl.cc +0 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +837 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +268 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +273 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +232 -0
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +200 -0
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +353 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +675 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +703 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +1890 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1805 -0
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +3572 -0
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +724 -0
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +221 -0
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +458 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +432 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +856 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +306 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +1019 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +1718 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +585 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +397 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +3015 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +835 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +1333 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +230 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +277 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +394 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +1358 -0
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +365 -0
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +3870 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +689 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1017 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +513 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +1096 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +317 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +703 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +981 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +619 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3147 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1226 -0
- data/third_party/cares/cares/ares.h +12 -0
- data/third_party/cares/cares/ares_create_query.c +5 -1
- data/third_party/cares/cares/ares_data.c +74 -73
- data/third_party/cares/cares/ares_destroy.c +6 -1
- data/third_party/cares/cares/ares_gethostbyaddr.c +5 -5
- data/third_party/cares/cares/ares_gethostbyname.c +15 -4
- data/third_party/cares/cares/ares_getnameinfo.c +11 -0
- data/third_party/cares/cares/ares_init.c +274 -173
- data/third_party/cares/cares/ares_library_init.c +21 -3
- data/third_party/cares/cares/ares_options.c +6 -2
- data/third_party/cares/cares/ares_parse_naptr_reply.c +7 -6
- data/third_party/cares/cares/ares_parse_ptr_reply.c +4 -2
- data/third_party/cares/cares/ares_platform.c +7 -0
- data/third_party/cares/cares/ares_private.h +19 -11
- data/third_party/cares/cares/ares_process.c +27 -2
- data/third_party/cares/cares/ares_rules.h +1 -1
- data/third_party/cares/cares/ares_search.c +7 -0
- data/third_party/cares/cares/ares_send.c +6 -0
- data/third_party/cares/cares/ares_strsplit.c +174 -0
- data/third_party/cares/cares/ares_strsplit.h +43 -0
- data/third_party/cares/cares/ares_version.h +4 -4
- data/third_party/cares/cares/config-win32.h +1 -1
- data/third_party/cares/cares/inet_ntop.c +2 -3
- data/third_party/cares/config_darwin/ares_config.h +3 -0
- data/third_party/cares/config_freebsd/ares_config.h +3 -0
- data/third_party/cares/config_linux/ares_config.h +3 -0
- data/third_party/cares/config_openbsd/ares_config.h +3 -0
- data/third_party/upb/upb/decode.c +609 -0
- data/third_party/upb/upb/decode.h +21 -0
- data/third_party/upb/upb/encode.c +378 -0
- data/third_party/upb/upb/encode.h +21 -0
- data/third_party/upb/upb/generated_util.h +105 -0
- data/third_party/upb/upb/msg.c +111 -0
- data/third_party/upb/upb/msg.h +69 -0
- data/third_party/upb/upb/port.c +26 -0
- data/third_party/upb/upb/port_def.inc +150 -0
- data/third_party/upb/upb/port_undef.inc +21 -0
- data/third_party/upb/upb/table.c +913 -0
- data/third_party/upb/upb/table.int.h +507 -0
- data/third_party/upb/upb/upb.c +261 -0
- data/third_party/upb/upb/upb.h +364 -0
- metadata +968 -542
- data/src/boringssl/err_data.c +0 -1362
- data/src/core/ext/filters/client_channel/connector.cc +0 -41
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/duration.pb.c +0 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/duration.pb.h +0 -54
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/timestamp.pb.c +0 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/timestamp.pb.h +0 -54
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +0 -89
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +0 -164
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +0 -163
- data/src/core/ext/filters/client_channel/method_params.cc +0 -178
- data/src/core/ext/filters/client_channel/method_params.h +0 -78
- data/src/core/ext/filters/client_channel/proxy_mapper.cc +0 -48
- data/src/core/ext/filters/client_channel/subchannel_index.cc +0 -254
- data/src/core/ext/filters/client_channel/subchannel_index.h +0 -79
- data/src/core/ext/filters/client_channel/uri_parser.cc +0 -314
- data/src/core/ext/filters/client_channel/uri_parser.h +0 -50
- data/src/core/lib/channel/handshaker_factory.cc +0 -41
- data/src/core/lib/gpr/arena.cc +0 -145
- data/src/core/lib/gpr/host_port.cc +0 -98
- data/src/core/lib/gpr/host_port.h +0 -43
- data/src/core/lib/gpr/mpscq.cc +0 -117
- data/src/core/lib/gpr/mpscq.h +0 -86
- data/src/core/lib/gprpp/abstract.h +0 -37
- data/src/core/lib/gprpp/atomic_with_atm.h +0 -57
- data/src/core/lib/gprpp/atomic_with_std.h +0 -35
- data/src/core/lib/gprpp/inlined_vector.h +0 -186
- data/src/core/lib/gprpp/mutex_lock.h +0 -42
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +0 -1743
- data/src/core/lib/iomgr/ev_epollsig_linux.h +0 -35
- data/src/core/lib/iomgr/network_status_tracker.cc +0 -36
- data/src/core/lib/iomgr/network_status_tracker.h +0 -32
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +0 -107
- data/src/core/lib/iomgr/wakeup_fd_cv.h +0 -69
- data/src/core/lib/json/json.cc +0 -97
- data/src/core/lib/json/json_common.h +0 -34
- data/src/core/lib/json/json_reader.h +0 -146
- data/src/core/lib/json/json_string.cc +0 -367
- data/src/core/lib/json/json_writer.h +0 -84
- data/src/core/lib/security/security_connector/alts_security_connector.cc +0 -288
- data/src/core/lib/security/security_connector/alts_security_connector.h +0 -69
- data/src/core/lib/security/security_connector/local_security_connector.cc +0 -245
- data/src/core/lib/security/security_connector/local_security_connector.h +0 -58
- data/src/core/lib/transport/service_config.cc +0 -106
- data/src/core/lib/transport/service_config.h +0 -249
- data/src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc +0 -520
- data/src/core/tsi/alts/handshaker/alts_handshaker_service_api.h +0 -323
- data/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc +0 -143
- data/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h +0 -149
- data/src/core/tsi/alts/handshaker/alts_tsi_event.cc +0 -73
- data/src/core/tsi/alts/handshaker/alts_tsi_event.h +0 -93
- data/src/core/tsi/alts/handshaker/altscontext.pb.c +0 -47
- data/src/core/tsi/alts/handshaker/altscontext.pb.h +0 -63
- data/src/core/tsi/alts/handshaker/handshaker.pb.c +0 -122
- data/src/core/tsi/alts/handshaker/handshaker.pb.h +0 -254
- data/src/core/tsi/alts/handshaker/transport_security_common.pb.c +0 -49
- data/src/core/tsi/alts/handshaker/transport_security_common.pb.h +0 -78
- data/src/core/tsi/alts_transport_security.cc +0 -63
- data/src/core/tsi/alts_transport_security.h +0 -47
- data/src/core/tsi/grpc_shadow_boringssl.h +0 -3006
- data/third_party/boringssl/crypto/asn1/a_bool.c +0 -110
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +0 -297
- data/third_party/boringssl/crypto/asn1/a_dup.c +0 -111
- data/third_party/boringssl/crypto/asn1/a_enum.c +0 -195
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +0 -150
- data/third_party/boringssl/crypto/asn1/a_int.c +0 -479
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +0 -411
- data/third_party/boringssl/crypto/asn1/a_object.c +0 -275
- data/third_party/boringssl/crypto/asn1/a_strnid.c +0 -312
- data/third_party/boringssl/crypto/asn1/a_time.c +0 -213
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +0 -442
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -662
- data/third_party/boringssl/crypto/base64/base64.c +0 -466
- data/third_party/boringssl/crypto/bio/bio.c +0 -636
- data/third_party/boringssl/crypto/bio/connect.c +0 -542
- data/third_party/boringssl/crypto/bio/fd.c +0 -276
- data/third_party/boringssl/crypto/bio/file.c +0 -315
- data/third_party/boringssl/crypto/bio/pair.c +0 -489
- data/third_party/boringssl/crypto/bio/socket.c +0 -202
- data/third_party/boringssl/crypto/bio/socket_helper.c +0 -114
- data/third_party/boringssl/crypto/bn_extra/convert.c +0 -466
- data/third_party/boringssl/crypto/buf/buf.c +0 -231
- data/third_party/boringssl/crypto/bytestring/ber.c +0 -261
- data/third_party/boringssl/crypto/bytestring/cbb.c +0 -668
- data/third_party/boringssl/crypto/bytestring/cbs.c +0 -618
- data/third_party/boringssl/crypto/bytestring/internal.h +0 -75
- data/third_party/boringssl/crypto/chacha/chacha.c +0 -167
- data/third_party/boringssl/crypto/cipher_extra/cipher_extra.c +0 -114
- data/third_party/boringssl/crypto/cipher_extra/derive_key.c +0 -152
- data/third_party/boringssl/crypto/cipher_extra/e_aesccm.c +0 -203
- data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +0 -281
- data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +0 -867
- data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +0 -326
- data/third_party/boringssl/crypto/cipher_extra/e_ssl3.c +0 -460
- data/third_party/boringssl/crypto/cipher_extra/e_tls.c +0 -680
- data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +0 -482
- data/third_party/boringssl/crypto/cmac/cmac.c +0 -241
- data/third_party/boringssl/crypto/conf/conf.c +0 -803
- data/third_party/boringssl/crypto/cpu-arm-linux.c +0 -363
- data/third_party/boringssl/crypto/cpu-intel.c +0 -288
- data/third_party/boringssl/crypto/crypto.c +0 -198
- data/third_party/boringssl/crypto/curve25519/spake25519.c +0 -539
- data/third_party/boringssl/crypto/dh/check.c +0 -217
- data/third_party/boringssl/crypto/dh/dh.c +0 -519
- data/third_party/boringssl/crypto/dsa/dsa.c +0 -946
- data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +0 -562
- data/third_party/boringssl/crypto/ecdh/ecdh.c +0 -162
- data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +0 -275
- data/third_party/boringssl/crypto/engine/engine.c +0 -98
- data/third_party/boringssl/crypto/err/err.c +0 -847
- data/third_party/boringssl/crypto/err/internal.h +0 -58
- data/third_party/boringssl/crypto/evp/evp.c +0 -362
- data/third_party/boringssl/crypto/evp/evp_asn1.c +0 -337
- data/third_party/boringssl/crypto/evp/evp_ctx.c +0 -446
- data/third_party/boringssl/crypto/evp/internal.h +0 -252
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +0 -268
- data/third_party/boringssl/crypto/evp/p_ec.c +0 -239
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +0 -256
- data/third_party/boringssl/crypto/evp/p_ed25519.c +0 -71
- data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +0 -190
- data/third_party/boringssl/crypto/evp/p_rsa.c +0 -634
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +0 -189
- data/third_party/boringssl/crypto/evp/scrypt.c +0 -209
- data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +0 -1100
- data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +0 -100
- data/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.c +0 -138
- data/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.c +0 -112
- data/third_party/boringssl/crypto/fipsmodule/bcm.c +0 -148
- data/third_party/boringssl/crypto/fipsmodule/bn/bn.c +0 -428
- data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +0 -200
- data/third_party/boringssl/crypto/fipsmodule/bn/ctx.c +0 -303
- data/third_party/boringssl/crypto/fipsmodule/bn/div.c +0 -895
- data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +0 -1356
- data/third_party/boringssl/crypto/fipsmodule/bn/gcd.c +0 -683
- data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +0 -573
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +0 -526
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.c +0 -185
- data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +0 -876
- data/third_party/boringssl/crypto/fipsmodule/bn/prime.c +0 -1154
- data/third_party/boringssl/crypto/fipsmodule/bn/random.c +0 -351
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.c +0 -231
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +0 -33
- data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +0 -364
- data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +0 -615
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.c +0 -1437
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_des.c +0 -233
- data/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +0 -129
- data/third_party/boringssl/crypto/fipsmodule/delocate.h +0 -88
- data/third_party/boringssl/crypto/fipsmodule/digest/digest.c +0 -256
- data/third_party/boringssl/crypto/fipsmodule/digest/digests.c +0 -280
- data/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +0 -268
- data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +0 -974
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_key.c +0 -453
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +0 -270
- data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +0 -337
- data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +0 -373
- data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +0 -1104
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +0 -9503
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +0 -447
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.h +0 -117
- data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +0 -1046
- data/third_party/boringssl/crypto/fipsmodule/ec/util.c +0 -104
- data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +0 -354
- data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +0 -458
- data/third_party/boringssl/crypto/fipsmodule/is_fips.c +0 -27
- data/third_party/boringssl/crypto/fipsmodule/md4/md4.c +0 -254
- data/third_party/boringssl/crypto/fipsmodule/md5/md5.c +0 -298
- data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +0 -211
- data/third_party/boringssl/crypto/fipsmodule/modes/ccm.c +0 -256
- data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +0 -234
- data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +0 -220
- data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +0 -1063
- data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +0 -388
- data/third_party/boringssl/crypto/fipsmodule/modes/ofb.c +0 -95
- data/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.c +0 -202
- data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +0 -92
- data/third_party/boringssl/crypto/fipsmodule/rand/rand.c +0 -358
- data/third_party/boringssl/crypto/fipsmodule/rand/urandom.c +0 -302
- data/third_party/boringssl/crypto/fipsmodule/rsa/blinding.c +0 -239
- data/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +0 -126
- data/third_party/boringssl/crypto/fipsmodule/rsa/padding.c +0 -692
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +0 -875
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +0 -1218
- data/third_party/boringssl/crypto/fipsmodule/self_check/self_check.c +0 -581
- data/third_party/boringssl/crypto/fipsmodule/sha/sha1.c +0 -375
- data/third_party/boringssl/crypto/fipsmodule/sha/sha256.c +0 -337
- data/third_party/boringssl/crypto/fipsmodule/sha/sha512.c +0 -608
- data/third_party/boringssl/crypto/internal.h +0 -739
- data/third_party/boringssl/crypto/lhash/lhash.c +0 -336
- data/third_party/boringssl/crypto/mem.c +0 -235
- data/third_party/boringssl/crypto/obj/obj.c +0 -554
- data/third_party/boringssl/crypto/obj/obj_dat.h +0 -6244
- data/third_party/boringssl/crypto/pem/pem_all.c +0 -262
- data/third_party/boringssl/crypto/pem/pem_info.c +0 -379
- data/third_party/boringssl/crypto/pem/pem_lib.c +0 -776
- data/third_party/boringssl/crypto/pem/pem_oth.c +0 -88
- data/third_party/boringssl/crypto/pem/pem_pk8.c +0 -258
- data/third_party/boringssl/crypto/pem/pem_pkey.c +0 -227
- data/third_party/boringssl/crypto/pkcs7/pkcs7.c +0 -166
- data/third_party/boringssl/crypto/pkcs7/pkcs7_x509.c +0 -233
- data/third_party/boringssl/crypto/pkcs8/internal.h +0 -120
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +0 -307
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +0 -513
- data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +0 -789
- data/third_party/boringssl/crypto/poly1305/poly1305.c +0 -318
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +0 -304
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +0 -839
- data/third_party/boringssl/crypto/pool/internal.h +0 -45
- data/third_party/boringssl/crypto/pool/pool.c +0 -200
- data/third_party/boringssl/crypto/rand_extra/deterministic.c +0 -48
- data/third_party/boringssl/crypto/rand_extra/fuchsia.c +0 -43
- data/third_party/boringssl/crypto/rand_extra/windows.c +0 -53
- data/third_party/boringssl/crypto/refcount_lock.c +0 -53
- data/third_party/boringssl/crypto/stack/stack.c +0 -380
- data/third_party/boringssl/crypto/thread_none.c +0 -59
- data/third_party/boringssl/crypto/thread_pthread.c +0 -206
- data/third_party/boringssl/crypto/thread_win.c +0 -237
- data/third_party/boringssl/crypto/x509/a_strex.c +0 -633
- data/third_party/boringssl/crypto/x509/a_verify.c +0 -115
- data/third_party/boringssl/crypto/x509/asn1_gen.c +0 -841
- data/third_party/boringssl/crypto/x509/by_dir.c +0 -451
- data/third_party/boringssl/crypto/x509/by_file.c +0 -274
- data/third_party/boringssl/crypto/x509/t_crl.c +0 -128
- data/third_party/boringssl/crypto/x509/t_req.c +0 -246
- data/third_party/boringssl/crypto/x509/t_x509.c +0 -547
- data/third_party/boringssl/crypto/x509/x509_cmp.c +0 -477
- data/third_party/boringssl/crypto/x509/x509_def.c +0 -103
- data/third_party/boringssl/crypto/x509/x509_lu.c +0 -725
- data/third_party/boringssl/crypto/x509/x509_obj.c +0 -198
- data/third_party/boringssl/crypto/x509/x509_r2x.c +0 -117
- data/third_party/boringssl/crypto/x509/x509_req.c +0 -322
- data/third_party/boringssl/crypto/x509/x509_set.c +0 -164
- data/third_party/boringssl/crypto/x509/x509_trs.c +0 -326
- data/third_party/boringssl/crypto/x509/x509_txt.c +0 -205
- data/third_party/boringssl/crypto/x509/x509_vfy.c +0 -2476
- data/third_party/boringssl/crypto/x509/x509_vpm.c +0 -670
- data/third_party/boringssl/crypto/x509/x509cset.c +0 -170
- data/third_party/boringssl/crypto/x509/x509name.c +0 -389
- data/third_party/boringssl/crypto/x509/x_all.c +0 -501
- data/third_party/boringssl/crypto/x509/x_x509.c +0 -328
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +0 -143
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +0 -284
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +0 -188
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +0 -840
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +0 -204
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +0 -623
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +0 -462
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +0 -502
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +0 -100
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +0 -251
- data/third_party/boringssl/crypto/x509v3/v3_info.c +0 -219
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +0 -370
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -287
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +0 -866
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +0 -152
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +0 -1352
- data/third_party/boringssl/include/openssl/aead.h +0 -433
- data/third_party/boringssl/include/openssl/aes.h +0 -170
- data/third_party/boringssl/include/openssl/asn1.h +0 -981
- data/third_party/boringssl/include/openssl/base.h +0 -457
- data/third_party/boringssl/include/openssl/base64.h +0 -187
- data/third_party/boringssl/include/openssl/bio.h +0 -902
- data/third_party/boringssl/include/openssl/blowfish.h +0 -93
- data/third_party/boringssl/include/openssl/bn.h +0 -1019
- data/third_party/boringssl/include/openssl/buf.h +0 -137
- data/third_party/boringssl/include/openssl/bytestring.h +0 -505
- data/third_party/boringssl/include/openssl/cast.h +0 -96
- data/third_party/boringssl/include/openssl/cipher.h +0 -608
- data/third_party/boringssl/include/openssl/cmac.h +0 -87
- data/third_party/boringssl/include/openssl/conf.h +0 -183
- data/third_party/boringssl/include/openssl/cpu.h +0 -196
- data/third_party/boringssl/include/openssl/crypto.h +0 -122
- data/third_party/boringssl/include/openssl/curve25519.h +0 -201
- data/third_party/boringssl/include/openssl/dh.h +0 -298
- data/third_party/boringssl/include/openssl/digest.h +0 -316
- data/third_party/boringssl/include/openssl/dsa.h +0 -435
- data/third_party/boringssl/include/openssl/ec.h +0 -413
- data/third_party/boringssl/include/openssl/ec_key.h +0 -342
- data/third_party/boringssl/include/openssl/ecdh.h +0 -101
- data/third_party/boringssl/include/openssl/ecdsa.h +0 -199
- data/third_party/boringssl/include/openssl/engine.h +0 -109
- data/third_party/boringssl/include/openssl/err.h +0 -458
- data/third_party/boringssl/include/openssl/evp.h +0 -873
- data/third_party/boringssl/include/openssl/hmac.h +0 -186
- data/third_party/boringssl/include/openssl/lhash.h +0 -174
- data/third_party/boringssl/include/openssl/lhash_macros.h +0 -174
- data/third_party/boringssl/include/openssl/md4.h +0 -106
- data/third_party/boringssl/include/openssl/md5.h +0 -107
- data/third_party/boringssl/include/openssl/mem.h +0 -156
- data/third_party/boringssl/include/openssl/nid.h +0 -4242
- data/third_party/boringssl/include/openssl/obj.h +0 -233
- data/third_party/boringssl/include/openssl/pem.h +0 -397
- data/third_party/boringssl/include/openssl/pkcs7.h +0 -82
- data/third_party/boringssl/include/openssl/pkcs8.h +0 -230
- data/third_party/boringssl/include/openssl/poly1305.h +0 -51
- data/third_party/boringssl/include/openssl/pool.h +0 -91
- data/third_party/boringssl/include/openssl/rand.h +0 -125
- data/third_party/boringssl/include/openssl/ripemd.h +0 -107
- data/third_party/boringssl/include/openssl/rsa.h +0 -756
- data/third_party/boringssl/include/openssl/sha.h +0 -256
- data/third_party/boringssl/include/openssl/span.h +0 -191
- data/third_party/boringssl/include/openssl/ssl.h +0 -4740
- data/third_party/boringssl/include/openssl/ssl3.h +0 -332
- data/third_party/boringssl/include/openssl/stack.h +0 -485
- data/third_party/boringssl/include/openssl/thread.h +0 -191
- data/third_party/boringssl/include/openssl/tls1.h +0 -618
- data/third_party/boringssl/include/openssl/type_check.h +0 -91
- data/third_party/boringssl/include/openssl/x509.h +0 -1180
- data/third_party/boringssl/include/openssl/x509_vfy.h +0 -614
- data/third_party/boringssl/include/openssl/x509v3.h +0 -827
- data/third_party/boringssl/ssl/custom_extensions.cc +0 -265
- data/third_party/boringssl/ssl/d1_both.cc +0 -851
- data/third_party/boringssl/ssl/d1_lib.cc +0 -267
- data/third_party/boringssl/ssl/d1_pkt.cc +0 -274
- data/third_party/boringssl/ssl/d1_srtp.cc +0 -232
- data/third_party/boringssl/ssl/dtls_method.cc +0 -193
- data/third_party/boringssl/ssl/dtls_record.cc +0 -353
- data/third_party/boringssl/ssl/handoff.cc +0 -285
- data/third_party/boringssl/ssl/handshake.cc +0 -630
- data/third_party/boringssl/ssl/handshake_client.cc +0 -1842
- data/third_party/boringssl/ssl/handshake_server.cc +0 -1674
- data/third_party/boringssl/ssl/internal.h +0 -3064
- data/third_party/boringssl/ssl/s3_both.cc +0 -585
- data/third_party/boringssl/ssl/s3_lib.cc +0 -226
- data/third_party/boringssl/ssl/s3_pkt.cc +0 -425
- data/third_party/boringssl/ssl/ssl_aead_ctx.cc +0 -412
- data/third_party/boringssl/ssl/ssl_asn1.cc +0 -844
- data/third_party/boringssl/ssl/ssl_buffer.cc +0 -286
- data/third_party/boringssl/ssl/ssl_cert.cc +0 -913
- data/third_party/boringssl/ssl/ssl_cipher.cc +0 -1781
- data/third_party/boringssl/ssl/ssl_file.cc +0 -583
- data/third_party/boringssl/ssl/ssl_key_share.cc +0 -252
- data/third_party/boringssl/ssl/ssl_lib.cc +0 -2719
- data/third_party/boringssl/ssl/ssl_privkey.cc +0 -494
- data/third_party/boringssl/ssl/ssl_session.cc +0 -1221
- data/third_party/boringssl/ssl/ssl_stat.cc +0 -224
- data/third_party/boringssl/ssl/ssl_transcript.cc +0 -398
- data/third_party/boringssl/ssl/ssl_versions.cc +0 -399
- data/third_party/boringssl/ssl/ssl_x509.cc +0 -1297
- data/third_party/boringssl/ssl/t1_enc.cc +0 -452
- data/third_party/boringssl/ssl/t1_lib.cc +0 -3783
- data/third_party/boringssl/ssl/tls13_both.cc +0 -559
- data/third_party/boringssl/ssl/tls13_client.cc +0 -891
- data/third_party/boringssl/ssl/tls13_enc.cc +0 -493
- data/third_party/boringssl/ssl/tls13_server.cc +0 -1022
- data/third_party/boringssl/ssl/tls_method.cc +0 -274
- data/third_party/boringssl/ssl/tls_record.cc +0 -703
- data/third_party/boringssl/third_party/fiat/curve25519.c +0 -3230
- data/third_party/boringssl/third_party/fiat/curve25519_tables.h +0 -7880
- data/third_party/boringssl/third_party/fiat/internal.h +0 -154
- data/third_party/boringssl/third_party/fiat/p256.c +0 -1824
- data/third_party/nanopb/pb.h +0 -579
- data/third_party/nanopb/pb_common.c +0 -97
- data/third_party/nanopb/pb_common.h +0 -42
- data/third_party/nanopb/pb_decode.c +0 -1347
- data/third_party/nanopb/pb_decode.h +0 -149
- data/third_party/nanopb/pb_encode.c +0 -696
- data/third_party/nanopb/pb_encode.h +0 -154
@@ -21,15 +21,24 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <map>
|
25
|
+
|
24
26
|
#include "src/core/lib/channel/channel_stack.h"
|
25
27
|
#include "src/core/lib/channel/channel_stack_builder.h"
|
26
28
|
#include "src/core/lib/channel/channelz.h"
|
29
|
+
#include "src/core/lib/gprpp/manual_constructor.h"
|
27
30
|
#include "src/core/lib/surface/channel_stack_type.h"
|
31
|
+
#include "src/core/lib/transport/metadata.h"
|
28
32
|
|
29
33
|
grpc_channel* grpc_channel_create(const char* target,
|
30
34
|
const grpc_channel_args* args,
|
31
35
|
grpc_channel_stack_type channel_stack_type,
|
32
|
-
grpc_transport* optional_transport
|
36
|
+
grpc_transport* optional_transport,
|
37
|
+
grpc_resource_user* resource_user = nullptr);
|
38
|
+
|
39
|
+
/** The same as grpc_channel_destroy, but doesn't create an ExecCtx, and so
|
40
|
+
* is safe to use from within core. */
|
41
|
+
void grpc_channel_destroy_internal(grpc_channel* channel);
|
33
42
|
|
34
43
|
grpc_channel* grpc_channel_create_with_builder(
|
35
44
|
grpc_channel_stack_builder* builder,
|
@@ -45,8 +54,8 @@ grpc_channel* grpc_channel_create_with_builder(
|
|
45
54
|
value of \a propagation_mask (see propagation_bits.h for possible values) */
|
46
55
|
grpc_call* grpc_channel_create_pollset_set_call(
|
47
56
|
grpc_channel* channel, grpc_call* parent_call, uint32_t propagation_mask,
|
48
|
-
grpc_pollset_set* pollset_set,
|
49
|
-
grpc_millis deadline, void* reserved);
|
57
|
+
grpc_pollset_set* pollset_set, const grpc_slice& method,
|
58
|
+
const grpc_slice* host, grpc_millis deadline, void* reserved);
|
50
59
|
|
51
60
|
/** Get a (borrowed) pointer to this channels underlying channel stack */
|
52
61
|
grpc_channel_stack* grpc_channel_get_channel_stack(grpc_channel* channel);
|
@@ -54,26 +63,88 @@ grpc_channel_stack* grpc_channel_get_channel_stack(grpc_channel* channel);
|
|
54
63
|
grpc_core::channelz::ChannelNode* grpc_channel_get_channelz_node(
|
55
64
|
grpc_channel* channel);
|
56
65
|
|
57
|
-
/** Get a grpc_mdelem of grpc-status: X where X is the numeric value of
|
58
|
-
status_code.
|
59
|
-
|
60
|
-
The returned elem is owned by the caller. */
|
61
|
-
grpc_mdelem grpc_channel_get_reffed_status_elem(grpc_channel* channel,
|
62
|
-
int status_code);
|
63
|
-
|
64
66
|
size_t grpc_channel_get_call_size_estimate(grpc_channel* channel);
|
65
67
|
void grpc_channel_update_call_size_estimate(grpc_channel* channel, size_t size);
|
66
68
|
|
69
|
+
namespace grpc_core {
|
70
|
+
|
71
|
+
struct RegisteredCall {
|
72
|
+
grpc_mdelem path;
|
73
|
+
grpc_mdelem authority;
|
74
|
+
|
75
|
+
explicit RegisteredCall(const char* method, const char* host);
|
76
|
+
// TODO(vjpai): delete copy constructor once all supported compilers allow
|
77
|
+
// std::map value_type to be MoveConstructible.
|
78
|
+
RegisteredCall(const RegisteredCall& other);
|
79
|
+
RegisteredCall(RegisteredCall&& other) noexcept;
|
80
|
+
|
81
|
+
~RegisteredCall();
|
82
|
+
};
|
83
|
+
|
84
|
+
struct CallRegistrationTable {
|
85
|
+
grpc_core::Mutex mu;
|
86
|
+
std::map<std::pair<const char*, const char*>, RegisteredCall>
|
87
|
+
map /* GUARDED_BY(mu) */;
|
88
|
+
int method_registration_attempts /* GUARDED_BY(mu) */ = 0;
|
89
|
+
};
|
90
|
+
|
91
|
+
} // namespace grpc_core
|
92
|
+
|
93
|
+
struct grpc_channel {
|
94
|
+
int is_client;
|
95
|
+
grpc_compression_options compression_options;
|
96
|
+
|
97
|
+
gpr_atm call_size_estimate;
|
98
|
+
grpc_resource_user* resource_user;
|
99
|
+
|
100
|
+
// TODO(vjpai): Once the grpc_channel is allocated via new rather than malloc,
|
101
|
+
// expand the members of the CallRegistrationTable directly into
|
102
|
+
// the grpc_channel. For now it is kept separate so that all the
|
103
|
+
// manual constructing can be done with a single call rather than
|
104
|
+
// a separate manual construction for each field.
|
105
|
+
grpc_core::ManualConstructor<grpc_core::CallRegistrationTable>
|
106
|
+
registration_table;
|
107
|
+
grpc_core::RefCountedPtr<grpc_core::channelz::ChannelNode> channelz_node;
|
108
|
+
|
109
|
+
char* target;
|
110
|
+
};
|
111
|
+
#define CHANNEL_STACK_FROM_CHANNEL(c) ((grpc_channel_stack*)((c) + 1))
|
112
|
+
|
113
|
+
inline grpc_compression_options grpc_channel_compression_options(
|
114
|
+
const grpc_channel* channel) {
|
115
|
+
return channel->compression_options;
|
116
|
+
}
|
117
|
+
|
118
|
+
inline grpc_channel_stack* grpc_channel_get_channel_stack(
|
119
|
+
grpc_channel* channel) {
|
120
|
+
return CHANNEL_STACK_FROM_CHANNEL(channel);
|
121
|
+
}
|
122
|
+
|
123
|
+
inline grpc_core::channelz::ChannelNode* grpc_channel_get_channelz_node(
|
124
|
+
grpc_channel* channel) {
|
125
|
+
return channel->channelz_node.get();
|
126
|
+
}
|
127
|
+
|
67
128
|
#ifndef NDEBUG
|
68
|
-
void grpc_channel_internal_ref(grpc_channel* channel,
|
69
|
-
|
129
|
+
inline void grpc_channel_internal_ref(grpc_channel* channel,
|
130
|
+
const char* reason) {
|
131
|
+
GRPC_CHANNEL_STACK_REF(CHANNEL_STACK_FROM_CHANNEL(channel), reason);
|
132
|
+
}
|
133
|
+
inline void grpc_channel_internal_unref(grpc_channel* channel,
|
134
|
+
const char* reason) {
|
135
|
+
GRPC_CHANNEL_STACK_UNREF(CHANNEL_STACK_FROM_CHANNEL(channel), reason);
|
136
|
+
}
|
70
137
|
#define GRPC_CHANNEL_INTERNAL_REF(channel, reason) \
|
71
138
|
grpc_channel_internal_ref(channel, reason)
|
72
139
|
#define GRPC_CHANNEL_INTERNAL_UNREF(channel, reason) \
|
73
140
|
grpc_channel_internal_unref(channel, reason)
|
74
141
|
#else
|
75
|
-
void grpc_channel_internal_ref(grpc_channel* channel)
|
76
|
-
|
142
|
+
inline void grpc_channel_internal_ref(grpc_channel* channel) {
|
143
|
+
GRPC_CHANNEL_STACK_REF(CHANNEL_STACK_FROM_CHANNEL(channel), "unused");
|
144
|
+
}
|
145
|
+
inline void grpc_channel_internal_unref(grpc_channel* channel) {
|
146
|
+
GRPC_CHANNEL_STACK_UNREF(CHANNEL_STACK_FROM_CHANNEL(channel), "unused");
|
147
|
+
}
|
77
148
|
#define GRPC_CHANNEL_INTERNAL_REF(channel, reason) \
|
78
149
|
grpc_channel_internal_ref(channel)
|
79
150
|
#define GRPC_CHANNEL_INTERNAL_UNREF(channel, reason) \
|
@@ -45,6 +45,11 @@ void grpc_channel_init_init(void);
|
|
45
45
|
/// registration order (in the case of a tie).
|
46
46
|
/// Stages are registered against one of the pre-determined channel stack
|
47
47
|
/// types.
|
48
|
+
/// If the channel stack type is GRPC_CLIENT_SUBCHANNEL, the caller should
|
49
|
+
/// ensure that subchannels with different filter lists will always have
|
50
|
+
/// different channel args. This requires setting a channel arg in case the
|
51
|
+
/// registration function relies on some condition other than channel args to
|
52
|
+
/// decide whether to add a filter or not.
|
48
53
|
void grpc_channel_init_register_stage(grpc_channel_stack_type type,
|
49
54
|
int priority,
|
50
55
|
grpc_channel_init_stage stage_fn,
|
@@ -28,14 +28,13 @@
|
|
28
28
|
#include "src/core/lib/surface/api_trace.h"
|
29
29
|
#include "src/core/lib/surface/completion_queue.h"
|
30
30
|
|
31
|
-
|
31
|
+
struct ping_result {
|
32
32
|
grpc_closure closure;
|
33
33
|
void* tag;
|
34
34
|
grpc_completion_queue* cq;
|
35
35
|
grpc_cq_completion completion_storage;
|
36
|
-
}
|
37
|
-
|
38
|
-
static void ping_destroy(void* arg, grpc_cq_completion* storage) {
|
36
|
+
};
|
37
|
+
static void ping_destroy(void* arg, grpc_cq_completion* /*storage*/) {
|
39
38
|
gpr_free(arg);
|
40
39
|
}
|
41
40
|
|
@@ -23,6 +23,11 @@
|
|
23
23
|
#include <stdio.h>
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
+
#include <vector>
|
27
|
+
|
28
|
+
#include "absl/strings/str_format.h"
|
29
|
+
#include "absl/strings/str_join.h"
|
30
|
+
|
26
31
|
#include <grpc/support/alloc.h>
|
27
32
|
#include <grpc/support/atm.h>
|
28
33
|
#include <grpc/support/log.h>
|
@@ -33,6 +38,8 @@
|
|
33
38
|
#include "src/core/lib/gpr/spinlock.h"
|
34
39
|
#include "src/core/lib/gpr/string.h"
|
35
40
|
#include "src/core/lib/gpr/tls.h"
|
41
|
+
#include "src/core/lib/gprpp/atomic.h"
|
42
|
+
#include "src/core/lib/iomgr/executor.h"
|
36
43
|
#include "src/core/lib/iomgr/pollset.h"
|
37
44
|
#include "src/core/lib/iomgr/timer.h"
|
38
45
|
#include "src/core/lib/profiling/timers.h"
|
@@ -44,6 +51,8 @@ grpc_core::TraceFlag grpc_trace_operation_failures(false, "op_failure");
|
|
44
51
|
grpc_core::DebugOnlyTraceFlag grpc_trace_pending_tags(false, "pending_tags");
|
45
52
|
grpc_core::DebugOnlyTraceFlag grpc_trace_cq_refcount(false, "cq_refcount");
|
46
53
|
|
54
|
+
namespace {
|
55
|
+
|
47
56
|
// Specifies a cq thread local cache.
|
48
57
|
// The first event that occurs on a thread
|
49
58
|
// with a cq cache will go into that cache, and
|
@@ -52,12 +61,11 @@ grpc_core::DebugOnlyTraceFlag grpc_trace_cq_refcount(false, "cq_refcount");
|
|
52
61
|
GPR_TLS_DECL(g_cached_event);
|
53
62
|
GPR_TLS_DECL(g_cached_cq);
|
54
63
|
|
55
|
-
|
64
|
+
struct plucker {
|
56
65
|
grpc_pollset_worker** worker;
|
57
66
|
void* tag;
|
58
|
-
}
|
59
|
-
|
60
|
-
typedef struct {
|
67
|
+
};
|
68
|
+
struct cq_poller_vtable {
|
61
69
|
bool can_get_pollset;
|
62
70
|
bool can_listen;
|
63
71
|
size_t (*size)(void);
|
@@ -68,8 +76,7 @@ typedef struct {
|
|
68
76
|
grpc_millis deadline);
|
69
77
|
void (*shutdown)(grpc_pollset* pollset, grpc_closure* closure);
|
70
78
|
void (*destroy)(grpc_pollset* pollset);
|
71
|
-
}
|
72
|
-
|
79
|
+
};
|
73
80
|
typedef struct non_polling_worker {
|
74
81
|
gpr_cv cv;
|
75
82
|
bool kicked;
|
@@ -77,32 +84,34 @@ typedef struct non_polling_worker {
|
|
77
84
|
struct non_polling_worker* prev;
|
78
85
|
} non_polling_worker;
|
79
86
|
|
80
|
-
|
87
|
+
struct non_polling_poller {
|
81
88
|
gpr_mu mu;
|
89
|
+
bool kicked_without_poller;
|
82
90
|
non_polling_worker* root;
|
83
91
|
grpc_closure* shutdown;
|
84
|
-
}
|
85
|
-
|
86
|
-
static size_t non_polling_poller_size(void) {
|
87
|
-
return sizeof(non_polling_poller);
|
88
|
-
}
|
92
|
+
};
|
93
|
+
size_t non_polling_poller_size(void) { return sizeof(non_polling_poller); }
|
89
94
|
|
90
|
-
|
95
|
+
void non_polling_poller_init(grpc_pollset* pollset, gpr_mu** mu) {
|
91
96
|
non_polling_poller* npp = reinterpret_cast<non_polling_poller*>(pollset);
|
92
97
|
gpr_mu_init(&npp->mu);
|
93
98
|
*mu = &npp->mu;
|
94
99
|
}
|
95
100
|
|
96
|
-
|
101
|
+
void non_polling_poller_destroy(grpc_pollset* pollset) {
|
97
102
|
non_polling_poller* npp = reinterpret_cast<non_polling_poller*>(pollset);
|
98
103
|
gpr_mu_destroy(&npp->mu);
|
99
104
|
}
|
100
105
|
|
101
|
-
|
102
|
-
|
103
|
-
|
106
|
+
grpc_error* non_polling_poller_work(grpc_pollset* pollset,
|
107
|
+
grpc_pollset_worker** worker,
|
108
|
+
grpc_millis deadline) {
|
104
109
|
non_polling_poller* npp = reinterpret_cast<non_polling_poller*>(pollset);
|
105
110
|
if (npp->shutdown) return GRPC_ERROR_NONE;
|
111
|
+
if (npp->kicked_without_poller) {
|
112
|
+
npp->kicked_without_poller = false;
|
113
|
+
return GRPC_ERROR_NONE;
|
114
|
+
}
|
106
115
|
non_polling_worker w;
|
107
116
|
gpr_cv_init(&w.cv);
|
108
117
|
if (worker != nullptr) *worker = reinterpret_cast<grpc_pollset_worker*>(&w);
|
@@ -124,7 +133,7 @@ static grpc_error* non_polling_poller_work(grpc_pollset* pollset,
|
|
124
133
|
npp->root = w.next;
|
125
134
|
if (&w == npp->root) {
|
126
135
|
if (npp->shutdown) {
|
127
|
-
|
136
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, npp->shutdown, GRPC_ERROR_NONE);
|
128
137
|
}
|
129
138
|
npp->root = nullptr;
|
130
139
|
}
|
@@ -136,8 +145,8 @@ static grpc_error* non_polling_poller_work(grpc_pollset* pollset,
|
|
136
145
|
return GRPC_ERROR_NONE;
|
137
146
|
}
|
138
147
|
|
139
|
-
|
140
|
-
|
148
|
+
grpc_error* non_polling_poller_kick(grpc_pollset* pollset,
|
149
|
+
grpc_pollset_worker* specific_worker) {
|
141
150
|
non_polling_poller* p = reinterpret_cast<non_polling_poller*>(pollset);
|
142
151
|
if (specific_worker == nullptr)
|
143
152
|
specific_worker = reinterpret_cast<grpc_pollset_worker*>(p->root);
|
@@ -148,17 +157,18 @@ static grpc_error* non_polling_poller_kick(
|
|
148
157
|
w->kicked = true;
|
149
158
|
gpr_cv_signal(&w->cv);
|
150
159
|
}
|
160
|
+
} else {
|
161
|
+
p->kicked_without_poller = true;
|
151
162
|
}
|
152
163
|
return GRPC_ERROR_NONE;
|
153
164
|
}
|
154
165
|
|
155
|
-
|
156
|
-
grpc_closure* closure) {
|
166
|
+
void non_polling_poller_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
|
157
167
|
non_polling_poller* p = reinterpret_cast<non_polling_poller*>(pollset);
|
158
168
|
GPR_ASSERT(closure != nullptr);
|
159
169
|
p->shutdown = closure;
|
160
170
|
if (p->root == nullptr) {
|
161
|
-
|
171
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, GRPC_ERROR_NONE);
|
162
172
|
} else {
|
163
173
|
non_polling_worker* w = p->root;
|
164
174
|
do {
|
@@ -168,7 +178,7 @@ static void non_polling_poller_shutdown(grpc_pollset* pollset,
|
|
168
178
|
}
|
169
179
|
}
|
170
180
|
|
171
|
-
|
181
|
+
const cq_poller_vtable g_poller_vtable_by_poller_type[] = {
|
172
182
|
/* GRPC_CQ_DEFAULT_POLLING */
|
173
183
|
{true, true, grpc_pollset_size, grpc_pollset_init, grpc_pollset_kick,
|
174
184
|
grpc_pollset_work, grpc_pollset_shutdown, grpc_pollset_destroy},
|
@@ -181,99 +191,159 @@ static const cq_poller_vtable g_poller_vtable_by_poller_type[] = {
|
|
181
191
|
non_polling_poller_shutdown, non_polling_poller_destroy},
|
182
192
|
};
|
183
193
|
|
184
|
-
|
194
|
+
} // namespace
|
195
|
+
|
196
|
+
struct cq_vtable {
|
185
197
|
grpc_cq_completion_type cq_completion_type;
|
186
198
|
size_t data_size;
|
187
|
-
void (*init)(void* data,
|
199
|
+
void (*init)(void* data,
|
200
|
+
grpc_experimental_completion_queue_functor* shutdown_callback);
|
188
201
|
void (*shutdown)(grpc_completion_queue* cq);
|
189
202
|
void (*destroy)(void* data);
|
190
203
|
bool (*begin_op)(grpc_completion_queue* cq, void* tag);
|
191
204
|
void (*end_op)(grpc_completion_queue* cq, void* tag, grpc_error* error,
|
192
205
|
void (*done)(void* done_arg, grpc_cq_completion* storage),
|
193
|
-
void* done_arg, grpc_cq_completion* storage);
|
206
|
+
void* done_arg, grpc_cq_completion* storage, bool internal);
|
194
207
|
grpc_event (*next)(grpc_completion_queue* cq, gpr_timespec deadline,
|
195
208
|
void* reserved);
|
196
209
|
grpc_event (*pluck)(grpc_completion_queue* cq, void* tag,
|
197
210
|
gpr_timespec deadline, void* reserved);
|
198
|
-
}
|
211
|
+
};
|
212
|
+
|
213
|
+
namespace {
|
199
214
|
|
200
|
-
/* Queue that holds the cq_completion_events. Internally uses
|
201
|
-
* (a lockfree multiproducer single consumer
|
202
|
-
* to support multiple consumers.
|
215
|
+
/* Queue that holds the cq_completion_events. Internally uses
|
216
|
+
* MultiProducerSingleConsumerQueue (a lockfree multiproducer single consumer
|
217
|
+
* queue). It uses a queue_lock to support multiple consumers.
|
203
218
|
* Only used in completion queues whose completion_type is GRPC_CQ_NEXT */
|
204
|
-
|
219
|
+
class CqEventQueue {
|
220
|
+
public:
|
221
|
+
CqEventQueue() = default;
|
222
|
+
~CqEventQueue() = default;
|
223
|
+
|
224
|
+
/* Note: The counter is not incremented/decremented atomically with push/pop.
|
225
|
+
* The count is only eventually consistent */
|
226
|
+
intptr_t num_items() const {
|
227
|
+
return num_queue_items_.Load(grpc_core::MemoryOrder::RELAXED);
|
228
|
+
}
|
229
|
+
|
230
|
+
bool Push(grpc_cq_completion* c);
|
231
|
+
grpc_cq_completion* Pop();
|
232
|
+
|
233
|
+
private:
|
205
234
|
/* Spinlock to serialize consumers i.e pop() operations */
|
206
|
-
gpr_spinlock
|
235
|
+
gpr_spinlock queue_lock_ = GPR_SPINLOCK_INITIALIZER;
|
207
236
|
|
208
|
-
|
237
|
+
grpc_core::MultiProducerSingleConsumerQueue queue_;
|
209
238
|
|
210
239
|
/* A lazy counter of number of items in the queue. This is NOT atomically
|
211
240
|
incremented/decremented along with push/pop operations and hence is only
|
212
241
|
eventually consistent */
|
213
|
-
|
214
|
-
}
|
242
|
+
grpc_core::Atomic<intptr_t> num_queue_items_{0};
|
243
|
+
};
|
244
|
+
|
245
|
+
struct cq_next_data {
|
246
|
+
~cq_next_data() {
|
247
|
+
GPR_ASSERT(queue.num_items() == 0);
|
248
|
+
#ifndef NDEBUG
|
249
|
+
if (pending_events.Load(grpc_core::MemoryOrder::ACQUIRE) != 0) {
|
250
|
+
gpr_log(GPR_ERROR, "Destroying CQ without draining it fully.");
|
251
|
+
}
|
252
|
+
#endif
|
253
|
+
}
|
215
254
|
|
216
|
-
typedef struct cq_next_data {
|
217
255
|
/** Completed events for completion-queues of type GRPC_CQ_NEXT */
|
218
|
-
|
256
|
+
CqEventQueue queue;
|
219
257
|
|
220
258
|
/** Counter of how many things have ever been queued on this completion queue
|
221
259
|
useful for avoiding locks to check the queue */
|
222
|
-
|
260
|
+
grpc_core::Atomic<intptr_t> things_queued_ever{0};
|
223
261
|
|
224
|
-
|
225
|
-
|
262
|
+
/** Number of outstanding events (+1 if not shut down)
|
263
|
+
Initial count is dropped by grpc_completion_queue_shutdown */
|
264
|
+
grpc_core::Atomic<intptr_t> pending_events{1};
|
226
265
|
|
227
266
|
/** 0 initially. 1 once we initiated shutdown */
|
228
|
-
bool shutdown_called;
|
229
|
-
}
|
267
|
+
bool shutdown_called = false;
|
268
|
+
};
|
269
|
+
|
270
|
+
struct cq_pluck_data {
|
271
|
+
cq_pluck_data() {
|
272
|
+
completed_tail = &completed_head;
|
273
|
+
completed_head.next = reinterpret_cast<uintptr_t>(completed_tail);
|
274
|
+
}
|
275
|
+
|
276
|
+
~cq_pluck_data() {
|
277
|
+
GPR_ASSERT(completed_head.next ==
|
278
|
+
reinterpret_cast<uintptr_t>(&completed_head));
|
279
|
+
#ifndef NDEBUG
|
280
|
+
if (pending_events.Load(grpc_core::MemoryOrder::ACQUIRE) != 0) {
|
281
|
+
gpr_log(GPR_ERROR, "Destroying CQ without draining it fully.");
|
282
|
+
}
|
283
|
+
#endif
|
284
|
+
}
|
230
285
|
|
231
|
-
typedef struct cq_pluck_data {
|
232
286
|
/** Completed events for completion-queues of type GRPC_CQ_PLUCK */
|
233
287
|
grpc_cq_completion completed_head;
|
234
288
|
grpc_cq_completion* completed_tail;
|
235
289
|
|
236
|
-
/** Number of pending events (+1 if we're not shutdown)
|
237
|
-
|
290
|
+
/** Number of pending events (+1 if we're not shutdown).
|
291
|
+
Initial count is dropped by grpc_completion_queue_shutdown. */
|
292
|
+
grpc_core::Atomic<intptr_t> pending_events{1};
|
238
293
|
|
239
294
|
/** Counter of how many things have ever been queued on this completion queue
|
240
295
|
useful for avoiding locks to check the queue */
|
241
|
-
|
296
|
+
grpc_core::Atomic<intptr_t> things_queued_ever{0};
|
242
297
|
|
243
298
|
/** 0 initially. 1 once we completed shutting */
|
244
299
|
/* TODO: (sreek) This is not needed since (shutdown == 1) if and only if
|
245
300
|
* (pending_events == 0). So consider removing this in future and use
|
246
301
|
* pending_events */
|
247
|
-
|
302
|
+
grpc_core::Atomic<bool> shutdown{false};
|
248
303
|
|
249
304
|
/** 0 initially. 1 once we initiated shutdown */
|
250
|
-
bool shutdown_called;
|
305
|
+
bool shutdown_called = false;
|
251
306
|
|
252
|
-
int num_pluckers;
|
307
|
+
int num_pluckers = 0;
|
253
308
|
plucker pluckers[GRPC_MAX_COMPLETION_QUEUE_PLUCKERS];
|
254
|
-
}
|
309
|
+
};
|
310
|
+
|
311
|
+
struct cq_callback_data {
|
312
|
+
cq_callback_data(
|
313
|
+
grpc_experimental_completion_queue_functor* shutdown_callback)
|
314
|
+
: shutdown_callback(shutdown_callback) {}
|
315
|
+
|
316
|
+
~cq_callback_data() {
|
317
|
+
#ifndef NDEBUG
|
318
|
+
if (pending_events.Load(grpc_core::MemoryOrder::ACQUIRE) != 0) {
|
319
|
+
gpr_log(GPR_ERROR, "Destroying CQ without draining it fully.");
|
320
|
+
}
|
321
|
+
#endif
|
322
|
+
}
|
255
323
|
|
256
|
-
typedef struct cq_callback_data {
|
257
324
|
/** No actual completed events queue, unlike other types */
|
258
325
|
|
259
|
-
/** Number of pending events (+1 if we're not shutdown)
|
260
|
-
|
326
|
+
/** Number of pending events (+1 if we're not shutdown).
|
327
|
+
Initial count is dropped by grpc_completion_queue_shutdown. */
|
328
|
+
grpc_core::Atomic<intptr_t> pending_events{1};
|
261
329
|
|
262
330
|
/** Counter of how many things have ever been queued on this completion queue
|
263
331
|
useful for avoiding locks to check the queue */
|
264
|
-
|
332
|
+
grpc_core::Atomic<intptr_t> things_queued_ever{0};
|
265
333
|
|
266
334
|
/** 0 initially. 1 once we initiated shutdown */
|
267
|
-
bool shutdown_called;
|
335
|
+
bool shutdown_called = false;
|
268
336
|
|
269
337
|
/** A callback that gets invoked when the CQ completes shutdown */
|
270
|
-
|
271
|
-
}
|
338
|
+
grpc_experimental_completion_queue_functor* shutdown_callback;
|
339
|
+
};
|
340
|
+
|
341
|
+
} // namespace
|
272
342
|
|
273
343
|
/* Completion queue structure */
|
274
344
|
struct grpc_completion_queue {
|
275
345
|
/** Once owning_refs drops to zero, we will destroy the cq */
|
276
|
-
|
346
|
+
grpc_core::RefCount owning_refs;
|
277
347
|
|
278
348
|
gpr_mu* mu;
|
279
349
|
|
@@ -308,23 +378,20 @@ static bool cq_begin_op_for_callback(grpc_completion_queue* cq, void* tag);
|
|
308
378
|
// queue. The done argument is a callback that will be invoked when it is
|
309
379
|
// safe to free up that storage. The storage MUST NOT be freed until the
|
310
380
|
// done callback is invoked.
|
311
|
-
static void cq_end_op_for_next(
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
void (*done)(void* done_arg,
|
326
|
-
grpc_cq_completion* storage),
|
327
|
-
void* done_arg, grpc_cq_completion* storage);
|
381
|
+
static void cq_end_op_for_next(
|
382
|
+
grpc_completion_queue* cq, void* tag, grpc_error* error,
|
383
|
+
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
384
|
+
grpc_cq_completion* storage, bool internal);
|
385
|
+
|
386
|
+
static void cq_end_op_for_pluck(
|
387
|
+
grpc_completion_queue* cq, void* tag, grpc_error* error,
|
388
|
+
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
389
|
+
grpc_cq_completion* storage, bool internal);
|
390
|
+
|
391
|
+
static void cq_end_op_for_callback(
|
392
|
+
grpc_completion_queue* cq, void* tag, grpc_error* error,
|
393
|
+
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
394
|
+
grpc_cq_completion* storage, bool internal);
|
328
395
|
|
329
396
|
static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
330
397
|
void* reserved);
|
@@ -333,12 +400,12 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
333
400
|
gpr_timespec deadline, void* reserved);
|
334
401
|
|
335
402
|
// Note that cq_init_next and cq_init_pluck do not use the shutdown_callback
|
336
|
-
static void cq_init_next(
|
337
|
-
|
338
|
-
static void cq_init_pluck(
|
339
|
-
|
340
|
-
static void cq_init_callback(
|
341
|
-
|
403
|
+
static void cq_init_next(
|
404
|
+
void* data, grpc_experimental_completion_queue_functor* shutdown_callback);
|
405
|
+
static void cq_init_pluck(
|
406
|
+
void* data, grpc_experimental_completion_queue_functor* shutdown_callback);
|
407
|
+
static void cq_init_callback(
|
408
|
+
void* data, grpc_experimental_completion_queue_functor* shutdown_callback);
|
342
409
|
static void cq_destroy_next(void* data);
|
343
410
|
static void cq_destroy_pluck(void* data);
|
344
411
|
static void cq_destroy_callback(void* data);
|
@@ -365,13 +432,15 @@ static const cq_vtable g_cq_vtable[] = {
|
|
365
432
|
|
366
433
|
grpc_core::TraceFlag grpc_cq_pluck_trace(false, "queue_pluck");
|
367
434
|
|
368
|
-
#define GRPC_SURFACE_TRACE_RETURNED_EVENT(cq, event)
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
435
|
+
#define GRPC_SURFACE_TRACE_RETURNED_EVENT(cq, event) \
|
436
|
+
do { \
|
437
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) && \
|
438
|
+
(GRPC_TRACE_FLAG_ENABLED(grpc_cq_pluck_trace) || \
|
439
|
+
(event)->type != GRPC_QUEUE_TIMEOUT)) { \
|
440
|
+
gpr_log(GPR_INFO, "RETURN_EVENT[%p]: %s", cq, \
|
441
|
+
grpc_event_string(event).c_str()); \
|
442
|
+
} \
|
443
|
+
} while (0)
|
375
444
|
|
376
445
|
static void on_pollset_shutdown_done(void* cq, grpc_error* error);
|
377
446
|
|
@@ -400,7 +469,7 @@ int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue* cq,
|
|
400
469
|
storage->done(storage->done_arg, storage);
|
401
470
|
ret = 1;
|
402
471
|
cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
|
403
|
-
if (
|
472
|
+
if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
|
404
473
|
GRPC_CQ_INTERNAL_REF(cq, "shutting_down");
|
405
474
|
gpr_mu_lock(cq->mu);
|
406
475
|
cq_finish_shutdown_next(cq);
|
@@ -414,31 +483,21 @@ int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue* cq,
|
|
414
483
|
return ret;
|
415
484
|
}
|
416
485
|
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
486
|
+
bool CqEventQueue::Push(grpc_cq_completion* c) {
|
487
|
+
queue_.Push(
|
488
|
+
reinterpret_cast<grpc_core::MultiProducerSingleConsumerQueue::Node*>(c));
|
489
|
+
return num_queue_items_.FetchAdd(1, grpc_core::MemoryOrder::RELAXED) == 0;
|
421
490
|
}
|
422
491
|
|
423
|
-
|
424
|
-
gpr_mpscq_destroy(&q->queue);
|
425
|
-
}
|
426
|
-
|
427
|
-
static bool cq_event_queue_push(grpc_cq_event_queue* q, grpc_cq_completion* c) {
|
428
|
-
gpr_mpscq_push(&q->queue, reinterpret_cast<gpr_mpscq_node*>(c));
|
429
|
-
return gpr_atm_no_barrier_fetch_add(&q->num_queue_items, 1) == 0;
|
430
|
-
}
|
431
|
-
|
432
|
-
static grpc_cq_completion* cq_event_queue_pop(grpc_cq_event_queue* q) {
|
492
|
+
grpc_cq_completion* CqEventQueue::Pop() {
|
433
493
|
grpc_cq_completion* c = nullptr;
|
434
494
|
|
435
|
-
if (gpr_spinlock_trylock(&
|
495
|
+
if (gpr_spinlock_trylock(&queue_lock_)) {
|
436
496
|
GRPC_STATS_INC_CQ_EV_QUEUE_TRYLOCK_SUCCESSES();
|
437
497
|
|
438
498
|
bool is_empty = false;
|
439
|
-
c = reinterpret_cast<grpc_cq_completion*>(
|
440
|
-
|
441
|
-
gpr_spinlock_unlock(&q->queue_lock);
|
499
|
+
c = reinterpret_cast<grpc_cq_completion*>(queue_.PopAndCheckEnd(&is_empty));
|
500
|
+
gpr_spinlock_unlock(&queue_lock_);
|
442
501
|
|
443
502
|
if (c == nullptr && !is_empty) {
|
444
503
|
GRPC_STATS_INC_CQ_EV_QUEUE_TRANSIENT_POP_FAILURES();
|
@@ -448,21 +507,15 @@ static grpc_cq_completion* cq_event_queue_pop(grpc_cq_event_queue* q) {
|
|
448
507
|
}
|
449
508
|
|
450
509
|
if (c) {
|
451
|
-
|
510
|
+
num_queue_items_.FetchSub(1, grpc_core::MemoryOrder::RELAXED);
|
452
511
|
}
|
453
512
|
|
454
513
|
return c;
|
455
514
|
}
|
456
515
|
|
457
|
-
/* Note: The counter is not incremented/decremented atomically with push/pop.
|
458
|
-
* The count is only eventually consistent */
|
459
|
-
static long cq_event_queue_num_items(grpc_cq_event_queue* q) {
|
460
|
-
return static_cast<long>(gpr_atm_no_barrier_load(&q->num_queue_items));
|
461
|
-
}
|
462
|
-
|
463
516
|
grpc_completion_queue* grpc_completion_queue_create_internal(
|
464
517
|
grpc_cq_completion_type completion_type, grpc_cq_polling_type polling_type,
|
465
|
-
|
518
|
+
grpc_experimental_completion_queue_functor* shutdown_callback) {
|
466
519
|
GPR_TIMER_SCOPE("grpc_completion_queue_create_internal", 0);
|
467
520
|
|
468
521
|
grpc_completion_queue* cq;
|
@@ -487,7 +540,7 @@ grpc_completion_queue* grpc_completion_queue_create_internal(
|
|
487
540
|
cq->poller_vtable = poller_vtable;
|
488
541
|
|
489
542
|
/* One for destroy(), one for pollset_shutdown */
|
490
|
-
|
543
|
+
new (&cq->owning_refs) grpc_core::RefCount(2);
|
491
544
|
|
492
545
|
poller_vtable->init(POLLSET_FROM_CQ(cq), &cq->mu);
|
493
546
|
vtable->init(DATA_FROM_CQ(cq), shutdown_callback);
|
@@ -497,51 +550,37 @@ grpc_completion_queue* grpc_completion_queue_create_internal(
|
|
497
550
|
return cq;
|
498
551
|
}
|
499
552
|
|
500
|
-
static void cq_init_next(
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
gpr_atm_no_barrier_store(&cqd->pending_events, 1);
|
505
|
-
cqd->shutdown_called = false;
|
506
|
-
gpr_atm_no_barrier_store(&cqd->things_queued_ever, 0);
|
507
|
-
cq_event_queue_init(&cqd->queue);
|
553
|
+
static void cq_init_next(
|
554
|
+
void* data,
|
555
|
+
grpc_experimental_completion_queue_functor* /*shutdown_callback*/) {
|
556
|
+
new (data) cq_next_data();
|
508
557
|
}
|
509
558
|
|
510
559
|
static void cq_destroy_next(void* data) {
|
511
560
|
cq_next_data* cqd = static_cast<cq_next_data*>(data);
|
512
|
-
|
513
|
-
cq_event_queue_destroy(&cqd->queue);
|
561
|
+
cqd->~cq_next_data();
|
514
562
|
}
|
515
563
|
|
516
|
-
static void cq_init_pluck(
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
gpr_atm_no_barrier_store(&cqd->pending_events, 1);
|
521
|
-
cqd->completed_tail = &cqd->completed_head;
|
522
|
-
cqd->completed_head.next = (uintptr_t)cqd->completed_tail;
|
523
|
-
gpr_atm_no_barrier_store(&cqd->shutdown, 0);
|
524
|
-
cqd->shutdown_called = false;
|
525
|
-
cqd->num_pluckers = 0;
|
526
|
-
gpr_atm_no_barrier_store(&cqd->things_queued_ever, 0);
|
564
|
+
static void cq_init_pluck(
|
565
|
+
void* data,
|
566
|
+
grpc_experimental_completion_queue_functor* /*shutdown_callback*/) {
|
567
|
+
new (data) cq_pluck_data();
|
527
568
|
}
|
528
569
|
|
529
570
|
static void cq_destroy_pluck(void* data) {
|
530
571
|
cq_pluck_data* cqd = static_cast<cq_pluck_data*>(data);
|
531
|
-
|
572
|
+
cqd->~cq_pluck_data();
|
532
573
|
}
|
533
574
|
|
534
575
|
static void cq_init_callback(
|
535
|
-
void* data,
|
536
|
-
|
537
|
-
/* Initial count is dropped by grpc_completion_queue_shutdown */
|
538
|
-
gpr_atm_no_barrier_store(&cqd->pending_events, 1);
|
539
|
-
cqd->shutdown_called = false;
|
540
|
-
gpr_atm_no_barrier_store(&cqd->things_queued_ever, 0);
|
541
|
-
cqd->shutdown_callback = shutdown_callback;
|
576
|
+
void* data, grpc_experimental_completion_queue_functor* shutdown_callback) {
|
577
|
+
new (data) cq_callback_data(shutdown_callback);
|
542
578
|
}
|
543
579
|
|
544
|
-
static void cq_destroy_callback(void* data) {
|
580
|
+
static void cq_destroy_callback(void* data) {
|
581
|
+
cq_callback_data* cqd = static_cast<cq_callback_data*>(data);
|
582
|
+
cqd->~cq_callback_data();
|
583
|
+
}
|
545
584
|
|
546
585
|
grpc_cq_completion_type grpc_get_cq_completion_type(grpc_completion_queue* cq) {
|
547
586
|
return cq->vtable->cq_completion_type;
|
@@ -558,19 +597,16 @@ int grpc_get_cq_poll_num(grpc_completion_queue* cq) {
|
|
558
597
|
#ifndef NDEBUG
|
559
598
|
void grpc_cq_internal_ref(grpc_completion_queue* cq, const char* reason,
|
560
599
|
const char* file, int line) {
|
561
|
-
|
562
|
-
gpr_atm val = gpr_atm_no_barrier_load(&cq->owning_refs.count);
|
563
|
-
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
564
|
-
"CQ:%p ref %" PRIdPTR " -> %" PRIdPTR " %s", cq, val, val + 1,
|
565
|
-
reason);
|
566
|
-
}
|
600
|
+
grpc_core::DebugLocation debug_location(file, line);
|
567
601
|
#else
|
568
602
|
void grpc_cq_internal_ref(grpc_completion_queue* cq) {
|
603
|
+
grpc_core::DebugLocation debug_location;
|
604
|
+
const char* reason = nullptr;
|
569
605
|
#endif
|
570
|
-
|
606
|
+
cq->owning_refs.Ref(debug_location, reason);
|
571
607
|
}
|
572
608
|
|
573
|
-
static void on_pollset_shutdown_done(void* arg, grpc_error* error) {
|
609
|
+
static void on_pollset_shutdown_done(void* arg, grpc_error* /*error*/) {
|
574
610
|
grpc_completion_queue* cq = static_cast<grpc_completion_queue*>(arg);
|
575
611
|
GRPC_CQ_INTERNAL_UNREF(cq, "pollset_destroy");
|
576
612
|
}
|
@@ -578,16 +614,13 @@ static void on_pollset_shutdown_done(void* arg, grpc_error* error) {
|
|
578
614
|
#ifndef NDEBUG
|
579
615
|
void grpc_cq_internal_unref(grpc_completion_queue* cq, const char* reason,
|
580
616
|
const char* file, int line) {
|
581
|
-
|
582
|
-
gpr_atm val = gpr_atm_no_barrier_load(&cq->owning_refs.count);
|
583
|
-
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
584
|
-
"CQ:%p unref %" PRIdPTR " -> %" PRIdPTR " %s", cq, val, val - 1,
|
585
|
-
reason);
|
586
|
-
}
|
617
|
+
grpc_core::DebugLocation debug_location(file, line);
|
587
618
|
#else
|
588
619
|
void grpc_cq_internal_unref(grpc_completion_queue* cq) {
|
620
|
+
grpc_core::DebugLocation debug_location;
|
621
|
+
const char* reason = nullptr;
|
589
622
|
#endif
|
590
|
-
if (
|
623
|
+
if (GPR_UNLIKELY(cq->owning_refs.Unref(debug_location, reason))) {
|
591
624
|
cq->vtable->destroy(DATA_FROM_CQ(cq));
|
592
625
|
cq->poller_vtable->destroy(POLLSET_FROM_CQ(cq));
|
593
626
|
#ifndef NDEBUG
|
@@ -621,40 +654,23 @@ static void cq_check_tag(grpc_completion_queue* cq, void* tag, bool lock_cq) {
|
|
621
654
|
GPR_ASSERT(found);
|
622
655
|
}
|
623
656
|
#else
|
624
|
-
static void cq_check_tag(grpc_completion_queue* cq
|
657
|
+
static void cq_check_tag(grpc_completion_queue* /*cq*/, void* /*tag*/,
|
658
|
+
bool /*lock_cq*/) {}
|
625
659
|
#endif
|
626
660
|
|
627
|
-
|
628
|
-
* true if the increment was successful; false if the counter is zero */
|
629
|
-
static bool atm_inc_if_nonzero(gpr_atm* counter) {
|
630
|
-
while (true) {
|
631
|
-
gpr_atm count = gpr_atm_acq_load(counter);
|
632
|
-
/* If zero, we are done. If not, we must to a CAS (instead of an atomic
|
633
|
-
* increment) to maintain the contract: do not increment the counter if it
|
634
|
-
* is zero. */
|
635
|
-
if (count == 0) {
|
636
|
-
return false;
|
637
|
-
} else if (gpr_atm_full_cas(counter, count, count + 1)) {
|
638
|
-
break;
|
639
|
-
}
|
640
|
-
}
|
641
|
-
|
642
|
-
return true;
|
643
|
-
}
|
644
|
-
|
645
|
-
static bool cq_begin_op_for_next(grpc_completion_queue* cq, void* tag) {
|
661
|
+
static bool cq_begin_op_for_next(grpc_completion_queue* cq, void* /*tag*/) {
|
646
662
|
cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
|
647
|
-
return
|
663
|
+
return cqd->pending_events.IncrementIfNonzero();
|
648
664
|
}
|
649
665
|
|
650
|
-
static bool cq_begin_op_for_pluck(grpc_completion_queue* cq, void* tag) {
|
666
|
+
static bool cq_begin_op_for_pluck(grpc_completion_queue* cq, void* /*tag*/) {
|
651
667
|
cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
|
652
|
-
return
|
668
|
+
return cqd->pending_events.IncrementIfNonzero();
|
653
669
|
}
|
654
670
|
|
655
|
-
static bool cq_begin_op_for_callback(grpc_completion_queue* cq, void* tag) {
|
671
|
+
static bool cq_begin_op_for_callback(grpc_completion_queue* cq, void* /*tag*/) {
|
656
672
|
cq_callback_data* cqd = static_cast<cq_callback_data*> DATA_FROM_CQ(cq);
|
657
|
-
return
|
673
|
+
return cqd->pending_events.IncrementIfNonzero();
|
658
674
|
}
|
659
675
|
|
660
676
|
bool grpc_cq_begin_op(grpc_completion_queue* cq, void* tag) {
|
@@ -675,21 +691,22 @@ bool grpc_cq_begin_op(grpc_completion_queue* cq, void* tag) {
|
|
675
691
|
/* Queue a GRPC_OP_COMPLETED operation to a completion queue (with a
|
676
692
|
* completion
|
677
693
|
* type of GRPC_CQ_NEXT) */
|
678
|
-
static void cq_end_op_for_next(
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
void* done_arg, grpc_cq_completion* storage) {
|
694
|
+
static void cq_end_op_for_next(
|
695
|
+
grpc_completion_queue* cq, void* tag, grpc_error* error,
|
696
|
+
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
697
|
+
grpc_cq_completion* storage, bool /*internal*/) {
|
683
698
|
GPR_TIMER_SCOPE("cq_end_op_for_next", 0);
|
684
699
|
|
685
|
-
if (grpc_api_trace
|
686
|
-
(grpc_trace_operation_failures
|
700
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
|
701
|
+
(GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
702
|
+
error != GRPC_ERROR_NONE)) {
|
687
703
|
const char* errmsg = grpc_error_string(error);
|
688
704
|
GRPC_API_TRACE(
|
689
705
|
"cq_end_op_for_next(cq=%p, tag=%p, error=%s, "
|
690
706
|
"done=%p, done_arg=%p, storage=%p)",
|
691
707
|
6, (cq, tag, errmsg, done, done_arg, storage));
|
692
|
-
if (grpc_trace_operation_failures
|
708
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
709
|
+
error != GRPC_ERROR_NONE) {
|
693
710
|
gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag, errmsg);
|
694
711
|
}
|
695
712
|
}
|
@@ -708,17 +725,14 @@ static void cq_end_op_for_next(grpc_completion_queue* cq, void* tag,
|
|
708
725
|
gpr_tls_set(&g_cached_event, (intptr_t)storage);
|
709
726
|
} else {
|
710
727
|
/* Add the completion to the queue */
|
711
|
-
bool is_first =
|
712
|
-
|
713
|
-
|
728
|
+
bool is_first = cqd->queue.Push(storage);
|
729
|
+
cqd->things_queued_ever.FetchAdd(1, grpc_core::MemoryOrder::RELAXED);
|
714
730
|
/* Since we do not hold the cq lock here, it is important to do an 'acquire'
|
715
731
|
load here (instead of a 'no_barrier' load) to match with the release
|
716
732
|
store
|
717
|
-
(done via
|
733
|
+
(done via pending_events.FetchSub(1, ACQ_REL)) in cq_shutdown_next
|
718
734
|
*/
|
719
|
-
|
720
|
-
|
721
|
-
if (!will_definitely_shutdown) {
|
735
|
+
if (cqd->pending_events.Load(grpc_core::MemoryOrder::ACQUIRE) != 1) {
|
722
736
|
/* Only kick if this is the first item queued */
|
723
737
|
if (is_first) {
|
724
738
|
gpr_mu_lock(cq->mu);
|
@@ -732,7 +746,8 @@ static void cq_end_op_for_next(grpc_completion_queue* cq, void* tag,
|
|
732
746
|
GRPC_ERROR_UNREF(kick_error);
|
733
747
|
}
|
734
748
|
}
|
735
|
-
if (
|
749
|
+
if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) ==
|
750
|
+
1) {
|
736
751
|
GRPC_CQ_INTERNAL_REF(cq, "shutting_down");
|
737
752
|
gpr_mu_lock(cq->mu);
|
738
753
|
cq_finish_shutdown_next(cq);
|
@@ -741,7 +756,7 @@ static void cq_end_op_for_next(grpc_completion_queue* cq, void* tag,
|
|
741
756
|
}
|
742
757
|
} else {
|
743
758
|
GRPC_CQ_INTERNAL_REF(cq, "shutting_down");
|
744
|
-
|
759
|
+
cqd->pending_events.Store(0, grpc_core::MemoryOrder::RELEASE);
|
745
760
|
gpr_mu_lock(cq->mu);
|
746
761
|
cq_finish_shutdown_next(cq);
|
747
762
|
gpr_mu_unlock(cq->mu);
|
@@ -755,24 +770,25 @@ static void cq_end_op_for_next(grpc_completion_queue* cq, void* tag,
|
|
755
770
|
/* Queue a GRPC_OP_COMPLETED operation to a completion queue (with a
|
756
771
|
* completion
|
757
772
|
* type of GRPC_CQ_PLUCK) */
|
758
|
-
static void cq_end_op_for_pluck(
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
void* done_arg, grpc_cq_completion* storage) {
|
773
|
+
static void cq_end_op_for_pluck(
|
774
|
+
grpc_completion_queue* cq, void* tag, grpc_error* error,
|
775
|
+
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
776
|
+
grpc_cq_completion* storage, bool /*internal*/) {
|
763
777
|
GPR_TIMER_SCOPE("cq_end_op_for_pluck", 0);
|
764
778
|
|
765
779
|
cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
|
766
780
|
int is_success = (error == GRPC_ERROR_NONE);
|
767
781
|
|
768
|
-
if (grpc_api_trace
|
769
|
-
(grpc_trace_operation_failures
|
782
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
|
783
|
+
(GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
784
|
+
error != GRPC_ERROR_NONE)) {
|
770
785
|
const char* errmsg = grpc_error_string(error);
|
771
786
|
GRPC_API_TRACE(
|
772
787
|
"cq_end_op_for_pluck(cq=%p, tag=%p, error=%s, "
|
773
788
|
"done=%p, done_arg=%p, storage=%p)",
|
774
789
|
6, (cq, tag, errmsg, done, done_arg, storage));
|
775
|
-
if (grpc_trace_operation_failures
|
790
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
791
|
+
error != GRPC_ERROR_NONE) {
|
776
792
|
gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag, errmsg);
|
777
793
|
}
|
778
794
|
}
|
@@ -787,12 +803,12 @@ static void cq_end_op_for_pluck(grpc_completion_queue* cq, void* tag,
|
|
787
803
|
cq_check_tag(cq, tag, false); /* Used in debug builds only */
|
788
804
|
|
789
805
|
/* Add to the list of completions */
|
790
|
-
|
806
|
+
cqd->things_queued_ever.FetchAdd(1, grpc_core::MemoryOrder::RELAXED);
|
791
807
|
cqd->completed_tail->next =
|
792
808
|
((uintptr_t)storage) | (1u & cqd->completed_tail->next);
|
793
809
|
cqd->completed_tail = storage;
|
794
810
|
|
795
|
-
if (
|
811
|
+
if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
|
796
812
|
cq_finish_shutdown_pluck(cq);
|
797
813
|
gpr_mu_unlock(cq->mu);
|
798
814
|
} else {
|
@@ -820,24 +836,30 @@ static void cq_end_op_for_pluck(grpc_completion_queue* cq, void* tag,
|
|
820
836
|
GRPC_ERROR_UNREF(error);
|
821
837
|
}
|
822
838
|
|
839
|
+
static void functor_callback(void* arg, grpc_error* error) {
|
840
|
+
auto* functor = static_cast<grpc_experimental_completion_queue_functor*>(arg);
|
841
|
+
functor->functor_run(functor, error == GRPC_ERROR_NONE);
|
842
|
+
}
|
843
|
+
|
823
844
|
/* Complete an event on a completion queue of type GRPC_CQ_CALLBACK */
|
824
845
|
static void cq_end_op_for_callback(
|
825
846
|
grpc_completion_queue* cq, void* tag, grpc_error* error,
|
826
847
|
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
827
|
-
grpc_cq_completion* storage) {
|
848
|
+
grpc_cq_completion* storage, bool internal) {
|
828
849
|
GPR_TIMER_SCOPE("cq_end_op_for_callback", 0);
|
829
850
|
|
830
851
|
cq_callback_data* cqd = static_cast<cq_callback_data*> DATA_FROM_CQ(cq);
|
831
|
-
bool is_success = (error == GRPC_ERROR_NONE);
|
832
852
|
|
833
|
-
if (grpc_api_trace
|
834
|
-
(grpc_trace_operation_failures
|
853
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
|
854
|
+
(GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
855
|
+
error != GRPC_ERROR_NONE)) {
|
835
856
|
const char* errmsg = grpc_error_string(error);
|
836
857
|
GRPC_API_TRACE(
|
837
858
|
"cq_end_op_for_callback(cq=%p, tag=%p, error=%s, "
|
838
859
|
"done=%p, done_arg=%p, storage=%p)",
|
839
860
|
6, (cq, tag, errmsg, done, done_arg, storage));
|
840
|
-
if (grpc_trace_operation_failures
|
861
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
862
|
+
error != GRPC_ERROR_NONE) {
|
841
863
|
gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag, errmsg);
|
842
864
|
}
|
843
865
|
}
|
@@ -846,37 +868,50 @@ static void cq_end_op_for_callback(
|
|
846
868
|
// for reserved storage. Invoke the done callback right away to release it.
|
847
869
|
done(done_arg, storage);
|
848
870
|
|
849
|
-
|
850
|
-
cq_check_tag(cq, tag, false); /* Used in debug builds only */
|
871
|
+
cq_check_tag(cq, tag, true); /* Used in debug builds only */
|
851
872
|
|
852
|
-
|
853
|
-
if (
|
873
|
+
cqd->things_queued_ever.FetchAdd(1, grpc_core::MemoryOrder::RELAXED);
|
874
|
+
if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
|
854
875
|
cq_finish_shutdown_callback(cq);
|
855
|
-
gpr_mu_unlock(cq->mu);
|
856
|
-
} else {
|
857
|
-
gpr_mu_unlock(cq->mu);
|
858
876
|
}
|
859
877
|
|
860
|
-
|
878
|
+
// If possible, schedule the callback onto an existing thread-local
|
879
|
+
// ApplicationCallbackExecCtx, which is a work queue. This is possible for:
|
880
|
+
// 1. The callback is internally-generated and there is an ACEC available
|
881
|
+
// 2. The callback is marked inlineable and there is an ACEC available
|
882
|
+
// 3. We are already running in a background poller thread (which always has
|
883
|
+
// an ACEC available at the base of the stack).
|
884
|
+
auto* functor = static_cast<grpc_experimental_completion_queue_functor*>(tag);
|
885
|
+
if (((internal || functor->inlineable) &&
|
886
|
+
grpc_core::ApplicationCallbackExecCtx::Available()) ||
|
887
|
+
grpc_iomgr_is_any_background_poller_thread()) {
|
888
|
+
grpc_core::ApplicationCallbackExecCtx::Enqueue(functor,
|
889
|
+
(error == GRPC_ERROR_NONE));
|
890
|
+
GRPC_ERROR_UNREF(error);
|
891
|
+
return;
|
892
|
+
}
|
861
893
|
|
862
|
-
|
894
|
+
// Schedule the callback on a closure if not internal or triggered
|
895
|
+
// from a background poller thread.
|
896
|
+
grpc_core::Executor::Run(
|
897
|
+
GRPC_CLOSURE_CREATE(functor_callback, functor, nullptr), error);
|
863
898
|
}
|
864
899
|
|
865
900
|
void grpc_cq_end_op(grpc_completion_queue* cq, void* tag, grpc_error* error,
|
866
901
|
void (*done)(void* done_arg, grpc_cq_completion* storage),
|
867
|
-
void* done_arg, grpc_cq_completion* storage
|
868
|
-
|
902
|
+
void* done_arg, grpc_cq_completion* storage,
|
903
|
+
bool internal) {
|
904
|
+
cq->vtable->end_op(cq, tag, error, done, done_arg, storage, internal);
|
869
905
|
}
|
870
906
|
|
871
|
-
|
907
|
+
struct cq_is_finished_arg {
|
872
908
|
gpr_atm last_seen_things_queued_ever;
|
873
909
|
grpc_completion_queue* cq;
|
874
910
|
grpc_millis deadline;
|
875
911
|
grpc_cq_completion* stolen_completion;
|
876
912
|
void* tag; /* for pluck */
|
877
913
|
bool first_loop;
|
878
|
-
}
|
879
|
-
|
914
|
+
};
|
880
915
|
class ExecCtxNext : public grpc_core::ExecCtx {
|
881
916
|
public:
|
882
917
|
ExecCtxNext(void* arg) : ExecCtx(0), check_ready_to_finish_arg_(arg) {}
|
@@ -888,20 +923,20 @@ class ExecCtxNext : public grpc_core::ExecCtx {
|
|
888
923
|
cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
|
889
924
|
GPR_ASSERT(a->stolen_completion == nullptr);
|
890
925
|
|
891
|
-
|
892
|
-
|
926
|
+
intptr_t current_last_seen_things_queued_ever =
|
927
|
+
cqd->things_queued_ever.Load(grpc_core::MemoryOrder::RELAXED);
|
893
928
|
|
894
929
|
if (current_last_seen_things_queued_ever !=
|
895
930
|
a->last_seen_things_queued_ever) {
|
896
931
|
a->last_seen_things_queued_ever =
|
897
|
-
|
932
|
+
cqd->things_queued_ever.Load(grpc_core::MemoryOrder::RELAXED);
|
898
933
|
|
899
934
|
/* Pop a cq_completion from the queue. Returns NULL if the queue is empty
|
900
935
|
* might return NULL in some cases even if the queue is not empty; but
|
901
936
|
* that
|
902
937
|
* is ok and doesn't affect correctness. Might effect the tail latencies a
|
903
938
|
* bit) */
|
904
|
-
a->stolen_completion =
|
939
|
+
a->stolen_completion = cqd->queue.Pop();
|
905
940
|
if (a->stolen_completion != nullptr) {
|
906
941
|
return true;
|
907
942
|
}
|
@@ -915,25 +950,18 @@ class ExecCtxNext : public grpc_core::ExecCtx {
|
|
915
950
|
|
916
951
|
#ifndef NDEBUG
|
917
952
|
static void dump_pending_tags(grpc_completion_queue* cq) {
|
918
|
-
if (!grpc_trace_pending_tags
|
919
|
-
|
920
|
-
|
921
|
-
gpr_strvec_init(&v);
|
922
|
-
gpr_strvec_add(&v, gpr_strdup("PENDING TAGS:"));
|
953
|
+
if (!GRPC_TRACE_FLAG_ENABLED(grpc_trace_pending_tags)) return;
|
954
|
+
std::vector<std::string> parts;
|
955
|
+
parts.push_back("PENDING TAGS:");
|
923
956
|
gpr_mu_lock(cq->mu);
|
924
957
|
for (size_t i = 0; i < cq->outstanding_tag_count; i++) {
|
925
|
-
|
926
|
-
gpr_asprintf(&s, " %p", cq->outstanding_tags[i]);
|
927
|
-
gpr_strvec_add(&v, s);
|
958
|
+
parts.push_back(absl::StrFormat(" %p", cq->outstanding_tags[i]));
|
928
959
|
}
|
929
960
|
gpr_mu_unlock(cq->mu);
|
930
|
-
|
931
|
-
gpr_strvec_destroy(&v);
|
932
|
-
gpr_log(GPR_DEBUG, "%s", out);
|
933
|
-
gpr_free(out);
|
961
|
+
gpr_log(GPR_DEBUG, "%s", absl::StrJoin(parts, "").c_str());
|
934
962
|
}
|
935
963
|
#else
|
936
|
-
static void dump_pending_tags(grpc_completion_queue* cq) {}
|
964
|
+
static void dump_pending_tags(grpc_completion_queue* /*cq*/) {}
|
937
965
|
#endif
|
938
966
|
|
939
967
|
static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
@@ -960,7 +988,7 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
960
988
|
|
961
989
|
grpc_millis deadline_millis = grpc_timespec_to_millis_round_up(deadline);
|
962
990
|
cq_is_finished_arg is_finished_arg = {
|
963
|
-
|
991
|
+
cqd->things_queued_ever.Load(grpc_core::MemoryOrder::RELAXED),
|
964
992
|
cq,
|
965
993
|
deadline_millis,
|
966
994
|
nullptr,
|
@@ -980,7 +1008,7 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
980
1008
|
break;
|
981
1009
|
}
|
982
1010
|
|
983
|
-
grpc_cq_completion* c =
|
1011
|
+
grpc_cq_completion* c = cqd->queue.Pop();
|
984
1012
|
|
985
1013
|
if (c != nullptr) {
|
986
1014
|
ret.type = GRPC_OP_COMPLETE;
|
@@ -994,16 +1022,17 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
994
1022
|
so that the thread comes back quickly from poll to make a second
|
995
1023
|
attempt at popping. Not doing this can potentially deadlock this
|
996
1024
|
thread forever (if the deadline is infinity) */
|
997
|
-
if (
|
1025
|
+
if (cqd->queue.num_items() > 0) {
|
998
1026
|
iteration_deadline = 0;
|
999
1027
|
}
|
1000
1028
|
}
|
1001
1029
|
|
1002
|
-
if (
|
1030
|
+
if (cqd->pending_events.Load(grpc_core::MemoryOrder::ACQUIRE) == 0) {
|
1003
1031
|
/* Before returning, check if the queue has any items left over (since
|
1004
|
-
|
1005
|
-
empty. If so, keep retrying but do not
|
1006
|
-
|
1032
|
+
MultiProducerSingleConsumerQueue::Pop() can sometimes return NULL
|
1033
|
+
even if the queue is not empty. If so, keep retrying but do not
|
1034
|
+
return GRPC_QUEUE_SHUTDOWN */
|
1035
|
+
if (cqd->queue.num_items() > 0) {
|
1007
1036
|
/* Go to the beginning of the loop. No point doing a poll because
|
1008
1037
|
(cq->shutdown == true) is only possible when there is no pending
|
1009
1038
|
work (i.e cq->pending_events == 0) and any outstanding completion
|
@@ -1011,15 +1040,15 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
1011
1040
|
continue;
|
1012
1041
|
}
|
1013
1042
|
|
1014
|
-
memset(&ret, 0, sizeof(ret));
|
1015
1043
|
ret.type = GRPC_QUEUE_SHUTDOWN;
|
1044
|
+
ret.success = 0;
|
1016
1045
|
break;
|
1017
1046
|
}
|
1018
1047
|
|
1019
1048
|
if (!is_finished_arg.first_loop &&
|
1020
1049
|
grpc_core::ExecCtx::Get()->Now() >= deadline_millis) {
|
1021
|
-
memset(&ret, 0, sizeof(ret));
|
1022
1050
|
ret.type = GRPC_QUEUE_TIMEOUT;
|
1051
|
+
ret.success = 0;
|
1023
1052
|
dump_pending_tags(cq);
|
1024
1053
|
break;
|
1025
1054
|
}
|
@@ -1036,16 +1065,16 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
1036
1065
|
gpr_log(GPR_ERROR, "Completion queue next failed: %s", msg);
|
1037
1066
|
|
1038
1067
|
GRPC_ERROR_UNREF(err);
|
1039
|
-
memset(&ret, 0, sizeof(ret));
|
1040
1068
|
ret.type = GRPC_QUEUE_TIMEOUT;
|
1069
|
+
ret.success = 0;
|
1041
1070
|
dump_pending_tags(cq);
|
1042
1071
|
break;
|
1043
1072
|
}
|
1044
1073
|
is_finished_arg.first_loop = false;
|
1045
1074
|
}
|
1046
1075
|
|
1047
|
-
if (
|
1048
|
-
|
1076
|
+
if (cqd->queue.num_items() > 0 &&
|
1077
|
+
cqd->pending_events.Load(grpc_core::MemoryOrder::ACQUIRE) > 0) {
|
1049
1078
|
gpr_mu_lock(cq->mu);
|
1050
1079
|
cq->poller_vtable->kick(POLLSET_FROM_CQ(cq), nullptr);
|
1051
1080
|
gpr_mu_unlock(cq->mu);
|
@@ -1069,7 +1098,7 @@ static void cq_finish_shutdown_next(grpc_completion_queue* cq) {
|
|
1069
1098
|
cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
|
1070
1099
|
|
1071
1100
|
GPR_ASSERT(cqd->shutdown_called);
|
1072
|
-
GPR_ASSERT(
|
1101
|
+
GPR_ASSERT(cqd->pending_events.Load(grpc_core::MemoryOrder::RELAXED) == 0);
|
1073
1102
|
|
1074
1103
|
cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
|
1075
1104
|
}
|
@@ -1091,10 +1120,10 @@ static void cq_shutdown_next(grpc_completion_queue* cq) {
|
|
1091
1120
|
return;
|
1092
1121
|
}
|
1093
1122
|
cqd->shutdown_called = true;
|
1094
|
-
/* Doing
|
1095
|
-
* cq_begin_op_for_next and
|
1123
|
+
/* Doing acq/release FetchSub here to match with
|
1124
|
+
* cq_begin_op_for_next and cq_end_op_for_next functions which read/write
|
1096
1125
|
* on this counter without necessarily holding a lock on cq */
|
1097
|
-
if (
|
1126
|
+
if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
|
1098
1127
|
cq_finish_shutdown_next(cq);
|
1099
1128
|
}
|
1100
1129
|
gpr_mu_unlock(cq->mu);
|
@@ -1143,12 +1172,12 @@ class ExecCtxPluck : public grpc_core::ExecCtx {
|
|
1143
1172
|
|
1144
1173
|
GPR_ASSERT(a->stolen_completion == nullptr);
|
1145
1174
|
gpr_atm current_last_seen_things_queued_ever =
|
1146
|
-
|
1175
|
+
cqd->things_queued_ever.Load(grpc_core::MemoryOrder::RELAXED);
|
1147
1176
|
if (current_last_seen_things_queued_ever !=
|
1148
1177
|
a->last_seen_things_queued_ever) {
|
1149
1178
|
gpr_mu_lock(cq->mu);
|
1150
1179
|
a->last_seen_things_queued_ever =
|
1151
|
-
|
1180
|
+
cqd->things_queued_ever.Load(grpc_core::MemoryOrder::RELAXED);
|
1152
1181
|
grpc_cq_completion* c;
|
1153
1182
|
grpc_cq_completion* prev = &cqd->completed_head;
|
1154
1183
|
while ((c = (grpc_cq_completion*)(prev->next &
|
@@ -1185,7 +1214,7 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1185
1214
|
grpc_pollset_worker* worker = nullptr;
|
1186
1215
|
cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
|
1187
1216
|
|
1188
|
-
if (grpc_cq_pluck_trace
|
1217
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_cq_pluck_trace)) {
|
1189
1218
|
GRPC_API_TRACE(
|
1190
1219
|
"grpc_completion_queue_pluck("
|
1191
1220
|
"cq=%p, tag=%p, "
|
@@ -1204,7 +1233,7 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1204
1233
|
gpr_mu_lock(cq->mu);
|
1205
1234
|
grpc_millis deadline_millis = grpc_timespec_to_millis_round_up(deadline);
|
1206
1235
|
cq_is_finished_arg is_finished_arg = {
|
1207
|
-
|
1236
|
+
cqd->things_queued_ever.Load(grpc_core::MemoryOrder::RELAXED),
|
1208
1237
|
cq,
|
1209
1238
|
deadline_millis,
|
1210
1239
|
nullptr,
|
@@ -1241,10 +1270,10 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1241
1270
|
}
|
1242
1271
|
prev = c;
|
1243
1272
|
}
|
1244
|
-
if (
|
1273
|
+
if (cqd->shutdown.Load(grpc_core::MemoryOrder::RELAXED)) {
|
1245
1274
|
gpr_mu_unlock(cq->mu);
|
1246
|
-
memset(&ret, 0, sizeof(ret));
|
1247
1275
|
ret.type = GRPC_QUEUE_SHUTDOWN;
|
1276
|
+
ret.success = 0;
|
1248
1277
|
break;
|
1249
1278
|
}
|
1250
1279
|
if (!add_plucker(cq, tag, &worker)) {
|
@@ -1253,9 +1282,9 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1253
1282
|
"is %d",
|
1254
1283
|
GRPC_MAX_COMPLETION_QUEUE_PLUCKERS);
|
1255
1284
|
gpr_mu_unlock(cq->mu);
|
1256
|
-
memset(&ret, 0, sizeof(ret));
|
1257
1285
|
/* TODO(ctiller): should we use a different result here */
|
1258
1286
|
ret.type = GRPC_QUEUE_TIMEOUT;
|
1287
|
+
ret.success = 0;
|
1259
1288
|
dump_pending_tags(cq);
|
1260
1289
|
break;
|
1261
1290
|
}
|
@@ -1263,8 +1292,8 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1263
1292
|
grpc_core::ExecCtx::Get()->Now() >= deadline_millis) {
|
1264
1293
|
del_plucker(cq, tag, &worker);
|
1265
1294
|
gpr_mu_unlock(cq->mu);
|
1266
|
-
memset(&ret, 0, sizeof(ret));
|
1267
1295
|
ret.type = GRPC_QUEUE_TIMEOUT;
|
1296
|
+
ret.success = 0;
|
1268
1297
|
dump_pending_tags(cq);
|
1269
1298
|
break;
|
1270
1299
|
}
|
@@ -1278,8 +1307,8 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1278
1307
|
gpr_log(GPR_ERROR, "Completion queue pluck failed: %s", msg);
|
1279
1308
|
|
1280
1309
|
GRPC_ERROR_UNREF(err);
|
1281
|
-
memset(&ret, 0, sizeof(ret));
|
1282
1310
|
ret.type = GRPC_QUEUE_TIMEOUT;
|
1311
|
+
ret.success = 0;
|
1283
1312
|
dump_pending_tags(cq);
|
1284
1313
|
break;
|
1285
1314
|
}
|
@@ -1304,8 +1333,8 @@ static void cq_finish_shutdown_pluck(grpc_completion_queue* cq) {
|
|
1304
1333
|
cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
|
1305
1334
|
|
1306
1335
|
GPR_ASSERT(cqd->shutdown_called);
|
1307
|
-
GPR_ASSERT(!
|
1308
|
-
|
1336
|
+
GPR_ASSERT(!cqd->shutdown.Load(grpc_core::MemoryOrder::RELAXED));
|
1337
|
+
cqd->shutdown.Store(1, grpc_core::MemoryOrder::RELAXED);
|
1309
1338
|
|
1310
1339
|
cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
|
1311
1340
|
}
|
@@ -1329,7 +1358,7 @@ static void cq_shutdown_pluck(grpc_completion_queue* cq) {
|
|
1329
1358
|
return;
|
1330
1359
|
}
|
1331
1360
|
cqd->shutdown_called = true;
|
1332
|
-
if (
|
1361
|
+
if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
|
1333
1362
|
cq_finish_shutdown_pluck(cq);
|
1334
1363
|
}
|
1335
1364
|
gpr_mu_unlock(cq->mu);
|
@@ -1343,7 +1372,16 @@ static void cq_finish_shutdown_callback(grpc_completion_queue* cq) {
|
|
1343
1372
|
GPR_ASSERT(cqd->shutdown_called);
|
1344
1373
|
|
1345
1374
|
cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
|
1346
|
-
|
1375
|
+
if (grpc_iomgr_is_any_background_poller_thread()) {
|
1376
|
+
grpc_core::ApplicationCallbackExecCtx::Enqueue(callback, true);
|
1377
|
+
return;
|
1378
|
+
}
|
1379
|
+
|
1380
|
+
// Schedule the callback on a closure if not internal or triggered
|
1381
|
+
// from a background poller thread.
|
1382
|
+
grpc_core::Executor::Run(
|
1383
|
+
GRPC_CLOSURE_CREATE(functor_callback, callback, nullptr),
|
1384
|
+
GRPC_ERROR_NONE);
|
1347
1385
|
}
|
1348
1386
|
|
1349
1387
|
static void cq_shutdown_callback(grpc_completion_queue* cq) {
|
@@ -1363,10 +1401,12 @@ static void cq_shutdown_callback(grpc_completion_queue* cq) {
|
|
1363
1401
|
return;
|
1364
1402
|
}
|
1365
1403
|
cqd->shutdown_called = true;
|
1366
|
-
if (
|
1404
|
+
if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
|
1405
|
+
gpr_mu_unlock(cq->mu);
|
1367
1406
|
cq_finish_shutdown_callback(cq);
|
1407
|
+
} else {
|
1408
|
+
gpr_mu_unlock(cq->mu);
|
1368
1409
|
}
|
1369
|
-
gpr_mu_unlock(cq->mu);
|
1370
1410
|
GRPC_CQ_INTERNAL_UNREF(cq, "shutting_down (callback cq)");
|
1371
1411
|
}
|
1372
1412
|
|
@@ -1374,6 +1414,7 @@ static void cq_shutdown_callback(grpc_completion_queue* cq) {
|
|
1374
1414
|
to zero here, then enter shutdown mode and wake up any waiters */
|
1375
1415
|
void grpc_completion_queue_shutdown(grpc_completion_queue* cq) {
|
1376
1416
|
GPR_TIMER_SCOPE("grpc_completion_queue_shutdown", 0);
|
1417
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
1377
1418
|
grpc_core::ExecCtx exec_ctx;
|
1378
1419
|
GRPC_API_TRACE("grpc_completion_queue_shutdown(cq=%p)", 1, (cq));
|
1379
1420
|
cq->vtable->shutdown(cq);
|