grpc 1.28.0.pre2 → 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 +8313 -11862
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security.h +30 -9
- data/include/grpc/grpc_security_constants.h +4 -0
- data/include/grpc/impl/codegen/grpc_types.h +23 -23
- data/include/grpc/impl/codegen/port_platform.h +6 -34
- data/include/grpc/module.modulemap +24 -39
- data/src/core/ext/filters/client_channel/backend_metric.cc +18 -12
- data/src/core/ext/filters/client_channel/client_channel.cc +618 -482
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
- data/src/core/ext/filters/client_channel/config_selector.cc +62 -0
- data/src/core/ext/filters/client_channel/config_selector.h +93 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +9 -22
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +6 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +23 -14
- data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +44 -33
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +297 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +311 -497
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +89 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +40 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +11 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -17
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +117 -41
- 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 +1142 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +10 -7
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
- data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
- data/src/core/ext/filters/client_channel/resolver.cc +5 -8
- data/src/core/ext/filters/client_channel/resolver.h +12 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +78 -61
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +41 -40
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +22 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +12 -10
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +79 -122
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +199 -163
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +7 -4
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +46 -45
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +93 -102
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +64 -12
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_registry.cc +19 -17
- data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +21 -22
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +19 -16
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +73 -217
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +45 -27
- data/src/core/ext/filters/client_channel/server_address.cc +6 -9
- data/src/core/ext/filters/client_channel/server_address.h +6 -12
- data/src/core/ext/filters/client_channel/service_config.cc +104 -144
- data/src/core/ext/filters/client_channel/service_config.h +28 -98
- data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +142 -0
- data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
- data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +55 -25
- data/src/core/ext/filters/client_channel/subchannel.h +35 -11
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +1200 -246
- data/src/core/ext/filters/client_channel/xds/xds_api.h +130 -44
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +90 -29
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +9 -4
- 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 +839 -431
- data/src/core/ext/filters/client_channel/xds/xds_client.h +84 -33
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +11 -12
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +40 -28
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -33
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +28 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +399 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +31 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +61 -88
- data/src/core/ext/filters/message_size/message_size_filter.h +10 -4
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +386 -350
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +6 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +1 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -13
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +42 -26
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +25 -30
- data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -16
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +9 -12
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +12 -13
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -7
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +9 -12
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -29
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +13 -17
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +27 -21
- data/src/core/ext/transport/chttp2/transport/parsing.cc +33 -43
- data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -22
- data/src/core/ext/transport/inproc/inproc_transport.cc +54 -15
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +3 -4
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +4 -229
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -876
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +429 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +198 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +388 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +23 -10
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +352 -310
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +42 -34
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +7 -7
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +79 -61
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +55 -49
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +79 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +48 -27
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +258 -214
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +51 -45
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +71 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +107 -100
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +24 -20
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +157 -122
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +9 -9
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +38 -18
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +173 -73
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +95 -101
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +49 -65
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +9 -6
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +53 -38
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +70 -62
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +15 -10
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +95 -63
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +91 -80
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +9 -10
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +36 -31
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +68 -46
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +770 -722
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +16 -15
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +95 -88
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +48 -28
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +305 -210
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +22 -16
- data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +16 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +48 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +14 -14
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +23 -23
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +8 -9
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +15 -16
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +7 -8
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +36 -35
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +0 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +0 -1
- data/src/core/ext/upb-generated/google/api/http.upb.h +29 -28
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +12 -11
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +421 -389
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +1 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +33 -54
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -28
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +8 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +32 -45
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +157 -178
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +14 -13
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +59 -56
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +11 -12
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +0 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +64 -0
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +41 -68
- data/src/core/ext/upb-generated/validate/validate.upb.c +21 -20
- data/src/core/ext/upb-generated/validate/validate.upb.h +569 -562
- data/src/core/lib/channel/channel_args.cc +15 -14
- data/src/core/lib/channel/channel_args.h +3 -1
- data/src/core/lib/channel/channel_stack.h +20 -13
- data/src/core/lib/channel/channel_trace.cc +2 -6
- data/src/core/lib/channel/channelz.cc +10 -21
- data/src/core/lib/channel/channelz.h +3 -2
- data/src/core/lib/channel/channelz_registry.cc +5 -3
- data/src/core/lib/channel/connected_channel.cc +7 -5
- data/src/core/lib/channel/context.h +1 -1
- data/src/core/lib/channel/handshaker.cc +11 -13
- data/src/core/lib/channel/handshaker.h +4 -2
- data/src/core/lib/channel/handshaker_registry.cc +5 -17
- data/src/core/lib/channel/status_util.cc +2 -3
- data/src/core/lib/compression/message_compress.cc +5 -1
- data/src/core/lib/debug/stats.cc +21 -27
- data/src/core/lib/debug/stats.h +3 -1
- data/src/core/lib/gpr/log_linux.cc +6 -8
- data/src/core/lib/gpr/log_posix.cc +6 -8
- data/src/core/lib/gpr/spinlock.h +2 -3
- data/src/core/lib/gpr/string.cc +10 -33
- data/src/core/lib/gpr/string.h +4 -18
- data/src/core/lib/gpr/sync_abseil.cc +2 -0
- data/src/core/lib/gpr/time.cc +4 -0
- data/src/core/lib/gpr/time_posix.cc +1 -1
- data/src/core/lib/gprpp/atomic.h +6 -6
- data/src/core/lib/gprpp/fork.cc +1 -1
- data/src/core/lib/gprpp/global_config_env.cc +8 -6
- data/src/core/lib/gprpp/host_port.cc +29 -35
- data/src/core/lib/gprpp/host_port.h +14 -17
- data/src/core/lib/gprpp/map.h +5 -11
- data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
- data/src/core/lib/gprpp/sync.h +9 -0
- data/src/core/lib/http/format_request.cc +46 -65
- data/src/core/lib/http/httpcli.cc +15 -13
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +10 -10
- data/src/core/lib/http/parser.h +2 -3
- data/src/core/lib/iomgr/buffer_list.h +22 -21
- data/src/core/lib/iomgr/call_combiner.h +3 -2
- data/src/core/lib/iomgr/cfstream_handle.cc +4 -2
- data/src/core/lib/iomgr/closure.h +2 -3
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
- data/src/core/lib/iomgr/endpoint_pair.h +2 -3
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +10 -10
- data/src/core/lib/iomgr/error.cc +6 -9
- data/src/core/lib/iomgr/error.h +0 -1
- data/src/core/lib/iomgr/error_cfstream.cc +9 -8
- data/src/core/lib/iomgr/ev_apple.cc +356 -0
- data/src/core/lib/iomgr/ev_apple.h +43 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +25 -29
- data/src/core/lib/iomgr/ev_epollex_linux.cc +17 -24
- data/src/core/lib/iomgr/ev_poll_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.cc +4 -3
- data/src/core/lib/iomgr/exec_ctx.h +14 -2
- data/src/core/lib/iomgr/iomgr.cc +10 -0
- data/src/core/lib/iomgr/iomgr.h +10 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
- data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
- data/src/core/lib/{gprpp/optional.h → iomgr/pollset_uv.h} +11 -12
- data/src/core/lib/iomgr/port.h +2 -21
- data/src/core/lib/iomgr/python_util.h +46 -0
- data/src/core/lib/iomgr/resolve_address.h +4 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +42 -57
- data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
- data/src/core/lib/iomgr/resolve_address_windows.cc +16 -25
- data/src/core/lib/iomgr/resource_quota.cc +38 -37
- data/src/core/lib/iomgr/sockaddr_utils.cc +29 -33
- data/src/core/lib/iomgr/sockaddr_utils.h +10 -15
- data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
- data/src/core/lib/iomgr/socket_mutator.h +2 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +102 -81
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/socket_windows.cc +4 -5
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -18
- data/src/core/lib/iomgr/tcp_client_custom.cc +6 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +30 -36
- data/src/core/lib/iomgr/tcp_client_windows.cc +10 -11
- data/src/core/lib/iomgr/tcp_custom.cc +3 -4
- data/src/core/lib/iomgr/tcp_custom.h +1 -1
- data/src/core/lib/iomgr/tcp_server.cc +3 -4
- data/src/core/lib/iomgr/tcp_server.h +7 -5
- data/src/core/lib/iomgr/tcp_server_custom.cc +11 -23
- data/src/core/lib/iomgr/tcp_server_posix.cc +38 -44
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -8
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +10 -18
- data/src/core/lib/iomgr/tcp_server_windows.cc +16 -16
- data/src/core/lib/iomgr/tcp_uv.cc +3 -2
- data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
- data/src/core/lib/iomgr/timer_generic.cc +15 -15
- data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +19 -17
- data/src/core/lib/iomgr/timer_heap.h +2 -3
- data/src/core/lib/iomgr/udp_server.cc +32 -36
- data/src/core/lib/iomgr/udp_server.h +5 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +9 -14
- data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +5 -2
- data/src/core/lib/json/json.h +3 -2
- data/src/core/lib/json/json_reader.cc +25 -26
- data/src/core/lib/json/json_writer.cc +13 -12
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
- data/src/core/lib/security/credentials/credentials.cc +0 -84
- data/src/core/lib/security/credentials/credentials.h +13 -62
- data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -6
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +15 -17
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
- data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -4
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +73 -54
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +9 -3
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +19 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +20 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +48 -11
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +17 -17
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.cc +2 -0
- data/src/core/lib/security/security_connector/security_connector.h +2 -2
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +38 -36
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +8 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +89 -21
- data/src/core/lib/security/security_connector/ssl_utils.h +18 -12
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +101 -72
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +27 -5
- data/src/core/lib/security/transport/auth_filters.h +0 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +11 -11
- data/src/core/lib/security/util/json_util.cc +12 -13
- data/src/core/lib/slice/slice.cc +38 -1
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +15 -0
- data/src/core/lib/slice/slice_utils.h +9 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
- data/src/core/lib/surface/call.cc +42 -44
- data/src/core/lib/surface/call_log_batch.cc +50 -58
- data/src/core/lib/surface/channel.cc +53 -31
- data/src/core/lib/surface/channel.h +35 -4
- data/src/core/lib/surface/channel_ping.cc +2 -3
- data/src/core/lib/surface/completion_queue.cc +304 -47
- data/src/core/lib/surface/completion_queue.h +8 -0
- data/src/core/lib/surface/event_string.cc +18 -25
- data/src/core/lib/surface/event_string.h +3 -1
- data/src/core/lib/surface/init.cc +2 -0
- data/src/core/lib/surface/init_secure.cc +1 -4
- data/src/core/lib/surface/server.cc +971 -837
- data/src/core/lib/surface/server.h +66 -12
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.h +7 -2
- data/src/core/lib/transport/connectivity_state.cc +7 -6
- data/src/core/lib/transport/connectivity_state.h +5 -3
- data/src/core/lib/transport/metadata.cc +3 -3
- data/src/core/lib/transport/metadata_batch.h +2 -3
- data/src/core/lib/transport/static_metadata.h +1 -1
- data/src/core/lib/transport/status_conversion.cc +6 -14
- data/src/core/lib/transport/transport.cc +2 -3
- data/src/core/lib/transport/transport.h +9 -2
- data/src/core/lib/transport/transport_op_string.cc +61 -102
- data/src/core/lib/uri/uri_parser.cc +8 -15
- data/src/core/lib/uri/uri_parser.h +2 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +24 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +31 -14
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +34 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
- data/src/core/tsi/fake_transport_security.cc +10 -15
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
- data/src/core/tsi/ssl_transport_security.cc +154 -50
- data/src/core/tsi/ssl_transport_security.h +22 -10
- data/src/core/tsi/ssl_types.h +0 -2
- data/src/core/tsi/transport_security.h +6 -9
- data/src/core/tsi/transport_security_grpc.h +2 -3
- data/src/core/tsi/transport_security_interface.h +8 -3
- data/src/ruby/ext/grpc/extconf.rb +5 -2
- data/src/ruby/ext/grpc/rb_call.c +12 -3
- data/src/ruby/ext/grpc/rb_call.h +4 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +57 -12
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/errors.rb +103 -42
- data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
- data/src/ruby/lib/grpc/generic/interceptors.rb +5 -5
- data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
- data/src/ruby/lib/grpc/generic/service.rb +5 -4
- data/src/ruby/lib/grpc/structs.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +5 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
- data/src/ruby/spec/debug_message_spec.rb +134 -0
- data/src/ruby/spec/generic/service_spec.rb +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +7 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +7 -1
- data/src/ruby/spec/support/services.rb +10 -4
- data/src/ruby/spec/testdata/ca.pem +18 -13
- data/src/ruby/spec/testdata/client.key +26 -14
- data/src/ruby/spec/testdata/client.pem +18 -12
- data/src/ruby/spec/testdata/server1.key +26 -14
- data/src/ruby/spec/testdata/server1.pem +20 -14
- data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
- data/third_party/abseil-cpp/absl/time/clock.h +74 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
- data/third_party/abseil-cpp/absl/time/format.cc +153 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
- data/third_party/abseil-cpp/absl/time/time.cc +499 -0
- data/third_party/abseil-cpp/absl/time/time.h +1584 -0
- data/third_party/boringssl-with-bazel/err_data.c +335 -297
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +18 -26
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +14 -22
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +15 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +385 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +56 -0
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +33 -32
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +143 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +25 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +289 -117
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +13 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +434 -161
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +18 -25
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +104 -122
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +740 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +90 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +41 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +32 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +24 -114
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +51 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +44 -35
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +47 -16
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -5
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +249 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1227 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +682 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +13 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +57 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +33 -9
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +35 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -154
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +28 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +74 -35
- data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +22 -22
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +20 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +69 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +31 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +191 -79
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +282 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +791 -715
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -4
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +146 -57
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +23 -5
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +30 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +21 -4
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +74 -54
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +10 -10
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -21
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +29 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +34 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +13 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +44 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +5 -5
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +51 -26
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +47 -53
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +129 -48
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +23 -75
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +55 -22
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +63 -25
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
- data/third_party/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 +122 -41
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1908
- data/src/core/lib/gprpp/string_view.h +0 -60
- data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
- data/third_party/upb/upb/generated_util.h +0 -105
@@ -22,10 +22,13 @@
|
|
22
22
|
|
23
23
|
#include <string.h>
|
24
24
|
|
25
|
+
#include <string>
|
26
|
+
|
27
|
+
#include "absl/strings/str_format.h"
|
28
|
+
|
25
29
|
#include <grpc/slice_buffer.h>
|
26
30
|
#include <grpc/support/alloc.h>
|
27
31
|
#include <grpc/support/log.h>
|
28
|
-
#include <grpc/support/string_util.h>
|
29
32
|
|
30
33
|
#include "src/core/lib/gpr/string.h"
|
31
34
|
#include "src/core/lib/slice/percent_encoding.h"
|
@@ -37,22 +40,12 @@
|
|
37
40
|
|
38
41
|
static grpc_uri* bad_uri(const char* uri_text, size_t pos, const char* section,
|
39
42
|
bool suppress_errors) {
|
40
|
-
char* line_prefix;
|
41
|
-
size_t pfx_len;
|
42
|
-
|
43
43
|
if (!suppress_errors) {
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
line_prefix = static_cast<char*>(gpr_malloc(pfx_len + 1));
|
50
|
-
memset(line_prefix, ' ', pfx_len);
|
51
|
-
line_prefix[pfx_len] = 0;
|
52
|
-
gpr_log(GPR_ERROR, "%s^ here", line_prefix);
|
53
|
-
gpr_free(line_prefix);
|
44
|
+
std::string line_prefix = absl::StrFormat("bad uri.%s: '", section);
|
45
|
+
gpr_log(GPR_ERROR, "%s%s'", line_prefix.c_str(), uri_text);
|
46
|
+
size_t pfx_len = line_prefix.size() + pos;
|
47
|
+
gpr_log(GPR_ERROR, "%s^ here", std::string(pfx_len, ' ').c_str());
|
54
48
|
}
|
55
|
-
|
56
49
|
return nullptr;
|
57
50
|
}
|
58
51
|
|
@@ -23,7 +23,7 @@
|
|
23
23
|
|
24
24
|
#include <stddef.h>
|
25
25
|
|
26
|
-
|
26
|
+
struct grpc_uri {
|
27
27
|
char* scheme;
|
28
28
|
char* authority;
|
29
29
|
char* path;
|
@@ -35,8 +35,7 @@ typedef struct {
|
|
35
35
|
/** Split each query part by '='. NULL if not present. */
|
36
36
|
char** query_parts_values;
|
37
37
|
char* fragment;
|
38
|
-
}
|
39
|
-
|
38
|
+
};
|
40
39
|
/** parse a uri, return NULL on failure */
|
41
40
|
grpc_uri* grpc_uri_parse(const char* uri_text, bool suppress_errors);
|
42
41
|
|
@@ -36,8 +36,16 @@ void grpc_lb_policy_grpclb_init(void);
|
|
36
36
|
void grpc_lb_policy_grpclb_shutdown(void);
|
37
37
|
void grpc_lb_policy_cds_init(void);
|
38
38
|
void grpc_lb_policy_cds_shutdown(void);
|
39
|
-
void
|
40
|
-
void
|
39
|
+
void grpc_lb_policy_eds_init(void);
|
40
|
+
void grpc_lb_policy_eds_shutdown(void);
|
41
|
+
void grpc_lb_policy_lrs_init(void);
|
42
|
+
void grpc_lb_policy_lrs_shutdown(void);
|
43
|
+
void grpc_lb_policy_priority_init(void);
|
44
|
+
void grpc_lb_policy_priority_shutdown(void);
|
45
|
+
void grpc_lb_policy_weighted_target_init(void);
|
46
|
+
void grpc_lb_policy_weighted_target_shutdown(void);
|
47
|
+
void grpc_lb_policy_xds_routing_init(void);
|
48
|
+
void grpc_lb_policy_xds_routing_shutdown(void);
|
41
49
|
void grpc_lb_policy_pick_first_init(void);
|
42
50
|
void grpc_lb_policy_pick_first_shutdown(void);
|
43
51
|
void grpc_lb_policy_round_robin_init(void);
|
@@ -56,6 +64,8 @@ void grpc_max_age_filter_init(void);
|
|
56
64
|
void grpc_max_age_filter_shutdown(void);
|
57
65
|
void grpc_message_size_filter_init(void);
|
58
66
|
void grpc_message_size_filter_shutdown(void);
|
67
|
+
void grpc_service_config_channel_arg_filter_init(void);
|
68
|
+
void grpc_service_config_channel_arg_filter_shutdown(void);
|
59
69
|
void grpc_client_authority_filter_init(void);
|
60
70
|
void grpc_client_authority_filter_shutdown(void);
|
61
71
|
void grpc_workaround_cronet_compression_filter_init(void);
|
@@ -78,8 +88,16 @@ void grpc_register_built_in_plugins(void) {
|
|
78
88
|
grpc_lb_policy_grpclb_shutdown);
|
79
89
|
grpc_register_plugin(grpc_lb_policy_cds_init,
|
80
90
|
grpc_lb_policy_cds_shutdown);
|
81
|
-
grpc_register_plugin(
|
82
|
-
|
91
|
+
grpc_register_plugin(grpc_lb_policy_eds_init,
|
92
|
+
grpc_lb_policy_eds_shutdown);
|
93
|
+
grpc_register_plugin(grpc_lb_policy_lrs_init,
|
94
|
+
grpc_lb_policy_lrs_shutdown);
|
95
|
+
grpc_register_plugin(grpc_lb_policy_priority_init,
|
96
|
+
grpc_lb_policy_priority_shutdown);
|
97
|
+
grpc_register_plugin(grpc_lb_policy_weighted_target_init,
|
98
|
+
grpc_lb_policy_weighted_target_shutdown);
|
99
|
+
grpc_register_plugin(grpc_lb_policy_xds_routing_init,
|
100
|
+
grpc_lb_policy_xds_routing_shutdown);
|
83
101
|
grpc_register_plugin(grpc_lb_policy_pick_first_init,
|
84
102
|
grpc_lb_policy_pick_first_shutdown);
|
85
103
|
grpc_register_plugin(grpc_lb_policy_round_robin_init,
|
@@ -98,6 +116,8 @@ void grpc_register_built_in_plugins(void) {
|
|
98
116
|
grpc_max_age_filter_shutdown);
|
99
117
|
grpc_register_plugin(grpc_message_size_filter_init,
|
100
118
|
grpc_message_size_filter_shutdown);
|
119
|
+
grpc_register_plugin(grpc_service_config_channel_arg_filter_init,
|
120
|
+
grpc_service_config_channel_arg_filter_shutdown);
|
101
121
|
grpc_register_plugin(grpc_client_authority_filter_init,
|
102
122
|
grpc_client_authority_filter_shutdown);
|
103
123
|
grpc_register_plugin(grpc_workaround_cronet_compression_filter_init,
|
@@ -22,6 +22,8 @@
|
|
22
22
|
|
23
23
|
#include "src/core/tsi/alts/handshaker/alts_handshaker_client.h"
|
24
24
|
|
25
|
+
#include "upb/upb.hpp"
|
26
|
+
|
25
27
|
#include <grpc/byte_buffer.h>
|
26
28
|
#include <grpc/support/alloc.h>
|
27
29
|
#include <grpc/support/log.h>
|
@@ -102,6 +104,8 @@ typedef struct alts_grpc_handshaker_client {
|
|
102
104
|
bool receive_status_finished;
|
103
105
|
/* if non-null, contains arguments to complete a TSI next callback. */
|
104
106
|
recv_message_result* pending_recv_message_result;
|
107
|
+
/* Maximum frame size used by frame protector. */
|
108
|
+
size_t max_frame_size;
|
105
109
|
} alts_grpc_handshaker_client;
|
106
110
|
|
107
111
|
static void handshaker_client_send_buffer_destroy(
|
@@ -259,7 +263,13 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
|
|
259
263
|
}
|
260
264
|
tsi_handshaker_result* result = nullptr;
|
261
265
|
if (is_handshake_finished_properly(resp)) {
|
262
|
-
|
266
|
+
tsi_result status =
|
267
|
+
alts_tsi_handshaker_result_create(resp, client->is_client, &result);
|
268
|
+
if (status != TSI_OK) {
|
269
|
+
gpr_log(GPR_ERROR, "alts_tsi_handshaker_result_create() failed");
|
270
|
+
handle_response_done(client, status, nullptr, 0, nullptr);
|
271
|
+
return;
|
272
|
+
}
|
263
273
|
alts_tsi_handshaker_result_set_unused_bytes(
|
264
274
|
result, &client->recv_bytes,
|
265
275
|
grpc_gcp_HandshakerResp_bytes_consumed(resp));
|
@@ -506,6 +516,8 @@ static grpc_byte_buffer* get_serialized_start_client(
|
|
506
516
|
upb_strview_makez(ptr->data));
|
507
517
|
ptr = ptr->next;
|
508
518
|
}
|
519
|
+
grpc_gcp_StartClientHandshakeReq_set_max_frame_size(
|
520
|
+
start_client, static_cast<uint32_t>(client->max_frame_size));
|
509
521
|
return get_serialized_handshaker_req(req, arena.ptr());
|
510
522
|
}
|
511
523
|
|
@@ -545,17 +557,12 @@ static grpc_byte_buffer* get_serialized_start_server(
|
|
545
557
|
grpc_gcp_HandshakerReq_mutable_server_start(req, arena.ptr());
|
546
558
|
grpc_gcp_StartServerHandshakeReq_add_application_protocols(
|
547
559
|
start_server, upb_strview_makez(ALTS_APPLICATION_PROTOCOL), arena.ptr());
|
548
|
-
grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry* param =
|
549
|
-
grpc_gcp_StartServerHandshakeReq_add_handshake_parameters(start_server,
|
550
|
-
arena.ptr());
|
551
|
-
grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_set_key(
|
552
|
-
param, grpc_gcp_ALTS);
|
553
560
|
grpc_gcp_ServerHandshakeParameters* value =
|
554
561
|
grpc_gcp_ServerHandshakeParameters_new(arena.ptr());
|
555
562
|
grpc_gcp_ServerHandshakeParameters_add_record_protocols(
|
556
563
|
value, upb_strview_makez(ALTS_RECORD_PROTOCOL), arena.ptr());
|
557
|
-
|
558
|
-
|
564
|
+
grpc_gcp_StartServerHandshakeReq_handshake_parameters_set(
|
565
|
+
start_server, grpc_gcp_ALTS, value, arena.ptr());
|
559
566
|
grpc_gcp_StartServerHandshakeReq_set_in_bytes(
|
560
567
|
start_server, upb_strview_make(reinterpret_cast<const char*>(
|
561
568
|
GRPC_SLICE_START_PTR(*bytes_received)),
|
@@ -565,6 +572,8 @@ static grpc_byte_buffer* get_serialized_start_server(
|
|
565
572
|
arena.ptr());
|
566
573
|
grpc_gcp_RpcProtocolVersions_assign_from_struct(
|
567
574
|
server_version, arena.ptr(), &client->options->rpc_versions);
|
575
|
+
grpc_gcp_StartServerHandshakeReq_set_max_frame_size(
|
576
|
+
start_server, static_cast<uint32_t>(client->max_frame_size));
|
568
577
|
return get_serialized_handshaker_req(req, arena.ptr());
|
569
578
|
}
|
570
579
|
|
@@ -655,11 +664,18 @@ static void handshaker_client_destruct(alts_handshaker_client* c) {
|
|
655
664
|
// TODO(apolcyn): we could remove this indirection and call
|
656
665
|
// grpc_call_unref inline if there was an internal variant of
|
657
666
|
// grpc_call_unref that didn't need to flush an ExecCtx.
|
658
|
-
grpc_core::ExecCtx::
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
667
|
+
if (grpc_core::ExecCtx::Get() == nullptr) {
|
668
|
+
// Unref handshaker call if there is no exec_ctx, e.g., in the case of
|
669
|
+
// Envoy ALTS transport socket.
|
670
|
+
grpc_call_unref(client->call);
|
671
|
+
} else {
|
672
|
+
// Using existing exec_ctx to unref handshaker call.
|
673
|
+
grpc_core::ExecCtx::Run(
|
674
|
+
DEBUG_LOCATION,
|
675
|
+
GRPC_CLOSURE_CREATE(handshaker_call_unref, client->call,
|
676
|
+
grpc_schedule_on_exec_ctx),
|
677
|
+
GRPC_ERROR_NONE);
|
678
|
+
}
|
663
679
|
}
|
664
680
|
}
|
665
681
|
|
@@ -674,7 +690,7 @@ alts_handshaker_client* alts_grpc_handshaker_client_create(
|
|
674
690
|
grpc_alts_credentials_options* options, const grpc_slice& target_name,
|
675
691
|
grpc_iomgr_cb_func grpc_cb, tsi_handshaker_on_next_done_cb cb,
|
676
692
|
void* user_data, alts_handshaker_client_vtable* vtable_for_testing,
|
677
|
-
bool is_client) {
|
693
|
+
bool is_client, size_t max_frame_size) {
|
678
694
|
if (channel == nullptr || handshaker_service_url == nullptr) {
|
679
695
|
gpr_log(GPR_ERROR, "Invalid arguments to alts_handshaker_client_create()");
|
680
696
|
return nullptr;
|
@@ -694,6 +710,7 @@ alts_handshaker_client* alts_grpc_handshaker_client_create(
|
|
694
710
|
client->recv_bytes = grpc_empty_slice();
|
695
711
|
grpc_metadata_array_init(&client->recv_initial_metadata);
|
696
712
|
client->is_client = is_client;
|
713
|
+
client->max_frame_size = max_frame_size;
|
697
714
|
client->buffer_size = TSI_ALTS_INITIAL_BUFFER_SIZE;
|
698
715
|
client->buffer = static_cast<unsigned char*>(gpr_zalloc(client->buffer_size));
|
699
716
|
grpc_slice slice = grpc_slice_from_copied_string(handshaker_service_url);
|
@@ -117,7 +117,7 @@ void alts_handshaker_client_destroy(alts_handshaker_client* client);
|
|
117
117
|
* This method creates an ALTS handshaker client.
|
118
118
|
*
|
119
119
|
* - handshaker: ALTS TSI handshaker to which the created handshaker client
|
120
|
-
*
|
120
|
+
* belongs to.
|
121
121
|
* - channel: grpc channel to ALTS handshaker service.
|
122
122
|
* - handshaker_service_url: address of ALTS handshaker service in the format of
|
123
123
|
* "host:port".
|
@@ -132,8 +132,12 @@ void alts_handshaker_client_destroy(alts_handshaker_client* client);
|
|
132
132
|
* - vtable_for_testing: ALTS handshaker client vtable instance used for
|
133
133
|
* testing purpose.
|
134
134
|
* - is_client: a boolean value indicating if the created handshaker client is
|
135
|
-
*
|
136
|
-
*
|
135
|
+
* used at the client (is_client = true) or server (is_client = false) side.
|
136
|
+
* - max_frame_size: Maximum frame size used by frame protector (User specified
|
137
|
+
* maximum frame size if present or default max frame size).
|
138
|
+
*
|
139
|
+
* It returns the created ALTS handshaker client on success, and NULL
|
140
|
+
* on failure.
|
137
141
|
*/
|
138
142
|
alts_handshaker_client* alts_grpc_handshaker_client_create(
|
139
143
|
alts_tsi_handshaker* handshaker, grpc_channel* channel,
|
@@ -141,7 +145,7 @@ alts_handshaker_client* alts_grpc_handshaker_client_create(
|
|
141
145
|
grpc_alts_credentials_options* options, const grpc_slice& target_name,
|
142
146
|
grpc_iomgr_cb_func grpc_cb, tsi_handshaker_on_next_done_cb cb,
|
143
147
|
void* user_data, alts_handshaker_client_vtable* vtable_for_testing,
|
144
|
-
bool is_client);
|
148
|
+
bool is_client, size_t max_frame_size);
|
145
149
|
|
146
150
|
/**
|
147
151
|
* This method handles handshaker response returned from ALTS handshaker
|
@@ -24,6 +24,8 @@
|
|
24
24
|
#include <stdlib.h>
|
25
25
|
#include <string.h>
|
26
26
|
|
27
|
+
#include "upb/upb.hpp"
|
28
|
+
|
27
29
|
#include <grpc/support/alloc.h>
|
28
30
|
#include <grpc/support/log.h>
|
29
31
|
#include <grpc/support/string_util.h>
|
@@ -63,6 +65,8 @@ struct alts_tsi_handshaker {
|
|
63
65
|
// shutdown effectively follows base.handshake_shutdown,
|
64
66
|
// but is synchronized by the mutex of this object.
|
65
67
|
bool shutdown;
|
68
|
+
// Maximum frame size used by frame protector.
|
69
|
+
size_t max_frame_size;
|
66
70
|
};
|
67
71
|
|
68
72
|
/* Main struct for ALTS TSI handshaker result. */
|
@@ -75,6 +79,8 @@ typedef struct alts_tsi_handshaker_result {
|
|
75
79
|
grpc_slice rpc_versions;
|
76
80
|
bool is_client;
|
77
81
|
grpc_slice serialized_context;
|
82
|
+
// Peer's maximum frame size.
|
83
|
+
size_t max_frame_size;
|
78
84
|
} alts_tsi_handshaker_result;
|
79
85
|
|
80
86
|
static tsi_result handshaker_result_extract_peer(
|
@@ -156,6 +162,26 @@ static tsi_result handshaker_result_create_zero_copy_grpc_protector(
|
|
156
162
|
alts_tsi_handshaker_result* result =
|
157
163
|
reinterpret_cast<alts_tsi_handshaker_result*>(
|
158
164
|
const_cast<tsi_handshaker_result*>(self));
|
165
|
+
|
166
|
+
// In case the peer does not send max frame size (e.g. peer is gRPC Go or
|
167
|
+
// peer uses an old binary), the negotiated frame size is set to
|
168
|
+
// kTsiAltsMinFrameSize (ignoring max_output_protected_frame_size value if
|
169
|
+
// present). Otherwise, it is based on peer and user specified max frame
|
170
|
+
// size (if present).
|
171
|
+
size_t max_frame_size = kTsiAltsMinFrameSize;
|
172
|
+
if (result->max_frame_size) {
|
173
|
+
size_t peer_max_frame_size = result->max_frame_size;
|
174
|
+
max_frame_size = std::min<size_t>(peer_max_frame_size,
|
175
|
+
max_output_protected_frame_size == nullptr
|
176
|
+
? kTsiAltsMaxFrameSize
|
177
|
+
: *max_output_protected_frame_size);
|
178
|
+
max_frame_size = std::max<size_t>(max_frame_size, kTsiAltsMinFrameSize);
|
179
|
+
}
|
180
|
+
max_output_protected_frame_size = &max_frame_size;
|
181
|
+
gpr_log(GPR_DEBUG,
|
182
|
+
"After Frame Size Negotiation, maximum frame size used by frame "
|
183
|
+
"protector equals %zu",
|
184
|
+
*max_output_protected_frame_size);
|
159
185
|
tsi_result ok = alts_zero_copy_grpc_protector_create(
|
160
186
|
reinterpret_cast<const uint8_t*>(result->key_data),
|
161
187
|
kAltsAes128GcmRekeyKeyLength, /*is_rekey=*/true, result->is_client,
|
@@ -288,6 +314,7 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
|
|
288
314
|
static_cast<char*>(gpr_zalloc(peer_service_account.size + 1));
|
289
315
|
memcpy(result->peer_identity, peer_service_account.data,
|
290
316
|
peer_service_account.size);
|
317
|
+
result->max_frame_size = grpc_gcp_HandshakerResult_max_frame_size(hresult);
|
291
318
|
upb::Arena rpc_versions_arena;
|
292
319
|
bool serialized = grpc_gcp_rpc_protocol_versions_encode(
|
293
320
|
peer_rpc_version, rpc_versions_arena.ptr(), &result->rpc_versions);
|
@@ -374,7 +401,8 @@ static tsi_result alts_tsi_handshaker_continue_handshaker_next(
|
|
374
401
|
handshaker, channel, handshaker->handshaker_service_url,
|
375
402
|
handshaker->interested_parties, handshaker->options,
|
376
403
|
handshaker->target_name, grpc_cb, cb, user_data,
|
377
|
-
handshaker->client_vtable_for_testing, handshaker->is_client
|
404
|
+
handshaker->client_vtable_for_testing, handshaker->is_client,
|
405
|
+
handshaker->max_frame_size);
|
378
406
|
if (client == nullptr) {
|
379
407
|
gpr_log(GPR_ERROR, "Failed to create ALTS handshaker client");
|
380
408
|
return TSI_FAILED_PRECONDITION;
|
@@ -570,7 +598,8 @@ bool alts_tsi_handshaker_has_shutdown(alts_tsi_handshaker* handshaker) {
|
|
570
598
|
tsi_result alts_tsi_handshaker_create(
|
571
599
|
const grpc_alts_credentials_options* options, const char* target_name,
|
572
600
|
const char* handshaker_service_url, bool is_client,
|
573
|
-
grpc_pollset_set* interested_parties, tsi_handshaker** self
|
601
|
+
grpc_pollset_set* interested_parties, tsi_handshaker** self,
|
602
|
+
size_t user_specified_max_frame_size) {
|
574
603
|
if (handshaker_service_url == nullptr || self == nullptr ||
|
575
604
|
options == nullptr || (is_client && target_name == nullptr)) {
|
576
605
|
gpr_log(GPR_ERROR, "Invalid arguments to alts_tsi_handshaker_create()");
|
@@ -590,6 +619,9 @@ tsi_result alts_tsi_handshaker_create(
|
|
590
619
|
handshaker->has_created_handshaker_client = false;
|
591
620
|
handshaker->handshaker_service_url = gpr_strdup(handshaker_service_url);
|
592
621
|
handshaker->options = grpc_alts_credentials_options_copy(options);
|
622
|
+
handshaker->max_frame_size = user_specified_max_frame_size != 0
|
623
|
+
? user_specified_max_frame_size
|
624
|
+
: kTsiAltsMaxFrameSize;
|
593
625
|
handshaker->base.vtable = handshaker->use_dedicated_cq
|
594
626
|
? &handshaker_vtable_dedicated
|
595
627
|
: &handshaker_vtable;
|
@@ -38,6 +38,11 @@
|
|
38
38
|
|
39
39
|
const size_t kTsiAltsNumOfPeerProperties = 5;
|
40
40
|
|
41
|
+
// Frame size negotiation extends send frame size range to
|
42
|
+
// [kTsiAltsMinFrameSize, kTsiAltsMaxFrameSize].
|
43
|
+
const size_t kTsiAltsMinFrameSize = 16 * 1024;
|
44
|
+
const size_t kTsiAltsMaxFrameSize = 128 * 1024;
|
45
|
+
|
41
46
|
typedef struct alts_tsi_handshaker alts_tsi_handshaker;
|
42
47
|
|
43
48
|
/**
|
@@ -54,6 +59,8 @@ typedef struct alts_tsi_handshaker alts_tsi_handshaker;
|
|
54
59
|
* - interested_parties: set of pollsets interested in this connection.
|
55
60
|
* - self: address of ALTS TSI handshaker instance to be returned from the
|
56
61
|
* method.
|
62
|
+
* - user_specified_max_frame_size: Determines the maximum frame size used by
|
63
|
+
* frame protector that is specified via user. If unspecified, the value is 0.
|
57
64
|
*
|
58
65
|
* It returns TSI_OK on success and an error status code on failure. Note that
|
59
66
|
* if interested_parties is nullptr, a dedicated TSI thread will be created and
|
@@ -62,7 +69,8 @@ typedef struct alts_tsi_handshaker alts_tsi_handshaker;
|
|
62
69
|
tsi_result alts_tsi_handshaker_create(
|
63
70
|
const grpc_alts_credentials_options* options, const char* target_name,
|
64
71
|
const char* handshaker_service_url, bool is_client,
|
65
|
-
grpc_pollset_set* interested_parties, tsi_handshaker** self
|
72
|
+
grpc_pollset_set* interested_parties, tsi_handshaker** self,
|
73
|
+
size_t user_specified_max_frame_size);
|
66
74
|
|
67
75
|
/**
|
68
76
|
* This method creates an ALTS TSI handshaker result instance.
|
@@ -31,7 +31,7 @@
|
|
31
31
|
#include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
|
32
32
|
|
33
33
|
/* V-table for alts_grpc_record_protocol implementations. */
|
34
|
-
|
34
|
+
struct alts_grpc_record_protocol_vtable {
|
35
35
|
tsi_result (*protect)(alts_grpc_record_protocol* self,
|
36
36
|
grpc_slice_buffer* unprotected_slices,
|
37
37
|
grpc_slice_buffer* protected_slices);
|
@@ -39,8 +39,7 @@ typedef struct {
|
|
39
39
|
grpc_slice_buffer* protected_slices,
|
40
40
|
grpc_slice_buffer* unprotected_slices);
|
41
41
|
void (*destruct)(alts_grpc_record_protocol* self);
|
42
|
-
}
|
43
|
-
|
42
|
+
};
|
44
43
|
/* Main struct for alts_grpc_record_protocol implementation, shared by both
|
45
44
|
* integrity-only record protocol and privacy-integrity record protocol.
|
46
45
|
* Integrity-only record protocol has additional data elements.
|
@@ -42,14 +42,13 @@
|
|
42
42
|
| size | data |
|
43
43
|
where the size field value is the size of the size field plus the size of
|
44
44
|
the data encoded in little endian on 4 bytes. */
|
45
|
-
|
45
|
+
struct tsi_fake_frame {
|
46
46
|
unsigned char* data;
|
47
47
|
size_t size;
|
48
48
|
size_t allocated_size;
|
49
49
|
size_t offset;
|
50
50
|
int needs_draining;
|
51
|
-
}
|
52
|
-
|
51
|
+
};
|
53
52
|
typedef enum {
|
54
53
|
TSI_FAKE_CLIENT_INIT = 0,
|
55
54
|
TSI_FAKE_SERVER_INIT = 1,
|
@@ -58,7 +57,7 @@ typedef enum {
|
|
58
57
|
TSI_FAKE_HANDSHAKE_MESSAGE_MAX = 4
|
59
58
|
} tsi_fake_handshake_message;
|
60
59
|
|
61
|
-
|
60
|
+
struct tsi_fake_handshaker {
|
62
61
|
tsi_handshaker base;
|
63
62
|
int is_client;
|
64
63
|
tsi_fake_handshake_message next_message_to_send;
|
@@ -68,23 +67,20 @@ typedef struct {
|
|
68
67
|
unsigned char* outgoing_bytes_buffer;
|
69
68
|
size_t outgoing_bytes_buffer_size;
|
70
69
|
tsi_result result;
|
71
|
-
}
|
72
|
-
|
73
|
-
typedef struct {
|
70
|
+
};
|
71
|
+
struct tsi_fake_frame_protector {
|
74
72
|
tsi_frame_protector base;
|
75
73
|
tsi_fake_frame protect_frame;
|
76
74
|
tsi_fake_frame unprotect_frame;
|
77
75
|
size_t max_frame_size;
|
78
|
-
}
|
79
|
-
|
80
|
-
typedef struct {
|
76
|
+
};
|
77
|
+
struct tsi_fake_zero_copy_grpc_protector {
|
81
78
|
tsi_zero_copy_grpc_protector base;
|
82
79
|
grpc_slice_buffer header_sb;
|
83
80
|
grpc_slice_buffer protected_sb;
|
84
81
|
size_t max_frame_size;
|
85
82
|
size_t parsed_frame_size;
|
86
|
-
}
|
87
|
-
|
83
|
+
};
|
88
84
|
/* --- Utils. ---*/
|
89
85
|
|
90
86
|
static const char* tsi_fake_handshake_message_strings[] = {
|
@@ -488,12 +484,11 @@ static const tsi_zero_copy_grpc_protector_vtable
|
|
488
484
|
|
489
485
|
/* --- tsi_handshaker_result methods implementation. ---*/
|
490
486
|
|
491
|
-
|
487
|
+
struct fake_handshaker_result {
|
492
488
|
tsi_handshaker_result base;
|
493
489
|
unsigned char* unused_bytes;
|
494
490
|
size_t unused_bytes_size;
|
495
|
-
}
|
496
|
-
|
491
|
+
};
|
497
492
|
static tsi_result fake_handshaker_result_extract_peer(
|
498
493
|
const tsi_handshaker_result* self, tsi_peer* peer) {
|
499
494
|
/* Construct a tsi_peer with 1 property: certificate type, security_level. */
|