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
@@ -75,7 +75,7 @@ void Chttp2Connector::Connect(const Args& args, Result* result,
|
|
75
75
|
args.channel_args, &addr, args.deadline);
|
76
76
|
}
|
77
77
|
|
78
|
-
void Chttp2Connector::Shutdown(
|
78
|
+
void Chttp2Connector::Shutdown(grpc_error_handle error) {
|
79
79
|
MutexLock lock(&mu_);
|
80
80
|
shutdown_ = true;
|
81
81
|
if (handshake_mgr_ != nullptr) {
|
@@ -89,7 +89,7 @@ void Chttp2Connector::Shutdown(grpc_error* error) {
|
|
89
89
|
GRPC_ERROR_UNREF(error);
|
90
90
|
}
|
91
91
|
|
92
|
-
void Chttp2Connector::Connected(void* arg,
|
92
|
+
void Chttp2Connector::Connected(void* arg, grpc_error_handle error) {
|
93
93
|
Chttp2Connector* self = static_cast<Chttp2Connector*>(arg);
|
94
94
|
bool unref = false;
|
95
95
|
{
|
@@ -131,14 +131,14 @@ void Chttp2Connector::StartHandshakeLocked() {
|
|
131
131
|
|
132
132
|
namespace {
|
133
133
|
void NullThenSchedClosure(const DebugLocation& location, grpc_closure** closure,
|
134
|
-
|
134
|
+
grpc_error_handle error) {
|
135
135
|
grpc_closure* c = *closure;
|
136
136
|
*closure = nullptr;
|
137
137
|
ExecCtx::Run(location, c, error);
|
138
138
|
}
|
139
139
|
} // namespace
|
140
140
|
|
141
|
-
void Chttp2Connector::OnHandshakeDone(void* arg,
|
141
|
+
void Chttp2Connector::OnHandshakeDone(void* arg, grpc_error_handle error) {
|
142
142
|
auto* args = static_cast<HandshakerArgs*>(arg);
|
143
143
|
Chttp2Connector* self = static_cast<Chttp2Connector*>(args->user_data);
|
144
144
|
{
|
@@ -194,7 +194,7 @@ void Chttp2Connector::OnHandshakeDone(void* arg, grpc_error* error) {
|
|
194
194
|
self->Unref();
|
195
195
|
}
|
196
196
|
|
197
|
-
void Chttp2Connector::OnReceiveSettings(void* arg,
|
197
|
+
void Chttp2Connector::OnReceiveSettings(void* arg, grpc_error_handle error) {
|
198
198
|
Chttp2Connector* self = static_cast<Chttp2Connector*>(arg);
|
199
199
|
{
|
200
200
|
MutexLock lock(&self->mu_);
|
@@ -220,7 +220,7 @@ void Chttp2Connector::OnReceiveSettings(void* arg, grpc_error* error) {
|
|
220
220
|
self->Unref();
|
221
221
|
}
|
222
222
|
|
223
|
-
void Chttp2Connector::OnTimeout(void* arg,
|
223
|
+
void Chttp2Connector::OnTimeout(void* arg, grpc_error_handle /*error*/) {
|
224
224
|
Chttp2Connector* self = static_cast<Chttp2Connector*>(arg);
|
225
225
|
{
|
226
226
|
MutexLock lock(&self->mu_);
|
@@ -245,7 +245,7 @@ void Chttp2Connector::OnTimeout(void* arg, grpc_error* /*error*/) {
|
|
245
245
|
self->Unref();
|
246
246
|
}
|
247
247
|
|
248
|
-
void Chttp2Connector::MaybeNotify(
|
248
|
+
void Chttp2Connector::MaybeNotify(grpc_error_handle error) {
|
249
249
|
if (notify_error_.has_value()) {
|
250
250
|
GRPC_ERROR_UNREF(error);
|
251
251
|
NullThenSchedClosure(DEBUG_LOCATION, ¬ify_, notify_error_.value());
|
@@ -33,14 +33,14 @@ class Chttp2Connector : public SubchannelConnector {
|
|
33
33
|
~Chttp2Connector() override;
|
34
34
|
|
35
35
|
void Connect(const Args& args, Result* result, grpc_closure* notify) override;
|
36
|
-
void Shutdown(
|
36
|
+
void Shutdown(grpc_error_handle error) override;
|
37
37
|
|
38
38
|
private:
|
39
|
-
static void Connected(void* arg,
|
39
|
+
static void Connected(void* arg, grpc_error_handle error);
|
40
40
|
void StartHandshakeLocked();
|
41
|
-
static void OnHandshakeDone(void* arg,
|
42
|
-
static void OnReceiveSettings(void* arg,
|
43
|
-
static void OnTimeout(void* arg,
|
41
|
+
static void OnHandshakeDone(void* arg, grpc_error_handle error);
|
42
|
+
static void OnReceiveSettings(void* arg, grpc_error_handle error);
|
43
|
+
static void OnTimeout(void* arg, grpc_error_handle error);
|
44
44
|
|
45
45
|
// We cannot invoke notify_ until both OnTimeout() and OnReceiveSettings()
|
46
46
|
// have been called since that is an indicator to the upper layer that we are
|
@@ -51,7 +51,7 @@ class Chttp2Connector : public SubchannelConnector {
|
|
51
51
|
// invoked, we call MaybeNotify() again to actually invoke the notify_
|
52
52
|
// callback. Note that this only happens if the handshake is done and the
|
53
53
|
// connector is waiting on the SETTINGS frame.
|
54
|
-
void MaybeNotify(
|
54
|
+
void MaybeNotify(grpc_error_handle error);
|
55
55
|
|
56
56
|
Mutex mu_;
|
57
57
|
Args args_;
|
@@ -66,7 +66,7 @@ class Chttp2Connector : public SubchannelConnector {
|
|
66
66
|
grpc_closure on_receive_settings_;
|
67
67
|
grpc_timer timer_;
|
68
68
|
grpc_closure on_timeout_;
|
69
|
-
absl::optional<
|
69
|
+
absl::optional<grpc_error_handle> notify_error_;
|
70
70
|
RefCountedPtr<HandshakeManager> handshake_mgr_;
|
71
71
|
};
|
72
72
|
|
@@ -51,7 +51,7 @@ class Chttp2InsecureClientChannelFactory : public ClientChannelFactory {
|
|
51
51
|
namespace {
|
52
52
|
|
53
53
|
grpc_channel* CreateChannel(const char* target, const grpc_channel_args* args,
|
54
|
-
|
54
|
+
grpc_error_handle* error) {
|
55
55
|
if (target == nullptr) {
|
56
56
|
gpr_log(GPR_ERROR, "cannot create channel with NULL target name");
|
57
57
|
if (error != nullptr) {
|
@@ -106,7 +106,7 @@ grpc_channel* grpc_insecure_channel_create(const char* target,
|
|
106
106
|
const char* arg_to_remove = arg.key;
|
107
107
|
grpc_channel_args* new_args = grpc_channel_args_copy_and_add_and_remove(
|
108
108
|
args, &arg_to_remove, 1, &arg, 1);
|
109
|
-
|
109
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
110
110
|
// Create channel.
|
111
111
|
grpc_channel* channel = grpc_core::CreateChannel(target, new_args, &error);
|
112
112
|
// Clean up.
|
@@ -56,7 +56,7 @@ grpc_channel* grpc_insecure_channel_create_from_fd(
|
|
56
56
|
grpc_transport* transport =
|
57
57
|
grpc_create_chttp2_transport(final_args, client, true);
|
58
58
|
GPR_ASSERT(transport);
|
59
|
-
|
59
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
60
60
|
grpc_channel* channel =
|
61
61
|
grpc_channel_create(target, final_args, GRPC_CLIENT_DIRECT_CHANNEL,
|
62
62
|
transport, nullptr, &error);
|
@@ -28,9 +28,9 @@
|
|
28
28
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
29
29
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
30
30
|
#include "src/core/ext/transport/chttp2/client/chttp2_connector.h"
|
31
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
31
32
|
#include "src/core/lib/channel/channel_args.h"
|
32
33
|
#include "src/core/lib/gprpp/memory.h"
|
33
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
34
34
|
#include "src/core/lib/security/credentials/credentials.h"
|
35
35
|
#include "src/core/lib/security/security_connector/security_connector.h"
|
36
36
|
#include "src/core/lib/slice/slice_internal.h"
|
@@ -129,7 +129,7 @@ class Chttp2SecureClientChannelFactory : public ClientChannelFactory {
|
|
129
129
|
namespace {
|
130
130
|
|
131
131
|
grpc_channel* CreateChannel(const char* target, const grpc_channel_args* args,
|
132
|
-
|
132
|
+
grpc_error_handle* error) {
|
133
133
|
if (target == nullptr) {
|
134
134
|
gpr_log(GPR_ERROR, "cannot create channel with NULL target name");
|
135
135
|
if (error != nullptr) {
|
@@ -181,7 +181,7 @@ grpc_channel* grpc_secure_channel_create(grpc_channel_credentials* creds,
|
|
181
181
|
4, ((void*)creds, target, (void*)args, (void*)reserved));
|
182
182
|
GPR_ASSERT(reserved == nullptr);
|
183
183
|
grpc_channel* channel = nullptr;
|
184
|
-
|
184
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
185
185
|
if (creds != nullptr) {
|
186
186
|
// Add channel args containing the client channel factory and channel
|
187
187
|
// credentials.
|
@@ -38,6 +38,7 @@
|
|
38
38
|
#include "src/core/ext/filters/http/server/http_server_filter.h"
|
39
39
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
40
40
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
41
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
41
42
|
#include "src/core/lib/channel/channel_args.h"
|
42
43
|
#include "src/core/lib/channel/handshaker.h"
|
43
44
|
#include "src/core/lib/channel/handshaker_registry.h"
|
@@ -46,7 +47,6 @@
|
|
46
47
|
#include "src/core/lib/iomgr/endpoint.h"
|
47
48
|
#include "src/core/lib/iomgr/resolve_address.h"
|
48
49
|
#include "src/core/lib/iomgr/resource_quota.h"
|
49
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
50
50
|
#include "src/core/lib/iomgr/tcp_server.h"
|
51
51
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
52
52
|
#include "src/core/lib/slice/slice_internal.h"
|
@@ -61,14 +61,14 @@ const char kUnixAbstractUriPrefix[] = "unix-abstract:";
|
|
61
61
|
|
62
62
|
class Chttp2ServerListener : public Server::ListenerInterface {
|
63
63
|
public:
|
64
|
-
static
|
65
|
-
|
66
|
-
|
67
|
-
|
64
|
+
static grpc_error_handle Create(Server* server, grpc_resolved_address* addr,
|
65
|
+
grpc_channel_args* args,
|
66
|
+
Chttp2ServerArgsModifier args_modifier,
|
67
|
+
int* port_num);
|
68
68
|
|
69
|
-
static
|
70
|
-
|
71
|
-
|
69
|
+
static grpc_error_handle CreateWithAcceptor(
|
70
|
+
Server* server, const char* name, grpc_channel_args* args,
|
71
|
+
Chttp2ServerArgsModifier args_modifier);
|
72
72
|
|
73
73
|
// Do not instantiate directly. Use one of the factory methods above.
|
74
74
|
Chttp2ServerListener(Server* server, grpc_channel_args* args,
|
@@ -122,9 +122,9 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
122
122
|
using InternallyRefCounted<HandshakingState>::Ref;
|
123
123
|
|
124
124
|
private:
|
125
|
-
static void OnTimeout(void* arg,
|
126
|
-
static void OnReceiveSettings(void* arg,
|
127
|
-
static void OnHandshakeDone(void* arg,
|
125
|
+
static void OnTimeout(void* arg, grpc_error_handle error);
|
126
|
+
static void OnReceiveSettings(void* arg, grpc_error_handle /* error */);
|
127
|
+
static void OnHandshakeDone(void* arg, grpc_error_handle error);
|
128
128
|
RefCountedPtr<ActiveConnection> const connection_;
|
129
129
|
grpc_pollset* const accepting_pollset_;
|
130
130
|
grpc_tcp_server_acceptor* const acceptor_;
|
@@ -155,7 +155,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
155
155
|
using InternallyRefCounted<ActiveConnection>::Ref;
|
156
156
|
|
157
157
|
private:
|
158
|
-
static void OnClose(void* arg,
|
158
|
+
static void OnClose(void* arg, grpc_error_handle error);
|
159
159
|
|
160
160
|
RefCountedPtr<Chttp2ServerListener> listener_;
|
161
161
|
Mutex mu_ ABSL_ACQUIRED_AFTER(&listener_->mu_);
|
@@ -179,7 +179,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
179
179
|
grpc_pollset* accepting_pollset,
|
180
180
|
grpc_tcp_server_acceptor* acceptor);
|
181
181
|
|
182
|
-
static void TcpServerShutdownComplete(void* arg,
|
182
|
+
static void TcpServerShutdownComplete(void* arg, grpc_error_handle error);
|
183
183
|
|
184
184
|
static void DestroyListener(Server* /*server*/, void* arg,
|
185
185
|
grpc_closure* destroy_done);
|
@@ -259,12 +259,12 @@ void Chttp2ServerListener::ConfigFetcherWatcher::UpdateConnectionManager(
|
|
259
259
|
if (listener_->started_) return;
|
260
260
|
}
|
261
261
|
int port_temp;
|
262
|
-
|
262
|
+
grpc_error_handle error = grpc_tcp_server_add_port(
|
263
263
|
listener_->tcp_server_, &listener_->resolved_address_, &port_temp);
|
264
264
|
if (error != GRPC_ERROR_NONE) {
|
265
265
|
GRPC_ERROR_UNREF(error);
|
266
266
|
gpr_log(GPR_ERROR, "Error adding port to server: %s",
|
267
|
-
|
267
|
+
grpc_error_std_string(error).c_str());
|
268
268
|
// TODO(yashykt): We wouldn't need to assert here if we bound to the
|
269
269
|
// port earlier during AddPort.
|
270
270
|
GPR_ASSERT(0);
|
@@ -347,7 +347,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::Start(
|
|
347
347
|
}
|
348
348
|
|
349
349
|
void Chttp2ServerListener::ActiveConnection::HandshakingState::OnTimeout(
|
350
|
-
void* arg,
|
350
|
+
void* arg, grpc_error_handle error) {
|
351
351
|
HandshakingState* self = static_cast<HandshakingState*>(arg);
|
352
352
|
// Note that we may be called with GRPC_ERROR_NONE when the timer fires
|
353
353
|
// or with an error indicating that the timer system is being shut down.
|
@@ -366,14 +366,14 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnTimeout(
|
|
366
366
|
}
|
367
367
|
|
368
368
|
void Chttp2ServerListener::ActiveConnection::HandshakingState::
|
369
|
-
OnReceiveSettings(void* arg,
|
369
|
+
OnReceiveSettings(void* arg, grpc_error_handle /* error */) {
|
370
370
|
HandshakingState* self = static_cast<HandshakingState*>(arg);
|
371
371
|
grpc_timer_cancel(&self->timer_);
|
372
372
|
self->Unref();
|
373
373
|
}
|
374
374
|
|
375
375
|
void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
376
|
-
void* arg,
|
376
|
+
void* arg, grpc_error_handle error) {
|
377
377
|
auto* args = static_cast<HandshakerArgs*>(arg);
|
378
378
|
HandshakingState* self = static_cast<HandshakingState*>(args->user_data);
|
379
379
|
OrphanablePtr<HandshakingState> handshaking_state_ref;
|
@@ -385,8 +385,8 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
385
385
|
{
|
386
386
|
MutexLock connection_lock(&self->connection_->mu_);
|
387
387
|
if (error != GRPC_ERROR_NONE || self->connection_->shutdown_) {
|
388
|
-
|
389
|
-
gpr_log(GPR_DEBUG, "Handshaking failed: %s", error_str);
|
388
|
+
std::string error_str = grpc_error_std_string(error);
|
389
|
+
gpr_log(GPR_DEBUG, "Handshaking failed: %s", error_str.c_str());
|
390
390
|
cleanup_connection = true;
|
391
391
|
free_resource_quota = true;
|
392
392
|
if (error == GRPC_ERROR_NONE && args->endpoint != nullptr) {
|
@@ -409,7 +409,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
409
409
|
if (args->endpoint != nullptr) {
|
410
410
|
grpc_transport* transport = grpc_create_chttp2_transport(
|
411
411
|
args->args, args->endpoint, false, resource_user);
|
412
|
-
|
412
|
+
grpc_error_handle channel_init_err =
|
413
413
|
self->connection_->listener_->server_->SetupTransport(
|
414
414
|
transport, self->accepting_pollset_, args->args,
|
415
415
|
grpc_chttp2_transport_get_socket_node(transport),
|
@@ -455,7 +455,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
455
455
|
} else {
|
456
456
|
// Failed to create channel from transport. Clean up.
|
457
457
|
gpr_log(GPR_ERROR, "Failed to create channel: %s",
|
458
|
-
|
458
|
+
grpc_error_std_string(channel_init_err).c_str());
|
459
459
|
GRPC_ERROR_UNREF(channel_init_err);
|
460
460
|
grpc_transport_destroy(transport);
|
461
461
|
grpc_slice_buffer_destroy_internal(args->read_buffer);
|
@@ -553,8 +553,8 @@ void Chttp2ServerListener::ActiveConnection::Start(
|
|
553
553
|
handshaking_state_ref->Start(endpoint, args);
|
554
554
|
}
|
555
555
|
|
556
|
-
void Chttp2ServerListener::ActiveConnection::OnClose(
|
557
|
-
|
556
|
+
void Chttp2ServerListener::ActiveConnection::OnClose(
|
557
|
+
void* arg, grpc_error_handle /* error */) {
|
558
558
|
ActiveConnection* self = static_cast<ActiveConnection*>(arg);
|
559
559
|
OrphanablePtr<ActiveConnection> connection;
|
560
560
|
{
|
@@ -577,15 +577,13 @@ void Chttp2ServerListener::ActiveConnection::OnClose(void* arg,
|
|
577
577
|
// Chttp2ServerListener
|
578
578
|
//
|
579
579
|
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
Chttp2ServerArgsModifier args_modifier,
|
584
|
-
int* port_num) {
|
580
|
+
grpc_error_handle Chttp2ServerListener::Create(
|
581
|
+
Server* server, grpc_resolved_address* addr, grpc_channel_args* args,
|
582
|
+
Chttp2ServerArgsModifier args_modifier, int* port_num) {
|
585
583
|
Chttp2ServerListener* listener = nullptr;
|
586
584
|
// The bulk of this method is inside of a lambda to make cleanup
|
587
585
|
// easier without using goto.
|
588
|
-
|
586
|
+
grpc_error_handle error = [&]() {
|
589
587
|
// Create Chttp2ServerListener.
|
590
588
|
listener = new Chttp2ServerListener(server, args, args_modifier);
|
591
589
|
error = grpc_tcp_server_create(&listener->tcp_server_shutdown_complete_,
|
@@ -627,12 +625,12 @@ grpc_error* Chttp2ServerListener::Create(Server* server,
|
|
627
625
|
return error;
|
628
626
|
}
|
629
627
|
|
630
|
-
|
628
|
+
grpc_error_handle Chttp2ServerListener::CreateWithAcceptor(
|
631
629
|
Server* server, const char* name, grpc_channel_args* args,
|
632
630
|
Chttp2ServerArgsModifier args_modifier) {
|
633
631
|
Chttp2ServerListener* listener =
|
634
632
|
new Chttp2ServerListener(server, args, args_modifier);
|
635
|
-
|
633
|
+
grpc_error_handle error = grpc_tcp_server_create(
|
636
634
|
&listener->tcp_server_shutdown_complete_, args, &listener->tcp_server_);
|
637
635
|
if (error != GRPC_ERROR_NONE) {
|
638
636
|
delete listener;
|
@@ -710,14 +708,14 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
710
708
|
args = grpc_channel_args_copy(self->args_);
|
711
709
|
connection_manager = self->connection_manager_;
|
712
710
|
}
|
713
|
-
auto endpoint_cleanup = [&](
|
711
|
+
auto endpoint_cleanup = [&](grpc_error_handle error) {
|
714
712
|
grpc_endpoint_shutdown(tcp, error);
|
715
713
|
grpc_endpoint_destroy(tcp);
|
716
714
|
gpr_free(acceptor);
|
717
715
|
};
|
718
716
|
if (self->server_->config_fetcher() != nullptr) {
|
719
717
|
if (connection_manager == nullptr) {
|
720
|
-
|
718
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
721
719
|
"No ConnectionManager configured. Closing connection.");
|
722
720
|
endpoint_cleanup(error);
|
723
721
|
grpc_channel_args_destroy(args);
|
@@ -734,10 +732,11 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
734
732
|
args_result.status().ToString().c_str()));
|
735
733
|
return;
|
736
734
|
}
|
737
|
-
|
735
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
738
736
|
args = self->args_modifier_(*args_result, &error);
|
739
737
|
if (error != GRPC_ERROR_NONE) {
|
740
|
-
gpr_log(GPR_DEBUG, "Closing connection: %s",
|
738
|
+
gpr_log(GPR_DEBUG, "Closing connection: %s",
|
739
|
+
grpc_error_std_string(error).c_str());
|
741
740
|
endpoint_cleanup(error);
|
742
741
|
grpc_channel_args_destroy(args);
|
743
742
|
return;
|
@@ -781,7 +780,7 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
781
780
|
}
|
782
781
|
|
783
782
|
void Chttp2ServerListener::TcpServerShutdownComplete(void* arg,
|
784
|
-
|
783
|
+
grpc_error_handle error) {
|
785
784
|
Chttp2ServerListener* self = static_cast<Chttp2ServerListener*>(arg);
|
786
785
|
self->channelz_listen_socket_.reset();
|
787
786
|
GRPC_ERROR_UNREF(error);
|
@@ -822,19 +821,19 @@ void Chttp2ServerListener::Orphan() {
|
|
822
821
|
// Chttp2ServerAddPort()
|
823
822
|
//
|
824
823
|
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
824
|
+
grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
825
|
+
grpc_channel_args* args,
|
826
|
+
Chttp2ServerArgsModifier args_modifier,
|
827
|
+
int* port_num) {
|
829
828
|
if (strncmp(addr, "external:", 9) == 0) {
|
830
829
|
return grpc_core::Chttp2ServerListener::CreateWithAcceptor(
|
831
830
|
server, addr, args, args_modifier);
|
832
831
|
}
|
833
832
|
*port_num = -1;
|
834
833
|
grpc_resolved_addresses* resolved = nullptr;
|
835
|
-
std::vector<
|
834
|
+
std::vector<grpc_error_handle> error_list;
|
836
835
|
// Using lambda to avoid use of goto.
|
837
|
-
|
836
|
+
grpc_error_handle error = [&]() {
|
838
837
|
if (absl::StartsWith(addr, kUnixUriPrefix)) {
|
839
838
|
error = grpc_resolve_unix_domain_address(
|
840
839
|
addr + sizeof(kUnixUriPrefix) - 1, &resolved);
|
@@ -879,13 +878,13 @@ grpc_error* Chttp2ServerAddPort(Server* server, const char* addr,
|
|
879
878
|
resolved->naddrs - error_list.size(), resolved->naddrs);
|
880
879
|
error = GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(
|
881
880
|
msg.c_str(), error_list.data(), error_list.size());
|
882
|
-
gpr_log(GPR_INFO, "WARNING: %s",
|
881
|
+
gpr_log(GPR_INFO, "WARNING: %s", grpc_error_std_string(error).c_str());
|
883
882
|
GRPC_ERROR_UNREF(error);
|
884
883
|
// we managed to bind some addresses: continue without error
|
885
884
|
}
|
886
885
|
return GRPC_ERROR_NONE;
|
887
886
|
}(); // lambda end
|
888
|
-
for (
|
887
|
+
for (grpc_error_handle error : error_list) {
|
889
888
|
GRPC_ERROR_UNREF(error);
|
890
889
|
}
|
891
890
|
grpc_channel_args_destroy(args);
|
@@ -34,11 +34,11 @@ namespace grpc_core {
|
|
34
34
|
// added to the server. Takes ownership of the args. Caller takes ownership of
|
35
35
|
// returned args. On failure, the error parameter will be set.
|
36
36
|
using Chttp2ServerArgsModifier =
|
37
|
-
std::function<grpc_channel_args*(grpc_channel_args*,
|
37
|
+
std::function<grpc_channel_args*(grpc_channel_args*, grpc_error_handle*)>;
|
38
38
|
|
39
39
|
/// Adds a port to \a server. Sets \a port_num to the port number.
|
40
40
|
/// Takes ownership of \a args.
|
41
|
-
|
41
|
+
grpc_error_handle Chttp2ServerAddPort(
|
42
42
|
Server* server, const char* addr, grpc_channel_args* args,
|
43
43
|
Chttp2ServerArgsModifier connection_args_modifier, int* port_num);
|
44
44
|
|
@@ -30,7 +30,7 @@
|
|
30
30
|
namespace {
|
31
31
|
|
32
32
|
grpc_channel_args* ModifyArgsForConnection(grpc_channel_args* args,
|
33
|
-
|
33
|
+
grpc_error_handle* /*error*/) {
|
34
34
|
return args;
|
35
35
|
}
|
36
36
|
|
@@ -41,13 +41,12 @@ int grpc_server_add_insecure_http2_port(grpc_server* server, const char* addr) {
|
|
41
41
|
int port_num = 0;
|
42
42
|
GRPC_API_TRACE("grpc_server_add_insecure_http2_port(server=%p, addr=%s)", 2,
|
43
43
|
(server, addr));
|
44
|
-
|
44
|
+
grpc_error_handle err = grpc_core::Chttp2ServerAddPort(
|
45
45
|
server->core_server.get(), addr,
|
46
46
|
grpc_channel_args_copy(server->core_server->channel_args()),
|
47
47
|
ModifyArgsForConnection, &port_num);
|
48
48
|
if (err != GRPC_ERROR_NONE) {
|
49
|
-
|
50
|
-
gpr_log(GPR_ERROR, "%s", msg);
|
49
|
+
gpr_log(GPR_ERROR, "%s", grpc_error_std_string(err).c_str());
|
51
50
|
|
52
51
|
GRPC_ERROR_UNREF(err);
|
53
52
|
}
|