grpc 1.28.0 → 1.31.0.pre2
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 +8314 -11869
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security.h +30 -9
- data/include/grpc/grpc_security_constants.h +4 -0
- data/include/grpc/impl/codegen/grpc_types.h +23 -23
- data/include/grpc/impl/codegen/port_platform.h +6 -34
- data/include/grpc/module.modulemap +24 -39
- data/src/core/ext/filters/client_channel/backend_metric.cc +18 -12
- data/src/core/ext/filters/client_channel/client_channel.cc +591 -479
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
- data/src/core/ext/filters/client_channel/config_selector.cc +62 -0
- data/src/core/ext/filters/client_channel/config_selector.h +93 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +9 -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 +6 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +23 -14
- data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +44 -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 +10 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +279 -324
- 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/priority/priority.cc +871 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -17
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +733 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +84 -37
- 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 +1143 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +10 -7
- 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 +78 -61
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +41 -40
- 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 +22 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +12 -10
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +79 -122
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +199 -163
- 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 +46 -45
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +93 -102
- 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 +2 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +38 -8
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_registry.cc +19 -17
- data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +21 -22
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +19 -16
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +49 -55
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +43 -23
- 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 +104 -144
- data/src/core/ext/filters/client_channel/service_config.h +28 -98
- data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +142 -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 +55 -25
- data/src/core/ext/filters/client_channel/subchannel.h +35 -11
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +565 -234
- data/src/core/ext/filters/client_channel/xds/xds_api.h +102 -37
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +55 -71
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +4 -3
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +4 -2
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +619 -347
- data/src/core/ext/filters/client_channel/xds/xds_client.h +57 -22
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +11 -12
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +40 -28
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -33
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +28 -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 +399 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +31 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +61 -88
- data/src/core/ext/filters/message_size/message_size_filter.h +10 -4
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +386 -350
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +6 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +1 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -13
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +42 -26
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +25 -30
- data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -16
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +9 -12
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +12 -13
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -7
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +9 -12
- 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.cc +25 -29
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +13 -17
- 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 +27 -21
- data/src/core/ext/transport/chttp2/transport/parsing.cc +33 -43
- data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -22
- data/src/core/ext/transport/inproc/inproc_transport.cc +54 -15
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +3 -4
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +4 -229
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -876
- 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 +429 -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 +198 -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 +388 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +23 -10
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +352 -310
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +42 -34
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +7 -7
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +79 -61
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +55 -49
- 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 +79 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +48 -27
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +258 -214
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +51 -45
- 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 +71 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +107 -100
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +24 -20
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +157 -122
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +9 -9
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +38 -18
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +173 -73
- 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 +88 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +95 -101
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +49 -65
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +9 -6
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +53 -38
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +70 -62
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +15 -10
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +95 -63
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +91 -80
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +9 -10
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +36 -31
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +68 -46
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +770 -722
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +16 -15
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +95 -88
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +48 -28
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +305 -210
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +5 -5
- 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/discovery/v2/ads.upb.h +1 -2
- 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 +22 -16
- data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +16 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +48 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +14 -14
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +23 -23
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +8 -9
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +15 -16
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +7 -8
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +36 -35
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +0 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +0 -1
- data/src/core/ext/upb-generated/google/api/http.upb.h +29 -28
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +12 -11
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +421 -389
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +1 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +33 -54
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -28
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +8 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +32 -45
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +157 -178
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +14 -13
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +59 -56
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +11 -12
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +0 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +64 -0
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +41 -68
- data/src/core/ext/upb-generated/validate/validate.upb.c +21 -20
- data/src/core/ext/upb-generated/validate/validate.upb.h +569 -562
- 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 +2 -6
- data/src/core/lib/channel/channelz.cc +10 -21
- data/src/core/lib/channel/channelz.h +3 -2
- data/src/core/lib/channel/channelz_registry.cc +5 -3
- 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/log_linux.cc +6 -8
- data/src/core/lib/gpr/log_posix.cc +6 -8
- data/src/core/lib/gpr/spinlock.h +2 -3
- data/src/core/lib/gpr/string.cc +10 -33
- data/src/core/lib/gpr/string.h +4 -18
- data/src/core/lib/gpr/sync_abseil.cc +2 -0
- data/src/core/lib/gpr/time.cc +4 -0
- data/src/core/lib/gpr/time_posix.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/global_config_env.cc +8 -6
- data/src/core/lib/gprpp/host_port.cc +29 -35
- data/src/core/lib/gprpp/host_port.h +14 -17
- data/src/core/lib/gprpp/map.h +5 -11
- data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
- data/src/core/lib/http/format_request.cc +46 -65
- data/src/core/lib/http/httpcli.cc +15 -13
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +10 -10
- data/src/core/lib/http/parser.h +2 -3
- 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 +4 -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/endpoint_pair_posix.cc +10 -10
- data/src/core/lib/iomgr/error.cc +6 -9
- data/src/core/lib/iomgr/error.h +0 -1
- data/src/core/lib/iomgr/error_cfstream.cc +9 -8
- 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 +25 -29
- data/src/core/lib/iomgr/ev_epollex_linux.cc +17 -24
- data/src/core/lib/iomgr/ev_poll_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.cc +4 -3
- data/src/core/lib/iomgr/exec_ctx.h +14 -2
- data/src/core/lib/iomgr/iomgr.cc +10 -0
- data/src/core/lib/iomgr/iomgr.h +10 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
- data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
- data/src/core/lib/{gprpp/optional.h → iomgr/pollset_uv.h} +11 -12
- data/src/core/lib/iomgr/port.h +2 -21
- 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 +42 -57
- 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 +16 -25
- data/src/core/lib/iomgr/resource_quota.cc +38 -37
- data/src/core/lib/iomgr/sockaddr_utils.cc +29 -33
- data/src/core/lib/iomgr/sockaddr_utils.h +10 -15
- 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 +102 -81
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/socket_windows.cc +4 -5
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -18
- data/src/core/lib/iomgr/tcp_client_custom.cc +6 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +30 -36
- data/src/core/lib/iomgr/tcp_client_windows.cc +10 -11
- data/src/core/lib/iomgr/tcp_custom.cc +3 -4
- data/src/core/lib/iomgr/tcp_custom.h +1 -1
- data/src/core/lib/iomgr/tcp_server.cc +3 -4
- data/src/core/lib/iomgr/tcp_server.h +7 -5
- data/src/core/lib/iomgr/tcp_server_custom.cc +11 -23
- data/src/core/lib/iomgr/tcp_server_posix.cc +38 -44
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -8
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +10 -18
- data/src/core/lib/iomgr/tcp_server_windows.cc +16 -16
- 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 +15 -15
- data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +19 -17
- data/src/core/lib/iomgr/timer_heap.h +2 -3
- data/src/core/lib/iomgr/udp_server.cc +32 -36
- data/src/core/lib/iomgr/udp_server.h +5 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +9 -14
- data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +5 -2
- data/src/core/lib/json/json.h +3 -2
- data/src/core/lib/json/json_reader.cc +25 -26
- data/src/core/lib/json/json_writer.cc +13 -12
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
- data/src/core/lib/security/credentials/credentials.cc +0 -84
- data/src/core/lib/security/credentials/credentials.h +13 -62
- data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -6
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +15 -17
- 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 +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -4
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +73 -54
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +9 -3
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +19 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +20 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +48 -11
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +17 -17
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.cc +2 -0
- data/src/core/lib/security/security_connector/security_connector.h +2 -2
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +38 -36
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +8 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +89 -21
- data/src/core/lib/security/security_connector/ssl_utils.h +18 -12
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +101 -72
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +27 -5
- data/src/core/lib/security/transport/auth_filters.h +0 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +11 -11
- data/src/core/lib/security/util/json_util.cc +12 -13
- data/src/core/lib/slice/slice.cc +38 -1
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +15 -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 +42 -44
- 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 +304 -47
- data/src/core/lib/surface/completion_queue.h +8 -0
- data/src/core/lib/surface/event_string.cc +18 -25
- data/src/core/lib/surface/event_string.h +3 -1
- data/src/core/lib/surface/init.cc +2 -0
- data/src/core/lib/surface/init_secure.cc +1 -4
- data/src/core/lib/surface/server.cc +971 -837
- data/src/core/lib/surface/server.h +66 -12
- 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 +9 -2
- data/src/core/lib/transport/transport_op_string.cc +61 -102
- data/src/core/lib/uri/uri_parser.cc +8 -15
- data/src/core/lib/uri/uri_parser.h +2 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +24 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +31 -14
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +34 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
- data/src/core/tsi/fake_transport_security.cc +10 -15
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
- data/src/core/tsi/ssl_transport_security.cc +154 -50
- data/src/core/tsi/ssl_transport_security.h +22 -10
- data/src/core/tsi/ssl_types.h +0 -2
- data/src/core/tsi/transport_security.h +6 -9
- data/src/core/tsi/transport_security_grpc.h +2 -3
- data/src/core/tsi/transport_security_interface.h +8 -3
- data/src/ruby/ext/grpc/extconf.rb +5 -2
- data/src/ruby/ext/grpc/rb_call.c +12 -3
- data/src/ruby/ext/grpc/rb_call.h +4 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +57 -12
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- 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 +5 -5
- 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/src/proto/grpc/testing/messages_pb.rb +11 -0
- 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_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +7 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +7 -1
- data/src/ruby/spec/support/services.rb +10 -4
- 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/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/boringssl-with-bazel/err_data.c +335 -297
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +18 -26
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +14 -22
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +15 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +385 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +56 -0
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +33 -32
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +143 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +25 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +289 -117
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +13 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +434 -161
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +18 -25
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +104 -122
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +740 -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 +90 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
- 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 +41 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +32 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +24 -114
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +51 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +44 -35
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +47 -16
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -5
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +249 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1227 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +682 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +13 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +57 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +33 -9
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +35 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -154
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +28 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +74 -35
- data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +22 -22
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +20 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +69 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +31 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +191 -79
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +282 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +791 -715
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -4
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +146 -57
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +23 -5
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +30 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +21 -4
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +74 -54
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +10 -10
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -21
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +29 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +34 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +13 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +44 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +5 -5
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +51 -26
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +47 -53
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +129 -48
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +23 -75
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +55 -22
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +63 -25
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
- data/third_party/re2/re2/bitmap256.h +117 -0
- data/third_party/re2/re2/bitstate.cc +385 -0
- data/third_party/re2/re2/compile.cc +1279 -0
- data/third_party/re2/re2/dfa.cc +2130 -0
- data/third_party/re2/re2/filtered_re2.cc +121 -0
- data/third_party/re2/re2/filtered_re2.h +109 -0
- data/third_party/re2/re2/mimics_pcre.cc +197 -0
- data/third_party/re2/re2/nfa.cc +713 -0
- data/third_party/re2/re2/onepass.cc +623 -0
- data/third_party/re2/re2/parse.cc +2464 -0
- data/third_party/re2/re2/perl_groups.cc +119 -0
- data/third_party/re2/re2/pod_array.h +55 -0
- data/third_party/re2/re2/prefilter.cc +710 -0
- data/third_party/re2/re2/prefilter.h +108 -0
- data/third_party/re2/re2/prefilter_tree.cc +407 -0
- data/third_party/re2/re2/prefilter_tree.h +139 -0
- data/third_party/re2/re2/prog.cc +988 -0
- data/third_party/re2/re2/prog.h +436 -0
- data/third_party/re2/re2/re2.cc +1362 -0
- data/third_party/re2/re2/re2.h +1002 -0
- data/third_party/re2/re2/regexp.cc +980 -0
- data/third_party/re2/re2/regexp.h +659 -0
- data/third_party/re2/re2/set.cc +154 -0
- data/third_party/re2/re2/set.h +80 -0
- data/third_party/re2/re2/simplify.cc +657 -0
- data/third_party/re2/re2/sparse_array.h +392 -0
- data/third_party/re2/re2/sparse_set.h +264 -0
- data/third_party/re2/re2/stringpiece.cc +65 -0
- data/third_party/re2/re2/stringpiece.h +210 -0
- data/third_party/re2/re2/tostring.cc +351 -0
- data/third_party/re2/re2/unicode_casefold.cc +582 -0
- data/third_party/re2/re2/unicode_casefold.h +78 -0
- data/third_party/re2/re2/unicode_groups.cc +6269 -0
- data/third_party/re2/re2/unicode_groups.h +67 -0
- data/third_party/re2/re2/walker-inl.h +246 -0
- data/third_party/re2/util/benchmark.h +156 -0
- data/third_party/re2/util/flags.h +26 -0
- data/third_party/re2/util/logging.h +109 -0
- data/third_party/re2/util/malloc_counter.h +19 -0
- data/third_party/re2/util/mix.h +41 -0
- data/third_party/re2/util/mutex.h +148 -0
- data/third_party/re2/util/pcre.cc +1025 -0
- data/third_party/re2/util/pcre.h +681 -0
- data/third_party/re2/util/rune.cc +260 -0
- data/third_party/re2/util/strutil.cc +149 -0
- data/third_party/re2/util/strutil.h +21 -0
- data/third_party/re2/util/test.h +50 -0
- data/third_party/re2/util/utf.h +44 -0
- data/third_party/re2/util/util.h +42 -0
- data/third_party/upb/upb/decode.c +467 -504
- data/third_party/upb/upb/encode.c +163 -121
- data/third_party/upb/upb/msg.c +130 -64
- data/third_party/upb/upb/msg.h +418 -14
- data/third_party/upb/upb/port_def.inc +35 -6
- data/third_party/upb/upb/port_undef.inc +8 -1
- data/third_party/upb/upb/table.c +53 -75
- data/third_party/upb/upb/table.int.h +11 -43
- data/third_party/upb/upb/upb.c +148 -124
- data/third_party/upb/upb/upb.h +65 -147
- data/third_party/upb/upb/upb.hpp +86 -0
- metadata +175 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1754
- data/src/core/lib/gprpp/string_view.h +0 -60
- data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
- data/third_party/upb/upb/generated_util.h +0 -105
@@ -25,9 +25,13 @@
|
|
25
25
|
|
26
26
|
#include "src/core/lib/iomgr/error.h"
|
27
27
|
|
28
|
+
namespace grpc_core {
|
29
|
+
|
28
30
|
/// Adds a port to \a server. Sets \a port_num to the port number.
|
29
31
|
/// Takes ownership of \a args.
|
30
|
-
grpc_error*
|
31
|
-
|
32
|
+
grpc_error* Chttp2ServerAddPort(grpc_server* server, const char* addr,
|
33
|
+
grpc_channel_args* args, int* port_num);
|
34
|
+
|
35
|
+
} // namespace grpc_core
|
32
36
|
|
33
37
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_SERVER_CHTTP2_SERVER_H */
|
@@ -32,7 +32,7 @@ int grpc_server_add_insecure_http2_port(grpc_server* server, const char* addr) {
|
|
32
32
|
int port_num = 0;
|
33
33
|
GRPC_API_TRACE("grpc_server_add_insecure_http2_port(server=%p, addr=%s)", 2,
|
34
34
|
(server, addr));
|
35
|
-
grpc_error* err =
|
35
|
+
grpc_error* err = grpc_core::Chttp2ServerAddPort(
|
36
36
|
server, addr,
|
37
37
|
grpc_channel_args_copy(grpc_server_get_channel_args(server)), &port_num);
|
38
38
|
if (err != GRPC_ERROR_NONE) {
|
@@ -24,8 +24,9 @@
|
|
24
24
|
|
25
25
|
#ifdef GPR_SUPPORT_CHANNELS_FROM_FD
|
26
26
|
|
27
|
+
#include "absl/strings/str_cat.h"
|
28
|
+
|
27
29
|
#include <grpc/support/alloc.h>
|
28
|
-
#include <grpc/support/string_util.h>
|
29
30
|
|
30
31
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
31
32
|
#include "src/core/lib/channel/channel_args.h"
|
@@ -40,25 +41,18 @@ void grpc_server_add_insecure_channel_from_fd(grpc_server* server,
|
|
40
41
|
GPR_ASSERT(reserved == nullptr);
|
41
42
|
|
42
43
|
grpc_core::ExecCtx exec_ctx;
|
43
|
-
char* name;
|
44
|
-
gpr_asprintf(&name, "fd:%d", fd);
|
45
44
|
|
45
|
+
std::string name = absl::StrCat("fd:", fd);
|
46
46
|
grpc_endpoint* server_endpoint =
|
47
|
-
grpc_tcp_create(grpc_fd_create(fd, name, true),
|
48
|
-
grpc_server_get_channel_args(server), name);
|
49
|
-
|
50
|
-
gpr_free(name);
|
47
|
+
grpc_tcp_create(grpc_fd_create(fd, name.c_str(), true),
|
48
|
+
grpc_server_get_channel_args(server), name.c_str());
|
51
49
|
|
52
50
|
const grpc_channel_args* server_args = grpc_server_get_channel_args(server);
|
53
51
|
grpc_transport* transport = grpc_create_chttp2_transport(
|
54
52
|
server_args, server_endpoint, false /* is_client */);
|
55
53
|
|
56
|
-
grpc_pollset
|
57
|
-
|
58
|
-
grpc_server_get_pollsets(server, &pollsets, &num_pollsets);
|
59
|
-
|
60
|
-
for (size_t i = 0; i < num_pollsets; i++) {
|
61
|
-
grpc_endpoint_add_to_pollset(server_endpoint, pollsets[i]);
|
54
|
+
for (grpc_pollset* pollset : grpc_server_get_pollsets(server)) {
|
55
|
+
grpc_endpoint_add_to_pollset(server_endpoint, pollset);
|
62
56
|
}
|
63
57
|
|
64
58
|
grpc_server_setup_transport(server, transport, nullptr, server_args, nullptr);
|
@@ -22,9 +22,10 @@
|
|
22
22
|
|
23
23
|
#include <string.h>
|
24
24
|
|
25
|
+
#include "absl/strings/str_cat.h"
|
26
|
+
|
25
27
|
#include <grpc/support/alloc.h>
|
26
28
|
#include <grpc/support/log.h>
|
27
|
-
#include <grpc/support/string_util.h>
|
28
29
|
|
29
30
|
#include "src/core/ext/transport/chttp2/server/chttp2_server.h"
|
30
31
|
|
@@ -56,12 +57,10 @@ int grpc_server_add_secure_http2_port(grpc_server* server, const char* addr,
|
|
56
57
|
}
|
57
58
|
sc = creds->create_security_connector();
|
58
59
|
if (sc == nullptr) {
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
|
64
|
-
gpr_free(msg);
|
60
|
+
err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
61
|
+
absl::StrCat("Unable to create secure server with credentials of type ",
|
62
|
+
creds->type())
|
63
|
+
.c_str());
|
65
64
|
goto done;
|
66
65
|
}
|
67
66
|
// Create channel args.
|
@@ -72,7 +71,7 @@ int grpc_server_add_secure_http2_port(grpc_server* server, const char* addr,
|
|
72
71
|
grpc_channel_args_copy_and_add(grpc_server_get_channel_args(server),
|
73
72
|
args_to_add, GPR_ARRAY_SIZE(args_to_add));
|
74
73
|
// Add server port.
|
75
|
-
err =
|
74
|
+
err = grpc_core::Chttp2ServerAddPort(server, addr, args, &port_num);
|
76
75
|
done:
|
77
76
|
sc.reset(DEBUG_LOCATION, "server");
|
78
77
|
|
@@ -28,11 +28,10 @@
|
|
28
28
|
static const char alphabet[] =
|
29
29
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
30
30
|
|
31
|
-
|
31
|
+
struct b64_huff_sym {
|
32
32
|
uint16_t bits;
|
33
33
|
uint8_t length;
|
34
|
-
}
|
35
|
-
|
34
|
+
};
|
36
35
|
static const b64_huff_sym huff_alphabet[64] = {
|
37
36
|
{0x21, 6}, {0x5d, 7}, {0x5e, 7}, {0x5f, 7}, {0x60, 7}, {0x61, 7},
|
38
37
|
{0x62, 7}, {0x63, 7}, {0x64, 7}, {0x65, 7}, {0x66, 7}, {0x67, 7},
|
@@ -136,12 +135,11 @@ grpc_slice grpc_chttp2_huffman_compress(const grpc_slice& input) {
|
|
136
135
|
return output;
|
137
136
|
}
|
138
137
|
|
139
|
-
|
138
|
+
struct huff_out {
|
140
139
|
uint32_t temp;
|
141
140
|
uint32_t temp_length;
|
142
141
|
uint8_t* out;
|
143
|
-
}
|
144
|
-
|
142
|
+
};
|
145
143
|
static void enc_flush_some(huff_out* out) {
|
146
144
|
while (out->temp_length > 8) {
|
147
145
|
out->temp_length -= 8;
|
@@ -20,19 +20,18 @@
|
|
20
20
|
|
21
21
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
22
22
|
|
23
|
+
#include <grpc/slice_buffer.h>
|
24
|
+
#include <grpc/support/alloc.h>
|
25
|
+
#include <grpc/support/log.h>
|
26
|
+
#include <grpc/support/port_platform.h>
|
27
|
+
#include <grpc/support/string_util.h>
|
23
28
|
#include <inttypes.h>
|
24
29
|
#include <limits.h>
|
25
30
|
#include <math.h>
|
26
31
|
#include <stdio.h>
|
27
32
|
#include <string.h>
|
28
33
|
|
29
|
-
#include <grpc/slice_buffer.h>
|
30
|
-
#include <grpc/support/alloc.h>
|
31
|
-
#include <grpc/support/log.h>
|
32
|
-
#include <grpc/support/string_util.h>
|
33
|
-
|
34
34
|
#include "absl/strings/str_format.h"
|
35
|
-
|
36
35
|
#include "src/core/ext/transport/chttp2/transport/context_list.h"
|
37
36
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
38
37
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
@@ -100,6 +99,7 @@ static int g_default_max_ping_strikes = DEFAULT_MAX_PING_STRIKES;
|
|
100
99
|
|
101
100
|
#define MAX_CLIENT_STREAM_ID 0x7fffffffu
|
102
101
|
grpc_core::TraceFlag grpc_http_trace(false, "http");
|
102
|
+
grpc_core::TraceFlag grpc_keepalive_trace(false, "http_keepalive");
|
103
103
|
grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount(false,
|
104
104
|
"chttp2_refcount");
|
105
105
|
|
@@ -1097,13 +1097,14 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1097
1097
|
"Received a GOAWAY with error code ENHANCE_YOUR_CALM and debug "
|
1098
1098
|
"data equal to \"too_many_pings\"");
|
1099
1099
|
double current_keepalive_time_ms = static_cast<double>(t->keepalive_time);
|
1100
|
+
constexpr int max_keepalive_time_ms =
|
1101
|
+
INT_MAX / KEEPALIVE_TIME_BACKOFF_MULTIPLIER;
|
1100
1102
|
t->keepalive_time =
|
1101
|
-
current_keepalive_time_ms >
|
1103
|
+
current_keepalive_time_ms > static_cast<double>(max_keepalive_time_ms)
|
1102
1104
|
? GRPC_MILLIS_INF_FUTURE
|
1103
1105
|
: static_cast<grpc_millis>(current_keepalive_time_ms *
|
1104
1106
|
KEEPALIVE_TIME_BACKOFF_MULTIPLIER);
|
1105
1107
|
}
|
1106
|
-
|
1107
1108
|
/* lie: use transient failure from the transport to indicate goaway has been
|
1108
1109
|
* received */
|
1109
1110
|
connectivity_state_set(t, GRPC_CHANNEL_TRANSIENT_FAILURE, "got_goaway");
|
@@ -1354,10 +1355,8 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1354
1355
|
s->context = op->payload->context;
|
1355
1356
|
s->traced = op->is_traced;
|
1356
1357
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1357
|
-
|
1358
|
-
|
1359
|
-
op->on_complete);
|
1360
|
-
gpr_free(str);
|
1358
|
+
gpr_log(GPR_INFO, "perform_stream_op_locked: %s; on_complete = %p",
|
1359
|
+
grpc_transport_stream_op_batch_string(op).c_str(), op->on_complete);
|
1361
1360
|
if (op->send_initial_metadata) {
|
1362
1361
|
log_metadata(op_payload->send_initial_metadata.send_initial_metadata,
|
1363
1362
|
s->id, t->is_client, true);
|
@@ -1526,6 +1525,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1526
1525
|
s->send_trailing_metadata_finished = add_closure_barrier(on_complete);
|
1527
1526
|
s->send_trailing_metadata =
|
1528
1527
|
op_payload->send_trailing_metadata.send_trailing_metadata;
|
1528
|
+
s->sent_trailing_metadata_op = op_payload->send_trailing_metadata.sent;
|
1529
1529
|
s->write_buffering = false;
|
1530
1530
|
const size_t metadata_size =
|
1531
1531
|
grpc_metadata_batch_size(s->send_trailing_metadata);
|
@@ -1551,6 +1551,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1551
1551
|
}
|
1552
1552
|
if (s->write_closed) {
|
1553
1553
|
s->send_trailing_metadata = nullptr;
|
1554
|
+
s->sent_trailing_metadata_op = nullptr;
|
1554
1555
|
grpc_chttp2_complete_closure_step(
|
1555
1556
|
t, s, &s->send_trailing_metadata_finished,
|
1556
1557
|
grpc_metadata_batch_is_empty(
|
@@ -1652,9 +1653,8 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1652
1653
|
}
|
1653
1654
|
|
1654
1655
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1655
|
-
|
1656
|
-
|
1657
|
-
gpr_free(str);
|
1656
|
+
gpr_log(GPR_INFO, "perform_stream_op[s=%p]: %s", s,
|
1657
|
+
grpc_transport_stream_op_batch_string(op).c_str());
|
1658
1658
|
}
|
1659
1659
|
|
1660
1660
|
GRPC_CHTTP2_STREAM_REF(s, "perform_stream_op");
|
@@ -1795,6 +1795,15 @@ void grpc_chttp2_add_ping_strike(grpc_chttp2_transport* t) {
|
|
1795
1795
|
}
|
1796
1796
|
}
|
1797
1797
|
|
1798
|
+
void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t) {
|
1799
|
+
if (!t->is_client) {
|
1800
|
+
t->ping_recv_state.last_ping_recv_time = GRPC_MILLIS_INF_PAST;
|
1801
|
+
t->ping_recv_state.ping_strikes = 0;
|
1802
|
+
}
|
1803
|
+
t->ping_state.pings_before_data_required =
|
1804
|
+
t->ping_policy.max_pings_without_data;
|
1805
|
+
}
|
1806
|
+
|
1798
1807
|
static void perform_transport_op_locked(void* stream_op,
|
1799
1808
|
grpc_error* /*error_ignored*/) {
|
1800
1809
|
grpc_transport_op* op = static_cast<grpc_transport_op*>(stream_op);
|
@@ -1843,9 +1852,8 @@ static void perform_transport_op_locked(void* stream_op,
|
|
1843
1852
|
static void perform_transport_op(grpc_transport* gt, grpc_transport_op* op) {
|
1844
1853
|
grpc_chttp2_transport* t = reinterpret_cast<grpc_chttp2_transport*>(gt);
|
1845
1854
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1846
|
-
|
1847
|
-
|
1848
|
-
gpr_free(msg);
|
1855
|
+
gpr_log(GPR_INFO, "perform_transport_op[t=%p]: %s", t,
|
1856
|
+
grpc_transport_op_string(op).c_str());
|
1849
1857
|
}
|
1850
1858
|
op->handler_private.extra_arg = gt;
|
1851
1859
|
GRPC_CHTTP2_REF_TRANSPORT(t, "transport_op");
|
@@ -2179,6 +2187,7 @@ void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
|
2179
2187
|
"send_initial_metadata_finished");
|
2180
2188
|
|
2181
2189
|
s->send_trailing_metadata = nullptr;
|
2190
|
+
s->sent_trailing_metadata_op = nullptr;
|
2182
2191
|
grpc_chttp2_complete_closure_step(t, s, &s->send_trailing_metadata_finished,
|
2183
2192
|
GRPC_ERROR_REF(error),
|
2184
2193
|
"send_trailing_metadata_finished");
|
@@ -2195,9 +2204,12 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2195
2204
|
grpc_chttp2_stream* s, int close_reads,
|
2196
2205
|
int close_writes, grpc_error* error) {
|
2197
2206
|
if (s->read_closed && s->write_closed) {
|
2198
|
-
/* already closed */
|
2207
|
+
/* already closed, but we should still fake the status if needed. */
|
2208
|
+
grpc_error* overall_error = removal_error(error, s, "Stream removed");
|
2209
|
+
if (overall_error != GRPC_ERROR_NONE) {
|
2210
|
+
grpc_chttp2_fake_status(t, s, overall_error);
|
2211
|
+
}
|
2199
2212
|
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
|
2200
|
-
GRPC_ERROR_UNREF(error);
|
2201
2213
|
return;
|
2202
2214
|
}
|
2203
2215
|
bool closed_read = false;
|
@@ -2392,6 +2404,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2392
2404
|
grpc_slice_buffer_add(&t->qbuf, status_hdr);
|
2393
2405
|
grpc_slice_buffer_add(&t->qbuf, message_pfx);
|
2394
2406
|
grpc_slice_buffer_add(&t->qbuf, grpc_slice_ref_internal(slice));
|
2407
|
+
grpc_chttp2_reset_ping_clock(t);
|
2395
2408
|
grpc_chttp2_add_rst_stream_to_next_write(t, s->id, GRPC_HTTP2_NO_ERROR,
|
2396
2409
|
&s->stats.outgoing);
|
2397
2410
|
|
@@ -2399,10 +2412,10 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2399
2412
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_CLOSE_FROM_API);
|
2400
2413
|
}
|
2401
2414
|
|
2402
|
-
|
2415
|
+
struct cancel_stream_cb_args {
|
2403
2416
|
grpc_error* error;
|
2404
2417
|
grpc_chttp2_transport* t;
|
2405
|
-
}
|
2418
|
+
};
|
2406
2419
|
|
2407
2420
|
static void cancel_stream_cb(void* user_data, uint32_t /*key*/, void* stream) {
|
2408
2421
|
cancel_stream_cb_args* args = static_cast<cancel_stream_cb_args*>(user_data);
|
@@ -2483,7 +2496,8 @@ static grpc_error* try_http_parsing(grpc_chttp2_transport* t) {
|
|
2483
2496
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
2484
2497
|
"Trying to connect an http1.x server"),
|
2485
2498
|
GRPC_ERROR_INT_HTTP_STATUS, response.status),
|
2486
|
-
GRPC_ERROR_INT_GRPC_STATUS,
|
2499
|
+
GRPC_ERROR_INT_GRPC_STATUS,
|
2500
|
+
grpc_http2_status_to_grpc_status(response.status));
|
2487
2501
|
}
|
2488
2502
|
GRPC_ERROR_UNREF(parse_error);
|
2489
2503
|
|
@@ -2816,7 +2830,8 @@ static void start_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2816
2830
|
if (t->channelz_socket != nullptr) {
|
2817
2831
|
t->channelz_socket->RecordKeepaliveSent();
|
2818
2832
|
}
|
2819
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)
|
2833
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
|
2834
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
2820
2835
|
gpr_log(GPR_INFO, "%s: Start keepalive ping", t->peer_string);
|
2821
2836
|
}
|
2822
2837
|
GRPC_CHTTP2_REF_TRANSPORT(t, "keepalive watchdog");
|
@@ -2839,7 +2854,8 @@ static void finish_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2839
2854
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2840
2855
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2841
2856
|
if (error == GRPC_ERROR_NONE) {
|
2842
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)
|
2857
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
|
2858
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
2843
2859
|
gpr_log(GPR_INFO, "%s: Finish keepalive ping", t->peer_string);
|
2844
2860
|
}
|
2845
2861
|
if (!t->keepalive_ping_started) {
|
@@ -2877,7 +2893,7 @@ static void keepalive_watchdog_fired_locked(void* arg, grpc_error* error) {
|
|
2877
2893
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2878
2894
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2879
2895
|
if (error == GRPC_ERROR_NONE) {
|
2880
|
-
gpr_log(
|
2896
|
+
gpr_log(GPR_INFO, "%s: Keepalive watchdog fired. Closing transport.",
|
2881
2897
|
t->peer_string);
|
2882
2898
|
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_DYING;
|
2883
2899
|
close_transport_locked(
|
@@ -27,6 +27,7 @@
|
|
27
27
|
#include "src/core/lib/transport/transport.h"
|
28
28
|
|
29
29
|
extern grpc_core::TraceFlag grpc_http_trace;
|
30
|
+
extern grpc_core::TraceFlag grpc_keepalive_trace;
|
30
31
|
extern grpc_core::TraceFlag grpc_trace_http2_stream_state;
|
31
32
|
extern grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount;
|
32
33
|
extern grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_hpack_parser;
|
@@ -25,9 +25,12 @@
|
|
25
25
|
#include <math.h>
|
26
26
|
#include <string.h>
|
27
27
|
|
28
|
+
#include <string>
|
29
|
+
|
30
|
+
#include "absl/strings/str_format.h"
|
31
|
+
|
28
32
|
#include <grpc/support/alloc.h>
|
29
33
|
#include <grpc/support/log.h>
|
30
|
-
#include <grpc/support/string_util.h>
|
31
34
|
|
32
35
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
33
36
|
#include "src/core/lib/gpr/string.h"
|
@@ -43,27 +46,23 @@ static constexpr const int kTracePadding = 30;
|
|
43
46
|
static constexpr const uint32_t kMaxWindowUpdateSize = (1u << 31) - 1;
|
44
47
|
|
45
48
|
static char* fmt_int64_diff_str(int64_t old_val, int64_t new_val) {
|
46
|
-
|
49
|
+
std::string str;
|
47
50
|
if (old_val != new_val) {
|
48
|
-
|
51
|
+
str = absl::StrFormat("%" PRId64 " -> %" PRId64 "", old_val, new_val);
|
49
52
|
} else {
|
50
|
-
|
53
|
+
str = absl::StrFormat("%" PRId64 "", old_val);
|
51
54
|
}
|
52
|
-
|
53
|
-
gpr_free(str);
|
54
|
-
return str_lp;
|
55
|
+
return gpr_leftpad(str.c_str(), ' ', kTracePadding);
|
55
56
|
}
|
56
57
|
|
57
58
|
static char* fmt_uint32_diff_str(uint32_t old_val, uint32_t new_val) {
|
58
|
-
|
59
|
+
std::string str;
|
59
60
|
if (old_val != new_val) {
|
60
|
-
|
61
|
+
str = absl::StrFormat("%" PRIu32 " -> %" PRIu32 "", old_val, new_val);
|
61
62
|
} else {
|
62
|
-
|
63
|
+
str = absl::StrFormat("%" PRIu32 "", old_val);
|
63
64
|
}
|
64
|
-
|
65
|
-
gpr_free(str);
|
66
|
-
return str_lp;
|
65
|
+
return gpr_leftpad(str.c_str(), ' ', kTracePadding);
|
67
66
|
}
|
68
67
|
} // namespace
|
69
68
|
|
@@ -204,13 +203,11 @@ uint32_t TransportFlowControl::MaybeSendUpdate(bool writing_anyway) {
|
|
204
203
|
grpc_error* TransportFlowControl::ValidateRecvData(
|
205
204
|
int64_t incoming_frame_size) {
|
206
205
|
if (incoming_frame_size > announced_window_) {
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
gpr_free(msg);
|
213
|
-
return err;
|
206
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
207
|
+
absl::StrFormat("frame of size %" PRId64
|
208
|
+
" overflows local window of %" PRId64,
|
209
|
+
incoming_frame_size, announced_window_)
|
210
|
+
.c_str());
|
214
211
|
}
|
215
212
|
return GRPC_ERROR_NONE;
|
216
213
|
}
|
@@ -248,13 +245,11 @@ grpc_error* StreamFlowControl::RecvData(int64_t incoming_frame_size) {
|
|
248
245
|
"See (for example) https://github.com/netty/netty/issues/6520.",
|
249
246
|
incoming_frame_size, acked_stream_window, sent_stream_window);
|
250
247
|
} else {
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
gpr_free(msg);
|
257
|
-
return err;
|
248
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
249
|
+
absl::StrFormat("frame of size %" PRId64
|
250
|
+
" overflows local window of %" PRId64,
|
251
|
+
incoming_frame_size, acked_stream_window)
|
252
|
+
.c_str());
|
258
253
|
}
|
259
254
|
}
|
260
255
|
|
@@ -284,8 +279,8 @@ void StreamFlowControl::IncomingByteStreamUpdate(size_t max_size_hint,
|
|
284
279
|
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
|
285
280
|
|
286
281
|
/* clamp max recv hint to an allowable size */
|
287
|
-
if (max_size_hint >=
|
288
|
-
max_recv_bytes =
|
282
|
+
if (max_size_hint >= kMaxWindowUpdateSize - sent_init_window) {
|
283
|
+
max_recv_bytes = kMaxWindowUpdateSize - sent_init_window;
|
289
284
|
} else {
|
290
285
|
max_recv_bytes = static_cast<uint32_t>(max_size_hint);
|
291
286
|
}
|
@@ -298,7 +293,7 @@ void StreamFlowControl::IncomingByteStreamUpdate(size_t max_size_hint,
|
|
298
293
|
}
|
299
294
|
|
300
295
|
/* add some small lookahead to keep pipelines flowing */
|
301
|
-
|
296
|
+
GPR_DEBUG_ASSERT(max_recv_bytes <= kMaxWindowUpdateSize - sent_init_window);
|
302
297
|
if (local_window_delta_ < max_recv_bytes) {
|
303
298
|
uint32_t add_max_recv_bytes =
|
304
299
|
static_cast<uint32_t>(max_recv_bytes - local_window_delta_);
|
@@ -140,8 +140,7 @@ class FlowControlTrace {
|
|
140
140
|
};
|
141
141
|
|
142
142
|
// Fat interface with all methods a flow control implementation needs to
|
143
|
-
// support.
|
144
|
-
// we abort in any methods which require implementation in the base class.
|
143
|
+
// support.
|
145
144
|
class TransportFlowControlBase {
|
146
145
|
public:
|
147
146
|
TransportFlowControlBase() {}
|
@@ -149,30 +148,30 @@ class TransportFlowControlBase {
|
|
149
148
|
|
150
149
|
// Is flow control enabled? This is needed in other codepaths like the checks
|
151
150
|
// in parsing and in writing.
|
152
|
-
virtual bool flow_control_enabled() const
|
151
|
+
virtual bool flow_control_enabled() const = 0;
|
153
152
|
|
154
153
|
// Called to check if the transport needs to send a WINDOW_UPDATE frame
|
155
|
-
virtual uint32_t MaybeSendUpdate(bool /* writing_anyway */)
|
154
|
+
virtual uint32_t MaybeSendUpdate(bool /* writing_anyway */) = 0;
|
156
155
|
|
157
156
|
// Using the protected members, returns and Action to be taken by the
|
158
157
|
// tranport.
|
159
|
-
virtual FlowControlAction MakeAction()
|
158
|
+
virtual FlowControlAction MakeAction() = 0;
|
160
159
|
|
161
160
|
// Using the protected members, returns and Action to be taken by the
|
162
161
|
// tranport. Also checks for updates to our BDP estimate and acts
|
163
162
|
// accordingly.
|
164
|
-
virtual FlowControlAction PeriodicUpdate()
|
163
|
+
virtual FlowControlAction PeriodicUpdate() = 0;
|
165
164
|
|
166
165
|
// Called to do bookkeeping when a stream owned by this transport sends
|
167
166
|
// data on the wire
|
168
|
-
virtual void StreamSentData(int64_t /* size */)
|
167
|
+
virtual void StreamSentData(int64_t /* size */) = 0;
|
169
168
|
|
170
169
|
// Called to do bookkeeping when a stream owned by this transport receives
|
171
170
|
// data from the wire. Also does error checking for frame size.
|
172
|
-
virtual grpc_error* RecvData(int64_t /* incoming_frame_size */)
|
171
|
+
virtual grpc_error* RecvData(int64_t /* incoming_frame_size */) = 0;
|
173
172
|
|
174
173
|
// Called to do bookkeeping when we receive a WINDOW_UPDATE frame.
|
175
|
-
virtual void RecvUpdate(uint32_t /* size */)
|
174
|
+
virtual void RecvUpdate(uint32_t /* size */) = 0;
|
176
175
|
|
177
176
|
// Returns the BdpEstimator held by this object. Caller is responsible for
|
178
177
|
// checking for nullptr. TODO(ncteisen): consider fully encapsulating all
|
@@ -334,8 +333,7 @@ class TransportFlowControl final : public TransportFlowControlBase {
|
|
334
333
|
};
|
335
334
|
|
336
335
|
// Fat interface with all methods a stream flow control implementation needs
|
337
|
-
// to support.
|
338
|
-
// we abort in any methods which require implementation in the base class.
|
336
|
+
// to support.
|
339
337
|
class StreamFlowControlBase {
|
340
338
|
public:
|
341
339
|
StreamFlowControlBase() {}
|
@@ -348,19 +346,19 @@ class StreamFlowControlBase {
|
|
348
346
|
|
349
347
|
// Using the protected members, returns an Action for this stream to be
|
350
348
|
// taken by the tranport.
|
351
|
-
virtual FlowControlAction MakeAction()
|
349
|
+
virtual FlowControlAction MakeAction() = 0;
|
352
350
|
|
353
351
|
// Bookkeeping for when data is sent on this stream.
|
354
|
-
virtual void SentData(int64_t /* outgoing_frame_size */)
|
352
|
+
virtual void SentData(int64_t /* outgoing_frame_size */) = 0;
|
355
353
|
|
356
354
|
// Bookkeeping and error checking for when data is received by this stream.
|
357
|
-
virtual grpc_error* RecvData(int64_t /* incoming_frame_size */)
|
355
|
+
virtual grpc_error* RecvData(int64_t /* incoming_frame_size */) = 0;
|
358
356
|
|
359
357
|
// Called to check if this stream needs to send a WINDOW_UPDATE frame.
|
360
|
-
virtual uint32_t MaybeSendUpdate()
|
358
|
+
virtual uint32_t MaybeSendUpdate() = 0;
|
361
359
|
|
362
360
|
// Bookkeeping for receiving a WINDOW_UPDATE from for this stream.
|
363
|
-
virtual void RecvUpdate(uint32_t /* size */)
|
361
|
+
virtual void RecvUpdate(uint32_t /* size */) = 0;
|
364
362
|
|
365
363
|
// Bookkeeping for when a call pulls bytes out of the transport. At this
|
366
364
|
// point we consider the data 'used' and can thus let out peer know we are
|