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
data/src/core/tsi/ssl_types.h
CHANGED
@@ -30,7 +30,7 @@ extern grpc_core::TraceFlag tsi_tracing_enabled;
|
|
30
30
|
|
31
31
|
/* Base for tsi_frame_protector implementations.
|
32
32
|
See transport_security_interface.h for documentation. */
|
33
|
-
|
33
|
+
struct tsi_frame_protector_vtable {
|
34
34
|
tsi_result (*protect)(tsi_frame_protector* self,
|
35
35
|
const unsigned char* unprotected_bytes,
|
36
36
|
size_t* unprotected_bytes_size,
|
@@ -46,15 +46,14 @@ typedef struct {
|
|
46
46
|
unsigned char* unprotected_bytes,
|
47
47
|
size_t* unprotected_bytes_size);
|
48
48
|
void (*destroy)(tsi_frame_protector* self);
|
49
|
-
}
|
50
|
-
|
49
|
+
};
|
51
50
|
struct tsi_frame_protector {
|
52
51
|
const tsi_frame_protector_vtable* vtable;
|
53
52
|
};
|
54
53
|
|
55
54
|
/* Base for tsi_handshaker implementations.
|
56
55
|
See transport_security_interface.h for documentation. */
|
57
|
-
|
56
|
+
struct tsi_handshaker_vtable {
|
58
57
|
tsi_result (*get_bytes_to_send_to_peer)(tsi_handshaker* self,
|
59
58
|
unsigned char* bytes,
|
60
59
|
size_t* bytes_size);
|
@@ -74,8 +73,7 @@ typedef struct {
|
|
74
73
|
tsi_handshaker_result** handshaker_result,
|
75
74
|
tsi_handshaker_on_next_done_cb cb, void* user_data);
|
76
75
|
void (*shutdown)(tsi_handshaker* self);
|
77
|
-
}
|
78
|
-
|
76
|
+
};
|
79
77
|
struct tsi_handshaker {
|
80
78
|
const tsi_handshaker_vtable* vtable;
|
81
79
|
bool frame_protector_created;
|
@@ -91,7 +89,7 @@ struct tsi_handshaker {
|
|
91
89
|
in grpc, where we do need the exec_ctx passed through, but the API still
|
92
90
|
needs to compile in other applications, where grpc_exec_ctx is not defined.
|
93
91
|
*/
|
94
|
-
|
92
|
+
struct tsi_handshaker_result_vtable {
|
95
93
|
tsi_result (*extract_peer)(const tsi_handshaker_result* self, tsi_peer* peer);
|
96
94
|
tsi_result (*create_zero_copy_grpc_protector)(
|
97
95
|
const tsi_handshaker_result* self,
|
@@ -104,8 +102,7 @@ typedef struct {
|
|
104
102
|
const unsigned char** bytes,
|
105
103
|
size_t* bytes_size);
|
106
104
|
void (*destroy)(tsi_handshaker_result* self);
|
107
|
-
}
|
108
|
-
|
105
|
+
};
|
109
106
|
struct tsi_handshaker_result {
|
110
107
|
const tsi_handshaker_result_vtable* vtable;
|
111
108
|
};
|
@@ -61,7 +61,7 @@ tsi_result tsi_zero_copy_grpc_protector_max_frame_size(
|
|
61
61
|
tsi_zero_copy_grpc_protector* self, size_t* max_frame_size);
|
62
62
|
|
63
63
|
/* Base for tsi_zero_copy_grpc_protector implementations. */
|
64
|
-
|
64
|
+
struct tsi_zero_copy_grpc_protector_vtable {
|
65
65
|
tsi_result (*protect)(tsi_zero_copy_grpc_protector* self,
|
66
66
|
grpc_slice_buffer* unprotected_slices,
|
67
67
|
grpc_slice_buffer* protected_slices);
|
@@ -71,8 +71,7 @@ typedef struct {
|
|
71
71
|
void (*destroy)(tsi_zero_copy_grpc_protector* self);
|
72
72
|
tsi_result (*max_frame_size)(tsi_zero_copy_grpc_protector* self,
|
73
73
|
size_t* max_frame_size);
|
74
|
-
}
|
75
|
-
|
74
|
+
};
|
76
75
|
struct tsi_zero_copy_grpc_protector {
|
77
76
|
const tsi_zero_copy_grpc_protector_vtable* vtable;
|
78
77
|
};
|
@@ -44,6 +44,7 @@ typedef enum {
|
|
44
44
|
TSI_OUT_OF_RESOURCES = 12,
|
45
45
|
TSI_ASYNC = 13,
|
46
46
|
TSI_HANDSHAKE_SHUTDOWN = 14,
|
47
|
+
TSI_CLOSE_NOTIFY = 15, // Indicates that the connection should be closed.
|
47
48
|
} tsi_result;
|
48
49
|
|
49
50
|
typedef enum {
|
@@ -63,6 +64,11 @@ typedef enum {
|
|
63
64
|
TSI_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY,
|
64
65
|
} tsi_client_certificate_request_type;
|
65
66
|
|
67
|
+
typedef enum {
|
68
|
+
TSI_TLS1_2,
|
69
|
+
TSI_TLS1_3,
|
70
|
+
} tsi_tls_version;
|
71
|
+
|
66
72
|
const char* tsi_result_to_string(tsi_result result);
|
67
73
|
const char* tsi_security_level_to_string(tsi_security_level security_level);
|
68
74
|
|
@@ -207,11 +213,10 @@ typedef struct tsi_peer_property {
|
|
207
213
|
} value;
|
208
214
|
} tsi_peer_property;
|
209
215
|
|
210
|
-
|
216
|
+
struct tsi_peer {
|
211
217
|
tsi_peer_property* properties;
|
212
218
|
size_t property_count;
|
213
|
-
}
|
214
|
-
|
219
|
+
};
|
215
220
|
/* Destructs the tsi_peer object. */
|
216
221
|
void tsi_peer_destruct(tsi_peer* self);
|
217
222
|
|
@@ -25,7 +25,7 @@ grpc_config = ENV['GRPC_CONFIG'] || 'opt'
|
|
25
25
|
ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.7'
|
26
26
|
|
27
27
|
if ENV['AR'].nil? || ENV['AR'].size == 0
|
28
|
-
ENV['AR'] = RbConfig::CONFIG['AR']
|
28
|
+
ENV['AR'] = RbConfig::CONFIG['AR']
|
29
29
|
end
|
30
30
|
if ENV['CC'].nil? || ENV['CC'].size == 0
|
31
31
|
ENV['CC'] = RbConfig::CONFIG['CC']
|
@@ -37,7 +37,10 @@ if ENV['LD'].nil? || ENV['LD'].size == 0
|
|
37
37
|
ENV['LD'] = ENV['CC']
|
38
38
|
end
|
39
39
|
|
40
|
-
|
40
|
+
if RUBY_PLATFORM =~ /darwin/
|
41
|
+
ENV['AR'] = 'libtool'
|
42
|
+
ENV['ARFLAGS'] = '-o'
|
43
|
+
end
|
41
44
|
|
42
45
|
ENV['EMBED_OPENSSL'] = 'true'
|
43
46
|
ENV['EMBED_ZLIB'] = 'true'
|
data/src/ruby/ext/grpc/rb_call.c
CHANGED
@@ -48,7 +48,7 @@ static VALUE grpc_rb_sBatchResult;
|
|
48
48
|
|
49
49
|
/* grpc_rb_cMdAry is the MetadataArray class whose instances proxy
|
50
50
|
* grpc_metadata_array. */
|
51
|
-
|
51
|
+
VALUE grpc_rb_cMdAry;
|
52
52
|
|
53
53
|
/* id_credentials is the name of the hidden ivar that preserves the value
|
54
54
|
* of the credentials added to the call */
|
@@ -103,7 +103,7 @@ static void grpc_rb_call_destroy(void* p) {
|
|
103
103
|
xfree(p);
|
104
104
|
}
|
105
105
|
|
106
|
-
|
106
|
+
const rb_data_type_t grpc_rb_md_ary_data_type = {
|
107
107
|
"grpc_metadata_array",
|
108
108
|
{GRPC_RB_GC_NOT_MARKED,
|
109
109
|
GRPC_RB_GC_DONT_FREE,
|
@@ -489,6 +489,7 @@ static int grpc_rb_md_ary_capacity_hash_cb(VALUE key, VALUE val,
|
|
489
489
|
|
490
490
|
/* grpc_rb_md_ary_convert converts a ruby metadata hash into
|
491
491
|
a grpc_metadata_array.
|
492
|
+
Note that this function may throw exceptions.
|
492
493
|
*/
|
493
494
|
void grpc_rb_md_ary_convert(VALUE md_ary_hash, grpc_metadata_array* md_ary) {
|
494
495
|
VALUE md_ary_obj = Qnil;
|
@@ -620,6 +621,7 @@ typedef struct run_batch_stack {
|
|
620
621
|
int recv_cancelled;
|
621
622
|
grpc_status_code recv_status;
|
622
623
|
grpc_slice recv_status_details;
|
624
|
+
const char* recv_status_debug_error_string;
|
623
625
|
unsigned write_flag;
|
624
626
|
grpc_slice send_status_details;
|
625
627
|
} run_batch_stack;
|
@@ -729,6 +731,8 @@ static void grpc_run_batch_stack_fill_ops(run_batch_stack* st, VALUE ops_hash) {
|
|
729
731
|
&st->recv_status;
|
730
732
|
st->ops[st->op_num].data.recv_status_on_client.status_details =
|
731
733
|
&st->recv_status_details;
|
734
|
+
st->ops[st->op_num].data.recv_status_on_client.error_string =
|
735
|
+
&st->recv_status_debug_error_string;
|
732
736
|
break;
|
733
737
|
case GRPC_OP_RECV_CLOSE_ON_SERVER:
|
734
738
|
st->ops[st->op_num].data.recv_close_on_server.cancelled =
|
@@ -780,7 +784,12 @@ static VALUE grpc_run_batch_stack_build_result(run_batch_stack* st) {
|
|
780
784
|
(GRPC_SLICE_START_PTR(st->recv_status_details) == NULL
|
781
785
|
? Qnil
|
782
786
|
: grpc_rb_slice_to_ruby_string(st->recv_status_details)),
|
783
|
-
grpc_rb_md_ary_to_h(&st->recv_trailing_metadata),
|
787
|
+
grpc_rb_md_ary_to_h(&st->recv_trailing_metadata),
|
788
|
+
st->recv_status_debug_error_string == NULL
|
789
|
+
? Qnil
|
790
|
+
: rb_str_new_cstr(st->recv_status_debug_error_string),
|
791
|
+
NULL));
|
792
|
+
gpr_free((void*)st->recv_status_debug_error_string);
|
784
793
|
break;
|
785
794
|
case GRPC_OP_RECV_CLOSE_ON_SERVER:
|
786
795
|
rb_struct_aset(result, sym_send_close, Qtrue);
|
data/src/ruby/ext/grpc/rb_call.h
CHANGED
@@ -54,10 +54,41 @@ typedef struct callback_params {
|
|
54
54
|
grpc_credentials_plugin_metadata_cb callback;
|
55
55
|
} callback_params;
|
56
56
|
|
57
|
-
static VALUE grpc_rb_call_credentials_callback(VALUE
|
57
|
+
static VALUE grpc_rb_call_credentials_callback(VALUE args) {
|
58
58
|
VALUE result = rb_hash_new();
|
59
|
-
VALUE
|
60
|
-
|
59
|
+
VALUE callback_func = rb_ary_entry(args, 0);
|
60
|
+
VALUE callback_args = rb_ary_entry(args, 1);
|
61
|
+
VALUE md_ary_obj = rb_ary_entry(args, 2);
|
62
|
+
if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
|
63
|
+
VALUE callback_func_str = rb_funcall(callback_func, rb_intern("to_s"), 0);
|
64
|
+
VALUE callback_args_str = rb_funcall(callback_args, rb_intern("to_s"), 0);
|
65
|
+
VALUE callback_source_info =
|
66
|
+
rb_funcall(callback_func, rb_intern("source_location"), 0);
|
67
|
+
if (callback_source_info != Qnil) {
|
68
|
+
VALUE source_filename = rb_ary_entry(callback_source_info, 0);
|
69
|
+
VALUE source_line_number = rb_funcall(
|
70
|
+
rb_ary_entry(callback_source_info, 1), rb_intern("to_s"), 0);
|
71
|
+
gpr_log(GPR_DEBUG,
|
72
|
+
"GRPC_RUBY: grpc_rb_call_credentials invoking user callback:|%s| "
|
73
|
+
"source_filename:%s line_number:%s with arguments:|%s|",
|
74
|
+
StringValueCStr(callback_func_str),
|
75
|
+
StringValueCStr(source_filename),
|
76
|
+
StringValueCStr(source_line_number),
|
77
|
+
StringValueCStr(callback_args_str));
|
78
|
+
} else {
|
79
|
+
gpr_log(GPR_DEBUG,
|
80
|
+
"GRPC_RUBY: grpc_rb_call_credentials invoking user callback:|%s| "
|
81
|
+
"(failed to get source filename and line) with arguments:|%s|",
|
82
|
+
StringValueCStr(callback_func_str),
|
83
|
+
StringValueCStr(callback_args_str));
|
84
|
+
}
|
85
|
+
}
|
86
|
+
VALUE metadata =
|
87
|
+
rb_funcall(callback_func, rb_intern("call"), 1, callback_args);
|
88
|
+
grpc_metadata_array* md_ary = NULL;
|
89
|
+
TypedData_Get_Struct(md_ary_obj, grpc_metadata_array,
|
90
|
+
&grpc_rb_md_ary_data_type, md_ary);
|
91
|
+
grpc_rb_md_ary_convert(metadata, md_ary);
|
61
92
|
rb_hash_aset(result, rb_str_new2("metadata"), metadata);
|
62
93
|
rb_hash_aset(result, rb_str_new2("status"), INT2NUM(GRPC_STATUS_OK));
|
63
94
|
rb_hash_aset(result, rb_str_new2("details"), rb_str_new2(""));
|
@@ -67,14 +98,23 @@ static VALUE grpc_rb_call_credentials_callback(VALUE callback_args) {
|
|
67
98
|
static VALUE grpc_rb_call_credentials_callback_rescue(VALUE args,
|
68
99
|
VALUE exception_object) {
|
69
100
|
VALUE result = rb_hash_new();
|
70
|
-
VALUE backtrace =
|
71
|
-
|
72
|
-
|
101
|
+
VALUE backtrace = rb_funcall(exception_object, rb_intern("backtrace"), 0);
|
102
|
+
VALUE backtrace_str;
|
103
|
+
if (backtrace != Qnil) {
|
104
|
+
backtrace_str =
|
105
|
+
rb_funcall(backtrace, rb_intern("join"), 1, rb_str_new2("\n\tfrom "));
|
106
|
+
} else {
|
107
|
+
backtrace_str = rb_str_new2(
|
108
|
+
"failed to get backtrace, this exception was likely thrown from native "
|
109
|
+
"code");
|
110
|
+
}
|
73
111
|
VALUE rb_exception_info =
|
74
112
|
rb_funcall(exception_object, rb_intern("inspect"), 0);
|
75
113
|
(void)args;
|
76
|
-
gpr_log(GPR_INFO,
|
77
|
-
|
114
|
+
gpr_log(GPR_INFO,
|
115
|
+
"GRPC_RUBY call credentials callback failed, exception inspect:|%s| "
|
116
|
+
"backtrace:|%s|",
|
117
|
+
StringValueCStr(rb_exception_info), StringValueCStr(backtrace_str));
|
78
118
|
rb_hash_aset(result, rb_str_new2("metadata"), Qnil);
|
79
119
|
rb_hash_aset(result, rb_str_new2("status"),
|
80
120
|
INT2NUM(GRPC_STATUS_UNAUTHENTICATED));
|
@@ -98,17 +138,22 @@ static void grpc_rb_call_credentials_callback_with_gil(void* param) {
|
|
98
138
|
rb_hash_aset(args, ID2SYM(rb_intern("jwt_aud_uri")), auth_uri);
|
99
139
|
rb_ary_push(callback_args, params->get_metadata);
|
100
140
|
rb_ary_push(callback_args, args);
|
141
|
+
// Wrap up the grpc_metadata_array into a ruby object and do the conversion
|
142
|
+
// from hash to grpc_metadata_array within the rescue block, because the
|
143
|
+
// conversion can throw exceptions.
|
144
|
+
rb_ary_push(callback_args,
|
145
|
+
TypedData_Wrap_Struct(grpc_rb_cMdAry, &grpc_rb_md_ary_data_type,
|
146
|
+
&md_ary));
|
101
147
|
result = rb_rescue(grpc_rb_call_credentials_callback, callback_args,
|
102
148
|
grpc_rb_call_credentials_callback_rescue, Qnil);
|
103
149
|
// Both callbacks return a hash, so result should be a hash
|
104
|
-
grpc_rb_md_ary_convert(rb_hash_aref(result, rb_str_new2("metadata")),
|
105
|
-
&md_ary);
|
106
150
|
status = NUM2INT(rb_hash_aref(result, rb_str_new2("status")));
|
107
151
|
details = rb_hash_aref(result, rb_str_new2("details"));
|
108
152
|
error_details = StringValueCStr(details);
|
109
153
|
params->callback(params->user_data, md_ary.metadata, md_ary.count, status,
|
110
154
|
error_details);
|
111
155
|
grpc_rb_metadata_array_destroy_including_entries(&md_ary);
|
156
|
+
grpc_auth_metadata_context_reset(¶ms->context);
|
112
157
|
gpr_free(params);
|
113
158
|
}
|
114
159
|
|
@@ -118,9 +163,9 @@ static int grpc_rb_call_credentials_plugin_get_metadata(
|
|
118
163
|
grpc_metadata creds_md[GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX],
|
119
164
|
size_t* num_creds_md, grpc_status_code* status,
|
120
165
|
const char** error_details) {
|
121
|
-
callback_params* params =
|
166
|
+
callback_params* params = gpr_zalloc(sizeof(callback_params));
|
122
167
|
params->get_metadata = (VALUE)state;
|
123
|
-
params->context
|
168
|
+
grpc_auth_metadata_context_copy(&context, ¶ms->context);
|
124
169
|
params->user_data = user_data;
|
125
170
|
params->callback = cb;
|
126
171
|
|
@@ -135,6 +135,8 @@ grpc_google_refresh_token_credentials_create_type grpc_google_refresh_token_cred
|
|
135
135
|
grpc_access_token_credentials_create_type grpc_access_token_credentials_create_import;
|
136
136
|
grpc_google_iam_credentials_create_type grpc_google_iam_credentials_create_import;
|
137
137
|
grpc_sts_credentials_create_type grpc_sts_credentials_create_import;
|
138
|
+
grpc_auth_metadata_context_copy_type grpc_auth_metadata_context_copy_import;
|
139
|
+
grpc_auth_metadata_context_reset_type grpc_auth_metadata_context_reset_import;
|
138
140
|
grpc_metadata_credentials_create_from_plugin_type grpc_metadata_credentials_create_from_plugin_import;
|
139
141
|
grpc_secure_channel_create_type grpc_secure_channel_create_import;
|
140
142
|
grpc_server_credentials_release_type grpc_server_credentials_release_import;
|
@@ -407,6 +409,8 @@ void grpc_rb_load_imports(HMODULE library) {
|
|
407
409
|
grpc_access_token_credentials_create_import = (grpc_access_token_credentials_create_type) GetProcAddress(library, "grpc_access_token_credentials_create");
|
408
410
|
grpc_google_iam_credentials_create_import = (grpc_google_iam_credentials_create_type) GetProcAddress(library, "grpc_google_iam_credentials_create");
|
409
411
|
grpc_sts_credentials_create_import = (grpc_sts_credentials_create_type) GetProcAddress(library, "grpc_sts_credentials_create");
|
412
|
+
grpc_auth_metadata_context_copy_import = (grpc_auth_metadata_context_copy_type) GetProcAddress(library, "grpc_auth_metadata_context_copy");
|
413
|
+
grpc_auth_metadata_context_reset_import = (grpc_auth_metadata_context_reset_type) GetProcAddress(library, "grpc_auth_metadata_context_reset");
|
410
414
|
grpc_metadata_credentials_create_from_plugin_import = (grpc_metadata_credentials_create_from_plugin_type) GetProcAddress(library, "grpc_metadata_credentials_create_from_plugin");
|
411
415
|
grpc_secure_channel_create_import = (grpc_secure_channel_create_type) GetProcAddress(library, "grpc_secure_channel_create");
|
412
416
|
grpc_server_credentials_release_import = (grpc_server_credentials_release_type) GetProcAddress(library, "grpc_server_credentials_release");
|
@@ -380,6 +380,12 @@ extern grpc_google_iam_credentials_create_type grpc_google_iam_credentials_creat
|
|
380
380
|
typedef grpc_call_credentials*(*grpc_sts_credentials_create_type)(const grpc_sts_credentials_options* options, void* reserved);
|
381
381
|
extern grpc_sts_credentials_create_type grpc_sts_credentials_create_import;
|
382
382
|
#define grpc_sts_credentials_create grpc_sts_credentials_create_import
|
383
|
+
typedef void(*grpc_auth_metadata_context_copy_type)(grpc_auth_metadata_context* from, grpc_auth_metadata_context* to);
|
384
|
+
extern grpc_auth_metadata_context_copy_type grpc_auth_metadata_context_copy_import;
|
385
|
+
#define grpc_auth_metadata_context_copy grpc_auth_metadata_context_copy_import
|
386
|
+
typedef void(*grpc_auth_metadata_context_reset_type)(grpc_auth_metadata_context* context);
|
387
|
+
extern grpc_auth_metadata_context_reset_type grpc_auth_metadata_context_reset_import;
|
388
|
+
#define grpc_auth_metadata_context_reset grpc_auth_metadata_context_reset_import
|
383
389
|
typedef grpc_call_credentials*(*grpc_metadata_credentials_create_from_plugin_type)(grpc_metadata_credentials_plugin plugin, grpc_security_level min_security_level, void* reserved);
|
384
390
|
extern grpc_metadata_credentials_create_from_plugin_type grpc_metadata_credentials_create_from_plugin_import;
|
385
391
|
#define grpc_metadata_credentials_create_from_plugin grpc_metadata_credentials_create_from_plugin_import
|
data/src/ruby/lib/grpc/errors.rb
CHANGED
@@ -30,18 +30,26 @@ module GRPC
|
|
30
30
|
# https://github.com/grpc/grpc/blob/master/include/grpc/impl/codegen/status.h
|
31
31
|
# for detailed descriptions of each status code.
|
32
32
|
class BadStatus < StandardError
|
33
|
-
attr_reader :code, :details, :metadata
|
33
|
+
attr_reader :code, :details, :metadata, :debug_error_string
|
34
34
|
|
35
35
|
include GRPC::Core::StatusCodes
|
36
36
|
|
37
37
|
# @param code [Numeric] the status code
|
38
38
|
# @param details [String] the details of the exception
|
39
39
|
# @param metadata [Hash] the error's metadata
|
40
|
-
def initialize(code,
|
41
|
-
|
40
|
+
def initialize(code,
|
41
|
+
details = 'unknown cause',
|
42
|
+
metadata = {},
|
43
|
+
debug_error_string = nil)
|
44
|
+
exception_message = "#{code}:#{details}"
|
45
|
+
if debug_error_string
|
46
|
+
exception_message += ". debug_error_string:#{debug_error_string}"
|
47
|
+
end
|
48
|
+
super(exception_message)
|
42
49
|
@code = code
|
43
50
|
@details = details
|
44
51
|
@metadata = metadata
|
52
|
+
@debug_error_string = debug_error_string
|
45
53
|
end
|
46
54
|
|
47
55
|
# Converts the exception to a {Struct::Status} for use in the networking
|
@@ -49,7 +57,7 @@ module GRPC
|
|
49
57
|
#
|
50
58
|
# @return [Struct::Status] with the same code and details
|
51
59
|
def to_status
|
52
|
-
Struct::Status.new(code, details, metadata)
|
60
|
+
Struct::Status.new(code, details, metadata, debug_error_string)
|
53
61
|
end
|
54
62
|
|
55
63
|
# Converts the exception to a deserialized {Google::Rpc::Status} object.
|
@@ -66,8 +74,10 @@ module GRPC
|
|
66
74
|
nil
|
67
75
|
end
|
68
76
|
|
69
|
-
def self.new_status_exception(code,
|
70
|
-
|
77
|
+
def self.new_status_exception(code,
|
78
|
+
details = 'unknown cause',
|
79
|
+
metadata = {},
|
80
|
+
debug_error_string = nil)
|
71
81
|
codes = {}
|
72
82
|
codes[OK] = Ok
|
73
83
|
codes[CANCELLED] = Cancelled
|
@@ -88,129 +98,180 @@ module GRPC
|
|
88
98
|
codes[DATA_LOSS] = DataLoss
|
89
99
|
|
90
100
|
if codes[code].nil?
|
91
|
-
BadStatus.new(code, details, metadata)
|
101
|
+
BadStatus.new(code, details, metadata, debug_error_string)
|
92
102
|
else
|
93
|
-
codes[code].new(details, metadata)
|
103
|
+
codes[code].new(details, metadata, debug_error_string)
|
94
104
|
end
|
95
105
|
end
|
96
106
|
end
|
97
107
|
|
98
108
|
# GRPC status code corresponding to status OK
|
99
109
|
class Ok < BadStatus
|
100
|
-
def initialize(details = 'unknown cause',
|
101
|
-
|
110
|
+
def initialize(details = 'unknown cause',
|
111
|
+
metadata = {},
|
112
|
+
debug_error_string = nil)
|
113
|
+
super(Core::StatusCodes::OK,
|
114
|
+
details, metadata, debug_error_string)
|
102
115
|
end
|
103
116
|
end
|
104
117
|
|
105
118
|
# GRPC status code corresponding to status CANCELLED
|
106
119
|
class Cancelled < BadStatus
|
107
|
-
def initialize(details = 'unknown cause',
|
108
|
-
|
120
|
+
def initialize(details = 'unknown cause',
|
121
|
+
metadata = {},
|
122
|
+
debug_error_string = nil)
|
123
|
+
super(Core::StatusCodes::CANCELLED,
|
124
|
+
details, metadata, debug_error_string)
|
109
125
|
end
|
110
126
|
end
|
111
127
|
|
112
128
|
# GRPC status code corresponding to status UNKNOWN
|
113
129
|
class Unknown < BadStatus
|
114
|
-
def initialize(details = 'unknown cause',
|
115
|
-
|
130
|
+
def initialize(details = 'unknown cause',
|
131
|
+
metadata = {},
|
132
|
+
debug_error_string = nil)
|
133
|
+
super(Core::StatusCodes::UNKNOWN,
|
134
|
+
details, metadata, debug_error_string)
|
116
135
|
end
|
117
136
|
end
|
118
137
|
|
119
138
|
# GRPC status code corresponding to status INVALID_ARGUMENT
|
120
139
|
class InvalidArgument < BadStatus
|
121
|
-
def initialize(details = 'unknown cause',
|
122
|
-
|
140
|
+
def initialize(details = 'unknown cause',
|
141
|
+
metadata = {},
|
142
|
+
debug_error_string = nil)
|
143
|
+
super(Core::StatusCodes::INVALID_ARGUMENT,
|
144
|
+
details, metadata, debug_error_string)
|
123
145
|
end
|
124
146
|
end
|
125
147
|
|
126
148
|
# GRPC status code corresponding to status DEADLINE_EXCEEDED
|
127
149
|
class DeadlineExceeded < BadStatus
|
128
|
-
def initialize(details = 'unknown cause',
|
129
|
-
|
150
|
+
def initialize(details = 'unknown cause',
|
151
|
+
metadata = {},
|
152
|
+
debug_error_string = nil)
|
153
|
+
super(Core::StatusCodes::DEADLINE_EXCEEDED,
|
154
|
+
details, metadata, debug_error_string)
|
130
155
|
end
|
131
156
|
end
|
132
157
|
|
133
158
|
# GRPC status code corresponding to status NOT_FOUND
|
134
159
|
class NotFound < BadStatus
|
135
|
-
def initialize(details = 'unknown cause',
|
136
|
-
|
160
|
+
def initialize(details = 'unknown cause',
|
161
|
+
metadata = {},
|
162
|
+
debug_error_string = nil)
|
163
|
+
super(Core::StatusCodes::NOT_FOUND,
|
164
|
+
details, metadata, debug_error_string)
|
137
165
|
end
|
138
166
|
end
|
139
167
|
|
140
168
|
# GRPC status code corresponding to status ALREADY_EXISTS
|
141
169
|
class AlreadyExists < BadStatus
|
142
|
-
def initialize(details = 'unknown cause',
|
143
|
-
|
170
|
+
def initialize(details = 'unknown cause',
|
171
|
+
metadata = {},
|
172
|
+
debug_error_string = nil)
|
173
|
+
super(Core::StatusCodes::ALREADY_EXISTS,
|
174
|
+
details, metadata, debug_error_string)
|
144
175
|
end
|
145
176
|
end
|
146
177
|
|
147
178
|
# GRPC status code corresponding to status PERMISSION_DENIED
|
148
179
|
class PermissionDenied < BadStatus
|
149
|
-
def initialize(details = 'unknown cause',
|
150
|
-
|
180
|
+
def initialize(details = 'unknown cause',
|
181
|
+
metadata = {},
|
182
|
+
debug_error_string = nil)
|
183
|
+
super(Core::StatusCodes::PERMISSION_DENIED,
|
184
|
+
details, metadata, debug_error_string)
|
151
185
|
end
|
152
186
|
end
|
153
187
|
|
154
188
|
# GRPC status code corresponding to status UNAUTHENTICATED
|
155
189
|
class Unauthenticated < BadStatus
|
156
|
-
def initialize(details = 'unknown cause',
|
157
|
-
|
190
|
+
def initialize(details = 'unknown cause',
|
191
|
+
metadata = {},
|
192
|
+
debug_error_string = nil)
|
193
|
+
super(Core::StatusCodes::UNAUTHENTICATED,
|
194
|
+
details, metadata, debug_error_string)
|
158
195
|
end
|
159
196
|
end
|
160
197
|
|
161
198
|
# GRPC status code corresponding to status RESOURCE_EXHAUSTED
|
162
199
|
class ResourceExhausted < BadStatus
|
163
|
-
def initialize(details = 'unknown cause',
|
164
|
-
|
200
|
+
def initialize(details = 'unknown cause',
|
201
|
+
metadata = {},
|
202
|
+
debug_error_string = nil)
|
203
|
+
super(Core::StatusCodes::RESOURCE_EXHAUSTED,
|
204
|
+
details, metadata, debug_error_string)
|
165
205
|
end
|
166
206
|
end
|
167
207
|
|
168
208
|
# GRPC status code corresponding to status FAILED_PRECONDITION
|
169
209
|
class FailedPrecondition < BadStatus
|
170
|
-
def initialize(details = 'unknown cause',
|
171
|
-
|
210
|
+
def initialize(details = 'unknown cause',
|
211
|
+
metadata = {},
|
212
|
+
debug_error_string = nil)
|
213
|
+
super(Core::StatusCodes::FAILED_PRECONDITION,
|
214
|
+
details, metadata, debug_error_string)
|
172
215
|
end
|
173
216
|
end
|
174
217
|
|
175
218
|
# GRPC status code corresponding to status ABORTED
|
176
219
|
class Aborted < BadStatus
|
177
|
-
def initialize(details = 'unknown cause',
|
178
|
-
|
220
|
+
def initialize(details = 'unknown cause',
|
221
|
+
metadata = {},
|
222
|
+
debug_error_string = nil)
|
223
|
+
super(Core::StatusCodes::ABORTED,
|
224
|
+
details, metadata, debug_error_string)
|
179
225
|
end
|
180
226
|
end
|
181
227
|
|
182
228
|
# GRPC status code corresponding to status OUT_OF_RANGE
|
183
229
|
class OutOfRange < BadStatus
|
184
|
-
def initialize(details = 'unknown cause',
|
185
|
-
|
230
|
+
def initialize(details = 'unknown cause',
|
231
|
+
metadata = {},
|
232
|
+
debug_error_string = nil)
|
233
|
+
super(Core::StatusCodes::OUT_OF_RANGE,
|
234
|
+
details, metadata, debug_error_string)
|
186
235
|
end
|
187
236
|
end
|
188
237
|
|
189
238
|
# GRPC status code corresponding to status UNIMPLEMENTED
|
190
239
|
class Unimplemented < BadStatus
|
191
|
-
def initialize(details = 'unknown cause',
|
192
|
-
|
240
|
+
def initialize(details = 'unknown cause',
|
241
|
+
metadata = {},
|
242
|
+
debug_error_string = nil)
|
243
|
+
super(Core::StatusCodes::UNIMPLEMENTED,
|
244
|
+
details, metadata, debug_error_string)
|
193
245
|
end
|
194
246
|
end
|
195
247
|
|
196
248
|
# GRPC status code corresponding to status INTERNAL
|
197
249
|
class Internal < BadStatus
|
198
|
-
def initialize(details = 'unknown cause',
|
199
|
-
|
250
|
+
def initialize(details = 'unknown cause',
|
251
|
+
metadata = {},
|
252
|
+
debug_error_string = nil)
|
253
|
+
super(Core::StatusCodes::INTERNAL,
|
254
|
+
details, metadata, debug_error_string)
|
200
255
|
end
|
201
256
|
end
|
202
257
|
|
203
258
|
# GRPC status code corresponding to status UNAVAILABLE
|
204
259
|
class Unavailable < BadStatus
|
205
|
-
def initialize(details = 'unknown cause',
|
206
|
-
|
260
|
+
def initialize(details = 'unknown cause',
|
261
|
+
metadata = {},
|
262
|
+
debug_error_string = nil)
|
263
|
+
super(Core::StatusCodes::UNAVAILABLE,
|
264
|
+
details, metadata, debug_error_string)
|
207
265
|
end
|
208
266
|
end
|
209
267
|
|
210
268
|
# GRPC status code corresponding to status DATA_LOSS
|
211
269
|
class DataLoss < BadStatus
|
212
|
-
def initialize(details = 'unknown cause',
|
213
|
-
|
270
|
+
def initialize(details = 'unknown cause',
|
271
|
+
metadata = {},
|
272
|
+
debug_error_string = nil)
|
273
|
+
super(Core::StatusCodes::DATA_LOSS,
|
274
|
+
details, metadata, debug_error_string)
|
214
275
|
end
|
215
276
|
end
|
216
277
|
end
|