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
@@ -45,6 +45,7 @@
|
|
45
45
|
#include <grpc/support/sync.h>
|
46
46
|
#include <grpc/support/time.h>
|
47
47
|
|
48
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
48
49
|
#include "src/core/lib/channel/channel_args.h"
|
49
50
|
#include "src/core/lib/debug/stats.h"
|
50
51
|
#include "src/core/lib/debug/trace.h"
|
@@ -54,7 +55,6 @@
|
|
54
55
|
#include "src/core/lib/iomgr/buffer_list.h"
|
55
56
|
#include "src/core/lib/iomgr/ev_posix.h"
|
56
57
|
#include "src/core/lib/iomgr/executor.h"
|
57
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
58
58
|
#include "src/core/lib/iomgr/socket_utils_posix.h"
|
59
59
|
#include "src/core/lib/profiling/timers.h"
|
60
60
|
#include "src/core/lib/slice/slice_internal.h"
|
@@ -435,12 +435,12 @@ static void ZerocopyDisableAndWaitForRemaining(grpc_tcp* tcp);
|
|
435
435
|
static gpr_atm g_uncovered_notifications_pending;
|
436
436
|
static gpr_atm g_backup_poller; /* backup_poller* */
|
437
437
|
|
438
|
-
static void tcp_handle_read(void* arg /* grpc_tcp */,
|
439
|
-
static void tcp_handle_write(void* arg /* grpc_tcp */,
|
438
|
+
static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error_handle error);
|
439
|
+
static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error_handle error);
|
440
440
|
static void tcp_drop_uncovered_then_handle_write(void* arg /* grpc_tcp */,
|
441
|
-
|
441
|
+
grpc_error_handle error);
|
442
442
|
|
443
|
-
static void done_poller(void* bp,
|
443
|
+
static void done_poller(void* bp, grpc_error_handle /*error_ignored*/) {
|
444
444
|
backup_poller* p = static_cast<backup_poller*>(bp);
|
445
445
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
446
446
|
gpr_log(GPR_INFO, "BACKUP_POLLER:%p destroy", p);
|
@@ -449,7 +449,7 @@ static void done_poller(void* bp, grpc_error* /*error_ignored*/) {
|
|
449
449
|
gpr_free(p);
|
450
450
|
}
|
451
451
|
|
452
|
-
static void run_poller(void* bp,
|
452
|
+
static void run_poller(void* bp, grpc_error_handle /*error_ignored*/) {
|
453
453
|
backup_poller* p = static_cast<backup_poller*>(bp);
|
454
454
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
455
455
|
gpr_log(GPR_INFO, "BACKUP_POLLER:%p run", p);
|
@@ -560,9 +560,11 @@ static void notify_on_write(grpc_tcp* tcp) {
|
|
560
560
|
grpc_fd_notify_on_write(tcp->em_fd, &tcp->write_done_closure);
|
561
561
|
}
|
562
562
|
|
563
|
-
static void tcp_drop_uncovered_then_handle_write(void* arg,
|
563
|
+
static void tcp_drop_uncovered_then_handle_write(void* arg,
|
564
|
+
grpc_error_handle error) {
|
564
565
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
565
|
-
gpr_log(GPR_INFO, "TCP:%p got_write: %s", arg,
|
566
|
+
gpr_log(GPR_INFO, "TCP:%p got_write: %s", arg,
|
567
|
+
grpc_error_std_string(error).c_str());
|
566
568
|
}
|
567
569
|
drop_uncovered(static_cast<grpc_tcp*>(arg));
|
568
570
|
tcp_handle_write(arg, error);
|
@@ -604,7 +606,8 @@ static size_t get_target_read_size(grpc_tcp* tcp) {
|
|
604
606
|
return sz;
|
605
607
|
}
|
606
608
|
|
607
|
-
static
|
609
|
+
static grpc_error_handle tcp_annotate_error(grpc_error_handle src_error,
|
610
|
+
grpc_tcp* tcp) {
|
608
611
|
return grpc_error_set_str(
|
609
612
|
grpc_error_set_int(
|
610
613
|
grpc_error_set_int(src_error, GRPC_ERROR_INT_FD, tcp->fd),
|
@@ -615,10 +618,10 @@ static grpc_error* tcp_annotate_error(grpc_error* src_error, grpc_tcp* tcp) {
|
|
615
618
|
grpc_slice_from_copied_string(tcp->peer_string.c_str()));
|
616
619
|
}
|
617
620
|
|
618
|
-
static void tcp_handle_read(void* arg /* grpc_tcp */,
|
619
|
-
static void tcp_handle_write(void* arg /* grpc_tcp */,
|
621
|
+
static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error_handle error);
|
622
|
+
static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error_handle error);
|
620
623
|
|
621
|
-
static void tcp_shutdown(grpc_endpoint* ep,
|
624
|
+
static void tcp_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
|
622
625
|
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
623
626
|
ZerocopyDisableAndWaitForRemaining(tcp);
|
624
627
|
grpc_fd_shutdown(tcp->em_fd, why);
|
@@ -678,16 +681,14 @@ static void tcp_destroy(grpc_endpoint* ep) {
|
|
678
681
|
TCP_UNREF(tcp, "destroy");
|
679
682
|
}
|
680
683
|
|
681
|
-
static void call_read_cb(grpc_tcp* tcp,
|
684
|
+
static void call_read_cb(grpc_tcp* tcp, grpc_error_handle error) {
|
682
685
|
grpc_closure* cb = tcp->read_cb;
|
683
686
|
|
684
687
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
685
688
|
gpr_log(GPR_INFO, "TCP:%p call_cb %p %p:%p", tcp, cb, cb->cb, cb->cb_arg);
|
686
689
|
size_t i;
|
687
|
-
const char* str = grpc_error_string(error);
|
688
690
|
gpr_log(GPR_INFO, "READ %p (peer=%s) error=%s", tcp,
|
689
|
-
tcp->peer_string.c_str(),
|
690
|
-
|
691
|
+
tcp->peer_string.c_str(), grpc_error_std_string(error).c_str());
|
691
692
|
if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
|
692
693
|
for (i = 0; i < tcp->incoming_buffer->count; i++) {
|
693
694
|
char* dump = grpc_dump_slice(tcp->incoming_buffer->slices[i],
|
@@ -850,11 +851,11 @@ static void tcp_do_read(grpc_tcp* tcp) {
|
|
850
851
|
TCP_UNREF(tcp, "read");
|
851
852
|
}
|
852
853
|
|
853
|
-
static void tcp_read_allocation_done(void* tcpp,
|
854
|
+
static void tcp_read_allocation_done(void* tcpp, grpc_error_handle error) {
|
854
855
|
grpc_tcp* tcp = static_cast<grpc_tcp*>(tcpp);
|
855
856
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
856
857
|
gpr_log(GPR_INFO, "TCP:%p read_allocation_done: %s", tcp,
|
857
|
-
|
858
|
+
grpc_error_std_string(error).c_str());
|
858
859
|
}
|
859
860
|
if (GPR_UNLIKELY(error != GRPC_ERROR_NONE)) {
|
860
861
|
grpc_slice_buffer_reset_and_unref_internal(tcp->incoming_buffer);
|
@@ -887,10 +888,11 @@ static void tcp_continue_read(grpc_tcp* tcp) {
|
|
887
888
|
tcp_do_read(tcp);
|
888
889
|
}
|
889
890
|
|
890
|
-
static void tcp_handle_read(void* arg /* grpc_tcp */,
|
891
|
+
static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error_handle error) {
|
891
892
|
grpc_tcp* tcp = static_cast<grpc_tcp*>(arg);
|
892
893
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
893
|
-
gpr_log(GPR_INFO, "TCP:%p got_read: %s", tcp,
|
894
|
+
gpr_log(GPR_INFO, "TCP:%p got_read: %s", tcp,
|
895
|
+
grpc_error_std_string(error).c_str());
|
894
896
|
}
|
895
897
|
|
896
898
|
if (GPR_UNLIKELY(error != GRPC_ERROR_NONE)) {
|
@@ -958,7 +960,7 @@ static bool tcp_write_with_timestamps(grpc_tcp* tcp, struct msghdr* msg,
|
|
958
960
|
int additional_flags = 0);
|
959
961
|
|
960
962
|
/** The callback function to be invoked when we get an error on the socket. */
|
961
|
-
static void tcp_handle_error(void* arg /* grpc_tcp */,
|
963
|
+
static void tcp_handle_error(void* arg /* grpc_tcp */, grpc_error_handle error);
|
962
964
|
|
963
965
|
static TcpZerocopySendRecord* tcp_get_send_zerocopy_record(
|
964
966
|
grpc_tcp* tcp, grpc_slice_buffer* buf);
|
@@ -1213,10 +1215,12 @@ static bool process_errors(grpc_tcp* tcp) {
|
|
1213
1215
|
}
|
1214
1216
|
}
|
1215
1217
|
|
1216
|
-
static void tcp_handle_error(void* arg /* grpc_tcp */,
|
1218
|
+
static void tcp_handle_error(void* arg /* grpc_tcp */,
|
1219
|
+
grpc_error_handle error) {
|
1217
1220
|
grpc_tcp* tcp = static_cast<grpc_tcp*>(arg);
|
1218
1221
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
1219
|
-
gpr_log(GPR_INFO, "TCP:%p got_error: %s", tcp,
|
1222
|
+
gpr_log(GPR_INFO, "TCP:%p got_error: %s", tcp,
|
1223
|
+
grpc_error_std_string(error).c_str());
|
1220
1224
|
}
|
1221
1225
|
|
1222
1226
|
if (error != GRPC_ERROR_NONE ||
|
@@ -1257,7 +1261,7 @@ static bool tcp_write_with_timestamps(grpc_tcp* /*tcp*/, struct msghdr* /*msg*/,
|
|
1257
1261
|
}
|
1258
1262
|
|
1259
1263
|
static void tcp_handle_error(void* /*arg*/ /* grpc_tcp */,
|
1260
|
-
|
1264
|
+
grpc_error_handle /*error*/) {
|
1261
1265
|
gpr_log(GPR_ERROR, "Error handling is not supported for this platform");
|
1262
1266
|
GPR_ASSERT(0);
|
1263
1267
|
}
|
@@ -1323,7 +1327,7 @@ void TcpZerocopySendRecord::UpdateOffsetForBytesSent(size_t sending_length,
|
|
1323
1327
|
|
1324
1328
|
// returns true if done, false if pending; if returning true, *error is set
|
1325
1329
|
static bool do_tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
|
1326
|
-
|
1330
|
+
grpc_error_handle* error) {
|
1327
1331
|
struct msghdr msg;
|
1328
1332
|
struct iovec iov[MAX_WRITE_IOVEC];
|
1329
1333
|
msg_iovlen_type iov_size;
|
@@ -1399,7 +1403,7 @@ static void UnrefMaybePutZerocopySendRecord(grpc_tcp* tcp,
|
|
1399
1403
|
}
|
1400
1404
|
|
1401
1405
|
static bool tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
|
1402
|
-
|
1406
|
+
grpc_error_handle* error) {
|
1403
1407
|
bool done = do_tcp_flush_zerocopy(tcp, record, error);
|
1404
1408
|
if (done) {
|
1405
1409
|
// Either we encountered an error, or we successfully sent all the bytes.
|
@@ -1409,7 +1413,7 @@ static bool tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
|
|
1409
1413
|
return done;
|
1410
1414
|
}
|
1411
1415
|
|
1412
|
-
static bool tcp_flush(grpc_tcp* tcp,
|
1416
|
+
static bool tcp_flush(grpc_tcp* tcp, grpc_error_handle* error) {
|
1413
1417
|
struct msghdr msg;
|
1414
1418
|
struct iovec iov[MAX_WRITE_IOVEC];
|
1415
1419
|
msg_iovlen_type iov_size;
|
@@ -1516,7 +1520,8 @@ static bool tcp_flush(grpc_tcp* tcp, grpc_error** error) {
|
|
1516
1520
|
}
|
1517
1521
|
}
|
1518
1522
|
|
1519
|
-
static void tcp_handle_write(void* arg /* grpc_tcp */,
|
1523
|
+
static void tcp_handle_write(void* arg /* grpc_tcp */,
|
1524
|
+
grpc_error_handle error) {
|
1520
1525
|
grpc_tcp* tcp = static_cast<grpc_tcp*>(arg);
|
1521
1526
|
grpc_closure* cb;
|
1522
1527
|
|
@@ -1549,8 +1554,7 @@ static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error* error) {
|
|
1549
1554
|
tcp->write_cb = nullptr;
|
1550
1555
|
tcp->current_zerocopy_send = nullptr;
|
1551
1556
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
1552
|
-
|
1553
|
-
gpr_log(GPR_INFO, "write: %s", str);
|
1557
|
+
gpr_log(GPR_INFO, "write: %s", grpc_error_std_string(error).c_str());
|
1554
1558
|
}
|
1555
1559
|
// No need to take a ref on error since tcp_flush provides a ref.
|
1556
1560
|
grpc_core::Closure::Run(DEBUG_LOCATION, cb, error);
|
@@ -1562,7 +1566,7 @@ static void tcp_write(grpc_endpoint* ep, grpc_slice_buffer* buf,
|
|
1562
1566
|
grpc_closure* cb, void* arg) {
|
1563
1567
|
GPR_TIMER_SCOPE("tcp_write", 0);
|
1564
1568
|
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
1565
|
-
|
1569
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1566
1570
|
TcpZerocopySendRecord* zerocopy_send_record = nullptr;
|
1567
1571
|
|
1568
1572
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
@@ -1618,8 +1622,7 @@ static void tcp_write(grpc_endpoint* ep, grpc_slice_buffer* buf,
|
|
1618
1622
|
notify_on_write(tcp);
|
1619
1623
|
} else {
|
1620
1624
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
1621
|
-
|
1622
|
-
gpr_log(GPR_INFO, "write: %s", str);
|
1625
|
+
gpr_log(GPR_INFO, "write: %s", grpc_error_std_string(error).c_str());
|
1623
1626
|
}
|
1624
1627
|
grpc_core::Closure::Run(DEBUG_LOCATION, cb, error);
|
1625
1628
|
}
|
@@ -1639,7 +1642,6 @@ static void tcp_add_to_pollset_set(grpc_endpoint* ep,
|
|
1639
1642
|
static void tcp_delete_from_pollset_set(grpc_endpoint* ep,
|
1640
1643
|
grpc_pollset_set* pollset_set) {
|
1641
1644
|
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
1642
|
-
ZerocopyDisableAndWaitForRemaining(tcp);
|
1643
1645
|
grpc_pollset_set_del_fd(pollset_set, tcp->em_fd);
|
1644
1646
|
}
|
1645
1647
|
|
@@ -22,9 +22,9 @@
|
|
22
22
|
|
23
23
|
grpc_tcp_server_vtable* grpc_tcp_server_impl;
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
grpc_error_handle grpc_tcp_server_create(grpc_closure* shutdown_complete,
|
26
|
+
const grpc_channel_args* args,
|
27
|
+
grpc_tcp_server** server) {
|
28
28
|
return grpc_tcp_server_impl->create(shutdown_complete, args, server);
|
29
29
|
}
|
30
30
|
|
@@ -34,9 +34,9 @@ void grpc_tcp_server_start(grpc_tcp_server* server,
|
|
34
34
|
grpc_tcp_server_impl->start(server, pollsets, on_accept_cb, cb_arg);
|
35
35
|
}
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
grpc_error_handle grpc_tcp_server_add_port(grpc_tcp_server* s,
|
38
|
+
const grpc_resolved_address* addr,
|
39
|
+
int* out_port) {
|
40
40
|
return grpc_tcp_server_impl->add_port(s, addr, out_port);
|
41
41
|
}
|
42
42
|
|
@@ -63,14 +63,15 @@ class TcpServerFdHandler {
|
|
63
63
|
} // namespace grpc_core
|
64
64
|
|
65
65
|
typedef struct grpc_tcp_server_vtable {
|
66
|
-
|
67
|
-
|
68
|
-
|
66
|
+
grpc_error_handle (*create)(grpc_closure* shutdown_complete,
|
67
|
+
const grpc_channel_args* args,
|
68
|
+
grpc_tcp_server** server);
|
69
69
|
void (*start)(grpc_tcp_server* server,
|
70
70
|
const std::vector<grpc_pollset*>* pollsets,
|
71
71
|
grpc_tcp_server_cb on_accept_cb, void* cb_arg);
|
72
|
-
|
73
|
-
|
72
|
+
grpc_error_handle (*add_port)(grpc_tcp_server* s,
|
73
|
+
const grpc_resolved_address* addr,
|
74
|
+
int* out_port);
|
74
75
|
grpc_core::TcpServerFdHandler* (*create_fd_handler)(grpc_tcp_server* s);
|
75
76
|
unsigned (*port_fd_count)(grpc_tcp_server* s, unsigned port_index);
|
76
77
|
int (*port_fd)(grpc_tcp_server* s, unsigned port_index, unsigned fd_index);
|
@@ -84,9 +85,9 @@ typedef struct grpc_tcp_server_vtable {
|
|
84
85
|
/* Create a server, initially not bound to any ports. The caller owns one ref.
|
85
86
|
If shutdown_complete is not NULL, it will be used by
|
86
87
|
grpc_tcp_server_unref() when the ref count reaches zero. */
|
87
|
-
|
88
|
-
|
89
|
-
|
88
|
+
grpc_error_handle grpc_tcp_server_create(grpc_closure* shutdown_complete,
|
89
|
+
const grpc_channel_args* args,
|
90
|
+
grpc_tcp_server** server);
|
90
91
|
|
91
92
|
/* Start listening to bound ports */
|
92
93
|
void grpc_tcp_server_start(grpc_tcp_server* server,
|
@@ -102,9 +103,9 @@ void grpc_tcp_server_start(grpc_tcp_server* server,
|
|
102
103
|
but not dualstack sockets. */
|
103
104
|
/* TODO(ctiller): deprecate this, and make grpc_tcp_server_add_ports to handle
|
104
105
|
all of the multiple socket port matching logic in one place */
|
105
|
-
|
106
|
-
|
107
|
-
|
106
|
+
grpc_error_handle grpc_tcp_server_add_port(grpc_tcp_server* s,
|
107
|
+
const grpc_resolved_address* addr,
|
108
|
+
int* out_port);
|
108
109
|
|
109
110
|
/* Create and return a TcpServerFdHandler so that it can be used by upper layer
|
110
111
|
to hand over an externally connected fd to the grpc server. */
|
@@ -28,12 +28,12 @@
|
|
28
28
|
#include <grpc/support/alloc.h>
|
29
29
|
#include <grpc/support/log.h>
|
30
30
|
|
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/iomgr/error.h"
|
33
34
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
34
35
|
#include "src/core/lib/iomgr/iomgr_custom.h"
|
35
36
|
#include "src/core/lib/iomgr/sockaddr.h"
|
36
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
37
37
|
#include "src/core/lib/iomgr/tcp_custom.h"
|
38
38
|
#include "src/core/lib/iomgr/tcp_server.h"
|
39
39
|
|
@@ -80,9 +80,9 @@ struct grpc_tcp_server {
|
|
80
80
|
grpc_resource_quota* resource_quota;
|
81
81
|
};
|
82
82
|
|
83
|
-
static
|
84
|
-
|
85
|
-
|
83
|
+
static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
|
84
|
+
const grpc_channel_args* args,
|
85
|
+
grpc_tcp_server** server) {
|
86
86
|
grpc_tcp_server* s =
|
87
87
|
static_cast<grpc_tcp_server*>(gpr_malloc(sizeof(grpc_tcp_server)));
|
88
88
|
// Let the implementation decide if so_reuseport can be enabled or not.
|
@@ -218,7 +218,7 @@ static void finish_accept(grpc_tcp_listener* sp, grpc_custom_socket* socket) {
|
|
218
218
|
grpc_endpoint* ep = nullptr;
|
219
219
|
grpc_resolved_address peer_name;
|
220
220
|
std::string peer_name_string;
|
221
|
-
|
221
|
+
grpc_error_handle err;
|
222
222
|
|
223
223
|
memset(&peer_name, 0, sizeof(grpc_resolved_address));
|
224
224
|
peer_name.len = GRPC_MAX_SOCKADDR_SIZE;
|
@@ -246,17 +246,18 @@ static void finish_accept(grpc_tcp_listener* sp, grpc_custom_socket* socket) {
|
|
246
246
|
|
247
247
|
static void custom_accept_callback(grpc_custom_socket* socket,
|
248
248
|
grpc_custom_socket* client,
|
249
|
-
|
249
|
+
grpc_error_handle error);
|
250
250
|
|
251
251
|
static void custom_accept_callback(grpc_custom_socket* socket,
|
252
252
|
grpc_custom_socket* client,
|
253
|
-
|
253
|
+
grpc_error_handle error) {
|
254
254
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
255
255
|
grpc_core::ExecCtx exec_ctx;
|
256
256
|
grpc_tcp_listener* sp = socket->listener;
|
257
257
|
if (error != GRPC_ERROR_NONE) {
|
258
258
|
if (!sp->closed) {
|
259
|
-
gpr_log(GPR_ERROR, "Accept failed: %s",
|
259
|
+
gpr_log(GPR_ERROR, "Accept failed: %s",
|
260
|
+
grpc_error_std_string(error).c_str());
|
260
261
|
}
|
261
262
|
gpr_free(client);
|
262
263
|
GRPC_ERROR_UNREF(error);
|
@@ -275,14 +276,14 @@ static void custom_accept_callback(grpc_custom_socket* socket,
|
|
275
276
|
}
|
276
277
|
}
|
277
278
|
|
278
|
-
static
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
279
|
+
static grpc_error_handle add_socket_to_server(grpc_tcp_server* s,
|
280
|
+
grpc_custom_socket* socket,
|
281
|
+
const grpc_resolved_address* addr,
|
282
|
+
unsigned port_index,
|
283
|
+
grpc_tcp_listener** listener) {
|
283
284
|
grpc_tcp_listener* sp = nullptr;
|
284
285
|
int port = -1;
|
285
|
-
|
286
|
+
grpc_error_handle error;
|
286
287
|
grpc_resolved_address sockname_temp;
|
287
288
|
|
288
289
|
// NOTE(lidiz) The last argument is "flags" which is unused by other
|
@@ -335,9 +336,9 @@ static grpc_error* add_socket_to_server(grpc_tcp_server* s,
|
|
335
336
|
return GRPC_ERROR_NONE;
|
336
337
|
}
|
337
338
|
|
338
|
-
static
|
339
|
-
|
340
|
-
|
339
|
+
static grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
|
340
|
+
const grpc_resolved_address* addr,
|
341
|
+
int* port) {
|
341
342
|
// This function is mostly copied from tcp_server_windows.c
|
342
343
|
grpc_tcp_listener* sp = nullptr;
|
343
344
|
grpc_custom_socket* socket;
|
@@ -346,7 +347,7 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
|
|
346
347
|
grpc_resolved_address* allocated_addr = nullptr;
|
347
348
|
grpc_resolved_address sockname_temp;
|
348
349
|
unsigned port_index = 0;
|
349
|
-
|
350
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
350
351
|
int family;
|
351
352
|
|
352
353
|
GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
|
@@ -392,7 +393,7 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
|
|
392
393
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
393
394
|
gpr_log(GPR_INFO, "SERVER %p add_port %s error=%s", s,
|
394
395
|
grpc_sockaddr_to_string(addr, false).c_str(),
|
395
|
-
|
396
|
+
grpc_error_std_string(error).c_str());
|
396
397
|
}
|
397
398
|
|
398
399
|
family = grpc_sockaddr_get_family(addr);
|
@@ -410,8 +411,9 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
|
|
410
411
|
gpr_free(allocated_addr);
|
411
412
|
|
412
413
|
if (error != GRPC_ERROR_NONE) {
|
413
|
-
|
414
|
-
|
414
|
+
grpc_error_handle error_out =
|
415
|
+
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
416
|
+
"Failed to add port to server", &error, 1);
|
415
417
|
GRPC_ERROR_UNREF(error);
|
416
418
|
error = error_out;
|
417
419
|
*port = -1;
|
@@ -47,22 +47,22 @@
|
|
47
47
|
#include <grpc/support/sync.h>
|
48
48
|
#include <grpc/support/time.h>
|
49
49
|
|
50
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
50
51
|
#include "src/core/lib/channel/channel_args.h"
|
51
52
|
#include "src/core/lib/gpr/string.h"
|
52
53
|
#include "src/core/lib/gprpp/memory.h"
|
53
54
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
54
55
|
#include "src/core/lib/iomgr/resolve_address.h"
|
55
56
|
#include "src/core/lib/iomgr/sockaddr.h"
|
56
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
57
57
|
#include "src/core/lib/iomgr/socket_utils_posix.h"
|
58
58
|
#include "src/core/lib/iomgr/tcp_posix.h"
|
59
59
|
#include "src/core/lib/iomgr/tcp_server.h"
|
60
60
|
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
61
61
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
62
62
|
|
63
|
-
static
|
64
|
-
|
65
|
-
|
63
|
+
static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
|
64
|
+
const grpc_channel_args* args,
|
65
|
+
grpc_tcp_server** server) {
|
66
66
|
grpc_tcp_server* s =
|
67
67
|
static_cast<grpc_tcp_server*>(gpr_zalloc(sizeof(grpc_tcp_server)));
|
68
68
|
s->so_reuseport = grpc_is_socket_reuse_port_supported();
|
@@ -129,7 +129,7 @@ static void finish_shutdown(grpc_tcp_server* s) {
|
|
129
129
|
gpr_free(s);
|
130
130
|
}
|
131
131
|
|
132
|
-
static void destroyed_port(void* server,
|
132
|
+
static void destroyed_port(void* server, grpc_error_handle /*error*/) {
|
133
133
|
grpc_tcp_server* s = static_cast<grpc_tcp_server*>(server);
|
134
134
|
gpr_mu_lock(&s->mu);
|
135
135
|
s->destroyed_ports++;
|
@@ -188,7 +188,7 @@ static void tcp_server_destroy(grpc_tcp_server* s) {
|
|
188
188
|
}
|
189
189
|
|
190
190
|
/* event manager callback when reads are ready */
|
191
|
-
static void on_read(void* arg,
|
191
|
+
static void on_read(void* arg, grpc_error_handle err) {
|
192
192
|
grpc_tcp_listener* sp = static_cast<grpc_tcp_listener*>(arg);
|
193
193
|
grpc_pollset* read_notifier_pollset;
|
194
194
|
if (err != GRPC_ERROR_NONE) {
|
@@ -281,18 +281,18 @@ error:
|
|
281
281
|
}
|
282
282
|
|
283
283
|
/* Treat :: or 0.0.0.0 as a family-agnostic wildcard. */
|
284
|
-
static
|
285
|
-
|
286
|
-
|
287
|
-
|
284
|
+
static grpc_error_handle add_wildcard_addrs_to_server(grpc_tcp_server* s,
|
285
|
+
unsigned port_index,
|
286
|
+
int requested_port,
|
287
|
+
int* out_port) {
|
288
288
|
grpc_resolved_address wild4;
|
289
289
|
grpc_resolved_address wild6;
|
290
290
|
unsigned fd_index = 0;
|
291
291
|
grpc_dualstack_mode dsmode;
|
292
292
|
grpc_tcp_listener* sp = nullptr;
|
293
293
|
grpc_tcp_listener* sp2 = nullptr;
|
294
|
-
|
295
|
-
|
294
|
+
grpc_error_handle v6_err = GRPC_ERROR_NONE;
|
295
|
+
grpc_error_handle v4_err = GRPC_ERROR_NONE;
|
296
296
|
*out_port = -1;
|
297
297
|
|
298
298
|
if (grpc_tcp_server_have_ifaddrs() && s->expand_wildcard_addrs) {
|
@@ -325,19 +325,19 @@ static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
|
|
325
325
|
gpr_log(GPR_INFO,
|
326
326
|
"Failed to add :: listener, "
|
327
327
|
"the environment may not support IPv6: %s",
|
328
|
-
|
328
|
+
grpc_error_std_string(v6_err).c_str());
|
329
329
|
GRPC_ERROR_UNREF(v6_err);
|
330
330
|
}
|
331
331
|
if (v4_err != GRPC_ERROR_NONE) {
|
332
332
|
gpr_log(GPR_INFO,
|
333
333
|
"Failed to add 0.0.0.0 listener, "
|
334
334
|
"the environment may not support IPv4: %s",
|
335
|
-
|
335
|
+
grpc_error_std_string(v4_err).c_str());
|
336
336
|
GRPC_ERROR_UNREF(v4_err);
|
337
337
|
}
|
338
338
|
return GRPC_ERROR_NONE;
|
339
339
|
} else {
|
340
|
-
|
340
|
+
grpc_error_handle root_err = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
341
341
|
"Failed to add any wildcard listeners");
|
342
342
|
GPR_ASSERT(v6_err != GRPC_ERROR_NONE && v4_err != GRPC_ERROR_NONE);
|
343
343
|
root_err = grpc_error_add_child(root_err, v6_err);
|
@@ -346,10 +346,11 @@ static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
|
|
346
346
|
}
|
347
347
|
}
|
348
348
|
|
349
|
-
static
|
349
|
+
static grpc_error_handle clone_port(grpc_tcp_listener* listener,
|
350
|
+
unsigned count) {
|
350
351
|
grpc_tcp_listener* sp = nullptr;
|
351
352
|
std::string addr_str;
|
352
|
-
|
353
|
+
grpc_error_handle err;
|
353
354
|
|
354
355
|
for (grpc_tcp_listener* l = listener->next; l && l->is_sibling; l = l->next) {
|
355
356
|
l->fd_index += count;
|
@@ -395,16 +396,16 @@ static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
|
|
395
396
|
return GRPC_ERROR_NONE;
|
396
397
|
}
|
397
398
|
|
398
|
-
static
|
399
|
-
|
400
|
-
|
399
|
+
static grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
|
400
|
+
const grpc_resolved_address* addr,
|
401
|
+
int* out_port) {
|
401
402
|
grpc_tcp_listener* sp;
|
402
403
|
grpc_resolved_address sockname_temp;
|
403
404
|
grpc_resolved_address addr6_v4mapped;
|
404
405
|
int requested_port = grpc_sockaddr_get_port(addr);
|
405
406
|
unsigned port_index = 0;
|
406
407
|
grpc_dualstack_mode dsmode;
|
407
|
-
|
408
|
+
grpc_error_handle err;
|
408
409
|
*out_port = -1;
|
409
410
|
if (s->tail != nullptr) {
|
410
411
|
port_index = s->tail->port_index + 1;
|