grpc 1.30.2 → 1.31.0.pre1
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 +560 -619
- data/include/grpc/grpc_security_constants.h +3 -0
- data/include/grpc/impl/codegen/grpc_types.h +7 -5
- data/include/grpc/impl/codegen/port_platform.h +0 -32
- data/src/core/ext/filters/client_channel/backend_metric.cc +12 -9
- data/src/core/ext/filters/client_channel/client_channel.cc +406 -265
- 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 +2 -0
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +6 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +39 -23
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +4 -6
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +376 -68
- 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 +33 -48
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +21 -18
- 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/resolving_lb_policy.cc +33 -28
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +39 -20
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +142 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +1 -1
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +327 -123
- data/src/core/ext/filters/client_channel/xds/xds_api.h +72 -7
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +12 -23
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +112 -33
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +10 -10
- 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/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/server/chttp2_server.cc +383 -347
- 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/chttp2_transport.cc +19 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +22 -27
- 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 +6 -7
- 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 +13 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +33 -43
- data/src/core/ext/transport/chttp2/transport/writing.cc +9 -14
- data/src/core/ext/transport/inproc/inproc_transport.cc +35 -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.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +80 -69
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +24 -23
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +66 -56
- 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 +2 -2
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +317 -311
- 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.h +7 -7
- 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.h +55 -49
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +9 -8
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +163 -169
- 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.h +4 -5
- 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.h +137 -117
- 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.h +105 -87
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +12 -13
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -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.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -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.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +49 -42
- 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.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +81 -65
- 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 +1 -1
- 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.h +9 -10
- 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.h +36 -31
- 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 +7 -7
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +648 -696
- 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.h +1 -2
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -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.h +234 -199
- 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.h +13 -13
- 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.h +20 -18
- data/src/core/ext/upb-generated/envoy/type/http.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +18 -17
- 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.h +23 -23
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +8 -9
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +15 -16
- 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.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 +3 -3
- 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 +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.h +5 -6
- 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.h +536 -535
- data/src/core/lib/channel/channel_trace.cc +2 -6
- data/src/core/lib/channel/channelz.cc +5 -15
- 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/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_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/ev_posix.cc +2 -0
- data/src/core/lib/iomgr/iomgr.cc +10 -0
- data/src/core/lib/iomgr/iomgr.h +10 -0
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
- 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 +7 -5
- data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
- 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 +1 -1
- 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 +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/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/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 +12 -9
- 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 +10 -10
- 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/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 +40 -41
- data/src/core/lib/surface/completion_queue.cc +271 -14
- data/src/core/lib/surface/completion_queue.h +8 -0
- data/src/core/lib/surface/init.cc +2 -0
- data/src/core/lib/surface/server.cc +565 -632
- data/src/core/lib/surface/server.h +34 -12
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/transport.h +6 -0
- data/src/core/lib/uri/uri_parser.cc +8 -15
- 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 +2 -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/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/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/err_data.c +89 -83
- 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 +143 -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/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_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 +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +69 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +33 -16
- 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 +789 -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 +17 -14
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -7
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +28 -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/tls13_client.cc +31 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +12 -9
- 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 +40 -37
- 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
|
|
@@ -1105,7 +1105,6 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1105
1105
|
: static_cast<grpc_millis>(current_keepalive_time_ms *
|
1106
1106
|
KEEPALIVE_TIME_BACKOFF_MULTIPLIER);
|
1107
1107
|
}
|
1108
|
-
|
1109
1108
|
/* lie: use transient failure from the transport to indicate goaway has been
|
1110
1109
|
* received */
|
1111
1110
|
connectivity_state_set(t, GRPC_CHANNEL_TRANSIENT_FAILURE, "got_goaway");
|
@@ -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(
|
@@ -1794,6 +1795,15 @@ void grpc_chttp2_add_ping_strike(grpc_chttp2_transport* t) {
|
|
1794
1795
|
}
|
1795
1796
|
}
|
1796
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
|
+
|
1797
1807
|
static void perform_transport_op_locked(void* stream_op,
|
1798
1808
|
grpc_error* /*error_ignored*/) {
|
1799
1809
|
grpc_transport_op* op = static_cast<grpc_transport_op*>(stream_op);
|
@@ -2177,6 +2187,7 @@ void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
|
2177
2187
|
"send_initial_metadata_finished");
|
2178
2188
|
|
2179
2189
|
s->send_trailing_metadata = nullptr;
|
2190
|
+
s->sent_trailing_metadata_op = nullptr;
|
2180
2191
|
grpc_chttp2_complete_closure_step(t, s, &s->send_trailing_metadata_finished,
|
2181
2192
|
GRPC_ERROR_REF(error),
|
2182
2193
|
"send_trailing_metadata_finished");
|
@@ -2193,9 +2204,12 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2193
2204
|
grpc_chttp2_stream* s, int close_reads,
|
2194
2205
|
int close_writes, grpc_error* error) {
|
2195
2206
|
if (s->read_closed && s->write_closed) {
|
2196
|
-
/* 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
|
+
}
|
2197
2212
|
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
|
2198
|
-
GRPC_ERROR_UNREF(error);
|
2199
2213
|
return;
|
2200
2214
|
}
|
2201
2215
|
bool closed_read = false;
|
@@ -2390,6 +2404,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2390
2404
|
grpc_slice_buffer_add(&t->qbuf, status_hdr);
|
2391
2405
|
grpc_slice_buffer_add(&t->qbuf, message_pfx);
|
2392
2406
|
grpc_slice_buffer_add(&t->qbuf, grpc_slice_ref_internal(slice));
|
2407
|
+
grpc_chttp2_reset_ping_clock(t);
|
2393
2408
|
grpc_chttp2_add_rst_stream_to_next_write(t, s->id, GRPC_HTTP2_NO_ERROR,
|
2394
2409
|
&s->stats.outgoing);
|
2395
2410
|
|
@@ -2878,7 +2893,7 @@ static void keepalive_watchdog_fired_locked(void* arg, grpc_error* error) {
|
|
2878
2893
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2879
2894
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2880
2895
|
if (error == GRPC_ERROR_NONE) {
|
2881
|
-
gpr_log(
|
2896
|
+
gpr_log(GPR_INFO, "%s: Keepalive watchdog fired. Closing transport.",
|
2882
2897
|
t->peer_string);
|
2883
2898
|
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_DYING;
|
2884
2899
|
close_transport_locked(
|
@@ -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
|
|
@@ -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
|
@@ -22,9 +22,10 @@
|
|
22
22
|
|
23
23
|
#include <string.h>
|
24
24
|
|
25
|
+
#include "absl/strings/str_format.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
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
29
30
|
#include "src/core/lib/gpr/string.h"
|
30
31
|
#include "src/core/lib/gprpp/memory.h"
|
@@ -44,13 +45,10 @@ grpc_error* grpc_chttp2_data_parser_begin_frame(
|
|
44
45
|
grpc_chttp2_data_parser* /*parser*/, uint8_t flags, uint32_t stream_id,
|
45
46
|
grpc_chttp2_stream* s) {
|
46
47
|
if (flags & ~GRPC_CHTTP2_DATA_FLAG_END_STREAM) {
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
static_cast<intptr_t>(stream_id));
|
52
|
-
gpr_free(msg);
|
53
|
-
return err;
|
48
|
+
return grpc_error_set_int(
|
49
|
+
GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
50
|
+
absl::StrFormat("unsupported data flags: 0x%02x", flags).c_str()),
|
51
|
+
GRPC_ERROR_INT_STREAM_ID, static_cast<intptr_t>(stream_id));
|
54
52
|
}
|
55
53
|
|
56
54
|
if (flags & GRPC_CHTTP2_DATA_FLAG_END_STREAM) {
|
@@ -130,12 +128,11 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
|
|
130
128
|
p->is_frame_compressed = true; /* GPR_TRUE */
|
131
129
|
break;
|
132
130
|
default:
|
133
|
-
|
134
|
-
|
135
|
-
|
131
|
+
p->error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
132
|
+
absl::StrFormat("Bad GRPC frame type 0x%02x", p->frame_type)
|
133
|
+
.c_str());
|
136
134
|
p->error = grpc_error_set_int(p->error, GRPC_ERROR_INT_STREAM_ID,
|
137
135
|
static_cast<intptr_t>(s->id));
|
138
|
-
gpr_free(msg);
|
139
136
|
p->error = grpc_error_set_str(
|
140
137
|
p->error, GRPC_ERROR_STR_RAW_BYTES,
|
141
138
|
grpc_slice_from_moved_string(grpc_core::UniquePtr<char>(
|
@@ -23,9 +23,10 @@
|
|
23
23
|
|
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
|
void grpc_chttp2_goaway_parser_init(grpc_chttp2_goaway_parser* p) {
|
31
32
|
p->debug_data = nullptr;
|
@@ -39,11 +40,8 @@ grpc_error* grpc_chttp2_goaway_parser_begin_frame(grpc_chttp2_goaway_parser* p,
|
|
39
40
|
uint32_t length,
|
40
41
|
uint8_t /*flags*/) {
|
41
42
|
if (length < 8) {
|
42
|
-
|
43
|
-
|
44
|
-
grpc_error* err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
|
45
|
-
gpr_free(msg);
|
46
|
-
return err;
|
43
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
44
|
+
absl::StrFormat("goaway frame too short (%d bytes)", length).c_str());
|
47
45
|
}
|
48
46
|
|
49
47
|
gpr_free(p->debug_data);
|
@@ -23,9 +23,10 @@
|
|
23
23
|
|
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
|
static bool g_disable_ping_ack = false;
|
31
32
|
|
@@ -58,11 +59,9 @@ grpc_error* grpc_chttp2_ping_parser_begin_frame(grpc_chttp2_ping_parser* parser,
|
|
58
59
|
uint32_t length,
|
59
60
|
uint8_t flags) {
|
60
61
|
if (flags & 0xfe || length != 8) {
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
gpr_free(msg);
|
65
|
-
return error;
|
62
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
63
|
+
absl::StrFormat("invalid ping: length=%d, flags=%02x", length, flags)
|
64
|
+
.c_str());
|
66
65
|
}
|
67
66
|
parser->byte = 0;
|
68
67
|
parser->is_ack = flags;
|