grpc 1.28.0 → 1.30.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +7694 -11190
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security.h +30 -9
- data/include/grpc/grpc_security_constants.h +1 -0
- data/include/grpc/impl/codegen/grpc_types.h +19 -21
- data/include/grpc/impl/codegen/port_platform.h +6 -2
- data/include/grpc/module.modulemap +24 -39
- data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +212 -241
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +17 -10
- data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +240 -301
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +89 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +40 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +11 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -11
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +84 -37
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +6 -2
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
- data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
- data/src/core/ext/filters/client_channel/resolver.cc +5 -8
- data/src/core/ext/filters/client_channel/resolver.h +12 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +73 -59
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +16 -20
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +184 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +7 -4
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +40 -43
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +93 -102
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +32 -5
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
- data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +16 -16
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +19 -16
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +20 -31
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +4 -3
- data/src/core/ext/filters/client_channel/server_address.cc +6 -9
- data/src/core/ext/filters/client_channel/server_address.h +6 -12
- data/src/core/ext/filters/client_channel/service_config.cc +104 -144
- data/src/core/ext/filters/client_channel/service_config.h +28 -98
- data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
- data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
- data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
- data/src/core/ext/filters/client_channel/subchannel.h +35 -11
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +348 -221
- data/src/core/ext/filters/client_channel/xds/xds_api.h +37 -37
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +44 -49
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +4 -3
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +4 -2
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +532 -339
- data/src/core/ext/filters/client_channel/xds/xds_client.h +57 -22
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +11 -12
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +31 -19
- data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +7 -10
- data/src/core/ext/filters/message_size/message_size_filter.h +4 -4
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +23 -22
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
- data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -8
- data/src/core/ext/transport/inproc/inproc_transport.cc +19 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +4 -229
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -875
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +43 -7
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +47 -26
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +115 -65
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +24 -20
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +28 -13
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +38 -18
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +88 -6
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +9 -6
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +15 -10
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +16 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +63 -41
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +173 -77
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +48 -28
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +16 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +1 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +21 -20
- data/src/core/ext/upb-generated/validate/validate.upb.h +69 -63
- data/src/core/lib/channel/channel_args.cc +15 -14
- data/src/core/lib/channel/channel_args.h +3 -1
- data/src/core/lib/channel/channel_stack.h +20 -13
- data/src/core/lib/channel/channelz.cc +5 -6
- data/src/core/lib/channel/channelz.h +3 -2
- data/src/core/lib/channel/channelz_registry.cc +5 -3
- data/src/core/lib/channel/connected_channel.cc +7 -5
- data/src/core/lib/channel/context.h +1 -1
- data/src/core/lib/channel/handshaker.cc +11 -13
- data/src/core/lib/channel/handshaker.h +4 -2
- data/src/core/lib/channel/handshaker_registry.cc +5 -17
- data/src/core/lib/channel/status_util.cc +2 -3
- data/src/core/lib/compression/message_compress.cc +5 -1
- data/src/core/lib/debug/stats.cc +21 -27
- data/src/core/lib/debug/stats.h +3 -1
- data/src/core/lib/gpr/spinlock.h +2 -3
- data/src/core/lib/gpr/string.cc +2 -26
- data/src/core/lib/gpr/string.h +0 -16
- data/src/core/lib/gpr/sync_abseil.cc +2 -0
- data/src/core/lib/gpr/time.cc +4 -0
- data/src/core/lib/gpr/time_posix.cc +1 -1
- data/src/core/lib/gprpp/atomic.h +6 -6
- data/src/core/lib/gprpp/fork.cc +1 -1
- data/src/core/lib/gprpp/host_port.cc +29 -35
- data/src/core/lib/gprpp/host_port.h +14 -17
- data/src/core/lib/gprpp/map.h +5 -11
- data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
- data/src/core/lib/http/format_request.cc +46 -65
- data/src/core/lib/http/httpcli.cc +2 -3
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/http/parser.h +2 -3
- data/src/core/lib/iomgr/buffer_list.h +22 -21
- data/src/core/lib/iomgr/call_combiner.h +3 -2
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
- data/src/core/lib/iomgr/closure.h +2 -3
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
- data/src/core/lib/iomgr/endpoint_pair.h +2 -3
- data/src/core/lib/iomgr/error.cc +6 -9
- data/src/core/lib/iomgr/error.h +0 -1
- data/src/core/lib/iomgr/ev_apple.cc +356 -0
- data/src/core/lib/iomgr/ev_apple.h +43 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
- data/src/core/lib/iomgr/ev_epollex_linux.cc +2 -3
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
- data/src/core/lib/iomgr/ev_posix.cc +2 -3
- data/src/core/lib/iomgr/exec_ctx.h +14 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
- data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
- data/src/core/lib/{gprpp/optional.h → iomgr/pollset_uv.h} +11 -12
- data/src/core/lib/iomgr/port.h +1 -0
- data/src/core/lib/iomgr/python_util.h +46 -0
- data/src/core/lib/iomgr/resolve_address.h +4 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
- data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
- data/src/core/lib/iomgr/resource_quota.cc +4 -6
- data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
- data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
- data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
- data/src/core/lib/iomgr/socket_mutator.h +2 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
- data/src/core/lib/iomgr/tcp_client_posix.cc +8 -5
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
- data/src/core/lib/iomgr/tcp_custom.cc +2 -3
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
- data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
- data/src/core/lib/iomgr/tcp_uv.cc +3 -2
- data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
- data/src/core/lib/iomgr/timer_generic.cc +2 -3
- data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +19 -17
- data/src/core/lib/iomgr/timer_heap.h +2 -3
- data/src/core/lib/iomgr/udp_server.cc +9 -14
- data/src/core/lib/json/json.h +3 -2
- data/src/core/lib/json/json_reader.cc +5 -5
- data/src/core/lib/json/json_writer.cc +13 -12
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
- data/src/core/lib/security/credentials/credentials.cc +0 -84
- data/src/core/lib/security/credentials/credentials.h +8 -59
- data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +3 -8
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
- data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +55 -27
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +9 -3
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +38 -11
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -25
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +59 -12
- data/src/core/lib/security/security_connector/ssl_utils.h +12 -10
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +77 -51
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +27 -5
- data/src/core/lib/security/transport/auth_filters.h +0 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +14 -0
- data/src/core/lib/slice/slice_utils.h +9 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
- data/src/core/lib/surface/call.cc +2 -3
- data/src/core/lib/surface/call_log_batch.cc +50 -58
- data/src/core/lib/surface/channel.cc +53 -31
- data/src/core/lib/surface/channel.h +35 -4
- data/src/core/lib/surface/channel_ping.cc +2 -3
- data/src/core/lib/surface/completion_queue.cc +33 -33
- data/src/core/lib/surface/event_string.cc +18 -25
- data/src/core/lib/surface/event_string.h +3 -1
- data/src/core/lib/surface/init_secure.cc +1 -4
- data/src/core/lib/surface/server.cc +570 -369
- data/src/core/lib/surface/server.h +32 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.h +7 -2
- data/src/core/lib/transport/connectivity_state.cc +7 -6
- data/src/core/lib/transport/connectivity_state.h +5 -3
- data/src/core/lib/transport/metadata.cc +3 -3
- data/src/core/lib/transport/metadata_batch.h +2 -3
- data/src/core/lib/transport/static_metadata.h +1 -1
- data/src/core/lib/transport/status_conversion.cc +6 -14
- data/src/core/lib/transport/transport.cc +2 -3
- data/src/core/lib/transport/transport.h +3 -2
- data/src/core/lib/transport/transport_op_string.cc +61 -102
- data/src/core/lib/uri/uri_parser.h +2 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +8 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
- data/src/core/tsi/fake_transport_security.cc +10 -15
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
- data/src/core/tsi/ssl_transport_security.cc +52 -39
- data/src/core/tsi/ssl_transport_security.h +8 -8
- data/src/core/tsi/ssl_types.h +0 -2
- data/src/core/tsi/transport_security.h +6 -9
- data/src/core/tsi/transport_security_grpc.h +2 -3
- data/src/core/tsi/transport_security_interface.h +3 -3
- data/src/ruby/ext/grpc/rb_call.c +9 -1
- data/src/ruby/ext/grpc/rb_call_credentials.c +3 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/errors.rb +103 -42
- data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
- data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
- data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
- data/src/ruby/lib/grpc/generic/service.rb +5 -4
- data/src/ruby/lib/grpc/structs.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +5 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
- data/src/ruby/spec/debug_message_spec.rb +134 -0
- data/src/ruby/spec/generic/service_spec.rb +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +7 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +7 -1
- data/src/ruby/spec/support/services.rb +10 -4
- data/src/ruby/spec/testdata/ca.pem +18 -13
- data/src/ruby/spec/testdata/client.key +26 -14
- data/src/ruby/spec/testdata/client.pem +18 -12
- data/src/ruby/spec/testdata/server1.key +26 -14
- data/src/ruby/spec/testdata/server1.pem +20 -14
- data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
- data/third_party/abseil-cpp/absl/time/clock.h +74 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
- data/third_party/abseil-cpp/absl/time/format.cc +153 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
- data/third_party/abseil-cpp/absl/time/time.cc +499 -0
- data/third_party/abseil-cpp/absl/time/time.h +1584 -0
- data/third_party/boringssl-with-bazel/err_data.c +329 -297
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +18 -26
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +14 -22
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +15 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +33 -32
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +289 -117
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +13 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +432 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +90 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +41 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +32 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +24 -114
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +51 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +44 -35
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -12
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +4 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +20 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +31 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +172 -77
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +5 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -4
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +146 -57
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +14 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +28 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +12 -4
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +64 -47
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +10 -10
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -21
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +29 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +6 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +13 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +64 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +6 -2
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +47 -53
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -27
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +23 -75
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +50 -20
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +63 -25
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
- metadata +115 -39
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1754
- data/src/core/lib/gprpp/string_view.h +0 -60
- data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
@@ -21,7 +21,7 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include "
|
24
|
+
#include "absl/strings/string_view.h"
|
25
25
|
#include "src/core/tsi/transport_security_interface.h"
|
26
26
|
|
27
27
|
extern "C" {
|
@@ -43,6 +43,8 @@ extern "C" {
|
|
43
43
|
|
44
44
|
#define TSI_SSL_ALPN_SELECTED_PROTOCOL "ssl_alpn_selected_protocol"
|
45
45
|
|
46
|
+
#define TSI_X509_URI_PEER_PROPERTY "x509_uri"
|
47
|
+
|
46
48
|
/* --- tsi_ssl_root_certs_store object ---
|
47
49
|
|
48
50
|
This object stores SSL root certificates. It can be shared by multiple SSL
|
@@ -81,7 +83,7 @@ typedef struct tsi_ssl_client_handshaker_factory
|
|
81
83
|
tsi_ssl_client_handshaker_factory;
|
82
84
|
|
83
85
|
/* Object that holds a private key / certificate chain pair in PEM format. */
|
84
|
-
|
86
|
+
struct tsi_ssl_pem_key_cert_pair {
|
85
87
|
/* private_key is the NULL-terminated string containing the PEM encoding of
|
86
88
|
the client's private key. */
|
87
89
|
const char* private_key;
|
@@ -89,8 +91,7 @@ typedef struct {
|
|
89
91
|
/* cert_chain is the NULL-terminated string containing the PEM encoding of
|
90
92
|
the client's certificate chain. */
|
91
93
|
const char* cert_chain;
|
92
|
-
}
|
93
|
-
|
94
|
+
};
|
94
95
|
/* TO BE DEPRECATED.
|
95
96
|
Creates a client handshaker factory.
|
96
97
|
- pem_key_cert_pair is a pointer to the object containing client's private
|
@@ -317,7 +318,7 @@ void tsi_ssl_server_handshaker_factory_unref(
|
|
317
318
|
- handle mixed case.
|
318
319
|
- handle %encoded chars.
|
319
320
|
- handle public suffix wildchar more strictly (e.g. *.co.uk) */
|
320
|
-
int tsi_ssl_peer_matches_name(const tsi_peer* peer,
|
321
|
+
int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name);
|
321
322
|
|
322
323
|
/* --- Testing support. ---
|
323
324
|
|
@@ -332,10 +333,9 @@ typedef void (*tsi_ssl_handshaker_factory_destructor)(
|
|
332
333
|
tsi_ssl_handshaker_factory* factory);
|
333
334
|
|
334
335
|
/* Virtual table for tsi_ssl_handshaker_factory. */
|
335
|
-
|
336
|
+
struct tsi_ssl_handshaker_factory_vtable {
|
336
337
|
tsi_ssl_handshaker_factory_destructor destroy;
|
337
|
-
}
|
338
|
-
|
338
|
+
};
|
339
339
|
/* Set destructor of handshaker_factory to new_destructor, returns previous
|
340
340
|
destructor. */
|
341
341
|
const tsi_ssl_handshaker_factory_vtable* tsi_ssl_handshaker_factory_swap_vtable(
|
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 {
|
@@ -207,11 +208,10 @@ typedef struct tsi_peer_property {
|
|
207
208
|
} value;
|
208
209
|
} tsi_peer_property;
|
209
210
|
|
210
|
-
|
211
|
+
struct tsi_peer {
|
211
212
|
tsi_peer_property* properties;
|
212
213
|
size_t property_count;
|
213
|
-
}
|
214
|
-
|
214
|
+
};
|
215
215
|
/* Destructs the tsi_peer object. */
|
216
216
|
void tsi_peer_destruct(tsi_peer* self);
|
217
217
|
|
data/src/ruby/ext/grpc/rb_call.c
CHANGED
@@ -620,6 +620,7 @@ typedef struct run_batch_stack {
|
|
620
620
|
int recv_cancelled;
|
621
621
|
grpc_status_code recv_status;
|
622
622
|
grpc_slice recv_status_details;
|
623
|
+
const char* recv_status_debug_error_string;
|
623
624
|
unsigned write_flag;
|
624
625
|
grpc_slice send_status_details;
|
625
626
|
} run_batch_stack;
|
@@ -729,6 +730,8 @@ static void grpc_run_batch_stack_fill_ops(run_batch_stack* st, VALUE ops_hash) {
|
|
729
730
|
&st->recv_status;
|
730
731
|
st->ops[st->op_num].data.recv_status_on_client.status_details =
|
731
732
|
&st->recv_status_details;
|
733
|
+
st->ops[st->op_num].data.recv_status_on_client.error_string =
|
734
|
+
&st->recv_status_debug_error_string;
|
732
735
|
break;
|
733
736
|
case GRPC_OP_RECV_CLOSE_ON_SERVER:
|
734
737
|
st->ops[st->op_num].data.recv_close_on_server.cancelled =
|
@@ -780,7 +783,12 @@ static VALUE grpc_run_batch_stack_build_result(run_batch_stack* st) {
|
|
780
783
|
(GRPC_SLICE_START_PTR(st->recv_status_details) == NULL
|
781
784
|
? Qnil
|
782
785
|
: grpc_rb_slice_to_ruby_string(st->recv_status_details)),
|
783
|
-
grpc_rb_md_ary_to_h(&st->recv_trailing_metadata),
|
786
|
+
grpc_rb_md_ary_to_h(&st->recv_trailing_metadata),
|
787
|
+
st->recv_status_debug_error_string == NULL
|
788
|
+
? Qnil
|
789
|
+
: rb_str_new_cstr(st->recv_status_debug_error_string),
|
790
|
+
NULL));
|
791
|
+
gpr_free((void*)st->recv_status_debug_error_string);
|
784
792
|
break;
|
785
793
|
case GRPC_OP_RECV_CLOSE_ON_SERVER:
|
786
794
|
rb_struct_aset(result, sym_send_close, Qtrue);
|
@@ -109,6 +109,7 @@ static void grpc_rb_call_credentials_callback_with_gil(void* param) {
|
|
109
109
|
params->callback(params->user_data, md_ary.metadata, md_ary.count, status,
|
110
110
|
error_details);
|
111
111
|
grpc_rb_metadata_array_destroy_including_entries(&md_ary);
|
112
|
+
grpc_auth_metadata_context_reset(¶ms->context);
|
112
113
|
gpr_free(params);
|
113
114
|
}
|
114
115
|
|
@@ -118,9 +119,9 @@ static int grpc_rb_call_credentials_plugin_get_metadata(
|
|
118
119
|
grpc_metadata creds_md[GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX],
|
119
120
|
size_t* num_creds_md, grpc_status_code* status,
|
120
121
|
const char** error_details) {
|
121
|
-
callback_params* params =
|
122
|
+
callback_params* params = gpr_zalloc(sizeof(callback_params));
|
122
123
|
params->get_metadata = (VALUE)state;
|
123
|
-
params->context
|
124
|
+
grpc_auth_metadata_context_copy(&context, ¶ms->context);
|
124
125
|
params->user_data = user_data;
|
125
126
|
params->callback = cb;
|
126
127
|
|
@@ -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
|