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
@@ -26,6 +26,7 @@
|
|
26
26
|
|
27
27
|
#include "absl/base/thread_annotations.h"
|
28
28
|
#include "absl/log/check.h"
|
29
|
+
#include "absl/log/log.h"
|
29
30
|
#include "absl/status/status.h"
|
30
31
|
#include "absl/strings/string_view.h"
|
31
32
|
#include "absl/types/optional.h"
|
@@ -40,9 +41,7 @@
|
|
40
41
|
#include <grpc/support/port_platform.h>
|
41
42
|
#include <grpc/support/sync.h>
|
42
43
|
|
43
|
-
#include "src/core/handshaker/security/tsi_error.h"
|
44
44
|
#include "src/core/lib/debug/trace.h"
|
45
|
-
#include "src/core/lib/gpr/string.h"
|
46
45
|
#include "src/core/lib/gprpp/debug_location.h"
|
47
46
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
48
47
|
#include "src/core/lib/gprpp/sync.h"
|
@@ -53,15 +52,16 @@
|
|
53
52
|
#include "src/core/lib/resource_quota/api.h"
|
54
53
|
#include "src/core/lib/resource_quota/memory_quota.h"
|
55
54
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
56
|
-
#include "src/core/lib/resource_quota/trace.h"
|
57
55
|
#include "src/core/lib/slice/slice.h"
|
58
56
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
59
57
|
#include "src/core/tsi/transport_security_grpc.h"
|
60
58
|
#include "src/core/tsi/transport_security_interface.h"
|
59
|
+
#include "src/core/util/string.h"
|
61
60
|
|
62
61
|
#define STAGING_BUFFER_SIZE 8192
|
63
62
|
|
64
63
|
static void on_read(void* user_data, grpc_error_handle error);
|
64
|
+
static void on_write(void* user_data, grpc_error_handle error);
|
65
65
|
|
66
66
|
namespace {
|
67
67
|
struct secure_endpoint {
|
@@ -77,6 +77,7 @@ struct secure_endpoint {
|
|
77
77
|
base.vtable = vtable;
|
78
78
|
gpr_mu_init(&protector_mu);
|
79
79
|
GRPC_CLOSURE_INIT(&on_read, ::on_read, this, grpc_schedule_on_exec_ctx);
|
80
|
+
GRPC_CLOSURE_INIT(&on_write, ::on_write, this, grpc_schedule_on_exec_ctx);
|
80
81
|
grpc_slice_buffer_init(&source_buffer);
|
81
82
|
grpc_slice_buffer_init(&leftover_bytes);
|
82
83
|
for (size_t i = 0; i < leftover_nslices; i++) {
|
@@ -104,7 +105,7 @@ struct secure_endpoint {
|
|
104
105
|
}
|
105
106
|
|
106
107
|
~secure_endpoint() {
|
107
|
-
|
108
|
+
memory_owner.Reset();
|
108
109
|
tsi_frame_protector_destroy(protector);
|
109
110
|
tsi_zero_copy_grpc_protector_destroy(zero_copy_protector);
|
110
111
|
grpc_slice_buffer_destroy(&source_buffer);
|
@@ -127,6 +128,7 @@ struct secure_endpoint {
|
|
127
128
|
grpc_closure* read_cb = nullptr;
|
128
129
|
grpc_closure* write_cb = nullptr;
|
129
130
|
grpc_closure on_read;
|
131
|
+
grpc_closure on_write;
|
130
132
|
grpc_slice_buffer* read_buffer = nullptr;
|
131
133
|
grpc_slice_buffer source_buffer;
|
132
134
|
// saved handshaker leftover data to unprotect.
|
@@ -144,8 +146,6 @@ struct secure_endpoint {
|
|
144
146
|
};
|
145
147
|
} // namespace
|
146
148
|
|
147
|
-
grpc_core::TraceFlag grpc_trace_secure_endpoint(false, "secure_endpoint");
|
148
|
-
|
149
149
|
static void destroy(secure_endpoint* ep) { delete ep; }
|
150
150
|
|
151
151
|
#ifndef NDEBUG
|
@@ -155,7 +155,7 @@ static void destroy(secure_endpoint* ep) { delete ep; }
|
|
155
155
|
secure_endpoint_ref((ep), (reason), __FILE__, __LINE__)
|
156
156
|
static void secure_endpoint_unref(secure_endpoint* ep, const char* reason,
|
157
157
|
const char* file, int line) {
|
158
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
158
|
+
if (GRPC_TRACE_FLAG_ENABLED(secure_endpoint)) {
|
159
159
|
gpr_atm val = gpr_atm_no_barrier_load(&ep->ref.count);
|
160
160
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
161
161
|
"SECENDP unref %p : %s %" PRIdPTR " -> %" PRIdPTR, ep, reason, val,
|
@@ -168,7 +168,7 @@ static void secure_endpoint_unref(secure_endpoint* ep, const char* reason,
|
|
168
168
|
|
169
169
|
static void secure_endpoint_ref(secure_endpoint* ep, const char* reason,
|
170
170
|
const char* file, int line) {
|
171
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
171
|
+
if (GRPC_TRACE_FLAG_ENABLED(secure_endpoint)) {
|
172
172
|
gpr_atm val = gpr_atm_no_barrier_load(&ep->ref.count);
|
173
173
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
174
174
|
"SECENDP ref %p : %s %" PRIdPTR " -> %" PRIdPTR, ep, reason, val,
|
@@ -196,7 +196,7 @@ static void maybe_post_reclaimer(secure_endpoint* ep) {
|
|
196
196
|
grpc_core::ReclamationPass::kBenign,
|
197
197
|
[ep](absl::optional<grpc_core::ReclamationSweep> sweep) {
|
198
198
|
if (sweep.has_value()) {
|
199
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
199
|
+
if (GRPC_TRACE_FLAG_ENABLED(resource_quota)) {
|
200
200
|
gpr_log(GPR_INFO,
|
201
201
|
"secure endpoint: benign reclamation to free memory");
|
202
202
|
}
|
@@ -233,13 +233,12 @@ static void flush_read_staging_buffer(secure_endpoint* ep, uint8_t** cur,
|
|
233
233
|
}
|
234
234
|
|
235
235
|
static void call_read_cb(secure_endpoint* ep, grpc_error_handle error) {
|
236
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
237
|
-
gpr_should_log(GPR_LOG_SEVERITY_INFO)) {
|
236
|
+
if (GRPC_TRACE_FLAG_ENABLED(secure_endpoint) && ABSL_VLOG_IS_ON(2)) {
|
238
237
|
size_t i;
|
239
238
|
for (i = 0; i < ep->read_buffer->count; i++) {
|
240
239
|
char* data = grpc_dump_slice(ep->read_buffer->slices[i],
|
241
240
|
GPR_DUMP_HEX | GPR_DUMP_ASCII);
|
242
|
-
|
241
|
+
VLOG(2) << "READ " << ep << ": " << data;
|
243
242
|
gpr_free(data);
|
244
243
|
}
|
245
244
|
}
|
@@ -261,12 +260,7 @@ static void on_read(void* user_data, grpc_error_handle error) {
|
|
261
260
|
|
262
261
|
if (!error.ok()) {
|
263
262
|
grpc_slice_buffer_reset_and_unref(ep->read_buffer);
|
264
|
-
|
265
|
-
ep, GRPC_ERROR_CREATE_REFERENCING("Secure read failed", &error, 1));
|
266
|
-
return;
|
267
|
-
}
|
268
|
-
|
269
|
-
if (ep->zero_copy_protector != nullptr) {
|
263
|
+
} else if (ep->zero_copy_protector != nullptr) {
|
270
264
|
// Use zero-copy grpc protector to unprotect.
|
271
265
|
int min_progress_size = 1;
|
272
266
|
// Get the size of the last frame which is not yet fully decrypted.
|
@@ -334,14 +328,21 @@ static void on_read(void* user_data, grpc_error_handle error) {
|
|
334
328
|
}
|
335
329
|
}
|
336
330
|
|
331
|
+
if (!error.ok()) {
|
332
|
+
call_read_cb(
|
333
|
+
ep, GRPC_ERROR_CREATE_REFERENCING("Secure read failed", &error, 1));
|
334
|
+
return;
|
335
|
+
}
|
336
|
+
|
337
337
|
// TODO(yangg) experiment with moving this block after read_cb to see if it
|
338
338
|
// helps latency
|
339
339
|
grpc_slice_buffer_reset_and_unref(&ep->source_buffer);
|
340
340
|
|
341
341
|
if (result != TSI_OK) {
|
342
342
|
grpc_slice_buffer_reset_and_unref(ep->read_buffer);
|
343
|
-
call_read_cb(
|
344
|
-
|
343
|
+
call_read_cb(
|
344
|
+
ep, GRPC_ERROR_CREATE(absl::StrCat("Unwrap failed (",
|
345
|
+
tsi_result_to_string(result), ")")));
|
345
346
|
return;
|
346
347
|
}
|
347
348
|
|
@@ -379,6 +380,13 @@ static void flush_write_staging_buffer(secure_endpoint* ep, uint8_t** cur,
|
|
379
380
|
maybe_post_reclaimer(ep);
|
380
381
|
}
|
381
382
|
|
383
|
+
static void on_write(void* user_data, grpc_error_handle error) {
|
384
|
+
secure_endpoint* ep = static_cast<secure_endpoint*>(user_data);
|
385
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, std::exchange(ep->write_cb, nullptr),
|
386
|
+
std::move(error));
|
387
|
+
SECURE_ENDPOINT_UNREF(ep, "write");
|
388
|
+
}
|
389
|
+
|
382
390
|
static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
|
383
391
|
grpc_closure* cb, void* arg, int max_frame_size) {
|
384
392
|
unsigned i;
|
@@ -392,12 +400,11 @@ static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
|
|
392
400
|
|
393
401
|
grpc_slice_buffer_reset_and_unref(&ep->output_buffer);
|
394
402
|
|
395
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
396
|
-
gpr_should_log(GPR_LOG_SEVERITY_INFO)) {
|
403
|
+
if (GRPC_TRACE_FLAG_ENABLED(secure_endpoint) && ABSL_VLOG_IS_ON(2)) {
|
397
404
|
for (i = 0; i < slices->count; i++) {
|
398
405
|
char* data =
|
399
406
|
grpc_dump_slice(slices->slices[i], GPR_DUMP_HEX | GPR_DUMP_ASCII);
|
400
|
-
|
407
|
+
VLOG(2) << "WRITE " << ep << ": " << data;
|
401
408
|
gpr_free(data);
|
402
409
|
}
|
403
410
|
}
|
@@ -484,22 +491,22 @@ static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
|
|
484
491
|
grpc_slice_buffer_reset_and_unref(&ep->output_buffer);
|
485
492
|
grpc_core::ExecCtx::Run(
|
486
493
|
DEBUG_LOCATION, cb,
|
487
|
-
|
494
|
+
GRPC_ERROR_CREATE(
|
495
|
+
absl::StrCat("Wrap failed (", tsi_result_to_string(result), ")")));
|
488
496
|
return;
|
489
497
|
}
|
490
498
|
|
491
|
-
|
499
|
+
// Need to hold a ref here, because the wrapped endpoint may access
|
500
|
+
// output_buffer at any time until the write completes.
|
501
|
+
SECURE_ENDPOINT_REF(ep, "write");
|
502
|
+
ep->write_cb = cb;
|
503
|
+
grpc_endpoint_write(ep->wrapped_ep, &ep->output_buffer, &ep->on_write, arg,
|
492
504
|
max_frame_size);
|
493
505
|
}
|
494
506
|
|
495
|
-
static void endpoint_shutdown(grpc_endpoint* secure_ep, grpc_error_handle why) {
|
496
|
-
secure_endpoint* ep = reinterpret_cast<secure_endpoint*>(secure_ep);
|
497
|
-
grpc_endpoint_shutdown(ep->wrapped_ep, why);
|
498
|
-
}
|
499
|
-
|
500
507
|
static void endpoint_destroy(grpc_endpoint* secure_ep) {
|
501
508
|
secure_endpoint* ep = reinterpret_cast<secure_endpoint*>(secure_ep);
|
502
|
-
ep->
|
509
|
+
grpc_endpoint_destroy(ep->wrapped_ep);
|
503
510
|
SECURE_ENDPOINT_UNREF(ep, "destroy");
|
504
511
|
}
|
505
512
|
|
@@ -546,7 +553,6 @@ static const grpc_endpoint_vtable vtable = {endpoint_read,
|
|
546
553
|
endpoint_add_to_pollset,
|
547
554
|
endpoint_add_to_pollset_set,
|
548
555
|
endpoint_delete_from_pollset_set,
|
549
|
-
endpoint_shutdown,
|
550
556
|
endpoint_destroy,
|
551
557
|
endpoint_get_peer,
|
552
558
|
endpoint_get_local_address,
|
@@ -28,8 +28,6 @@
|
|
28
28
|
#include "src/core/lib/debug/trace.h"
|
29
29
|
#include "src/core/lib/iomgr/endpoint.h"
|
30
30
|
|
31
|
-
extern grpc_core::TraceFlag grpc_trace_secure_endpoint;
|
32
|
-
|
33
31
|
// Takes ownership of protector, zero_copy_protector, and to_wrap, and refs
|
34
32
|
// leftover_slices. If zero_copy_protector is not NULL, protector will never be
|
35
33
|
// used.
|
@@ -48,11 +48,8 @@
|
|
48
48
|
#include "src/core/handshaker/handshaker_factory.h"
|
49
49
|
#include "src/core/handshaker/handshaker_registry.h"
|
50
50
|
#include "src/core/handshaker/security/secure_endpoint.h"
|
51
|
-
#include "src/core/handshaker/security/tsi_error.h"
|
52
51
|
#include "src/core/lib/channel/channel_args.h"
|
53
52
|
#include "src/core/lib/config/core_configuration.h"
|
54
|
-
#include "src/core/lib/debug/stats.h"
|
55
|
-
#include "src/core/lib/debug/stats_data.h"
|
56
53
|
#include "src/core/lib/gprpp/debug_location.h"
|
57
54
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
58
55
|
#include "src/core/lib/gprpp/sync.h"
|
@@ -66,6 +63,8 @@
|
|
66
63
|
#include "src/core/lib/security/context/security_context.h"
|
67
64
|
#include "src/core/lib/slice/slice.h"
|
68
65
|
#include "src/core/lib/slice/slice_internal.h"
|
66
|
+
#include "src/core/telemetry/stats.h"
|
67
|
+
#include "src/core/telemetry/stats_data.h"
|
69
68
|
#include "src/core/tsi/transport_security_grpc.h"
|
70
69
|
|
71
70
|
#define GRPC_INITIAL_HANDSHAKE_BUFFER_SIZE 256
|
@@ -118,8 +117,7 @@ class SecurityHandshaker : public Handshaker {
|
|
118
117
|
Mutex mu_;
|
119
118
|
|
120
119
|
bool is_shutdown_ = false;
|
121
|
-
//
|
122
|
-
grpc_endpoint* endpoint_to_destroy_ = nullptr;
|
120
|
+
// Read buffer to destroy after a shutdown.
|
123
121
|
grpc_slice_buffer* read_buffer_to_destroy_ = nullptr;
|
124
122
|
|
125
123
|
// State saved while performing the handshake.
|
@@ -156,9 +154,6 @@ SecurityHandshaker::SecurityHandshaker(tsi_handshaker* handshaker,
|
|
156
154
|
SecurityHandshaker::~SecurityHandshaker() {
|
157
155
|
tsi_handshaker_destroy(handshaker_);
|
158
156
|
tsi_handshaker_result_destroy(handshaker_result_);
|
159
|
-
if (endpoint_to_destroy_ != nullptr) {
|
160
|
-
grpc_endpoint_destroy(endpoint_to_destroy_);
|
161
|
-
}
|
162
157
|
if (read_buffer_to_destroy_ != nullptr) {
|
163
158
|
grpc_slice_buffer_destroy(read_buffer_to_destroy_);
|
164
159
|
gpr_free(read_buffer_to_destroy_);
|
@@ -190,8 +185,6 @@ size_t SecurityHandshaker::MoveReadBufferIntoHandshakeBuffer() {
|
|
190
185
|
// Set args_ fields to NULL, saving the endpoint and read buffer for
|
191
186
|
// later destruction.
|
192
187
|
void SecurityHandshaker::CleanupArgsForFailureLocked() {
|
193
|
-
endpoint_to_destroy_ = args_->endpoint;
|
194
|
-
args_->endpoint = nullptr;
|
195
188
|
read_buffer_to_destroy_ = args_->read_buffer;
|
196
189
|
args_->read_buffer = nullptr;
|
197
190
|
args_->args = ChannelArgs();
|
@@ -207,11 +200,8 @@ void SecurityHandshaker::HandshakeFailedLocked(grpc_error_handle error) {
|
|
207
200
|
}
|
208
201
|
if (!is_shutdown_) {
|
209
202
|
tsi_handshaker_shutdown(handshaker_);
|
210
|
-
|
211
|
-
|
212
|
-
// pending read/write callbacks. This should be fixed, at which
|
213
|
-
// point this can be removed.
|
214
|
-
grpc_endpoint_shutdown(args_->endpoint, error);
|
203
|
+
grpc_endpoint_destroy(args_->endpoint);
|
204
|
+
args_->endpoint = nullptr;
|
215
205
|
// Not shutting down, so the write failed. Clean up before
|
216
206
|
// invoking the callback.
|
217
207
|
CleanupArgsForFailureLocked();
|
@@ -260,10 +250,9 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error_handle error) {
|
|
260
250
|
tsi_result result = tsi_handshaker_result_get_unused_bytes(
|
261
251
|
handshaker_result_, &unused_bytes, &unused_bytes_size);
|
262
252
|
if (result != TSI_OK) {
|
263
|
-
HandshakeFailedLocked(
|
264
|
-
|
265
|
-
|
266
|
-
result));
|
253
|
+
HandshakeFailedLocked(GRPC_ERROR_CREATE(
|
254
|
+
absl::StrCat("TSI handshaker result does not provide unused bytes (",
|
255
|
+
tsi_result_to_string(result), ")")));
|
267
256
|
return;
|
268
257
|
}
|
269
258
|
// Check whether we need to wrap the endpoint.
|
@@ -271,10 +260,10 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error_handle error) {
|
|
271
260
|
result = tsi_handshaker_result_get_frame_protector_type(
|
272
261
|
handshaker_result_, &frame_protector_type);
|
273
262
|
if (result != TSI_OK) {
|
274
|
-
HandshakeFailedLocked(
|
275
|
-
|
276
|
-
|
277
|
-
|
263
|
+
HandshakeFailedLocked(GRPC_ERROR_CREATE(
|
264
|
+
absl::StrCat("TSI handshaker result does not implement "
|
265
|
+
"get_frame_protector_type (",
|
266
|
+
tsi_result_to_string(result), ")")));
|
278
267
|
return;
|
279
268
|
}
|
280
269
|
tsi_zero_copy_grpc_protector* zero_copy_protector = nullptr;
|
@@ -288,9 +277,9 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error_handle error) {
|
|
288
277
|
handshaker_result_, max_frame_size_ == 0 ? nullptr : &max_frame_size_,
|
289
278
|
&zero_copy_protector);
|
290
279
|
if (result != TSI_OK) {
|
291
|
-
HandshakeFailedLocked(
|
292
|
-
|
293
|
-
|
280
|
+
HandshakeFailedLocked(GRPC_ERROR_CREATE(
|
281
|
+
absl::StrCat("Zero-copy frame protector creation failed (",
|
282
|
+
tsi_result_to_string(result), ")")));
|
294
283
|
return;
|
295
284
|
}
|
296
285
|
break;
|
@@ -300,8 +289,9 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error_handle error) {
|
|
300
289
|
handshaker_result_, max_frame_size_ == 0 ? nullptr : &max_frame_size_,
|
301
290
|
&protector);
|
302
291
|
if (result != TSI_OK) {
|
303
|
-
HandshakeFailedLocked(
|
304
|
-
GRPC_ERROR_CREATE("Frame protector creation failed"
|
292
|
+
HandshakeFailedLocked(
|
293
|
+
GRPC_ERROR_CREATE(absl::StrCat("Frame protector creation failed (",
|
294
|
+
tsi_result_to_string(result), ")")));
|
305
295
|
return;
|
306
296
|
}
|
307
297
|
break;
|
@@ -356,8 +346,8 @@ grpc_error_handle SecurityHandshaker::CheckPeerLocked() {
|
|
356
346
|
tsi_result result =
|
357
347
|
tsi_handshaker_result_extract_peer(handshaker_result_, &peer);
|
358
348
|
if (result != TSI_OK) {
|
359
|
-
return
|
360
|
-
|
349
|
+
return GRPC_ERROR_CREATE(absl::StrCat("Peer extraction failed (",
|
350
|
+
tsi_result_to_string(result), ")"));
|
361
351
|
}
|
362
352
|
connector_->check_peer(peer, args_->endpoint, args_->args, &auth_context_,
|
363
353
|
&on_peer_checked_);
|
@@ -398,11 +388,9 @@ grpc_error_handle SecurityHandshaker::OnHandshakeNextDoneLocked(
|
|
398
388
|
if (security_connector != nullptr) {
|
399
389
|
connector_type = security_connector->type().name();
|
400
390
|
}
|
401
|
-
return
|
402
|
-
|
403
|
-
|
404
|
-
(tsi_handshake_error_.empty() ? "" : ": "), tsi_handshake_error_)),
|
405
|
-
result);
|
391
|
+
return GRPC_ERROR_CREATE(absl::StrCat(
|
392
|
+
connector_type, " handshake failed (", tsi_result_to_string(result),
|
393
|
+
")", (tsi_handshake_error_.empty() ? "" : ": "), tsi_handshake_error_));
|
406
394
|
}
|
407
395
|
// Update handshaker result.
|
408
396
|
if (handshaker_result != nullptr) {
|
@@ -558,7 +546,8 @@ void SecurityHandshaker::Shutdown(grpc_error_handle why) {
|
|
558
546
|
is_shutdown_ = true;
|
559
547
|
connector_->cancel_check_peer(&on_peer_checked_, why);
|
560
548
|
tsi_handshaker_shutdown(handshaker_);
|
561
|
-
|
549
|
+
grpc_endpoint_destroy(args_->endpoint);
|
550
|
+
args_->endpoint = nullptr;
|
562
551
|
CleanupArgsForFailureLocked();
|
563
552
|
}
|
564
553
|
}
|
@@ -592,7 +581,6 @@ class FailHandshaker : public Handshaker {
|
|
592
581
|
void DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
|
593
582
|
grpc_closure* on_handshake_done,
|
594
583
|
HandshakerArgs* args) override {
|
595
|
-
grpc_endpoint_shutdown(args->endpoint, status_);
|
596
584
|
grpc_endpoint_destroy(args->endpoint);
|
597
585
|
args->endpoint = nullptr;
|
598
586
|
args->args = ChannelArgs();
|
@@ -167,7 +167,8 @@ void TCPConnectHandshaker::Connected(void* arg, grpc_error_handle error) {
|
|
167
167
|
error = GRPC_ERROR_CREATE("tcp handshaker shutdown");
|
168
168
|
}
|
169
169
|
if (self->endpoint_to_destroy_ != nullptr) {
|
170
|
-
|
170
|
+
grpc_endpoint_destroy(self->endpoint_to_destroy_);
|
171
|
+
self->endpoint_to_destroy_ = nullptr;
|
171
172
|
}
|
172
173
|
if (!self->shutdown_) {
|
173
174
|
self->CleanupArgsForFailureLocked();
|
@@ -18,8 +18,6 @@
|
|
18
18
|
|
19
19
|
#include "src/core/lib/address_utils/parse_address.h"
|
20
20
|
|
21
|
-
#include "absl/log/check.h"
|
22
|
-
|
23
21
|
#include <grpc/support/port_platform.h>
|
24
22
|
|
25
23
|
#include "src/core/lib/iomgr/port.h" // IWYU pragma: keep
|
@@ -43,18 +41,18 @@
|
|
43
41
|
#endif // GRPC_HAVE_UNIX_SOCKET
|
44
42
|
#include <string>
|
45
43
|
|
44
|
+
#include "absl/log/check.h"
|
45
|
+
#include "absl/log/log.h"
|
46
46
|
#include "absl/status/status.h"
|
47
47
|
#include "absl/strings/str_cat.h"
|
48
48
|
#include "absl/strings/strip.h"
|
49
49
|
|
50
|
-
#include <grpc/support/log.h>
|
51
|
-
|
52
|
-
#include "src/core/lib/gpr/string.h"
|
53
50
|
#include "src/core/lib/gprpp/host_port.h"
|
54
51
|
#include "src/core/lib/gprpp/status_helper.h"
|
55
52
|
#include "src/core/lib/iomgr/grpc_if_nametoindex.h"
|
56
53
|
#include "src/core/lib/iomgr/sockaddr.h"
|
57
54
|
#include "src/core/lib/iomgr/socket_utils.h"
|
55
|
+
#include "src/core/util/string.h"
|
58
56
|
|
59
57
|
// IWYU pragma: no_include <arpa/inet.h>
|
60
58
|
|
@@ -63,14 +61,13 @@
|
|
63
61
|
bool grpc_parse_unix(const grpc_core::URI& uri,
|
64
62
|
grpc_resolved_address* resolved_addr) {
|
65
63
|
if (uri.scheme() != "unix") {
|
66
|
-
|
67
|
-
uri.scheme().c_str());
|
64
|
+
LOG(ERROR) << "Expected 'unix' scheme, got '" << uri.scheme() << "'";
|
68
65
|
return false;
|
69
66
|
}
|
70
67
|
grpc_error_handle error =
|
71
68
|
grpc_core::UnixSockaddrPopulate(uri.path(), resolved_addr);
|
72
69
|
if (!error.ok()) {
|
73
|
-
|
70
|
+
LOG(ERROR) << "" << grpc_core::StatusToString(error);
|
74
71
|
return false;
|
75
72
|
}
|
76
73
|
return true;
|
@@ -79,14 +76,14 @@ bool grpc_parse_unix(const grpc_core::URI& uri,
|
|
79
76
|
bool grpc_parse_unix_abstract(const grpc_core::URI& uri,
|
80
77
|
grpc_resolved_address* resolved_addr) {
|
81
78
|
if (uri.scheme() != "unix-abstract") {
|
82
|
-
|
83
|
-
|
79
|
+
LOG(ERROR) << "Expected 'unix-abstract' scheme, got '" << uri.scheme()
|
80
|
+
<< "'";
|
84
81
|
return false;
|
85
82
|
}
|
86
83
|
grpc_error_handle error =
|
87
84
|
grpc_core::UnixAbstractSockaddrPopulate(uri.path(), resolved_addr);
|
88
85
|
if (!error.ok()) {
|
89
|
-
|
86
|
+
LOG(ERROR) << "" << grpc_core::StatusToString(error);
|
90
87
|
return false;
|
91
88
|
}
|
92
89
|
return true;
|
@@ -163,14 +160,13 @@ grpc_error_handle UnixAbstractSockaddrPopulate(
|
|
163
160
|
bool grpc_parse_vsock(const grpc_core::URI& uri,
|
164
161
|
grpc_resolved_address* resolved_addr) {
|
165
162
|
if (uri.scheme() != "vsock") {
|
166
|
-
|
167
|
-
uri.scheme().c_str());
|
163
|
+
LOG(ERROR) << "Expected 'vsock' scheme, got '" << uri.scheme() << "'";
|
168
164
|
return false;
|
169
165
|
}
|
170
166
|
grpc_error_handle error =
|
171
167
|
grpc_core::VSockaddrPopulate(uri.path(), resolved_addr);
|
172
168
|
if (!error.ok()) {
|
173
|
-
|
169
|
+
LOG(ERROR) << "" << grpc_core::StatusToString(error);
|
174
170
|
return false;
|
175
171
|
}
|
176
172
|
return true;
|
@@ -220,8 +216,7 @@ bool grpc_parse_ipv4_hostport(absl::string_view hostport,
|
|
220
216
|
std::string port;
|
221
217
|
if (!grpc_core::SplitHostPort(hostport, &host, &port)) {
|
222
218
|
if (log_errors) {
|
223
|
-
|
224
|
-
std::string(hostport).c_str());
|
219
|
+
LOG(ERROR) << "Failed gpr_split_host_port(" << hostport << ", ...)";
|
225
220
|
}
|
226
221
|
return false;
|
227
222
|
}
|
@@ -232,19 +227,19 @@ bool grpc_parse_ipv4_hostport(absl::string_view hostport,
|
|
232
227
|
in->sin_family = GRPC_AF_INET;
|
233
228
|
if (grpc_inet_pton(GRPC_AF_INET, host.c_str(), &in->sin_addr) == 0) {
|
234
229
|
if (log_errors) {
|
235
|
-
|
230
|
+
LOG(ERROR) << "invalid ipv4 address: '" << host << "'";
|
236
231
|
}
|
237
232
|
goto done;
|
238
233
|
}
|
239
234
|
// Parse port.
|
240
235
|
if (port.empty()) {
|
241
|
-
if (log_errors)
|
236
|
+
if (log_errors) LOG(ERROR) << "no port given for ipv4 scheme";
|
242
237
|
goto done;
|
243
238
|
}
|
244
239
|
int port_num;
|
245
240
|
if (sscanf(port.c_str(), "%d", &port_num) != 1 || port_num < 0 ||
|
246
241
|
port_num > 65535) {
|
247
|
-
if (log_errors)
|
242
|
+
if (log_errors) LOG(ERROR) << "invalid ipv4 port: '" << port << "'";
|
248
243
|
goto done;
|
249
244
|
}
|
250
245
|
in->sin_port = grpc_htons(static_cast<uint16_t>(port_num));
|
@@ -256,8 +251,7 @@ done:
|
|
256
251
|
bool grpc_parse_ipv4(const grpc_core::URI& uri,
|
257
252
|
grpc_resolved_address* resolved_addr) {
|
258
253
|
if (uri.scheme() != "ipv4") {
|
259
|
-
|
260
|
-
uri.scheme().c_str());
|
254
|
+
LOG(ERROR) << "Expected 'ipv4' scheme, got '" << uri.scheme() << "'";
|
261
255
|
return false;
|
262
256
|
}
|
263
257
|
return grpc_parse_ipv4_hostport(absl::StripPrefix(uri.path(), "/"),
|
@@ -272,8 +266,7 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
|
|
272
266
|
std::string port;
|
273
267
|
if (!grpc_core::SplitHostPort(hostport, &host, &port)) {
|
274
268
|
if (log_errors) {
|
275
|
-
|
276
|
-
std::string(hostport).c_str());
|
269
|
+
LOG(ERROR) << "Failed gpr_split_host_port(" << hostport << ", ...)";
|
277
270
|
}
|
278
271
|
return false;
|
279
272
|
}
|
@@ -293,11 +286,9 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
|
|
293
286
|
uint32_t sin6_scope_id = 0;
|
294
287
|
if (host_without_scope_len > GRPC_INET6_ADDRSTRLEN) {
|
295
288
|
if (log_errors) {
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
"GRPC_INET6_ADDRSTRLEN i.e %d)",
|
300
|
-
host_without_scope_len, GRPC_INET6_ADDRSTRLEN);
|
289
|
+
LOG(ERROR) << "invalid ipv6 address length " << host_without_scope_len
|
290
|
+
<< ". Length cannot be greater than "
|
291
|
+
<< "GRPC_INET6_ADDRSTRLEN i.e " << GRPC_INET6_ADDRSTRLEN;
|
301
292
|
}
|
302
293
|
goto done;
|
303
294
|
}
|
@@ -306,7 +297,7 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
|
|
306
297
|
if (grpc_inet_pton(GRPC_AF_INET6, host_without_scope, &in6->sin6_addr) ==
|
307
298
|
0) {
|
308
299
|
if (log_errors) {
|
309
|
-
|
300
|
+
LOG(ERROR) << "invalid ipv6 address: '" << host_without_scope << "'";
|
310
301
|
}
|
311
302
|
goto done;
|
312
303
|
}
|
@@ -314,10 +305,8 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
|
|
314
305
|
host.size() - host_without_scope_len - 1,
|
315
306
|
&sin6_scope_id) == 0) {
|
316
307
|
if ((sin6_scope_id = grpc_if_nametoindex(host_end + 1)) == 0) {
|
317
|
-
|
318
|
-
|
319
|
-
"Non-numeric and failed if_nametoindex.",
|
320
|
-
host_end + 1);
|
308
|
+
LOG(ERROR) << "Invalid interface name: '" << host_end + 1
|
309
|
+
<< "'. Non-numeric and failed if_nametoindex.";
|
321
310
|
goto done;
|
322
311
|
}
|
323
312
|
}
|
@@ -326,20 +315,20 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
|
|
326
315
|
} else {
|
327
316
|
if (grpc_inet_pton(GRPC_AF_INET6, host.c_str(), &in6->sin6_addr) == 0) {
|
328
317
|
if (log_errors) {
|
329
|
-
|
318
|
+
LOG(ERROR) << "invalid ipv6 address: '" << host << "'";
|
330
319
|
}
|
331
320
|
goto done;
|
332
321
|
}
|
333
322
|
}
|
334
323
|
// Parse port.
|
335
324
|
if (port.empty()) {
|
336
|
-
if (log_errors)
|
325
|
+
if (log_errors) LOG(ERROR) << "no port given for ipv6 scheme";
|
337
326
|
goto done;
|
338
327
|
}
|
339
328
|
int port_num;
|
340
329
|
if (sscanf(port.c_str(), "%d", &port_num) != 1 || port_num < 0 ||
|
341
330
|
port_num > 65535) {
|
342
|
-
if (log_errors)
|
331
|
+
if (log_errors) LOG(ERROR) << "invalid ipv6 port: '" << port << "'";
|
343
332
|
goto done;
|
344
333
|
}
|
345
334
|
in6->sin6_port = grpc_htons(static_cast<uint16_t>(port_num));
|
@@ -351,8 +340,7 @@ done:
|
|
351
340
|
bool grpc_parse_ipv6(const grpc_core::URI& uri,
|
352
341
|
grpc_resolved_address* resolved_addr) {
|
353
342
|
if (uri.scheme() != "ipv6") {
|
354
|
-
|
355
|
-
uri.scheme().c_str());
|
343
|
+
LOG(ERROR) << "Expected 'ipv6' scheme, got '" << uri.scheme() << "'";
|
356
344
|
return false;
|
357
345
|
}
|
358
346
|
return grpc_parse_ipv6_hostport(absl::StripPrefix(uri.path(), "/"),
|
@@ -376,7 +364,7 @@ bool grpc_parse_uri(const grpc_core::URI& uri,
|
|
376
364
|
if (uri.scheme() == "ipv6") {
|
377
365
|
return grpc_parse_ipv6(uri, resolved_addr);
|
378
366
|
}
|
379
|
-
|
367
|
+
LOG(ERROR) << "Can't parse scheme '" << uri.scheme() << "'";
|
380
368
|
return false;
|
381
369
|
}
|
382
370
|
|
@@ -32,12 +32,11 @@
|
|
32
32
|
#include <string>
|
33
33
|
#include <utility>
|
34
34
|
|
35
|
+
#include "absl/log/log.h"
|
35
36
|
#include "absl/status/status.h"
|
36
37
|
#include "absl/strings/str_cat.h"
|
37
38
|
#include "absl/strings/str_format.h"
|
38
39
|
|
39
|
-
#include <grpc/support/log.h>
|
40
|
-
|
41
40
|
#include "src/core/lib/gprpp/crash.h"
|
42
41
|
#include "src/core/lib/gprpp/host_port.h"
|
43
42
|
#include "src/core/lib/iomgr/port.h"
|
@@ -372,8 +371,8 @@ int grpc_sockaddr_get_port(const grpc_resolved_address* resolved_addr) {
|
|
372
371
|
return 1;
|
373
372
|
#endif
|
374
373
|
default:
|
375
|
-
|
376
|
-
|
374
|
+
LOG(ERROR) << "Unknown socket family " << addr->sa_family
|
375
|
+
<< " in grpc_sockaddr_get_port";
|
377
376
|
return 0;
|
378
377
|
}
|
379
378
|
}
|
@@ -394,8 +393,8 @@ int grpc_sockaddr_set_port(grpc_resolved_address* resolved_addr, int port) {
|
|
394
393
|
grpc_htons(static_cast<uint16_t>(port));
|
395
394
|
return 1;
|
396
395
|
default:
|
397
|
-
|
398
|
-
|
396
|
+
LOG(ERROR) << "Unknown socket family " << addr->sa_family
|
397
|
+
<< " in grpc_sockaddr_set_port";
|
399
398
|
return 0;
|
400
399
|
}
|
401
400
|
}
|
data/src/core/lib/avl/avl.h
CHANGED
@@ -23,9 +23,9 @@
|
|
23
23
|
|
24
24
|
#include <grpc/support/port_platform.h>
|
25
25
|
|
26
|
-
#include "src/core/lib/gpr/useful.h"
|
27
26
|
#include "src/core/lib/gprpp/ref_counted.h"
|
28
27
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
28
|
+
#include "src/core/util/useful.h"
|
29
29
|
|
30
30
|
namespace grpc_core {
|
31
31
|
|