grpc 1.28.0 → 1.30.0
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 +22 -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 +203 -236
- 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/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/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_ruby_style.proto +5 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -0
- 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 +111 -37
- 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
@@ -23,12 +23,11 @@
|
|
23
23
|
|
24
24
|
#include "src/core/lib/iomgr/timer.h"
|
25
25
|
|
26
|
-
|
26
|
+
struct grpc_timer_heap {
|
27
27
|
grpc_timer** timers;
|
28
28
|
uint32_t timer_count;
|
29
29
|
uint32_t timer_capacity;
|
30
|
-
}
|
31
|
-
|
30
|
+
};
|
32
31
|
/* return true if the new timer is the first timer in the heap */
|
33
32
|
bool grpc_timer_heap_add(grpc_timer_heap* heap, grpc_timer* timer);
|
34
33
|
|
@@ -44,6 +44,8 @@
|
|
44
44
|
#include <sys/types.h>
|
45
45
|
#include <unistd.h>
|
46
46
|
|
47
|
+
#include "absl/container/inlined_vector.h"
|
48
|
+
|
47
49
|
#include <grpc/grpc.h>
|
48
50
|
#include <grpc/support/alloc.h>
|
49
51
|
#include <grpc/support/log.h>
|
@@ -52,7 +54,6 @@
|
|
52
54
|
#include <grpc/support/time.h>
|
53
55
|
#include "src/core/lib/channel/channel_args.h"
|
54
56
|
#include "src/core/lib/gpr/string.h"
|
55
|
-
#include "src/core/lib/gprpp/inlined_vector.h"
|
56
57
|
#include "src/core/lib/gprpp/memory.h"
|
57
58
|
#include "src/core/lib/iomgr/error.h"
|
58
59
|
#include "src/core/lib/iomgr/ev_posix.h"
|
@@ -147,11 +148,9 @@ GrpcUdpListener::GrpcUdpListener(grpc_udp_server* server, int fd,
|
|
147
148
|
server_(server),
|
148
149
|
orphan_notified_(false),
|
149
150
|
already_shutdown_(false) {
|
150
|
-
char* addr_str;
|
151
151
|
char* name;
|
152
|
-
grpc_sockaddr_to_string(
|
153
|
-
gpr_asprintf(&name, "udp-server-listener:%s", addr_str);
|
154
|
-
gpr_free(addr_str);
|
152
|
+
std::string addr_str = grpc_sockaddr_to_string(addr, true);
|
153
|
+
gpr_asprintf(&name, "udp-server-listener:%s", addr_str.c_str());
|
155
154
|
emfd_ = grpc_fd_create(fd, name, true);
|
156
155
|
memcpy(&addr_, addr, sizeof(grpc_resolved_address));
|
157
156
|
GPR_ASSERT(emfd_);
|
@@ -177,7 +176,7 @@ struct grpc_udp_server {
|
|
177
176
|
int shutdown;
|
178
177
|
|
179
178
|
/* An array of listeners */
|
180
|
-
|
179
|
+
absl::InlinedVector<GrpcUdpListener, 16> listeners;
|
181
180
|
|
182
181
|
/* factory for use to create udp listeners */
|
183
182
|
GrpcUdpHandlerFactory* handler_factory;
|
@@ -412,10 +411,8 @@ static int prepare_socket(grpc_socket_factory* socket_factory, int fd,
|
|
412
411
|
}
|
413
412
|
|
414
413
|
if (bind_socket(socket_factory, fd, addr) < 0) {
|
415
|
-
|
416
|
-
|
417
|
-
gpr_log(GPR_ERROR, "bind addr=%s: %s", addr_str, strerror(errno));
|
418
|
-
gpr_free(addr_str);
|
414
|
+
std::string addr_str = grpc_sockaddr_to_string(addr, false);
|
415
|
+
gpr_log(GPR_ERROR, "bind addr=%s: %s", addr_str.c_str(), strerror(errno));
|
419
416
|
goto error;
|
420
417
|
}
|
421
418
|
|
@@ -582,10 +579,8 @@ int grpc_udp_server_add_port(grpc_udp_server* s,
|
|
582
579
|
"Try to have multiple listeners on same port, but SO_REUSEPORT is "
|
583
580
|
"not supported. Only create 1 listener.");
|
584
581
|
}
|
585
|
-
|
586
|
-
|
587
|
-
gpr_log(GPR_DEBUG, "add address: %s to server", addr_str);
|
588
|
-
gpr_free(addr_str);
|
582
|
+
std::string addr_str = grpc_sockaddr_to_string(addr, true);
|
583
|
+
gpr_log(GPR_DEBUG, "add address: %s to server", addr_str.c_str());
|
589
584
|
|
590
585
|
int allocated_port1 = -1;
|
591
586
|
int allocated_port2 = -1;
|
data/src/core/lib/json/json.h
CHANGED
@@ -27,7 +27,8 @@
|
|
27
27
|
#include <string>
|
28
28
|
#include <vector>
|
29
29
|
|
30
|
-
#include "
|
30
|
+
#include "absl/strings/string_view.h"
|
31
|
+
|
31
32
|
#include "src/core/lib/iomgr/error.h"
|
32
33
|
|
33
34
|
namespace grpc_core {
|
@@ -55,7 +56,7 @@ class Json {
|
|
55
56
|
using Array = std::vector<Json>;
|
56
57
|
|
57
58
|
// Parses JSON string from json_str. On error, sets *error.
|
58
|
-
static Json Parse(
|
59
|
+
static Json Parse(absl::string_view json_str, grpc_error** error);
|
59
60
|
|
60
61
|
Json() = default;
|
61
62
|
|
@@ -34,7 +34,7 @@ namespace {
|
|
34
34
|
|
35
35
|
class JsonReader {
|
36
36
|
public:
|
37
|
-
static grpc_error* Parse(
|
37
|
+
static grpc_error* Parse(absl::string_view input, Json* output);
|
38
38
|
|
39
39
|
private:
|
40
40
|
enum class Status {
|
@@ -80,7 +80,7 @@ class JsonReader {
|
|
80
80
|
*/
|
81
81
|
static constexpr uint32_t GRPC_JSON_READ_CHAR_EOF = 0x7ffffff0;
|
82
82
|
|
83
|
-
explicit JsonReader(
|
83
|
+
explicit JsonReader(absl::string_view input)
|
84
84
|
: original_input_(reinterpret_cast<const uint8_t*>(input.data())),
|
85
85
|
input_(original_input_),
|
86
86
|
remaining_input_(input.size()) {}
|
@@ -235,7 +235,7 @@ void JsonReader::SetString() {
|
|
235
235
|
|
236
236
|
bool JsonReader::SetNumber() {
|
237
237
|
Json* value = CreateAndLinkValue();
|
238
|
-
*value = Json(
|
238
|
+
*value = Json(string_, /*is_number=*/true);
|
239
239
|
string_.clear();
|
240
240
|
return true;
|
241
241
|
}
|
@@ -815,7 +815,7 @@ JsonReader::Status JsonReader::Run() {
|
|
815
815
|
GPR_UNREACHABLE_CODE(return Status::GRPC_JSON_INTERNAL_ERROR);
|
816
816
|
}
|
817
817
|
|
818
|
-
grpc_error* JsonReader::Parse(
|
818
|
+
grpc_error* JsonReader::Parse(absl::string_view input, Json* output) {
|
819
819
|
JsonReader reader(input);
|
820
820
|
Status status = reader.Run();
|
821
821
|
if (reader.truncated_errors_) {
|
@@ -846,7 +846,7 @@ grpc_error* JsonReader::Parse(StringView input, Json* output) {
|
|
846
846
|
|
847
847
|
} // namespace
|
848
848
|
|
849
|
-
Json Json::Parse(
|
849
|
+
Json Json::Parse(absl::string_view json_str, grpc_error** error) {
|
850
850
|
Json value;
|
851
851
|
*error = JsonReader::Parse(json_str, &value);
|
852
852
|
return value;
|
@@ -21,13 +21,13 @@
|
|
21
21
|
#include <stdlib.h>
|
22
22
|
#include <string.h>
|
23
23
|
|
24
|
+
#include "absl/strings/string_view.h"
|
25
|
+
|
24
26
|
#include <grpc/support/alloc.h>
|
25
27
|
#include <grpc/support/log.h>
|
26
28
|
|
27
29
|
#include "src/core/lib/json/json.h"
|
28
30
|
|
29
|
-
#include "src/core/lib/gprpp/string_view.h"
|
30
|
-
|
31
31
|
namespace grpc_core {
|
32
32
|
|
33
33
|
namespace {
|
@@ -52,7 +52,7 @@ class JsonWriter {
|
|
52
52
|
|
53
53
|
void OutputCheck(size_t needed);
|
54
54
|
void OutputChar(char c);
|
55
|
-
void OutputString(const
|
55
|
+
void OutputString(const absl::string_view str);
|
56
56
|
void OutputIndent();
|
57
57
|
void ValueEnd();
|
58
58
|
void EscapeUtf16(uint16_t utf16);
|
@@ -92,7 +92,7 @@ void JsonWriter::OutputChar(char c) {
|
|
92
92
|
output_.push_back(c);
|
93
93
|
}
|
94
94
|
|
95
|
-
void JsonWriter::OutputString(const
|
95
|
+
void JsonWriter::OutputString(const absl::string_view str) {
|
96
96
|
OutputCheck(str.size());
|
97
97
|
output_.append(str.data(), str.size());
|
98
98
|
}
|
@@ -110,11 +110,12 @@ void JsonWriter::OutputIndent() {
|
|
110
110
|
return;
|
111
111
|
}
|
112
112
|
while (spaces >= (sizeof(spacesstr) - 1)) {
|
113
|
-
OutputString(
|
113
|
+
OutputString(absl::string_view(spacesstr, sizeof(spacesstr) - 1));
|
114
114
|
spaces -= static_cast<unsigned>(sizeof(spacesstr) - 1);
|
115
115
|
}
|
116
116
|
if (spaces == 0) return;
|
117
|
-
OutputString(
|
117
|
+
OutputString(
|
118
|
+
absl::string_view(spacesstr + sizeof(spacesstr) - 1 - spaces, spaces));
|
118
119
|
}
|
119
120
|
|
120
121
|
void JsonWriter::ValueEnd() {
|
@@ -131,7 +132,7 @@ void JsonWriter::ValueEnd() {
|
|
131
132
|
|
132
133
|
void JsonWriter::EscapeUtf16(uint16_t utf16) {
|
133
134
|
static const char hex[] = "0123456789abcdef";
|
134
|
-
OutputString(
|
135
|
+
OutputString(absl::string_view("\\u", 2));
|
135
136
|
OutputChar(hex[(utf16 >> 12) & 0x0f]);
|
136
137
|
OutputChar(hex[(utf16 >> 8) & 0x0f]);
|
137
138
|
OutputChar(hex[(utf16 >> 4) & 0x0f]);
|
@@ -150,19 +151,19 @@ void JsonWriter::EscapeString(const std::string& string) {
|
|
150
151
|
} else if (c < 32 || c == 127) {
|
151
152
|
switch (c) {
|
152
153
|
case '\b':
|
153
|
-
OutputString(
|
154
|
+
OutputString(absl::string_view("\\b", 2));
|
154
155
|
break;
|
155
156
|
case '\f':
|
156
|
-
OutputString(
|
157
|
+
OutputString(absl::string_view("\\f", 2));
|
157
158
|
break;
|
158
159
|
case '\n':
|
159
|
-
OutputString(
|
160
|
+
OutputString(absl::string_view("\\n", 2));
|
160
161
|
break;
|
161
162
|
case '\r':
|
162
|
-
OutputString(
|
163
|
+
OutputString(absl::string_view("\\r", 2));
|
163
164
|
break;
|
164
165
|
case '\t':
|
165
|
-
OutputString(
|
166
|
+
OutputString(absl::string_view("\\t", 2));
|
166
167
|
break;
|
167
168
|
default:
|
168
169
|
EscapeUtf16(c);
|
@@ -22,7 +22,10 @@
|
|
22
22
|
|
23
23
|
#include <cstring>
|
24
24
|
#include <new>
|
25
|
+
#include <vector>
|
25
26
|
|
27
|
+
#include "absl/strings/str_cat.h"
|
28
|
+
#include "absl/strings/str_join.h"
|
26
29
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
27
30
|
#include "src/core/lib/iomgr/polling_entity.h"
|
28
31
|
#include "src/core/lib/surface/api_trace.h"
|
@@ -116,6 +119,15 @@ void grpc_composite_call_credentials::cancel_get_request_metadata(
|
|
116
119
|
GRPC_ERROR_UNREF(error);
|
117
120
|
}
|
118
121
|
|
122
|
+
std::string grpc_composite_call_credentials::debug_string() {
|
123
|
+
std::vector<std::string> outputs;
|
124
|
+
for (auto& inner_cred : inner_) {
|
125
|
+
outputs.emplace_back(inner_cred->debug_string());
|
126
|
+
}
|
127
|
+
return absl::StrCat("CompositeCallCredentials{", absl::StrJoin(outputs, ","),
|
128
|
+
"}");
|
129
|
+
}
|
130
|
+
|
119
131
|
static size_t get_creds_array_size(const grpc_call_credentials* creds,
|
120
132
|
bool is_composite) {
|
121
133
|
return is_composite
|
@@ -21,7 +21,10 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include
|
24
|
+
#include <string>
|
25
|
+
|
26
|
+
#include "absl/container/inlined_vector.h"
|
27
|
+
|
25
28
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
26
29
|
#include "src/core/lib/security/credentials/credentials.h"
|
27
30
|
|
@@ -69,8 +72,7 @@ class grpc_composite_channel_credentials : public grpc_channel_credentials {
|
|
69
72
|
class grpc_composite_call_credentials : public grpc_call_credentials {
|
70
73
|
public:
|
71
74
|
using CallCredentialsList =
|
72
|
-
|
73
|
-
2>;
|
75
|
+
absl::InlinedVector<grpc_core::RefCountedPtr<grpc_call_credentials>, 2>;
|
74
76
|
|
75
77
|
grpc_composite_call_credentials(
|
76
78
|
grpc_core::RefCountedPtr<grpc_call_credentials> creds1,
|
@@ -91,6 +93,7 @@ class grpc_composite_call_credentials : public grpc_call_credentials {
|
|
91
93
|
}
|
92
94
|
|
93
95
|
const CallCredentialsList& inner() const { return inner_; }
|
96
|
+
std::string debug_string() override;
|
94
97
|
|
95
98
|
private:
|
96
99
|
void push_to_inner(grpc_core::RefCountedPtr<grpc_call_credentials> creds,
|
@@ -45,90 +45,6 @@ void grpc_channel_credentials_release(grpc_channel_credentials* creds) {
|
|
45
45
|
if (creds) creds->Unref();
|
46
46
|
}
|
47
47
|
|
48
|
-
static std::map<grpc_core::UniquePtr<char>,
|
49
|
-
grpc_core::RefCountedPtr<grpc_channel_credentials>,
|
50
|
-
grpc_core::StringLess>* g_grpc_control_plane_creds;
|
51
|
-
static gpr_mu g_control_plane_creds_mu;
|
52
|
-
|
53
|
-
static void do_control_plane_creds_init() {
|
54
|
-
gpr_mu_init(&g_control_plane_creds_mu);
|
55
|
-
GPR_ASSERT(g_grpc_control_plane_creds == nullptr);
|
56
|
-
g_grpc_control_plane_creds =
|
57
|
-
new std::map<grpc_core::UniquePtr<char>,
|
58
|
-
grpc_core::RefCountedPtr<grpc_channel_credentials>,
|
59
|
-
grpc_core::StringLess>();
|
60
|
-
}
|
61
|
-
|
62
|
-
void grpc_control_plane_credentials_init() {
|
63
|
-
static gpr_once once_init_control_plane_creds = GPR_ONCE_INIT;
|
64
|
-
gpr_once_init(&once_init_control_plane_creds, do_control_plane_creds_init);
|
65
|
-
}
|
66
|
-
|
67
|
-
void grpc_test_only_control_plane_credentials_destroy() {
|
68
|
-
delete g_grpc_control_plane_creds;
|
69
|
-
g_grpc_control_plane_creds = nullptr;
|
70
|
-
gpr_mu_destroy(&g_control_plane_creds_mu);
|
71
|
-
}
|
72
|
-
|
73
|
-
void grpc_test_only_control_plane_credentials_force_init() {
|
74
|
-
if (g_grpc_control_plane_creds == nullptr) {
|
75
|
-
do_control_plane_creds_init();
|
76
|
-
}
|
77
|
-
}
|
78
|
-
|
79
|
-
bool grpc_channel_credentials_attach_credentials(
|
80
|
-
grpc_channel_credentials* credentials, const char* authority,
|
81
|
-
grpc_channel_credentials* control_plane_creds) {
|
82
|
-
grpc_core::ExecCtx exec_ctx;
|
83
|
-
return credentials->attach_credentials(authority, control_plane_creds->Ref());
|
84
|
-
}
|
85
|
-
|
86
|
-
bool grpc_control_plane_credentials_register(
|
87
|
-
const char* authority, grpc_channel_credentials* control_plane_creds) {
|
88
|
-
grpc_core::ExecCtx exec_ctx;
|
89
|
-
{
|
90
|
-
grpc_core::MutexLock lock(&g_control_plane_creds_mu);
|
91
|
-
auto key = grpc_core::UniquePtr<char>(gpr_strdup(authority));
|
92
|
-
if (g_grpc_control_plane_creds->find(key) !=
|
93
|
-
g_grpc_control_plane_creds->end()) {
|
94
|
-
return false;
|
95
|
-
}
|
96
|
-
(*g_grpc_control_plane_creds)[std::move(key)] = control_plane_creds->Ref();
|
97
|
-
}
|
98
|
-
return true;
|
99
|
-
}
|
100
|
-
|
101
|
-
bool grpc_channel_credentials::attach_credentials(
|
102
|
-
const char* authority,
|
103
|
-
grpc_core::RefCountedPtr<grpc_channel_credentials> control_plane_creds) {
|
104
|
-
auto key = grpc_core::UniquePtr<char>(gpr_strdup(authority));
|
105
|
-
if (local_control_plane_creds_.find(key) !=
|
106
|
-
local_control_plane_creds_.end()) {
|
107
|
-
return false;
|
108
|
-
}
|
109
|
-
local_control_plane_creds_[std::move(key)] = std::move(control_plane_creds);
|
110
|
-
return true;
|
111
|
-
}
|
112
|
-
|
113
|
-
grpc_core::RefCountedPtr<grpc_channel_credentials>
|
114
|
-
grpc_channel_credentials::get_control_plane_credentials(const char* authority) {
|
115
|
-
{
|
116
|
-
auto key = grpc_core::UniquePtr<char>(gpr_strdup(authority));
|
117
|
-
auto local_lookup = local_control_plane_creds_.find(key);
|
118
|
-
if (local_lookup != local_control_plane_creds_.end()) {
|
119
|
-
return local_lookup->second;
|
120
|
-
}
|
121
|
-
{
|
122
|
-
grpc_core::MutexLock lock(&g_control_plane_creds_mu);
|
123
|
-
auto global_lookup = g_grpc_control_plane_creds->find(key);
|
124
|
-
if (global_lookup != g_grpc_control_plane_creds->end()) {
|
125
|
-
return global_lookup->second;
|
126
|
-
}
|
127
|
-
}
|
128
|
-
}
|
129
|
-
return duplicate_without_call_credentials();
|
130
|
-
}
|
131
|
-
|
132
48
|
void grpc_call_credentials_release(grpc_call_credentials* creds) {
|
133
49
|
GRPC_API_TRACE("grpc_call_credentials_release(creds=%p)", 1, (creds));
|
134
50
|
grpc_core::ExecCtx exec_ctx;
|
@@ -21,14 +21,14 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <string.h>
|
25
|
+
|
24
26
|
#include <grpc/grpc.h>
|
25
27
|
#include <grpc/grpc_security.h>
|
26
28
|
#include <grpc/support/sync.h>
|
27
29
|
#include "src/core/lib/transport/metadata_batch.h"
|
28
30
|
|
29
|
-
#include "src/core/lib/gprpp/map.h"
|
30
31
|
#include "src/core/lib/gprpp/ref_counted.h"
|
31
|
-
#include "src/core/lib/gprpp/sync.h"
|
32
32
|
#include "src/core/lib/http/httpcli.h"
|
33
33
|
#include "src/core/lib/http/parser.h"
|
34
34
|
#include "src/core/lib/iomgr/polling_entity.h"
|
@@ -129,29 +129,10 @@ struct grpc_channel_credentials
|
|
129
129
|
return args;
|
130
130
|
}
|
131
131
|
|
132
|
-
// Attaches control_plane_creds to the local registry, under authority,
|
133
|
-
// if no other creds are currently registered under authority. Returns
|
134
|
-
// true if registered successfully and false if not.
|
135
|
-
bool attach_credentials(
|
136
|
-
const char* authority,
|
137
|
-
grpc_core::RefCountedPtr<grpc_channel_credentials> control_plane_creds);
|
138
|
-
|
139
|
-
// Gets the control plane credentials registered under authority. This
|
140
|
-
// prefers the local control plane creds registry but falls back to the
|
141
|
-
// global registry. Lastly, this returns self but with any attached
|
142
|
-
// call credentials stripped off, in the case that neither the local
|
143
|
-
// registry nor the global registry have an entry for authority.
|
144
|
-
grpc_core::RefCountedPtr<grpc_channel_credentials>
|
145
|
-
get_control_plane_credentials(const char* authority);
|
146
|
-
|
147
132
|
const char* type() const { return type_; }
|
148
133
|
|
149
134
|
private:
|
150
135
|
const char* type_;
|
151
|
-
std::map<grpc_core::UniquePtr<char>,
|
152
|
-
grpc_core::RefCountedPtr<grpc_channel_credentials>,
|
153
|
-
grpc_core::StringLess>
|
154
|
-
local_control_plane_creds_;
|
155
136
|
};
|
156
137
|
|
157
138
|
/* Util to encapsulate the channel credentials in a channel arg. */
|
@@ -165,48 +146,12 @@ grpc_channel_credentials* grpc_channel_credentials_from_arg(
|
|
165
146
|
grpc_channel_credentials* grpc_channel_credentials_find_in_args(
|
166
147
|
const grpc_channel_args* args);
|
167
148
|
|
168
|
-
/** EXPERIMENTAL. API MAY CHANGE IN THE FUTURE.
|
169
|
-
Attaches \a control_plane_creds to \a credentials
|
170
|
-
under the key \a authority. Returns false if \a authority
|
171
|
-
is already present, in which case no changes are made.
|
172
|
-
Note that this API is not thread safe. Only one thread may
|
173
|
-
attach control plane creds to a given credentials object at
|
174
|
-
any one time, and new control plane creds must not be
|
175
|
-
attached after \a credentials has been used to create a channel. */
|
176
|
-
bool grpc_channel_credentials_attach_credentials(
|
177
|
-
grpc_channel_credentials* credentials, const char* authority,
|
178
|
-
grpc_channel_credentials* control_plane_creds);
|
179
|
-
|
180
|
-
/** EXPERIMENTAL. API MAY CHANGE IN THE FUTURE.
|
181
|
-
Registers \a control_plane_creds in the global registry
|
182
|
-
under the key \a authority. Returns false if \a authority
|
183
|
-
is already present, in which case no changes are made. */
|
184
|
-
bool grpc_control_plane_credentials_register(
|
185
|
-
const char* authority, grpc_channel_credentials* control_plane_creds);
|
186
|
-
|
187
|
-
/* Initializes global control plane credentials data. */
|
188
|
-
void grpc_control_plane_credentials_init();
|
189
|
-
|
190
|
-
/* Test only: destroy global control plane credentials data.
|
191
|
-
* This API is meant for use by a few tests that need to
|
192
|
-
* satisdy grpc_core::LeakDetector. */
|
193
|
-
void grpc_test_only_control_plane_credentials_destroy();
|
194
|
-
|
195
|
-
/* Test only: force re-initialization of global control
|
196
|
-
* plane credentials data if it was previously destroyed.
|
197
|
-
* This API is meant to be used in
|
198
|
-
* tandem with the
|
199
|
-
* grpc_test_only_control_plane_credentials_destroy, for
|
200
|
-
* the few tests that need it. */
|
201
|
-
void grpc_test_only_control_plane_credentials_force_init();
|
202
|
-
|
203
149
|
/* --- grpc_credentials_mdelem_array. --- */
|
204
150
|
|
205
|
-
|
151
|
+
struct grpc_credentials_mdelem_array {
|
206
152
|
grpc_mdelem* md = nullptr;
|
207
153
|
size_t size = 0;
|
208
|
-
}
|
209
|
-
|
154
|
+
};
|
210
155
|
/// Takes a new ref to \a md.
|
211
156
|
void grpc_credentials_mdelem_array_add(grpc_credentials_mdelem_array* list,
|
212
157
|
grpc_mdelem md);
|
@@ -252,6 +197,10 @@ struct grpc_call_credentials
|
|
252
197
|
return min_security_level_;
|
253
198
|
}
|
254
199
|
|
200
|
+
virtual std::string debug_string() {
|
201
|
+
return "grpc_call_credentials did not provide debug string";
|
202
|
+
}
|
203
|
+
|
255
204
|
const char* type() const { return type_; }
|
256
205
|
|
257
206
|
private:
|