grpc 1.64.3 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +57 -58
- data/include/grpc/event_engine/event_engine.h +13 -6
- data/include/grpc/impl/channel_arg_names.h +7 -3
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/passive_listener.h +62 -0
- data/include/grpc/support/log.h +7 -17
- data/include/grpc/support/port_platform.h +3 -0
- data/src/core/channelz/channel_trace.cc +1 -1
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +3 -3
- data/src/core/channelz/channelz.h +7 -7
- data/src/core/channelz/channelz_registry.cc +4 -3
- data/src/core/client_channel/backup_poller.cc +4 -5
- data/src/core/client_channel/client_channel.cc +1324 -0
- data/src/core/client_channel/client_channel.h +243 -0
- data/src/core/client_channel/client_channel_filter.cc +266 -709
- data/src/core/client_channel/client_channel_filter.h +11 -64
- data/src/core/client_channel/client_channel_internal.h +16 -5
- data/src/core/client_channel/client_channel_plugin.cc +1 -14
- data/src/core/client_channel/client_channel_service_config.h +3 -3
- data/src/core/client_channel/config_selector.cc +1 -1
- data/src/core/client_channel/config_selector.h +1 -1
- data/src/core/client_channel/dynamic_filters.cc +3 -3
- data/src/core/client_channel/dynamic_filters.h +1 -3
- data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
- data/src/core/client_channel/load_balanced_call_destination.h +49 -0
- data/src/core/client_channel/retry_filter.cc +2 -9
- data/src/core/client_channel/retry_filter.h +2 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
- data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
- data/src/core/client_channel/retry_service_config.cc +4 -5
- data/src/core/client_channel/retry_service_config.h +3 -3
- data/src/core/client_channel/subchannel.cc +220 -112
- data/src/core/client_channel/subchannel.h +31 -18
- data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
- data/src/core/client_channel/subchannel_pool_interface.h +2 -4
- data/src/core/client_channel/subchannel_stream_client.cc +36 -49
- data/src/core/client_channel/subchannel_stream_client.h +2 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
- data/src/core/ext/filters/census/grpc_context.cc +2 -4
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
- data/src/core/ext/filters/http/client_authority_filter.h +1 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
- data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
- data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
- data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
- data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
- data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
- data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
- data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
- data/src/core/handshaker/handshaker.cc +6 -14
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
- data/src/core/handshaker/security/secure_endpoint.cc +38 -32
- data/src/core/handshaker/security/secure_endpoint.h +0 -2
- data/src/core/handshaker/security/security_handshaker.cc +25 -37
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
- data/src/core/lib/address_utils/parse_address.cc +27 -39
- data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
- data/src/core/lib/avl/avl.h +1 -1
- data/src/core/lib/channel/channel_args.cc +13 -17
- data/src/core/lib/channel/channel_args.h +19 -8
- data/src/core/lib/channel/channel_stack.cc +5 -63
- data/src/core/lib/channel/channel_stack.h +13 -37
- data/src/core/lib/channel/channel_stack_builder.h +0 -5
- data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
- data/src/core/lib/channel/connected_channel.cc +37 -676
- data/src/core/lib/channel/promise_based_filter.cc +41 -47
- data/src/core/lib/channel/promise_based_filter.h +124 -477
- data/src/core/lib/channel/status_util.cc +1 -1
- data/src/core/lib/compression/compression.cc +1 -1
- data/src/core/lib/compression/message_compress.cc +6 -6
- data/src/core/lib/config/config_vars.cc +3 -8
- data/src/core/lib/config/config_vars.h +1 -5
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/trace.cc +43 -59
- data/src/core/lib/debug/trace.h +2 -97
- data/src/core/lib/debug/trace_flags.cc +255 -0
- data/src/core/lib/debug/trace_flags.h +133 -0
- data/src/core/lib/debug/trace_impl.h +115 -0
- data/src/core/lib/event_engine/ares_resolver.cc +5 -7
- data/src/core/lib/event_engine/ares_resolver.h +1 -3
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
- data/src/core/lib/event_engine/event_engine.cc +29 -4
- data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
- data/src/core/lib/event_engine/forkable.cc +4 -5
- data/src/core/lib/event_engine/forkable.h +0 -11
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
- data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
- data/src/core/lib/event_engine/shim.cc +1 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
- data/src/core/lib/event_engine/thread_local.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
- data/src/core/lib/event_engine/trace.h +6 -17
- data/src/core/lib/event_engine/windows/iocp.h +1 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
- data/src/core/lib/event_engine/windows/win_socket.h +4 -5
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
- data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
- data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
- data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
- data/src/core/lib/experiments/experiments.cc +35 -151
- data/src/core/lib/experiments/experiments.h +12 -45
- data/src/core/lib/gprpp/bitset.h +1 -1
- data/src/core/lib/gprpp/crash.cc +2 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
- data/src/core/lib/gprpp/dump_args.cc +54 -0
- data/src/core/lib/gprpp/dump_args.h +69 -0
- data/src/core/lib/gprpp/glob.cc +70 -0
- data/src/core/lib/gprpp/glob.h +29 -0
- data/src/core/lib/gprpp/per_cpu.cc +1 -1
- data/src/core/lib/gprpp/posix/stat.cc +3 -4
- data/src/core/lib/gprpp/posix/thd.cc +8 -9
- data/src/core/lib/gprpp/ref_counted.h +30 -22
- data/src/core/lib/gprpp/single_set_ptr.h +5 -3
- data/src/core/lib/gprpp/status_helper.cc +11 -30
- data/src/core/lib/gprpp/status_helper.h +3 -31
- data/src/core/lib/gprpp/time.cc +3 -4
- data/src/core/lib/gprpp/time.h +3 -2
- data/src/core/lib/gprpp/unique_type_name.h +1 -1
- data/src/core/lib/gprpp/validation_errors.cc +10 -1
- data/src/core/lib/gprpp/validation_errors.h +11 -0
- data/src/core/lib/gprpp/windows/stat.cc +3 -4
- data/src/core/lib/gprpp/windows/thd.cc +3 -2
- data/src/core/lib/gprpp/work_serializer.cc +48 -57
- data/src/core/lib/iomgr/buffer_list.cc +4 -2
- data/src/core/lib/iomgr/call_combiner.cc +18 -27
- data/src/core/lib/iomgr/call_combiner.h +1 -3
- data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
- data/src/core/lib/iomgr/closure.h +2 -4
- data/src/core/lib/iomgr/combiner.cc +6 -8
- data/src/core/lib/iomgr/combiner.h +0 -2
- data/src/core/lib/iomgr/endpoint.cc +0 -6
- data/src/core/lib/iomgr/endpoint.h +0 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
- data/src/core/lib/iomgr/error.cc +13 -21
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/ev_apple.cc +3 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
- data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
- data/src/core/lib/iomgr/ev_posix.cc +8 -9
- data/src/core/lib/iomgr/ev_posix.h +10 -7
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
- data/src/core/lib/iomgr/exec_ctx.cc +2 -2
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +6 -15
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/fork_posix.cc +8 -10
- data/src/core/lib/iomgr/fork_windows.cc +3 -1
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
- data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
- data/src/core/lib/iomgr/iocp_windows.cc +4 -3
- data/src/core/lib/iomgr/iomgr.cc +13 -17
- data/src/core/lib/iomgr/lockfree_event.cc +3 -5
- data/src/core/lib/iomgr/pollset.h +0 -2
- data/src/core/lib/iomgr/pollset_windows.cc +0 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
- data/src/core/lib/iomgr/socket_windows.cc +4 -6
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
- data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
- data/src/core/lib/iomgr/tcp_posix.cc +57 -84
- data/src/core/lib/iomgr/tcp_posix.h +0 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
- data/src/core/lib/iomgr/tcp_windows.cc +25 -41
- data/src/core/lib/iomgr/timer_generic.cc +17 -20
- data/src/core/lib/iomgr/timer_heap.cc +1 -1
- data/src/core/lib/iomgr/timer_manager.cc +17 -30
- data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
- data/src/core/lib/iomgr/vsock.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
- data/src/core/lib/promise/activity.h +27 -4
- data/src/core/lib/promise/cancel_callback.h +24 -0
- data/src/core/lib/promise/context.h +11 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -2
- data/src/core/lib/promise/detail/join_state.h +354 -398
- data/src/core/lib/promise/detail/promise_like.h +6 -5
- data/src/core/lib/promise/detail/seq_state.h +1178 -1178
- data/src/core/lib/promise/for_each.h +6 -6
- data/src/core/lib/promise/interceptor_list.h +6 -7
- data/src/core/lib/promise/latch.h +9 -9
- data/src/core/lib/promise/map.h +17 -0
- data/src/core/lib/promise/observable.h +182 -0
- data/src/core/lib/promise/party.cc +7 -8
- data/src/core/lib/promise/party.h +10 -8
- data/src/core/lib/promise/pipe.h +16 -35
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/status_flag.h +2 -0
- data/src/core/lib/resource_quota/arena.cc +56 -79
- data/src/core/lib/resource_quota/arena.h +118 -209
- data/src/core/lib/resource_quota/memory_quota.cc +12 -13
- data/src/core/lib/resource_quota/memory_quota.h +2 -3
- data/src/core/lib/resource_quota/periodic_update.cc +1 -1
- data/src/core/lib/resource_quota/resource_quota.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
- data/src/core/lib/security/authorization/matchers.cc +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
- data/src/core/lib/security/context/security_context.cc +12 -13
- data/src/core/lib/security/context/security_context.h +31 -8
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
- data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
- data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
- data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
- data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
- data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
- data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
- data/src/core/lib/security/security_connector/security_connector.cc +1 -4
- data/src/core/lib/security/security_connector/security_connector.h +1 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
- data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice.h +1 -1
- data/src/core/lib/slice/slice_refcount.h +2 -4
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/surface/api_trace.h +1 -3
- data/src/core/lib/surface/call.cc +64 -3738
- data/src/core/lib/surface/call.h +41 -143
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_utils.cc +276 -0
- data/src/core/lib/surface/call_utils.h +449 -0
- data/src/core/lib/surface/channel.cc +8 -3
- data/src/core/lib/surface/channel.h +10 -7
- data/src/core/lib/surface/channel_create.cc +14 -6
- data/src/core/lib/surface/channel_create.h +3 -2
- data/src/core/lib/surface/channel_init.cc +21 -77
- data/src/core/lib/surface/channel_init.h +19 -97
- data/src/core/lib/surface/client_call.cc +419 -0
- data/src/core/lib/surface/client_call.h +180 -0
- data/src/core/lib/surface/completion_queue.cc +28 -33
- data/src/core/lib/surface/completion_queue.h +0 -8
- data/src/core/lib/surface/filter_stack_call.cc +1157 -0
- data/src/core/lib/surface/filter_stack_call.h +369 -0
- data/src/core/lib/surface/init.cc +7 -6
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +40 -27
- data/src/core/lib/surface/legacy_channel.h +9 -18
- data/src/core/lib/surface/server_call.cc +222 -0
- data/src/core/lib/surface/server_call.h +167 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -5
- data/src/core/lib/transport/bdp_estimator.h +2 -4
- data/src/core/lib/transport/call_arena_allocator.h +9 -7
- data/src/core/lib/transport/call_destination.h +76 -0
- data/src/core/lib/transport/call_filters.cc +28 -10
- data/src/core/lib/transport/call_filters.h +128 -22
- data/src/core/lib/transport/call_spine.cc +5 -6
- data/src/core/lib/transport/call_spine.h +159 -334
- data/src/core/lib/transport/connectivity_state.cc +8 -10
- data/src/core/lib/transport/connectivity_state.h +0 -2
- data/src/core/lib/transport/interception_chain.cc +155 -0
- data/src/core/lib/transport/interception_chain.h +236 -0
- data/src/core/lib/transport/metadata_batch.h +10 -1
- data/src/core/lib/transport/metadata_info.h +1 -1
- data/src/core/lib/transport/transport.cc +3 -6
- data/src/core/lib/transport/transport.h +43 -40
- data/src/core/load_balancing/child_policy_handler.cc +8 -8
- data/src/core/load_balancing/endpoint_list.cc +5 -5
- data/src/core/load_balancing/endpoint_list.h +1 -1
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
- data/src/core/load_balancing/health_check_client.cc +10 -13
- data/src/core/load_balancing/lb_policy.cc +5 -8
- data/src/core/load_balancing/lb_policy.h +19 -3
- data/src/core/load_balancing/lb_policy_factory.h +1 -1
- data/src/core/load_balancing/lb_policy_registry.cc +2 -3
- data/src/core/load_balancing/lb_policy_registry.h +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +2 -4
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
- data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
- data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
- data/src/core/load_balancing/priority/priority.cc +26 -28
- data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
- data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
- data/src/core/load_balancing/rls/rls.cc +82 -82
- data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
- data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
- data/src/core/load_balancing/xds/cds.cc +14 -16
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
- data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
- data/src/core/load_balancing/xds/xds_override_host.h +3 -3
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
- data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
- data/src/core/resolver/binder/binder_resolver.cc +3 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
- data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
- data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
- data/src/core/resolver/endpoint_addresses.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.h +1 -1
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
- data/src/core/resolver/polling_resolver.cc +30 -35
- data/src/core/resolver/resolver.cc +2 -6
- data/src/core/resolver/resolver.h +0 -2
- data/src/core/resolver/resolver_registry.cc +6 -8
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
- data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
- data/src/core/resolver/xds/xds_resolver.cc +13 -15
- data/src/core/server/server.cc +269 -389
- data/src/core/server/server.h +37 -19
- data/src/core/server/server_call_tracer_filter.cc +7 -14
- data/src/core/server/server_config_selector.h +1 -1
- data/src/core/server/server_config_selector_filter.cc +3 -3
- data/src/core/server/server_interface.h +2 -0
- data/src/core/server/xds_channel_stack_modifier.cc +1 -1
- data/src/core/server/xds_channel_stack_modifier.h +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +1 -4
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_call_data.h +13 -11
- data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
- data/src/core/service_config/service_config_impl.cc +5 -5
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/service_config/service_config_parser.cc +3 -6
- data/src/core/service_config/service_config_parser.h +1 -1
- data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
- data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
- data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
- data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
- data/src/core/telemetry/metrics.cc +178 -0
- data/src/core/telemetry/metrics.h +562 -0
- data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats.h +5 -5
- data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
- data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
- data/src/core/tsi/fake_transport_security.cc +14 -17
- data/src/core/tsi/local_transport_security.cc +6 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
- data/src/core/tsi/ssl_transport_security.cc +76 -81
- data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
- data/src/core/tsi/ssl_transport_security_utils.h +11 -0
- data/src/core/tsi/transport_security.cc +0 -4
- data/src/core/tsi/transport_security.h +0 -2
- data/src/core/tsi/transport_security_interface.h +0 -4
- data/src/core/{lib/gpr → util}/alloc.h +3 -3
- data/src/core/{lib/gpr → util}/android/log.cc +0 -19
- data/src/core/{lib/gpr → util}/atm.cc +1 -1
- data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
- data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
- data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
- data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
- data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
- data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
- data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
- data/src/core/{lib/http → util/http_client}/parser.h +5 -6
- data/src/core/{lib → util}/json/json.h +5 -4
- data/src/core/{lib → util}/json/json_args.h +5 -5
- data/src/core/{lib → util}/json/json_channel_args.h +6 -6
- data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
- data/src/core/{lib → util}/json/json_object_loader.h +7 -7
- data/src/core/{lib → util}/json/json_reader.cc +3 -2
- data/src/core/{lib → util}/json/json_reader.h +6 -6
- data/src/core/{lib → util}/json/json_util.cc +4 -4
- data/src/core/{lib → util}/json/json_util.h +6 -6
- data/src/core/{lib → util}/json/json_writer.cc +3 -3
- data/src/core/{lib → util}/json/json_writer.h +6 -6
- data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
- data/src/core/util/log.cc +165 -0
- data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
- data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/spinlock.h +3 -3
- data/src/core/{lib/gpr → util}/string.cc +2 -2
- data/src/core/{lib/gpr → util}/string.h +3 -3
- data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
- data/src/core/{lib/gpr → util}/time_precise.h +3 -3
- data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
- data/src/core/{lib/gpr → util}/useful.h +3 -3
- data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
- data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
- data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
- data/src/core/xds/grpc/certificate_provider_store.h +4 -4
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
- data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
- data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
- data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
- data/src/core/xds/grpc/xds_client_grpc.h +2 -2
- data/src/core/xds/grpc/xds_cluster.cc +4 -5
- data/src/core/xds/grpc/xds_cluster.h +1 -1
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
- data/src/core/xds/grpc/xds_common_types.cc +1 -1
- data/src/core/xds/grpc/xds_common_types.h +1 -1
- data/src/core/xds/grpc/xds_endpoint.cc +4 -5
- data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
- data/src/core/xds/grpc/xds_http_filters.h +2 -2
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
- data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
- data/src/core/xds/grpc/xds_listener.cc +4 -6
- data/src/core/xds/grpc/xds_route_config.cc +7 -8
- data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
- data/src/core/xds/xds_client/xds_api.cc +5 -9
- data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
- data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
- data/src/core/xds/xds_client/xds_client.cc +39 -45
- data/src/core/xds/xds_client/xds_client.h +0 -3
- data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
- data/src/core/xds/xds_client/xds_client_stats.h +2 -2
- data/src/ruby/bin/math_pb.rb +1 -22
- data/src/ruby/ext/grpc/rb_call.c +8 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
- data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/ext/grpc/rb_server.c +39 -22
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
- data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
- metadata +103 -93
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
- data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
- data/src/core/handshaker/security/tsi_error.cc +0 -31
- data/src/core/handshaker/security/tsi_error.h +0 -30
- data/src/core/lib/channel/channel_stack_trace.cc +0 -19
- data/src/core/lib/channel/channel_stack_trace.h +0 -24
- data/src/core/lib/channel/context.h +0 -105
- data/src/core/lib/channel/metrics.cc +0 -334
- data/src/core/lib/channel/metrics.h +0 -365
- data/src/core/lib/event_engine/trace.cc +0 -25
- data/src/core/lib/gpr/log.cc +0 -166
- data/src/core/lib/iomgr/ev_windows.cc +0 -30
- data/src/core/lib/promise/trace.cc +0 -20
- data/src/core/lib/promise/trace.h +0 -24
- data/src/core/lib/resource_quota/trace.cc +0 -19
- data/src/core/lib/resource_quota/trace.h +0 -24
- data/src/core/lib/slice/slice_refcount.cc +0 -20
- data/src/core/lib/surface/api_trace.cc +0 -25
- data/src/core/lib/surface/call_trace.h +0 -24
- data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
- data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
- data/src/core/lib/transport/batch_builder.cc +0 -172
- data/src/core/lib/transport/batch_builder.h +0 -474
- data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
- data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
- /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
- /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
- /data/src/core/{lib/gpr → util}/time.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
@@ -42,6 +42,7 @@
|
|
42
42
|
#endif
|
43
43
|
|
44
44
|
#include "absl/log/check.h"
|
45
|
+
#include "absl/log/log.h"
|
45
46
|
#include "absl/status/status.h"
|
46
47
|
#include "absl/status/statusor.h"
|
47
48
|
#include "absl/strings/escaping.h"
|
@@ -50,28 +51,27 @@
|
|
50
51
|
#include <grpc/slice.h>
|
51
52
|
#include <grpc/support/alloc.h>
|
52
53
|
#include <grpc/support/json.h>
|
53
|
-
#include <grpc/support/log.h>
|
54
54
|
#include <grpc/support/string_util.h>
|
55
55
|
#include <grpc/support/time.h>
|
56
56
|
|
57
|
-
#include "src/core/lib/gpr/string.h"
|
58
57
|
#include "src/core/lib/gprpp/manual_constructor.h"
|
59
58
|
#include "src/core/lib/gprpp/memory.h"
|
60
59
|
#include "src/core/lib/gprpp/orphanable.h"
|
61
|
-
#include "src/core/lib/http/httpcli.h"
|
62
|
-
#include "src/core/lib/http/httpcli_ssl_credentials.h"
|
63
|
-
#include "src/core/lib/http/parser.h"
|
64
60
|
#include "src/core/lib/iomgr/closure.h"
|
65
61
|
#include "src/core/lib/iomgr/error.h"
|
66
62
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
67
63
|
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
68
64
|
#include "src/core/lib/iomgr/polling_entity.h"
|
69
|
-
#include "src/core/lib/json/json_reader.h"
|
70
65
|
#include "src/core/lib/security/credentials/credentials.h" // IWYU pragma: keep
|
71
66
|
#include "src/core/lib/slice/slice.h"
|
72
67
|
#include "src/core/lib/slice/slice_internal.h"
|
73
68
|
#include "src/core/lib/uri/uri_parser.h"
|
74
69
|
#include "src/core/tsi/ssl_types.h"
|
70
|
+
#include "src/core/util/http_client/httpcli.h"
|
71
|
+
#include "src/core/util/http_client/httpcli_ssl_credentials.h"
|
72
|
+
#include "src/core/util/http_client/parser.h"
|
73
|
+
#include "src/core/util/json/json_reader.h"
|
74
|
+
#include "src/core/util/string.h"
|
75
75
|
|
76
76
|
using grpc_core::Json;
|
77
77
|
|
@@ -114,13 +114,12 @@ static const EVP_MD* evp_md_from_alg(const char* alg) {
|
|
114
114
|
static Json parse_json_part_from_jwt(const char* str, size_t len) {
|
115
115
|
std::string string;
|
116
116
|
if (!absl::WebSafeBase64Unescape(absl::string_view(str, len), &string)) {
|
117
|
-
|
117
|
+
LOG(ERROR) << "Invalid base64.";
|
118
118
|
return Json(); // JSON null
|
119
119
|
}
|
120
120
|
auto json = grpc_core::JsonParse(string);
|
121
121
|
if (!json.ok()) {
|
122
|
-
|
123
|
-
json.status().ToString().c_str());
|
122
|
+
LOG(ERROR) << "JSON parse error: " << json.status();
|
124
123
|
return Json(); // JSON null
|
125
124
|
}
|
126
125
|
return std::move(*json);
|
@@ -128,7 +127,7 @@ static Json parse_json_part_from_jwt(const char* str, size_t len) {
|
|
128
127
|
|
129
128
|
static const char* validate_string_field(const Json& json, const char* key) {
|
130
129
|
if (json.type() != Json::Type::kString) {
|
131
|
-
|
130
|
+
LOG(ERROR) << "Invalid " << key << " field";
|
132
131
|
return nullptr;
|
133
132
|
}
|
134
133
|
return json.string().c_str();
|
@@ -137,7 +136,7 @@ static const char* validate_string_field(const Json& json, const char* key) {
|
|
137
136
|
static gpr_timespec validate_time_field(const Json& json, const char* key) {
|
138
137
|
gpr_timespec result = gpr_time_0(GPR_CLOCK_REALTIME);
|
139
138
|
if (json.type() != Json::Type::kNumber) {
|
140
|
-
|
139
|
+
LOG(ERROR) << "Invalid " << key << " field";
|
141
140
|
return result;
|
142
141
|
}
|
143
142
|
result.tv_sec = strtol(json.string().c_str(), nullptr, 10);
|
@@ -163,13 +162,13 @@ static jose_header* jose_header_from_json(Json json) {
|
|
163
162
|
Json::Object::const_iterator it;
|
164
163
|
jose_header* h = grpc_core::Zalloc<jose_header>();
|
165
164
|
if (json.type() != Json::Type::kObject) {
|
166
|
-
|
165
|
+
LOG(ERROR) << "JSON value is not an object";
|
167
166
|
goto error;
|
168
167
|
}
|
169
168
|
// Check alg field.
|
170
169
|
it = json.object().find("alg");
|
171
170
|
if (it == json.object().end()) {
|
172
|
-
|
171
|
+
LOG(ERROR) << "Missing alg field.";
|
173
172
|
goto error;
|
174
173
|
}
|
175
174
|
// We only support RSA-1.5 signatures for now.
|
@@ -180,7 +179,7 @@ static jose_header* jose_header_from_json(Json json) {
|
|
180
179
|
if (it->second.type() != Json::Type::kString ||
|
181
180
|
strncmp(alg_value, "RS", 2) != 0 ||
|
182
181
|
evp_md_from_alg(alg_value) == nullptr) {
|
183
|
-
|
182
|
+
LOG(ERROR) << "Invalid alg field";
|
184
183
|
goto error;
|
185
184
|
}
|
186
185
|
h->alg = alg_value;
|
@@ -319,13 +318,13 @@ grpc_jwt_verifier_status grpc_jwt_claims_check(const grpc_jwt_claims* claims,
|
|
319
318
|
skewed_now =
|
320
319
|
gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), grpc_jwt_verifier_clock_skew);
|
321
320
|
if (gpr_time_cmp(skewed_now, claims->nbf) < 0) {
|
322
|
-
|
321
|
+
LOG(ERROR) << "JWT is not valid yet.";
|
323
322
|
return GRPC_JWT_VERIFIER_TIME_CONSTRAINT_FAILURE;
|
324
323
|
}
|
325
324
|
skewed_now =
|
326
325
|
gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), grpc_jwt_verifier_clock_skew);
|
327
326
|
if (gpr_time_cmp(skewed_now, claims->exp) > 0) {
|
328
|
-
|
327
|
+
LOG(ERROR) << "JWT is expired.";
|
329
328
|
return GRPC_JWT_VERIFIER_TIME_CONSTRAINT_FAILURE;
|
330
329
|
}
|
331
330
|
|
@@ -334,9 +333,9 @@ grpc_jwt_verifier_status grpc_jwt_claims_check(const grpc_jwt_claims* claims,
|
|
334
333
|
// issued.
|
335
334
|
if (grpc_jwt_issuer_email_domain(claims->iss) != nullptr &&
|
336
335
|
claims->sub != nullptr && strcmp(claims->iss, claims->sub) != 0) {
|
337
|
-
|
338
|
-
|
339
|
-
|
336
|
+
LOG(ERROR) << "Email issuer (" << claims->iss
|
337
|
+
<< ") cannot assert another subject (" << claims->sub
|
338
|
+
<< ") than itself.";
|
340
339
|
return GRPC_JWT_VERIFIER_BAD_SUBJECT;
|
341
340
|
}
|
342
341
|
|
@@ -346,9 +345,9 @@ grpc_jwt_verifier_status grpc_jwt_claims_check(const grpc_jwt_claims* claims,
|
|
346
345
|
audience_ok = claims->aud != nullptr && strcmp(audience, claims->aud) == 0;
|
347
346
|
}
|
348
347
|
if (!audience_ok) {
|
349
|
-
|
350
|
-
|
351
|
-
|
348
|
+
LOG(ERROR) << "Audience mismatch: expected "
|
349
|
+
<< (audience == nullptr ? "NULL" : audience) << " and found "
|
350
|
+
<< (claims->aud == nullptr ? "NULL" : claims->aud);
|
352
351
|
return GRPC_JWT_VERIFIER_BAD_AUDIENCE;
|
353
352
|
}
|
354
353
|
return GRPC_JWT_VERIFIER_OK;
|
@@ -430,18 +429,17 @@ struct grpc_jwt_verifier {
|
|
430
429
|
|
431
430
|
static Json json_from_http(const grpc_http_response* response) {
|
432
431
|
if (response == nullptr) {
|
433
|
-
|
432
|
+
LOG(ERROR) << "HTTP response is NULL.";
|
434
433
|
return Json(); // JSON null
|
435
434
|
}
|
436
435
|
if (response->status != 200) {
|
437
|
-
|
438
|
-
response->status);
|
436
|
+
LOG(ERROR) << "Call to http server failed with error " << response->status;
|
439
437
|
return Json(); // JSON null
|
440
438
|
}
|
441
439
|
auto json = grpc_core::JsonParse(
|
442
440
|
absl::string_view(response->body, response->body_length));
|
443
441
|
if (!json.ok()) {
|
444
|
-
|
442
|
+
LOG(ERROR) << "Invalid JSON found in response.";
|
445
443
|
return Json(); // JSON null
|
446
444
|
}
|
447
445
|
return std::move(*json);
|
@@ -464,12 +462,12 @@ static EVP_PKEY* extract_pkey_from_x509(const char* x509_str) {
|
|
464
462
|
BIO_write(bio, x509_str, static_cast<int>(len));
|
465
463
|
x509 = PEM_read_bio_X509(bio, nullptr, nullptr, nullptr);
|
466
464
|
if (x509 == nullptr) {
|
467
|
-
|
465
|
+
LOG(ERROR) << "Unable to parse x509 cert.";
|
468
466
|
goto end;
|
469
467
|
}
|
470
468
|
result = X509_get_pubkey(x509);
|
471
469
|
if (result == nullptr) {
|
472
|
-
|
470
|
+
LOG(ERROR) << "Cannot find public key in X509 cert.";
|
473
471
|
}
|
474
472
|
|
475
473
|
end:
|
@@ -482,7 +480,7 @@ static BIGNUM* bignum_from_base64(const char* b64) {
|
|
482
480
|
if (b64 == nullptr) return nullptr;
|
483
481
|
std::string string;
|
484
482
|
if (!absl::WebSafeBase64Unescape(b64, &string)) {
|
485
|
-
|
483
|
+
LOG(ERROR) << "Invalid base64 for big num.";
|
486
484
|
return nullptr;
|
487
485
|
}
|
488
486
|
return BN_bin2bn(reinterpret_cast<const uint8_t*>(string.data()),
|
@@ -534,33 +532,33 @@ static EVP_PKEY* pkey_from_jwk(const Json& json, const char* kty) {
|
|
534
532
|
CHECK(json.type() == Json::Type::kObject);
|
535
533
|
CHECK_NE(kty, nullptr);
|
536
534
|
if (strcmp(kty, "RSA") != 0) {
|
537
|
-
|
535
|
+
LOG(ERROR) << "Unsupported key type " << kty;
|
538
536
|
goto end;
|
539
537
|
}
|
540
538
|
#if OPENSSL_VERSION_NUMBER < 0x30000000L
|
541
539
|
rsa = RSA_new();
|
542
540
|
if (rsa == nullptr) {
|
543
|
-
|
541
|
+
LOG(ERROR) << "Could not create rsa key.";
|
544
542
|
goto end;
|
545
543
|
}
|
546
544
|
#endif
|
547
545
|
it = json.object().find("n");
|
548
546
|
if (it == json.object().end()) {
|
549
|
-
|
547
|
+
LOG(ERROR) << "Missing RSA public key field.";
|
550
548
|
goto end;
|
551
549
|
}
|
552
550
|
tmp_n = bignum_from_base64(validate_string_field(it->second, "n"));
|
553
551
|
if (tmp_n == nullptr) goto end;
|
554
552
|
it = json.object().find("e");
|
555
553
|
if (it == json.object().end()) {
|
556
|
-
|
554
|
+
LOG(ERROR) << "Missing RSA public key field.";
|
557
555
|
goto end;
|
558
556
|
}
|
559
557
|
tmp_e = bignum_from_base64(validate_string_field(it->second, "e"));
|
560
558
|
if (tmp_e == nullptr) goto end;
|
561
559
|
#if OPENSSL_VERSION_NUMBER < 0x30000000L
|
562
560
|
if (!RSA_set0_key(rsa, tmp_n, tmp_e, nullptr)) {
|
563
|
-
|
561
|
+
LOG(ERROR) << "Cannot set RSA key from inputs.";
|
564
562
|
goto end;
|
565
563
|
}
|
566
564
|
// RSA_set0_key takes ownership on success.
|
@@ -573,21 +571,21 @@ static EVP_PKEY* pkey_from_jwk(const Json& json, const char* kty) {
|
|
573
571
|
if (!OSSL_PARAM_BLD_push_BN(bld, "n", tmp_n) ||
|
574
572
|
!OSSL_PARAM_BLD_push_BN(bld, "e", tmp_e) ||
|
575
573
|
(params = OSSL_PARAM_BLD_to_param(bld)) == NULL) {
|
576
|
-
|
574
|
+
LOG(ERROR) << "Could not create OSSL_PARAM";
|
577
575
|
goto end;
|
578
576
|
}
|
579
577
|
|
580
578
|
ctx = EVP_PKEY_CTX_new_from_name(nullptr, "RSA", nullptr);
|
581
579
|
if (ctx == nullptr) {
|
582
|
-
|
580
|
+
LOG(ERROR) << "Could not create rsa key.";
|
583
581
|
goto end;
|
584
582
|
}
|
585
583
|
if (EVP_PKEY_fromdata_init(ctx) <= 0) {
|
586
|
-
|
584
|
+
LOG(ERROR) << "Could not create rsa key.";
|
587
585
|
goto end;
|
588
586
|
}
|
589
587
|
if (EVP_PKEY_fromdata(ctx, &result, EVP_PKEY_KEYPAIR, params) <= 0) {
|
590
|
-
|
588
|
+
LOG(ERROR) << "Cannot set RSA key from inputs.";
|
591
589
|
goto end;
|
592
590
|
}
|
593
591
|
#endif
|
@@ -618,8 +616,7 @@ static EVP_PKEY* find_verification_key(const Json& json, const char* header_alg,
|
|
618
616
|
return extract_pkey_from_x509(cur->string().c_str());
|
619
617
|
}
|
620
618
|
if (jwt_keys->type() != Json::Type::kArray) {
|
621
|
-
|
622
|
-
"Unexpected value type of keys property in jwks key set.");
|
619
|
+
LOG(ERROR) << "Unexpected value type of keys property in jwks key set.";
|
623
620
|
return nullptr;
|
624
621
|
}
|
625
622
|
// Key format is specified in:
|
@@ -646,9 +643,8 @@ static EVP_PKEY* find_verification_key(const Json& json, const char* header_alg,
|
|
646
643
|
return pkey_from_jwk(jkey, kty);
|
647
644
|
}
|
648
645
|
}
|
649
|
-
|
650
|
-
|
651
|
-
header_kid, header_alg);
|
646
|
+
LOG(ERROR) << "Could not find matching key in key set for kid=" << header_kid
|
647
|
+
<< " and alg=" << header_alg;
|
652
648
|
return nullptr;
|
653
649
|
}
|
654
650
|
|
@@ -661,21 +657,21 @@ static int verify_jwt_signature(EVP_PKEY* key, const char* alg,
|
|
661
657
|
|
662
658
|
CHECK_NE(md, nullptr); // Checked before.
|
663
659
|
if (md_ctx == nullptr) {
|
664
|
-
|
660
|
+
LOG(ERROR) << "Could not create EVP_MD_CTX.";
|
665
661
|
goto end;
|
666
662
|
}
|
667
663
|
if (EVP_DigestVerifyInit(md_ctx, nullptr, md, nullptr, key) != 1) {
|
668
|
-
|
664
|
+
LOG(ERROR) << "EVP_DigestVerifyInit failed.";
|
669
665
|
goto end;
|
670
666
|
}
|
671
667
|
if (EVP_DigestVerifyUpdate(md_ctx, GRPC_SLICE_START_PTR(signed_data),
|
672
668
|
GRPC_SLICE_LENGTH(signed_data)) != 1) {
|
673
|
-
|
669
|
+
LOG(ERROR) << "EVP_DigestVerifyUpdate failed.";
|
674
670
|
goto end;
|
675
671
|
}
|
676
672
|
if (EVP_DigestVerifyFinal(md_ctx, GRPC_SLICE_START_PTR(signature),
|
677
673
|
GRPC_SLICE_LENGTH(signature)) != 1) {
|
678
|
-
|
674
|
+
LOG(ERROR) << "JWT signature verification failed.";
|
679
675
|
|
680
676
|
goto end;
|
681
677
|
}
|
@@ -700,8 +696,8 @@ static void on_keys_retrieved(void* user_data, grpc_error_handle /*error*/) {
|
|
700
696
|
verification_key =
|
701
697
|
find_verification_key(json, ctx->header->alg, ctx->header->kid);
|
702
698
|
if (verification_key == nullptr) {
|
703
|
-
|
704
|
-
|
699
|
+
LOG(ERROR) << "Could not find verification key with kid "
|
700
|
+
<< ctx->header->kid;
|
705
701
|
status = GRPC_JWT_VERIFIER_KEY_RETRIEVAL_ERROR;
|
706
702
|
goto end;
|
707
703
|
}
|
@@ -742,13 +738,13 @@ static void on_openid_config_retrieved(void* user_data,
|
|
742
738
|
if (json.type() == Json::Type::kNull) goto error;
|
743
739
|
cur = find_property_by_name(json, "jwks_uri");
|
744
740
|
if (cur == nullptr) {
|
745
|
-
|
741
|
+
LOG(ERROR) << "Could not find jwks_uri in openid config.";
|
746
742
|
goto error;
|
747
743
|
}
|
748
744
|
jwks_uri = validate_string_field(*cur, "jwks_uri");
|
749
745
|
if (jwks_uri == nullptr) goto error;
|
750
746
|
if (strstr(jwks_uri, "https://") != jwks_uri) {
|
751
|
-
|
747
|
+
LOG(ERROR) << "Invalid non https jwks_uri: " << jwks_uri;
|
752
748
|
goto error;
|
753
749
|
}
|
754
750
|
jwks_uri += 8;
|
@@ -843,11 +839,11 @@ static void retrieve_key_and_verify(verifier_cb_ctx* ctx) {
|
|
843
839
|
CHECK(ctx != nullptr && ctx->header != nullptr && ctx->claims != nullptr);
|
844
840
|
iss = ctx->claims->iss;
|
845
841
|
if (ctx->header->kid == nullptr) {
|
846
|
-
|
842
|
+
LOG(ERROR) << "Missing kid in jose header.";
|
847
843
|
goto error;
|
848
844
|
}
|
849
845
|
if (iss == nullptr) {
|
850
|
-
|
846
|
+
LOG(ERROR) << "Missing iss in claims.";
|
851
847
|
goto error;
|
852
848
|
}
|
853
849
|
|
@@ -862,7 +858,7 @@ static void retrieve_key_and_verify(verifier_cb_ctx* ctx) {
|
|
862
858
|
CHECK_NE(ctx->verifier, nullptr);
|
863
859
|
mapping = verifier_get_mapping(ctx->verifier, email_domain);
|
864
860
|
if (mapping == nullptr) {
|
865
|
-
|
861
|
+
LOG(ERROR) << "Missing mapping for issuer email.";
|
866
862
|
goto error;
|
867
863
|
}
|
868
864
|
host = gpr_strdup(mapping->key_url_prefix);
|
@@ -26,11 +26,11 @@
|
|
26
26
|
#include <grpc/support/port_platform.h>
|
27
27
|
|
28
28
|
#include "src/core/lib/channel/channel_args.h"
|
29
|
-
#include "src/core/lib/gpr/useful.h"
|
30
29
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
31
30
|
#include "src/core/lib/gprpp/unique_type_name.h"
|
32
31
|
#include "src/core/lib/security/credentials/credentials.h"
|
33
32
|
#include "src/core/lib/security/security_connector/security_connector.h"
|
33
|
+
#include "src/core/util/useful.h"
|
34
34
|
|
35
35
|
// Main class for grpc local channel credential.
|
36
36
|
class grpc_local_credentials final : public grpc_channel_credentials {
|
@@ -28,6 +28,7 @@
|
|
28
28
|
#include <vector>
|
29
29
|
|
30
30
|
#include "absl/log/check.h"
|
31
|
+
#include "absl/log/log.h"
|
31
32
|
#include "absl/status/status.h"
|
32
33
|
#include "absl/strings/str_cat.h"
|
33
34
|
#include "absl/strings/str_format.h"
|
@@ -50,11 +51,8 @@
|
|
50
51
|
#include "src/core/lib/gprpp/memory.h"
|
51
52
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
52
53
|
#include "src/core/lib/gprpp/status_helper.h"
|
53
|
-
#include "src/core/lib/http/httpcli_ssl_credentials.h"
|
54
54
|
#include "src/core/lib/iomgr/error.h"
|
55
55
|
#include "src/core/lib/iomgr/pollset_set.h"
|
56
|
-
#include "src/core/lib/json/json.h"
|
57
|
-
#include "src/core/lib/json/json_reader.h"
|
58
56
|
#include "src/core/lib/promise/context.h"
|
59
57
|
#include "src/core/lib/promise/poll.h"
|
60
58
|
#include "src/core/lib/promise/promise.h"
|
@@ -63,6 +61,9 @@
|
|
63
61
|
#include "src/core/lib/transport/error_utils.h"
|
64
62
|
#include "src/core/lib/transport/metadata_batch.h"
|
65
63
|
#include "src/core/lib/uri/uri_parser.h"
|
64
|
+
#include "src/core/util/http_client/httpcli_ssl_credentials.h"
|
65
|
+
#include "src/core/util/json/json.h"
|
66
|
+
#include "src/core/util/json/json_reader.h"
|
66
67
|
|
67
68
|
using grpc_core::Json;
|
68
69
|
|
@@ -86,7 +87,7 @@ grpc_auth_refresh_token grpc_auth_refresh_token_create_from_json(
|
|
86
87
|
memset(&result, 0, sizeof(grpc_auth_refresh_token));
|
87
88
|
result.type = GRPC_AUTH_JSON_TYPE_INVALID;
|
88
89
|
if (json.type() != Json::Type::kObject) {
|
89
|
-
|
90
|
+
LOG(ERROR) << "Invalid json.";
|
90
91
|
goto end;
|
91
92
|
}
|
92
93
|
|
@@ -161,7 +162,7 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
|
|
161
162
|
grpc_credentials_status status = GRPC_CREDENTIALS_OK;
|
162
163
|
|
163
164
|
if (response == nullptr) {
|
164
|
-
|
165
|
+
LOG(ERROR) << "Received NULL response.";
|
165
166
|
status = GRPC_CREDENTIALS_ERROR;
|
166
167
|
goto end;
|
167
168
|
}
|
@@ -193,14 +194,14 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
|
|
193
194
|
goto end;
|
194
195
|
}
|
195
196
|
if (json->type() != Json::Type::kObject) {
|
196
|
-
|
197
|
+
LOG(ERROR) << "Response should be a JSON object";
|
197
198
|
status = GRPC_CREDENTIALS_ERROR;
|
198
199
|
goto end;
|
199
200
|
}
|
200
201
|
it = json->object().find("access_token");
|
201
202
|
if (it == json->object().end() ||
|
202
203
|
it->second.type() != Json::Type::kString) {
|
203
|
-
|
204
|
+
LOG(ERROR) << "Missing or invalid access_token in JSON.";
|
204
205
|
status = GRPC_CREDENTIALS_ERROR;
|
205
206
|
goto end;
|
206
207
|
}
|
@@ -208,7 +209,7 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
|
|
208
209
|
it = json->object().find("token_type");
|
209
210
|
if (it == json->object().end() ||
|
210
211
|
it->second.type() != Json::Type::kString) {
|
211
|
-
|
212
|
+
LOG(ERROR) << "Missing or invalid token_type in JSON.";
|
212
213
|
status = GRPC_CREDENTIALS_ERROR;
|
213
214
|
goto end;
|
214
215
|
}
|
@@ -216,7 +217,7 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
|
|
216
217
|
it = json->object().find("expires_in");
|
217
218
|
if (it == json->object().end() ||
|
218
219
|
it->second.type() != Json::Type::kNumber) {
|
219
|
-
|
220
|
+
LOG(ERROR) << "Missing or invalid expires_in in JSON.";
|
220
221
|
status = GRPC_CREDENTIALS_ERROR;
|
221
222
|
goto end;
|
222
223
|
}
|
@@ -479,7 +480,7 @@ grpc_core::RefCountedPtr<grpc_call_credentials>
|
|
479
480
|
grpc_refresh_token_credentials_create_from_auth_refresh_token(
|
480
481
|
grpc_auth_refresh_token refresh_token) {
|
481
482
|
if (!grpc_auth_refresh_token_is_valid(&refresh_token)) {
|
482
|
-
|
483
|
+
LOG(ERROR) << "Invalid input for refresh token credentials creation";
|
483
484
|
return nullptr;
|
484
485
|
}
|
485
486
|
return grpc_core::MakeRefCounted<grpc_google_refresh_token_credentials>(
|
@@ -512,7 +513,7 @@ grpc_call_credentials* grpc_google_refresh_token_credentials_create(
|
|
512
513
|
const char* json_refresh_token, void* reserved) {
|
513
514
|
grpc_auth_refresh_token token =
|
514
515
|
grpc_auth_refresh_token_create_from_string(json_refresh_token);
|
515
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
516
|
+
if (GRPC_TRACE_FLAG_ENABLED(api)) {
|
516
517
|
gpr_log(GPR_INFO,
|
517
518
|
"grpc_refresh_token_credentials_create(json_refresh_token=%s, "
|
518
519
|
"reserved=%p)",
|
@@ -32,24 +32,24 @@
|
|
32
32
|
#include <grpc/support/sync.h>
|
33
33
|
#include <grpc/support/time.h>
|
34
34
|
|
35
|
-
#include "src/core/lib/gpr/useful.h"
|
36
35
|
#include "src/core/lib/gprpp/orphanable.h"
|
37
36
|
#include "src/core/lib/gprpp/ref_counted.h"
|
38
37
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
39
38
|
#include "src/core/lib/gprpp/time.h"
|
40
39
|
#include "src/core/lib/gprpp/unique_type_name.h"
|
41
|
-
#include "src/core/lib/http/httpcli.h"
|
42
|
-
#include "src/core/lib/http/parser.h"
|
43
40
|
#include "src/core/lib/iomgr/closure.h"
|
44
41
|
#include "src/core/lib/iomgr/error.h"
|
45
42
|
#include "src/core/lib/iomgr/polling_entity.h"
|
46
|
-
#include "src/core/lib/json/json.h"
|
47
43
|
#include "src/core/lib/promise/activity.h"
|
48
44
|
#include "src/core/lib/promise/arena_promise.h"
|
49
45
|
#include "src/core/lib/security/credentials/credentials.h"
|
50
46
|
#include "src/core/lib/slice/slice.h"
|
51
47
|
#include "src/core/lib/transport/transport.h"
|
52
48
|
#include "src/core/lib/uri/uri_parser.h"
|
49
|
+
#include "src/core/util/http_client/httpcli.h"
|
50
|
+
#include "src/core/util/http_client/parser.h"
|
51
|
+
#include "src/core/util/json/json.h"
|
52
|
+
#include "src/core/util/useful.h"
|
53
53
|
|
54
54
|
// Constants.
|
55
55
|
#define GRPC_STS_POST_MINIMAL_BODY_FORMAT_STRING \
|
@@ -22,6 +22,7 @@
|
|
22
22
|
#include <memory>
|
23
23
|
|
24
24
|
#include "absl/log/check.h"
|
25
|
+
#include "absl/log/log.h"
|
25
26
|
#include "absl/status/status.h"
|
26
27
|
#include "absl/strings/str_cat.h"
|
27
28
|
#include "absl/strings/string_view.h"
|
@@ -39,8 +40,6 @@
|
|
39
40
|
#include "src/core/lib/surface/validate_metadata.h"
|
40
41
|
#include "src/core/lib/transport/metadata_batch.h"
|
41
42
|
|
42
|
-
grpc_core::TraceFlag grpc_plugin_credentials_trace(false, "plugin_credentials");
|
43
|
-
|
44
43
|
grpc_plugin_credentials::~grpc_plugin_credentials() {
|
45
44
|
if (plugin_.state != nullptr && plugin_.destroy != nullptr) {
|
46
45
|
plugin_.destroy(plugin_.state);
|
@@ -83,7 +82,7 @@ grpc_plugin_credentials::PendingRequest::ProcessPluginResult(
|
|
83
82
|
!GRPC_LOG_IF_ERROR(
|
84
83
|
"validate_metadata_from_plugin",
|
85
84
|
grpc_validate_header_nonbin_value_is_legal(md[i].value))) {
|
86
|
-
|
85
|
+
LOG(ERROR) << "Plugin added invalid metadata value.";
|
87
86
|
seen_illegal_header = true;
|
88
87
|
break;
|
89
88
|
}
|
@@ -124,7 +123,7 @@ void grpc_plugin_credentials::PendingRequest::RequestMetadataReady(
|
|
124
123
|
GRPC_EXEC_CTX_FLAG_THREAD_RESOURCE_LOOP);
|
125
124
|
grpc_core::RefCountedPtr<grpc_plugin_credentials::PendingRequest> r(
|
126
125
|
static_cast<grpc_plugin_credentials::PendingRequest*>(request));
|
127
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
126
|
+
if (GRPC_TRACE_FLAG_ENABLED(plugin_credentials)) {
|
128
127
|
gpr_log(GPR_INFO,
|
129
128
|
"plugin_credentials[%p]: request %p: plugin returned "
|
130
129
|
"asynchronously",
|
@@ -155,7 +154,7 @@ grpc_plugin_credentials::GetRequestMetadata(
|
|
155
154
|
RefAsSubclass<grpc_plugin_credentials>(), std::move(initial_metadata),
|
156
155
|
args);
|
157
156
|
// Invoke the plugin. The callback holds a ref to us.
|
158
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
157
|
+
if (GRPC_TRACE_FLAG_ENABLED(plugin_credentials)) {
|
159
158
|
gpr_log(GPR_INFO, "plugin_credentials[%p]: request %p: invoking plugin",
|
160
159
|
this, request.get());
|
161
160
|
}
|
@@ -173,7 +172,7 @@ grpc_plugin_credentials::GetRequestMetadata(
|
|
173
172
|
child_request.get(), creds_md, &num_creds_md,
|
174
173
|
&status, &error_details)) {
|
175
174
|
child_request.release();
|
176
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
175
|
+
if (GRPC_TRACE_FLAG_ENABLED(plugin_credentials)) {
|
177
176
|
gpr_log(GPR_INFO,
|
178
177
|
"plugin_credentials[%p]: request %p: plugin will return "
|
179
178
|
"asynchronously",
|
@@ -182,7 +181,7 @@ grpc_plugin_credentials::GetRequestMetadata(
|
|
182
181
|
return [request] { return request->PollAsyncResult(); };
|
183
182
|
}
|
184
183
|
// Synchronous return.
|
185
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
184
|
+
if (GRPC_TRACE_FLAG_ENABLED(plugin_credentials)) {
|
186
185
|
gpr_log(GPR_INFO,
|
187
186
|
"plugin_credentials[%p]: request %p: plugin returned "
|
188
187
|
"synchronously",
|
@@ -36,7 +36,6 @@
|
|
36
36
|
#include <grpc/support/port_platform.h>
|
37
37
|
|
38
38
|
#include "src/core/lib/debug/trace.h"
|
39
|
-
#include "src/core/lib/gpr/useful.h"
|
40
39
|
#include "src/core/lib/gprpp/ref_counted.h"
|
41
40
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
42
41
|
#include "src/core/lib/gprpp/unique_type_name.h"
|
@@ -47,8 +46,7 @@
|
|
47
46
|
#include "src/core/lib/security/credentials/credentials.h"
|
48
47
|
#include "src/core/lib/slice/slice.h"
|
49
48
|
#include "src/core/lib/transport/transport.h"
|
50
|
-
|
51
|
-
extern grpc_core::TraceFlag grpc_plugin_credentials_trace;
|
49
|
+
#include "src/core/util/useful.h"
|
52
50
|
|
53
51
|
// This type is forward declared as a C struct and we cannot define it as a
|
54
52
|
// class. Otherwise, compiler will complain about type mismatch due to
|