grpc 1.37.1 → 1.38.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +64 -58
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +5 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +101 -93
- data/src/core/ext/xds/xds_api.h +6 -6
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +4 -4
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +36 -34
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +477 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +68 -45
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
@@ -74,9 +74,9 @@ void grpc_metadata_batch_remove(grpc_metadata_batch* batch,
|
|
74
74
|
grpc_metadata_batch_callouts_index idx);
|
75
75
|
|
76
76
|
/** Substitute a new mdelem for an old value */
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
grpc_error_handle grpc_metadata_batch_substitute(grpc_metadata_batch* batch,
|
78
|
+
grpc_linked_mdelem* storage,
|
79
|
+
grpc_mdelem new_mdelem);
|
80
80
|
|
81
81
|
void grpc_metadata_batch_set_value(grpc_linked_mdelem* storage,
|
82
82
|
const grpc_slice& value);
|
@@ -97,10 +97,10 @@ absl::optional<absl::string_view> grpc_metadata_batch_get_value(
|
|
97
97
|
\a storage is owned by the caller and must survive for the
|
98
98
|
lifetime of batch. This usually means it should be around
|
99
99
|
for the lifetime of the call. */
|
100
|
-
|
101
|
-
|
100
|
+
grpc_error_handle grpc_metadata_batch_link_head(grpc_metadata_batch* batch,
|
101
|
+
grpc_linked_mdelem* storage)
|
102
102
|
GRPC_MUST_USE_RESULT;
|
103
|
-
|
103
|
+
grpc_error_handle grpc_metadata_batch_link_head(
|
104
104
|
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
105
105
|
grpc_metadata_batch_callouts_index idx) GRPC_MUST_USE_RESULT;
|
106
106
|
|
@@ -109,10 +109,10 @@ grpc_error* grpc_metadata_batch_link_head(
|
|
109
109
|
\a storage is owned by the caller and must survive for the
|
110
110
|
lifetime of batch. This usually means it should be around
|
111
111
|
for the lifetime of the call. */
|
112
|
-
|
113
|
-
|
112
|
+
grpc_error_handle grpc_metadata_batch_link_tail(grpc_metadata_batch* batch,
|
113
|
+
grpc_linked_mdelem* storage)
|
114
114
|
GRPC_MUST_USE_RESULT;
|
115
|
-
|
115
|
+
grpc_error_handle grpc_metadata_batch_link_tail(
|
116
116
|
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
117
117
|
grpc_metadata_batch_callouts_index idx) GRPC_MUST_USE_RESULT;
|
118
118
|
|
@@ -122,19 +122,19 @@ grpc_error* grpc_metadata_batch_link_tail(
|
|
122
122
|
lifetime of batch. This usually means it should be around
|
123
123
|
for the lifetime of the call.
|
124
124
|
Takes ownership of \a elem_to_add */
|
125
|
-
|
125
|
+
grpc_error_handle grpc_metadata_batch_add_head(
|
126
126
|
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
127
127
|
grpc_mdelem elem_to_add) GRPC_MUST_USE_RESULT;
|
128
128
|
|
129
129
|
// TODO(arjunroy, roth): Remove redundant methods.
|
130
130
|
// add/link_head/tail are almost identical.
|
131
|
-
inline
|
131
|
+
inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
|
132
132
|
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
133
133
|
grpc_metadata_batch_callouts_index idx) {
|
134
134
|
return grpc_metadata_batch_link_head(batch, storage, idx);
|
135
135
|
}
|
136
136
|
|
137
|
-
inline
|
137
|
+
inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
|
138
138
|
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
139
139
|
grpc_mdelem elem_to_add, grpc_metadata_batch_callouts_index idx) {
|
140
140
|
GPR_DEBUG_ASSERT(!GRPC_MDISNULL(elem_to_add));
|
@@ -148,17 +148,17 @@ inline grpc_error* GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
|
|
148
148
|
lifetime of batch. This usually means it should be around
|
149
149
|
for the lifetime of the call.
|
150
150
|
Takes ownership of \a elem_to_add */
|
151
|
-
|
151
|
+
grpc_error_handle grpc_metadata_batch_add_tail(
|
152
152
|
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
153
153
|
grpc_mdelem elem_to_add) GRPC_MUST_USE_RESULT;
|
154
154
|
|
155
|
-
inline
|
155
|
+
inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
|
156
156
|
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
157
157
|
grpc_metadata_batch_callouts_index idx) {
|
158
158
|
return grpc_metadata_batch_link_tail(batch, storage, idx);
|
159
159
|
}
|
160
160
|
|
161
|
-
inline
|
161
|
+
inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
|
162
162
|
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
163
163
|
grpc_mdelem elem_to_add, grpc_metadata_batch_callouts_index idx) {
|
164
164
|
GPR_DEBUG_ASSERT(!GRPC_MDISNULL(elem_to_add));
|
@@ -166,10 +166,11 @@ inline grpc_error* GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
|
|
166
166
|
return grpc_metadata_batch_add_tail(batch, storage, idx);
|
167
167
|
}
|
168
168
|
|
169
|
-
|
169
|
+
grpc_error_handle grpc_attach_md_to_error(grpc_error_handle src,
|
170
|
+
grpc_mdelem md);
|
170
171
|
|
171
172
|
struct grpc_filtered_mdelem {
|
172
|
-
|
173
|
+
grpc_error_handle error;
|
173
174
|
grpc_mdelem md;
|
174
175
|
};
|
175
176
|
#define GRPC_FILTERED_ERROR(error) \
|
@@ -181,7 +182,7 @@ struct grpc_filtered_mdelem {
|
|
181
182
|
|
182
183
|
typedef grpc_filtered_mdelem (*grpc_metadata_batch_filter_func)(
|
183
184
|
void* user_data, grpc_mdelem elem);
|
184
|
-
|
185
|
+
grpc_error_handle grpc_metadata_batch_filter(
|
185
186
|
grpc_metadata_batch* batch, grpc_metadata_batch_filter_func func,
|
186
187
|
void* user_data, const char* composite_error_string) GRPC_MUST_USE_RESULT;
|
187
188
|
|
@@ -177,7 +177,7 @@ grpc_endpoint* grpc_transport_get_endpoint(grpc_transport* transport) {
|
|
177
177
|
// though it lives in lib, it handles transport stream ops sure
|
178
178
|
// it's grpc_transport_stream_op_batch_finish_with_failure
|
179
179
|
void grpc_transport_stream_op_batch_finish_with_failure(
|
180
|
-
grpc_transport_stream_op_batch* batch,
|
180
|
+
grpc_transport_stream_op_batch* batch, grpc_error_handle error,
|
181
181
|
grpc_core::CallCombiner* call_combiner) {
|
182
182
|
if (batch->send_message) {
|
183
183
|
batch->payload->send_message.send_message.reset();
|
@@ -219,7 +219,7 @@ struct made_transport_op {
|
|
219
219
|
}
|
220
220
|
};
|
221
221
|
|
222
|
-
static void destroy_made_transport_op(void* arg,
|
222
|
+
static void destroy_made_transport_op(void* arg, grpc_error_handle error) {
|
223
223
|
made_transport_op* op = static_cast<made_transport_op*>(arg);
|
224
224
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, op->inner_on_complete,
|
225
225
|
GRPC_ERROR_REF(error));
|
@@ -241,7 +241,8 @@ struct made_transport_stream_op {
|
|
241
241
|
grpc_transport_stream_op_batch op;
|
242
242
|
grpc_transport_stream_op_batch_payload payload;
|
243
243
|
};
|
244
|
-
static void destroy_made_transport_stream_op(void* arg,
|
244
|
+
static void destroy_made_transport_stream_op(void* arg,
|
245
|
+
grpc_error_handle error) {
|
245
246
|
made_transport_stream_op* op = static_cast<made_transport_stream_op*>(arg);
|
246
247
|
grpc_closure* c = op->inner_on_complete;
|
247
248
|
gpr_free(op);
|
@@ -319,7 +319,7 @@ struct grpc_transport_stream_op_batch_payload {
|
|
319
319
|
struct {
|
320
320
|
// Error contract: the transport that gets this op must cause cancel_error
|
321
321
|
// to be unref'ed after processing it
|
322
|
-
|
322
|
+
grpc_error_handle cancel_error = GRPC_ERROR_NONE;
|
323
323
|
} cancel_stream;
|
324
324
|
|
325
325
|
/* Indexes correspond to grpc_context_index enum values */
|
@@ -339,11 +339,11 @@ typedef struct grpc_transport_op {
|
|
339
339
|
/** should the transport be disconnected
|
340
340
|
* Error contract: the transport that gets this op must cause
|
341
341
|
* disconnect_with_error to be unref'ed after processing it */
|
342
|
-
|
342
|
+
grpc_error_handle disconnect_with_error = GRPC_ERROR_NONE;
|
343
343
|
/** what should the goaway contain?
|
344
344
|
* Error contract: the transport that gets this op must cause
|
345
345
|
* goaway_error to be unref'ed after processing it */
|
346
|
-
|
346
|
+
grpc_error_handle goaway_error = GRPC_ERROR_NONE;
|
347
347
|
/** set the callback for accepting new streams;
|
348
348
|
this is a permanent callback, unlike the other one-shot closures.
|
349
349
|
If true, the callback is set to set_accept_stream_fn, with its
|
@@ -411,7 +411,7 @@ void grpc_transport_destroy_stream(grpc_transport* transport,
|
|
411
411
|
grpc_closure* then_schedule_closure);
|
412
412
|
|
413
413
|
void grpc_transport_stream_op_batch_finish_with_failure(
|
414
|
-
grpc_transport_stream_op_batch* batch,
|
414
|
+
grpc_transport_stream_op_batch* batch, grpc_error_handle error,
|
415
415
|
grpc_core::CallCombiner* call_combiner);
|
416
416
|
|
417
417
|
std::string grpc_transport_stream_op_batch_string(
|
@@ -109,7 +109,7 @@ std::string grpc_transport_stream_op_batch_string(
|
|
109
109
|
if (op->cancel_stream) {
|
110
110
|
out.push_back(absl::StrCat(
|
111
111
|
" CANCEL:",
|
112
|
-
|
112
|
+
grpc_error_std_string(op->payload->cancel_stream.cancel_error)));
|
113
113
|
}
|
114
114
|
|
115
115
|
return absl::StrJoin(out, "");
|
@@ -131,13 +131,13 @@ std::string grpc_transport_op_string(grpc_transport_op* op) {
|
|
131
131
|
}
|
132
132
|
|
133
133
|
if (op->disconnect_with_error != GRPC_ERROR_NONE) {
|
134
|
-
out.push_back(absl::StrCat(
|
135
|
-
|
134
|
+
out.push_back(absl::StrCat(
|
135
|
+
" DISCONNECT:", grpc_error_std_string(op->disconnect_with_error)));
|
136
136
|
}
|
137
137
|
|
138
138
|
if (op->goaway_error) {
|
139
|
-
out.push_back(
|
140
|
-
|
139
|
+
out.push_back(absl::StrCat(" SEND_GOAWAY:%s",
|
140
|
+
grpc_error_std_string(op->goaway_error)));
|
141
141
|
}
|
142
142
|
|
143
143
|
if (op->set_accept_stream) {
|
@@ -21,16 +21,20 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <grpc/event_engine/port.h>
|
25
|
+
|
24
26
|
#include <assert.h>
|
25
27
|
#include <stdint.h>
|
26
28
|
#include <stdlib.h>
|
27
29
|
|
28
30
|
#include <grpc/grpc.h>
|
29
31
|
|
32
|
+
#ifndef GRPC_EVENT_ENGINE_POSIX
|
30
33
|
struct iovec {
|
31
34
|
void* iov_base;
|
32
35
|
size_t iov_len;
|
33
36
|
};
|
37
|
+
#endif // GRPC_EVENT_ENGINE_POSIX
|
34
38
|
|
35
39
|
/**
|
36
40
|
* A gsec interface for AEAD encryption schemes. The API is thread-compatible.
|
@@ -439,7 +439,7 @@ static tsi_result make_grpc_call(alts_handshaker_client* c, bool is_start) {
|
|
439
439
|
}
|
440
440
|
}
|
441
441
|
|
442
|
-
static void on_status_received(void* arg,
|
442
|
+
static void on_status_received(void* arg, grpc_error_handle error) {
|
443
443
|
alts_grpc_handshaker_client* client =
|
444
444
|
static_cast<alts_grpc_handshaker_client*>(arg);
|
445
445
|
if (client->handshake_status_code != GRPC_STATUS_OK) {
|
@@ -451,7 +451,7 @@ static void on_status_received(void* arg, grpc_error* error) {
|
|
451
451
|
"alts_grpc_handshaker_client:%p on_status_received "
|
452
452
|
"status:%d details:|%s| error:|%s|",
|
453
453
|
client, client->handshake_status_code, status_details,
|
454
|
-
|
454
|
+
grpc_error_std_string(error).c_str());
|
455
455
|
gpr_free(status_details);
|
456
456
|
}
|
457
457
|
maybe_complete_tsi_next(client, true /* receive_status_finished */,
|
@@ -642,7 +642,7 @@ static void handshaker_client_shutdown(alts_handshaker_client* c) {
|
|
642
642
|
}
|
643
643
|
}
|
644
644
|
|
645
|
-
static void handshaker_call_unref(void* arg,
|
645
|
+
static void handshaker_call_unref(void* arg, grpc_error_handle /* error */) {
|
646
646
|
grpc_call* call = static_cast<grpc_call*>(arg);
|
647
647
|
grpc_call_unref(call);
|
648
648
|
}
|
@@ -838,7 +838,8 @@ void alts_handshaker_client_ref_for_testing(alts_handshaker_client* c) {
|
|
838
838
|
}
|
839
839
|
|
840
840
|
void alts_handshaker_client_on_status_received_for_testing(
|
841
|
-
alts_handshaker_client* c, grpc_status_code status,
|
841
|
+
alts_handshaker_client* c, grpc_status_code status,
|
842
|
+
grpc_error_handle error) {
|
842
843
|
// We first make sure that the handshake queue has been initialized
|
843
844
|
// here because there are tests that use this API that mock out
|
844
845
|
// other parts of the alts_handshaker_client in such a way that the
|
@@ -372,7 +372,8 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
|
|
372
372
|
}
|
373
373
|
|
374
374
|
/* gRPC provided callback used when gRPC thread model is applied. */
|
375
|
-
static void on_handshaker_service_resp_recv(void* arg,
|
375
|
+
static void on_handshaker_service_resp_recv(void* arg,
|
376
|
+
grpc_error_handle error) {
|
376
377
|
alts_handshaker_client* client = static_cast<alts_handshaker_client*>(arg);
|
377
378
|
if (client == nullptr) {
|
378
379
|
gpr_log(GPR_ERROR, "ALTS handshaker client is nullptr");
|
@@ -382,7 +383,7 @@ static void on_handshaker_service_resp_recv(void* arg, grpc_error* error) {
|
|
382
383
|
if (error != GRPC_ERROR_NONE) {
|
383
384
|
gpr_log(GPR_ERROR,
|
384
385
|
"ALTS handshaker on_handshaker_service_resp_recv error: %s",
|
385
|
-
|
386
|
+
grpc_error_std_string(error).c_str());
|
386
387
|
success = false;
|
387
388
|
}
|
388
389
|
alts_handshaker_client_handle_response(client, success);
|
@@ -390,8 +391,8 @@ static void on_handshaker_service_resp_recv(void* arg, grpc_error* error) {
|
|
390
391
|
|
391
392
|
/* gRPC provided callback used when dedicatd CQ and thread are used.
|
392
393
|
* It serves to safely bring the control back to application. */
|
393
|
-
static void on_handshaker_service_resp_recv_dedicated(
|
394
|
-
|
394
|
+
static void on_handshaker_service_resp_recv_dedicated(
|
395
|
+
void* arg, grpc_error_handle /*error*/) {
|
395
396
|
alts_shared_resource_dedicated* resource =
|
396
397
|
grpc_alts_get_shared_resource_dedicated();
|
397
398
|
grpc_cq_end_op(
|
@@ -480,8 +481,8 @@ struct alts_tsi_handshaker_continue_handshaker_next_args {
|
|
480
481
|
grpc_closure closure;
|
481
482
|
};
|
482
483
|
|
483
|
-
static void alts_tsi_handshaker_create_channel(
|
484
|
-
|
484
|
+
static void alts_tsi_handshaker_create_channel(
|
485
|
+
void* arg, grpc_error_handle /* unused_error */) {
|
485
486
|
alts_tsi_handshaker_continue_handshaker_next_args* next_args =
|
486
487
|
static_cast<alts_tsi_handshaker_continue_handshaker_next_args*>(arg);
|
487
488
|
alts_tsi_handshaker* handshaker = next_args->handshaker;
|
@@ -78,7 +78,8 @@ grpc_closure* alts_handshaker_client_get_closure_for_testing(
|
|
78
78
|
alts_handshaker_client* client);
|
79
79
|
|
80
80
|
void alts_handshaker_client_on_status_received_for_testing(
|
81
|
-
alts_handshaker_client* client, grpc_status_code status,
|
81
|
+
alts_handshaker_client* client, grpc_status_code status,
|
82
|
+
grpc_error_handle error);
|
82
83
|
|
83
84
|
void alts_handshaker_client_ref_for_testing(alts_handshaker_client* c);
|
84
85
|
|
@@ -357,13 +357,17 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
357
357
|
subject_alt_name->type == GEN_URI) {
|
358
358
|
unsigned char* name = nullptr;
|
359
359
|
int name_size;
|
360
|
+
std::string property_name;
|
360
361
|
if (subject_alt_name->type == GEN_DNS) {
|
361
362
|
name_size = ASN1_STRING_to_UTF8(&name, subject_alt_name->d.dNSName);
|
363
|
+
property_name = TSI_X509_DNS_PEER_PROPERTY;
|
362
364
|
} else if (subject_alt_name->type == GEN_EMAIL) {
|
363
365
|
name_size = ASN1_STRING_to_UTF8(&name, subject_alt_name->d.rfc822Name);
|
366
|
+
property_name = TSI_X509_EMAIL_PEER_PROPERTY;
|
364
367
|
} else {
|
365
368
|
name_size = ASN1_STRING_to_UTF8(
|
366
369
|
&name, subject_alt_name->d.uniformResourceIdentifier);
|
370
|
+
property_name = TSI_X509_URI_PEER_PROPERTY;
|
367
371
|
}
|
368
372
|
if (name_size < 0) {
|
369
373
|
gpr_log(GPR_ERROR, "Could not get utf8 from asn1 string.");
|
@@ -378,12 +382,10 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
378
382
|
OPENSSL_free(name);
|
379
383
|
break;
|
380
384
|
}
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
&peer->properties[(*current_insert_index)++]);
|
386
|
-
}
|
385
|
+
result = tsi_construct_string_peer_property(
|
386
|
+
property_name.c_str(), reinterpret_cast<const char*>(name),
|
387
|
+
static_cast<size_t>(name_size),
|
388
|
+
&peer->properties[(*current_insert_index)++]);
|
387
389
|
OPENSSL_free(name);
|
388
390
|
} else if (subject_alt_name->type == GEN_IPADD) {
|
389
391
|
char ntop_buf[INET6_ADDRSTRLEN];
|
@@ -409,6 +411,10 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
409
411
|
result = tsi_construct_string_peer_property_from_cstring(
|
410
412
|
TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY, name,
|
411
413
|
&peer->properties[(*current_insert_index)++]);
|
414
|
+
if (result != TSI_OK) break;
|
415
|
+
result = tsi_construct_string_peer_property_from_cstring(
|
416
|
+
TSI_X509_IP_PEER_PROPERTY, name,
|
417
|
+
&peer->properties[(*current_insert_index)++]);
|
412
418
|
} else {
|
413
419
|
result = tsi_construct_string_peer_property_from_cstring(
|
414
420
|
TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY, "other types of SAN",
|
@@ -438,7 +444,14 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
438
444
|
for (int i = 0; i < subject_alt_name_count; i++) {
|
439
445
|
GENERAL_NAME* subject_alt_name =
|
440
446
|
sk_GENERAL_NAME_value(subject_alt_names, TSI_SIZE_AS_SIZE(i));
|
441
|
-
|
447
|
+
// TODO(zhenlian): Clean up tsi_peer to avoid duplicate entries.
|
448
|
+
// URI, DNS, email and ip address SAN fields are plumbed to tsi_peer, in
|
449
|
+
// addition to all SAN fields (results in duplicate values). This code
|
450
|
+
// snippet updates property_count accordingly.
|
451
|
+
if (subject_alt_name->type == GEN_URI ||
|
452
|
+
subject_alt_name->type == GEN_DNS ||
|
453
|
+
subject_alt_name->type == GEN_EMAIL ||
|
454
|
+
subject_alt_name->type == GEN_IPADD) {
|
442
455
|
property_count += 1;
|
443
456
|
}
|
444
457
|
}
|
@@ -1911,14 +1924,16 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
1911
1924
|
#else
|
1912
1925
|
ssl_context = SSL_CTX_new(TLSv1_2_method());
|
1913
1926
|
#endif
|
1914
|
-
result = tsi_set_min_and_max_tls_versions(
|
1915
|
-
ssl_context, options->min_tls_version, options->max_tls_version);
|
1916
|
-
if (result != TSI_OK) return result;
|
1917
1927
|
if (ssl_context == nullptr) {
|
1928
|
+
log_ssl_error_stack();
|
1918
1929
|
gpr_log(GPR_ERROR, "Could not create ssl context.");
|
1919
1930
|
return TSI_INVALID_ARGUMENT;
|
1920
1931
|
}
|
1921
1932
|
|
1933
|
+
result = tsi_set_min_and_max_tls_versions(
|
1934
|
+
ssl_context, options->min_tls_version, options->max_tls_version);
|
1935
|
+
if (result != TSI_OK) return result;
|
1936
|
+
|
1922
1937
|
impl = static_cast<tsi_ssl_client_handshaker_factory*>(
|
1923
1938
|
gpr_zalloc(sizeof(*impl)));
|
1924
1939
|
tsi_ssl_handshaker_factory_init(&impl->base);
|
@@ -2078,15 +2093,18 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2078
2093
|
#else
|
2079
2094
|
impl->ssl_contexts[i] = SSL_CTX_new(TLSv1_2_method());
|
2080
2095
|
#endif
|
2081
|
-
result = tsi_set_min_and_max_tls_versions(impl->ssl_contexts[i],
|
2082
|
-
options->min_tls_version,
|
2083
|
-
options->max_tls_version);
|
2084
|
-
if (result != TSI_OK) return result;
|
2085
2096
|
if (impl->ssl_contexts[i] == nullptr) {
|
2097
|
+
log_ssl_error_stack();
|
2086
2098
|
gpr_log(GPR_ERROR, "Could not create ssl context.");
|
2087
2099
|
result = TSI_OUT_OF_RESOURCES;
|
2088
2100
|
break;
|
2089
2101
|
}
|
2102
|
+
|
2103
|
+
result = tsi_set_min_and_max_tls_versions(impl->ssl_contexts[i],
|
2104
|
+
options->min_tls_version,
|
2105
|
+
options->max_tls_version);
|
2106
|
+
if (result != TSI_OK) return result;
|
2107
|
+
|
2090
2108
|
result = populate_ssl_context(impl->ssl_contexts[i],
|
2091
2109
|
&options->pem_key_cert_pairs[i],
|
2092
2110
|
options->cipher_suites);
|
@@ -37,14 +37,13 @@ extern "C" {
|
|
37
37
|
#define TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY \
|
38
38
|
"x509_subject_alternative_name"
|
39
39
|
#define TSI_SSL_SESSION_REUSED_PEER_PROPERTY "ssl_session_reused"
|
40
|
-
|
41
40
|
#define TSI_X509_PEM_CERT_PROPERTY "x509_pem_cert"
|
42
|
-
|
43
41
|
#define TSI_X509_PEM_CERT_CHAIN_PROPERTY "x509_pem_cert_chain"
|
44
|
-
|
45
42
|
#define TSI_SSL_ALPN_SELECTED_PROTOCOL "ssl_alpn_selected_protocol"
|
46
|
-
|
43
|
+
#define TSI_X509_DNS_PEER_PROPERTY "x509_dns"
|
47
44
|
#define TSI_X509_URI_PEER_PROPERTY "x509_uri"
|
45
|
+
#define TSI_X509_EMAIL_PEER_PROPERTY "x509_email"
|
46
|
+
#define TSI_X509_IP_PEER_PROPERTY "x509_ip"
|
48
47
|
|
49
48
|
/* --- tsi_ssl_root_certs_store object ---
|
50
49
|
|
@@ -215,7 +215,7 @@ extern grpc_server_create_type grpc_server_create_import;
|
|
215
215
|
typedef void(*grpc_server_register_completion_queue_type)(grpc_server* server, grpc_completion_queue* cq, void* reserved);
|
216
216
|
extern grpc_server_register_completion_queue_type grpc_server_register_completion_queue_import;
|
217
217
|
#define grpc_server_register_completion_queue grpc_server_register_completion_queue_import
|
218
|
-
typedef grpc_server_config_fetcher*(*grpc_server_config_fetcher_xds_create_type)(grpc_server_xds_status_notifier notifier);
|
218
|
+
typedef grpc_server_config_fetcher*(*grpc_server_config_fetcher_xds_create_type)(grpc_server_xds_status_notifier notifier, const grpc_channel_args* args);
|
219
219
|
extern grpc_server_config_fetcher_xds_create_type grpc_server_config_fetcher_xds_create_import;
|
220
220
|
#define grpc_server_config_fetcher_xds_create grpc_server_config_fetcher_xds_create_import
|
221
221
|
typedef void(*grpc_server_config_fetcher_destroy_type)(grpc_server_config_fetcher* config_fetcher);
|