grpc 1.26.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 +7860 -11139
- data/etc/roots.pem +44 -0
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security.h +59 -24
- data/include/grpc/grpc_security_constants.h +28 -0
- data/include/grpc/impl/codegen/grpc_types.h +38 -21
- data/include/grpc/impl/codegen/port_platform.h +14 -3
- data/include/grpc/impl/codegen/sync.h +5 -3
- data/include/grpc/impl/codegen/sync_abseil.h +36 -0
- data/include/grpc/module.modulemap +25 -37
- data/include/grpc/support/sync_abseil.h +26 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +273 -264
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +31 -47
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -3
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/http_proxy.cc +25 -15
- data/src/core/ext/filters/client_channel/lb_policy.cc +20 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
- 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/grpclb.cc +423 -627
- 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_secure.cc +11 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +88 -121
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +28 -57
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +18 -21
- 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 +10 -14
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -11
- 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 +150 -101
- 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 +1 -2
- 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 +3 -3
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +49 -77
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
- data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
- data/src/core/ext/filters/client_channel/resolver.cc +5 -8
- data/src/core/ext/filters/client_channel/resolver.h +12 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +129 -128
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +17 -21
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +186 -135
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +7 -4
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +42 -45
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +94 -103
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +61 -10
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
- data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +242 -300
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +21 -18
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +56 -206
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +11 -14
- data/src/core/ext/filters/client_channel/server_address.cc +6 -9
- data/src/core/ext/filters/client_channel/server_address.h +6 -12
- data/src/core/ext/filters/client_channel/service_config.cc +144 -253
- data/src/core/ext/filters/client_channel/service_config.h +32 -109
- 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 +54 -24
- data/src/core/ext/filters/client_channel/subchannel.h +35 -11
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +1556 -232
- data/src/core/ext/filters/client_channel/xds/xds_api.h +213 -114
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +237 -345
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +34 -46
- data/src/core/ext/filters/client_channel/xds/xds_channel.h +3 -1
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +18 -11
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +1326 -399
- data/src/core/ext/filters/client_channel/xds/xds_client.h +124 -41
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +59 -138
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +133 -154
- data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
- 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/message_size/message_size_filter.cc +38 -44
- data/src/core/ext/filters/message_size/message_size_filter.h +5 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +7 -10
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +28 -29
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
- 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/internal.h +14 -21
- data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +16 -9
- data/src/core/ext/transport/inproc/inproc_transport.cc +41 -42
- 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 +5 -205
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -788
- 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 +5 -362
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +14 -1337
- 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 +30 -8
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +60 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +2 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +2 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +6 -2
- 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 +87 -23
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +262 -62
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +20 -15
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +46 -32
- 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 +27 -4
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +70 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +46 -25
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +98 -25
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +2 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +77 -21
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +201 -4
- 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 +2 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +8 -68
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +14 -201
- 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 +2 -71
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +3 -228
- 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 +2 -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 +1 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -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 +1 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +12 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +27 -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/google/protobuf/descriptor.upb.c +9 -8
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +30 -27
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +64 -52
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +13 -5
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +34 -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/validate/validate.upb.c +44 -39
- data/src/core/ext/upb-generated/validate/validate.upb.h +155 -119
- data/src/core/lib/channel/channel_args.cc +15 -14
- data/src/core/lib/channel/channel_args.h +3 -1
- data/src/core/lib/channel/channel_stack.h +20 -13
- data/src/core/lib/channel/channel_trace.cc +32 -41
- data/src/core/lib/channel/channel_trace.h +3 -3
- data/src/core/lib/channel/channelz.cc +163 -254
- data/src/core/lib/channel/channelz.h +20 -12
- data/src/core/lib/channel/channelz_registry.cc +52 -77
- data/src/core/lib/channel/channelz_registry.h +4 -4
- data/src/core/lib/channel/connected_channel.cc +7 -5
- data/src/core/lib/channel/context.h +1 -1
- data/src/core/lib/channel/handshaker.cc +11 -13
- data/src/core/lib/channel/handshaker.h +4 -2
- data/src/core/lib/channel/handshaker_registry.cc +5 -17
- data/src/core/lib/channel/status_util.cc +2 -3
- data/src/core/lib/compression/message_compress.cc +5 -1
- data/src/core/lib/debug/stats.cc +21 -27
- data/src/core/lib/debug/stats.h +3 -1
- data/src/core/lib/gpr/spinlock.h +2 -3
- data/src/core/lib/gpr/string.cc +2 -26
- data/src/core/lib/gpr/string.h +0 -16
- data/src/core/lib/gpr/sync_abseil.cc +116 -0
- data/src/core/lib/gpr/sync_posix.cc +8 -5
- data/src/core/lib/gpr/sync_windows.cc +4 -2
- data/src/core/lib/gpr/time.cc +4 -0
- data/src/core/lib/gpr/time_posix.cc +1 -1
- data/src/core/lib/gpr/time_precise.cc +1 -1
- data/src/core/lib/gprpp/atomic.h +6 -6
- data/src/core/lib/gprpp/fork.cc +1 -1
- data/src/core/lib/gprpp/host_port.cc +30 -36
- data/src/core/lib/gprpp/host_port.h +14 -17
- data/src/core/lib/gprpp/map.h +5 -11
- data/src/core/lib/gprpp/memory.h +2 -6
- data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
- data/src/core/lib/gprpp/sync.h +9 -0
- data/src/core/lib/http/format_request.cc +46 -65
- data/src/core/lib/http/httpcli.cc +2 -3
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/http/parser.h +2 -3
- data/src/core/lib/iomgr/buffer_list.cc +36 -35
- data/src/core/lib/iomgr/buffer_list.h +22 -21
- data/src/core/lib/iomgr/call_combiner.h +3 -2
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
- data/src/core/lib/iomgr/closure.h +2 -3
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
- data/src/core/lib/iomgr/endpoint_pair.h +2 -3
- data/src/core/lib/iomgr/error.cc +6 -9
- data/src/core/lib/iomgr/error.h +4 -5
- 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 +20 -23
- data/src/core/lib/iomgr/ev_epollex_linux.cc +14 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
- data/src/core/lib/iomgr/ev_posix.cc +2 -3
- data/src/core/lib/iomgr/exec_ctx.h +14 -2
- data/src/core/lib/iomgr/executor.cc +1 -1
- data/src/core/lib/iomgr/fork_posix.cc +4 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
- data/src/core/lib/iomgr/load_file.cc +1 -0
- 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/pollset_set_custom.cc +10 -10
- data/src/core/lib/iomgr/pollset_uv.h +32 -0
- data/src/core/lib/iomgr/port.h +1 -0
- data/src/core/lib/iomgr/python_util.h +46 -0
- data/src/core/lib/iomgr/resolve_address.h +4 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
- data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
- data/src/core/lib/iomgr/resource_quota.cc +4 -6
- data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
- 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 +21 -26
- data/src/core/lib/iomgr/socket_utils_posix.h +15 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
- data/src/core/lib/iomgr/tcp_client_posix.cc +25 -22
- data/src/core/lib/iomgr/tcp_client_posix.h +6 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
- data/src/core/lib/iomgr/tcp_custom.cc +2 -3
- data/src/core/lib/iomgr/tcp_custom.h +3 -0
- data/src/core/lib/iomgr/tcp_posix.cc +608 -56
- data/src/core/lib/iomgr/tcp_server_custom.cc +20 -11
- data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +13 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
- data/src/core/lib/iomgr/tcp_uv.cc +3 -2
- data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
- data/src/core/lib/iomgr/timer_generic.cc +2 -3
- data/src/core/lib/iomgr/timer_generic.h +39 -0
- data/src/core/lib/iomgr/timer_heap.h +2 -3
- data/src/core/lib/iomgr/udp_server.cc +9 -14
- 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/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +19 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +11 -4
- data/src/core/lib/security/credentials/credentials.cc +0 -84
- data/src/core/lib/security/credentials/credentials.h +18 -60
- data/src/core/lib/security/credentials/fake/fake_credentials.h +6 -1
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -12
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
- data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +26 -56
- data/src/core/lib/security/credentials/jwt/json_token.h +4 -6
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -18
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +151 -168
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -6
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +92 -61
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +10 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +19 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +4 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +43 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +47 -11
- 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 +34 -6
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +29 -9
- 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 +5 -4
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +32 -7
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -37
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +107 -16
- data/src/core/lib/security/security_connector/ssl_utils.h +24 -11
- 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/client_auth_filter.cc +34 -2
- data/src/core/lib/security/transport/security_handshaker.cc +2 -2
- data/src/core/lib/security/util/json_util.cc +22 -15
- data/src/core/lib/security/util/json_util.h +2 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +14 -0
- data/src/core/lib/slice/slice_utils.h +9 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
- data/src/core/lib/surface/call.cc +2 -3
- data/src/core/lib/surface/call_log_batch.cc +50 -58
- data/src/core/lib/surface/channel.cc +53 -31
- data/src/core/lib/surface/channel.h +35 -4
- data/src/core/lib/surface/channel_ping.cc +2 -3
- data/src/core/lib/surface/completion_queue.cc +55 -34
- 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_secure.cc +1 -4
- data/src/core/lib/surface/server.cc +570 -369
- data/src/core/lib/surface/server.h +32 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.h +7 -2
- data/src/core/lib/transport/connectivity_state.cc +7 -6
- data/src/core/lib/transport/connectivity_state.h +5 -3
- data/src/core/lib/transport/metadata.cc +3 -3
- data/src/core/lib/transport/metadata_batch.h +2 -3
- data/src/core/lib/transport/static_metadata.h +1 -1
- data/src/core/lib/transport/status_conversion.cc +6 -14
- data/src/core/lib/transport/transport.cc +2 -3
- data/src/core/lib/transport/transport.h +3 -2
- data/src/core/lib/transport/transport_op_string.cc +61 -102
- data/src/core/lib/uri/uri_parser.h +2 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +9 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +44 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +10 -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 +3 -3
- data/src/core/tsi/fake_transport_security.cc +17 -18
- data/src/core/tsi/fake_transport_security.h +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +197 -47
- data/src/core/tsi/ssl_transport_security.h +23 -9
- data/src/core/tsi/ssl_types.h +0 -2
- data/src/core/tsi/transport_security.cc +13 -0
- data/src/core/tsi/transport_security.h +6 -9
- data/src/core/tsi/transport_security_grpc.cc +2 -2
- data/src/core/tsi/transport_security_grpc.h +4 -5
- data/src/core/tsi/transport_security_interface.h +15 -3
- data/src/ruby/bin/math_pb.rb +5 -5
- data/src/ruby/ext/grpc/rb_call.c +9 -1
- data/src/ruby/ext/grpc/rb_call_credentials.c +4 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
- data/src/ruby/lib/grpc/errors.rb +103 -42
- data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
- data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
- data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
- data/src/ruby/lib/grpc/generic/service.rb +5 -4
- data/src/ruby/lib/grpc/structs.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +5 -3
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +3 -3
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +34 -13
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
- data/src/ruby/spec/debug_message_spec.rb +134 -0
- data/src/ruby/spec/generic/service_spec.rb +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +5 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -0
- 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 → boringssl-with-bazel/src}/crypto/asn1/a_bool.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_d2i_fp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_dup.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_enum.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_gentm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_i2d_fp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_mbstr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_object.c +0 -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 → boringssl-with-bazel/src}/crypto/asn1/a_strnid.c +0 -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 → boringssl-with-bazel/src}/crypto/asn1/asn1_lib.c +0 -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 → boringssl-with-bazel/src}/crypto/asn1/tasn_enc.c +0 -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 → boringssl-with-bazel/src}/crypto/base64/base64.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio.c +0 -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 → boringssl-with-bazel/src}/crypto/bio/socket.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket_helper.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/bn_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/convert.c +0 -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 → boringssl-with-bazel/src}/crypto/bytestring/ber.c +0 -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 → boringssl-with-bazel/src}/crypto/bytestring/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/unicode.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/chacha.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/cipher_extra.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +152 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesccm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesctrhmac.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +891 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_chacha20poly1305.c +0 -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 → boringssl-with-bazel/src}/crypto/cipher_extra/e_tls.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/tls_cbc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cmac/cmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf.c +0 -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 → boringssl-with-bazel/src}/crypto/cpu-arm-linux.h +0 -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 → boringssl-with-bazel/src}/crypto/ec_extra/ec_asn1.c +0 -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 → boringssl-with-bazel/src}/crypto/ecdsa_extra/ecdsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/engine/engine.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +850 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/digestsign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_ctx.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_dsa_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +286 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +648 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519.c +0 -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 → boringssl-with-bazel/src}/crypto/evp/scrypt.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/aes/key_wrap.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bytes.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/cmp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/ctx.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div_extra.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +1288 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd_extra.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery_inv.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/bn/random.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/shift.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/cipher.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +1302 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_des.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/delocate.h +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digest.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/digest/md32_common.h +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.h +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/ec/util.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/fips_shared_support.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/hmac/hmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/is_fips.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md4/md4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/md5.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cbc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cfb.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ctr.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ofb.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/polyval.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/ctrdrbg.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/padding.c +0 -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 → boringssl-with-bazel/src}/crypto/fipsmodule/self_check/self_check.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1-altivec.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha256.c +0 -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 → boringssl-with-bazel/src}/crypto/lhash/lhash.c +0 -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 → boringssl-with-bazel/src}/crypto/pem/pem_all.c +0 -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 → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +385 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/p5_pbev2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8_x509.c +0 -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 → boringssl-with-bazel/src}/crypto/pool/internal.h +0 -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 → boringssl-with-bazel/src}/crypto/rand_extra/fuchsia.c +0 -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 → boringssl-with-bazel/src}/crypto/refcount_lock.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_print.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +82 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/stack/stack.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_none.c +0 -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 → boringssl-with-bazel/src}/crypto/x509/a_strex.c +0 -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 → boringssl-with-bazel/src}/crypto/x509/asn1_gen.c +0 -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 → boringssl-with-bazel/src}/crypto/x509/t_crl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_req.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509.c +0 -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 → boringssl-with-bazel/src}/crypto/x509/x509_def.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_ext.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_lu.c +0 -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 → boringssl-with-bazel/src}/crypto/x509/x509_txt.c +0 -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 → boringssl-with-bazel/src}/crypto/x509/x509cset.c +0 -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 → boringssl-with-bazel/src}/crypto/x509/x_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509a.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/ext_dat.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_cache.c +0 -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 → boringssl-with-bazel/src}/crypto/x509v3/pcy_node.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_tree.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akey.c +0 -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 → boringssl-with-bazel/src}/crypto/x509v3/v3_conf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_cpols.c +0 -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 → boringssl-with-bazel/src}/crypto/x509v3/v3_genn.c +0 -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 → boringssl-with-bazel/src}/crypto/x509v3/v3_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ncons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ocsp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pci.c +0 -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 → boringssl-with-bazel/src}/crypto/x509v3/v3_skey.c +0 -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 → boringssl-with-bazel/src}/include/openssl/aead.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aes.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/arm_arch.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1.h +0 -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 → boringssl-with-bazel/src}/include/openssl/base64.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bio.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/blowfish.h +0 -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 → boringssl-with-bazel/src}/include/openssl/cast.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/chacha.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cipher.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cmac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/conf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cpu.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +149 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/curve25519.h +0 -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 → boringssl-with-bazel/src}/include/openssl/e_os2.h +0 -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 → boringssl-with-bazel/src}/include/openssl/ecdh.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +205 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/engine.h +0 -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 → boringssl-with-bazel/src}/include/openssl/hmac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hrss.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/is_boringssl.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/lhash.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md4.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md5.h +0 -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 → boringssl-with-bazel/src}/include/openssl/obj.h +0 -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 → boringssl-with-bazel/src}/include/openssl/pem.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs12.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs7.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs8.h +0 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +49 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pool.h +0 -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 → boringssl-with-bazel/src}/include/openssl/ripemd.h +0 -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 → boringssl-with-bazel/src}/include/openssl/siphash.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/span.h +0 -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 → boringssl-with-bazel/src}/include/openssl/ssl3.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/stack.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/thread.h +0 -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 → boringssl-with-bazel/src}/include/openssl/type_check.h +0 -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 → boringssl-with-bazel/src}/include/openssl/x509v3.h +0 -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 → boringssl-with-bazel/src}/ssl/d1_srtp.cc +0 -0
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +200 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_record.cc +0 -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 → boringssl-with-bazel/src}/ssl/ssl_aead_ctx.cc +0 -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 → boringssl-with-bazel/src}/ssl/ssl_file.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_key_share.cc +0 -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 → boringssl-with-bazel/src}/ssl/ssl_transcript.cc +0 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +394 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_x509.cc +0 -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/upb/upb/decode.c +4 -0
- data/third_party/upb/upb/port.c +0 -1
- data/third_party/upb/upb/port_def.inc +1 -3
- data/third_party/upb/upb/table.c +2 -1
- metadata +758 -509
- data/src/boringssl/err_data.c +0 -1407
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1898
- data/src/core/lib/gprpp/inlined_vector.h +0 -246
- data/src/core/lib/gprpp/optional.h +0 -48
- data/src/core/lib/gprpp/string_view.h +0 -165
- data/src/core/lib/iomgr/logical_thread.cc +0 -103
- data/src/core/lib/iomgr/logical_thread.h +0 -52
- data/src/core/lib/json/json.cc +0 -94
- 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/credentials/tls/spiffe_credentials.cc +0 -129
- data/src/core/lib/security/credentials/tls/spiffe_credentials.h +0 -62
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +0 -541
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +0 -158
- data/src/core/tsi/grpc_shadow_boringssl.h +0 -3297
- data/third_party/boringssl/crypto/asn1/a_time.c +0 -213
- data/third_party/boringssl/crypto/bio/connect.c +0 -546
- data/third_party/boringssl/crypto/bio/fd.c +0 -280
- data/third_party/boringssl/crypto/bio/file.c +0 -318
- data/third_party/boringssl/crypto/bio/pair.c +0 -489
- data/third_party/boringssl/crypto/buf/buf.c +0 -231
- data/third_party/boringssl/crypto/bytestring/cbb.c +0 -680
- data/third_party/boringssl/crypto/bytestring/cbs.c +0 -631
- data/third_party/boringssl/crypto/cipher_extra/derive_key.c +0 -152
- data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +0 -883
- data/third_party/boringssl/crypto/cpu-arm-linux.c +0 -219
- data/third_party/boringssl/crypto/cpu-intel.c +0 -282
- data/third_party/boringssl/crypto/crypto.c +0 -215
- 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 -970
- data/third_party/boringssl/crypto/ec_extra/ec_derive.c +0 -96
- data/third_party/boringssl/crypto/ecdh_extra/ecdh_extra.c +0 -124
- data/third_party/boringssl/crypto/err/err.c +0 -849
- data/third_party/boringssl/crypto/evp/p_ec.c +0 -287
- data/third_party/boringssl/crypto/evp/p_rsa.c +0 -636
- data/third_party/boringssl/crypto/evp/p_x25519_asn1.c +0 -249
- data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +0 -860
- data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +0 -240
- data/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.c +0 -108
- data/third_party/boringssl/crypto/fipsmodule/bcm.c +0 -260
- data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +0 -1288
- data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +0 -691
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +0 -502
- data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +0 -873
- data/third_party/boringssl/crypto/fipsmodule/bn/prime.c +0 -1069
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.c +0 -1304
- data/third_party/boringssl/crypto/fipsmodule/digest/digests.c +0 -280
- data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +0 -1080
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_key.c +0 -479
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +0 -483
- data/third_party/boringssl/crypto/fipsmodule/ec/felem.c +0 -82
- data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +0 -503
- data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +0 -336
- data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +0 -1187
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +0 -9501
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +0 -651
- data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +0 -96
- data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +0 -380
- data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +0 -84
- data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +0 -227
- data/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.c +0 -122
- data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +0 -313
- data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +0 -877
- data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +0 -451
- data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +0 -127
- data/third_party/boringssl/crypto/fipsmodule/rand/rand.c +0 -363
- data/third_party/boringssl/crypto/fipsmodule/rand/urandom.c +0 -481
- 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/rsa.c +0 -879
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +0 -1335
- data/third_party/boringssl/crypto/fipsmodule/sha/sha512.c +0 -535
- data/third_party/boringssl/crypto/hrss/hrss.c +0 -2201
- data/third_party/boringssl/crypto/hrss/internal.h +0 -62
- data/third_party/boringssl/crypto/internal.h +0 -814
- data/third_party/boringssl/crypto/mem.c +0 -272
- data/third_party/boringssl/crypto/obj/obj.c +0 -554
- data/third_party/boringssl/crypto/obj/obj_dat.h +0 -11550
- data/third_party/boringssl/crypto/pem/pem_info.c +0 -361
- data/third_party/boringssl/crypto/pem/pem_lib.c +0 -777
- 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 -219
- data/third_party/boringssl/crypto/pkcs7/pkcs7_x509.c +0 -385
- 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/pool.c +0 -221
- data/third_party/boringssl/crypto/rand_extra/deterministic.c +0 -56
- data/third_party/boringssl/crypto/rand_extra/windows.c +0 -53
- data/third_party/boringssl/crypto/siphash/siphash.c +0 -80
- data/third_party/boringssl/crypto/thread_pthread.c +0 -206
- data/third_party/boringssl/crypto/thread_win.c +0 -256
- data/third_party/boringssl/crypto/x509/a_verify.c +0 -115
- data/third_party/boringssl/crypto/x509/by_dir.c +0 -458
- data/third_party/boringssl/crypto/x509/by_file.c +0 -276
- data/third_party/boringssl/crypto/x509/x509_cmp.c +0 -477
- 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 -342
- data/third_party/boringssl/crypto/x509/x509_set.c +0 -169
- data/third_party/boringssl/crypto/x509/x509_trs.c +0 -327
- data/third_party/boringssl/crypto/x509/x509_vfy.c +0 -2483
- data/third_party/boringssl/crypto/x509/x509_vpm.c +0 -672
- data/third_party/boringssl/crypto/x509/x509name.c +0 -388
- data/third_party/boringssl/crypto/x509/x_all.c +0 -400
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +0 -629
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +0 -100
- data/third_party/boringssl/crypto/x509v3/v3_info.c +0 -219
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +0 -844
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +0 -1396
- data/third_party/boringssl/include/openssl/base.h +0 -571
- data/third_party/boringssl/include/openssl/bn.h +0 -1045
- data/third_party/boringssl/include/openssl/buf.h +0 -137
- data/third_party/boringssl/include/openssl/bytestring.h +0 -527
- data/third_party/boringssl/include/openssl/crypto.h +0 -144
- data/third_party/boringssl/include/openssl/dh.h +0 -299
- data/third_party/boringssl/include/openssl/digest.h +0 -330
- data/third_party/boringssl/include/openssl/dsa.h +0 -441
- data/third_party/boringssl/include/openssl/ec.h +0 -417
- data/third_party/boringssl/include/openssl/ec_key.h +0 -370
- data/third_party/boringssl/include/openssl/ecdsa.h +0 -199
- data/third_party/boringssl/include/openssl/err.h +0 -461
- data/third_party/boringssl/include/openssl/evp.h +0 -1030
- data/third_party/boringssl/include/openssl/mem.h +0 -160
- data/third_party/boringssl/include/openssl/nid.h +0 -4245
- data/third_party/boringssl/include/openssl/poly1305.h +0 -51
- data/third_party/boringssl/include/openssl/rand.h +0 -125
- data/third_party/boringssl/include/openssl/rsa.h +0 -787
- data/third_party/boringssl/include/openssl/sha.h +0 -268
- data/third_party/boringssl/include/openssl/ssl.h +0 -5113
- data/third_party/boringssl/include/openssl/tls1.h +0 -634
- data/third_party/boringssl/include/openssl/x509.h +0 -1205
- data/third_party/boringssl/include/openssl/x509_vfy.h +0 -680
- data/third_party/boringssl/ssl/d1_both.cc +0 -842
- data/third_party/boringssl/ssl/d1_lib.cc +0 -268
- data/third_party/boringssl/ssl/d1_pkt.cc +0 -274
- data/third_party/boringssl/ssl/dtls_method.cc +0 -192
- data/third_party/boringssl/ssl/handoff.cc +0 -489
- data/third_party/boringssl/ssl/handshake.cc +0 -691
- data/third_party/boringssl/ssl/handshake_client.cc +0 -1871
- data/third_party/boringssl/ssl/handshake_server.cc +0 -1801
- data/third_party/boringssl/ssl/internal.h +0 -3549
- data/third_party/boringssl/ssl/s3_both.cc +0 -724
- data/third_party/boringssl/ssl/s3_lib.cc +0 -222
- data/third_party/boringssl/ssl/s3_pkt.cc +0 -459
- data/third_party/boringssl/ssl/ssl_asn1.cc +0 -828
- data/third_party/boringssl/ssl/ssl_buffer.cc +0 -287
- data/third_party/boringssl/ssl/ssl_cert.cc +0 -1016
- data/third_party/boringssl/ssl/ssl_cipher.cc +0 -1719
- data/third_party/boringssl/ssl/ssl_lib.cc +0 -3011
- data/third_party/boringssl/ssl/ssl_privkey.cc +0 -824
- data/third_party/boringssl/ssl/ssl_session.cc +0 -1273
- data/third_party/boringssl/ssl/ssl_stat.cc +0 -224
- data/third_party/boringssl/ssl/ssl_versions.cc +0 -394
- data/third_party/boringssl/ssl/t1_enc.cc +0 -361
- data/third_party/boringssl/ssl/t1_lib.cc +0 -4036
- data/third_party/boringssl/ssl/tls13_both.cc +0 -689
- data/third_party/boringssl/ssl/tls13_client.cc +0 -947
- data/third_party/boringssl/ssl/tls13_enc.cc +0 -561
- data/third_party/boringssl/ssl/tls13_server.cc +0 -1089
- data/third_party/boringssl/ssl/tls_method.cc +0 -279
- data/third_party/boringssl/ssl/tls_record.cc +0 -698
- data/third_party/boringssl/third_party/fiat/curve25519.c +0 -2167
- data/third_party/boringssl/third_party/fiat/curve25519_32.h +0 -911
- data/third_party/boringssl/third_party/fiat/curve25519_64.h +0 -559
- 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 -1063
- data/third_party/boringssl/third_party/fiat/p256_32.h +0 -3226
- data/third_party/boringssl/third_party/fiat/p256_64.h +0 -1217
@@ -46,12 +46,14 @@ extern "C" {
|
|
46
46
|
|
47
47
|
#include <grpc/impl/codegen/sync_generic.h>
|
48
48
|
|
49
|
-
#if defined(
|
49
|
+
#if defined(GPR_CUSTOM_SYNC)
|
50
|
+
#include <grpc/impl/codegen/sync_custom.h>
|
51
|
+
#elif defined(GPR_ABSEIL_SYNC)
|
52
|
+
#include <grpc/impl/codegen/sync_abseil.h>
|
53
|
+
#elif defined(GPR_POSIX_SYNC)
|
50
54
|
#include <grpc/impl/codegen/sync_posix.h>
|
51
55
|
#elif defined(GPR_WINDOWS)
|
52
56
|
#include <grpc/impl/codegen/sync_windows.h>
|
53
|
-
#elif defined(GPR_CUSTOM_SYNC)
|
54
|
-
#include <grpc/impl/codegen/sync_custom.h>
|
55
57
|
#else
|
56
58
|
#error Unable to determine platform for sync
|
57
59
|
#endif
|
@@ -0,0 +1,36 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2020 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#ifndef GRPC_IMPL_CODEGEN_SYNC_ABSEIL_H
|
20
|
+
#define GRPC_IMPL_CODEGEN_SYNC_ABSEIL_H
|
21
|
+
|
22
|
+
#include <grpc/impl/codegen/port_platform.h>
|
23
|
+
|
24
|
+
#include <grpc/impl/codegen/sync_generic.h>
|
25
|
+
|
26
|
+
#ifdef GPR_ABSEIL_SYNC
|
27
|
+
|
28
|
+
typedef intptr_t gpr_mu;
|
29
|
+
typedef intptr_t gpr_cv;
|
30
|
+
typedef int32_t gpr_once;
|
31
|
+
|
32
|
+
#define GPR_ONCE_INIT 0
|
33
|
+
|
34
|
+
#endif
|
35
|
+
|
36
|
+
#endif /* GRPC_IMPL_CODEGEN_SYNC_ABSEIL_H */
|
@@ -2,74 +2,62 @@
|
|
2
2
|
framework module grpc {
|
3
3
|
umbrella header "grpc.h"
|
4
4
|
|
5
|
-
header "support/alloc.h"
|
6
|
-
header "support/atm.h"
|
7
|
-
header "support/cpu.h"
|
8
|
-
header "support/log.h"
|
9
|
-
header "support/log_windows.h"
|
10
|
-
header "support/port_platform.h"
|
11
|
-
header "support/string_util.h"
|
12
|
-
header "support/sync.h"
|
13
|
-
header "support/sync_generic.h"
|
14
|
-
header "support/thd_id.h"
|
15
|
-
header "support/time.h"
|
16
5
|
header "impl/codegen/atm.h"
|
17
|
-
header "impl/codegen/fork.h"
|
18
|
-
header "impl/codegen/gpr_slice.h"
|
19
|
-
header "impl/codegen/gpr_types.h"
|
20
|
-
header "impl/codegen/log.h"
|
21
|
-
header "impl/codegen/port_platform.h"
|
22
|
-
header "impl/codegen/sync.h"
|
23
|
-
header "impl/codegen/sync_generic.h"
|
24
6
|
header "impl/codegen/byte_buffer.h"
|
25
7
|
header "impl/codegen/byte_buffer_reader.h"
|
26
8
|
header "impl/codegen/compression_types.h"
|
27
9
|
header "impl/codegen/connectivity_state.h"
|
28
|
-
header "impl/codegen/grpc_types.h"
|
29
|
-
header "impl/codegen/propagation_bits.h"
|
30
|
-
header "impl/codegen/slice.h"
|
31
|
-
header "impl/codegen/status.h"
|
32
|
-
header "impl/codegen/atm.h"
|
33
10
|
header "impl/codegen/fork.h"
|
34
11
|
header "impl/codegen/gpr_slice.h"
|
35
12
|
header "impl/codegen/gpr_types.h"
|
13
|
+
header "impl/codegen/grpc_types.h"
|
36
14
|
header "impl/codegen/log.h"
|
37
15
|
header "impl/codegen/port_platform.h"
|
16
|
+
header "impl/codegen/propagation_bits.h"
|
17
|
+
header "impl/codegen/slice.h"
|
18
|
+
header "impl/codegen/status.h"
|
38
19
|
header "impl/codegen/sync.h"
|
20
|
+
header "impl/codegen/sync_abseil.h"
|
39
21
|
header "impl/codegen/sync_generic.h"
|
40
|
-
header "
|
22
|
+
header "support/alloc.h"
|
23
|
+
header "support/atm.h"
|
24
|
+
header "support/cpu.h"
|
25
|
+
header "support/log.h"
|
26
|
+
header "support/log_windows.h"
|
27
|
+
header "support/port_platform.h"
|
28
|
+
header "support/string_util.h"
|
29
|
+
header "support/sync.h"
|
30
|
+
header "support/sync_abseil.h"
|
31
|
+
header "support/sync_generic.h"
|
32
|
+
header "support/thd_id.h"
|
33
|
+
header "support/time.h"
|
41
34
|
header "byte_buffer.h"
|
42
35
|
header "byte_buffer_reader.h"
|
36
|
+
header "census.h"
|
43
37
|
header "compression.h"
|
44
38
|
header "fork.h"
|
45
39
|
header "grpc.h"
|
46
40
|
header "grpc_posix.h"
|
41
|
+
header "grpc_security.h"
|
47
42
|
header "grpc_security_constants.h"
|
48
43
|
header "load_reporting.h"
|
49
44
|
header "slice.h"
|
50
45
|
header "slice_buffer.h"
|
51
46
|
header "status.h"
|
52
47
|
header "support/workaround_list.h"
|
53
|
-
header "census.h"
|
54
48
|
|
55
|
-
textual header "support/atm_gcc_atomic.h"
|
56
|
-
textual header "support/atm_gcc_sync.h"
|
57
|
-
textual header "support/atm_windows.h"
|
58
|
-
textual header "support/sync_custom.h"
|
59
|
-
textual header "support/sync_posix.h"
|
60
|
-
textual header "support/sync_windows.h"
|
61
|
-
textual header "impl/codegen/atm_gcc_atomic.h"
|
62
|
-
textual header "impl/codegen/atm_gcc_sync.h"
|
63
|
-
textual header "impl/codegen/atm_windows.h"
|
64
|
-
textual header "impl/codegen/sync_custom.h"
|
65
|
-
textual header "impl/codegen/sync_posix.h"
|
66
|
-
textual header "impl/codegen/sync_windows.h"
|
67
49
|
textual header "impl/codegen/atm_gcc_atomic.h"
|
68
50
|
textual header "impl/codegen/atm_gcc_sync.h"
|
69
51
|
textual header "impl/codegen/atm_windows.h"
|
70
52
|
textual header "impl/codegen/sync_custom.h"
|
71
53
|
textual header "impl/codegen/sync_posix.h"
|
72
54
|
textual header "impl/codegen/sync_windows.h"
|
55
|
+
textual header "support/atm_gcc_atomic.h"
|
56
|
+
textual header "support/atm_gcc_sync.h"
|
57
|
+
textual header "support/atm_windows.h"
|
58
|
+
textual header "support/sync_custom.h"
|
59
|
+
textual header "support/sync_posix.h"
|
60
|
+
textual header "support/sync_windows.h"
|
73
61
|
|
74
62
|
export *
|
75
63
|
module * { export * }
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2020 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#ifndef GRPC_SUPPORT_SYNC_ABSEIL_H
|
20
|
+
#define GRPC_SUPPORT_SYNC_ABSEIL_H
|
21
|
+
|
22
|
+
#include <grpc/support/port_platform.h>
|
23
|
+
|
24
|
+
#include <grpc/impl/codegen/sync_abseil.h>
|
25
|
+
|
26
|
+
#endif /* GRPC_SUPPORT_SYNC_ABSEIL_H */
|
@@ -18,27 +18,30 @@
|
|
18
18
|
|
19
19
|
#include "src/core/ext/filters/client_channel/backend_metric.h"
|
20
20
|
|
21
|
-
#include "
|
21
|
+
#include "absl/strings/string_view.h"
|
22
|
+
|
22
23
|
#include "udpa/data/orca/v1/orca_load_report.upb.h"
|
23
24
|
|
25
|
+
#include "src/core/lib/gprpp/map.h"
|
26
|
+
|
24
27
|
namespace grpc_core {
|
25
28
|
|
26
29
|
namespace {
|
27
30
|
|
28
31
|
template <typename EntryType>
|
29
|
-
std::map<
|
32
|
+
std::map<absl::string_view, double, StringLess> ParseMap(
|
30
33
|
udpa_data_orca_v1_OrcaLoadReport* msg,
|
31
34
|
EntryType** (*entry_func)(udpa_data_orca_v1_OrcaLoadReport*, size_t*),
|
32
35
|
upb_strview (*key_func)(const EntryType*),
|
33
36
|
double (*value_func)(const EntryType*), Arena* arena) {
|
34
|
-
std::map<
|
37
|
+
std::map<absl::string_view, double, StringLess> result;
|
35
38
|
size_t size;
|
36
39
|
const auto* const* entries = entry_func(msg, &size);
|
37
40
|
for (size_t i = 0; i < size; ++i) {
|
38
41
|
upb_strview key_view = key_func(entries[i]);
|
39
42
|
char* key = static_cast<char*>(arena->Alloc(key_view.size + 1));
|
40
43
|
memcpy(key, key_view.data, key_view.size);
|
41
|
-
result[
|
44
|
+
result[absl::string_view(key, key_view.size)] = value_func(entries[i]);
|
42
45
|
}
|
43
46
|
return result;
|
44
47
|
}
|
@@ -28,11 +28,16 @@
|
|
28
28
|
|
29
29
|
#include <set>
|
30
30
|
|
31
|
+
#include "absl/strings/string_view.h"
|
32
|
+
|
31
33
|
#include <grpc/support/alloc.h>
|
32
34
|
#include <grpc/support/log.h>
|
33
35
|
#include <grpc/support/string_util.h>
|
34
36
|
#include <grpc/support/sync.h>
|
35
37
|
|
38
|
+
#include "absl/container/inlined_vector.h"
|
39
|
+
#include "absl/types/optional.h"
|
40
|
+
|
36
41
|
#include "src/core/ext/filters/client_channel/backend_metric.h"
|
37
42
|
#include "src/core/ext/filters/client_channel/backup_poller.h"
|
38
43
|
#include "src/core/ext/filters/client_channel/global_subchannel_pool.h"
|
@@ -45,6 +50,7 @@
|
|
45
50
|
#include "src/core/ext/filters/client_channel/resolving_lb_policy.h"
|
46
51
|
#include "src/core/ext/filters/client_channel/retry_throttle.h"
|
47
52
|
#include "src/core/ext/filters/client_channel/service_config.h"
|
53
|
+
#include "src/core/ext/filters/client_channel/service_config_call_data.h"
|
48
54
|
#include "src/core/ext/filters/client_channel/subchannel.h"
|
49
55
|
#include "src/core/ext/filters/deadline/deadline_filter.h"
|
50
56
|
#include "src/core/lib/backoff/backoff.h"
|
@@ -52,13 +58,12 @@
|
|
52
58
|
#include "src/core/lib/channel/connected_channel.h"
|
53
59
|
#include "src/core/lib/channel/status_util.h"
|
54
60
|
#include "src/core/lib/gpr/string.h"
|
55
|
-
#include "src/core/lib/gprpp/inlined_vector.h"
|
56
61
|
#include "src/core/lib/gprpp/manual_constructor.h"
|
57
62
|
#include "src/core/lib/gprpp/map.h"
|
58
63
|
#include "src/core/lib/gprpp/sync.h"
|
59
|
-
#include "src/core/lib/iomgr/combiner.h"
|
60
64
|
#include "src/core/lib/iomgr/iomgr.h"
|
61
65
|
#include "src/core/lib/iomgr/polling_entity.h"
|
66
|
+
#include "src/core/lib/iomgr/work_serializer.h"
|
62
67
|
#include "src/core/lib/profiling/timers.h"
|
63
68
|
#include "src/core/lib/slice/slice_internal.h"
|
64
69
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
@@ -126,6 +131,7 @@ class ChannelData {
|
|
126
131
|
size_t per_rpc_retry_buffer_size() const {
|
127
132
|
return per_rpc_retry_buffer_size_;
|
128
133
|
}
|
134
|
+
grpc_channel_stack* owning_stack() const { return owning_stack_; }
|
129
135
|
|
130
136
|
// Note: Does NOT return a new ref.
|
131
137
|
grpc_error* disconnect_error() const {
|
@@ -149,6 +155,7 @@ class ChannelData {
|
|
149
155
|
RefCountedPtr<ServiceConfig> service_config() const {
|
150
156
|
return service_config_;
|
151
157
|
}
|
158
|
+
WorkSerializer* work_serializer() const { return work_serializer_.get(); }
|
152
159
|
|
153
160
|
RefCountedPtr<ConnectedSubchannel> GetConnectedSubchannelInDataPlane(
|
154
161
|
SubchannelInterface* subchannel) const;
|
@@ -159,11 +166,15 @@ class ChannelData {
|
|
159
166
|
grpc_connectivity_state* state,
|
160
167
|
grpc_closure* on_complete,
|
161
168
|
grpc_closure* watcher_timer_init) {
|
162
|
-
|
163
|
-
// Will be deleted when the watch is complete.
|
164
|
-
GPR_ASSERT(external_watchers_[on_complete] == nullptr);
|
165
|
-
external_watchers_[on_complete] = new ExternalConnectivityWatcher(
|
169
|
+
auto* watcher = new ExternalConnectivityWatcher(
|
166
170
|
this, pollent, state, on_complete, watcher_timer_init);
|
171
|
+
{
|
172
|
+
MutexLock lock(&external_watchers_mu_);
|
173
|
+
// Will be deleted when the watch is complete.
|
174
|
+
GPR_ASSERT(external_watchers_[on_complete] == nullptr);
|
175
|
+
external_watchers_[on_complete] = watcher;
|
176
|
+
}
|
177
|
+
watcher->Start();
|
167
178
|
}
|
168
179
|
|
169
180
|
void RemoveExternalConnectivityWatcher(grpc_closure* on_complete,
|
@@ -204,13 +215,15 @@ class ChannelData {
|
|
204
215
|
|
205
216
|
~ExternalConnectivityWatcher();
|
206
217
|
|
218
|
+
void Start();
|
219
|
+
|
207
220
|
void Notify(grpc_connectivity_state state) override;
|
208
221
|
|
209
222
|
void Cancel();
|
210
223
|
|
211
224
|
private:
|
212
|
-
|
213
|
-
|
225
|
+
void AddWatcherLocked();
|
226
|
+
void RemoveWatcherLocked();
|
214
227
|
|
215
228
|
ChannelData* chand_;
|
216
229
|
grpc_polling_entity pollent_;
|
@@ -218,8 +231,6 @@ class ChannelData {
|
|
218
231
|
grpc_connectivity_state* state_;
|
219
232
|
grpc_closure* on_complete_;
|
220
233
|
grpc_closure* watcher_timer_init_;
|
221
|
-
grpc_closure add_closure_;
|
222
|
-
grpc_closure remove_closure_;
|
223
234
|
Atomic<bool> done_{false};
|
224
235
|
};
|
225
236
|
|
@@ -239,20 +250,19 @@ class ChannelData {
|
|
239
250
|
void DestroyResolvingLoadBalancingPolicyLocked();
|
240
251
|
|
241
252
|
static bool ProcessResolverResultLocked(
|
242
|
-
void* arg, const Resolver::Result& result,
|
253
|
+
void* arg, const Resolver::Result& result,
|
243
254
|
RefCountedPtr<LoadBalancingPolicy::Config>* lb_policy_config,
|
244
|
-
grpc_error** service_config_error);
|
255
|
+
grpc_error** service_config_error, bool* no_valid_service_config);
|
245
256
|
|
246
257
|
grpc_error* DoPingLocked(grpc_transport_op* op);
|
247
258
|
|
248
|
-
|
259
|
+
void StartTransportOpLocked(grpc_transport_op* op);
|
249
260
|
|
250
|
-
|
261
|
+
void TryToConnectLocked();
|
251
262
|
|
252
263
|
void ProcessLbPolicy(
|
253
264
|
const Resolver::Result& resolver_result,
|
254
265
|
const internal::ClientChannelGlobalParsedConfig* parsed_service_config,
|
255
|
-
grpc_core::UniquePtr<char>* lb_policy_name,
|
256
266
|
RefCountedPtr<LoadBalancingPolicy::Config>* lb_policy_config);
|
257
267
|
|
258
268
|
//
|
@@ -281,9 +291,9 @@ class ChannelData {
|
|
281
291
|
RefCountedPtr<ServiceConfig> service_config_;
|
282
292
|
|
283
293
|
//
|
284
|
-
// Fields used in the control plane. Guarded by
|
294
|
+
// Fields used in the control plane. Guarded by work_serializer.
|
285
295
|
//
|
286
|
-
|
296
|
+
std::shared_ptr<WorkSerializer> work_serializer_;
|
287
297
|
grpc_pollset_set* interested_parties_;
|
288
298
|
RefCountedPtr<SubchannelPoolInterface> subchannel_pool_;
|
289
299
|
OrphanablePtr<ResolvingLoadBalancingPolicy> resolving_lb_policy_;
|
@@ -295,17 +305,17 @@ class ChannelData {
|
|
295
305
|
std::map<Subchannel*, int> subchannel_refcount_map_;
|
296
306
|
// The set of SubchannelWrappers that currently exist.
|
297
307
|
// No need to hold a ref, since the map is updated in the control-plane
|
298
|
-
//
|
308
|
+
// work_serializer when the SubchannelWrappers are created and destroyed.
|
299
309
|
std::set<SubchannelWrapper*> subchannel_wrappers_;
|
300
310
|
// Pending ConnectedSubchannel updates for each SubchannelWrapper.
|
301
|
-
// Updates are queued here in the control plane
|
302
|
-
// in the data plane mutex when the picker is updated.
|
303
|
-
std::map<RefCountedPtr<SubchannelWrapper>, RefCountedPtr<ConnectedSubchannel
|
304
|
-
RefCountedPtrLess<SubchannelWrapper>>
|
311
|
+
// Updates are queued here in the control plane work_serializer and then
|
312
|
+
// applied in the data plane mutex when the picker is updated.
|
313
|
+
std::map<RefCountedPtr<SubchannelWrapper>, RefCountedPtr<ConnectedSubchannel>>
|
305
314
|
pending_subchannel_updates_;
|
306
315
|
|
307
316
|
//
|
308
|
-
// Fields accessed from both data plane mutex and control plane
|
317
|
+
// Fields accessed from both data plane mutex and control plane
|
318
|
+
// work_serializer.
|
309
319
|
//
|
310
320
|
Atomic<grpc_error*> disconnect_error_;
|
311
321
|
|
@@ -365,7 +375,7 @@ class CallData {
|
|
365
375
|
Metadata(CallData* calld, grpc_metadata_batch* batch)
|
366
376
|
: calld_(calld), batch_(batch) {}
|
367
377
|
|
368
|
-
void Add(
|
378
|
+
void Add(absl::string_view key, absl::string_view value) override {
|
369
379
|
grpc_linked_mdelem* linked_mdelem = static_cast<grpc_linked_mdelem*>(
|
370
380
|
calld_->arena_->Alloc(sizeof(grpc_linked_mdelem)));
|
371
381
|
linked_mdelem->md = grpc_mdelem_from_slices(
|
@@ -400,7 +410,7 @@ class CallData {
|
|
400
410
|
reinterpret_cast<grpc_linked_mdelem*>(handle);
|
401
411
|
return reinterpret_cast<intptr_t>(linked_mdelem->next);
|
402
412
|
}
|
403
|
-
std::pair<
|
413
|
+
std::pair<absl::string_view, absl::string_view> IteratorHandleGet(
|
404
414
|
intptr_t handle) const override {
|
405
415
|
grpc_linked_mdelem* linked_mdelem =
|
406
416
|
reinterpret_cast<grpc_linked_mdelem*>(handle);
|
@@ -432,6 +442,12 @@ class CallData {
|
|
432
442
|
return calld_->backend_metric_data_;
|
433
443
|
}
|
434
444
|
|
445
|
+
absl::string_view ExperimentalGetCallAttribute(const char* key) override {
|
446
|
+
auto it = calld_->call_attributes_.find(key);
|
447
|
+
if (it == calld_->call_attributes_.end()) return absl::string_view();
|
448
|
+
return it->second;
|
449
|
+
}
|
450
|
+
|
435
451
|
private:
|
436
452
|
CallData* calld_;
|
437
453
|
};
|
@@ -751,8 +767,8 @@ class CallData {
|
|
751
767
|
grpc_call_context_element* call_context_;
|
752
768
|
|
753
769
|
RefCountedPtr<ServerRetryThrottleData> retry_throttle_data_;
|
754
|
-
ServiceConfig::CallData service_config_call_data_;
|
755
770
|
const ClientChannelMethodParsedConfig* method_params_ = nullptr;
|
771
|
+
std::map<const char*, absl::string_view> call_attributes_;
|
756
772
|
|
757
773
|
RefCountedPtr<SubchannelCall> subchannel_call_;
|
758
774
|
|
@@ -821,7 +837,7 @@ class CallData {
|
|
821
837
|
// Note: We inline the cache for the first 3 send_message ops and use
|
822
838
|
// dynamic allocation after that. This number was essentially picked
|
823
839
|
// at random; it could be changed in the future to tune performance.
|
824
|
-
InlinedVector<ByteStreamCache*, 3> send_messages_;
|
840
|
+
absl::InlinedVector<ByteStreamCache*, 3> send_messages_;
|
825
841
|
// send_trailing_metadata
|
826
842
|
bool seen_send_trailing_metadata_ = false;
|
827
843
|
grpc_linked_mdelem* send_trailing_metadata_storage_ = nullptr;
|
@@ -839,7 +855,7 @@ class CallData {
|
|
839
855
|
// Note that no synchronization is needed here, because even if the
|
840
856
|
// underlying subchannel is shared between channels, this wrapper will only
|
841
857
|
// be used within one channel, so it will always be synchronized by the
|
842
|
-
// control plane
|
858
|
+
// control plane work_serializer.
|
843
859
|
class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
844
860
|
public:
|
845
861
|
SubchannelWrapper(ChannelData* chand, Subchannel* subchannel,
|
@@ -908,7 +924,7 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
908
924
|
initial_state,
|
909
925
|
grpc_core::UniquePtr<char>(
|
910
926
|
gpr_strdup(health_check_service_name_.get())),
|
911
|
-
|
927
|
+
RefCountedPtr<Subchannel::ConnectivityStateWatcherInterface>(
|
912
928
|
watcher_wrapper));
|
913
929
|
}
|
914
930
|
|
@@ -958,14 +974,14 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
958
974
|
replacement->last_seen_state(),
|
959
975
|
grpc_core::UniquePtr<char>(
|
960
976
|
gpr_strdup(health_check_service_name.get())),
|
961
|
-
|
977
|
+
RefCountedPtr<Subchannel::ConnectivityStateWatcherInterface>(
|
962
978
|
replacement));
|
963
979
|
}
|
964
980
|
// Save the new health check service name.
|
965
981
|
health_check_service_name_ = std::move(health_check_service_name);
|
966
982
|
}
|
967
983
|
|
968
|
-
// Caller must be holding the control-plane
|
984
|
+
// Caller must be holding the control-plane work_serializer.
|
969
985
|
ConnectedSubchannel* connected_subchannel() const {
|
970
986
|
return connected_subchannel_.get();
|
971
987
|
}
|
@@ -1005,23 +1021,27 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
1005
1021
|
parent_(std::move(parent)),
|
1006
1022
|
last_seen_state_(initial_state) {}
|
1007
1023
|
|
1008
|
-
~WatcherWrapper() {
|
1009
|
-
|
1010
|
-
|
1024
|
+
~WatcherWrapper() {
|
1025
|
+
auto* parent = parent_.release(); // ref owned by lambda
|
1026
|
+
parent->chand_->work_serializer_->Run(
|
1027
|
+
[parent]() { parent->Unref(DEBUG_LOCATION, "WatcherWrapper"); },
|
1028
|
+
DEBUG_LOCATION);
|
1029
|
+
}
|
1011
1030
|
|
1012
|
-
void OnConnectivityStateChange(
|
1013
|
-
grpc_connectivity_state new_state,
|
1014
|
-
RefCountedPtr<ConnectedSubchannel> connected_subchannel) override {
|
1031
|
+
void OnConnectivityStateChange() override {
|
1015
1032
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1016
1033
|
gpr_log(GPR_INFO,
|
1017
1034
|
"chand=%p: connectivity change for subchannel wrapper %p "
|
1018
|
-
"subchannel %p
|
1019
|
-
|
1020
|
-
parent_->chand_, parent_.get(), parent_->subchannel_,
|
1021
|
-
connected_subchannel.get(), ConnectivityStateName(new_state));
|
1035
|
+
"subchannel %p; hopping into work_serializer",
|
1036
|
+
parent_->chand_, parent_.get(), parent_->subchannel_);
|
1022
1037
|
}
|
1023
|
-
//
|
1024
|
-
|
1038
|
+
Ref().release(); // ref owned by lambda
|
1039
|
+
parent_->chand_->work_serializer_->Run(
|
1040
|
+
[this]() {
|
1041
|
+
ApplyUpdateInControlPlaneWorkSerializer();
|
1042
|
+
Unref();
|
1043
|
+
},
|
1044
|
+
DEBUG_LOCATION);
|
1025
1045
|
}
|
1026
1046
|
|
1027
1047
|
grpc_pollset_set* interested_parties() override {
|
@@ -1041,50 +1061,25 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
1041
1061
|
grpc_connectivity_state last_seen_state() const { return last_seen_state_; }
|
1042
1062
|
|
1043
1063
|
private:
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
parent_->parent_->chand_->combiner_->Run(
|
1053
|
-
GRPC_CLOSURE_INIT(&closure_, ApplyUpdateInControlPlaneCombiner,
|
1054
|
-
this, nullptr),
|
1055
|
-
GRPC_ERROR_NONE);
|
1064
|
+
void ApplyUpdateInControlPlaneWorkSerializer() {
|
1065
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1066
|
+
gpr_log(GPR_INFO,
|
1067
|
+
"chand=%p: processing connectivity change in work serializer "
|
1068
|
+
"for subchannel wrapper %p subchannel %p "
|
1069
|
+
"watcher=%p",
|
1070
|
+
parent_->chand_, parent_.get(), parent_->subchannel_,
|
1071
|
+
watcher_.get());
|
1056
1072
|
}
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
"for subchannel wrapper %p subchannel %p "
|
1066
|
-
"(connected_subchannel=%p state=%s): watcher=%p",
|
1067
|
-
self->parent_->parent_->chand_, self->parent_->parent_.get(),
|
1068
|
-
self->parent_->parent_->subchannel_,
|
1069
|
-
self->connected_subchannel_.get(),
|
1070
|
-
ConnectivityStateName(self->state_),
|
1071
|
-
self->parent_->watcher_.get());
|
1072
|
-
}
|
1073
|
-
// Ignore update if the parent WatcherWrapper has been replaced
|
1074
|
-
// since this callback was scheduled.
|
1075
|
-
if (self->parent_->watcher_ == nullptr) return;
|
1076
|
-
self->parent_->last_seen_state_ = self->state_;
|
1077
|
-
self->parent_->parent_->MaybeUpdateConnectedSubchannel(
|
1078
|
-
std::move(self->connected_subchannel_));
|
1079
|
-
self->parent_->watcher_->OnConnectivityStateChange(self->state_);
|
1080
|
-
delete self;
|
1073
|
+
ConnectivityStateChange state_change = PopConnectivityStateChange();
|
1074
|
+
// Ignore update if the parent WatcherWrapper has been replaced
|
1075
|
+
// since this callback was scheduled.
|
1076
|
+
if (watcher_ != nullptr) {
|
1077
|
+
last_seen_state_ = state_change.state;
|
1078
|
+
parent_->MaybeUpdateConnectedSubchannel(
|
1079
|
+
std::move(state_change.connected_subchannel));
|
1080
|
+
watcher_->OnConnectivityStateChange(state_change.state);
|
1081
1081
|
}
|
1082
|
-
|
1083
|
-
RefCountedPtr<WatcherWrapper> parent_;
|
1084
|
-
grpc_connectivity_state state_;
|
1085
|
-
RefCountedPtr<ConnectedSubchannel> connected_subchannel_;
|
1086
|
-
grpc_closure closure_;
|
1087
|
-
};
|
1082
|
+
}
|
1088
1083
|
|
1089
1084
|
std::unique_ptr<SubchannelInterface::ConnectivityStateWatcherInterface>
|
1090
1085
|
watcher_;
|
@@ -1123,7 +1118,7 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
1123
1118
|
// CancelConnectivityStateWatch() with its watcher, we know the
|
1124
1119
|
// corresponding WrapperWatcher to cancel on the underlying subchannel.
|
1125
1120
|
std::map<ConnectivityStateWatcherInterface*, WatcherWrapper*> watcher_map_;
|
1126
|
-
// To be accessed only in the control plane
|
1121
|
+
// To be accessed only in the control plane work_serializer.
|
1127
1122
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel_;
|
1128
1123
|
// To be accessed only in the data plane mutex.
|
1129
1124
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel_in_data_plane_;
|
@@ -1146,9 +1141,6 @@ ChannelData::ExternalConnectivityWatcher::ExternalConnectivityWatcher(
|
|
1146
1141
|
grpc_polling_entity_add_to_pollset_set(&pollent_,
|
1147
1142
|
chand_->interested_parties_);
|
1148
1143
|
GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ExternalConnectivityWatcher");
|
1149
|
-
chand_->combiner_->Run(
|
1150
|
-
GRPC_CLOSURE_INIT(&add_closure_, AddWatcherLocked, this, nullptr),
|
1151
|
-
GRPC_ERROR_NONE);
|
1152
1144
|
}
|
1153
1145
|
|
1154
1146
|
ChannelData::ExternalConnectivityWatcher::~ExternalConnectivityWatcher() {
|
@@ -1158,6 +1150,11 @@ ChannelData::ExternalConnectivityWatcher::~ExternalConnectivityWatcher() {
|
|
1158
1150
|
"ExternalConnectivityWatcher");
|
1159
1151
|
}
|
1160
1152
|
|
1153
|
+
void ChannelData::ExternalConnectivityWatcher::Start() {
|
1154
|
+
chand_->work_serializer_->Run([this]() { AddWatcherLocked(); },
|
1155
|
+
DEBUG_LOCATION);
|
1156
|
+
}
|
1157
|
+
|
1161
1158
|
void ChannelData::ExternalConnectivityWatcher::Notify(
|
1162
1159
|
grpc_connectivity_state state) {
|
1163
1160
|
bool done = false;
|
@@ -1170,13 +1167,12 @@ void ChannelData::ExternalConnectivityWatcher::Notify(
|
|
1170
1167
|
// Report new state to the user.
|
1171
1168
|
*state_ = state;
|
1172
1169
|
ExecCtx::Run(DEBUG_LOCATION, on_complete_, GRPC_ERROR_NONE);
|
1173
|
-
// Hop back into the
|
1170
|
+
// Hop back into the work_serializer to clean up.
|
1174
1171
|
// Not needed in state SHUTDOWN, because the tracker will
|
1175
1172
|
// automatically remove all watchers in that case.
|
1176
1173
|
if (state != GRPC_CHANNEL_SHUTDOWN) {
|
1177
|
-
chand_->
|
1178
|
-
|
1179
|
-
GRPC_ERROR_NONE);
|
1174
|
+
chand_->work_serializer_->Run([this]() { RemoveWatcherLocked(); },
|
1175
|
+
DEBUG_LOCATION);
|
1180
1176
|
}
|
1181
1177
|
}
|
1182
1178
|
|
@@ -1187,28 +1183,20 @@ void ChannelData::ExternalConnectivityWatcher::Cancel() {
|
|
1187
1183
|
return; // Already done.
|
1188
1184
|
}
|
1189
1185
|
ExecCtx::Run(DEBUG_LOCATION, on_complete_, GRPC_ERROR_CANCELLED);
|
1190
|
-
// Hop back into the
|
1191
|
-
chand_->
|
1192
|
-
|
1193
|
-
GRPC_ERROR_NONE);
|
1186
|
+
// Hop back into the work_serializer to clean up.
|
1187
|
+
chand_->work_serializer_->Run([this]() { RemoveWatcherLocked(); },
|
1188
|
+
DEBUG_LOCATION);
|
1194
1189
|
}
|
1195
1190
|
|
1196
|
-
void ChannelData::ExternalConnectivityWatcher::AddWatcherLocked(
|
1197
|
-
|
1198
|
-
ExternalConnectivityWatcher* self =
|
1199
|
-
static_cast<ExternalConnectivityWatcher*>(arg);
|
1200
|
-
Closure::Run(DEBUG_LOCATION, self->watcher_timer_init_, GRPC_ERROR_NONE);
|
1191
|
+
void ChannelData::ExternalConnectivityWatcher::AddWatcherLocked() {
|
1192
|
+
Closure::Run(DEBUG_LOCATION, watcher_timer_init_, GRPC_ERROR_NONE);
|
1201
1193
|
// Add new watcher.
|
1202
|
-
|
1203
|
-
|
1204
|
-
OrphanablePtr<ConnectivityStateWatcherInterface>(self));
|
1194
|
+
chand_->state_tracker_.AddWatcher(
|
1195
|
+
initial_state_, OrphanablePtr<ConnectivityStateWatcherInterface>(this));
|
1205
1196
|
}
|
1206
1197
|
|
1207
|
-
void ChannelData::ExternalConnectivityWatcher::RemoveWatcherLocked(
|
1208
|
-
|
1209
|
-
ExternalConnectivityWatcher* self =
|
1210
|
-
static_cast<ExternalConnectivityWatcher*>(arg);
|
1211
|
-
self->chand_->state_tracker_.RemoveWatcher(self);
|
1198
|
+
void ChannelData::ExternalConnectivityWatcher::RemoveWatcherLocked() {
|
1199
|
+
chand_->state_tracker_.RemoveWatcher(this);
|
1212
1200
|
}
|
1213
1201
|
|
1214
1202
|
//
|
@@ -1224,28 +1212,20 @@ class ChannelData::ConnectivityWatcherAdder {
|
|
1224
1212
|
initial_state_(initial_state),
|
1225
1213
|
watcher_(std::move(watcher)) {
|
1226
1214
|
GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ConnectivityWatcherAdder");
|
1227
|
-
chand_->
|
1228
|
-
|
1229
|
-
&ConnectivityWatcherAdder::AddWatcherLocked, this,
|
1230
|
-
nullptr),
|
1231
|
-
GRPC_ERROR_NONE);
|
1215
|
+
chand_->work_serializer_->Run([this]() { AddWatcherLocked(); },
|
1216
|
+
DEBUG_LOCATION);
|
1232
1217
|
}
|
1233
1218
|
|
1234
1219
|
private:
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
std::move(self->watcher_));
|
1240
|
-
GRPC_CHANNEL_STACK_UNREF(self->chand_->owning_stack_,
|
1241
|
-
"ConnectivityWatcherAdder");
|
1242
|
-
delete self;
|
1220
|
+
void AddWatcherLocked() {
|
1221
|
+
chand_->state_tracker_.AddWatcher(initial_state_, std::move(watcher_));
|
1222
|
+
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "ConnectivityWatcherAdder");
|
1223
|
+
delete this;
|
1243
1224
|
}
|
1244
1225
|
|
1245
1226
|
ChannelData* chand_;
|
1246
1227
|
grpc_connectivity_state initial_state_;
|
1247
1228
|
OrphanablePtr<AsyncConnectivityStateWatcherInterface> watcher_;
|
1248
|
-
grpc_closure closure_;
|
1249
1229
|
};
|
1250
1230
|
|
1251
1231
|
//
|
@@ -1258,26 +1238,20 @@ class ChannelData::ConnectivityWatcherRemover {
|
|
1258
1238
|
AsyncConnectivityStateWatcherInterface* watcher)
|
1259
1239
|
: chand_(chand), watcher_(watcher) {
|
1260
1240
|
GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ConnectivityWatcherRemover");
|
1261
|
-
chand_->
|
1262
|
-
|
1263
|
-
&ConnectivityWatcherRemover::RemoveWatcherLocked,
|
1264
|
-
this, nullptr),
|
1265
|
-
GRPC_ERROR_NONE);
|
1241
|
+
chand_->work_serializer_->Run([this]() { RemoveWatcherLocked(); },
|
1242
|
+
DEBUG_LOCATION);
|
1266
1243
|
}
|
1267
1244
|
|
1268
1245
|
private:
|
1269
|
-
|
1270
|
-
|
1271
|
-
|
1272
|
-
self->chand_->state_tracker_.RemoveWatcher(self->watcher_);
|
1273
|
-
GRPC_CHANNEL_STACK_UNREF(self->chand_->owning_stack_,
|
1246
|
+
void RemoveWatcherLocked() {
|
1247
|
+
chand_->state_tracker_.RemoveWatcher(watcher_);
|
1248
|
+
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_,
|
1274
1249
|
"ConnectivityWatcherRemover");
|
1275
|
-
delete
|
1250
|
+
delete this;
|
1276
1251
|
}
|
1277
1252
|
|
1278
1253
|
ChannelData* chand_;
|
1279
1254
|
AsyncConnectivityStateWatcherInterface* watcher_;
|
1280
|
-
grpc_closure closure_;
|
1281
1255
|
};
|
1282
1256
|
|
1283
1257
|
//
|
@@ -1341,7 +1315,8 @@ class ChannelData::ClientChannelControlHelper
|
|
1341
1315
|
// No-op -- we should never get this from ResolvingLoadBalancingPolicy.
|
1342
1316
|
void RequestReresolution() override {}
|
1343
1317
|
|
1344
|
-
void AddTraceEvent(TraceSeverity severity,
|
1318
|
+
void AddTraceEvent(TraceSeverity severity,
|
1319
|
+
absl::string_view message) override {
|
1345
1320
|
if (chand_->channelz_node_ != nullptr) {
|
1346
1321
|
chand_->channelz_node_->AddTraceEvent(
|
1347
1322
|
ConvertSeverityEnum(severity),
|
@@ -1418,7 +1393,7 @@ ChannelData::ChannelData(grpc_channel_element_args* args, grpc_error** error)
|
|
1418
1393
|
client_channel_factory_(
|
1419
1394
|
ClientChannelFactory::GetFromChannelArgs(args->channel_args)),
|
1420
1395
|
channelz_node_(GetChannelzNode(args->channel_args)),
|
1421
|
-
|
1396
|
+
work_serializer_(std::make_shared<WorkSerializer>()),
|
1422
1397
|
interested_parties_(grpc_pollset_set_create()),
|
1423
1398
|
subchannel_pool_(GetSubchannelPool(args->channel_args)),
|
1424
1399
|
state_tracker_("client_channel", GRPC_CHANNEL_IDLE),
|
@@ -1489,7 +1464,6 @@ ChannelData::~ChannelData() {
|
|
1489
1464
|
// Stop backup polling.
|
1490
1465
|
grpc_client_channel_stop_backup_polling(interested_parties_);
|
1491
1466
|
grpc_pollset_set_destroy(interested_parties_);
|
1492
|
-
GRPC_COMBINER_UNREF(combiner_, "client_channel");
|
1493
1467
|
GRPC_ERROR_UNREF(disconnect_error_.Load(MemoryOrder::RELAXED));
|
1494
1468
|
gpr_mu_destroy(&info_mu_);
|
1495
1469
|
}
|
@@ -1593,8 +1567,9 @@ void ChannelData::UpdateServiceConfigLocked(
|
|
1593
1567
|
void ChannelData::CreateResolvingLoadBalancingPolicyLocked() {
|
1594
1568
|
// Instantiate resolving LB policy.
|
1595
1569
|
LoadBalancingPolicy::Args lb_args;
|
1596
|
-
lb_args.
|
1597
|
-
lb_args.channel_control_helper =
|
1570
|
+
lb_args.work_serializer = work_serializer_;
|
1571
|
+
lb_args.channel_control_helper =
|
1572
|
+
absl::make_unique<ClientChannelControlHelper>(this);
|
1598
1573
|
lb_args.args = channel_args_;
|
1599
1574
|
grpc_core::UniquePtr<char> target_uri(gpr_strdup(target_uri_.get()));
|
1600
1575
|
resolving_lb_policy_.reset(new ResolvingLoadBalancingPolicy(
|
@@ -1619,57 +1594,56 @@ void ChannelData::DestroyResolvingLoadBalancingPolicyLocked() {
|
|
1619
1594
|
void ChannelData::ProcessLbPolicy(
|
1620
1595
|
const Resolver::Result& resolver_result,
|
1621
1596
|
const internal::ClientChannelGlobalParsedConfig* parsed_service_config,
|
1622
|
-
grpc_core::UniquePtr<char>* lb_policy_name,
|
1623
1597
|
RefCountedPtr<LoadBalancingPolicy::Config>* lb_policy_config) {
|
1624
|
-
// Prefer the LB policy
|
1598
|
+
// Prefer the LB policy config found in the service config.
|
1625
1599
|
if (parsed_service_config != nullptr &&
|
1626
1600
|
parsed_service_config->parsed_lb_config() != nullptr) {
|
1627
|
-
lb_policy_name->reset(
|
1628
|
-
gpr_strdup(parsed_service_config->parsed_lb_config()->name()));
|
1629
1601
|
*lb_policy_config = parsed_service_config->parsed_lb_config();
|
1630
1602
|
return;
|
1631
1603
|
}
|
1632
|
-
|
1604
|
+
// Try the deprecated LB policy name from the service config.
|
1605
|
+
// If not, try the setting from channel args.
|
1606
|
+
const char* policy_name = nullptr;
|
1633
1607
|
if (parsed_service_config != nullptr &&
|
1634
|
-
parsed_service_config->parsed_deprecated_lb_policy()
|
1635
|
-
|
1608
|
+
!parsed_service_config->parsed_deprecated_lb_policy().empty()) {
|
1609
|
+
policy_name = parsed_service_config->parsed_deprecated_lb_policy().c_str();
|
1636
1610
|
} else {
|
1637
1611
|
const grpc_arg* channel_arg =
|
1638
1612
|
grpc_channel_args_find(resolver_result.args, GRPC_ARG_LB_POLICY_NAME);
|
1639
|
-
|
1640
|
-
}
|
1641
|
-
// Special case: If at least one balancer address is present, we use
|
1642
|
-
// the grpclb policy, regardless of what the resolver has returned.
|
1643
|
-
bool found_balancer_address = false;
|
1644
|
-
for (size_t i = 0; i < resolver_result.addresses.size(); ++i) {
|
1645
|
-
const ServerAddress& address = resolver_result.addresses[i];
|
1646
|
-
if (address.IsBalancer()) {
|
1647
|
-
found_balancer_address = true;
|
1648
|
-
break;
|
1649
|
-
}
|
1650
|
-
}
|
1651
|
-
if (found_balancer_address) {
|
1652
|
-
if (local_policy_name != nullptr &&
|
1653
|
-
strcmp(local_policy_name, "grpclb") != 0) {
|
1654
|
-
gpr_log(GPR_INFO,
|
1655
|
-
"resolver requested LB policy %s but provided at least one "
|
1656
|
-
"balancer address -- forcing use of grpclb LB policy",
|
1657
|
-
local_policy_name);
|
1658
|
-
}
|
1659
|
-
local_policy_name = "grpclb";
|
1613
|
+
policy_name = grpc_channel_arg_get_string(channel_arg);
|
1660
1614
|
}
|
1661
1615
|
// Use pick_first if nothing was specified and we didn't select grpclb
|
1662
1616
|
// above.
|
1663
|
-
|
1664
|
-
|
1617
|
+
if (policy_name == nullptr) policy_name = "pick_first";
|
1618
|
+
// Now that we have the policy name, construct an empty config for it.
|
1619
|
+
Json config_json = Json::Array{Json::Object{
|
1620
|
+
{policy_name, Json::Object{}},
|
1621
|
+
}};
|
1622
|
+
grpc_error* parse_error = GRPC_ERROR_NONE;
|
1623
|
+
*lb_policy_config = LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
1624
|
+
config_json, &parse_error);
|
1625
|
+
// The policy name came from one of three places:
|
1626
|
+
// - The deprecated loadBalancingPolicy field in the service config,
|
1627
|
+
// in which case the code in ClientChannelServiceConfigParser
|
1628
|
+
// already verified that the policy does not require a config.
|
1629
|
+
// - One of the hard-coded values here, all of which are known to not
|
1630
|
+
// require a config.
|
1631
|
+
// - A channel arg, in which case the application did something that
|
1632
|
+
// is a misuse of our API.
|
1633
|
+
// In the first two cases, these assertions will always be true. In
|
1634
|
+
// the last case, this is probably fine for now.
|
1635
|
+
// TODO(roth): If the last case becomes a problem, add better error
|
1636
|
+
// handling here.
|
1637
|
+
GPR_ASSERT(*lb_policy_config != nullptr);
|
1638
|
+
GPR_ASSERT(parse_error == GRPC_ERROR_NONE);
|
1665
1639
|
}
|
1666
1640
|
|
1667
1641
|
// Synchronous callback from ResolvingLoadBalancingPolicy to process a
|
1668
1642
|
// resolver result update.
|
1669
1643
|
bool ChannelData::ProcessResolverResultLocked(
|
1670
|
-
void* arg, const Resolver::Result& result,
|
1644
|
+
void* arg, const Resolver::Result& result,
|
1671
1645
|
RefCountedPtr<LoadBalancingPolicy::Config>* lb_policy_config,
|
1672
|
-
grpc_error** service_config_error) {
|
1646
|
+
grpc_error** service_config_error, bool* no_valid_service_config) {
|
1673
1647
|
ChannelData* chand = static_cast<ChannelData*>(arg);
|
1674
1648
|
RefCountedPtr<ServiceConfig> service_config;
|
1675
1649
|
// If resolver did not return a service config or returned an invalid service
|
@@ -1679,13 +1653,13 @@ bool ChannelData::ProcessResolverResultLocked(
|
|
1679
1653
|
// config. If there is no saved config either, use the default service
|
1680
1654
|
// config.
|
1681
1655
|
if (chand->saved_service_config_ != nullptr) {
|
1682
|
-
service_config = chand->saved_service_config_;
|
1683
1656
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1684
1657
|
gpr_log(GPR_INFO,
|
1685
1658
|
"chand=%p: resolver returned invalid service config. "
|
1686
1659
|
"Continuing to use previous service config.",
|
1687
1660
|
chand);
|
1688
1661
|
}
|
1662
|
+
service_config = chand->saved_service_config_;
|
1689
1663
|
} else if (chand->default_service_config_ != nullptr) {
|
1690
1664
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1691
1665
|
gpr_log(GPR_INFO,
|
@@ -1711,6 +1685,7 @@ bool ChannelData::ProcessResolverResultLocked(
|
|
1711
1685
|
*service_config_error = GRPC_ERROR_REF(result.service_config_error);
|
1712
1686
|
if (service_config == nullptr &&
|
1713
1687
|
result.service_config_error != GRPC_ERROR_NONE) {
|
1688
|
+
*no_valid_service_config = true;
|
1714
1689
|
return false;
|
1715
1690
|
}
|
1716
1691
|
// Process service config.
|
@@ -1728,11 +1703,11 @@ bool ChannelData::ProcessResolverResultLocked(
|
|
1728
1703
|
((service_config == nullptr) !=
|
1729
1704
|
(chand->saved_service_config_ == nullptr)) ||
|
1730
1705
|
(service_config != nullptr &&
|
1731
|
-
|
1732
|
-
|
1706
|
+
service_config->json_string() !=
|
1707
|
+
chand->saved_service_config_->json_string());
|
1733
1708
|
if (service_config_changed) {
|
1734
1709
|
service_config_json.reset(gpr_strdup(
|
1735
|
-
service_config != nullptr ? service_config->
|
1710
|
+
service_config != nullptr ? service_config->json_string().c_str()
|
1736
1711
|
: ""));
|
1737
1712
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1738
1713
|
gpr_log(GPR_INFO,
|
@@ -1762,7 +1737,7 @@ bool ChannelData::ProcessResolverResultLocked(
|
|
1762
1737
|
chand->received_first_resolver_result_ = true;
|
1763
1738
|
RefCountedPtr<ServerRetryThrottleData> retry_throttle_data;
|
1764
1739
|
if (parsed_service_config != nullptr) {
|
1765
|
-
|
1740
|
+
absl::optional<internal::ClientChannelGlobalParsedConfig::RetryThrottling>
|
1766
1741
|
retry_throttle_config = parsed_service_config->retry_throttling();
|
1767
1742
|
if (retry_throttle_config.has_value()) {
|
1768
1743
|
retry_throttle_data =
|
@@ -1775,19 +1750,18 @@ bool ChannelData::ProcessResolverResultLocked(
|
|
1775
1750
|
chand->UpdateServiceConfigLocked(std::move(retry_throttle_data),
|
1776
1751
|
chand->saved_service_config_);
|
1777
1752
|
}
|
1778
|
-
|
1779
|
-
|
1780
|
-
|
1753
|
+
chand->ProcessLbPolicy(result, parsed_service_config, lb_policy_config);
|
1754
|
+
grpc_core::UniquePtr<char> lb_policy_name(
|
1755
|
+
gpr_strdup((*lb_policy_config)->name()));
|
1781
1756
|
// Swap out the data used by GetChannelInfo().
|
1782
1757
|
{
|
1783
1758
|
MutexLock lock(&chand->info_mu_);
|
1784
|
-
chand->info_lb_policy_name_ = std::move(
|
1759
|
+
chand->info_lb_policy_name_ = std::move(lb_policy_name);
|
1785
1760
|
if (service_config_json != nullptr) {
|
1786
1761
|
chand->info_service_config_json_ = std::move(service_config_json);
|
1787
1762
|
}
|
1788
1763
|
}
|
1789
1764
|
// Return results.
|
1790
|
-
*lb_policy_name = chand->info_lb_policy_name_.get();
|
1791
1765
|
return service_config_changed;
|
1792
1766
|
}
|
1793
1767
|
|
@@ -1814,22 +1788,18 @@ grpc_error* ChannelData::DoPingLocked(grpc_transport_op* op) {
|
|
1814
1788
|
return result.error;
|
1815
1789
|
}
|
1816
1790
|
|
1817
|
-
void ChannelData::StartTransportOpLocked(
|
1818
|
-
grpc_transport_op* op = static_cast<grpc_transport_op*>(arg);
|
1819
|
-
grpc_channel_element* elem =
|
1820
|
-
static_cast<grpc_channel_element*>(op->handler_private.extra_arg);
|
1821
|
-
ChannelData* chand = static_cast<ChannelData*>(elem->channel_data);
|
1791
|
+
void ChannelData::StartTransportOpLocked(grpc_transport_op* op) {
|
1822
1792
|
// Connectivity watch.
|
1823
1793
|
if (op->start_connectivity_watch != nullptr) {
|
1824
|
-
|
1825
|
-
|
1794
|
+
state_tracker_.AddWatcher(op->start_connectivity_watch_state,
|
1795
|
+
std::move(op->start_connectivity_watch));
|
1826
1796
|
}
|
1827
1797
|
if (op->stop_connectivity_watch != nullptr) {
|
1828
|
-
|
1798
|
+
state_tracker_.RemoveWatcher(op->stop_connectivity_watch);
|
1829
1799
|
}
|
1830
1800
|
// Ping.
|
1831
1801
|
if (op->send_ping.on_initiate != nullptr || op->send_ping.on_ack != nullptr) {
|
1832
|
-
grpc_error* error =
|
1802
|
+
grpc_error* error = DoPingLocked(op);
|
1833
1803
|
if (error != GRPC_ERROR_NONE) {
|
1834
1804
|
ExecCtx::Run(DEBUG_LOCATION, op->send_ping.on_initiate,
|
1835
1805
|
GRPC_ERROR_REF(error));
|
@@ -1841,40 +1811,39 @@ void ChannelData::StartTransportOpLocked(void* arg, grpc_error* /*ignored*/) {
|
|
1841
1811
|
}
|
1842
1812
|
// Reset backoff.
|
1843
1813
|
if (op->reset_connect_backoff) {
|
1844
|
-
if (
|
1845
|
-
|
1814
|
+
if (resolving_lb_policy_ != nullptr) {
|
1815
|
+
resolving_lb_policy_->ResetBackoffLocked();
|
1846
1816
|
}
|
1847
1817
|
}
|
1848
1818
|
// Disconnect or enter IDLE.
|
1849
1819
|
if (op->disconnect_with_error != GRPC_ERROR_NONE) {
|
1850
1820
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
1851
|
-
gpr_log(GPR_INFO, "chand=%p: disconnect_with_error: %s",
|
1821
|
+
gpr_log(GPR_INFO, "chand=%p: disconnect_with_error: %s", this,
|
1852
1822
|
grpc_error_string(op->disconnect_with_error));
|
1853
1823
|
}
|
1854
|
-
|
1824
|
+
DestroyResolvingLoadBalancingPolicyLocked();
|
1855
1825
|
intptr_t value;
|
1856
1826
|
if (grpc_error_get_int(op->disconnect_with_error,
|
1857
1827
|
GRPC_ERROR_INT_CHANNEL_CONNECTIVITY_STATE, &value) &&
|
1858
1828
|
static_cast<grpc_connectivity_state>(value) == GRPC_CHANNEL_IDLE) {
|
1859
|
-
if (
|
1829
|
+
if (disconnect_error() == GRPC_ERROR_NONE) {
|
1860
1830
|
// Enter IDLE state.
|
1861
|
-
|
1862
|
-
|
1831
|
+
UpdateStateAndPickerLocked(GRPC_CHANNEL_IDLE, "channel entering IDLE",
|
1832
|
+
nullptr);
|
1863
1833
|
}
|
1864
1834
|
GRPC_ERROR_UNREF(op->disconnect_with_error);
|
1865
1835
|
} else {
|
1866
1836
|
// Disconnect.
|
1867
|
-
GPR_ASSERT(
|
1837
|
+
GPR_ASSERT(disconnect_error_.Load(MemoryOrder::RELAXED) ==
|
1868
1838
|
GRPC_ERROR_NONE);
|
1869
|
-
|
1870
|
-
|
1871
|
-
chand->UpdateStateAndPickerLocked(
|
1839
|
+
disconnect_error_.Store(op->disconnect_with_error, MemoryOrder::RELEASE);
|
1840
|
+
UpdateStateAndPickerLocked(
|
1872
1841
|
GRPC_CHANNEL_SHUTDOWN, "shutdown from API",
|
1873
|
-
|
1842
|
+
absl::make_unique<LoadBalancingPolicy::TransientFailurePicker>(
|
1874
1843
|
GRPC_ERROR_REF(op->disconnect_with_error)));
|
1875
1844
|
}
|
1876
1845
|
}
|
1877
|
-
GRPC_CHANNEL_STACK_UNREF(
|
1846
|
+
GRPC_CHANNEL_STACK_UNREF(owning_stack_, "start_transport_op");
|
1878
1847
|
ExecCtx::Run(DEBUG_LOCATION, op->on_consumed, GRPC_ERROR_NONE);
|
1879
1848
|
}
|
1880
1849
|
|
@@ -1886,13 +1855,10 @@ void ChannelData::StartTransportOp(grpc_channel_element* elem,
|
|
1886
1855
|
if (op->bind_pollset != nullptr) {
|
1887
1856
|
grpc_pollset_set_add_pollset(chand->interested_parties_, op->bind_pollset);
|
1888
1857
|
}
|
1889
|
-
// Pop into control plane
|
1890
|
-
op->handler_private.extra_arg = elem;
|
1858
|
+
// Pop into control plane work_serializer for remaining ops.
|
1891
1859
|
GRPC_CHANNEL_STACK_REF(chand->owning_stack_, "start_transport_op");
|
1892
|
-
chand->
|
1893
|
-
|
1894
|
-
ChannelData::StartTransportOpLocked, op, nullptr),
|
1895
|
-
GRPC_ERROR_NONE);
|
1860
|
+
chand->work_serializer_->Run(
|
1861
|
+
[chand, op]() { chand->StartTransportOpLocked(op); }, DEBUG_LOCATION);
|
1896
1862
|
}
|
1897
1863
|
|
1898
1864
|
void ChannelData::GetChannelInfo(grpc_channel_element* elem,
|
@@ -1943,14 +1909,13 @@ ChannelData::GetConnectedSubchannelInDataPlane(
|
|
1943
1909
|
return connected_subchannel->Ref();
|
1944
1910
|
}
|
1945
1911
|
|
1946
|
-
void ChannelData::TryToConnectLocked(
|
1947
|
-
|
1948
|
-
|
1949
|
-
chand->resolving_lb_policy_->ExitIdleLocked();
|
1912
|
+
void ChannelData::TryToConnectLocked() {
|
1913
|
+
if (resolving_lb_policy_ != nullptr) {
|
1914
|
+
resolving_lb_policy_->ExitIdleLocked();
|
1950
1915
|
} else {
|
1951
|
-
|
1916
|
+
CreateResolvingLoadBalancingPolicyLocked();
|
1952
1917
|
}
|
1953
|
-
GRPC_CHANNEL_STACK_UNREF(
|
1918
|
+
GRPC_CHANNEL_STACK_UNREF(owning_stack_, "TryToConnect");
|
1954
1919
|
}
|
1955
1920
|
|
1956
1921
|
grpc_connectivity_state ChannelData::CheckConnectivityState(
|
@@ -1958,8 +1923,7 @@ grpc_connectivity_state ChannelData::CheckConnectivityState(
|
|
1958
1923
|
grpc_connectivity_state out = state_tracker_.state();
|
1959
1924
|
if (out == GRPC_CHANNEL_IDLE && try_to_connect) {
|
1960
1925
|
GRPC_CHANNEL_STACK_REF(owning_stack_, "TryToConnect");
|
1961
|
-
|
1962
|
-
GRPC_ERROR_NONE);
|
1926
|
+
work_serializer_->Run([this]() { TryToConnectLocked(); }, DEBUG_LOCATION);
|
1963
1927
|
}
|
1964
1928
|
return out;
|
1965
1929
|
}
|
@@ -2265,10 +2229,32 @@ void CallData::FreeCachedSendOpDataForCompletedBatch(
|
|
2265
2229
|
void CallData::RecvTrailingMetadataReadyForLoadBalancingPolicy(
|
2266
2230
|
void* arg, grpc_error* error) {
|
2267
2231
|
CallData* calld = static_cast<CallData*>(arg);
|
2232
|
+
// Set error if call did not succeed.
|
2233
|
+
grpc_error* error_for_lb = GRPC_ERROR_NONE;
|
2234
|
+
if (error != GRPC_ERROR_NONE) {
|
2235
|
+
error_for_lb = error;
|
2236
|
+
} else {
|
2237
|
+
const auto& fields = calld->recv_trailing_metadata_->idx.named;
|
2238
|
+
GPR_ASSERT(fields.grpc_status != nullptr);
|
2239
|
+
grpc_status_code status =
|
2240
|
+
grpc_get_status_code_from_metadata(fields.grpc_status->md);
|
2241
|
+
std::string msg;
|
2242
|
+
if (status != GRPC_STATUS_OK) {
|
2243
|
+
error_for_lb = grpc_error_set_int(
|
2244
|
+
GRPC_ERROR_CREATE_FROM_STATIC_STRING("call failed"),
|
2245
|
+
GRPC_ERROR_INT_GRPC_STATUS, status);
|
2246
|
+
if (fields.grpc_message != nullptr) {
|
2247
|
+
error_for_lb = grpc_error_set_str(
|
2248
|
+
error_for_lb, GRPC_ERROR_STR_GRPC_MESSAGE,
|
2249
|
+
grpc_slice_ref_internal(GRPC_MDVALUE(fields.grpc_message->md)));
|
2250
|
+
}
|
2251
|
+
}
|
2252
|
+
}
|
2268
2253
|
// Invoke callback to LB policy.
|
2269
2254
|
Metadata trailing_metadata(calld, calld->recv_trailing_metadata_);
|
2270
|
-
calld->lb_recv_trailing_metadata_ready_(
|
2255
|
+
calld->lb_recv_trailing_metadata_ready_(error_for_lb, &trailing_metadata,
|
2271
2256
|
&calld->lb_call_state_);
|
2257
|
+
if (error == GRPC_ERROR_NONE) GRPC_ERROR_UNREF(error_for_lb);
|
2272
2258
|
// Chain to original callback.
|
2273
2259
|
Closure::Run(DEBUG_LOCATION, calld->original_recv_trailing_metadata_ready_,
|
2274
2260
|
GRPC_ERROR_REF(error));
|
@@ -3185,10 +3171,9 @@ void CallData::OnComplete(void* arg, grpc_error* error) {
|
|
3185
3171
|
ChannelData* chand = static_cast<ChannelData*>(elem->channel_data);
|
3186
3172
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
3187
3173
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
3188
|
-
char* batch_str = grpc_transport_stream_op_batch_string(&batch_data->batch);
|
3189
3174
|
gpr_log(GPR_INFO, "chand=%p calld=%p: got on_complete, error=%s, batch=%s",
|
3190
|
-
chand, calld, grpc_error_string(error),
|
3191
|
-
|
3175
|
+
chand, calld, grpc_error_string(error),
|
3176
|
+
grpc_transport_stream_op_batch_string(&batch_data->batch).c_str());
|
3192
3177
|
}
|
3193
3178
|
SubchannelCallRetryState* retry_state =
|
3194
3179
|
static_cast<SubchannelCallRetryState*>(
|
@@ -3261,10 +3246,8 @@ void CallData::AddClosureForSubchannelBatch(
|
|
3261
3246
|
GRPC_CLOSURE_INIT(&batch->handler_private.closure, StartBatchInCallCombiner,
|
3262
3247
|
batch, grpc_schedule_on_exec_ctx);
|
3263
3248
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
3264
|
-
char* batch_str = grpc_transport_stream_op_batch_string(batch);
|
3265
3249
|
gpr_log(GPR_INFO, "chand=%p calld=%p: starting subchannel batch: %s", chand,
|
3266
|
-
this,
|
3267
|
-
gpr_free(batch_str);
|
3250
|
+
this, grpc_transport_stream_op_batch_string(batch).c_str());
|
3268
3251
|
}
|
3269
3252
|
closures->Add(&batch->handler_private.closure, GRPC_ERROR_NONE,
|
3270
3253
|
"start_subchannel_batch");
|
@@ -3777,45 +3760,52 @@ void CallData::ApplyServiceConfigToCallLocked(grpc_call_element* elem) {
|
|
3777
3760
|
gpr_log(GPR_INFO, "chand=%p calld=%p: applying service config to call",
|
3778
3761
|
chand, this);
|
3779
3762
|
}
|
3780
|
-
|
3781
|
-
|
3782
|
-
|
3783
|
-
|
3784
|
-
|
3785
|
-
|
3786
|
-
|
3787
|
-
|
3763
|
+
auto service_config = chand->service_config();
|
3764
|
+
if (service_config != nullptr) {
|
3765
|
+
// Create a ServiceConfigCallData for the call. This stores a ref to the
|
3766
|
+
// ServiceConfig and caches the right set of parsed configs to use for
|
3767
|
+
// the call. The MethodConfig will store itself in the call context,
|
3768
|
+
// so that it can be accessed by filters in the subchannel, and it
|
3769
|
+
// will be cleaned up when the call ends.
|
3770
|
+
const auto* method_params_vector =
|
3771
|
+
service_config->GetMethodParsedConfigVector(path_);
|
3772
|
+
auto* service_config_call_data = arena_->New<ServiceConfigCallData>(
|
3773
|
+
std::move(service_config), method_params_vector, call_context_);
|
3774
|
+
// Apply our own method params to the call.
|
3788
3775
|
method_params_ = static_cast<ClientChannelMethodParsedConfig*>(
|
3789
|
-
|
3776
|
+
service_config_call_data->GetMethodParsedConfig(
|
3790
3777
|
internal::ClientChannelServiceConfigParser::ParserIndex()));
|
3791
|
-
|
3792
|
-
|
3793
|
-
|
3794
|
-
|
3795
|
-
|
3796
|
-
|
3797
|
-
|
3798
|
-
|
3799
|
-
|
3800
|
-
|
3801
|
-
|
3802
|
-
|
3778
|
+
if (method_params_ != nullptr) {
|
3779
|
+
// If the deadline from the service config is shorter than the one
|
3780
|
+
// from the client API, reset the deadline timer.
|
3781
|
+
if (chand->deadline_checking_enabled() &&
|
3782
|
+
method_params_->timeout() != 0) {
|
3783
|
+
const grpc_millis per_method_deadline =
|
3784
|
+
grpc_cycle_counter_to_millis_round_up(call_start_time_) +
|
3785
|
+
method_params_->timeout();
|
3786
|
+
if (per_method_deadline < deadline_) {
|
3787
|
+
deadline_ = per_method_deadline;
|
3788
|
+
grpc_deadline_state_reset(elem, deadline_);
|
3789
|
+
}
|
3803
3790
|
}
|
3804
|
-
|
3805
|
-
|
3806
|
-
|
3807
|
-
|
3808
|
-
|
3809
|
-
|
3810
|
-
|
3811
|
-
|
3812
|
-
|
3813
|
-
|
3814
|
-
|
3815
|
-
|
3816
|
-
|
3791
|
+
// If the service config set wait_for_ready and the application
|
3792
|
+
// did not explicitly set it, use the value from the service config.
|
3793
|
+
uint32_t* send_initial_metadata_flags =
|
3794
|
+
&pending_batches_[0]
|
3795
|
+
.batch->payload->send_initial_metadata
|
3796
|
+
.send_initial_metadata_flags;
|
3797
|
+
if (method_params_->wait_for_ready().has_value() &&
|
3798
|
+
!(*send_initial_metadata_flags &
|
3799
|
+
GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET)) {
|
3800
|
+
if (method_params_->wait_for_ready().value()) {
|
3801
|
+
*send_initial_metadata_flags |= GRPC_INITIAL_METADATA_WAIT_FOR_READY;
|
3802
|
+
} else {
|
3803
|
+
*send_initial_metadata_flags &= ~GRPC_INITIAL_METADATA_WAIT_FOR_READY;
|
3804
|
+
}
|
3817
3805
|
}
|
3818
3806
|
}
|
3807
|
+
// Set retry throttle data for call.
|
3808
|
+
retry_throttle_data_ = chand->retry_throttle_data();
|
3819
3809
|
}
|
3820
3810
|
// If no retry policy, disable retries.
|
3821
3811
|
// TODO(roth): Remove this when adding support for transparent retries.
|
@@ -3871,8 +3861,25 @@ bool CallData::PickSubchannelLocked(grpc_call_element* elem,
|
|
3871
3861
|
// The picker being null means that the channel is currently in IDLE state.
|
3872
3862
|
// The incoming call will make the channel exit IDLE.
|
3873
3863
|
if (chand->picker() == nullptr) {
|
3874
|
-
|
3875
|
-
|
3864
|
+
GRPC_CHANNEL_STACK_REF(chand->owning_stack(), "PickSubchannelLocked");
|
3865
|
+
// Bounce into the control plane work serializer to exit IDLE. Since we are
|
3866
|
+
// holding on to the data plane mutex here, we offload it on the ExecCtx so
|
3867
|
+
// that we don't deadlock with ourselves.
|
3868
|
+
ExecCtx::Run(
|
3869
|
+
DEBUG_LOCATION,
|
3870
|
+
GRPC_CLOSURE_CREATE(
|
3871
|
+
[](void* arg, grpc_error* /*error*/) {
|
3872
|
+
auto* chand = static_cast<ChannelData*>(arg);
|
3873
|
+
chand->work_serializer()->Run(
|
3874
|
+
[chand]() {
|
3875
|
+
chand->CheckConnectivityState(/*try_to_connect=*/true);
|
3876
|
+
GRPC_CHANNEL_STACK_UNREF(chand->owning_stack(),
|
3877
|
+
"PickSubchannelLocked");
|
3878
|
+
},
|
3879
|
+
DEBUG_LOCATION);
|
3880
|
+
},
|
3881
|
+
chand, nullptr),
|
3882
|
+
GRPC_ERROR_NONE);
|
3876
3883
|
// Queue the pick, so that it will be attempted once the channel
|
3877
3884
|
// becomes connected.
|
3878
3885
|
AddCallToQueuedPicksLocked(elem);
|
@@ -3957,8 +3964,10 @@ bool CallData::PickSubchannelLocked(grpc_call_element* elem,
|
|
3957
3964
|
if (pick_queued_) RemoveCallFromQueuedPicksLocked(elem);
|
3958
3965
|
// Handle drops.
|
3959
3966
|
if (GPR_UNLIKELY(result.subchannel == nullptr)) {
|
3960
|
-
result.error =
|
3961
|
-
|
3967
|
+
result.error = grpc_error_set_int(
|
3968
|
+
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
3969
|
+
"Call dropped by load balancing policy"),
|
3970
|
+
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
3962
3971
|
} else {
|
3963
3972
|
// Grab a ref to the connected subchannel while we're still
|
3964
3973
|
// holding the data plane mutex.
|