grpc 1.75.0.pre1 → 1.76.0.pre1
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 +18 -5
- data/include/grpc/credentials.h +21 -5
- data/src/core/call/call_filters.cc +4 -4
- data/src/core/call/call_filters.h +36 -36
- data/src/core/call/call_spine.h +27 -27
- data/src/core/call/client_call.cc +6 -5
- data/src/core/call/filter_fusion.h +5 -5
- data/src/core/call/metadata_batch.h +3 -3
- data/src/core/call/security_context.cc +1 -1
- data/src/core/call/server_call.cc +4 -4
- data/src/core/call/server_call.h +1 -1
- data/src/core/channelz/channelz.cc +12 -18
- data/src/core/channelz/channelz.h +32 -16
- data/src/core/channelz/channelz_registry.h +11 -0
- data/src/core/channelz/property_list.cc +18 -0
- data/src/core/channelz/property_list.h +10 -1
- data/src/core/channelz/text_encode.cc +66 -0
- data/src/core/channelz/text_encode.h +29 -0
- data/src/core/channelz/v2tov1/convert.cc +11 -0
- data/src/core/channelz/v2tov1/legacy_api.cc +15 -8
- data/src/core/channelz/ztrace_collector.h +247 -86
- data/src/core/client_channel/backup_poller.cc +5 -6
- data/src/core/client_channel/client_channel.cc +20 -13
- data/src/core/client_channel/client_channel_filter.cc +53 -45
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_internal.h +3 -4
- data/src/core/client_channel/config_selector.h +3 -3
- data/src/core/client_channel/dynamic_filters.cc +3 -3
- data/src/core/client_channel/global_subchannel_pool.cc +0 -37
- data/src/core/client_channel/global_subchannel_pool.h +0 -27
- data/src/core/client_channel/load_balanced_call_destination.cc +7 -7
- data/src/core/client_channel/local_subchannel_pool.cc +4 -4
- data/src/core/client_channel/retry_filter.h +3 -3
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/subchannel.cc +8 -8
- data/src/core/client_channel/subchannel_stream_client.cc +4 -4
- data/src/core/config/config_vars.cc +30 -1
- data/src/core/config/config_vars.h +21 -0
- data/src/core/config/core_configuration.cc +5 -5
- data/src/core/config/core_configuration.h +7 -7
- data/src/core/config/load_config.cc +12 -0
- data/src/core/config/load_config.h +2 -0
- data/src/core/credentials/call/call_credentials.h +2 -2
- data/src/core/credentials/call/call_creds_util.cc +4 -3
- data/src/core/credentials/call/composite/composite_call_credentials.cc +4 -4
- data/src/core/credentials/call/external/aws_external_account_credentials.cc +3 -3
- data/src/core/credentials/call/external/external_account_credentials.cc +1 -1
- data/src/core/credentials/call/external/url_external_account_credentials.cc +1 -1
- data/src/core/credentials/call/iam/iam_credentials.cc +4 -4
- data/src/core/credentials/call/jwt/json_token.cc +3 -3
- data/src/core/credentials/call/jwt/jwt_credentials.cc +2 -2
- data/src/core/credentials/call/jwt/jwt_verifier.cc +14 -13
- data/src/core/credentials/call/oauth2/oauth2_credentials.cc +20 -12
- data/src/core/credentials/call/plugin/plugin_credentials.cc +2 -2
- data/src/core/credentials/transport/alts/alts_credentials.cc +4 -4
- data/src/core/credentials/transport/alts/alts_security_connector.cc +14 -12
- data/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc +22 -2
- data/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc +10 -1
- data/src/core/credentials/transport/alts/grpc_alts_credentials_options.h +31 -0
- data/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc +8 -3
- data/src/core/credentials/transport/composite/composite_channel_credentials.cc +5 -5
- data/src/core/credentials/transport/fake/fake_security_connector.cc +2 -2
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +78 -28
- data/src/core/credentials/transport/insecure/insecure_security_connector.cc +3 -3
- data/src/core/credentials/transport/local/local_security_connector.cc +8 -8
- data/src/core/credentials/transport/security_connector.cc +5 -5
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +12 -12
- data/src/core/credentials/transport/ssl/ssl_credentials.h +2 -2
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +3 -3
- data/src/core/credentials/transport/tls/certificate_provider_registry.cc +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +24 -24
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +5 -5
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.h +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +17 -17
- data/src/core/credentials/transport/tls/ssl_utils.cc +14 -9
- data/src/core/credentials/transport/tls/tls_credentials.cc +2 -2
- data/src/core/credentials/transport/tls/tls_security_connector.cc +11 -11
- data/src/core/credentials/transport/transport_credentials.cc +2 -2
- data/src/core/credentials/transport/transport_credentials.h +2 -2
- data/src/core/credentials/transport/xds/xds_credentials.cc +5 -5
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +2 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +8 -8
- data/src/core/ext/filters/http/message_compress/compression_filter.h +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -7
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -2
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -9
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +10 -7
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +96 -88
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +12 -7
- data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +60 -0
- data/src/core/ext/transport/chttp2/transport/frame.cc +32 -10
- data/src/core/ext/transport/chttp2/transport/frame.h +16 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +28 -12
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +27 -27
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +543 -366
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +198 -277
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +11 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +179 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +51 -23
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +13 -6
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +115 -71
- data/src/core/ext/transport/chttp2/transport/internal.h +6 -14
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +7 -7
- data/src/core/ext/transport/chttp2/transport/parsing.cc +17 -15
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +62 -26
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +58 -22
- data/src/core/ext/transport/chttp2/transport/stream.h +207 -0
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +328 -187
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +17 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.h +52 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +2 -2
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +181 -79
- data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/writing.cc +3 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +3 -3
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +740 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +218 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +46 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +87 -55
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +23 -21
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c +80 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h +47 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.c +129 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.h +72 -0
- data/src/core/filter/auth/server_auth_filter.cc +2 -2
- data/src/core/handshaker/handshaker.cc +3 -3
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +2 -2
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +2 -2
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +31 -8
- data/src/core/handshaker/security/secure_endpoint.cc +16 -6
- data/src/core/handshaker/security/security_handshaker.cc +3 -3
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -2
- data/src/core/lib/channel/channel_stack.cc +8 -5
- data/src/core/lib/channel/channel_stack.h +3 -0
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -0
- data/src/core/lib/channel/connected_channel.cc +2 -2
- data/src/core/lib/channel/promise_based_filter.cc +69 -64
- data/src/core/lib/channel/promise_based_filter.h +16 -15
- data/src/core/lib/compression/compression_internal.cc +2 -2
- data/src/core/lib/compression/message_compress.cc +7 -7
- data/src/core/lib/event_engine/ares_resolver.cc +22 -20
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +2 -2
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +2 -2
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +2 -2
- data/src/core/lib/event_engine/extensions/channelz.h +2 -2
- data/src/core/lib/event_engine/extensions/supports_fd.h +5 -5
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +8 -8
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +10 -10
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +23 -22
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +11 -11
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +168 -170
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +33 -54
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +1 -1
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +3 -3
- data/src/core/lib/event_engine/resolved_address.cc +3 -3
- data/src/core/lib/event_engine/shim.cc +8 -11
- data/src/core/lib/event_engine/shim.h +2 -1
- data/src/core/lib/event_engine/slice.cc +2 -2
- data/src/core/lib/event_engine/tcp_socket_utils.cc +11 -11
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +7 -7
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +31 -31
- data/src/core/lib/event_engine/windows/iocp.cc +10 -10
- data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +11 -11
- data/src/core/lib/event_engine/windows/windows_engine.cc +16 -14
- data/src/core/lib/event_engine/windows/windows_listener.cc +7 -7
- data/src/core/lib/experiments/experiments.cc +105 -18
- data/src/core/lib/experiments/experiments.h +43 -11
- data/src/core/lib/iomgr/call_combiner.cc +3 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +6 -6
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +5 -5
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +15 -14
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +15 -15
- data/src/core/lib/iomgr/ev_poll_posix.cc +11 -11
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +5 -4
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +8 -8
- data/src/core/lib/iomgr/iomgr_windows.cc +3 -3
- data/src/core/lib/iomgr/lockfree_event.cc +2 -2
- data/src/core/lib/iomgr/polling_entity.cc +3 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_windows.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +4 -4
- data/src/core/lib/iomgr/tcp_posix.cc +42 -42
- data/src/core/lib/iomgr/tcp_server.cc +5 -0
- data/src/core/lib/iomgr/tcp_server.h +7 -0
- data/src/core/lib/iomgr/tcp_server_posix.cc +47 -27
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -5
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +2 -2
- data/src/core/lib/iomgr/tcp_server_windows.cc +68 -29
- data/src/core/lib/iomgr/tcp_windows.cc +7 -7
- data/src/core/lib/iomgr/timer_generic.cc +2 -2
- data/src/core/lib/iomgr/timer_manager.cc +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -2
- data/src/core/lib/promise/activity.cc +2 -2
- data/src/core/lib/promise/activity.h +6 -6
- data/src/core/lib/promise/context.h +2 -2
- data/src/core/lib/promise/detail/join_state.h +9 -9
- data/src/core/lib/promise/detail/seq_state.h +13 -13
- data/src/core/lib/promise/detail/status.h +2 -2
- data/src/core/lib/promise/for_each.h +5 -5
- data/src/core/lib/promise/interceptor_list.h +2 -2
- data/src/core/lib/promise/latch.h +7 -7
- data/src/core/lib/promise/mpsc.cc +26 -26
- data/src/core/lib/promise/mpsc.h +2 -2
- data/src/core/lib/promise/observable.h +4 -4
- data/src/core/lib/promise/party.cc +32 -25
- data/src/core/lib/promise/party.h +16 -19
- data/src/core/lib/promise/pipe.h +15 -15
- data/src/core/lib/promise/poll.h +5 -4
- data/src/core/lib/promise/promise.h +0 -2
- data/src/core/lib/promise/sleep.cc +3 -1
- data/src/core/lib/promise/status_flag.h +7 -7
- data/src/core/lib/promise/try_join.h +2 -2
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resource_quota/arena.h +15 -2
- data/src/core/lib/resource_quota/connection_quota.cc +9 -7
- data/src/core/lib/resource_quota/memory_quota.cc +45 -24
- data/src/core/lib/resource_quota/memory_quota.h +48 -16
- data/src/core/lib/resource_quota/telemetry.h +54 -0
- data/src/core/lib/resource_quota/thread_quota.cc +2 -2
- data/src/core/lib/resource_tracker/resource_tracker.cc +33 -0
- data/src/core/lib/resource_tracker/resource_tracker.h +46 -0
- data/src/core/lib/security/authorization/audit_logging.cc +5 -5
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +2 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
- data/src/core/lib/surface/byte_buffer_reader.cc +2 -2
- data/src/core/lib/surface/call.cc +16 -14
- data/src/core/lib/surface/call.h +1 -1
- data/src/core/lib/surface/call_utils.cc +2 -2
- data/src/core/lib/surface/call_utils.h +2 -2
- data/src/core/lib/surface/channel.cc +4 -4
- data/src/core/lib/surface/channel_create.cc +10 -6
- data/src/core/lib/surface/channel_init.cc +80 -23
- data/src/core/lib/surface/channel_init.h +26 -11
- data/src/core/lib/surface/completion_queue.cc +17 -16
- data/src/core/lib/surface/completion_queue_factory.cc +7 -7
- data/src/core/lib/surface/connection_context.h +45 -2
- data/src/core/lib/surface/filter_stack_call.cc +12 -23
- data/src/core/lib/surface/filter_stack_call.h +3 -4
- data/src/core/lib/surface/legacy_channel.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +2 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.h +3 -3
- data/src/core/lib/transport/promise_endpoint.cc +3 -3
- data/src/core/lib/transport/promise_endpoint.h +8 -8
- data/src/core/lib/transport/timeout_encoding.cc +4 -4
- data/src/core/load_balancing/child_policy_handler.cc +4 -4
- data/src/core/load_balancing/endpoint_list.cc +2 -2
- data/src/core/load_balancing/grpclb/grpclb.cc +24 -24
- data/src/core/load_balancing/health_check_client.cc +4 -4
- data/src/core/load_balancing/health_check_client_internal.h +2 -2
- data/src/core/load_balancing/lb_policy_registry.cc +2 -2
- data/src/core/load_balancing/oob_backend_metric.cc +4 -4
- data/src/core/load_balancing/oob_backend_metric_internal.h +2 -2
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
- data/src/core/load_balancing/pick_first/pick_first.cc +14 -14
- data/src/core/load_balancing/priority/priority.cc +23 -24
- data/src/core/load_balancing/ring_hash/ring_hash.cc +3 -3
- data/src/core/load_balancing/rls/rls.cc +13 -13
- data/src/core/load_balancing/round_robin/round_robin.cc +9 -9
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +3 -3
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +33 -26
- data/src/core/load_balancing/weighted_target/weighted_target.cc +5 -5
- data/src/core/load_balancing/xds/cds.cc +76 -32
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +3 -3
- data/src/core/load_balancing/xds/xds_override_host.cc +4 -4
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +33 -33
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +10 -10
- data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -3
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +2 -2
- data/src/core/resolver/endpoint_addresses.cc +3 -3
- data/src/core/resolver/endpoint_addresses.h +3 -0
- data/src/core/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +41 -54
- data/src/core/resolver/polling_resolver.cc +3 -3
- data/src/core/resolver/resolver_registry.cc +5 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +5 -5
- data/src/core/resolver/xds/xds_resolver.cc +9 -9
- data/src/core/server/server.cc +38 -38
- data/src/core/server/server_call_tracer_filter.h +4 -4
- data/src/core/server/server_config_selector_filter.cc +2 -2
- data/src/core/server/xds_server_config_fetcher.cc +9 -8
- data/src/core/service_config/service_config_impl.h +2 -2
- data/src/core/telemetry/call_tracer.cc +39 -49
- data/src/core/telemetry/call_tracer.h +199 -22
- data/src/core/telemetry/histogram.h +205 -0
- data/src/core/telemetry/instrument.cc +719 -0
- data/src/core/telemetry/instrument.h +932 -0
- data/src/core/telemetry/metrics.cc +13 -5
- data/src/core/telemetry/metrics.h +3 -1
- data/src/core/telemetry/stats_data.cc +0 -19
- data/src/core/telemetry/stats_data.h +0 -19
- data/src/core/transport/auth_context.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +78 -45
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -0
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +3 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +39 -31
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +7 -7
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +3 -3
- data/src/core/tsi/fake_transport_security.cc +4 -4
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +4 -4
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +9 -9
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +3 -3
- data/src/core/tsi/ssl_transport_security.cc +26 -25
- data/src/core/tsi/ssl_transport_security_utils.cc +9 -9
- data/src/core/util/chunked_vector.h +4 -4
- data/src/core/util/event_log.cc +2 -2
- data/src/core/util/gcp_metadata_query.cc +2 -2
- data/src/core/util/grpc_check.cc +22 -0
- data/src/core/util/grpc_check.h +103 -0
- data/src/core/util/http_client/httpcli.cc +3 -3
- data/src/core/util/http_client/parser.cc +4 -4
- data/src/core/util/latent_see.h +7 -4
- data/src/core/util/lru_cache.h +4 -4
- data/src/core/util/memory_usage.h +16 -0
- data/src/core/util/posix/directory_reader.cc +3 -2
- data/src/core/util/posix/sync.cc +24 -24
- data/src/core/util/postmortem_emit.cc +52 -0
- data/src/core/util/postmortem_emit.h +30 -0
- data/src/core/util/ref_counted_ptr.h +5 -0
- data/src/core/util/trie_lookup.h +170 -0
- data/src/core/util/unique_ptr_with_bitset.h +5 -5
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +6 -1
- data/src/core/xds/grpc/xds_certificate_provider.cc +3 -3
- data/src/core/xds/grpc/xds_client_grpc.cc +34 -15
- data/src/core/xds/grpc/xds_client_grpc.h +4 -1
- data/src/core/xds/grpc/xds_cluster_parser.cc +2 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_endpoint_parser.cc +2 -2
- data/src/core/xds/grpc/xds_http_filter_registry.cc +4 -3
- data/src/core/xds/grpc/xds_listener_parser.cc +3 -3
- data/src/core/xds/grpc/xds_matcher.cc +277 -0
- data/src/core/xds/grpc/xds_matcher.h +432 -0
- data/src/core/xds/grpc/xds_matcher_action.cc +47 -0
- data/src/core/xds/grpc/xds_matcher_action.h +48 -0
- data/src/core/xds/grpc/xds_matcher_context.cc +29 -0
- data/src/core/xds/grpc/xds_matcher_context.h +46 -0
- data/src/core/xds/grpc/xds_matcher_input.cc +79 -0
- data/src/core/xds/grpc/xds_matcher_input.h +105 -0
- data/src/core/xds/grpc/xds_matcher_parse.cc +356 -0
- data/src/core/xds/grpc/xds_matcher_parse.h +39 -0
- data/src/core/xds/grpc/xds_metadata.cc +4 -3
- data/src/core/xds/grpc/xds_route_config_parser.cc +6 -6
- data/src/core/xds/grpc/xds_routing.cc +3 -3
- data/src/core/xds/grpc/xds_transport_grpc.cc +10 -10
- data/src/core/xds/xds_client/lrs_client.cc +6 -6
- data/src/core/xds/xds_client/xds_client.cc +9 -9
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h +95 -0
- data/third_party/abseil-cpp/absl/container/node_hash_map.h +687 -0
- metadata +37 -2
@@ -29,7 +29,6 @@
|
|
29
29
|
#include <stdlib.h>
|
30
30
|
#include <string.h>
|
31
31
|
|
32
|
-
#include "absl/log/check.h"
|
33
32
|
#include "absl/log/log.h"
|
34
33
|
#include "src/core/lib/iomgr/closure.h"
|
35
34
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
@@ -39,6 +38,7 @@
|
|
39
38
|
#include "src/core/tsi/alts/handshaker/alts_shared_resource.h"
|
40
39
|
#include "src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h"
|
41
40
|
#include "src/core/util/env.h"
|
41
|
+
#include "src/core/util/grpc_check.h"
|
42
42
|
#include "src/core/util/memory.h"
|
43
43
|
#include "src/core/util/sync.h"
|
44
44
|
#include "upb/mem/arena.hpp"
|
@@ -94,6 +94,7 @@ typedef struct alts_tsi_handshaker_result {
|
|
94
94
|
grpc_slice serialized_context;
|
95
95
|
// Peer's maximum frame size.
|
96
96
|
size_t max_frame_size;
|
97
|
+
std::string record_protocol;
|
97
98
|
std::optional<std::string> negotiated_transport_protocol;
|
98
99
|
} alts_tsi_handshaker_result;
|
99
100
|
|
@@ -116,7 +117,7 @@ static tsi_result handshaker_result_extract_peer(
|
|
116
117
|
LOG(ERROR) << "Failed to construct tsi peer";
|
117
118
|
return ok;
|
118
119
|
}
|
119
|
-
|
120
|
+
GRPC_CHECK_NE(&peer->properties[index], nullptr);
|
120
121
|
ok = tsi_construct_string_peer_property_from_cstring(
|
121
122
|
TSI_CERTIFICATE_TYPE_PEER_PROPERTY, TSI_ALTS_CERTIFICATE_TYPE,
|
122
123
|
&peer->properties[index]);
|
@@ -126,7 +127,7 @@ static tsi_result handshaker_result_extract_peer(
|
|
126
127
|
return ok;
|
127
128
|
}
|
128
129
|
index++;
|
129
|
-
|
130
|
+
GRPC_CHECK_NE(&peer->properties[index], nullptr);
|
130
131
|
ok = tsi_construct_string_peer_property_from_cstring(
|
131
132
|
TSI_ALTS_SERVICE_ACCOUNT_PEER_PROPERTY, result->peer_identity,
|
132
133
|
&peer->properties[index]);
|
@@ -135,7 +136,7 @@ static tsi_result handshaker_result_extract_peer(
|
|
135
136
|
LOG(ERROR) << "Failed to set tsi peer property";
|
136
137
|
}
|
137
138
|
index++;
|
138
|
-
|
139
|
+
GRPC_CHECK_NE(&peer->properties[index], nullptr);
|
139
140
|
ok = tsi_construct_string_peer_property(
|
140
141
|
TSI_ALTS_RPC_VERSIONS,
|
141
142
|
reinterpret_cast<char*>(GRPC_SLICE_START_PTR(result->rpc_versions)),
|
@@ -145,7 +146,7 @@ static tsi_result handshaker_result_extract_peer(
|
|
145
146
|
LOG(ERROR) << "Failed to set tsi peer property";
|
146
147
|
}
|
147
148
|
index++;
|
148
|
-
|
149
|
+
GRPC_CHECK_NE(&peer->properties[index], nullptr);
|
149
150
|
ok = tsi_construct_string_peer_property(
|
150
151
|
TSI_ALTS_CONTEXT,
|
151
152
|
reinterpret_cast<char*>(GRPC_SLICE_START_PTR(result->serialized_context)),
|
@@ -155,18 +156,21 @@ static tsi_result handshaker_result_extract_peer(
|
|
155
156
|
LOG(ERROR) << "Failed to set tsi peer property";
|
156
157
|
}
|
157
158
|
index++;
|
158
|
-
|
159
|
+
GRPC_CHECK_NE(&peer->properties[index], nullptr);
|
160
|
+
tsi_security_level security_level =
|
161
|
+
result->record_protocol == ALTS_INTEGRITY_ONLY_RECORD_PROTOCOL
|
162
|
+
? TSI_INTEGRITY_ONLY
|
163
|
+
: TSI_PRIVACY_AND_INTEGRITY;
|
159
164
|
ok = tsi_construct_string_peer_property_from_cstring(
|
160
165
|
TSI_SECURITY_LEVEL_PEER_PROPERTY,
|
161
|
-
tsi_security_level_to_string(
|
162
|
-
&peer->properties[index]);
|
166
|
+
tsi_security_level_to_string(security_level), &peer->properties[index]);
|
163
167
|
if (ok != TSI_OK) {
|
164
168
|
tsi_peer_destruct(peer);
|
165
169
|
LOG(ERROR) << "Failed to set tsi peer property";
|
166
170
|
}
|
167
171
|
if (result->negotiated_transport_protocol.has_value()) {
|
168
172
|
index++;
|
169
|
-
|
173
|
+
GRPC_CHECK_NE(&peer->properties[index], nullptr);
|
170
174
|
ok = tsi_construct_string_peer_property_from_cstring(
|
171
175
|
TSI_ALTS_NEGOTIATED_TRANSPORT_PROTOCOL,
|
172
176
|
result->negotiated_transport_protocol.value().c_str(),
|
@@ -176,7 +180,7 @@ static tsi_result handshaker_result_extract_peer(
|
|
176
180
|
LOG(ERROR) << "Failed to set tsi peer property";
|
177
181
|
}
|
178
182
|
}
|
179
|
-
|
183
|
+
GRPC_CHECK(++index == peer_properties_count);
|
180
184
|
return ok;
|
181
185
|
}
|
182
186
|
|
@@ -221,8 +225,9 @@ static tsi_result handshaker_result_create_zero_copy_grpc_protector(
|
|
221
225
|
kAltsAes128GcmRekeyKeyLength},
|
222
226
|
/*is_rekey=*/true),
|
223
227
|
result->is_client,
|
224
|
-
/*is_integrity_only=*/
|
225
|
-
|
228
|
+
/*is_integrity_only=*/
|
229
|
+
(result->record_protocol == ALTS_INTEGRITY_ONLY_RECORD_PROTOCOL),
|
230
|
+
/*enable_extra_copy=*/false, max_output_protected_frame_size, protector);
|
226
231
|
if (ok != TSI_OK) {
|
227
232
|
LOG(ERROR) << "Failed to create zero-copy grpc protector";
|
228
233
|
}
|
@@ -277,7 +282,7 @@ static void handshaker_result_destroy(tsi_handshaker_result* self) {
|
|
277
282
|
gpr_free(result->unused_bytes);
|
278
283
|
grpc_core::CSliceUnref(result->rpc_versions);
|
279
284
|
grpc_core::CSliceUnref(result->serialized_context);
|
280
|
-
|
285
|
+
delete result;
|
281
286
|
}
|
282
287
|
|
283
288
|
static const tsi_handshaker_result_vtable result_vtable = {
|
@@ -342,9 +347,7 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
|
|
342
347
|
grpc_gcp_Identity_service_account(local_identity);
|
343
348
|
// We don't check if local service account is empty here
|
344
349
|
// because local identity could be empty in certain situations.
|
345
|
-
alts_tsi_handshaker_result* sresult =
|
346
|
-
static_cast<alts_tsi_handshaker_result*>(
|
347
|
-
gpr_zalloc(sizeof(alts_tsi_handshaker_result)));
|
350
|
+
alts_tsi_handshaker_result* sresult = new alts_tsi_handshaker_result();
|
348
351
|
sresult->key_data =
|
349
352
|
static_cast<char*>(gpr_zalloc(kAltsAes128GcmRekeyKeyLength));
|
350
353
|
memcpy(sresult->key_data, key_data.data, kAltsAes128GcmRekeyKeyLength);
|
@@ -366,6 +369,10 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
|
|
366
369
|
std::string(transport_protocol.data, transport_protocol.size);
|
367
370
|
}
|
368
371
|
}
|
372
|
+
|
373
|
+
sresult->record_protocol =
|
374
|
+
std::string(record_protocol.data, record_protocol.size);
|
375
|
+
|
369
376
|
upb::Arena rpc_versions_arena;
|
370
377
|
bool serialized = grpc_gcp_rpc_protocol_versions_encode(
|
371
378
|
peer_rpc_version, rpc_versions_arena.ptr(), &sresult->rpc_versions);
|
@@ -377,9 +384,10 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
|
|
377
384
|
grpc_gcp_AltsContext* context = grpc_gcp_AltsContext_new(context_arena.ptr());
|
378
385
|
grpc_gcp_AltsContext_set_application_protocol(context, application_protocol);
|
379
386
|
grpc_gcp_AltsContext_set_record_protocol(context, record_protocol);
|
380
|
-
|
381
|
-
|
382
|
-
|
387
|
+
grpc_gcp_AltsContext_set_security_level(
|
388
|
+
context, sresult->record_protocol == ALTS_INTEGRITY_ONLY_RECORD_PROTOCOL
|
389
|
+
? TSI_INTEGRITY_ONLY
|
390
|
+
: TSI_PRIVACY_AND_INTEGRITY);
|
383
391
|
grpc_gcp_AltsContext_set_peer_service_account(context, peer_service_account);
|
384
392
|
grpc_gcp_AltsContext_set_local_service_account(context,
|
385
393
|
local_service_account);
|
@@ -456,7 +464,7 @@ static tsi_result alts_tsi_handshaker_continue_handshaker_next(
|
|
456
464
|
handshaker->handshaker_service_url);
|
457
465
|
handshaker->interested_parties =
|
458
466
|
grpc_alts_get_shared_resource_dedicated()->interested_parties;
|
459
|
-
|
467
|
+
GRPC_CHECK_NE(handshaker->interested_parties, nullptr);
|
460
468
|
}
|
461
469
|
grpc_iomgr_cb_func grpc_cb = handshaker->channel == nullptr
|
462
470
|
? on_handshaker_service_resp_recv_dedicated
|
@@ -479,7 +487,7 @@ static tsi_result alts_tsi_handshaker_continue_handshaker_next(
|
|
479
487
|
}
|
480
488
|
{
|
481
489
|
grpc_core::MutexLock lock(&handshaker->mu);
|
482
|
-
|
490
|
+
GRPC_CHECK_EQ(handshaker->client, nullptr);
|
483
491
|
handshaker->client = client;
|
484
492
|
if (handshaker->shutdown) {
|
485
493
|
VLOG(2) << "TSI handshake shutdown";
|
@@ -491,8 +499,8 @@ static tsi_result alts_tsi_handshaker_continue_handshaker_next(
|
|
491
499
|
}
|
492
500
|
if (handshaker->channel == nullptr &&
|
493
501
|
handshaker->client_vtable_for_testing == nullptr) {
|
494
|
-
|
495
|
-
|
502
|
+
GRPC_CHECK(grpc_cq_begin_op(grpc_alts_get_shared_resource_dedicated()->cq,
|
503
|
+
handshaker->client));
|
496
504
|
}
|
497
505
|
grpc_slice slice = (received_bytes == nullptr || received_bytes_size == 0)
|
498
506
|
? grpc_empty_slice()
|
@@ -534,7 +542,7 @@ static void alts_tsi_handshaker_create_channel(
|
|
534
542
|
alts_tsi_handshaker_continue_handshaker_next_args* next_args =
|
535
543
|
static_cast<alts_tsi_handshaker_continue_handshaker_next_args*>(arg);
|
536
544
|
alts_tsi_handshaker* handshaker = next_args->handshaker;
|
537
|
-
|
545
|
+
GRPC_CHECK_EQ(handshaker->channel, nullptr);
|
538
546
|
grpc_channel_credentials* creds = grpc_insecure_credentials_create();
|
539
547
|
// Disable retries so that we quickly get a signal when the
|
540
548
|
// handshake server is not reachable.
|
@@ -643,7 +651,7 @@ static tsi_result handshaker_next_dedicated(
|
|
643
651
|
}
|
644
652
|
|
645
653
|
static void handshaker_shutdown(tsi_handshaker* self) {
|
646
|
-
|
654
|
+
GRPC_CHECK_NE(self, nullptr);
|
647
655
|
alts_tsi_handshaker* handshaker =
|
648
656
|
reinterpret_cast<alts_tsi_handshaker*>(self);
|
649
657
|
grpc_core::MutexLock lock(&handshaker->mu);
|
@@ -689,7 +697,7 @@ static const tsi_handshaker_vtable handshaker_vtable_dedicated = {
|
|
689
697
|
handshaker_shutdown};
|
690
698
|
|
691
699
|
bool alts_tsi_handshaker_has_shutdown(alts_tsi_handshaker* handshaker) {
|
692
|
-
|
700
|
+
GRPC_CHECK_NE(handshaker, nullptr);
|
693
701
|
grpc_core::MutexLock lock(&handshaker->mu);
|
694
702
|
return handshaker->shutdown;
|
695
703
|
}
|
@@ -729,8 +737,8 @@ tsi_result alts_tsi_handshaker_create(
|
|
729
737
|
void alts_tsi_handshaker_result_set_unused_bytes(tsi_handshaker_result* result,
|
730
738
|
grpc_slice* recv_bytes,
|
731
739
|
size_t bytes_consumed) {
|
732
|
-
|
733
|
-
|
740
|
+
GRPC_CHECK(recv_bytes != nullptr);
|
741
|
+
GRPC_CHECK_NE(result, nullptr);
|
734
742
|
if (GRPC_SLICE_LENGTH(*recv_bytes) == bytes_consumed) {
|
735
743
|
return;
|
736
744
|
}
|
@@ -749,19 +757,19 @@ namespace internal {
|
|
749
757
|
|
750
758
|
bool alts_tsi_handshaker_get_has_sent_start_message_for_testing(
|
751
759
|
alts_tsi_handshaker* handshaker) {
|
752
|
-
|
760
|
+
GRPC_CHECK_NE(handshaker, nullptr);
|
753
761
|
return handshaker->has_sent_start_message;
|
754
762
|
}
|
755
763
|
|
756
764
|
void alts_tsi_handshaker_set_client_vtable_for_testing(
|
757
765
|
alts_tsi_handshaker* handshaker, alts_handshaker_client_vtable* vtable) {
|
758
|
-
|
766
|
+
GRPC_CHECK_NE(handshaker, nullptr);
|
759
767
|
handshaker->client_vtable_for_testing = vtable;
|
760
768
|
}
|
761
769
|
|
762
770
|
bool alts_tsi_handshaker_get_is_client_for_testing(
|
763
771
|
alts_tsi_handshaker* handshaker) {
|
764
|
-
|
772
|
+
GRPC_CHECK_NE(handshaker, nullptr);
|
765
773
|
return handshaker->is_client;
|
766
774
|
}
|
767
775
|
|
@@ -21,10 +21,10 @@
|
|
21
21
|
#include <grpc/byte_buffer_reader.h>
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include "absl/log/check.h"
|
25
24
|
#include "absl/log/log.h"
|
26
25
|
#include "src/core/lib/slice/slice.h"
|
27
26
|
#include "src/core/lib/slice/slice_internal.h"
|
27
|
+
#include "src/core/util/grpc_check.h"
|
28
28
|
|
29
29
|
tsi_result alts_tsi_utils_convert_to_tsi_result(grpc_status_code code) {
|
30
30
|
switch (code) {
|
@@ -45,8 +45,8 @@ tsi_result alts_tsi_utils_convert_to_tsi_result(grpc_status_code code) {
|
|
45
45
|
|
46
46
|
grpc_gcp_HandshakerResp* alts_tsi_utils_deserialize_response(
|
47
47
|
grpc_byte_buffer* resp_buffer, upb_Arena* arena) {
|
48
|
-
|
49
|
-
|
48
|
+
GRPC_CHECK_NE(resp_buffer, nullptr);
|
49
|
+
GRPC_CHECK_NE(arena, nullptr);
|
50
50
|
grpc_byte_buffer_reader bbr;
|
51
51
|
grpc_byte_buffer_reader_init(&bbr, resp_buffer);
|
52
52
|
grpc_slice slice = grpc_byte_buffer_reader_readall(&bbr);
|
data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc
CHANGED
@@ -22,13 +22,13 @@
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
#include <string.h>
|
24
24
|
|
25
|
-
#include "absl/log/check.h"
|
26
25
|
#include "absl/log/log.h"
|
27
26
|
#include "src/core/lib/slice/slice.h"
|
28
27
|
#include "src/core/lib/slice/slice_internal.h"
|
29
28
|
#include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h"
|
30
29
|
#include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
|
31
30
|
#include "src/core/util/crash.h"
|
31
|
+
#include "src/core/util/grpc_check.h"
|
32
32
|
|
33
33
|
// Main struct for alts_grpc_integrity_only_record_protocol.
|
34
34
|
typedef struct alts_grpc_integrity_only_record_protocol {
|
@@ -141,14 +141,14 @@ static tsi_result alts_grpc_integrity_only_unprotect(
|
|
141
141
|
grpc_slice_buffer_reset_and_unref(&rp->header_sb);
|
142
142
|
grpc_slice_buffer_move_first(protected_slices, rp->header_length,
|
143
143
|
&rp->header_sb);
|
144
|
-
|
144
|
+
GRPC_CHECK(rp->header_sb.length == rp->header_length);
|
145
145
|
iovec_t header_iovec = alts_grpc_record_protocol_get_header_iovec(rp);
|
146
146
|
// Moves protected slices data to data_sb and leaves the remaining tag.
|
147
147
|
grpc_slice_buffer_reset_and_unref(&integrity_only_record_protocol->data_sb);
|
148
148
|
grpc_slice_buffer_move_first(protected_slices,
|
149
149
|
protected_slices->length - rp->tag_length,
|
150
150
|
&integrity_only_record_protocol->data_sb);
|
151
|
-
|
151
|
+
GRPC_CHECK(protected_slices->length == rp->tag_length);
|
152
152
|
iovec_t tag_iovec = {nullptr, rp->tag_length};
|
153
153
|
if (protected_slices->count == 1) {
|
154
154
|
tag_iovec.iov_base = GRPC_SLICE_START_PTR(protected_slices->slices[0]);
|
@@ -22,11 +22,11 @@
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
#include <string.h>
|
24
24
|
|
25
|
-
#include "absl/log/check.h"
|
26
25
|
#include "absl/log/log.h"
|
27
26
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
28
27
|
#include "src/core/lib/slice/slice_internal.h"
|
29
28
|
#include "src/core/util/crash.h"
|
29
|
+
#include "src/core/util/grpc_check.h"
|
30
30
|
#include "src/core/util/useful.h"
|
31
31
|
|
32
32
|
const size_t kInitialIovecBufferSize = 8;
|
@@ -34,8 +34,8 @@ const size_t kInitialIovecBufferSize = 8;
|
|
34
34
|
// Makes sure iovec_buf in alts_grpc_record_protocol is large enough.
|
35
35
|
static void ensure_iovec_buf_size(alts_grpc_record_protocol* rp,
|
36
36
|
const grpc_slice_buffer* sb) {
|
37
|
-
|
38
|
-
|
37
|
+
GRPC_CHECK(rp != nullptr);
|
38
|
+
GRPC_CHECK_NE(sb, nullptr);
|
39
39
|
if (sb->count <= rp->iovec_buf_length) {
|
40
40
|
return;
|
41
41
|
}
|
@@ -50,8 +50,8 @@ static void ensure_iovec_buf_size(alts_grpc_record_protocol* rp,
|
|
50
50
|
|
51
51
|
void alts_grpc_record_protocol_convert_slice_buffer_to_iovec(
|
52
52
|
alts_grpc_record_protocol* rp, const grpc_slice_buffer* sb) {
|
53
|
-
|
54
|
-
|
53
|
+
GRPC_CHECK(rp != nullptr);
|
54
|
+
GRPC_CHECK_NE(sb, nullptr);
|
55
55
|
ensure_iovec_buf_size(rp, sb);
|
56
56
|
for (size_t i = 0; i < sb->count; i++) {
|
57
57
|
rp->iovec_buf[i].iov_base = GRPC_SLICE_START_PTR(sb->slices[i]);
|
@@ -61,8 +61,8 @@ void alts_grpc_record_protocol_convert_slice_buffer_to_iovec(
|
|
61
61
|
|
62
62
|
void alts_grpc_record_protocol_copy_slice_buffer(const grpc_slice_buffer* src,
|
63
63
|
unsigned char* dst) {
|
64
|
-
|
65
|
-
|
64
|
+
GRPC_CHECK(src != nullptr);
|
65
|
+
GRPC_CHECK_NE(dst, nullptr);
|
66
66
|
for (size_t i = 0; i < src->count; i++) {
|
67
67
|
size_t slice_length = GRPC_SLICE_LENGTH(src->slices[i]);
|
68
68
|
memcpy(dst, GRPC_SLICE_START_PTR(src->slices[i]), slice_length);
|
@@ -25,7 +25,6 @@
|
|
25
25
|
#include <memory>
|
26
26
|
#include <utility>
|
27
27
|
|
28
|
-
#include "absl/log/check.h"
|
29
28
|
#include "absl/log/log.h"
|
30
29
|
#include "src/core/tsi/alts/crypt/gsec.h"
|
31
30
|
#include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h"
|
@@ -33,6 +32,7 @@
|
|
33
32
|
#include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h"
|
34
33
|
#include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
|
35
34
|
#include "src/core/tsi/transport_security_grpc.h"
|
35
|
+
#include "src/core/util/grpc_check.h"
|
36
36
|
|
37
37
|
constexpr size_t kMinFrameLength = 1024;
|
38
38
|
constexpr size_t kDefaultFrameLength = 16 * 1024;
|
@@ -84,7 +84,7 @@ static bool read_frame_size(const grpc_slice_buffer* sb,
|
|
84
84
|
remaining -= slice_length;
|
85
85
|
}
|
86
86
|
}
|
87
|
-
|
87
|
+
GRPC_CHECK_EQ(remaining, 0u);
|
88
88
|
// Gets little-endian frame size.
|
89
89
|
uint32_t frame_size = (static_cast<uint32_t>(frame_size_buffer[3]) << 24) |
|
90
90
|
(static_cast<uint32_t>(frame_size_buffer[2]) << 16) |
|
@@ -300,7 +300,7 @@ tsi_result alts_zero_copy_grpc_protector_create(
|
|
300
300
|
impl->max_unprotected_data_size =
|
301
301
|
alts_grpc_record_protocol_max_unprotected_data_size(
|
302
302
|
impl->record_protocol, max_protected_frame_size_to_set);
|
303
|
-
|
303
|
+
GRPC_CHECK_GT(impl->max_unprotected_data_size, 0u);
|
304
304
|
// Allocates internal slice buffers.
|
305
305
|
grpc_slice_buffer_init(&impl->unprotected_staging_sb);
|
306
306
|
grpc_slice_buffer_init(&impl->protected_sb);
|
@@ -23,12 +23,12 @@
|
|
23
23
|
#include <stdlib.h>
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
-
#include "absl/log/check.h"
|
27
26
|
#include "absl/log/log.h"
|
28
27
|
#include "src/core/lib/slice/slice_internal.h"
|
29
28
|
#include "src/core/tsi/transport_security_grpc.h"
|
30
29
|
#include "src/core/tsi/transport_security_interface.h"
|
31
30
|
#include "src/core/util/crash.h"
|
31
|
+
#include "src/core/util/grpc_check.h"
|
32
32
|
#include "src/core/util/memory.h"
|
33
33
|
|
34
34
|
// --- Constants. ---
|
@@ -124,8 +124,8 @@ static void store32_little_endian(uint32_t value, unsigned char* buf) {
|
|
124
124
|
}
|
125
125
|
|
126
126
|
static uint32_t read_frame_size(const grpc_slice_buffer* sb) {
|
127
|
-
|
128
|
-
|
127
|
+
GRPC_CHECK(sb != nullptr);
|
128
|
+
GRPC_CHECK(sb->length >= TSI_FAKE_FRAME_HEADER_SIZE);
|
129
129
|
uint8_t frame_size_buffer[TSI_FAKE_FRAME_HEADER_SIZE];
|
130
130
|
uint8_t* buf = frame_size_buffer;
|
131
131
|
// Copies the first 4 bytes to a temporary buffer.
|
@@ -142,7 +142,7 @@ static uint32_t read_frame_size(const grpc_slice_buffer* sb) {
|
|
142
142
|
remaining -= slice_length;
|
143
143
|
}
|
144
144
|
}
|
145
|
-
|
145
|
+
GRPC_CHECK_EQ(remaining, 0u);
|
146
146
|
return load32_little_endian(frame_size_buffer);
|
147
147
|
}
|
148
148
|
|
@@ -18,11 +18,11 @@
|
|
18
18
|
|
19
19
|
#include <map>
|
20
20
|
|
21
|
-
#include "absl/log/check.h"
|
22
21
|
#include "absl/log/log.h"
|
23
22
|
#include "src/core/lib/iomgr/error.h"
|
24
23
|
#include "src/core/lib/slice/slice_internal.h"
|
25
24
|
#include "src/core/util/crash.h"
|
25
|
+
#include "src/core/util/grpc_check.h"
|
26
26
|
#include "src/core/util/sync.h"
|
27
27
|
|
28
28
|
using TlsSessionKeyLogger = tsi::TlsSessionKeyLoggerCache::TlsSessionKeyLogger;
|
@@ -48,8 +48,8 @@ TlsSessionKeyLoggerCache::TlsSessionKeyLogger::TlsSessionKeyLogger(
|
|
48
48
|
grpc_core::RefCountedPtr<TlsSessionKeyLoggerCache> cache)
|
49
49
|
: tls_session_key_log_file_path_(std::move(tls_session_key_log_file_path)),
|
50
50
|
cache_(std::move(cache)) {
|
51
|
-
|
52
|
-
|
51
|
+
GRPC_CHECK(!tls_session_key_log_file_path_.empty());
|
52
|
+
GRPC_CHECK(cache_ != nullptr);
|
53
53
|
fd_ = fopen(tls_session_key_log_file_path_.c_str(), "a");
|
54
54
|
if (fd_ == nullptr) {
|
55
55
|
grpc_error_handle error = GRPC_OS_ERROR(errno, "fopen");
|
@@ -108,7 +108,7 @@ TlsSessionKeyLoggerCache::~TlsSessionKeyLoggerCache() {
|
|
108
108
|
grpc_core::RefCountedPtr<TlsSessionKeyLogger> TlsSessionKeyLoggerCache::Get(
|
109
109
|
std::string tls_session_key_log_file_path) {
|
110
110
|
gpr_once_init(&g_cache_mutex_init, do_cache_mutex_init);
|
111
|
-
|
111
|
+
GRPC_DCHECK_NE(g_tls_session_key_log_cache_mu, nullptr);
|
112
112
|
if (tls_session_key_log_file_path.empty()) {
|
113
113
|
return nullptr;
|
114
114
|
}
|
@@ -21,11 +21,11 @@
|
|
21
21
|
#include <grpc/support/port_platform.h>
|
22
22
|
#include <grpc/support/string_util.h>
|
23
23
|
|
24
|
-
#include "absl/log/check.h"
|
25
24
|
#include "absl/log/log.h"
|
26
25
|
#include "src/core/lib/slice/slice_internal.h"
|
27
26
|
#include "src/core/tsi/ssl/session_cache/ssl_session.h"
|
28
27
|
#include "src/core/util/crash.h"
|
28
|
+
#include "src/core/util/grpc_check.h"
|
29
29
|
#include "src/core/util/sync.h"
|
30
30
|
|
31
31
|
namespace tsi {
|
@@ -112,7 +112,7 @@ void SslSessionLRUCache::Put(const char* key, SslSessionPtr session) {
|
|
112
112
|
entry_by_key_.emplace(key, node);
|
113
113
|
AssertInvariants();
|
114
114
|
if (use_order_list_size_ > capacity_) {
|
115
|
-
|
115
|
+
GRPC_CHECK(use_order_list_tail_);
|
116
116
|
node = use_order_list_tail_;
|
117
117
|
Remove(node);
|
118
118
|
// Order matters, key is destroyed after deleting node.
|
@@ -143,7 +143,7 @@ void SslSessionLRUCache::Remove(SslSessionLRUCache::Node* node) {
|
|
143
143
|
} else {
|
144
144
|
node->next_->prev_ = node->prev_;
|
145
145
|
}
|
146
|
-
|
146
|
+
GRPC_CHECK_GE(use_order_list_size_, 1u);
|
147
147
|
use_order_list_size_--;
|
148
148
|
}
|
149
149
|
|
@@ -169,16 +169,16 @@ void SslSessionLRUCache::AssertInvariants() {
|
|
169
169
|
Node* current = use_order_list_head_;
|
170
170
|
while (current != nullptr) {
|
171
171
|
size++;
|
172
|
-
|
172
|
+
GRPC_CHECK(current->prev_ == prev);
|
173
173
|
auto it = entry_by_key_.find(current->key());
|
174
|
-
|
175
|
-
|
174
|
+
GRPC_CHECK(it != entry_by_key_.end());
|
175
|
+
GRPC_CHECK(it->second == current);
|
176
176
|
prev = current;
|
177
177
|
current = current->next_;
|
178
178
|
}
|
179
|
-
|
180
|
-
|
181
|
-
|
179
|
+
GRPC_CHECK(prev == use_order_list_tail_);
|
180
|
+
GRPC_CHECK(size == use_order_list_size_);
|
181
|
+
GRPC_CHECK(entry_by_key_.size() == use_order_list_size_);
|
182
182
|
}
|
183
183
|
#else
|
184
184
|
void SslSessionLRUCache::AssertInvariants() {}
|
@@ -17,9 +17,9 @@
|
|
17
17
|
//
|
18
18
|
#include <grpc/support/port_platform.h>
|
19
19
|
|
20
|
-
#include "absl/log/check.h"
|
21
20
|
#include "src/core/tsi/ssl/session_cache/ssl_session.h"
|
22
21
|
#include "src/core/util/crash.h"
|
22
|
+
#include "src/core/util/grpc_check.h"
|
23
23
|
|
24
24
|
#ifndef OPENSSL_IS_BORINGSSL
|
25
25
|
|
@@ -41,11 +41,11 @@ class OpenSslCachedSession : public SslCachedSession {
|
|
41
41
|
public:
|
42
42
|
OpenSslCachedSession(SslSessionPtr session) {
|
43
43
|
int size = i2d_SSL_SESSION(session.get(), nullptr);
|
44
|
-
|
44
|
+
GRPC_CHECK_GT(size, 0);
|
45
45
|
grpc_slice slice = grpc_slice_malloc(size_t(size));
|
46
46
|
unsigned char* start = GRPC_SLICE_START_PTR(slice);
|
47
47
|
int second_size = i2d_SSL_SESSION(session.get(), &start);
|
48
|
-
|
48
|
+
GRPC_CHECK(size == second_size);
|
49
49
|
serialized_session_ = slice;
|
50
50
|
}
|
51
51
|
|