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
@@ -18,12 +18,19 @@
|
|
18
18
|
|
19
19
|
#include "src/core/tsi/ssl_transport_security_utils.h"
|
20
20
|
|
21
|
+
#include <openssl/bio.h>
|
21
22
|
#include <openssl/crypto.h>
|
23
|
+
#include <openssl/ec.h>
|
22
24
|
#include <openssl/err.h>
|
25
|
+
#include <openssl/evp.h>
|
26
|
+
#include <openssl/pem.h>
|
27
|
+
#include <openssl/rsa.h>
|
23
28
|
#include <openssl/ssl.h>
|
29
|
+
#include <openssl/x509.h>
|
24
30
|
#include <openssl/x509v3.h>
|
25
31
|
|
26
32
|
#include "absl/log/check.h"
|
33
|
+
#include "absl/log/log.h"
|
27
34
|
#include "absl/status/status.h"
|
28
35
|
#include "absl/status/statusor.h"
|
29
36
|
|
@@ -63,7 +70,7 @@ void LogSslErrorStack(void) {
|
|
63
70
|
while ((err = ERR_get_error()) != 0) {
|
64
71
|
char details[256];
|
65
72
|
ERR_error_string_n(static_cast<uint32_t>(err), details, sizeof(details));
|
66
|
-
|
73
|
+
LOG(ERROR) << details;
|
67
74
|
}
|
68
75
|
}
|
69
76
|
|
@@ -76,12 +83,12 @@ tsi_result DoSslWrite(SSL* ssl, unsigned char* unprotected_bytes,
|
|
76
83
|
if (ssl_write_result < 0) {
|
77
84
|
ssl_write_result = SSL_get_error(ssl, ssl_write_result);
|
78
85
|
if (ssl_write_result == SSL_ERROR_WANT_READ) {
|
79
|
-
|
80
|
-
|
86
|
+
LOG(ERROR)
|
87
|
+
<< "Peer tried to renegotiate SSL connection. This is unsupported.";
|
81
88
|
return TSI_UNIMPLEMENTED;
|
82
89
|
} else {
|
83
|
-
|
84
|
-
|
90
|
+
LOG(ERROR) << "SSL_write failed with error "
|
91
|
+
<< SslErrorString(ssl_write_result);
|
85
92
|
return TSI_INTERNAL_ERROR;
|
86
93
|
}
|
87
94
|
}
|
@@ -107,12 +114,12 @@ tsi_result DoSslRead(SSL* ssl, unsigned char* unprotected_bytes,
|
|
107
114
|
"Peer tried to renegotiate SSL connection. This is unsupported.");
|
108
115
|
return TSI_UNIMPLEMENTED;
|
109
116
|
case SSL_ERROR_SSL:
|
110
|
-
|
117
|
+
LOG(ERROR) << "Corruption detected.";
|
111
118
|
LogSslErrorStack();
|
112
119
|
return TSI_DATA_CORRUPTED;
|
113
120
|
default:
|
114
|
-
|
115
|
-
|
121
|
+
LOG(ERROR) << "SSL_read failed with error "
|
122
|
+
<< SslErrorString(read_from_ssl);
|
116
123
|
return TSI_PROTOCOL_FAILURE;
|
117
124
|
}
|
118
125
|
}
|
@@ -139,8 +146,7 @@ tsi_result SslProtectorProtect(const unsigned char* unprotected_bytes,
|
|
139
146
|
read_from_ssl = BIO_read(network_io, protected_output_frames,
|
140
147
|
static_cast<int>(*protected_output_frames_size));
|
141
148
|
if (read_from_ssl < 0) {
|
142
|
-
|
143
|
-
"Could not read from BIO even though some data is pending");
|
149
|
+
LOG(ERROR) << "Could not read from BIO even though some data is pending";
|
144
150
|
return TSI_INTERNAL_ERROR;
|
145
151
|
}
|
146
152
|
*protected_output_frames_size = static_cast<size_t>(read_from_ssl);
|
@@ -166,7 +172,7 @@ tsi_result SslProtectorProtect(const unsigned char* unprotected_bytes,
|
|
166
172
|
read_from_ssl = BIO_read(network_io, protected_output_frames,
|
167
173
|
static_cast<int>(*protected_output_frames_size));
|
168
174
|
if (read_from_ssl < 0) {
|
169
|
-
|
175
|
+
LOG(ERROR) << "Could not read from BIO after SSL_write.";
|
170
176
|
return TSI_INTERNAL_ERROR;
|
171
177
|
}
|
172
178
|
*protected_output_frames_size = static_cast<size_t>(read_from_ssl);
|
@@ -200,7 +206,7 @@ tsi_result SslProtectorProtectFlush(size_t& buffer_offset,
|
|
200
206
|
read_from_ssl = BIO_read(network_io, protected_output_frames,
|
201
207
|
static_cast<int>(*protected_output_frames_size));
|
202
208
|
if (read_from_ssl <= 0) {
|
203
|
-
|
209
|
+
LOG(ERROR) << "Could not read from BIO after SSL_write.";
|
204
210
|
return TSI_INTERNAL_ERROR;
|
205
211
|
}
|
206
212
|
*protected_output_frames_size = static_cast<size_t>(read_from_ssl);
|
@@ -237,8 +243,8 @@ tsi_result SslProtectorUnprotect(const unsigned char* protected_frames_bytes,
|
|
237
243
|
written_into_ssl = BIO_write(network_io, protected_frames_bytes,
|
238
244
|
static_cast<int>(*protected_frames_bytes_size));
|
239
245
|
if (written_into_ssl < 0) {
|
240
|
-
|
241
|
-
|
246
|
+
LOG(ERROR) << "Sending protected frame to ssl failed with "
|
247
|
+
<< written_into_ssl;
|
242
248
|
return TSI_INTERNAL_ERROR;
|
243
249
|
}
|
244
250
|
*protected_frames_bytes_size = static_cast<size_t>(written_into_ssl);
|
@@ -260,16 +266,15 @@ bool VerifyCrlSignature(X509_CRL* crl, X509* issuer) {
|
|
260
266
|
if (ikey == nullptr) {
|
261
267
|
// Can't verify signature because we couldn't get the pubkey, fail the
|
262
268
|
// check.
|
263
|
-
|
269
|
+
VLOG(2) << "Could not public key from certificate.";
|
264
270
|
EVP_PKEY_free(ikey);
|
265
271
|
return false;
|
266
272
|
}
|
267
273
|
int ret = X509_CRL_verify(crl, ikey);
|
268
274
|
if (ret < 0) {
|
269
|
-
|
270
|
-
"There was an unexpected problem checking the CRL signature.");
|
275
|
+
VLOG(2) << "There was an unexpected problem checking the CRL signature.";
|
271
276
|
} else if (ret == 0) {
|
272
|
-
|
277
|
+
VLOG(2) << "CRL failed verification.";
|
273
278
|
}
|
274
279
|
EVP_PKEY_free(ikey);
|
275
280
|
return ret == 1;
|
@@ -375,4 +380,55 @@ absl::StatusOr<std::string> AkidFromCrl(X509_CRL* crl) {
|
|
375
380
|
return ret;
|
376
381
|
}
|
377
382
|
|
383
|
+
absl::StatusOr<std::vector<X509*>> ParsePemCertificateChain(
|
384
|
+
absl::string_view cert_chain_pem) {
|
385
|
+
if (cert_chain_pem.empty()) {
|
386
|
+
return absl::InvalidArgumentError("Cert chain PEM is empty.");
|
387
|
+
}
|
388
|
+
BIO* in = BIO_new_mem_buf(cert_chain_pem.data(), cert_chain_pem.size());
|
389
|
+
if (in == nullptr) {
|
390
|
+
return absl::InternalError("BIO_new_mem_buf failed.");
|
391
|
+
}
|
392
|
+
std::vector<X509*> certs;
|
393
|
+
while (X509* cert = PEM_read_bio_X509(in, /*x=*/nullptr, /*cb=*/nullptr,
|
394
|
+
/*u=*/nullptr)) {
|
395
|
+
certs.push_back(cert);
|
396
|
+
}
|
397
|
+
|
398
|
+
// We always have errors at this point because in the above loop we read until
|
399
|
+
// we reach the end of |cert_chain_pem|, which generates a "no start line"
|
400
|
+
// error. Therefore, this error is OK if we have successfully parsed some
|
401
|
+
// certificate data previously.
|
402
|
+
const int last_error = ERR_peek_last_error();
|
403
|
+
if (ERR_GET_LIB(last_error) != ERR_LIB_PEM ||
|
404
|
+
ERR_GET_REASON(last_error) != PEM_R_NO_START_LINE) {
|
405
|
+
for (X509* cert : certs) {
|
406
|
+
X509_free(cert);
|
407
|
+
}
|
408
|
+
BIO_free(in);
|
409
|
+
return absl::FailedPreconditionError("Invalid PEM.");
|
410
|
+
}
|
411
|
+
ERR_clear_error();
|
412
|
+
BIO_free(in);
|
413
|
+
if (certs.empty()) {
|
414
|
+
return absl::NotFoundError("No certificates found.");
|
415
|
+
}
|
416
|
+
return certs;
|
417
|
+
}
|
418
|
+
|
419
|
+
absl::StatusOr<EVP_PKEY*> ParsePemPrivateKey(
|
420
|
+
absl::string_view private_key_pem) {
|
421
|
+
BIO* in = BIO_new_mem_buf(private_key_pem.data(), private_key_pem.size());
|
422
|
+
if (in == nullptr) {
|
423
|
+
return absl::InvalidArgumentError("Private key PEM is empty.");
|
424
|
+
}
|
425
|
+
EVP_PKEY* pkey =
|
426
|
+
PEM_read_bio_PrivateKey(in, /*x=*/nullptr, /*cb=*/nullptr, /*u=*/nullptr);
|
427
|
+
BIO_free(in);
|
428
|
+
if (pkey == nullptr) {
|
429
|
+
return absl::NotFoundError("No private key found.");
|
430
|
+
}
|
431
|
+
return pkey;
|
432
|
+
}
|
433
|
+
|
378
434
|
} // namespace grpc_core
|
@@ -19,6 +19,7 @@
|
|
19
19
|
#ifndef GRPC_SRC_CORE_TSI_SSL_TRANSPORT_SECURITY_UTILS_H
|
20
20
|
#define GRPC_SRC_CORE_TSI_SSL_TRANSPORT_SECURITY_UTILS_H
|
21
21
|
|
22
|
+
#include <openssl/evp.h>
|
22
23
|
#include <openssl/x509.h>
|
23
24
|
|
24
25
|
#include "absl/status/status.h"
|
@@ -168,6 +169,16 @@ absl::StatusOr<std::string> AkidFromCertificate(X509* cert);
|
|
168
169
|
// crl.
|
169
170
|
// return: a std::string of the DER encoding of the AKID or a status on failure.
|
170
171
|
absl::StatusOr<std::string> AkidFromCrl(X509_CRL* crl);
|
172
|
+
|
173
|
+
// Returns a vector of X509 instances parsed from the given PEM-encoded
|
174
|
+
// certificate chain. Caller takes ownership of the X509 pointers in the output
|
175
|
+
// vector.
|
176
|
+
absl::StatusOr<std::vector<X509*>> ParsePemCertificateChain(
|
177
|
+
absl::string_view cert_chain_pem);
|
178
|
+
|
179
|
+
// Returns an EVP_PKEY instance parsed from the non-empty PEM private key block
|
180
|
+
// in private_key_pem. Caller takes ownership of the EVP_PKEY pointer.
|
181
|
+
absl::StatusOr<EVP_PKEY*> ParsePemPrivateKey(absl::string_view private_key_pem);
|
171
182
|
} // namespace grpc_core
|
172
183
|
|
173
184
|
#endif // GRPC_SRC_CORE_TSI_SSL_TRANSPORT_SECURITY_UTILS_H
|
@@ -25,10 +25,6 @@
|
|
25
25
|
#include <grpc/support/port_platform.h>
|
26
26
|
#include <grpc/support/string_util.h>
|
27
27
|
|
28
|
-
// --- Tracing. ---
|
29
|
-
|
30
|
-
grpc_core::TraceFlag tsi_tracing_enabled(false, "tsi");
|
31
|
-
|
32
28
|
// --- tsi_result common implementation. ---
|
33
29
|
|
34
30
|
const char* tsi_result_to_string(tsi_result result) {
|
@@ -26,8 +26,6 @@
|
|
26
26
|
#include "src/core/lib/debug/trace.h"
|
27
27
|
#include "src/core/tsi/transport_security_interface.h"
|
28
28
|
|
29
|
-
extern grpc_core::TraceFlag tsi_tracing_enabled;
|
30
|
-
|
31
29
|
// Base for tsi_frame_protector implementations.
|
32
30
|
// See transport_security_interface.h for documentation.
|
33
31
|
// All methods must be implemented.
|
@@ -96,10 +96,6 @@ typedef enum {
|
|
96
96
|
const char* tsi_result_to_string(tsi_result result);
|
97
97
|
const char* tsi_security_level_to_string(tsi_security_level security_level);
|
98
98
|
|
99
|
-
// --- tsi tracing ---
|
100
|
-
|
101
|
-
extern grpc_core::TraceFlag tsi_tracing_enabled;
|
102
|
-
|
103
99
|
// -- tsi_zero_copy_grpc_protector object --
|
104
100
|
|
105
101
|
// This object protects and unprotects grpc slice buffers with zero or minimized
|
@@ -16,8 +16,8 @@
|
|
16
16
|
//
|
17
17
|
//
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
#define
|
19
|
+
#ifndef GRPC_SRC_CORE_UTIL_ALLOC_H
|
20
|
+
#define GRPC_SRC_CORE_UTIL_ALLOC_H
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
@@ -25,4 +25,4 @@
|
|
25
25
|
#define GPR_ROUND_UP_TO_ALIGNMENT_SIZE(x) \
|
26
26
|
(((x) + GPR_MAX_ALIGNMENT - 1u) & ~(GPR_MAX_ALIGNMENT - 1u))
|
27
27
|
|
28
|
-
#endif //
|
28
|
+
#endif // GRPC_SRC_CORE_UTIL_ALLOC_H
|
@@ -57,23 +57,4 @@ void gpr_log(const char* file, int line, gpr_log_severity severity,
|
|
57
57
|
free(message);
|
58
58
|
}
|
59
59
|
|
60
|
-
void gpr_platform_log(gpr_log_func_args* args) {
|
61
|
-
const char* final_slash;
|
62
|
-
const char* display_file;
|
63
|
-
char* output = NULL;
|
64
|
-
|
65
|
-
final_slash = strrchr(args->file, '/');
|
66
|
-
if (final_slash == NULL)
|
67
|
-
display_file = args->file;
|
68
|
-
else
|
69
|
-
display_file = final_slash + 1;
|
70
|
-
|
71
|
-
asprintf(&output, "%s:%d] %s", display_file, args->line, args->message);
|
72
|
-
|
73
|
-
__android_log_write(severity_to_log_priority(args->severity), "GRPC", output);
|
74
|
-
|
75
|
-
// allocated by asprintf => use free, not gpr_free
|
76
|
-
free(output);
|
77
|
-
}
|
78
|
-
|
79
60
|
#endif // GPR_ANDROID
|
@@ -16,7 +16,9 @@
|
|
16
16
|
//
|
17
17
|
//
|
18
18
|
|
19
|
-
#include
|
19
|
+
#include <grpc/support/port_platform.h>
|
20
|
+
|
21
|
+
#include "src/core/util/gcp_metadata_query.h"
|
20
22
|
|
21
23
|
#include <string.h>
|
22
24
|
|
@@ -24,6 +26,7 @@
|
|
24
26
|
#include <utility>
|
25
27
|
|
26
28
|
#include "absl/log/check.h"
|
29
|
+
#include "absl/log/log.h"
|
27
30
|
#include "absl/status/status.h"
|
28
31
|
#include "absl/status/statusor.h"
|
29
32
|
#include "absl/strings/str_format.h"
|
@@ -33,7 +36,6 @@
|
|
33
36
|
#include <grpc/grpc.h>
|
34
37
|
#include <grpc/grpc_security.h>
|
35
38
|
#include <grpc/support/log.h>
|
36
|
-
#include <grpc/support/port_platform.h>
|
37
39
|
|
38
40
|
#include "src/core/lib/debug/trace.h"
|
39
41
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
@@ -44,31 +46,29 @@
|
|
44
46
|
|
45
47
|
namespace grpc_core {
|
46
48
|
|
47
|
-
|
49
|
+
constexpr const char GcpMetadataQuery::kZoneAttribute[];
|
50
|
+
constexpr const char GcpMetadataQuery::kClusterNameAttribute[];
|
51
|
+
constexpr const char GcpMetadataQuery::kRegionAttribute[];
|
52
|
+
constexpr const char GcpMetadataQuery::kInstanceIdAttribute[];
|
53
|
+
constexpr const char GcpMetadataQuery::kIPv6Attribute[];
|
48
54
|
|
49
|
-
|
50
|
-
constexpr const char MetadataQuery::kClusterNameAttribute[];
|
51
|
-
constexpr const char MetadataQuery::kRegionAttribute[];
|
52
|
-
constexpr const char MetadataQuery::kInstanceIdAttribute[];
|
53
|
-
constexpr const char MetadataQuery::kIPv6Attribute[];
|
54
|
-
|
55
|
-
MetadataQuery::MetadataQuery(
|
55
|
+
GcpMetadataQuery::GcpMetadataQuery(
|
56
56
|
std::string attribute, grpc_polling_entity* pollent,
|
57
57
|
absl::AnyInvocable<void(std::string /* attribute */,
|
58
58
|
absl::StatusOr<std::string> /* result */)>
|
59
59
|
callback,
|
60
60
|
Duration timeout)
|
61
|
-
:
|
62
|
-
|
61
|
+
: GcpMetadataQuery("metadata.google.internal.", std::move(attribute),
|
62
|
+
pollent, std::move(callback), timeout) {}
|
63
63
|
|
64
|
-
|
64
|
+
GcpMetadataQuery::GcpMetadataQuery(
|
65
65
|
std::string metadata_server_name, std::string attribute,
|
66
66
|
grpc_polling_entity* pollent,
|
67
67
|
absl::AnyInvocable<void(std::string /* attribute */,
|
68
68
|
absl::StatusOr<std::string> /* result */)>
|
69
69
|
callback,
|
70
70
|
Duration timeout)
|
71
|
-
: InternallyRefCounted<
|
71
|
+
: InternallyRefCounted<GcpMetadataQuery>(nullptr, 2),
|
72
72
|
attribute_(std::move(attribute)),
|
73
73
|
callback_(std::move(callback)) {
|
74
74
|
GRPC_CLOSURE_INIT(&on_done_, OnDone, this, nullptr);
|
@@ -89,20 +89,21 @@ MetadataQuery::MetadataQuery(
|
|
89
89
|
http_request_->Start();
|
90
90
|
}
|
91
91
|
|
92
|
-
|
92
|
+
GcpMetadataQuery::~GcpMetadataQuery() {
|
93
|
+
grpc_http_response_destroy(&response_);
|
94
|
+
}
|
93
95
|
|
94
|
-
void
|
96
|
+
void GcpMetadataQuery::Orphan() {
|
95
97
|
http_request_.reset();
|
96
98
|
Unref();
|
97
99
|
}
|
98
100
|
|
99
|
-
void
|
100
|
-
auto* self = static_cast<
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
}
|
101
|
+
void GcpMetadataQuery::OnDone(void* arg, grpc_error_handle error) {
|
102
|
+
auto* self = static_cast<GcpMetadataQuery*>(arg);
|
103
|
+
GRPC_TRACE_LOG(metadata_query, INFO)
|
104
|
+
<< "MetadataServer Query for " << self->attribute_
|
105
|
+
<< ": HTTP status: " << self->response_.status
|
106
|
+
<< ", error: " << StatusToString(error);
|
106
107
|
absl::StatusOr<std::string> result;
|
107
108
|
if (!error.ok()) {
|
108
109
|
result = absl::UnavailableError(absl::StrFormat(
|
@@ -119,9 +120,7 @@ void MetadataQuery::OnDone(void* arg, grpc_error_handle error) {
|
|
119
120
|
result = absl::UnavailableError(
|
120
121
|
absl::StrFormat("MetadataServer Could not parse zone: %s",
|
121
122
|
std::string(body).c_str()));
|
122
|
-
|
123
|
-
gpr_log(GPR_INFO, "%s", result.status().ToString().c_str());
|
124
|
-
}
|
123
|
+
GRPC_TRACE_LOG(metadata_query, INFO) << result.status();
|
125
124
|
} else {
|
126
125
|
result = std::string(body.substr(pos + 1));
|
127
126
|
}
|
@@ -14,29 +14,29 @@
|
|
14
14
|
// limitations under the License.
|
15
15
|
//
|
16
16
|
|
17
|
-
#ifndef
|
18
|
-
#define
|
17
|
+
#ifndef GRPC_SRC_CORE_UTIL_GCP_METADATA_QUERY_H
|
18
|
+
#define GRPC_SRC_CORE_UTIL_GCP_METADATA_QUERY_H
|
19
|
+
|
20
|
+
#include <grpc/support/port_platform.h>
|
19
21
|
|
20
22
|
#include <string>
|
21
23
|
|
22
24
|
#include "absl/functional/any_invocable.h"
|
23
25
|
#include "absl/status/statusor.h"
|
24
26
|
|
25
|
-
#include <grpc/support/port_platform.h>
|
26
|
-
|
27
27
|
#include "src/core/lib/gprpp/orphanable.h"
|
28
28
|
#include "src/core/lib/gprpp/time.h"
|
29
|
-
#include "src/core/lib/http/httpcli.h"
|
30
|
-
#include "src/core/lib/http/parser.h"
|
31
29
|
#include "src/core/lib/iomgr/closure.h"
|
32
30
|
#include "src/core/lib/iomgr/error.h"
|
33
31
|
#include "src/core/lib/iomgr/polling_entity.h"
|
32
|
+
#include "src/core/util/http_client/httpcli.h"
|
33
|
+
#include "src/core/util/http_client/parser.h"
|
34
34
|
|
35
35
|
namespace grpc_core {
|
36
36
|
|
37
37
|
// Fetches the value of an attribute from the MetadataServer on a GCP
|
38
38
|
// environment.
|
39
|
-
class
|
39
|
+
class GcpMetadataQuery : public InternallyRefCounted<GcpMetadataQuery> {
|
40
40
|
public:
|
41
41
|
static constexpr const char kZoneAttribute[] =
|
42
42
|
"/computeMetadata/v1/instance/zone";
|
@@ -49,7 +49,7 @@ class MetadataQuery : public InternallyRefCounted<MetadataQuery> {
|
|
49
49
|
static constexpr const char kIPv6Attribute[] =
|
50
50
|
"/computeMetadata/v1/instance/network-interfaces/0/ipv6s";
|
51
51
|
|
52
|
-
|
52
|
+
GcpMetadataQuery(
|
53
53
|
std::string attribute, grpc_polling_entity* pollent,
|
54
54
|
absl::AnyInvocable<void(std::string /* attribute */,
|
55
55
|
absl::StatusOr<std::string> /* result */)>
|
@@ -58,7 +58,7 @@ class MetadataQuery : public InternallyRefCounted<MetadataQuery> {
|
|
58
58
|
|
59
59
|
// Alternative ctor allows overriding the metadata server address, mainly
|
60
60
|
// to inject fakes in tests
|
61
|
-
|
61
|
+
GcpMetadataQuery(
|
62
62
|
std::string metadata_server_name, std::string attribute,
|
63
63
|
grpc_polling_entity* pollent,
|
64
64
|
absl::AnyInvocable<void(std::string /* attribute */,
|
@@ -66,7 +66,7 @@ class MetadataQuery : public InternallyRefCounted<MetadataQuery> {
|
|
66
66
|
callback,
|
67
67
|
Duration timeout);
|
68
68
|
|
69
|
-
~
|
69
|
+
~GcpMetadataQuery() override;
|
70
70
|
|
71
71
|
void Orphan() override;
|
72
72
|
|
@@ -84,4 +84,4 @@ class MetadataQuery : public InternallyRefCounted<MetadataQuery> {
|
|
84
84
|
|
85
85
|
} // namespace grpc_core
|
86
86
|
|
87
|
-
#endif //
|
87
|
+
#endif // GRPC_SRC_CORE_UTIL_GCP_METADATA_QUERY_H
|
@@ -16,7 +16,9 @@
|
|
16
16
|
//
|
17
17
|
//
|
18
18
|
|
19
|
-
#include
|
19
|
+
#include <grpc/support/port_platform.h>
|
20
|
+
|
21
|
+
#include "src/core/util/http_client/format_request.h"
|
20
22
|
|
21
23
|
#include <stdio.h>
|
22
24
|
#include <string.h>
|
@@ -31,9 +33,8 @@
|
|
31
33
|
#include "absl/strings/string_view.h"
|
32
34
|
|
33
35
|
#include <grpc/slice.h>
|
34
|
-
#include <grpc/support/port_platform.h>
|
35
36
|
|
36
|
-
#include "src/core/
|
37
|
+
#include "src/core/util/http_client/httpcli.h"
|
37
38
|
|
38
39
|
static void fill_common_header(const grpc_http_request* request,
|
39
40
|
const char* host, const char* path,
|
@@ -16,13 +16,14 @@
|
|
16
16
|
//
|
17
17
|
//
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
#define
|
19
|
+
#ifndef GRPC_SRC_CORE_UTIL_HTTP_CLIENT_FORMAT_REQUEST_H
|
20
|
+
#define GRPC_SRC_CORE_UTIL_HTTP_CLIENT_FORMAT_REQUEST_H
|
21
21
|
|
22
|
-
#include <grpc/slice.h>
|
23
22
|
#include <grpc/support/port_platform.h>
|
24
23
|
|
25
|
-
#include
|
24
|
+
#include <grpc/slice.h>
|
25
|
+
|
26
|
+
#include "src/core/util/http_client/parser.h"
|
26
27
|
|
27
28
|
grpc_slice grpc_httpcli_format_get_request(const grpc_http_request* request,
|
28
29
|
const char* host, const char* path);
|
@@ -34,4 +35,4 @@ grpc_slice grpc_httpcli_format_connect_request(const grpc_http_request* request,
|
|
34
35
|
const char* host,
|
35
36
|
const char* path);
|
36
37
|
|
37
|
-
#endif //
|
38
|
+
#endif // GRPC_SRC_CORE_UTIL_HTTP_CLIENT_FORMAT_REQUEST_H
|
@@ -16,7 +16,9 @@
|
|
16
16
|
//
|
17
17
|
//
|
18
18
|
|
19
|
-
#include
|
19
|
+
#include <grpc/support/port_platform.h>
|
20
|
+
|
21
|
+
#include "src/core/util/http_client/httpcli.h"
|
20
22
|
|
21
23
|
#include <limits.h>
|
22
24
|
|
@@ -32,7 +34,6 @@
|
|
32
34
|
#include <grpc/slice_buffer.h>
|
33
35
|
#include <grpc/support/alloc.h>
|
34
36
|
#include <grpc/support/log.h>
|
35
|
-
#include <grpc/support/port_platform.h>
|
36
37
|
|
37
38
|
#include "src/core/handshaker/handshaker_registry.h"
|
38
39
|
#include "src/core/handshaker/tcp_connect/tcp_connect_handshaker.h"
|
@@ -41,8 +42,6 @@
|
|
41
42
|
#include "src/core/lib/channel/channel_args_preconditioning.h"
|
42
43
|
#include "src/core/lib/config/core_configuration.h"
|
43
44
|
#include "src/core/lib/gprpp/status_helper.h"
|
44
|
-
#include "src/core/lib/http/format_request.h"
|
45
|
-
#include "src/core/lib/http/parser.h"
|
46
45
|
#include "src/core/lib/iomgr/endpoint.h"
|
47
46
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
48
47
|
#include "src/core/lib/iomgr/pollset_set.h"
|
@@ -52,6 +51,8 @@
|
|
52
51
|
#include "src/core/lib/security/security_connector/security_connector.h"
|
53
52
|
#include "src/core/lib/slice/slice.h"
|
54
53
|
#include "src/core/lib/transport/error_utils.h"
|
54
|
+
#include "src/core/util/http_client/format_request.h"
|
55
|
+
#include "src/core/util/http_client/parser.h"
|
55
56
|
|
56
57
|
namespace grpc_core {
|
57
58
|
|
@@ -231,7 +232,8 @@ void HttpRequest::Orphan() {
|
|
231
232
|
GRPC_ERROR_CREATE("HTTP request cancelled during handshake"));
|
232
233
|
}
|
233
234
|
if (own_endpoint_ && ep_ != nullptr) {
|
234
|
-
|
235
|
+
grpc_endpoint_destroy(ep_);
|
236
|
+
ep_ = nullptr;
|
235
237
|
}
|
236
238
|
}
|
237
239
|
Unref();
|
@@ -243,11 +245,8 @@ void HttpRequest::AppendError(grpc_error_handle error) {
|
|
243
245
|
}
|
244
246
|
const grpc_resolved_address* addr = &addresses_[next_address_ - 1];
|
245
247
|
auto addr_text = grpc_sockaddr_to_uri(addr);
|
246
|
-
|
247
|
-
|
248
|
-
grpc_error_set_str(
|
249
|
-
error, StatusStrProperty::kTargetAddress,
|
250
|
-
addr_text.ok() ? addr_text.value() : addr_text.status().ToString()));
|
248
|
+
if (addr_text.ok()) error = AddMessagePrefix(*addr_text, std::move(error));
|
249
|
+
overall_error_ = grpc_error_add_child(overall_error_, std::move(error));
|
251
250
|
}
|
252
251
|
|
253
252
|
void HttpRequest::OnReadInternal(grpc_error_handle error) {
|
@@ -16,8 +16,10 @@
|
|
16
16
|
//
|
17
17
|
//
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
#define
|
19
|
+
#ifndef GRPC_SRC_CORE_UTIL_HTTP_CLIENT_HTTPCLI_H
|
20
|
+
#define GRPC_SRC_CORE_UTIL_HTTP_CLIENT_HTTPCLI_H
|
21
|
+
|
22
|
+
#include <grpc/support/port_platform.h>
|
21
23
|
|
22
24
|
#include <stddef.h>
|
23
25
|
|
@@ -32,7 +34,6 @@
|
|
32
34
|
|
33
35
|
#include <grpc/grpc.h>
|
34
36
|
#include <grpc/slice.h>
|
35
|
-
#include <grpc/support/port_platform.h>
|
36
37
|
|
37
38
|
#include "src/core/handshaker/handshaker.h"
|
38
39
|
#include "src/core/lib/gprpp/debug_location.h"
|
@@ -40,7 +41,6 @@
|
|
40
41
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
41
42
|
#include "src/core/lib/gprpp/sync.h"
|
42
43
|
#include "src/core/lib/gprpp/time.h"
|
43
|
-
#include "src/core/lib/http/parser.h"
|
44
44
|
#include "src/core/lib/iomgr/closure.h"
|
45
45
|
#include "src/core/lib/iomgr/endpoint.h"
|
46
46
|
#include "src/core/lib/iomgr/error.h"
|
@@ -52,6 +52,7 @@
|
|
52
52
|
#include "src/core/lib/iomgr/resolved_address.h"
|
53
53
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
54
54
|
#include "src/core/lib/uri/uri_parser.h"
|
55
|
+
#include "src/core/util/http_client/parser.h"
|
55
56
|
|
56
57
|
// User agent this library reports
|
57
58
|
#define GRPC_HTTPCLI_USER_AGENT "grpc-httpcli/0.0"
|
@@ -264,4 +265,4 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
|
|
264
265
|
|
265
266
|
} // namespace grpc_core
|
266
267
|
|
267
|
-
#endif //
|
268
|
+
#endif // GRPC_SRC_CORE_UTIL_HTTP_CLIENT_HTTPCLI_H
|