grpc 1.28.0 → 1.30.2
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 +7694 -11190
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security.h +30 -9
- data/include/grpc/grpc_security_constants.h +1 -0
- data/include/grpc/impl/codegen/grpc_types.h +19 -21
- data/include/grpc/impl/codegen/port_platform.h +6 -2
- data/include/grpc/module.modulemap +24 -39
- data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +212 -241
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +17 -10
- data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +240 -301
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +89 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +40 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +11 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -11
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +84 -37
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +6 -2
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
- data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
- data/src/core/ext/filters/client_channel/resolver.cc +5 -8
- data/src/core/ext/filters/client_channel/resolver.h +12 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +73 -59
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +16 -20
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +184 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +7 -4
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +40 -43
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +93 -102
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +32 -5
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
- data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +16 -16
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +19 -16
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +20 -31
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +4 -3
- data/src/core/ext/filters/client_channel/server_address.cc +6 -9
- data/src/core/ext/filters/client_channel/server_address.h +6 -12
- data/src/core/ext/filters/client_channel/service_config.cc +104 -144
- data/src/core/ext/filters/client_channel/service_config.h +28 -98
- data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
- data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
- data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
- data/src/core/ext/filters/client_channel/subchannel.h +35 -11
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +348 -221
- data/src/core/ext/filters/client_channel/xds/xds_api.h +37 -37
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +44 -49
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +4 -3
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +4 -2
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +532 -339
- data/src/core/ext/filters/client_channel/xds/xds_client.h +57 -22
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +11 -12
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +31 -19
- data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +7 -10
- data/src/core/ext/filters/message_size/message_size_filter.h +4 -4
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +23 -22
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
- data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -8
- data/src/core/ext/transport/inproc/inproc_transport.cc +19 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +4 -229
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -875
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +43 -7
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +47 -26
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +115 -65
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +24 -20
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +28 -13
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +38 -18
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +88 -6
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +9 -6
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +15 -10
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +16 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +63 -41
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +173 -77
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +48 -28
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +16 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +1 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +21 -20
- data/src/core/ext/upb-generated/validate/validate.upb.h +69 -63
- data/src/core/lib/channel/channel_args.cc +15 -14
- data/src/core/lib/channel/channel_args.h +3 -1
- data/src/core/lib/channel/channel_stack.h +20 -13
- data/src/core/lib/channel/channelz.cc +5 -6
- data/src/core/lib/channel/channelz.h +3 -2
- data/src/core/lib/channel/channelz_registry.cc +5 -3
- data/src/core/lib/channel/connected_channel.cc +7 -5
- data/src/core/lib/channel/context.h +1 -1
- data/src/core/lib/channel/handshaker.cc +11 -13
- data/src/core/lib/channel/handshaker.h +4 -2
- data/src/core/lib/channel/handshaker_registry.cc +5 -17
- data/src/core/lib/channel/status_util.cc +2 -3
- data/src/core/lib/compression/message_compress.cc +5 -1
- data/src/core/lib/debug/stats.cc +21 -27
- data/src/core/lib/debug/stats.h +3 -1
- data/src/core/lib/gpr/spinlock.h +2 -3
- data/src/core/lib/gpr/string.cc +2 -26
- data/src/core/lib/gpr/string.h +0 -16
- data/src/core/lib/gpr/sync_abseil.cc +2 -0
- data/src/core/lib/gpr/time.cc +4 -0
- data/src/core/lib/gpr/time_posix.cc +1 -1
- data/src/core/lib/gprpp/atomic.h +6 -6
- data/src/core/lib/gprpp/fork.cc +1 -1
- data/src/core/lib/gprpp/host_port.cc +29 -35
- data/src/core/lib/gprpp/host_port.h +14 -17
- data/src/core/lib/gprpp/map.h +5 -11
- data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
- data/src/core/lib/http/format_request.cc +46 -65
- data/src/core/lib/http/httpcli.cc +2 -3
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/http/parser.h +2 -3
- data/src/core/lib/iomgr/buffer_list.h +22 -21
- data/src/core/lib/iomgr/call_combiner.h +3 -2
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
- data/src/core/lib/iomgr/closure.h +2 -3
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
- data/src/core/lib/iomgr/endpoint_pair.h +2 -3
- data/src/core/lib/iomgr/error.cc +6 -9
- data/src/core/lib/iomgr/error.h +0 -1
- data/src/core/lib/iomgr/ev_apple.cc +356 -0
- data/src/core/lib/iomgr/ev_apple.h +43 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
- data/src/core/lib/iomgr/ev_epollex_linux.cc +2 -3
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
- data/src/core/lib/iomgr/ev_posix.cc +2 -3
- data/src/core/lib/iomgr/exec_ctx.h +14 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
- data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
- data/src/core/lib/{gprpp/optional.h → iomgr/pollset_uv.h} +11 -12
- data/src/core/lib/iomgr/port.h +1 -0
- data/src/core/lib/iomgr/python_util.h +46 -0
- data/src/core/lib/iomgr/resolve_address.h +4 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
- data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
- data/src/core/lib/iomgr/resource_quota.cc +4 -6
- data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
- data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
- data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
- data/src/core/lib/iomgr/socket_mutator.h +2 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
- data/src/core/lib/iomgr/tcp_client_posix.cc +8 -5
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
- data/src/core/lib/iomgr/tcp_custom.cc +2 -3
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
- data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
- data/src/core/lib/iomgr/tcp_uv.cc +3 -2
- data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
- data/src/core/lib/iomgr/timer_generic.cc +2 -3
- data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +19 -17
- data/src/core/lib/iomgr/timer_heap.h +2 -3
- data/src/core/lib/iomgr/udp_server.cc +9 -14
- data/src/core/lib/json/json.h +3 -2
- data/src/core/lib/json/json_reader.cc +5 -5
- data/src/core/lib/json/json_writer.cc +13 -12
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
- data/src/core/lib/security/credentials/credentials.cc +0 -84
- data/src/core/lib/security/credentials/credentials.h +8 -59
- data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +3 -8
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
- data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +55 -27
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +9 -3
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +38 -11
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -25
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +59 -12
- data/src/core/lib/security/security_connector/ssl_utils.h +12 -10
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +77 -51
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +27 -5
- data/src/core/lib/security/transport/auth_filters.h +0 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +14 -0
- data/src/core/lib/slice/slice_utils.h +9 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
- data/src/core/lib/surface/call.cc +2 -3
- data/src/core/lib/surface/call_log_batch.cc +50 -58
- data/src/core/lib/surface/channel.cc +53 -31
- data/src/core/lib/surface/channel.h +35 -4
- data/src/core/lib/surface/channel_ping.cc +2 -3
- data/src/core/lib/surface/completion_queue.cc +33 -33
- data/src/core/lib/surface/event_string.cc +18 -25
- data/src/core/lib/surface/event_string.h +3 -1
- data/src/core/lib/surface/init_secure.cc +1 -4
- data/src/core/lib/surface/server.cc +570 -369
- data/src/core/lib/surface/server.h +32 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.h +7 -2
- data/src/core/lib/transport/connectivity_state.cc +7 -6
- data/src/core/lib/transport/connectivity_state.h +5 -3
- data/src/core/lib/transport/metadata.cc +3 -3
- data/src/core/lib/transport/metadata_batch.h +2 -3
- data/src/core/lib/transport/static_metadata.h +1 -1
- data/src/core/lib/transport/status_conversion.cc +6 -14
- data/src/core/lib/transport/transport.cc +2 -3
- data/src/core/lib/transport/transport.h +3 -2
- data/src/core/lib/transport/transport_op_string.cc +61 -102
- data/src/core/lib/uri/uri_parser.h +2 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +8 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
- data/src/core/tsi/fake_transport_security.cc +10 -15
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
- data/src/core/tsi/ssl_transport_security.cc +52 -39
- data/src/core/tsi/ssl_transport_security.h +8 -8
- data/src/core/tsi/ssl_types.h +0 -2
- data/src/core/tsi/transport_security.h +6 -9
- data/src/core/tsi/transport_security_grpc.h +2 -3
- data/src/core/tsi/transport_security_interface.h +3 -3
- data/src/ruby/ext/grpc/rb_call.c +9 -1
- data/src/ruby/ext/grpc/rb_call_credentials.c +3 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/errors.rb +103 -42
- data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
- data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
- data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
- data/src/ruby/lib/grpc/generic/service.rb +5 -4
- data/src/ruby/lib/grpc/structs.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +5 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
- data/src/ruby/spec/debug_message_spec.rb +134 -0
- data/src/ruby/spec/generic/service_spec.rb +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +7 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +7 -1
- data/src/ruby/spec/support/services.rb +10 -4
- data/src/ruby/spec/testdata/ca.pem +18 -13
- data/src/ruby/spec/testdata/client.key +26 -14
- data/src/ruby/spec/testdata/client.pem +18 -12
- data/src/ruby/spec/testdata/server1.key +26 -14
- data/src/ruby/spec/testdata/server1.pem +20 -14
- data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
- data/third_party/abseil-cpp/absl/time/clock.h +74 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
- data/third_party/abseil-cpp/absl/time/format.cc +153 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
- data/third_party/abseil-cpp/absl/time/time.cc +499 -0
- data/third_party/abseil-cpp/absl/time/time.h +1584 -0
- data/third_party/boringssl-with-bazel/err_data.c +329 -297
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +18 -26
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +14 -22
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +15 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +33 -32
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +289 -117
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +13 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +432 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +90 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +41 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +32 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +24 -114
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +51 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +44 -35
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -12
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +4 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +20 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +31 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +172 -77
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +5 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -4
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +146 -57
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +14 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +28 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +12 -4
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +64 -47
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +10 -10
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -21
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +29 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +6 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +13 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +64 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +6 -2
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +47 -53
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -27
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +23 -75
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +50 -20
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +63 -25
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
- metadata +115 -39
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1754
- data/src/core/lib/gprpp/string_view.h +0 -60
- data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
@@ -47,7 +47,7 @@
|
|
47
47
|
#include "src/core/lib/surface/api_trace.h"
|
48
48
|
#include "src/core/lib/surface/server.h"
|
49
49
|
|
50
|
-
|
50
|
+
struct server_state {
|
51
51
|
grpc_server* server;
|
52
52
|
grpc_tcp_server* tcp_server;
|
53
53
|
grpc_channel_args* args;
|
@@ -58,9 +58,9 @@ typedef struct {
|
|
58
58
|
grpc_core::HandshakeManager* pending_handshake_mgrs;
|
59
59
|
grpc_core::RefCountedPtr<grpc_core::channelz::ListenSocketNode>
|
60
60
|
channelz_listen_socket;
|
61
|
-
}
|
61
|
+
};
|
62
62
|
|
63
|
-
|
63
|
+
struct server_connection_state {
|
64
64
|
gpr_refcount refs;
|
65
65
|
server_state* svr_state;
|
66
66
|
grpc_pollset* accepting_pollset;
|
@@ -73,7 +73,7 @@ typedef struct {
|
|
73
73
|
grpc_closure on_timeout;
|
74
74
|
grpc_closure on_receive_settings;
|
75
75
|
grpc_pollset_set* interested_parties;
|
76
|
-
}
|
76
|
+
};
|
77
77
|
|
78
78
|
static void server_connection_state_unref(
|
79
79
|
server_connection_state* connection_state) {
|
@@ -28,11 +28,10 @@
|
|
28
28
|
static const char alphabet[] =
|
29
29
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
30
30
|
|
31
|
-
|
31
|
+
struct b64_huff_sym {
|
32
32
|
uint16_t bits;
|
33
33
|
uint8_t length;
|
34
|
-
}
|
35
|
-
|
34
|
+
};
|
36
35
|
static const b64_huff_sym huff_alphabet[64] = {
|
37
36
|
{0x21, 6}, {0x5d, 7}, {0x5e, 7}, {0x5f, 7}, {0x60, 7}, {0x61, 7},
|
38
37
|
{0x62, 7}, {0x63, 7}, {0x64, 7}, {0x65, 7}, {0x66, 7}, {0x67, 7},
|
@@ -136,12 +135,11 @@ grpc_slice grpc_chttp2_huffman_compress(const grpc_slice& input) {
|
|
136
135
|
return output;
|
137
136
|
}
|
138
137
|
|
139
|
-
|
138
|
+
struct huff_out {
|
140
139
|
uint32_t temp;
|
141
140
|
uint32_t temp_length;
|
142
141
|
uint8_t* out;
|
143
|
-
}
|
144
|
-
|
142
|
+
};
|
145
143
|
static void enc_flush_some(huff_out* out) {
|
146
144
|
while (out->temp_length > 8) {
|
147
145
|
out->temp_length -= 8;
|
@@ -20,19 +20,18 @@
|
|
20
20
|
|
21
21
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
22
22
|
|
23
|
+
#include <grpc/slice_buffer.h>
|
24
|
+
#include <grpc/support/alloc.h>
|
25
|
+
#include <grpc/support/log.h>
|
26
|
+
#include <grpc/support/port_platform.h>
|
27
|
+
#include <grpc/support/string_util.h>
|
23
28
|
#include <inttypes.h>
|
24
29
|
#include <limits.h>
|
25
30
|
#include <math.h>
|
26
31
|
#include <stdio.h>
|
27
32
|
#include <string.h>
|
28
33
|
|
29
|
-
#include <grpc/slice_buffer.h>
|
30
|
-
#include <grpc/support/alloc.h>
|
31
|
-
#include <grpc/support/log.h>
|
32
|
-
#include <grpc/support/string_util.h>
|
33
|
-
|
34
34
|
#include "absl/strings/str_format.h"
|
35
|
-
|
36
35
|
#include "src/core/ext/transport/chttp2/transport/context_list.h"
|
37
36
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
38
37
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
@@ -100,6 +99,7 @@ static int g_default_max_ping_strikes = DEFAULT_MAX_PING_STRIKES;
|
|
100
99
|
|
101
100
|
#define MAX_CLIENT_STREAM_ID 0x7fffffffu
|
102
101
|
grpc_core::TraceFlag grpc_http_trace(false, "http");
|
102
|
+
grpc_core::TraceFlag grpc_keepalive_trace(false, "http_keepalive");
|
103
103
|
grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount(false,
|
104
104
|
"chttp2_refcount");
|
105
105
|
|
@@ -1097,8 +1097,10 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1097
1097
|
"Received a GOAWAY with error code ENHANCE_YOUR_CALM and debug "
|
1098
1098
|
"data equal to \"too_many_pings\"");
|
1099
1099
|
double current_keepalive_time_ms = static_cast<double>(t->keepalive_time);
|
1100
|
+
constexpr int max_keepalive_time_ms =
|
1101
|
+
INT_MAX / KEEPALIVE_TIME_BACKOFF_MULTIPLIER;
|
1100
1102
|
t->keepalive_time =
|
1101
|
-
current_keepalive_time_ms >
|
1103
|
+
current_keepalive_time_ms > static_cast<double>(max_keepalive_time_ms)
|
1102
1104
|
? GRPC_MILLIS_INF_FUTURE
|
1103
1105
|
: static_cast<grpc_millis>(current_keepalive_time_ms *
|
1104
1106
|
KEEPALIVE_TIME_BACKOFF_MULTIPLIER);
|
@@ -1354,10 +1356,8 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1354
1356
|
s->context = op->payload->context;
|
1355
1357
|
s->traced = op->is_traced;
|
1356
1358
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1357
|
-
|
1358
|
-
|
1359
|
-
op->on_complete);
|
1360
|
-
gpr_free(str);
|
1359
|
+
gpr_log(GPR_INFO, "perform_stream_op_locked: %s; on_complete = %p",
|
1360
|
+
grpc_transport_stream_op_batch_string(op).c_str(), op->on_complete);
|
1361
1361
|
if (op->send_initial_metadata) {
|
1362
1362
|
log_metadata(op_payload->send_initial_metadata.send_initial_metadata,
|
1363
1363
|
s->id, t->is_client, true);
|
@@ -1652,9 +1652,8 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1652
1652
|
}
|
1653
1653
|
|
1654
1654
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1655
|
-
|
1656
|
-
|
1657
|
-
gpr_free(str);
|
1655
|
+
gpr_log(GPR_INFO, "perform_stream_op[s=%p]: %s", s,
|
1656
|
+
grpc_transport_stream_op_batch_string(op).c_str());
|
1658
1657
|
}
|
1659
1658
|
|
1660
1659
|
GRPC_CHTTP2_STREAM_REF(s, "perform_stream_op");
|
@@ -1843,9 +1842,8 @@ static void perform_transport_op_locked(void* stream_op,
|
|
1843
1842
|
static void perform_transport_op(grpc_transport* gt, grpc_transport_op* op) {
|
1844
1843
|
grpc_chttp2_transport* t = reinterpret_cast<grpc_chttp2_transport*>(gt);
|
1845
1844
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1846
|
-
|
1847
|
-
|
1848
|
-
gpr_free(msg);
|
1845
|
+
gpr_log(GPR_INFO, "perform_transport_op[t=%p]: %s", t,
|
1846
|
+
grpc_transport_op_string(op).c_str());
|
1849
1847
|
}
|
1850
1848
|
op->handler_private.extra_arg = gt;
|
1851
1849
|
GRPC_CHTTP2_REF_TRANSPORT(t, "transport_op");
|
@@ -2399,10 +2397,10 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2399
2397
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_CLOSE_FROM_API);
|
2400
2398
|
}
|
2401
2399
|
|
2402
|
-
|
2400
|
+
struct cancel_stream_cb_args {
|
2403
2401
|
grpc_error* error;
|
2404
2402
|
grpc_chttp2_transport* t;
|
2405
|
-
}
|
2403
|
+
};
|
2406
2404
|
|
2407
2405
|
static void cancel_stream_cb(void* user_data, uint32_t /*key*/, void* stream) {
|
2408
2406
|
cancel_stream_cb_args* args = static_cast<cancel_stream_cb_args*>(user_data);
|
@@ -2483,7 +2481,8 @@ static grpc_error* try_http_parsing(grpc_chttp2_transport* t) {
|
|
2483
2481
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
2484
2482
|
"Trying to connect an http1.x server"),
|
2485
2483
|
GRPC_ERROR_INT_HTTP_STATUS, response.status),
|
2486
|
-
GRPC_ERROR_INT_GRPC_STATUS,
|
2484
|
+
GRPC_ERROR_INT_GRPC_STATUS,
|
2485
|
+
grpc_http2_status_to_grpc_status(response.status));
|
2487
2486
|
}
|
2488
2487
|
GRPC_ERROR_UNREF(parse_error);
|
2489
2488
|
|
@@ -2816,7 +2815,8 @@ static void start_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2816
2815
|
if (t->channelz_socket != nullptr) {
|
2817
2816
|
t->channelz_socket->RecordKeepaliveSent();
|
2818
2817
|
}
|
2819
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)
|
2818
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
|
2819
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
2820
2820
|
gpr_log(GPR_INFO, "%s: Start keepalive ping", t->peer_string);
|
2821
2821
|
}
|
2822
2822
|
GRPC_CHTTP2_REF_TRANSPORT(t, "keepalive watchdog");
|
@@ -2839,7 +2839,8 @@ static void finish_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2839
2839
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2840
2840
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2841
2841
|
if (error == GRPC_ERROR_NONE) {
|
2842
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)
|
2842
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
|
2843
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
2843
2844
|
gpr_log(GPR_INFO, "%s: Finish keepalive ping", t->peer_string);
|
2844
2845
|
}
|
2845
2846
|
if (!t->keepalive_ping_started) {
|
@@ -27,6 +27,7 @@
|
|
27
27
|
#include "src/core/lib/transport/transport.h"
|
28
28
|
|
29
29
|
extern grpc_core::TraceFlag grpc_http_trace;
|
30
|
+
extern grpc_core::TraceFlag grpc_keepalive_trace;
|
30
31
|
extern grpc_core::TraceFlag grpc_trace_http2_stream_state;
|
31
32
|
extern grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount;
|
32
33
|
extern grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_hpack_parser;
|
@@ -284,8 +284,8 @@ void StreamFlowControl::IncomingByteStreamUpdate(size_t max_size_hint,
|
|
284
284
|
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
|
285
285
|
|
286
286
|
/* clamp max recv hint to an allowable size */
|
287
|
-
if (max_size_hint >=
|
288
|
-
max_recv_bytes =
|
287
|
+
if (max_size_hint >= kMaxWindowUpdateSize - sent_init_window) {
|
288
|
+
max_recv_bytes = kMaxWindowUpdateSize - sent_init_window;
|
289
289
|
} else {
|
290
290
|
max_recv_bytes = static_cast<uint32_t>(max_size_hint);
|
291
291
|
}
|
@@ -298,7 +298,7 @@ void StreamFlowControl::IncomingByteStreamUpdate(size_t max_size_hint,
|
|
298
298
|
}
|
299
299
|
|
300
300
|
/* add some small lookahead to keep pipelines flowing */
|
301
|
-
|
301
|
+
GPR_DEBUG_ASSERT(max_recv_bytes <= kMaxWindowUpdateSize - sent_init_window);
|
302
302
|
if (local_window_delta_ < max_recv_bytes) {
|
303
303
|
uint32_t add_max_recv_bytes =
|
304
304
|
static_cast<uint32_t>(max_recv_bytes - local_window_delta_);
|
@@ -37,15 +37,14 @@ typedef enum {
|
|
37
37
|
GRPC_CHTTP2_GOAWAY_DEBUG
|
38
38
|
} grpc_chttp2_goaway_parse_state;
|
39
39
|
|
40
|
-
|
40
|
+
struct grpc_chttp2_goaway_parser {
|
41
41
|
grpc_chttp2_goaway_parse_state state;
|
42
42
|
uint32_t last_stream_id;
|
43
43
|
uint32_t error_code;
|
44
44
|
char* debug_data;
|
45
45
|
uint32_t debug_length;
|
46
46
|
uint32_t debug_pos;
|
47
|
-
}
|
48
|
-
|
47
|
+
};
|
49
48
|
void grpc_chttp2_goaway_parser_init(grpc_chttp2_goaway_parser* p);
|
50
49
|
void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser* p);
|
51
50
|
grpc_error* grpc_chttp2_goaway_parser_begin_frame(
|
@@ -24,12 +24,11 @@
|
|
24
24
|
#include <grpc/slice.h>
|
25
25
|
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
26
26
|
|
27
|
-
|
27
|
+
struct grpc_chttp2_ping_parser {
|
28
28
|
uint8_t byte;
|
29
29
|
uint8_t is_ack;
|
30
30
|
uint64_t opaque_8bytes;
|
31
|
-
}
|
32
|
-
|
31
|
+
};
|
33
32
|
grpc_slice grpc_chttp2_ping_create(uint8_t ack, uint64_t opaque_8bytes);
|
34
33
|
|
35
34
|
grpc_error* grpc_chttp2_ping_parser_begin_frame(grpc_chttp2_ping_parser* parser,
|
@@ -25,11 +25,10 @@
|
|
25
25
|
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
26
26
|
#include "src/core/lib/transport/transport.h"
|
27
27
|
|
28
|
-
|
28
|
+
struct grpc_chttp2_rst_stream_parser {
|
29
29
|
uint8_t byte;
|
30
30
|
uint8_t reason_bytes[4];
|
31
|
-
}
|
32
|
-
|
31
|
+
};
|
33
32
|
grpc_slice grpc_chttp2_rst_stream_create(uint32_t stream_id, uint32_t code,
|
34
33
|
grpc_transport_one_way_stats* stats);
|
35
34
|
|
@@ -34,15 +34,14 @@ typedef enum {
|
|
34
34
|
GRPC_CHTTP2_SPS_VAL3
|
35
35
|
} grpc_chttp2_settings_parse_state;
|
36
36
|
|
37
|
-
|
37
|
+
struct grpc_chttp2_settings_parser {
|
38
38
|
grpc_chttp2_settings_parse_state state;
|
39
39
|
uint32_t* target_settings;
|
40
40
|
uint8_t is_ack;
|
41
41
|
uint16_t id;
|
42
42
|
uint32_t value;
|
43
43
|
uint32_t incoming_settings[GRPC_CHTTP2_NUM_SETTINGS];
|
44
|
-
}
|
45
|
-
|
44
|
+
};
|
46
45
|
/* Create a settings frame by diffing old & new, and updating old to be new */
|
47
46
|
grpc_slice grpc_chttp2_settings_create(uint32_t* old, const uint32_t* newval,
|
48
47
|
uint32_t force_mask, size_t count);
|
@@ -25,12 +25,11 @@
|
|
25
25
|
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
26
26
|
#include "src/core/lib/transport/transport.h"
|
27
27
|
|
28
|
-
|
28
|
+
struct grpc_chttp2_window_update_parser {
|
29
29
|
uint8_t byte;
|
30
30
|
uint8_t is_connection_update;
|
31
31
|
uint32_t amount;
|
32
|
-
}
|
33
|
-
|
32
|
+
};
|
34
33
|
grpc_slice grpc_chttp2_window_update_create(
|
35
34
|
uint32_t id, uint32_t window_delta, grpc_transport_one_way_stats* stats);
|
36
35
|
|
@@ -259,7 +259,7 @@ static bool CanAddToHashtable(grpc_chttp2_hpack_compressor* hpack_compressor,
|
|
259
259
|
}
|
260
260
|
} /* namespace */
|
261
261
|
|
262
|
-
|
262
|
+
struct framer_state {
|
263
263
|
int is_first_frame;
|
264
264
|
/* number of bytes in 'output' when we started the frame - used to calculate
|
265
265
|
frame length */
|
@@ -277,8 +277,8 @@ typedef struct {
|
|
277
277
|
/* maximum size of a frame */
|
278
278
|
size_t max_frame_size;
|
279
279
|
bool use_true_binary_metadata;
|
280
|
-
|
281
|
-
|
280
|
+
bool is_end_of_stream;
|
281
|
+
};
|
282
282
|
/* fills p (which is expected to be kDataFrameHeaderSize bytes long)
|
283
283
|
* with a data frame header */
|
284
284
|
static void fill_header(uint8_t* p, uint8_t type, uint32_t id, size_t len,
|
@@ -315,17 +315,29 @@ static size_t current_frame_size(framer_state* st) {
|
|
315
315
|
}
|
316
316
|
|
317
317
|
/* finish a frame - fill in the previously reserved header */
|
318
|
-
static void finish_frame(framer_state* st, int is_header_boundary
|
319
|
-
int is_last_in_stream) {
|
318
|
+
static void finish_frame(framer_state* st, int is_header_boundary) {
|
320
319
|
uint8_t type = 0xff;
|
321
|
-
type =
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
320
|
+
type =
|
321
|
+
static_cast<uint8_t>(st->is_first_frame ? GRPC_CHTTP2_FRAME_HEADER
|
322
|
+
: GRPC_CHTTP2_FRAME_CONTINUATION);
|
323
|
+
uint8_t flags = 0xff;
|
324
|
+
/* per the HTTP/2 spec:
|
325
|
+
A HEADERS frame carries the END_STREAM flag that signals the end of a
|
326
|
+
stream. However, a HEADERS frame with the END_STREAM flag set can be
|
327
|
+
followed by CONTINUATION frames on the same stream. Logically, the
|
328
|
+
CONTINUATION frames are part of the HEADERS frame.
|
329
|
+
Thus, we add the END_STREAM flag to the HEADER frame (the first frame). */
|
330
|
+
flags = static_cast<uint8_t>(st->is_first_frame && st->is_end_of_stream
|
331
|
+
? GRPC_CHTTP2_DATA_FLAG_END_STREAM
|
332
|
+
: 0);
|
333
|
+
/* per the HTTP/2 spec:
|
334
|
+
A HEADERS frame without the END_HEADERS flag set MUST be followed by
|
335
|
+
a CONTINUATION frame for the same stream.
|
336
|
+
Thus, we add the END_HEADER flag to the last frame. */
|
337
|
+
flags |= static_cast<uint8_t>(
|
338
|
+
is_header_boundary ? GRPC_CHTTP2_DATA_FLAG_END_HEADERS : 0);
|
339
|
+
fill_header(GRPC_SLICE_START_PTR(st->output->slices[st->header_idx]), type,
|
340
|
+
st->stream_id, current_frame_size(st), flags);
|
329
341
|
st->stats->framing_bytes += kDataFrameHeaderSize;
|
330
342
|
st->is_first_frame = 0;
|
331
343
|
}
|
@@ -347,7 +359,7 @@ static void ensure_space(framer_state* st, size_t need_bytes) {
|
|
347
359
|
if (GPR_LIKELY(current_frame_size(st) + need_bytes <= st->max_frame_size)) {
|
348
360
|
return;
|
349
361
|
}
|
350
|
-
finish_frame(st, 0
|
362
|
+
finish_frame(st, 0);
|
351
363
|
begin_frame(st);
|
352
364
|
}
|
353
365
|
|
@@ -362,7 +374,7 @@ static void add_header_data(framer_state* st, grpc_slice slice) {
|
|
362
374
|
} else {
|
363
375
|
st->stats->header_bytes += remaining;
|
364
376
|
grpc_slice_buffer_add(st->output, grpc_slice_split_head(&slice, remaining));
|
365
|
-
finish_frame(st, 0
|
377
|
+
finish_frame(st, 0);
|
366
378
|
begin_frame(st);
|
367
379
|
add_header_data(st, slice);
|
368
380
|
}
|
@@ -841,6 +853,7 @@ void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor* c,
|
|
841
853
|
st.stats = options->stats;
|
842
854
|
st.max_frame_size = options->max_frame_size;
|
843
855
|
st.use_true_binary_metadata = options->use_true_binary_metadata;
|
856
|
+
st.is_end_of_stream = options->is_eof;
|
844
857
|
|
845
858
|
/* Encode a metadata batch; store the returned values, representing
|
846
859
|
a metadata element that needs to be unreffed back into the metadata
|
@@ -883,5 +896,5 @@ void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor* c,
|
|
883
896
|
deadline_enc(c, deadline, &st);
|
884
897
|
}
|
885
898
|
|
886
|
-
finish_frame(&st, 1
|
899
|
+
finish_frame(&st, 1);
|
887
900
|
}
|
@@ -90,14 +90,13 @@ void grpc_chttp2_hpack_compressor_set_max_table_size(
|
|
90
90
|
void grpc_chttp2_hpack_compressor_set_max_usable_size(
|
91
91
|
grpc_chttp2_hpack_compressor* c, uint32_t max_table_size);
|
92
92
|
|
93
|
-
|
93
|
+
struct grpc_encode_header_options {
|
94
94
|
uint32_t stream_id;
|
95
95
|
bool is_eof;
|
96
96
|
bool use_true_binary_metadata;
|
97
97
|
size_t max_frame_size;
|
98
98
|
grpc_transport_one_way_stats* stats;
|
99
|
-
}
|
100
|
-
|
99
|
+
};
|
101
100
|
void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor* c,
|
102
101
|
grpc_mdelem** extra_headers,
|
103
102
|
size_t extra_headers_size,
|
@@ -32,7 +32,7 @@ typedef struct grpc_chttp2_hpack_parser grpc_chttp2_hpack_parser;
|
|
32
32
|
typedef grpc_error* (*grpc_chttp2_hpack_parser_state)(
|
33
33
|
grpc_chttp2_hpack_parser* p, const uint8_t* beg, const uint8_t* end);
|
34
34
|
|
35
|
-
|
35
|
+
struct grpc_chttp2_hpack_parser_string {
|
36
36
|
bool copied;
|
37
37
|
struct {
|
38
38
|
grpc_slice referenced;
|
@@ -42,8 +42,7 @@ typedef struct {
|
|
42
42
|
uint32_t capacity;
|
43
43
|
} copied;
|
44
44
|
} data;
|
45
|
-
}
|
46
|
-
|
45
|
+
};
|
47
46
|
struct grpc_chttp2_hpack_parser {
|
48
47
|
/* user specified callback for each header output */
|
49
48
|
grpc_error* (*on_header)(void* user_data, grpc_mdelem md);
|
@@ -138,10 +138,10 @@ inline uintptr_t grpc_chttp2_get_static_hpack_table_index(grpc_mdelem md) {
|
|
138
138
|
|
139
139
|
/* Find a key/value pair in the table... returns the index in the table of the
|
140
140
|
most similar entry, or 0 if the value was not found */
|
141
|
-
|
141
|
+
struct grpc_chttp2_hptbl_find_result {
|
142
142
|
uint32_t index;
|
143
143
|
int has_value;
|
144
|
-
}
|
144
|
+
};
|
145
145
|
grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(
|
146
146
|
const grpc_chttp2_hptbl* tbl, grpc_mdelem md);
|
147
147
|
|
@@ -26,7 +26,7 @@
|
|
26
26
|
#include <stdbool.h>
|
27
27
|
#include <stdint.h>
|
28
28
|
|
29
|
-
|
29
|
+
enum grpc_chttp2_setting_id {
|
30
30
|
GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE = 0, /* wire id 1 */
|
31
31
|
GRPC_CHTTP2_SETTINGS_ENABLE_PUSH = 1, /* wire id 2 */
|
32
32
|
GRPC_CHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS = 2, /* wire id 3 */
|
@@ -34,7 +34,7 @@ typedef enum {
|
|
34
34
|
GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE = 4, /* wire id 5 */
|
35
35
|
GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE = 5, /* wire id 6 */
|
36
36
|
GRPC_CHTTP2_SETTINGS_GRPC_ALLOW_TRUE_BINARY_METADATA = 6, /* wire id 65027 */
|
37
|
-
}
|
37
|
+
};
|
38
38
|
|
39
39
|
#define GRPC_CHTTP2_NUM_SETTINGS 7
|
40
40
|
|
@@ -47,15 +47,14 @@ typedef enum {
|
|
47
47
|
GRPC_CHTTP2_DISCONNECT_ON_INVALID_VALUE
|
48
48
|
} grpc_chttp2_invalid_value_behavior;
|
49
49
|
|
50
|
-
|
50
|
+
struct grpc_chttp2_setting_parameters {
|
51
51
|
const char* name;
|
52
52
|
uint32_t default_value;
|
53
53
|
uint32_t min_value;
|
54
54
|
uint32_t max_value;
|
55
55
|
grpc_chttp2_invalid_value_behavior invalid_value_behavior;
|
56
56
|
uint32_t error_value;
|
57
|
-
}
|
58
|
-
|
57
|
+
};
|
59
58
|
extern const grpc_chttp2_setting_parameters
|
60
59
|
grpc_chttp2_settings_parameters[GRPC_CHTTP2_NUM_SETTINGS];
|
61
60
|
|