grpc 1.30.2 → 1.32.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 +723 -15910
- data/include/grpc/grpc_security.h +31 -14
- data/include/grpc/grpc_security_constants.h +3 -0
- data/include/grpc/impl/codegen/README.md +22 -0
- data/include/grpc/impl/codegen/grpc_types.h +7 -5
- data/include/grpc/impl/codegen/port_platform.h +6 -33
- data/src/core/ext/filters/client_channel/backend_metric.cc +12 -9
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +470 -285
- data/src/core/ext/filters/client_channel/client_channel.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +0 -3
- 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 +8 -1
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +8 -8
- data/src/core/ext/filters/client_channel/http_proxy.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +59 -36
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -37
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -13
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +29 -10
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +5 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +4 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +23 -13
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +18 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +22 -14
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +18 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +385 -78
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +5 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +6 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +8 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +9 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +7 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +36 -51
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +383 -31
- data/src/core/ext/filters/client_channel/resolver_registry.cc +13 -14
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +6 -7
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +0 -1
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +38 -32
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +39 -20
- data/src/core/ext/filters/client_channel/server_address.cc +40 -7
- data/src/core/ext/filters/client_channel/server_address.h +42 -4
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +142 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +65 -24
- data/src/core/ext/filters/client_channel/subchannel.h +16 -4
- data/src/core/ext/filters/http/client/http_client_filter.cc +5 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +74 -33
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +3 -1
- data/src/core/ext/filters/max_age/max_age_filter.cc +2 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +56 -80
- data/src/core/ext/filters/message_size/message_size_filter.h +6 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +87 -31
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +18 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +10 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +378 -348
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +7 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +10 -16
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +9 -9
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +256 -279
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +23 -28
- 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_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +12 -13
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +8 -9
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +9 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -29
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +13 -17
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +34 -71
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -19
- data/src/core/ext/transport/inproc/inproc_transport.cc +47 -27
- 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/config/accesslog/v3/accesslog.upb.c +224 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +700 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +226 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +380 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1378 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/filter.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +69 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/outlier_detection.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +334 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/backoff.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +79 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +309 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +869 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +96 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +328 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +71 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +195 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +634 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +684 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/http_uri.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +80 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +152 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +536 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +28 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +58 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +220 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +273 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +332 -0
- data/src/core/ext/upb-generated/envoy/config/listener/{v2 → v3}/api_listener.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +108 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +401 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +138 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +490 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +94 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +174 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +599 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +204 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +773 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2855 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +59 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +135 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +50 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +108 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +312 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1125 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +20 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +34 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +111 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +401 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +198 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +388 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/cluster/v3}/cds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +5 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +129 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +386 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +55 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/rds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/srds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +114 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +77 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +71 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +64 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +145 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +127 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +188 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +250 -0
- data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
- data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +8 -9
- data/src/core/ext/upb-generated/envoy/type/{percent.upb.c → v3/percent.upb.c} +9 -8
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +86 -0
- data/src/core/ext/upb-generated/envoy/type/{range.upb.c → v3/range.upb.c} +12 -11
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +111 -0
- data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +6 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +61 -0
- 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/expr/v1alpha1/syntax.upb.c +234 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +759 -0
- 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 +39 -39
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +412 -386
- 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 +34 -55
- 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.h +5 -6
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +53 -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 +11 -11
- data/src/core/ext/upb-generated/validate/validate.upb.h +537 -536
- data/src/core/ext/xds/xds_api.cc +2388 -0
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_api.h +120 -40
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.cc +56 -25
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.h +8 -3
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel.h +4 -4
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_args.h +3 -3
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_secure.cc +2 -5
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +94 -347
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.h +12 -45
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +2 -2
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +13 -13
- data/src/core/lib/channel/channel_trace.cc +2 -6
- data/src/core/lib/channel/channelz.cc +19 -30
- data/src/core/lib/channel/channelz.h +1 -1
- data/src/core/lib/channel/channelz_registry.cc +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/string.cc +10 -9
- data/src/core/lib/gpr/string.h +4 -2
- data/src/core/lib/gpr/sync_posix.cc +2 -8
- data/src/core/lib/gprpp/global_config_env.cc +8 -6
- data/src/core/lib/http/httpcli.cc +13 -10
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -0
- data/src/core/lib/iomgr/endpoint.cc +5 -1
- data/src/core/lib/iomgr/endpoint.h +7 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +32 -11
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +10 -10
- data/src/core/lib/iomgr/error_cfstream.cc +9 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +5 -6
- data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -21
- data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
- data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.cc +1 -1
- data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.h +3 -3
- data/src/core/lib/iomgr/port.h +1 -21
- data/src/core/lib/iomgr/resolve_address_custom.cc +13 -18
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -8
- data/src/core/lib/iomgr/resource_quota.cc +34 -31
- data/src/core/lib/iomgr/sockaddr_utils.cc +9 -6
- data/src/core/lib/iomgr/sockaddr_utils.h +3 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +95 -55
- data/src/core/lib/iomgr/socket_windows.cc +4 -5
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -11
- data/src/core/lib/iomgr/tcp_client_custom.cc +6 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +27 -36
- data/src/core/lib/iomgr/tcp_client_windows.cc +9 -9
- data/src/core/lib/iomgr/tcp_custom.cc +33 -17
- data/src/core/lib/iomgr/tcp_custom.h +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +31 -13
- 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 +6 -14
- data/src/core/lib/iomgr/tcp_server_posix.cc +34 -41
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -7
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -9
- data/src/core/lib/iomgr/tcp_server_windows.cc +16 -16
- data/src/core/lib/iomgr/tcp_windows.cc +26 -10
- data/src/core/lib/iomgr/timer_generic.cc +13 -12
- data/src/core/lib/iomgr/udp_server.cc +24 -23
- 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_reader.cc +20 -21
- data/src/core/lib/security/authorization/authorization_engine.cc +177 -0
- data/src/core/lib/security/authorization/authorization_engine.h +84 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +153 -0
- data/src/core/lib/security/authorization/evaluate_args.h +59 -0
- data/src/core/lib/security/authorization/mock_cel/activation.h +57 -0
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +42 -0
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +68 -0
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +93 -0
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +67 -0
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +56 -0
- data/src/core/lib/security/authorization/mock_cel/statusor.h +50 -0
- data/src/core/lib/security/credentials/credentials.h +5 -3
- 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 +64 -43
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +19 -28
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -6
- 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.h +10 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +11 -12
- data/src/core/lib/security/security_connector/security_connector.cc +2 -0
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +18 -11
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +5 -0
- data/src/core/lib/security/security_connector/ssl_utils.cc +44 -23
- data/src/core/lib/security/security_connector/ssl_utils.h +6 -2
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +27 -24
- data/src/core/lib/security/transport/client_auth_filter.cc +10 -9
- data/src/core/lib/security/transport/secure_endpoint.cc +7 -1
- 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_internal.h +1 -0
- data/src/core/lib/surface/call.cc +52 -53
- data/src/core/lib/surface/call.h +2 -1
- data/src/core/lib/surface/channel.cc +28 -20
- data/src/core/lib/surface/channel.h +12 -2
- data/src/core/lib/surface/completion_queue.cc +0 -5
- data/src/core/lib/surface/init.cc +1 -1
- data/src/core/lib/surface/server.cc +1102 -1347
- data/src/core/lib/surface/server.h +369 -71
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/authority_override.cc +38 -0
- data/src/core/lib/transport/authority_override.h +32 -0
- data/src/core/lib/transport/connectivity_state.cc +18 -13
- data/src/core/lib/transport/connectivity_state.h +18 -6
- data/src/core/lib/transport/error_utils.cc +13 -0
- data/src/core/lib/transport/error_utils.h +6 -0
- data/src/core/lib/transport/static_metadata.cc +295 -276
- data/src/core/lib/transport/static_metadata.h +80 -73
- data/src/core/lib/transport/transport.h +13 -0
- data/src/core/lib/uri/uri_parser.cc +30 -35
- data/src/core/lib/uri/uri_parser.h +3 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +23 -13
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +24 -0
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -0
- data/src/core/tsi/ssl_transport_security.cc +102 -11
- data/src/core/tsi/ssl_transport_security.h +14 -2
- data/src/core/tsi/transport_security_interface.h +5 -0
- data/src/ruby/bin/math_services_pb.rb +4 -4
- data/src/ruby/ext/grpc/extconf.rb +5 -2
- data/src/ruby/ext/grpc/rb_call.c +3 -2
- data/src/ruby/ext/grpc/rb_call.h +4 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +54 -10
- data/src/ruby/ext/grpc/rb_channel_credentials.c +9 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -4
- data/src/ruby/lib/grpc/generic/client_stub.rb +1 -1
- data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +2 -2
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +5 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +28 -12
- data/src/ruby/spec/channel_credentials_spec.rb +10 -0
- data/src/ruby/spec/generic/active_call_spec.rb +19 -8
- data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +20 -0
- data/src/ruby/spec/user_agent_spec.rb +74 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +1727 -0
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +161 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +515 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +503 -0
- data/third_party/abseil-cpp/absl/container/internal/common.h +202 -0
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +440 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +146 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +191 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +269 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +297 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +30 -0
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +49 -0
- data/third_party/abseil-cpp/absl/container/internal/layout.h +741 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +48 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1882 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +138 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1895 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +192 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +125 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +70 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +99 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +248 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +85 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +128 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +194 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +25 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1480 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
- data/third_party/abseil-cpp/absl/hash/hash.h +324 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +346 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.h +96 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +55 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +988 -0
- data/third_party/abseil-cpp/absl/status/status.cc +447 -0
- data/third_party/abseil-cpp/absl/status/status.h +428 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +43 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
- data/third_party/abseil-cpp/absl/strings/cord.cc +2019 -0
- data/third_party/abseil-cpp/absl/strings/cord.h +1121 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +151 -0
- data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
- data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +697 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +155 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +261 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +484 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +159 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2728 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +1056 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
- data/third_party/abseil-cpp/absl/types/variant.h +861 -0
- data/third_party/boringssl-with-bazel/err_data.c +266 -254
- 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/tls_cbc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +12 -52
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -22
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +159 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +11 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +24 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +20 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +456 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +192 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -15
- 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/trust_token/internal.h +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +116 -363
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +7 -45
- 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 +41 -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 +28 -9
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +25 -0
- 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_sig.c +20 -0
- 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/arm_arch.h +52 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +22 -22
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +69 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +72 -23
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +2 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +800 -715
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -2
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +9 -0
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +21 -14
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -7
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +3 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +38 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +4 -24
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +5 -5
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +45 -24
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +34 -9
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +31 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +17 -9
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
- 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 +517 -505
- data/third_party/upb/upb/encode.c +165 -123
- 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 -86
- data/third_party/upb/upb/table.int.h +11 -52
- data/third_party/upb/upb/upb.c +151 -125
- data/third_party/upb/upb/upb.h +91 -147
- data/third_party/upb/upb/upb.hpp +88 -0
- metadata +308 -148
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +0 -1906
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -35
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -418
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -197
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -378
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1447
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -218
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -305
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -328
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -78
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -897
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -322
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -72
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -642
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -673
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -518
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -89
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -392
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -240
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -33
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -266
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -324
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -399
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -33
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -527
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -199
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -33
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -3032
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -134
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -725
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1132
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -50
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -134
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -144
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -87
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -112
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -62
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -249
- data/src/core/lib/security/transport/target_authority_table.cc +0 -75
- data/src/core/lib/security/transport/target_authority_table.h +0 -40
- data/src/core/lib/slice/slice_hash_table.h +0 -199
- data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
- data/third_party/upb/upb/generated_util.h +0 -105
@@ -23,9 +23,10 @@
|
|
23
23
|
#include <assert.h>
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
+
#include "absl/strings/str_format.h"
|
27
|
+
|
26
28
|
#include <grpc/support/alloc.h>
|
27
29
|
#include <grpc/support/log.h>
|
28
|
-
#include <grpc/support/string_util.h>
|
29
30
|
|
30
31
|
#include "src/core/lib/debug/trace.h"
|
31
32
|
#include "src/core/lib/gpr/murmur_hash.h"
|
@@ -119,13 +120,11 @@ grpc_error* grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl* tbl,
|
|
119
120
|
return GRPC_ERROR_NONE;
|
120
121
|
}
|
121
122
|
if (bytes > tbl->max_bytes) {
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
gpr_free(msg);
|
128
|
-
return err;
|
123
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
124
|
+
absl::StrFormat(
|
125
|
+
"Attempt to make hpack table %d bytes when max is %d bytes", bytes,
|
126
|
+
tbl->max_bytes)
|
127
|
+
.c_str());
|
129
128
|
}
|
130
129
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
131
130
|
gpr_log(GPR_INFO, "Update hpack parser table size to %d", bytes);
|
@@ -153,15 +152,12 @@ grpc_error* grpc_chttp2_hptbl_add(grpc_chttp2_hptbl* tbl, grpc_mdelem md) {
|
|
153
152
|
GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD;
|
154
153
|
|
155
154
|
if (tbl->current_table_bytes > tbl->max_bytes) {
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
grpc_error* err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
|
163
|
-
gpr_free(msg);
|
164
|
-
return err;
|
155
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
156
|
+
absl::StrFormat(
|
157
|
+
"HPACK max table size reduced to %d but not reflected by hpack "
|
158
|
+
"stream (still at %d)",
|
159
|
+
tbl->max_bytes, tbl->current_table_bytes)
|
160
|
+
.c_str());
|
165
161
|
}
|
166
162
|
|
167
163
|
/* we can't add elements bigger than the max table size */
|
@@ -52,8 +52,12 @@ class ContextList;
|
|
52
52
|
/* streams are kept in various linked lists depending on what things need to
|
53
53
|
happen to them... this enum labels each list */
|
54
54
|
typedef enum {
|
55
|
+
/* If a stream is in the following two lists, an explicit ref is associated
|
56
|
+
with the stream */
|
55
57
|
GRPC_CHTTP2_LIST_WRITABLE,
|
56
58
|
GRPC_CHTTP2_LIST_WRITING,
|
59
|
+
/* No additional ref is taken for the following refs. Make sure to remove the
|
60
|
+
stream from these lists when the stream is removed. */
|
57
61
|
GRPC_CHTTP2_LIST_STALLED_BY_TRANSPORT,
|
58
62
|
GRPC_CHTTP2_LIST_STALLED_BY_STREAM,
|
59
63
|
/** streams that are waiting to start because there are too many concurrent
|
@@ -290,7 +294,7 @@ struct grpc_chttp2_transport {
|
|
290
294
|
grpc_transport base; /* must be first */
|
291
295
|
grpc_core::RefCount refs;
|
292
296
|
grpc_endpoint* ep;
|
293
|
-
|
297
|
+
std::string peer_string;
|
294
298
|
|
295
299
|
grpc_resource_user* resource_user;
|
296
300
|
|
@@ -527,6 +531,13 @@ struct grpc_chttp2_stream {
|
|
527
531
|
grpc_metadata_batch* send_initial_metadata = nullptr;
|
528
532
|
grpc_closure* send_initial_metadata_finished = nullptr;
|
529
533
|
grpc_metadata_batch* send_trailing_metadata = nullptr;
|
534
|
+
// TODO(yashykt): Find a better name for the below field and others in this
|
535
|
+
// struct to betteer distinguish inputs, return values, and
|
536
|
+
// internal state.
|
537
|
+
// sent_trailing_metadata_op allows the transport to fill in to the upper
|
538
|
+
// layer whether this stream was able to send its trailing metadata (used for
|
539
|
+
// detecting cancellation on the server-side)..
|
540
|
+
bool* sent_trailing_metadata_op = nullptr;
|
530
541
|
grpc_closure* send_trailing_metadata_finished = nullptr;
|
531
542
|
|
532
543
|
grpc_core::OrphanablePtr<grpc_core::ByteStream> fetching_send_message;
|
@@ -836,6 +847,12 @@ void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id);
|
|
836
847
|
"too_many_pings" followed by immediately closing the connection. */
|
837
848
|
void grpc_chttp2_add_ping_strike(grpc_chttp2_transport* t);
|
838
849
|
|
850
|
+
/** Resets ping clock. Should be called when flushing window updates,
|
851
|
+
* initial/trailing metadata or data frames. For a server, it resets the number
|
852
|
+
* of ping strikes and the last_ping_recv_time. For a ping sender, it resets
|
853
|
+
* pings_before_data_required. */
|
854
|
+
void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t);
|
855
|
+
|
839
856
|
/** add a ref to the stream and add it to the writable list;
|
840
857
|
ref will be dropped in writing.c */
|
841
858
|
void grpc_chttp2_mark_stream_writable(grpc_chttp2_transport* t,
|
@@ -22,9 +22,11 @@
|
|
22
22
|
|
23
23
|
#include <string.h>
|
24
24
|
|
25
|
+
#include "absl/strings/str_cat.h"
|
26
|
+
#include "absl/strings/str_format.h"
|
27
|
+
|
25
28
|
#include <grpc/support/alloc.h>
|
26
29
|
#include <grpc/support/log.h>
|
27
|
-
#include <grpc/support/string_util.h>
|
28
30
|
|
29
31
|
#include "src/core/lib/profiling/timers.h"
|
30
32
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
@@ -85,18 +87,15 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
85
87
|
case GRPC_DTS_CLIENT_PREFIX_23:
|
86
88
|
while (cur != end && t->deframe_state != GRPC_DTS_FH_0) {
|
87
89
|
if (*cur != GRPC_CHTTP2_CLIENT_CONNECT_STRING[t->deframe_state]) {
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
|
98
|
-
gpr_free(msg);
|
99
|
-
return err;
|
90
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
91
|
+
absl::StrFormat(
|
92
|
+
"Connect string mismatch: expected '%c' (%d) got '%c' (%d) "
|
93
|
+
"at byte %d",
|
94
|
+
GRPC_CHTTP2_CLIENT_CONNECT_STRING[t->deframe_state],
|
95
|
+
static_cast<int>(static_cast<uint8_t>(
|
96
|
+
GRPC_CHTTP2_CLIENT_CONNECT_STRING[t->deframe_state])),
|
97
|
+
*cur, static_cast<int>(*cur), t->deframe_state)
|
98
|
+
.c_str());
|
100
99
|
}
|
101
100
|
++cur;
|
102
101
|
t->deframe_state = static_cast<grpc_chttp2_deframe_transport_state>(
|
@@ -194,14 +193,12 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
194
193
|
t->incoming_frame_size >
|
195
194
|
t->settings[GRPC_ACKED_SETTINGS]
|
196
195
|
[GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE]) {
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
gpr_free(msg);
|
204
|
-
return err;
|
196
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
197
|
+
absl::StrFormat("Frame size %d is larger than max frame size %d",
|
198
|
+
t->incoming_frame_size,
|
199
|
+
t->settings[GRPC_ACKED_SETTINGS]
|
200
|
+
[GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE])
|
201
|
+
.c_str());
|
205
202
|
}
|
206
203
|
if (++cur == end) {
|
207
204
|
return GRPC_ERROR_NONE;
|
@@ -255,34 +252,27 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
255
252
|
static grpc_error* init_frame_parser(grpc_chttp2_transport* t) {
|
256
253
|
if (t->is_first_frame &&
|
257
254
|
t->incoming_frame_type != GRPC_CHTTP2_FRAME_SETTINGS) {
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
gpr_free(msg);
|
264
|
-
return err;
|
255
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
256
|
+
absl::StrCat(
|
257
|
+
"Expected SETTINGS frame as the first frame, got frame type ",
|
258
|
+
t->incoming_frame_type)
|
259
|
+
.c_str());
|
265
260
|
}
|
266
261
|
t->is_first_frame = false;
|
267
262
|
if (t->expect_continuation_stream_id != 0) {
|
268
263
|
if (t->incoming_frame_type != GRPC_CHTTP2_FRAME_CONTINUATION) {
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
gpr_free(msg);
|
274
|
-
return err;
|
264
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
265
|
+
absl::StrFormat("Expected CONTINUATION frame, got frame type %02x",
|
266
|
+
t->incoming_frame_type)
|
267
|
+
.c_str());
|
275
268
|
}
|
276
269
|
if (t->expect_continuation_stream_id != t->incoming_stream_id) {
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
grpc_error* err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
|
284
|
-
gpr_free(msg);
|
285
|
-
return err;
|
270
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
271
|
+
absl::StrFormat(
|
272
|
+
"Expected CONTINUATION frame for grpc_chttp2_stream %08x, got "
|
273
|
+
"grpc_chttp2_stream %08x",
|
274
|
+
t->expect_continuation_stream_id, t->incoming_stream_id)
|
275
|
+
.c_str());
|
286
276
|
}
|
287
277
|
return init_header_frame_parser(t, 1);
|
288
278
|
}
|
@@ -401,27 +391,6 @@ static bool md_key_cmp(grpc_mdelem md, const grpc_slice& reference) {
|
|
401
391
|
return GRPC_MDKEY(md).refcount == reference.refcount;
|
402
392
|
}
|
403
393
|
|
404
|
-
static bool md_cmp(grpc_mdelem md, grpc_mdelem ref_md,
|
405
|
-
const grpc_slice& ref_key) {
|
406
|
-
if (GPR_LIKELY(GRPC_MDELEM_IS_INTERNED(md))) {
|
407
|
-
return md.payload == ref_md.payload;
|
408
|
-
}
|
409
|
-
if (md_key_cmp(md, ref_key)) {
|
410
|
-
return grpc_slice_eq_static_interned(GRPC_MDVALUE(md),
|
411
|
-
GRPC_MDVALUE(ref_md));
|
412
|
-
}
|
413
|
-
return false;
|
414
|
-
}
|
415
|
-
|
416
|
-
static bool is_nonzero_status(grpc_mdelem md) {
|
417
|
-
// If md.payload == GRPC_MDELEM_GRPC_STATUS_1 or GRPC_MDELEM_GRPC_STATUS_2,
|
418
|
-
// then we have seen an error. In fact, if it is a GRPC_STATUS and it's
|
419
|
-
// not equal to GRPC_MDELEM_GRPC_STATUS_0, then we have seen an error.
|
420
|
-
// TODO(ctiller): check for a status like " 0"
|
421
|
-
return md_key_cmp(md, GRPC_MDSTR_GRPC_STATUS) &&
|
422
|
-
!md_cmp(md, GRPC_MDELEM_GRPC_STATUS_0, GRPC_MDSTR_GRPC_STATUS);
|
423
|
-
}
|
424
|
-
|
425
394
|
static void GPR_ATTRIBUTE_NOINLINE on_initial_header_log(
|
426
395
|
grpc_chttp2_transport* t, grpc_chttp2_stream* s, grpc_mdelem md) {
|
427
396
|
char* key = grpc_slice_to_c_string(GRPC_MDKEY(md));
|
@@ -503,9 +472,7 @@ static grpc_error* on_initial_header(void* tp, grpc_mdelem md) {
|
|
503
472
|
on_initial_header_log(t, s, md);
|
504
473
|
}
|
505
474
|
|
506
|
-
if (
|
507
|
-
s->seen_error = true;
|
508
|
-
} else if (md_key_cmp(md, GRPC_MDSTR_GRPC_TIMEOUT)) {
|
475
|
+
if (md_key_cmp(md, GRPC_MDSTR_GRPC_TIMEOUT)) {
|
509
476
|
return handle_timeout(s, md);
|
510
477
|
}
|
511
478
|
|
@@ -544,10 +511,6 @@ static grpc_error* on_trailing_header(void* tp, grpc_mdelem md) {
|
|
544
511
|
gpr_free(value);
|
545
512
|
}
|
546
513
|
|
547
|
-
if (is_nonzero_status(md)) { // not GRPC_MDELEM_GRPC_STATUS_0?
|
548
|
-
s->seen_error = true;
|
549
|
-
}
|
550
|
-
|
551
514
|
const size_t new_size = s->metadata_buffer[1].size + GRPC_MDELEM_LENGTH(md);
|
552
515
|
const size_t metadata_size_limit =
|
553
516
|
t->settings[GRPC_ACKED_SETTINGS]
|
@@ -58,7 +58,7 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
|
|
58
58
|
GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace) ||
|
59
59
|
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
60
60
|
gpr_log(GPR_INFO, "%s: Ping delayed [%s]: already pinging",
|
61
|
-
t->is_client ? "CLIENT" : "SERVER", t->peer_string);
|
61
|
+
t->is_client ? "CLIENT" : "SERVER", t->peer_string.c_str());
|
62
62
|
}
|
63
63
|
return;
|
64
64
|
}
|
@@ -69,7 +69,7 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
|
|
69
69
|
GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace) ||
|
70
70
|
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
71
71
|
gpr_log(GPR_INFO, "%s: Ping delayed [%s]: too many recent pings: %d/%d",
|
72
|
-
t->is_client ? "CLIENT" : "SERVER", t->peer_string,
|
72
|
+
t->is_client ? "CLIENT" : "SERVER", t->peer_string.c_str(),
|
73
73
|
t->ping_state.pings_before_data_required,
|
74
74
|
t->ping_policy.max_pings_without_data);
|
75
75
|
}
|
@@ -95,7 +95,7 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
|
|
95
95
|
gpr_log(GPR_INFO,
|
96
96
|
"%s: Ping delayed [%s]: not enough time elapsed since last ping. "
|
97
97
|
" Last ping %f: Next ping %f: Now %f",
|
98
|
-
t->is_client ? "CLIENT" : "SERVER", t->peer_string,
|
98
|
+
t->is_client ? "CLIENT" : "SERVER", t->peer_string.c_str(),
|
99
99
|
static_cast<double>(t->ping_state.last_ping_sent_time),
|
100
100
|
static_cast<double>(next_allowed_ping), static_cast<double>(now));
|
101
101
|
}
|
@@ -125,7 +125,7 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
|
|
125
125
|
GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace) ||
|
126
126
|
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
127
127
|
gpr_log(GPR_INFO, "%s: Ping sent [%s]: %d/%d",
|
128
|
-
t->is_client ? "CLIENT" : "SERVER", t->peer_string,
|
128
|
+
t->is_client ? "CLIENT" : "SERVER", t->peer_string.c_str(),
|
129
129
|
t->ping_state.pings_before_data_required,
|
130
130
|
t->ping_policy.max_pings_without_data);
|
131
131
|
}
|
@@ -165,7 +165,8 @@ static void report_stall(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
165
165
|
"helpful data: [fc:pending=%" PRIdPTR ":pending-compressed=%" PRIdPTR
|
166
166
|
":flowed=%" PRId64 ":peer_initwin=%d:t_win=%" PRId64
|
167
167
|
":s_win=%d:s_delta=%" PRId64 "]",
|
168
|
-
t->peer_string, t, s->id, staller,
|
168
|
+
t->peer_string.c_str(), t, s->id, staller,
|
169
|
+
s->flow_controlled_buffer.length,
|
169
170
|
s->stream_compression_method ==
|
170
171
|
GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS
|
171
172
|
? 0
|
@@ -242,7 +243,7 @@ class WriteContext {
|
|
242
243
|
grpc_slice_buffer_add(
|
243
244
|
&t_->outbuf, grpc_chttp2_window_update_create(0, transport_announce,
|
244
245
|
&throwaway_stats));
|
245
|
-
|
246
|
+
grpc_chttp2_reset_ping_clock(t_);
|
246
247
|
}
|
247
248
|
}
|
248
249
|
|
@@ -287,15 +288,6 @@ class WriteContext {
|
|
287
288
|
return s;
|
288
289
|
}
|
289
290
|
|
290
|
-
void ResetPingClock() {
|
291
|
-
if (!t_->is_client) {
|
292
|
-
t_->ping_recv_state.last_ping_recv_time = GRPC_MILLIS_INF_PAST;
|
293
|
-
t_->ping_recv_state.ping_strikes = 0;
|
294
|
-
}
|
295
|
-
t_->ping_state.pings_before_data_required =
|
296
|
-
t_->ping_policy.max_pings_without_data;
|
297
|
-
}
|
298
|
-
|
299
291
|
void IncInitialMetadataWrites() { ++initial_metadata_writes_; }
|
300
292
|
void IncWindowUpdateWrites() { ++flow_control_writes_; }
|
301
293
|
void IncMessageWrites() { ++message_writes_; }
|
@@ -474,7 +466,7 @@ class StreamWriteContext {
|
|
474
466
|
};
|
475
467
|
grpc_chttp2_encode_header(&t_->hpack_compressor, nullptr, 0,
|
476
468
|
s_->send_initial_metadata, &hopt, &t_->outbuf);
|
477
|
-
|
469
|
+
grpc_chttp2_reset_ping_clock(t_);
|
478
470
|
write_context_->IncInitialMetadataWrites();
|
479
471
|
}
|
480
472
|
|
@@ -501,7 +493,7 @@ class StreamWriteContext {
|
|
501
493
|
grpc_slice_buffer_add(
|
502
494
|
&t_->outbuf, grpc_chttp2_window_update_create(s_->id, stream_announce,
|
503
495
|
&s_->stats.outgoing));
|
504
|
-
|
496
|
+
grpc_chttp2_reset_ping_clock(t_);
|
505
497
|
write_context_->IncWindowUpdateWrites();
|
506
498
|
}
|
507
499
|
|
@@ -543,7 +535,7 @@ class StreamWriteContext {
|
|
543
535
|
}
|
544
536
|
}
|
545
537
|
}
|
546
|
-
|
538
|
+
grpc_chttp2_reset_ping_clock(t_);
|
547
539
|
if (data_send_context.is_last_frame()) {
|
548
540
|
SentLastFrame();
|
549
541
|
}
|
@@ -584,7 +576,7 @@ class StreamWriteContext {
|
|
584
576
|
s_->send_trailing_metadata, &hopt, &t_->outbuf);
|
585
577
|
}
|
586
578
|
write_context_->IncTrailingMetadataWrites();
|
587
|
-
|
579
|
+
grpc_chttp2_reset_ping_clock(t_);
|
588
580
|
SentLastFrame();
|
589
581
|
|
590
582
|
write_context_->NoteScheduledResults();
|
@@ -615,6 +607,10 @@ class StreamWriteContext {
|
|
615
607
|
|
616
608
|
void SentLastFrame() {
|
617
609
|
s_->send_trailing_metadata = nullptr;
|
610
|
+
if (s_->sent_trailing_metadata_op) {
|
611
|
+
*s_->sent_trailing_metadata_op = true;
|
612
|
+
s_->sent_trailing_metadata_op = nullptr;
|
613
|
+
}
|
618
614
|
s_->sent_trailing_metadata = true;
|
619
615
|
s_->eos_sent = true;
|
620
616
|
|
@@ -202,11 +202,6 @@ struct inproc_stream {
|
|
202
202
|
}
|
203
203
|
|
204
204
|
t->unref();
|
205
|
-
|
206
|
-
if (closure_at_destroy) {
|
207
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure_at_destroy,
|
208
|
-
GRPC_ERROR_NONE);
|
209
|
-
}
|
210
205
|
}
|
211
206
|
|
212
207
|
#ifndef NDEBUG
|
@@ -249,7 +244,6 @@ struct inproc_stream {
|
|
249
244
|
bool other_side_closed = false; // won't talk anymore
|
250
245
|
bool write_buffer_other_side_closed = false; // on hold
|
251
246
|
grpc_stream_refcount* refs;
|
252
|
-
grpc_closure* closure_at_destroy = nullptr;
|
253
247
|
|
254
248
|
grpc_core::Arena* arena;
|
255
249
|
|
@@ -267,6 +261,11 @@ struct inproc_stream {
|
|
267
261
|
bool trailing_md_sent = false;
|
268
262
|
bool initial_md_recvd = false;
|
269
263
|
bool trailing_md_recvd = false;
|
264
|
+
// The following tracks if the server-side only pretends to have received
|
265
|
+
// trailing metadata since it no longer cares about the RPC. If that is the
|
266
|
+
// case, it is still ok for the client to send trailing metadata (in which
|
267
|
+
// case it will be ignored).
|
268
|
+
bool trailing_md_recvd_implicit_only = false;
|
270
269
|
|
271
270
|
bool closed = false;
|
272
271
|
|
@@ -617,7 +616,7 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
|
|
617
616
|
s->send_message_op->payload->send_message.send_message.reset();
|
618
617
|
complete_if_batch_end_locked(
|
619
618
|
s, GRPC_ERROR_NONE, s->send_message_op,
|
620
|
-
"op_state_machine scheduling send-message-on-complete");
|
619
|
+
"op_state_machine scheduling send-message-on-complete case 1");
|
621
620
|
s->send_message_op = nullptr;
|
622
621
|
}
|
623
622
|
}
|
@@ -652,6 +651,9 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
|
|
652
651
|
0, dest, nullptr, destfilled);
|
653
652
|
}
|
654
653
|
s->trailing_md_sent = true;
|
654
|
+
if (s->send_trailing_md_op->payload->send_trailing_metadata.sent) {
|
655
|
+
*s->send_trailing_md_op->payload->send_trailing_metadata.sent = true;
|
656
|
+
}
|
655
657
|
if (!s->t->is_client && s->trailing_md_recvd && s->recv_trailing_md_op) {
|
656
658
|
INPROC_LOG(GPR_INFO,
|
657
659
|
"op_state_machine %p scheduling trailing-metadata-ready", s);
|
@@ -736,15 +738,25 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
|
|
736
738
|
}
|
737
739
|
if (s->to_read_trailing_md_filled) {
|
738
740
|
if (s->trailing_md_recvd) {
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
741
|
+
if (s->trailing_md_recvd_implicit_only) {
|
742
|
+
INPROC_LOG(GPR_INFO,
|
743
|
+
"op_state_machine %p already implicitly received trailing "
|
744
|
+
"metadata, so ignoring new trailing metadata from client",
|
745
|
+
s);
|
746
|
+
grpc_metadata_batch_clear(&s->to_read_trailing_md);
|
747
|
+
s->to_read_trailing_md_filled = false;
|
748
|
+
s->trailing_md_recvd_implicit_only = false;
|
749
|
+
} else {
|
750
|
+
new_err =
|
751
|
+
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Already recvd trailing md");
|
752
|
+
INPROC_LOG(
|
753
|
+
GPR_INFO,
|
754
|
+
"op_state_machine %p scheduling on_complete errors for already "
|
755
|
+
"recvd trailing md %p",
|
756
|
+
s, new_err);
|
757
|
+
fail_helper_locked(s, GRPC_ERROR_REF(new_err));
|
758
|
+
goto done;
|
759
|
+
}
|
748
760
|
}
|
749
761
|
if (s->recv_message_op != nullptr) {
|
750
762
|
// This message needs to be wrapped up because it will never be
|
@@ -767,7 +779,7 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
|
|
767
779
|
s->send_message_op->payload->send_message.stream_write_closed = true;
|
768
780
|
complete_if_batch_end_locked(
|
769
781
|
s, new_err, s->send_message_op,
|
770
|
-
"op_state_machine scheduling send-message-on-complete");
|
782
|
+
"op_state_machine scheduling send-message-on-complete case 2");
|
771
783
|
s->send_message_op = nullptr;
|
772
784
|
}
|
773
785
|
if (s->recv_trailing_md_op != nullptr) {
|
@@ -806,7 +818,7 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
|
|
806
818
|
"trailing-md-on-complete %p",
|
807
819
|
s, new_err);
|
808
820
|
}
|
809
|
-
} else {
|
821
|
+
} else if (!s->trailing_md_recvd) {
|
810
822
|
INPROC_LOG(
|
811
823
|
GPR_INFO,
|
812
824
|
"op_state_machine %p has trailing md but not yet waiting for it", s);
|
@@ -829,6 +841,9 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
|
|
829
841
|
"op_state_machine scheduling recv-trailing-md-on-complete");
|
830
842
|
s->trailing_md_recvd = true;
|
831
843
|
s->recv_trailing_md_op = nullptr;
|
844
|
+
// Since we are only pretending to have received the trailing MD, it would
|
845
|
+
// be ok (not an error) if the client actually sends it later.
|
846
|
+
s->trailing_md_recvd_implicit_only = true;
|
832
847
|
}
|
833
848
|
if (s->trailing_md_recvd && s->recv_message_op) {
|
834
849
|
// No further message will come on this stream, so finish off the
|
@@ -844,14 +859,13 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
|
|
844
859
|
"op_state_machine scheduling recv-message-on-complete");
|
845
860
|
s->recv_message_op = nullptr;
|
846
861
|
}
|
847
|
-
if (s->trailing_md_recvd &&
|
848
|
-
s->send_message_op) {
|
862
|
+
if (s->trailing_md_recvd && s->send_message_op && s->t->is_client) {
|
849
863
|
// Nothing further will try to receive from this stream, so finish off
|
850
864
|
// any outstanding send_message op
|
851
865
|
s->send_message_op->payload->send_message.send_message.reset();
|
852
866
|
complete_if_batch_end_locked(
|
853
867
|
s, new_err, s->send_message_op,
|
854
|
-
"op_state_machine scheduling send-message-on-complete");
|
868
|
+
"op_state_machine scheduling send-message-on-complete case 3");
|
855
869
|
s->send_message_op = nullptr;
|
856
870
|
}
|
857
871
|
if (s->send_message_op || s->send_trailing_md_op || s->recv_initial_md_op ||
|
@@ -1112,7 +1126,8 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1112
1126
|
|
1113
1127
|
void close_transport_locked(inproc_transport* t) {
|
1114
1128
|
INPROC_LOG(GPR_INFO, "close_transport %p %d", t, t->is_closed);
|
1115
|
-
t->state_tracker.SetState(GRPC_CHANNEL_SHUTDOWN,
|
1129
|
+
t->state_tracker.SetState(GRPC_CHANNEL_SHUTDOWN, absl::Status(),
|
1130
|
+
"close transport");
|
1116
1131
|
if (!t->is_closed) {
|
1117
1132
|
t->is_closed = true;
|
1118
1133
|
/* Also end all streams on this transport */
|
@@ -1162,12 +1177,17 @@ void perform_transport_op(grpc_transport* gt, grpc_transport_op* op) {
|
|
1162
1177
|
gpr_mu_unlock(&t->mu->mu);
|
1163
1178
|
}
|
1164
1179
|
|
1165
|
-
void destroy_stream(grpc_transport*
|
1180
|
+
void destroy_stream(grpc_transport* gt, grpc_stream* gs,
|
1166
1181
|
grpc_closure* then_schedule_closure) {
|
1167
1182
|
INPROC_LOG(GPR_INFO, "destroy_stream %p %p", gs, then_schedule_closure);
|
1183
|
+
inproc_transport* t = reinterpret_cast<inproc_transport*>(gt);
|
1168
1184
|
inproc_stream* s = reinterpret_cast<inproc_stream*>(gs);
|
1169
|
-
|
1185
|
+
gpr_mu_lock(&t->mu->mu);
|
1186
|
+
close_stream_locked(s);
|
1187
|
+
gpr_mu_unlock(&t->mu->mu);
|
1170
1188
|
s->~inproc_stream();
|
1189
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, then_schedule_closure,
|
1190
|
+
GRPC_ERROR_NONE);
|
1171
1191
|
}
|
1172
1192
|
|
1173
1193
|
void destroy_transport(grpc_transport* gt) {
|
@@ -1255,7 +1275,7 @@ grpc_channel* grpc_inproc_channel_create(grpc_server* server,
|
|
1255
1275
|
const char* args_to_remove[] = {GRPC_ARG_MAX_CONNECTION_IDLE_MS,
|
1256
1276
|
GRPC_ARG_MAX_CONNECTION_AGE_MS};
|
1257
1277
|
const grpc_channel_args* server_args = grpc_channel_args_copy_and_remove(
|
1258
|
-
|
1278
|
+
server->core_server->channel_args(), args_to_remove,
|
1259
1279
|
GPR_ARRAY_SIZE(args_to_remove));
|
1260
1280
|
|
1261
1281
|
// Add a default authority channel argument for the client
|
@@ -1272,8 +1292,8 @@ grpc_channel* grpc_inproc_channel_create(grpc_server* server,
|
|
1272
1292
|
client_args);
|
1273
1293
|
|
1274
1294
|
// TODO(ncteisen): design and support channelz GetSocket for inproc.
|
1275
|
-
|
1276
|
-
|
1295
|
+
server->core_server->SetupTransport(server_transport, nullptr, server_args,
|
1296
|
+
nullptr);
|
1277
1297
|
grpc_channel* channel = grpc_channel_create(
|
1278
1298
|
"inproc", client_args, GRPC_CLIENT_DIRECT_CHANNEL, client_transport);
|
1279
1299
|
|