grpc 1.63.0 → 1.65.2
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 +105 -103
- data/include/grpc/credentials.h +1222 -0
- data/include/grpc/event_engine/event_engine.h +13 -6
- data/include/grpc/grpc.h +7 -0
- data/include/grpc/grpc_crl_provider.h +1 -0
- data/include/grpc/grpc_security.h +0 -1171
- data/include/grpc/impl/channel_arg_names.h +7 -6
- data/include/grpc/module.modulemap +2 -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/{lib/channel → channelz}/channel_trace.cc +57 -63
- data/src/core/{lib/channel → channelz}/channel_trace.h +22 -20
- data/src/core/{lib/channel → channelz}/channelz.cc +71 -9
- data/src/core/{lib/channel → channelz}/channelz.h +52 -13
- data/src/core/{lib/channel → channelz}/channelz_registry.cc +11 -9
- data/src/core/{lib/channel → channelz}/channelz_registry.h +6 -6
- 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 +312 -759
- data/src/core/client_channel/client_channel_filter.h +13 -68
- data/src/core/client_channel/client_channel_internal.h +19 -7
- data/src/core/client_channel/client_channel_plugin.cc +1 -14
- data/src/core/client_channel/client_channel_service_config.h +4 -4
- data/src/core/client_channel/config_selector.cc +1 -1
- data/src/core/client_channel/config_selector.h +5 -4
- data/src/core/client_channel/connector.h +1 -1
- data/src/core/client_channel/dynamic_filters.cc +6 -5
- 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/local_subchannel_pool.cc +5 -3
- data/src/core/client_channel/retry_filter.cc +3 -10
- data/src/core/client_channel/retry_filter.h +5 -9
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +70 -76
- 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 +241 -129
- data/src/core/client_channel/subchannel.h +31 -19
- 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 +41 -52
- data/src/core/client_channel/subchannel_stream_client.h +2 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -13
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +3 -2
- 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 +16 -15
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +12 -11
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +11 -16
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +5 -4
- 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 +6 -4
- data/src/core/ext/filters/http/client/http_client_filter.h +6 -5
- data/src/core/ext/filters/http/client_authority_filter.cc +5 -3
- data/src/core/ext/filters/http/client_authority_filter.h +6 -4
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +19 -23
- data/src/core/ext/filters/http/message_compress/compression_filter.h +10 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +4 -4
- data/src/core/ext/filters/http/server/http_server_filter.h +6 -5
- data/src/core/ext/filters/message_size/message_size_filter.cc +16 -28
- data/src/core/ext/filters/message_size/message_size_filter.h +14 -12
- data/src/core/ext/filters/rbac/rbac_filter.cc +13 -11
- data/src/core/ext/filters/rbac/rbac_filter.h +6 -5
- 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 +14 -18
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +4 -2
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +5 -4
- data/src/core/ext/transport/chttp2/alpn/alpn.h +2 -2
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +23 -38
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -8
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +233 -158
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +36 -3
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +1 -2
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +8 -7
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +190 -165
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +10 -11
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +2 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +6 -8
- data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -6
- data/src/core/ext/transport/chttp2/transport/frame.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -9
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +10 -7
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -2
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +9 -7
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +10 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +10 -9
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +3 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +29 -31
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +8 -13
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +3 -3
- data/src/core/ext/transport/chttp2/transport/huffsyms.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +31 -23
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +2 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +29 -39
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +2 -2
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +1 -4
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +30 -15
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +7 -6
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +10 -11
- data/src/core/ext/transport/chttp2/transport/varint.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.h +4 -3
- data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/write_size_policy.h +2 -2
- data/src/core/ext/transport/chttp2/transport/writing.cc +59 -47
- data/src/core/ext/transport/inproc/inproc_transport.cc +65 -41
- data/src/core/ext/transport/inproc/inproc_transport.h +2 -5
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +20 -23
- data/src/core/ext/transport/inproc/legacy_inproc_transport.h +1 -4
- data/src/core/{lib/transport → handshaker/endpoint_info}/endpoint_info_handshaker.cc +6 -6
- data/src/core/{lib/transport → handshaker/endpoint_info}/endpoint_info_handshaker.h +3 -3
- data/src/core/{lib/transport → handshaker}/handshaker.cc +14 -20
- data/src/core/{lib/transport → handshaker}/handshaker.h +4 -5
- data/src/core/{lib/transport → handshaker}/handshaker_factory.h +19 -3
- data/src/core/{lib/transport → handshaker}/handshaker_registry.cc +3 -3
- data/src/core/{lib/transport → handshaker}/handshaker_registry.h +6 -6
- data/src/core/{lib/transport → handshaker/http_connect}/http_connect_handshaker.cc +16 -25
- data/src/core/{lib/transport → handshaker/http_connect}/http_connect_handshaker.h +3 -3
- data/src/core/{client_channel → handshaker/http_connect}/http_proxy_mapper.cc +16 -18
- data/src/core/{client_channel → handshaker/http_connect}/http_proxy_mapper.h +6 -6
- data/src/core/{lib/handshaker → handshaker}/proxy_mapper.h +5 -5
- data/src/core/{lib/handshaker → handshaker}/proxy_mapper_registry.cc +3 -3
- data/src/core/{lib/handshaker → handshaker}/proxy_mapper_registry.h +6 -6
- data/src/core/{lib/security/transport → handshaker/security}/secure_endpoint.cc +42 -36
- data/src/core/{lib/security/transport → handshaker/security}/secure_endpoint.h +4 -7
- data/src/core/{lib/security/transport → handshaker/security}/security_handshaker.cc +35 -47
- data/src/core/{lib/security/transport → handshaker/security}/security_handshaker.h +5 -6
- data/src/core/{lib/transport → handshaker/tcp_connect}/tcp_connect_handshaker.cc +10 -9
- data/src/core/{lib/transport → handshaker/tcp_connect}/tcp_connect_handshaker.h +3 -3
- data/src/core/lib/address_utils/parse_address.cc +30 -40
- data/src/core/lib/address_utils/parse_address.h +2 -2
- data/src/core/lib/address_utils/sockaddr_utils.cc +20 -15
- data/src/core/lib/address_utils/sockaddr_utils.h +2 -2
- data/src/core/lib/avl/avl.h +3 -3
- data/src/core/lib/backoff/backoff.cc +2 -2
- data/src/core/lib/backoff/backoff.h +2 -2
- data/src/core/lib/backoff/random_early_detection.cc +2 -2
- data/src/core/lib/backoff/random_early_detection.h +2 -2
- data/src/core/lib/channel/call_finalization.h +2 -2
- data/src/core/lib/channel/channel_args.cc +17 -21
- data/src/core/lib/channel/channel_args.h +20 -10
- data/src/core/lib/channel/channel_args_preconditioning.cc +2 -2
- data/src/core/lib/channel/channel_args_preconditioning.h +1 -2
- data/src/core/lib/channel/channel_stack.cc +13 -70
- data/src/core/lib/channel/channel_stack.h +14 -39
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +2 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -150
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -4
- data/src/core/lib/channel/connected_channel.cc +40 -694
- data/src/core/lib/channel/promise_based_filter.cc +111 -122
- data/src/core/lib/channel/promise_based_filter.h +219 -531
- data/src/core/lib/channel/status_util.cc +3 -3
- data/src/core/lib/channel/status_util.h +1 -2
- data/src/core/lib/compression/compression.cc +2 -3
- data/src/core/lib/compression/compression_internal.cc +3 -3
- data/src/core/lib/compression/compression_internal.h +1 -2
- data/src/core/lib/compression/message_compress.cc +15 -14
- data/src/core/lib/compression/message_compress.h +1 -2
- data/src/core/lib/config/config_vars.cc +5 -10
- data/src/core/lib/config/config_vars.h +3 -7
- data/src/core/lib/config/config_vars_non_generated.cc +2 -2
- data/src/core/lib/config/core_configuration.cc +9 -8
- data/src/core/lib/config/core_configuration.h +8 -8
- data/src/core/lib/config/load_config.cc +4 -4
- data/src/core/lib/config/load_config.h +2 -2
- data/src/core/lib/debug/event_log.cc +3 -3
- data/src/core/lib/debug/event_log.h +3 -3
- data/src/core/lib/debug/trace.cc +44 -61
- 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 +23 -26
- data/src/core/lib/event_engine/ares_resolver.h +3 -5
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +4 -2
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +3 -3
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +19 -23
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +2 -1
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +1 -2
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +1 -2
- data/src/core/lib/event_engine/common_closures.h +1 -2
- data/src/core/lib/event_engine/default_event_engine.cc +1 -2
- data/src/core/lib/event_engine/default_event_engine.h +1 -2
- data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -2
- data/src/core/lib/event_engine/default_event_engine_factory.h +1 -2
- data/src/core/lib/event_engine/event_engine.cc +29 -5
- data/src/core/lib/event_engine/event_engine_context.h +1 -2
- data/src/core/lib/event_engine/extensions/can_track_errors.h +2 -2
- data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +2 -2
- data/src/core/lib/event_engine/extensions/supports_fd.h +8 -2
- data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
- data/src/core/lib/event_engine/forkable.cc +11 -11
- data/src/core/lib/event_engine/forkable.h +1 -13
- data/src/core/lib/event_engine/grpc_polled_fd.h +1 -2
- data/src/core/lib/event_engine/handle_containers.h +1 -2
- data/src/core/lib/event_engine/memory_allocator_factory.h +1 -2
- data/src/core/lib/event_engine/poller.h +1 -2
- data/src/core/lib/event_engine/posix.h +1 -2
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +1 -2
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +11 -11
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +1 -2
- data/src/core/lib/event_engine/posix_engine/event_poller.h +1 -2
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -2
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +1 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +2 -2
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -2
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +43 -58
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +14 -13
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +34 -17
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +1 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +17 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +1 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +24 -28
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +1 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +22 -20
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -3
- data/src/core/lib/event_engine/posix_engine/timer.cc +2 -3
- data/src/core/lib/event_engine/posix_engine/timer.h +1 -2
- data/src/core/lib/event_engine/posix_engine/timer_heap.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/timer_heap.h +2 -2
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +9 -11
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -2
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +2 -2
- data/src/core/lib/event_engine/query_extensions.h +3 -2
- data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +1 -2
- data/src/core/lib/event_engine/resolved_address.cc +5 -4
- data/src/core/lib/event_engine/resolved_address_internal.h +1 -2
- data/src/core/lib/event_engine/shim.cc +3 -3
- data/src/core/lib/event_engine/slice.cc +4 -3
- data/src/core/lib/event_engine/slice_buffer.cc +1 -2
- data/src/core/lib/event_engine/tcp_socket_utils.cc +18 -16
- data/src/core/lib/event_engine/tcp_socket_utils.h +1 -2
- data/src/core/lib/event_engine/thread_local.cc +2 -2
- data/src/core/lib/event_engine/thread_local.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -2
- data/src/core/lib/event_engine/thread_pool/thread_count.h +2 -3
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +1 -2
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +2 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +27 -28
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +4 -8
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +16 -15
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +5 -5
- data/src/core/lib/event_engine/time_util.cc +1 -2
- data/src/core/lib/event_engine/time_util.h +1 -2
- data/src/core/lib/event_engine/trace.h +7 -19
- data/src/core/lib/event_engine/utils.cc +1 -2
- data/src/core/lib/event_engine/utils.h +1 -2
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +31 -30
- data/src/core/lib/event_engine/windows/iocp.cc +10 -8
- data/src/core/lib/event_engine/windows/iocp.h +1 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +32 -22
- data/src/core/lib/event_engine/windows/win_socket.h +4 -5
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +24 -25
- data/src/core/lib/event_engine/windows/windows_engine.cc +205 -90
- data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
- data/src/core/lib/event_engine/windows/windows_listener.cc +19 -29
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +2 -2
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +1 -2
- data/src/core/lib/event_engine/work_queue/work_queue.h +1 -2
- data/src/core/lib/experiments/config.cc +16 -14
- data/src/core/lib/experiments/config.h +2 -2
- data/src/core/lib/experiments/experiments.cc +57 -158
- data/src/core/lib/experiments/experiments.h +35 -52
- data/src/core/lib/gprpp/atomic_utils.h +2 -2
- data/src/core/lib/gprpp/bitset.h +3 -3
- data/src/core/lib/gprpp/chunked_vector.h +6 -5
- data/src/core/lib/gprpp/construct_destruct.h +2 -2
- data/src/core/lib/gprpp/crash.cc +3 -5
- data/src/core/lib/gprpp/crash.h +2 -2
- data/src/core/lib/gprpp/debug_location.h +2 -2
- data/src/core/lib/gprpp/directory_reader.h +2 -2
- data/src/core/lib/gprpp/down_cast.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +54 -41
- 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/env.h +2 -2
- data/src/core/lib/gprpp/examine_stack.cc +2 -2
- data/src/core/lib/gprpp/examine_stack.h +2 -2
- data/src/core/lib/gprpp/fork.cc +1 -2
- data/src/core/lib/gprpp/fork.h +2 -2
- data/src/core/lib/gprpp/glob.cc +70 -0
- data/src/core/lib/gprpp/glob.h +29 -0
- data/src/core/lib/gprpp/host_port.cc +6 -4
- data/src/core/lib/gprpp/host_port.h +2 -2
- data/src/core/lib/gprpp/linux/env.cc +2 -2
- data/src/core/lib/gprpp/load_file.cc +1 -2
- data/src/core/lib/gprpp/load_file.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +2 -2
- data/src/core/lib/gprpp/match.h +2 -2
- data/src/core/lib/gprpp/memory.h +1 -2
- data/src/core/lib/gprpp/mpscq.cc +2 -2
- data/src/core/lib/gprpp/mpscq.h +5 -4
- data/src/core/lib/gprpp/no_destruct.h +2 -2
- data/src/core/lib/gprpp/notification.h +2 -2
- data/src/core/lib/gprpp/orphanable.h +2 -2
- data/src/core/lib/gprpp/overload.h +2 -2
- data/src/core/lib/gprpp/per_cpu.cc +2 -3
- data/src/core/lib/gprpp/per_cpu.h +1 -2
- data/src/core/lib/gprpp/posix/directory_reader.cc +2 -2
- data/src/core/lib/gprpp/posix/stat.cc +8 -7
- data/src/core/lib/gprpp/posix/thd.cc +18 -19
- data/src/core/lib/gprpp/ref_counted.h +35 -26
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -2
- data/src/core/lib/gprpp/ref_counted_string.cc +1 -2
- data/src/core/lib/gprpp/ref_counted_string.h +2 -2
- data/src/core/lib/gprpp/single_set_ptr.h +9 -6
- data/src/core/lib/gprpp/sorted_pack.h +2 -2
- data/src/core/lib/gprpp/stat.h +2 -2
- data/src/core/lib/gprpp/status_helper.cc +14 -33
- data/src/core/lib/gprpp/status_helper.h +5 -33
- data/src/core/lib/gprpp/strerror.cc +2 -2
- data/src/core/lib/gprpp/strerror.h +2 -2
- data/src/core/lib/gprpp/sync.h +5 -5
- data/src/core/lib/gprpp/table.h +2 -2
- data/src/core/lib/gprpp/tchar.cc +2 -2
- data/src/core/lib/gprpp/thd.h +7 -7
- data/src/core/lib/gprpp/time.cc +9 -10
- data/src/core/lib/gprpp/time.h +4 -4
- data/src/core/lib/gprpp/time_averaged_stats.cc +2 -2
- data/src/core/lib/gprpp/time_util.cc +5 -4
- data/src/core/lib/gprpp/time_util.h +1 -2
- data/src/core/lib/gprpp/unique_type_name.h +3 -3
- data/src/core/lib/gprpp/uuid_v4.cc +2 -2
- data/src/core/lib/gprpp/uuid_v4.h +2 -2
- data/src/core/lib/gprpp/validation_errors.cc +12 -3
- data/src/core/lib/gprpp/validation_errors.h +13 -2
- data/src/core/lib/gprpp/windows/stat.cc +6 -5
- data/src/core/lib/gprpp/windows/thd.cc +7 -4
- data/src/core/lib/gprpp/work_serializer.cc +53 -62
- data/src/core/lib/gprpp/work_serializer.h +1 -2
- data/src/core/lib/iomgr/buffer_list.cc +5 -4
- data/src/core/lib/iomgr/buffer_list.h +1 -2
- data/src/core/lib/iomgr/call_combiner.cc +23 -31
- data/src/core/lib/iomgr/call_combiner.h +2 -5
- data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
- data/src/core/lib/iomgr/closure.cc +2 -2
- data/src/core/lib/iomgr/closure.h +6 -7
- data/src/core/lib/iomgr/combiner.cc +13 -14
- data/src/core/lib/iomgr/combiner.h +1 -4
- data/src/core/lib/iomgr/endpoint.cc +1 -7
- data/src/core/lib/iomgr/endpoint.h +1 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +26 -46
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +6 -5
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +15 -15
- data/src/core/lib/iomgr/error.cc +16 -24
- data/src/core/lib/iomgr/error.h +4 -4
- data/src/core/lib/iomgr/ev_apple.cc +3 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +58 -56
- data/src/core/lib/iomgr/ev_poll_posix.cc +47 -38
- data/src/core/lib/iomgr/ev_posix.cc +9 -11
- data/src/core/lib/iomgr/ev_posix.h +11 -8
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +3 -4
- data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +17 -31
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -2
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +1 -2
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +1 -2
- data/src/core/lib/iomgr/exec_ctx.cc +7 -7
- data/src/core/lib/iomgr/exec_ctx.h +7 -5
- data/src/core/lib/iomgr/executor.cc +13 -23
- 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.h +2 -2
- 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 +5 -4
- data/src/core/lib/iomgr/iocp_windows.cc +13 -9
- data/src/core/lib/iomgr/iocp_windows.h +0 -1
- data/src/core/lib/iomgr/iomgr.cc +14 -19
- data/src/core/lib/iomgr/iomgr.h +2 -2
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +4 -2
- data/src/core/lib/iomgr/lockfree_event.cc +7 -8
- data/src/core/lib/iomgr/lockfree_event.h +1 -2
- data/src/core/lib/iomgr/polling_entity.cc +5 -5
- data/src/core/lib/iomgr/pollset.cc +2 -2
- data/src/core/lib/iomgr/pollset.h +0 -3
- data/src/core/lib/iomgr/pollset_set.cc +2 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +2 -2
- data/src/core/lib/iomgr/pollset_windows.cc +0 -2
- data/src/core/lib/iomgr/pollset_windows.h +0 -1
- data/src/core/lib/iomgr/python_util.h +1 -2
- data/src/core/lib/iomgr/resolve_address.cc +1 -2
- data/src/core/lib/iomgr/resolve_address.h +1 -2
- data/src/core/lib/iomgr/resolve_address_impl.h +2 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
- data/src/core/lib/iomgr/resolve_address_posix.h +2 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_windows.h +2 -2
- data/src/core/lib/iomgr/resolved_address.h +2 -2
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +3 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -2
- data/src/core/lib/iomgr/socket_mutator.cc +2 -3
- data/src/core/lib/iomgr/socket_mutator.h +1 -2
- data/src/core/lib/iomgr/socket_utils.h +2 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +28 -33
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_posix.h +1 -2
- data/src/core/lib/iomgr/socket_windows.cc +8 -9
- data/src/core/lib/iomgr/tcp_client.cc +2 -2
- data/src/core/lib/iomgr/tcp_client.h +1 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
- data/src/core/lib/iomgr/tcp_client_posix.cc +14 -19
- data/src/core/lib/iomgr/tcp_client_windows.cc +9 -9
- data/src/core/lib/iomgr/tcp_posix.cc +99 -125
- data/src/core/lib/iomgr/tcp_posix.h +0 -2
- data/src/core/lib/iomgr/tcp_server.cc +2 -2
- data/src/core/lib/iomgr/tcp_server.h +1 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +35 -38
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +10 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -8
- data/src/core/lib/iomgr/tcp_server_windows.cc +25 -30
- data/src/core/lib/iomgr/tcp_windows.cc +33 -47
- data/src/core/lib/iomgr/timer.cc +2 -2
- data/src/core/lib/iomgr/timer.h +1 -2
- data/src/core/lib/iomgr/timer_generic.cc +20 -23
- data/src/core/lib/iomgr/timer_generic.h +0 -1
- data/src/core/lib/iomgr/timer_heap.cc +2 -3
- data/src/core/lib/iomgr/timer_manager.cc +21 -33
- data/src/core/lib/iomgr/timer_manager.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -2
- data/src/core/lib/iomgr/unix_sockets_posix.h +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +3 -1
- data/src/core/lib/iomgr/vsock.cc +3 -3
- data/src/core/lib/iomgr/vsock.h +1 -2
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
- data/src/core/lib/matchers/matchers.cc +2 -2
- data/src/core/lib/matchers/matchers.h +2 -2
- data/src/core/lib/promise/activity.cc +4 -3
- data/src/core/lib/promise/activity.h +34 -11
- data/src/core/lib/promise/all_ok.h +2 -2
- data/src/core/lib/promise/arena_promise.h +2 -2
- data/src/core/lib/promise/cancel_callback.h +24 -0
- data/src/core/lib/promise/context.h +14 -3
- data/src/core/lib/promise/detail/basic_seq.h +1 -2
- data/src/core/lib/promise/detail/join_state.h +365 -408
- data/src/core/lib/promise/detail/promise_factory.h +2 -2
- data/src/core/lib/promise/detail/promise_like.h +15 -8
- data/src/core/lib/promise/detail/seq_state.h +1192 -1192
- data/src/core/lib/promise/detail/status.h +4 -3
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +2 -2
- data/src/core/lib/promise/for_each.h +91 -30
- data/src/core/lib/promise/if.h +2 -2
- data/src/core/lib/promise/interceptor_list.h +9 -10
- data/src/core/lib/promise/latch.h +17 -17
- data/src/core/lib/promise/loop.h +2 -2
- data/src/core/lib/promise/map.h +19 -2
- data/src/core/lib/promise/observable.h +182 -0
- data/src/core/lib/promise/party.cc +22 -23
- data/src/core/lib/promise/party.h +19 -17
- data/src/core/lib/promise/pipe.h +31 -50
- data/src/core/lib/promise/poll.h +6 -5
- data/src/core/lib/promise/prioritized_race.h +2 -2
- data/src/core/lib/promise/promise.h +3 -2
- data/src/core/lib/promise/race.h +2 -2
- data/src/core/lib/promise/seq.h +2 -2
- data/src/core/lib/promise/sleep.cc +1 -2
- data/src/core/lib/promise/sleep.h +1 -2
- data/src/core/lib/promise/status_flag.h +10 -8
- data/src/core/lib/promise/try_join.h +4 -3
- data/src/core/lib/promise/try_seq.h +4 -3
- data/src/core/lib/resource_quota/api.cc +1 -2
- data/src/core/lib/resource_quota/api.h +1 -2
- data/src/core/lib/resource_quota/arena.cc +57 -81
- data/src/core/lib/resource_quota/arena.h +119 -211
- data/src/core/lib/resource_quota/connection_quota.cc +8 -9
- data/src/core/lib/resource_quota/connection_quota.h +2 -2
- data/src/core/lib/resource_quota/memory_quota.cc +20 -21
- data/src/core/lib/resource_quota/memory_quota.h +6 -7
- data/src/core/lib/resource_quota/periodic_update.cc +3 -3
- data/src/core/lib/resource_quota/periodic_update.h +2 -2
- data/src/core/lib/resource_quota/resource_quota.cc +2 -2
- data/src/core/lib/resource_quota/resource_quota.h +2 -3
- data/src/core/lib/resource_quota/thread_quota.cc +4 -3
- data/src/core/lib/resource_quota/thread_quota.h +2 -2
- data/src/core/lib/security/authorization/audit_logging.cc +6 -6
- data/src/core/lib/security/authorization/audit_logging.h +1 -2
- data/src/core/lib/security/authorization/authorization_engine.h +2 -2
- data/src/core/lib/security/authorization/authorization_policy_provider.h +2 -3
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +2 -3
- data/src/core/lib/security/authorization/evaluate_args.cc +8 -11
- data/src/core/lib/security/authorization/evaluate_args.h +1 -2
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +4 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -2
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +9 -11
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +8 -8
- data/src/core/lib/security/authorization/matchers.cc +4 -5
- data/src/core/lib/security/authorization/matchers.h +2 -2
- data/src/core/lib/security/authorization/rbac_policy.cc +2 -2
- data/src/core/lib/security/authorization/rbac_policy.h +1 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +4 -3
- data/src/core/lib/security/authorization/stdout_logger.h +1 -2
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +4 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +6 -6
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +2 -2
- data/src/core/lib/security/context/security_context.cc +17 -16
- data/src/core/lib/security/context/security_context.h +33 -10
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +1 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -3
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +4 -3
- 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 -6
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +4 -5
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +2 -2
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -2
- data/src/core/lib/security/credentials/call_creds_util.cc +3 -3
- data/src/core/lib/security/credentials/call_creds_util.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry.h +4 -4
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +7 -5
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +9 -8
- data/src/core/lib/security/credentials/composite/composite_credentials.h +3 -3
- data/src/core/lib/security/credentials/credentials.cc +10 -9
- data/src/core/lib/security/credentials/credentials.h +5 -4
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +9 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -4
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -2
- data/src/core/lib/security/credentials/external/aws_request_signer.h +2 -2
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +16 -17
- data/src/core/lib/security/credentials/external/external_account_credentials.h +5 -5
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +3 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +2 -2
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -7
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +3 -3
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +4 -5
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +19 -18
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +3 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -5
- data/src/core/lib/security/credentials/iam/iam_credentials.h +3 -3
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +19 -19
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +10 -8
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +65 -69
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/local/local_credentials.cc +1 -2
- data/src/core/lib/security/credentials/local/local_credentials.h +3 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +6 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +9 -10
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +3 -5
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +28 -34
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +26 -25
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +28 -36
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +4 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +3 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +5 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -22
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +1 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +5 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +1 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +15 -18
- data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -6
- data/src/core/lib/security/credentials/tls/tls_utils.h +1 -2
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +8 -8
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +27 -30
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +20 -17
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +6 -5
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/load_system_roots.h +1 -2
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +8 -8
- data/src/core/lib/security/security_connector/load_system_roots_supported.h +1 -2
- 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 +19 -23
- data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/security_connector.cc +8 -10
- data/src/core/lib/security/security_connector/security_connector.h +4 -6
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +23 -25
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +29 -30
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -2
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +42 -53
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +3 -3
- data/src/core/lib/security/transport/auth_filters.h +14 -13
- data/src/core/lib/security/transport/client_auth_filter.cc +13 -18
- data/src/core/lib/security/transport/server_auth_filter.cc +10 -13
- data/src/core/lib/security/util/json_util.cc +1 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/percent_encoding.cc +4 -3
- data/src/core/lib/slice/slice.cc +11 -10
- data/src/core/lib/slice/slice.h +5 -5
- data/src/core/lib/slice/slice_buffer.cc +15 -14
- data/src/core/lib/slice/slice_buffer.h +1 -2
- data/src/core/lib/slice/slice_internal.h +3 -3
- data/src/core/lib/slice/slice_refcount.h +3 -6
- data/src/core/lib/slice/slice_string_helpers.cc +3 -3
- data/src/core/lib/slice/slice_string_helpers.h +1 -2
- data/src/core/lib/surface/api_trace.h +2 -5
- data/src/core/lib/surface/byte_buffer.cc +1 -2
- data/src/core/lib/surface/byte_buffer_reader.cc +4 -3
- data/src/core/lib/surface/call.cc +102 -3899
- data/src/core/lib/surface/call.h +158 -90
- data/src/core/lib/surface/call_details.cc +1 -2
- data/src/core/lib/surface/call_log_batch.cc +2 -3
- data/src/core/lib/surface/call_test_only.h +1 -2
- 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 +17 -11
- data/src/core/lib/surface/channel.h +12 -10
- data/src/core/lib/surface/channel_create.cc +18 -9
- data/src/core/lib/surface/channel_create.h +5 -4
- data/src/core/lib/surface/channel_init.cc +27 -83
- data/src/core/lib/surface/channel_init.h +27 -100
- data/src/core/lib/surface/channel_stack_type.cc +2 -2
- 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 +45 -51
- data/src/core/lib/surface/completion_queue.h +1 -10
- data/src/core/lib/surface/completion_queue_factory.cc +9 -8
- data/src/core/lib/surface/completion_queue_factory.h +1 -2
- data/src/core/lib/surface/event_string.cc +2 -2
- data/src/core/lib/surface/event_string.h +1 -2
- 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 +8 -8
- data/src/core/lib/surface/init_internally.cc +2 -2
- data/src/core/lib/surface/lame_client.cc +10 -13
- data/src/core/lib/surface/lame_client.h +6 -11
- data/src/core/lib/surface/legacy_channel.cc +52 -39
- data/src/core/lib/surface/legacy_channel.h +11 -21
- data/src/core/lib/surface/metadata_array.cc +1 -2
- 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/validate_metadata.cc +1 -2
- data/src/core/lib/surface/validate_metadata.h +3 -3
- data/src/core/lib/surface/version.cc +3 -4
- data/src/core/lib/transport/bdp_estimator.cc +7 -7
- data/src/core/lib/transport/bdp_estimator.h +6 -8
- data/src/core/lib/transport/{call_size_estimator.cc → call_arena_allocator.cc} +3 -3
- data/src/core/lib/transport/{call_size_estimator.h → call_arena_allocator.h} +29 -6
- data/src/core/lib/transport/call_destination.h +76 -0
- data/src/core/lib/transport/call_filters.cc +54 -21
- data/src/core/lib/transport/call_filters.h +240 -84
- data/src/core/lib/transport/call_final_info.cc +2 -2
- data/src/core/lib/transport/call_final_info.h +1 -2
- data/src/core/lib/transport/call_spine.cc +17 -19
- data/src/core/lib/transport/call_spine.h +238 -215
- data/src/core/lib/transport/connectivity_state.cc +9 -12
- data/src/core/lib/transport/connectivity_state.h +1 -4
- data/src/core/lib/transport/error_utils.cc +1 -2
- data/src/core/lib/transport/error_utils.h +1 -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/message.cc +1 -2
- data/src/core/lib/transport/metadata.cc +2 -2
- data/src/core/lib/transport/metadata_batch.cc +2 -2
- data/src/core/lib/transport/metadata_batch.h +43 -5
- data/src/core/lib/transport/metadata_compression_traits.h +2 -2
- data/src/core/lib/transport/metadata_info.cc +2 -2
- data/src/core/lib/transport/metadata_info.h +1 -1
- data/src/core/lib/transport/parsed_metadata.cc +2 -2
- data/src/core/lib/transport/parsed_metadata.h +1 -2
- data/src/core/lib/transport/simple_slice_based_metadata.h +2 -2
- data/src/core/lib/transport/status_conversion.cc +2 -2
- data/src/core/lib/transport/status_conversion.h +1 -2
- data/src/core/lib/transport/timeout_encoding.cc +5 -5
- data/src/core/lib/transport/timeout_encoding.h +2 -2
- data/src/core/lib/transport/transport.cc +4 -8
- data/src/core/lib/transport/transport.h +80 -74
- data/src/core/lib/transport/transport_op_string.cc +1 -2
- data/src/core/lib/uri/uri_parser.cc +3 -3
- data/src/core/lib/uri/uri_parser.h +2 -2
- data/src/core/load_balancing/address_filtering.cc +2 -2
- data/src/core/load_balancing/address_filtering.h +2 -2
- data/src/core/load_balancing/backend_metric_data.h +2 -2
- data/src/core/load_balancing/backend_metric_parser.cc +2 -2
- data/src/core/load_balancing/backend_metric_parser.h +2 -2
- data/src/core/load_balancing/child_policy_handler.cc +14 -14
- data/src/core/load_balancing/child_policy_handler.h +2 -2
- data/src/core/load_balancing/delegating_helper.h +2 -3
- data/src/core/load_balancing/endpoint_list.cc +11 -13
- data/src/core/load_balancing/endpoint_list.h +16 -10
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +29 -30
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +20 -8
- data/src/core/load_balancing/grpclb/grpclb.cc +65 -70
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +3 -3
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h +1 -2
- data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +1 -2
- data/src/core/load_balancing/grpclb/grpclb_client_stats.h +1 -2
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +4 -6
- data/src/core/load_balancing/grpclb/load_balancer_api.h +2 -3
- data/src/core/load_balancing/health_check_client.cc +14 -18
- data/src/core/load_balancing/health_check_client.h +2 -2
- data/src/core/load_balancing/health_check_client_internal.h +1 -2
- data/src/core/load_balancing/lb_policy.cc +7 -10
- data/src/core/load_balancing/lb_policy.h +20 -5
- data/src/core/load_balancing/lb_policy_factory.h +3 -3
- data/src/core/load_balancing/lb_policy_registry.cc +5 -6
- data/src/core/load_balancing/lb_policy_registry.h +3 -3
- data/src/core/load_balancing/oob_backend_metric.cc +6 -9
- data/src/core/load_balancing/oob_backend_metric.h +2 -2
- data/src/core/load_balancing/oob_backend_metric_internal.h +1 -2
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +36 -38
- data/src/core/load_balancing/outlier_detection/outlier_detection.h +5 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +1141 -156
- data/src/core/load_balancing/priority/priority.cc +41 -38
- data/src/core/load_balancing/ring_hash/ring_hash.cc +45 -30
- data/src/core/load_balancing/ring_hash/ring_hash.h +5 -5
- data/src/core/load_balancing/rls/rls.cc +106 -99
- data/src/core/load_balancing/round_robin/round_robin.cc +43 -35
- data/src/core/load_balancing/subchannel_interface.h +1 -2
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +4 -4
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +2 -2
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +79 -58
- data/src/core/load_balancing/weighted_target/weighted_target.cc +29 -32
- data/src/core/load_balancing/weighted_target/weighted_target.h +1 -1
- data/src/core/load_balancing/xds/cds.cc +25 -28
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +28 -28
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +17 -20
- data/src/core/load_balancing/xds/xds_override_host.cc +46 -47
- data/src/core/load_balancing/xds/xds_override_host.h +5 -5
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +12 -15
- data/src/core/plugin_registry/grpc_plugin_registry.cc +11 -10
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +1 -2
- data/src/core/resolver/binder/binder_resolver.cc +7 -6
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +8 -8
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +2 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -3
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -3
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +36 -35
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +20 -27
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -7
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +1 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
- data/src/core/resolver/dns/dns_resolver_plugin.cc +10 -10
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +9 -14
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +3 -3
- data/src/core/resolver/dns/event_engine/service_config_helper.cc +7 -7
- data/src/core/resolver/dns/event_engine/service_config_helper.h +2 -2
- data/src/core/resolver/dns/native/dns_resolver.cc +11 -13
- data/src/core/resolver/endpoint_addresses.cc +5 -5
- data/src/core/resolver/endpoint_addresses.h +2 -2
- data/src/core/resolver/fake/fake_resolver.cc +5 -5
- data/src/core/resolver/fake/fake_resolver.h +2 -3
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +22 -23
- data/src/core/resolver/polling_resolver.cc +35 -40
- data/src/core/resolver/polling_resolver.h +1 -2
- data/src/core/resolver/resolver.cc +3 -7
- data/src/core/resolver/resolver.h +2 -4
- data/src/core/resolver/resolver_factory.h +3 -3
- data/src/core/resolver/resolver_registry.cc +11 -13
- data/src/core/resolver/resolver_registry.h +3 -3
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +5 -6
- data/src/core/resolver/xds/xds_dependency_manager.cc +27 -27
- data/src/core/resolver/xds/xds_dependency_manager.h +7 -7
- data/src/core/resolver/xds/xds_resolver.cc +32 -39
- data/src/core/resolver/xds/xds_resolver_attributes.h +2 -2
- data/src/core/{lib/surface → server}/server.cc +306 -424
- data/src/core/{lib/surface → server}/server.h +43 -26
- data/src/core/{lib/channel → server}/server_call_tracer_filter.cc +16 -20
- data/src/core/{lib/channel → server}/server_call_tracer_filter.h +3 -3
- data/src/core/{ext/filters/server_config_selector → server}/server_config_selector.h +6 -6
- data/src/core/{ext/filters/server_config_selector → server}/server_config_selector_filter.cc +39 -40
- data/src/core/{ext/filters/server_config_selector → server}/server_config_selector_filter.h +3 -3
- data/src/core/{lib/surface → server}/server_interface.h +6 -4
- data/src/core/{ext/xds → server}/xds_channel_stack_modifier.cc +4 -4
- data/src/core/{ext/xds → server}/xds_channel_stack_modifier.h +5 -6
- data/src/core/{ext/xds → server}/xds_server_config_fetcher.cc +24 -26
- data/src/core/service_config/service_config.h +2 -3
- data/src/core/service_config/service_config_call_data.h +15 -13
- data/src/core/service_config/service_config_channel_arg_filter.cc +12 -11
- data/src/core/service_config/service_config_impl.cc +7 -7
- data/src/core/service_config/service_config_impl.h +4 -4
- data/src/core/service_config/service_config_parser.cc +4 -8
- data/src/core/service_config/service_config_parser.h +3 -3
- data/src/core/{lib/channel → telemetry}/call_tracer.cc +25 -35
- data/src/core/{lib/channel → telemetry}/call_tracer.h +33 -11
- data/src/core/{lib/debug → telemetry}/histogram_view.cc +2 -2
- data/src/core/{lib/debug → telemetry}/histogram_view.h +5 -5
- data/src/core/telemetry/metrics.cc +178 -0
- data/src/core/telemetry/metrics.h +562 -0
- data/src/core/{lib/debug → telemetry}/stats.cc +3 -3
- data/src/core/{lib/debug → telemetry}/stats.h +7 -7
- data/src/core/{lib/debug → telemetry}/stats_data.cc +3 -3
- data/src/core/{lib/debug → telemetry}/stats_data.h +6 -6
- data/src/core/{lib/channel → telemetry}/tcp_tracer.h +5 -5
- data/src/core/tsi/alts/crypt/aes_gcm.cc +1 -2
- data/src/core/tsi/alts/crypt/gsec.cc +1 -2
- data/src/core/tsi/alts/crypt/gsec.h +1 -2
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +1 -2
- data/src/core/tsi/alts/frame_protector/alts_counter.h +1 -2
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +1 -2
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +1 -2
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -15
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +2 -2
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +1 -2
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +1 -2
- data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +1 -2
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -2
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +1 -2
- data/src/core/tsi/alts/frame_protector/frame_handler.h +2 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +63 -64
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -2
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +1 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +54 -53
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +7 -5
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -2
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +4 -3
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +10 -8
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +2 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +6 -5
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +2 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +1 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +10 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +1 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +2 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -7
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +2 -2
- data/src/core/tsi/fake_transport_security.cc +20 -21
- data/src/core/tsi/local_transport_security.cc +7 -7
- data/src/core/tsi/local_transport_security.h +1 -2
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +6 -5
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +1 -2
- data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +15 -14
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +1 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +3 -4
- data/src/core/tsi/ssl_transport_security.cc +96 -100
- data/src/core/tsi/ssl_transport_security.h +1 -2
- data/src/core/tsi/ssl_transport_security_utils.cc +85 -28
- data/src/core/tsi/ssl_transport_security_utils.h +12 -2
- data/src/core/tsi/ssl_types.h +2 -2
- data/src/core/tsi/transport_security.cc +1 -6
- data/src/core/tsi/transport_security.h +2 -4
- data/src/core/tsi/transport_security_grpc.cc +2 -2
- data/src/core/tsi/transport_security_grpc.h +1 -2
- data/src/core/tsi/transport_security_interface.h +2 -6
- data/src/core/{lib/gpr → util}/alloc.cc +3 -1
- 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} +26 -26
- data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +9 -9
- data/src/core/{lib/http → util/http_client}/format_request.cc +2 -2
- data/src/core/{lib/http → util/http_client}/format_request.h +4 -4
- data/src/core/{lib/http → util/http_client}/httpcli.cc +12 -13
- data/src/core/{lib/http → util/http_client}/httpcli.h +5 -5
- data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +10 -10
- data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +3 -3
- data/src/core/{lib/http → util/http_client}/parser.cc +6 -7
- data/src/core/{lib/http → util/http_client}/parser.h +3 -5
- data/src/core/{lib → util}/json/json.h +3 -3
- data/src/core/{lib → util}/json/json_args.h +3 -3
- data/src/core/{lib → util}/json/json_channel_args.h +4 -4
- data/src/core/{lib → util}/json/json_object_loader.cc +1 -1
- data/src/core/{lib → util}/json/json_object_loader.h +5 -5
- data/src/core/{lib → util}/json/json_reader.cc +4 -3
- data/src/core/{lib → util}/json/json_reader.h +4 -4
- data/src/core/{lib → util}/json/json_util.cc +3 -3
- data/src/core/{lib → util}/json/json_util.h +4 -4
- data/src/core/{lib → util}/json/json_writer.cc +1 -1
- data/src/core/{lib → util}/json/json_writer.h +4 -4
- data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
- data/src/core/util/log.cc +167 -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/sync.cc +25 -23
- data/src/core/{lib/gpr → util}/posix/time.cc +10 -7
- data/src/core/{lib/gpr → util}/posix/tmpfile.cc +5 -3
- 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}/sync.cc +5 -3
- data/src/core/{lib/gpr → util}/time.cc +10 -8
- 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/sync.cc +3 -1
- data/src/core/{lib/gpr → util}/windows/time.cc +5 -2
- data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
- data/src/core/{ext/xds → xds/grpc}/certificate_provider_store.cc +5 -6
- data/src/core/{ext/xds → xds/grpc}/certificate_provider_store.h +8 -9
- data/src/core/{ext/xds → xds/grpc}/file_watcher_certificate_provider_factory.cc +5 -6
- data/src/core/{ext/xds → xds/grpc}/file_watcher_certificate_provider_factory.h +7 -8
- data/src/core/{ext/xds → xds/grpc}/upb_utils.h +5 -5
- data/src/core/{ext/xds → xds/grpc}/xds_audit_logger_registry.cc +4 -4
- data/src/core/{ext/xds → xds/grpc}/xds_audit_logger_registry.h +7 -7
- data/src/core/{ext/xds → xds/grpc}/xds_bootstrap_grpc.cc +7 -8
- data/src/core/{ext/xds → xds/grpc}/xds_bootstrap_grpc.h +14 -14
- data/src/core/{ext/xds → xds/grpc}/xds_certificate_provider.cc +5 -5
- data/src/core/{ext/xds → xds/grpc}/xds_certificate_provider.h +5 -6
- data/src/core/{ext/xds → xds/grpc}/xds_client_grpc.cc +51 -34
- data/src/core/{ext/xds → xds/grpc}/xds_client_grpc.h +10 -11
- data/src/core/{ext/xds → xds/grpc}/xds_cluster.cc +22 -14
- data/src/core/{ext/xds → xds/grpc}/xds_cluster.h +12 -13
- data/src/core/{ext/xds → xds/grpc}/xds_cluster_specifier_plugin.cc +6 -6
- data/src/core/{ext/xds → xds/grpc}/xds_cluster_specifier_plugin.h +7 -7
- data/src/core/{ext/xds → xds/grpc}/xds_common_types.cc +6 -7
- data/src/core/{ext/xds → xds/grpc}/xds_common_types.h +7 -7
- data/src/core/{ext/xds → xds/grpc}/xds_endpoint.cc +11 -12
- data/src/core/{ext/xds → xds/grpc}/xds_endpoint.h +9 -9
- data/src/core/{ext/xds → xds/grpc}/xds_health_status.cc +3 -3
- data/src/core/{ext/xds → xds/grpc}/xds_health_status.h +5 -5
- data/src/core/{ext/xds → xds/grpc}/xds_http_fault_filter.cc +6 -7
- data/src/core/{ext/xds → xds/grpc}/xds_http_fault_filter.h +8 -8
- data/src/core/{ext/xds → xds/grpc}/xds_http_filters.cc +8 -9
- data/src/core/{ext/xds → xds/grpc}/xds_http_filters.h +9 -9
- data/src/core/{ext/xds → xds/grpc}/xds_http_rbac_filter.cc +9 -10
- data/src/core/{ext/xds → xds/grpc}/xds_http_rbac_filter.h +8 -8
- data/src/core/{ext/xds → xds/grpc}/xds_http_stateful_session_filter.cc +7 -8
- data/src/core/{ext/xds → xds/grpc}/xds_http_stateful_session_filter.h +8 -8
- data/src/core/{ext/xds → xds/grpc}/xds_lb_policy_registry.cc +3 -4
- data/src/core/{ext/xds → xds/grpc}/xds_lb_policy_registry.h +7 -7
- data/src/core/{ext/xds → xds/grpc}/xds_listener.cc +12 -14
- data/src/core/{ext/xds → xds/grpc}/xds_listener.h +12 -12
- data/src/core/{ext/xds → xds/grpc}/xds_route_config.cc +23 -24
- data/src/core/{ext/xds → xds/grpc}/xds_route_config.h +11 -11
- data/src/core/{ext/xds → xds/grpc}/xds_routing.cc +6 -6
- data/src/core/{ext/xds → xds/grpc}/xds_routing.h +8 -8
- data/src/core/{ext/xds → xds/grpc}/xds_transport_grpc.cc +16 -16
- data/src/core/{ext/xds → xds/grpc}/xds_transport_grpc.h +7 -8
- data/src/core/{ext/xds → xds/xds_client}/xds_api.cc +9 -14
- data/src/core/{ext/xds → xds/xds_client}/xds_api.h +7 -7
- data/src/core/{ext/xds → xds/xds_client}/xds_bootstrap.cc +4 -4
- data/src/core/{ext/xds → xds/xds_client}/xds_bootstrap.h +6 -6
- data/src/core/{ext/xds → xds/xds_client}/xds_channel_args.h +3 -3
- data/src/core/{ext/xds → xds/xds_client}/xds_client.cc +60 -62
- data/src/core/{ext/xds → xds/xds_client}/xds_client.h +10 -14
- data/src/core/{ext/xds → xds/xds_client}/xds_client_stats.cc +23 -22
- data/src/core/{ext/xds → xds/xds_client}/xds_client_stats.h +8 -8
- data/src/core/{ext/xds → xds/xds_client}/xds_metrics.h +7 -5
- data/src/core/{ext/xds → xds/xds_client}/xds_resource_type.h +6 -6
- data/src/core/{ext/xds → xds/xds_client}/xds_resource_type_impl.h +7 -7
- data/src/core/{ext/xds → xds/xds_client}/xds_transport.h +6 -6
- 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_call_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_call_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
- 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.c +130 -130
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +198 -197
- data/src/ruby/ext/grpc/rb_server.c +40 -22
- data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +1 -0
- 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/abseil-cpp/absl/log/check.h +209 -0
- data/third_party/abseil-cpp/absl/log/internal/check_impl.h +150 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +118 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +420 -0
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +13 -18
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +25 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +3 -18
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +19 -15
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c +48 -66
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +20 -28
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +0 -15
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +7 -61
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1539 -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 +36 -20
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +81 -60
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +41 -120
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +13 -13
- data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c +137 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c +120 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +6 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +31 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +46 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +8 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +14 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +11 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +11 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +22 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +78 -29
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +62 -27
- data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -9
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -17
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +44 -41
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +13 -12
- data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +26 -33
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c +2 -0
- 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_trs.c +21 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +8 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +1 -6
- data/third_party/boringssl-with-bazel/{err_data.c → src/gen/crypto/err_data.c} +487 -485
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +85 -42
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +12 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +10 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +17 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +10 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +13 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +25 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +15 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +131 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/{kyber.h → experimental/kyber.h} +10 -0
- data/third_party/boringssl-with-bazel/src/{crypto/spx/internal.h → include/openssl/experimental/spx.h} +24 -13
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +63 -53
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +19 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +26 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +358 -102
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +10 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/target.h +13 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2931 -2453
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -8
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +19 -18
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +3 -9
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +64 -58
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +17 -7
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +69 -16
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +145 -114
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +243 -189
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +59 -385
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +21 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +423 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +108 -81
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +116 -93
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +6 -14
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +48 -116
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +21 -27
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +36 -3
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +53 -18
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +1 -1
- metadata +207 -196
- data/src/core/client_channel/client_channel_channelz.cc +0 -93
- data/src/core/client_channel/client_channel_channelz.h +0 -85
- data/src/core/ext/filters/deadline/deadline_filter.cc +0 -407
- data/src/core/ext/filters/deadline/deadline_filter.h +0 -85
- 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/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 -77
- data/src/core/lib/channel/metrics.cc +0 -396
- data/src/core/lib/channel/metrics.h +0 -406
- data/src/core/lib/event_engine/trace.cc +0 -25
- data/src/core/lib/gpr/log.cc +0 -166
- data/src/core/lib/gpr/log_internal.h +0 -55
- 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/security/transport/tsi_error.cc +0 -31
- data/src/core/lib/security/transport/tsi_error.h +0 -30
- 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 -170
- data/src/core/lib/transport/batch_builder.h +0 -476
- 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/third_party/boringssl-with-bazel/src/include/openssl/pki/certificate.h +0 -83
- data/third_party/boringssl-with-bazel/src/include/openssl/pki/signature_verify_cache.h +0 -41
- /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}/sync_abseil.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
|
@@ -16,13 +16,15 @@
|
|
|
16
16
|
//
|
|
17
17
|
//
|
|
18
18
|
|
|
19
|
-
#include <grpc/support/port_platform.h>
|
|
20
|
-
|
|
21
19
|
#include "src/core/tsi/ssl_transport_security.h"
|
|
22
20
|
|
|
23
21
|
#include <limits.h>
|
|
24
22
|
#include <string.h>
|
|
25
23
|
|
|
24
|
+
#include <grpc/support/port_platform.h>
|
|
25
|
+
|
|
26
|
+
#include "src/core/tsi/transport_security_interface.h"
|
|
27
|
+
|
|
26
28
|
// TODO(jboeuf): refactor inet_ntop into a portability header.
|
|
27
29
|
// Note: for whomever reads this and tries to refactor this, this
|
|
28
30
|
// can't be in grpc, it has to be in gpr.
|
|
@@ -45,6 +47,8 @@
|
|
|
45
47
|
#include <openssl/x509.h>
|
|
46
48
|
#include <openssl/x509v3.h>
|
|
47
49
|
|
|
50
|
+
#include "absl/log/check.h"
|
|
51
|
+
#include "absl/log/log.h"
|
|
48
52
|
#include "absl/strings/match.h"
|
|
49
53
|
#include "absl/strings/str_cat.h"
|
|
50
54
|
#include "absl/strings/string_view.h"
|
|
@@ -52,12 +56,10 @@
|
|
|
52
56
|
#include <grpc/grpc_crl_provider.h>
|
|
53
57
|
#include <grpc/grpc_security.h>
|
|
54
58
|
#include <grpc/support/alloc.h>
|
|
55
|
-
#include <grpc/support/log.h>
|
|
56
59
|
#include <grpc/support/string_util.h>
|
|
57
60
|
#include <grpc/support/sync.h>
|
|
58
61
|
#include <grpc/support/thd_id.h>
|
|
59
62
|
|
|
60
|
-
#include "src/core/lib/gpr/useful.h"
|
|
61
63
|
#include "src/core/lib/gprpp/crash.h"
|
|
62
64
|
#include "src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h"
|
|
63
65
|
#include "src/core/tsi/ssl/key_logging/ssl_key_logging.h"
|
|
@@ -65,6 +67,7 @@
|
|
|
65
67
|
#include "src/core/tsi/ssl_transport_security_utils.h"
|
|
66
68
|
#include "src/core/tsi/ssl_types.h"
|
|
67
69
|
#include "src/core/tsi/transport_security.h"
|
|
70
|
+
#include "src/core/util/useful.h"
|
|
68
71
|
|
|
69
72
|
// --- Constants. ---
|
|
70
73
|
|
|
@@ -194,7 +197,7 @@ static void init_openssl(void) {
|
|
|
194
197
|
#if OPENSSL_VERSION_NUMBER < 0x10100000
|
|
195
198
|
if (!CRYPTO_get_locking_callback()) {
|
|
196
199
|
int num_locks = CRYPTO_num_locks();
|
|
197
|
-
|
|
200
|
+
CHECK_GT(num_locks, 0);
|
|
198
201
|
g_openssl_mutexes = static_cast<gpr_mu*>(
|
|
199
202
|
gpr_malloc(static_cast<size_t>(num_locks) * sizeof(gpr_mu)));
|
|
200
203
|
for (int i = 0; i < num_locks; i++) {
|
|
@@ -203,20 +206,20 @@ static void init_openssl(void) {
|
|
|
203
206
|
CRYPTO_set_locking_callback(openssl_locking_cb);
|
|
204
207
|
CRYPTO_set_id_callback(openssl_thread_id_cb);
|
|
205
208
|
} else {
|
|
206
|
-
|
|
209
|
+
LOG(INFO) << "OpenSSL callback has already been set.";
|
|
207
210
|
}
|
|
208
211
|
#endif
|
|
209
212
|
g_ssl_ctx_ex_factory_index =
|
|
210
213
|
SSL_CTX_get_ex_new_index(0, nullptr, nullptr, nullptr, nullptr);
|
|
211
|
-
|
|
214
|
+
CHECK_NE(g_ssl_ctx_ex_factory_index, -1);
|
|
212
215
|
|
|
213
216
|
g_ssl_ctx_ex_crl_provider_index =
|
|
214
217
|
SSL_CTX_get_ex_new_index(0, nullptr, nullptr, nullptr, nullptr);
|
|
215
|
-
|
|
218
|
+
CHECK_NE(g_ssl_ctx_ex_crl_provider_index, -1);
|
|
216
219
|
|
|
217
220
|
g_ssl_ex_verified_root_cert_index = SSL_get_ex_new_index(
|
|
218
221
|
0, nullptr, nullptr, nullptr, verified_root_cert_free);
|
|
219
|
-
|
|
222
|
+
CHECK_NE(g_ssl_ex_verified_root_cert_index, -1);
|
|
220
223
|
}
|
|
221
224
|
|
|
222
225
|
// --- Ssl utils. ---
|
|
@@ -224,7 +227,7 @@ static void init_openssl(void) {
|
|
|
224
227
|
// TODO(jboeuf): Remove when we are past the debugging phase with this code.
|
|
225
228
|
static void ssl_log_where_info(const SSL* ssl, int where, int flag,
|
|
226
229
|
const char* msg) {
|
|
227
|
-
if ((where & flag) && GRPC_TRACE_FLAG_ENABLED(
|
|
230
|
+
if ((where & flag) && GRPC_TRACE_FLAG_ENABLED(tsi)) {
|
|
228
231
|
gpr_log(GPR_INFO, "%20.20s - %30.30s - %5.10s", msg,
|
|
229
232
|
SSL_state_string_long(ssl), SSL_state_string(ssl));
|
|
230
233
|
}
|
|
@@ -233,7 +236,7 @@ static void ssl_log_where_info(const SSL* ssl, int where, int flag,
|
|
|
233
236
|
// Used for debugging. TODO(jboeuf): Remove when code is mature enough.
|
|
234
237
|
static void ssl_info_callback(const SSL* ssl, int where, int ret) {
|
|
235
238
|
if (ret == 0) {
|
|
236
|
-
|
|
239
|
+
LOG(ERROR) << "ssl_info_callback: error occurred.\n";
|
|
237
240
|
return;
|
|
238
241
|
}
|
|
239
242
|
|
|
@@ -276,30 +279,28 @@ static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8,
|
|
|
276
279
|
X509_NAME* subject_name = X509_get_subject_name(cert);
|
|
277
280
|
int utf8_returned_size = 0;
|
|
278
281
|
if (subject_name == nullptr) {
|
|
279
|
-
|
|
282
|
+
VLOG(2) << "Could not get subject name from certificate.";
|
|
280
283
|
return TSI_NOT_FOUND;
|
|
281
284
|
}
|
|
282
285
|
common_name_index =
|
|
283
286
|
X509_NAME_get_index_by_NID(subject_name, NID_commonName, -1);
|
|
284
287
|
if (common_name_index == -1) {
|
|
285
|
-
|
|
286
|
-
"Could not get common name of subject from certificate.");
|
|
288
|
+
VLOG(2) << "Could not get common name of subject from certificate.";
|
|
287
289
|
return TSI_NOT_FOUND;
|
|
288
290
|
}
|
|
289
291
|
common_name_entry = X509_NAME_get_entry(subject_name, common_name_index);
|
|
290
292
|
if (common_name_entry == nullptr) {
|
|
291
|
-
|
|
293
|
+
LOG(ERROR) << "Could not get common name entry from certificate.";
|
|
292
294
|
return TSI_INTERNAL_ERROR;
|
|
293
295
|
}
|
|
294
296
|
common_name_asn1 = X509_NAME_ENTRY_get_data(common_name_entry);
|
|
295
297
|
if (common_name_asn1 == nullptr) {
|
|
296
|
-
|
|
297
|
-
"Could not get common name entry asn1 from certificate.");
|
|
298
|
+
LOG(ERROR) << "Could not get common name entry asn1 from certificate.";
|
|
298
299
|
return TSI_INTERNAL_ERROR;
|
|
299
300
|
}
|
|
300
301
|
utf8_returned_size = ASN1_STRING_to_UTF8(utf8, common_name_asn1);
|
|
301
302
|
if (utf8_returned_size < 0) {
|
|
302
|
-
|
|
303
|
+
LOG(ERROR) << "Could not extract utf8 from asn1 string.";
|
|
303
304
|
return TSI_OUT_OF_RESOURCES;
|
|
304
305
|
}
|
|
305
306
|
*utf8_size = static_cast<size_t>(utf8_returned_size);
|
|
@@ -335,7 +336,7 @@ static tsi_result peer_property_from_x509_subject(X509* cert,
|
|
|
335
336
|
bool is_verified_root_cert) {
|
|
336
337
|
X509_NAME* subject_name = X509_get_subject_name(cert);
|
|
337
338
|
if (subject_name == nullptr) {
|
|
338
|
-
|
|
339
|
+
LOG(INFO) << "Could not get subject name from certificate.";
|
|
339
340
|
return TSI_NOT_FOUND;
|
|
340
341
|
}
|
|
341
342
|
BIO* bio = BIO_new(BIO_s_mem());
|
|
@@ -343,7 +344,7 @@ static tsi_result peer_property_from_x509_subject(X509* cert,
|
|
|
343
344
|
char* contents;
|
|
344
345
|
long len = BIO_get_mem_data(bio, &contents);
|
|
345
346
|
if (len < 0) {
|
|
346
|
-
|
|
347
|
+
LOG(ERROR) << "Could not get subject entry from certificate.";
|
|
347
348
|
BIO_free(bio);
|
|
348
349
|
return TSI_INTERNAL_ERROR;
|
|
349
350
|
}
|
|
@@ -408,7 +409,7 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
|
408
409
|
property_name = TSI_X509_URI_PEER_PROPERTY;
|
|
409
410
|
}
|
|
410
411
|
if (name_size < 0) {
|
|
411
|
-
|
|
412
|
+
LOG(ERROR) << "Could not get utf8 from asn1 string.";
|
|
412
413
|
result = TSI_INTERNAL_ERROR;
|
|
413
414
|
break;
|
|
414
415
|
}
|
|
@@ -434,14 +435,14 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
|
434
435
|
} else if (subject_alt_name->d.iPAddress->length == 16) {
|
|
435
436
|
af = AF_INET6;
|
|
436
437
|
} else {
|
|
437
|
-
|
|
438
|
+
LOG(ERROR) << "SAN IP Address contained invalid IP";
|
|
438
439
|
result = TSI_INTERNAL_ERROR;
|
|
439
440
|
break;
|
|
440
441
|
}
|
|
441
442
|
const char* name = inet_ntop(af, subject_alt_name->d.iPAddress->data,
|
|
442
443
|
ntop_buf, INET6_ADDRSTRLEN);
|
|
443
444
|
if (name == nullptr) {
|
|
444
|
-
|
|
445
|
+
LOG(ERROR) << "Could not get IP string from asn1 octet.";
|
|
445
446
|
result = TSI_INTERNAL_ERROR;
|
|
446
447
|
break;
|
|
447
448
|
}
|
|
@@ -475,7 +476,7 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
|
475
476
|
: 0;
|
|
476
477
|
size_t property_count;
|
|
477
478
|
tsi_result result;
|
|
478
|
-
|
|
479
|
+
CHECK_GE(subject_alt_name_count, 0);
|
|
479
480
|
property_count = (include_certificate_type ? size_t{1} : 0) +
|
|
480
481
|
3 /* subject, common name, certificate */ +
|
|
481
482
|
static_cast<size_t>(subject_alt_name_count);
|
|
@@ -530,7 +531,7 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
|
530
531
|
}
|
|
531
532
|
if (result != TSI_OK) tsi_peer_destruct(peer);
|
|
532
533
|
|
|
533
|
-
|
|
534
|
+
CHECK((int)peer->property_count == current_insert_index);
|
|
534
535
|
return result;
|
|
535
536
|
}
|
|
536
537
|
|
|
@@ -541,7 +542,7 @@ static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
|
|
|
541
542
|
tsi_result result = TSI_OK;
|
|
542
543
|
X509* certificate = nullptr;
|
|
543
544
|
BIO* pem;
|
|
544
|
-
|
|
545
|
+
CHECK_LE(pem_cert_chain_size, static_cast<size_t>(INT_MAX));
|
|
545
546
|
pem = BIO_new_mem_buf(pem_cert_chain, static_cast<int>(pem_cert_chain_size));
|
|
546
547
|
if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
|
|
547
548
|
|
|
@@ -604,7 +605,7 @@ static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
|
|
|
604
605
|
}
|
|
605
606
|
engine_name = static_cast<char*>(gpr_zalloc(engine_name_length + 1));
|
|
606
607
|
memcpy(engine_name, engine_start, engine_name_length);
|
|
607
|
-
|
|
608
|
+
VLOG(2) << "ENGINE key: " << engine_name;
|
|
608
609
|
ENGINE_load_dynamic();
|
|
609
610
|
engine = ENGINE_by_id(engine_name);
|
|
610
611
|
if (engine == nullptr) {
|
|
@@ -612,7 +613,7 @@ static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
|
|
|
612
613
|
// current working directory.
|
|
613
614
|
engine = ENGINE_by_id("dynamic");
|
|
614
615
|
if (engine == nullptr) {
|
|
615
|
-
|
|
616
|
+
LOG(ERROR) << "Cannot load dynamic engine";
|
|
616
617
|
result = TSI_INVALID_ARGUMENT;
|
|
617
618
|
break;
|
|
618
619
|
}
|
|
@@ -621,29 +622,29 @@ static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
|
|
|
621
622
|
!ENGINE_ctrl_cmd_string(engine, "DIR_ADD", ".", 0) ||
|
|
622
623
|
!ENGINE_ctrl_cmd_string(engine, "LIST_ADD", "1", 0) ||
|
|
623
624
|
!ENGINE_ctrl_cmd_string(engine, "LOAD", NULL, 0)) {
|
|
624
|
-
|
|
625
|
+
LOG(ERROR) << "Cannot find engine";
|
|
625
626
|
result = TSI_INVALID_ARGUMENT;
|
|
626
627
|
break;
|
|
627
628
|
}
|
|
628
629
|
}
|
|
629
630
|
if (!ENGINE_set_default(engine, ENGINE_METHOD_ALL)) {
|
|
630
|
-
|
|
631
|
+
LOG(ERROR) << "ENGINE_set_default with ENGINE_METHOD_ALL failed";
|
|
631
632
|
result = TSI_INVALID_ARGUMENT;
|
|
632
633
|
break;
|
|
633
634
|
}
|
|
634
635
|
if (!ENGINE_init(engine)) {
|
|
635
|
-
|
|
636
|
+
LOG(ERROR) << "ENGINE_init failed";
|
|
636
637
|
result = TSI_INVALID_ARGUMENT;
|
|
637
638
|
break;
|
|
638
639
|
}
|
|
639
640
|
private_key = ENGINE_load_private_key(engine, key_id, 0, 0);
|
|
640
641
|
if (private_key == nullptr) {
|
|
641
|
-
|
|
642
|
+
LOG(ERROR) << "ENGINE_load_private_key failed";
|
|
642
643
|
result = TSI_INVALID_ARGUMENT;
|
|
643
644
|
break;
|
|
644
645
|
}
|
|
645
646
|
if (!SSL_CTX_use_PrivateKey(context, private_key)) {
|
|
646
|
-
|
|
647
|
+
LOG(ERROR) << "SSL_CTX_use_PrivateKey failed";
|
|
647
648
|
result = TSI_INVALID_ARGUMENT;
|
|
648
649
|
break;
|
|
649
650
|
}
|
|
@@ -661,7 +662,7 @@ static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
|
|
|
661
662
|
tsi_result result = TSI_OK;
|
|
662
663
|
EVP_PKEY* private_key = nullptr;
|
|
663
664
|
BIO* pem;
|
|
664
|
-
|
|
665
|
+
CHECK_LE(pem_key_size, static_cast<size_t>(INT_MAX));
|
|
665
666
|
pem = BIO_new_mem_buf(pem_key, static_cast<int>(pem_key_size));
|
|
666
667
|
if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
|
|
667
668
|
do {
|
|
@@ -706,7 +707,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
|
706
707
|
X509* root = nullptr;
|
|
707
708
|
X509_NAME* root_name = nullptr;
|
|
708
709
|
BIO* pem;
|
|
709
|
-
|
|
710
|
+
CHECK_LE(pem_roots_size, static_cast<size_t>(INT_MAX));
|
|
710
711
|
pem = BIO_new_mem_buf(pem_roots, static_cast<int>(pem_roots_size));
|
|
711
712
|
if (cert_store == nullptr) return TSI_INVALID_ARGUMENT;
|
|
712
713
|
if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
|
|
@@ -724,7 +725,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
|
724
725
|
if (root_names != nullptr) {
|
|
725
726
|
root_name = X509_get_subject_name(root);
|
|
726
727
|
if (root_name == nullptr) {
|
|
727
|
-
|
|
728
|
+
LOG(ERROR) << "Could not get name from root certificate.";
|
|
728
729
|
result = TSI_INVALID_ARGUMENT;
|
|
729
730
|
break;
|
|
730
731
|
}
|
|
@@ -741,7 +742,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
|
741
742
|
unsigned long error = ERR_get_error();
|
|
742
743
|
if (ERR_GET_LIB(error) != ERR_LIB_X509 ||
|
|
743
744
|
ERR_GET_REASON(error) != X509_R_CERT_ALREADY_IN_HASH_TABLE) {
|
|
744
|
-
|
|
745
|
+
LOG(ERROR) << "Could not add root certificate to ssl context.";
|
|
745
746
|
result = TSI_INTERNAL_ERROR;
|
|
746
747
|
break;
|
|
747
748
|
}
|
|
@@ -750,7 +751,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
|
750
751
|
num_roots++;
|
|
751
752
|
}
|
|
752
753
|
if (num_roots == 0) {
|
|
753
|
-
|
|
754
|
+
LOG(ERROR) << "Could not load any root certificate.";
|
|
754
755
|
result = TSI_INVALID_ARGUMENT;
|
|
755
756
|
}
|
|
756
757
|
|
|
@@ -789,7 +790,7 @@ static tsi_result populate_ssl_context(
|
|
|
789
790
|
result = ssl_ctx_use_certificate_chain(context, key_cert_pair->cert_chain,
|
|
790
791
|
strlen(key_cert_pair->cert_chain));
|
|
791
792
|
if (result != TSI_OK) {
|
|
792
|
-
|
|
793
|
+
LOG(ERROR) << "Invalid cert chain file.";
|
|
793
794
|
return result;
|
|
794
795
|
}
|
|
795
796
|
}
|
|
@@ -797,21 +798,21 @@ static tsi_result populate_ssl_context(
|
|
|
797
798
|
result = ssl_ctx_use_private_key(context, key_cert_pair->private_key,
|
|
798
799
|
strlen(key_cert_pair->private_key));
|
|
799
800
|
if (result != TSI_OK || !SSL_CTX_check_private_key(context)) {
|
|
800
|
-
|
|
801
|
+
LOG(ERROR) << "Invalid private key.";
|
|
801
802
|
return result != TSI_OK ? result : TSI_INVALID_ARGUMENT;
|
|
802
803
|
}
|
|
803
804
|
}
|
|
804
805
|
}
|
|
805
806
|
if ((cipher_list != nullptr) &&
|
|
806
807
|
!SSL_CTX_set_cipher_list(context, cipher_list)) {
|
|
807
|
-
|
|
808
|
+
LOG(ERROR) << "Invalid cipher list: " << cipher_list;
|
|
808
809
|
return TSI_INVALID_ARGUMENT;
|
|
809
810
|
}
|
|
810
811
|
{
|
|
811
812
|
#if OPENSSL_VERSION_NUMBER < 0x30000000L
|
|
812
813
|
EC_KEY* ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
|
|
813
814
|
if (!SSL_CTX_set_tmp_ecdh(context, ecdh)) {
|
|
814
|
-
|
|
815
|
+
LOG(ERROR) << "Could not set ephemeral ECDH key.";
|
|
815
816
|
EC_KEY_free(ecdh);
|
|
816
817
|
return TSI_INTERNAL_ERROR;
|
|
817
818
|
}
|
|
@@ -819,7 +820,7 @@ static tsi_result populate_ssl_context(
|
|
|
819
820
|
EC_KEY_free(ecdh);
|
|
820
821
|
#else
|
|
821
822
|
if (!SSL_CTX_set1_groups(context, kSslEcCurveNames, 1)) {
|
|
822
|
-
|
|
823
|
+
LOG(ERROR) << "Could not set ephemeral ECDH key.";
|
|
823
824
|
return TSI_INTERNAL_ERROR;
|
|
824
825
|
}
|
|
825
826
|
SSL_CTX_set_options(context, SSL_OP_SINGLE_ECDH_USE);
|
|
@@ -839,7 +840,7 @@ tsi_result tsi_ssl_extract_x509_subject_names_from_pem_cert(
|
|
|
839
840
|
|
|
840
841
|
cert = PEM_read_bio_X509(pem, nullptr, nullptr, const_cast<char*>(""));
|
|
841
842
|
if (cert == nullptr) {
|
|
842
|
-
|
|
843
|
+
LOG(ERROR) << "Invalid certificate";
|
|
843
844
|
result = TSI_INVALID_ARGUMENT;
|
|
844
845
|
} else {
|
|
845
846
|
result = peer_from_x509(cert, 0, peer);
|
|
@@ -862,8 +863,7 @@ static tsi_result build_alpn_protocol_name_list(
|
|
|
862
863
|
size_t length =
|
|
863
864
|
alpn_protocols[i] == nullptr ? 0 : strlen(alpn_protocols[i]);
|
|
864
865
|
if (length == 0 || length > 255) {
|
|
865
|
-
|
|
866
|
-
static_cast<int>(length));
|
|
866
|
+
LOG(ERROR) << "Invalid protocol name length: " << length;
|
|
867
867
|
return TSI_INVALID_ARGUMENT;
|
|
868
868
|
}
|
|
869
869
|
*protocol_name_list_length += length + 1;
|
|
@@ -892,13 +892,12 @@ static tsi_result build_alpn_protocol_name_list(
|
|
|
892
892
|
static int verify_cb(int ok, X509_STORE_CTX* ctx) {
|
|
893
893
|
int cert_error = X509_STORE_CTX_get_error(ctx);
|
|
894
894
|
if (cert_error == X509_V_ERR_UNABLE_TO_GET_CRL) {
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
"Ignoring error.");
|
|
895
|
+
LOG(INFO) << "Certificate verification failed to find relevant CRL file. "
|
|
896
|
+
"Ignoring error.";
|
|
898
897
|
return 1;
|
|
899
898
|
}
|
|
900
899
|
if (cert_error != 0) {
|
|
901
|
-
|
|
900
|
+
LOG(ERROR) << "Certificate verify failed with code " << cert_error;
|
|
902
901
|
}
|
|
903
902
|
return ok;
|
|
904
903
|
}
|
|
@@ -942,8 +941,8 @@ static int RootCertExtractCallback(X509_STORE_CTX* ctx, void* /*arg*/) {
|
|
|
942
941
|
if (ssl_index < 0) {
|
|
943
942
|
char err_str[256];
|
|
944
943
|
ERR_error_string_n(ERR_get_error(), err_str, sizeof(err_str));
|
|
945
|
-
|
|
946
|
-
|
|
944
|
+
LOG(ERROR) << "error getting the SSL index from the X509_STORE_CTX: "
|
|
945
|
+
<< err_str;
|
|
947
946
|
return ret;
|
|
948
947
|
}
|
|
949
948
|
SSL* ssl = static_cast<SSL*>(X509_STORE_CTX_get_ex_data(ctx, ssl_index));
|
|
@@ -961,7 +960,7 @@ static int RootCertExtractCallback(X509_STORE_CTX* ctx, void* /*arg*/) {
|
|
|
961
960
|
int success =
|
|
962
961
|
SSL_set_ex_data(ssl, g_ssl_ex_verified_root_cert_index, root_cert);
|
|
963
962
|
if (success == 0) {
|
|
964
|
-
|
|
963
|
+
LOG(INFO) << "Could not set verified root cert in SSL's ex_data";
|
|
965
964
|
} else {
|
|
966
965
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
|
967
966
|
X509_up_ref(root_cert);
|
|
@@ -987,8 +986,7 @@ static grpc_core::experimental::CrlProvider* GetCrlProvider(
|
|
|
987
986
|
}
|
|
988
987
|
SSL* ssl = static_cast<SSL*>(X509_STORE_CTX_get_ex_data(ctx, ssl_index));
|
|
989
988
|
if (ssl == nullptr) {
|
|
990
|
-
|
|
991
|
-
"error while fetching from CrlProvider. SSL object is null");
|
|
989
|
+
LOG(INFO) << "error while fetching from CrlProvider. SSL object is null";
|
|
992
990
|
return nullptr;
|
|
993
991
|
}
|
|
994
992
|
SSL_CTX* ssl_ctx = SSL_get_SSL_CTX(ssl);
|
|
@@ -1006,13 +1004,13 @@ static absl::StatusOr<X509_CRL*> GetCrlFromProvider(
|
|
|
1006
1004
|
}
|
|
1007
1005
|
absl::StatusOr<std::string> issuer_name = grpc_core::IssuerFromCert(cert);
|
|
1008
1006
|
if (!issuer_name.ok()) {
|
|
1009
|
-
|
|
1007
|
+
LOG(INFO) << "Could not get certificate issuer name";
|
|
1010
1008
|
return absl::InvalidArgumentError(issuer_name.status().message());
|
|
1011
1009
|
}
|
|
1012
1010
|
absl::StatusOr<std::string> akid = grpc_core::AkidFromCertificate(cert);
|
|
1013
1011
|
std::string akid_to_use;
|
|
1014
1012
|
if (!akid.ok()) {
|
|
1015
|
-
|
|
1013
|
+
LOG(INFO) << "Could not get certificate authority key identifier.";
|
|
1016
1014
|
} else {
|
|
1017
1015
|
akid_to_use = *akid;
|
|
1018
1016
|
}
|
|
@@ -1045,12 +1043,12 @@ static bool ValidateCrl(X509* cert, X509* issuer, X509_CRL* crl) {
|
|
|
1045
1043
|
// 6.3.3b verify issuer and scope
|
|
1046
1044
|
valid = grpc_core::VerifyCrlCertIssuerNamesMatch(crl, cert);
|
|
1047
1045
|
if (!valid) {
|
|
1048
|
-
|
|
1046
|
+
VLOG(2) << "CRL and cert issuer names mismatched.";
|
|
1049
1047
|
return valid;
|
|
1050
1048
|
}
|
|
1051
1049
|
valid = grpc_core::HasCrlSignBit(issuer);
|
|
1052
1050
|
if (!valid) {
|
|
1053
|
-
|
|
1051
|
+
VLOG(2) << "CRL issuer not allowed to sign CRLs.";
|
|
1054
1052
|
return valid;
|
|
1055
1053
|
}
|
|
1056
1054
|
// 6.3.3c Not supporting deltas
|
|
@@ -1061,7 +1059,7 @@ static bool ValidateCrl(X509* cert, X509* issuer, X509_CRL* crl) {
|
|
|
1061
1059
|
// 6.3.3g Verify CRL Signature
|
|
1062
1060
|
valid = grpc_core::VerifyCrlSignature(crl, issuer);
|
|
1063
1061
|
if (!valid) {
|
|
1064
|
-
|
|
1062
|
+
VLOG(2) << "Crl signature check failed.";
|
|
1065
1063
|
}
|
|
1066
1064
|
return valid;
|
|
1067
1065
|
}
|
|
@@ -1151,7 +1149,7 @@ static int CheckChainRevocation(
|
|
|
1151
1149
|
static int CustomVerificationFunction(X509_STORE_CTX* ctx, void* arg) {
|
|
1152
1150
|
int ret = X509_verify_cert(ctx);
|
|
1153
1151
|
if (ret <= 0) {
|
|
1154
|
-
|
|
1152
|
+
VLOG(2) << "Failed to verify cert chain.";
|
|
1155
1153
|
// Verification failed. We shouldn't expect to have a verified chain, so
|
|
1156
1154
|
// there is no need to attempt to extract the root cert from it, check for
|
|
1157
1155
|
// revocation, or check anything else.
|
|
@@ -1161,7 +1159,7 @@ static int CustomVerificationFunction(X509_STORE_CTX* ctx, void* arg) {
|
|
|
1161
1159
|
if (provider != nullptr) {
|
|
1162
1160
|
ret = CheckChainRevocation(ctx, provider);
|
|
1163
1161
|
if (ret <= 0) {
|
|
1164
|
-
|
|
1162
|
+
VLOG(2) << "The chain failed revocation checks.";
|
|
1165
1163
|
return ret;
|
|
1166
1164
|
}
|
|
1167
1165
|
}
|
|
@@ -1175,8 +1173,8 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
|
1175
1173
|
SSL_CTX* ssl_context, tsi_tls_version min_tls_version,
|
|
1176
1174
|
tsi_tls_version max_tls_version) {
|
|
1177
1175
|
if (ssl_context == nullptr) {
|
|
1178
|
-
|
|
1179
|
-
|
|
1176
|
+
LOG(INFO) << "Invalid nullptr argument to "
|
|
1177
|
+
"|tsi_set_min_and_max_tls_versions|.";
|
|
1180
1178
|
return TSI_INVALID_ARGUMENT;
|
|
1181
1179
|
}
|
|
1182
1180
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
|
@@ -1197,7 +1195,7 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
|
1197
1195
|
break;
|
|
1198
1196
|
#endif
|
|
1199
1197
|
default:
|
|
1200
|
-
|
|
1198
|
+
LOG(INFO) << "TLS version is not supported.";
|
|
1201
1199
|
return TSI_FAILED_PRECONDITION;
|
|
1202
1200
|
}
|
|
1203
1201
|
|
|
@@ -1216,7 +1214,7 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
|
1216
1214
|
#endif
|
|
1217
1215
|
break;
|
|
1218
1216
|
default:
|
|
1219
|
-
|
|
1217
|
+
LOG(INFO) << "TLS version is not supported.";
|
|
1220
1218
|
return TSI_FAILED_PRECONDITION;
|
|
1221
1219
|
}
|
|
1222
1220
|
#endif
|
|
@@ -1228,25 +1226,25 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
|
1228
1226
|
tsi_ssl_root_certs_store* tsi_ssl_root_certs_store_create(
|
|
1229
1227
|
const char* pem_roots) {
|
|
1230
1228
|
if (pem_roots == nullptr) {
|
|
1231
|
-
|
|
1229
|
+
LOG(ERROR) << "The root certificates are empty.";
|
|
1232
1230
|
return nullptr;
|
|
1233
1231
|
}
|
|
1234
1232
|
tsi_ssl_root_certs_store* root_store = static_cast<tsi_ssl_root_certs_store*>(
|
|
1235
1233
|
gpr_zalloc(sizeof(tsi_ssl_root_certs_store)));
|
|
1236
1234
|
if (root_store == nullptr) {
|
|
1237
|
-
|
|
1235
|
+
LOG(ERROR) << "Could not allocate buffer for ssl_root_certs_store.";
|
|
1238
1236
|
return nullptr;
|
|
1239
1237
|
}
|
|
1240
1238
|
root_store->store = X509_STORE_new();
|
|
1241
1239
|
if (root_store->store == nullptr) {
|
|
1242
|
-
|
|
1240
|
+
LOG(ERROR) << "Could not allocate buffer for X509_STORE.";
|
|
1243
1241
|
gpr_free(root_store);
|
|
1244
1242
|
return nullptr;
|
|
1245
1243
|
}
|
|
1246
1244
|
tsi_result result = x509_store_load_certs(root_store->store, pem_roots,
|
|
1247
1245
|
strlen(pem_roots), nullptr);
|
|
1248
1246
|
if (result != TSI_OK) {
|
|
1249
|
-
|
|
1247
|
+
LOG(ERROR) << "Could not load root certificates.";
|
|
1250
1248
|
X509_STORE_free(root_store->store);
|
|
1251
1249
|
gpr_free(root_store);
|
|
1252
1250
|
return nullptr;
|
|
@@ -1372,7 +1370,7 @@ static tsi_ssl_handshaker_factory_vtable handshaker_factory_vtable = {nullptr};
|
|
|
1372
1370
|
// allocating memory for the factory.
|
|
1373
1371
|
static void tsi_ssl_handshaker_factory_init(
|
|
1374
1372
|
tsi_ssl_handshaker_factory* factory) {
|
|
1375
|
-
|
|
1373
|
+
CHECK_NE(factory, nullptr);
|
|
1376
1374
|
|
|
1377
1375
|
factory->vtable = &handshaker_factory_vtable;
|
|
1378
1376
|
gpr_ref_init(&factory->refcount, 1);
|
|
@@ -1476,9 +1474,8 @@ static tsi_result ssl_handshaker_result_extract_peer(
|
|
|
1476
1474
|
result = peer_property_from_x509_subject(
|
|
1477
1475
|
verified_root_cert, &peer->properties[peer->property_count], true);
|
|
1478
1476
|
if (result != TSI_OK) {
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
static_cast<int>(result));
|
|
1477
|
+
VLOG(2) << "Problem extracting subject from verified_root_cert. result: "
|
|
1478
|
+
<< result;
|
|
1482
1479
|
}
|
|
1483
1480
|
peer->property_count++;
|
|
1484
1481
|
}
|
|
@@ -1600,7 +1597,7 @@ static tsi_result ssl_handshaker_get_bytes_to_send_to_peer(
|
|
|
1600
1597
|
if (error != nullptr) *error = "invalid argument";
|
|
1601
1598
|
return TSI_INVALID_ARGUMENT;
|
|
1602
1599
|
}
|
|
1603
|
-
|
|
1600
|
+
CHECK_LE(*bytes_size, static_cast<size_t>(INT_MAX));
|
|
1604
1601
|
bytes_read_from_ssl =
|
|
1605
1602
|
BIO_read(impl->network_io, bytes, static_cast<int>(*bytes_size));
|
|
1606
1603
|
if (bytes_read_from_ssl < 0) {
|
|
@@ -1671,11 +1668,11 @@ static tsi_result ssl_handshaker_process_bytes_from_peer(
|
|
|
1671
1668
|
if (error != nullptr) *error = "invalid argument";
|
|
1672
1669
|
return TSI_INVALID_ARGUMENT;
|
|
1673
1670
|
}
|
|
1674
|
-
|
|
1671
|
+
CHECK_LE(*bytes_size, static_cast<size_t>(INT_MAX));
|
|
1675
1672
|
bytes_written_into_ssl_size =
|
|
1676
1673
|
BIO_write(impl->network_io, bytes, static_cast<int>(*bytes_size));
|
|
1677
1674
|
if (bytes_written_into_ssl_size < 0) {
|
|
1678
|
-
|
|
1675
|
+
LOG(ERROR) << "Could not write to memory BIO.";
|
|
1679
1676
|
if (error != nullptr) *error = "could not write to memory BIO";
|
|
1680
1677
|
impl->result = TSI_INTERNAL_ERROR;
|
|
1681
1678
|
return impl->result;
|
|
@@ -1822,7 +1819,7 @@ static tsi_result ssl_handshaker_next(tsi_handshaker* self,
|
|
|
1822
1819
|
ssl_bytes_remaining(impl, &unused_bytes, &unused_bytes_size, error);
|
|
1823
1820
|
if (status != TSI_OK) return status;
|
|
1824
1821
|
if (unused_bytes_size > received_bytes_size) {
|
|
1825
|
-
|
|
1822
|
+
LOG(ERROR) << "More unused bytes than received bytes.";
|
|
1826
1823
|
gpr_free(unused_bytes);
|
|
1827
1824
|
if (error != nullptr) *error = "More unused bytes than received bytes.";
|
|
1828
1825
|
return TSI_INTERNAL_ERROR;
|
|
@@ -1876,7 +1873,7 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
|
|
1876
1873
|
tsi_ssl_handshaker* impl = nullptr;
|
|
1877
1874
|
*handshaker = nullptr;
|
|
1878
1875
|
if (ctx == nullptr) {
|
|
1879
|
-
|
|
1876
|
+
LOG(ERROR) << "SSL Context is null. Should never happen.";
|
|
1880
1877
|
return TSI_INTERNAL_ERROR;
|
|
1881
1878
|
}
|
|
1882
1879
|
if (ssl == nullptr) {
|
|
@@ -1886,7 +1883,7 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
|
|
1886
1883
|
|
|
1887
1884
|
if (!BIO_new_bio_pair(&network_io, network_bio_buf_size, &ssl_io,
|
|
1888
1885
|
ssl_bio_buf_size)) {
|
|
1889
|
-
|
|
1886
|
+
LOG(ERROR) << "BIO_new_bio_pair failed.";
|
|
1890
1887
|
SSL_free(ssl);
|
|
1891
1888
|
return TSI_OUT_OF_RESOURCES;
|
|
1892
1889
|
}
|
|
@@ -2075,7 +2072,7 @@ static int does_entry_match_name(absl::string_view entry,
|
|
|
2075
2072
|
|
|
2076
2073
|
// Wildchar subdomain matching.
|
|
2077
2074
|
if (entry.size() < 3 || entry[1] != '.') { // At least *.x
|
|
2078
|
-
|
|
2075
|
+
LOG(ERROR) << "Invalid wildchar entry.";
|
|
2079
2076
|
return 0;
|
|
2080
2077
|
}
|
|
2081
2078
|
size_t name_subdomain_pos = name.find('.');
|
|
@@ -2086,8 +2083,7 @@ static int does_entry_match_name(absl::string_view entry,
|
|
|
2086
2083
|
entry.remove_prefix(2); // Remove *.
|
|
2087
2084
|
size_t dot = name_subdomain.find('.');
|
|
2088
2085
|
if (dot == absl::string_view::npos || dot == name_subdomain.size() - 1) {
|
|
2089
|
-
|
|
2090
|
-
std::string(name_subdomain).c_str());
|
|
2086
|
+
LOG(ERROR) << "Invalid toplevel subdomain: " << name_subdomain;
|
|
2091
2087
|
return 0;
|
|
2092
2088
|
}
|
|
2093
2089
|
if (name_subdomain.back() == '.') {
|
|
@@ -2114,7 +2110,7 @@ static int ssl_server_handshaker_factory_servername_callback(SSL* ssl,
|
|
|
2114
2110
|
return SSL_TLSEXT_ERR_OK;
|
|
2115
2111
|
}
|
|
2116
2112
|
}
|
|
2117
|
-
|
|
2113
|
+
LOG(ERROR) << "No match found for server name: " << servername;
|
|
2118
2114
|
return SSL_TLSEXT_ERR_NOACK;
|
|
2119
2115
|
}
|
|
2120
2116
|
|
|
@@ -2135,7 +2131,7 @@ static int server_handshaker_factory_npn_advertised_callback(
|
|
|
2135
2131
|
tsi_ssl_server_handshaker_factory* factory =
|
|
2136
2132
|
static_cast<tsi_ssl_server_handshaker_factory*>(arg);
|
|
2137
2133
|
*out = factory->alpn_protocol_list;
|
|
2138
|
-
|
|
2134
|
+
CHECK(factory->alpn_protocol_list_length <= UINT_MAX);
|
|
2139
2135
|
*outlen = static_cast<unsigned int>(factory->alpn_protocol_list_length);
|
|
2140
2136
|
return SSL_TLSEXT_ERR_OK;
|
|
2141
2137
|
}
|
|
@@ -2169,7 +2165,7 @@ static int server_handshaker_factory_new_session_callback(
|
|
|
2169
2165
|
template <typename T>
|
|
2170
2166
|
static void ssl_keylogging_callback(const SSL* ssl, const char* info) {
|
|
2171
2167
|
SSL_CTX* ssl_context = SSL_get_SSL_CTX(ssl);
|
|
2172
|
-
|
|
2168
|
+
CHECK_NE(ssl_context, nullptr);
|
|
2173
2169
|
void* arg = SSL_CTX_get_ex_data(ssl_context, g_ssl_ctx_ex_factory_index);
|
|
2174
2170
|
T* factory = static_cast<T*>(arg);
|
|
2175
2171
|
factory->key_logger->LogSessionKeys(ssl_context, info);
|
|
@@ -2221,7 +2217,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
|
2221
2217
|
#endif
|
|
2222
2218
|
if (ssl_context == nullptr) {
|
|
2223
2219
|
grpc_core::LogSslErrorStack();
|
|
2224
|
-
|
|
2220
|
+
LOG(ERROR) << "Could not create ssl context.";
|
|
2225
2221
|
return TSI_INVALID_ARGUMENT;
|
|
2226
2222
|
}
|
|
2227
2223
|
|
|
@@ -2288,7 +2284,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
|
2288
2284
|
|
|
2289
2285
|
X509_VERIFY_PARAM_set_depth(param, kMaxChainLength);
|
|
2290
2286
|
if (result != TSI_OK) {
|
|
2291
|
-
|
|
2287
|
+
LOG(ERROR) << "Cannot load server root certificates.";
|
|
2292
2288
|
break;
|
|
2293
2289
|
}
|
|
2294
2290
|
}
|
|
@@ -2298,16 +2294,16 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
|
2298
2294
|
options->alpn_protocols, options->num_alpn_protocols,
|
|
2299
2295
|
&impl->alpn_protocol_list, &impl->alpn_protocol_list_length);
|
|
2300
2296
|
if (result != TSI_OK) {
|
|
2301
|
-
|
|
2302
|
-
|
|
2297
|
+
LOG(ERROR) << "Building alpn list failed with error "
|
|
2298
|
+
<< tsi_result_to_string(result);
|
|
2303
2299
|
break;
|
|
2304
2300
|
}
|
|
2305
2301
|
#if TSI_OPENSSL_ALPN_SUPPORT
|
|
2306
|
-
|
|
2302
|
+
CHECK(impl->alpn_protocol_list_length < UINT_MAX);
|
|
2307
2303
|
if (SSL_CTX_set_alpn_protos(
|
|
2308
2304
|
ssl_context, impl->alpn_protocol_list,
|
|
2309
2305
|
static_cast<unsigned int>(impl->alpn_protocol_list_length))) {
|
|
2310
|
-
|
|
2306
|
+
LOG(ERROR) << "Could not set alpn protocol list to context.";
|
|
2311
2307
|
result = TSI_INVALID_ARGUMENT;
|
|
2312
2308
|
break;
|
|
2313
2309
|
}
|
|
@@ -2337,7 +2333,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
|
2337
2333
|
X509_STORE_set_verify_cb(cert_store, verify_cb);
|
|
2338
2334
|
if (!X509_STORE_load_locations(cert_store, nullptr,
|
|
2339
2335
|
options->crl_directory)) {
|
|
2340
|
-
|
|
2336
|
+
LOG(ERROR) << "Failed to load CRL File from directory.";
|
|
2341
2337
|
} else {
|
|
2342
2338
|
X509_VERIFY_PARAM* param = X509_STORE_get0_param(cert_store);
|
|
2343
2339
|
X509_VERIFY_PARAM_set_flags(
|
|
@@ -2442,7 +2438,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
|
2442
2438
|
#endif
|
|
2443
2439
|
if (impl->ssl_contexts[i] == nullptr) {
|
|
2444
2440
|
grpc_core::LogSslErrorStack();
|
|
2445
|
-
|
|
2441
|
+
LOG(ERROR) << "Could not create ssl context.";
|
|
2446
2442
|
result = TSI_OUT_OF_RESOURCES;
|
|
2447
2443
|
break;
|
|
2448
2444
|
}
|
|
@@ -2464,7 +2460,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
|
2464
2460
|
impl->ssl_contexts[i], kSslSessionIdContext,
|
|
2465
2461
|
GPR_ARRAY_SIZE(kSslSessionIdContext));
|
|
2466
2462
|
if (set_sid_ctx_result == 0) {
|
|
2467
|
-
|
|
2463
|
+
LOG(ERROR) << "Failed to set session id context.";
|
|
2468
2464
|
result = TSI_INTERNAL_ERROR;
|
|
2469
2465
|
break;
|
|
2470
2466
|
}
|
|
@@ -2474,7 +2470,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
|
2474
2470
|
impl->ssl_contexts[i],
|
|
2475
2471
|
const_cast<char*>(options->session_ticket_key),
|
|
2476
2472
|
options->session_ticket_key_size) == 0) {
|
|
2477
|
-
|
|
2473
|
+
LOG(ERROR) << "Invalid STEK size.";
|
|
2478
2474
|
result = TSI_INVALID_ARGUMENT;
|
|
2479
2475
|
break;
|
|
2480
2476
|
}
|
|
@@ -2487,7 +2483,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
|
2487
2483
|
strlen(options->pem_client_root_certs),
|
|
2488
2484
|
options->send_client_ca_list ? &root_names : nullptr);
|
|
2489
2485
|
if (result != TSI_OK) {
|
|
2490
|
-
|
|
2486
|
+
LOG(ERROR) << "Invalid verification certs.";
|
|
2491
2487
|
break;
|
|
2492
2488
|
}
|
|
2493
2489
|
if (options->send_client_ca_list) {
|
|
@@ -2535,7 +2531,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
|
2535
2531
|
X509_STORE_set_verify_cb(cert_store, verify_cb);
|
|
2536
2532
|
if (!X509_STORE_load_locations(cert_store, nullptr,
|
|
2537
2533
|
options->crl_directory)) {
|
|
2538
|
-
|
|
2534
|
+
LOG(ERROR) << "Failed to load CRL File from directory.";
|
|
2539
2535
|
} else {
|
|
2540
2536
|
X509_VERIFY_PARAM* param = X509_STORE_get0_param(cert_store);
|
|
2541
2537
|
X509_VERIFY_PARAM_set_flags(
|
|
@@ -2631,8 +2627,8 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
|
|
2631
2627
|
const tsi_ssl_handshaker_factory_vtable* tsi_ssl_handshaker_factory_swap_vtable(
|
|
2632
2628
|
tsi_ssl_handshaker_factory* factory,
|
|
2633
2629
|
tsi_ssl_handshaker_factory_vtable* new_vtable) {
|
|
2634
|
-
|
|
2635
|
-
|
|
2630
|
+
CHECK_NE(factory, nullptr);
|
|
2631
|
+
CHECK_NE(factory->vtable, nullptr);
|
|
2636
2632
|
|
|
2637
2633
|
const tsi_ssl_handshaker_factory_vtable* orig_vtable = factory->vtable;
|
|
2638
2634
|
factory->vtable = new_vtable;
|