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
@@ -98,26 +98,27 @@ struct grpc_tcp_server {
|
|
98
98
|
|
99
99
|
/* If successful, add a listener to \a s for \a addr, set \a dsmode for the
|
100
100
|
socket, and return the \a listener. */
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
101
|
+
grpc_error_handle grpc_tcp_server_add_addr(grpc_tcp_server* s,
|
102
|
+
const grpc_resolved_address* addr,
|
103
|
+
unsigned port_index,
|
104
|
+
unsigned fd_index,
|
105
|
+
grpc_dualstack_mode* dsmode,
|
106
|
+
grpc_tcp_listener** listener);
|
106
107
|
|
107
108
|
/* Get all addresses assigned to network interfaces on the machine and create a
|
108
109
|
listener for each. requested_port is the port to use for every listener, or 0
|
109
110
|
to select one random port that will be used for every listener. Set *out_port
|
110
111
|
to the port selected. Return GRPC_ERROR_NONE only if all listeners were
|
111
112
|
added. */
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
113
|
+
grpc_error_handle grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
|
114
|
+
unsigned port_index,
|
115
|
+
int requested_port,
|
116
|
+
int* out_port);
|
116
117
|
|
117
118
|
/* Prepare a recently-created socket for listening. */
|
118
|
-
|
119
|
-
|
120
|
-
|
119
|
+
grpc_error_handle grpc_tcp_server_prepare_socket(
|
120
|
+
grpc_tcp_server*, int fd, const grpc_resolved_address* addr,
|
121
|
+
bool so_reuseport, int* port);
|
121
122
|
/* Ruturn true if the platform supports ifaddrs */
|
122
123
|
bool grpc_tcp_server_have_ifaddrs(void);
|
123
124
|
|
@@ -37,9 +37,9 @@
|
|
37
37
|
#include <grpc/support/log.h>
|
38
38
|
#include <grpc/support/sync.h>
|
39
39
|
|
40
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
40
41
|
#include "src/core/lib/iomgr/error.h"
|
41
42
|
#include "src/core/lib/iomgr/sockaddr.h"
|
42
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
43
43
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
44
44
|
|
45
45
|
#define MIN_SAFE_ACCEPT_QUEUE_SIZE 100
|
@@ -80,14 +80,15 @@ static int get_max_accept_queue_size(void) {
|
|
80
80
|
return s_max_accept_queue_size;
|
81
81
|
}
|
82
82
|
|
83
|
-
static
|
84
|
-
|
85
|
-
|
86
|
-
|
83
|
+
static grpc_error_handle add_socket_to_server(grpc_tcp_server* s, int fd,
|
84
|
+
const grpc_resolved_address* addr,
|
85
|
+
unsigned port_index,
|
86
|
+
unsigned fd_index,
|
87
|
+
grpc_tcp_listener** listener) {
|
87
88
|
grpc_tcp_listener* sp = nullptr;
|
88
89
|
int port = -1;
|
89
90
|
|
90
|
-
|
91
|
+
grpc_error_handle err =
|
91
92
|
grpc_tcp_server_prepare_socket(s, fd, addr, s->so_reuseport, &port);
|
92
93
|
if (err == GRPC_ERROR_NONE) {
|
93
94
|
GPR_ASSERT(port > 0);
|
@@ -123,14 +124,15 @@ static grpc_error* add_socket_to_server(grpc_tcp_server* s, int fd,
|
|
123
124
|
|
124
125
|
/* If successful, add a listener to s for addr, set *dsmode for the socket, and
|
125
126
|
return the *listener. */
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
127
|
+
grpc_error_handle grpc_tcp_server_add_addr(grpc_tcp_server* s,
|
128
|
+
const grpc_resolved_address* addr,
|
129
|
+
unsigned port_index,
|
130
|
+
unsigned fd_index,
|
131
|
+
grpc_dualstack_mode* dsmode,
|
132
|
+
grpc_tcp_listener** listener) {
|
131
133
|
grpc_resolved_address addr4_copy;
|
132
134
|
int fd;
|
133
|
-
|
135
|
+
grpc_error_handle err =
|
134
136
|
grpc_create_dualstack_socket(addr, SOCK_STREAM, 0, dsmode, &fd);
|
135
137
|
if (err != GRPC_ERROR_NONE) {
|
136
138
|
return err;
|
@@ -143,11 +145,11 @@ grpc_error* grpc_tcp_server_add_addr(grpc_tcp_server* s,
|
|
143
145
|
}
|
144
146
|
|
145
147
|
/* Prepare a recently-created socket for listening. */
|
146
|
-
|
147
|
-
|
148
|
-
|
148
|
+
grpc_error_handle grpc_tcp_server_prepare_socket(
|
149
|
+
grpc_tcp_server* s, int fd, const grpc_resolved_address* addr,
|
150
|
+
bool so_reuseport, int* port) {
|
149
151
|
grpc_resolved_address sockname_temp;
|
150
|
-
|
152
|
+
grpc_error_handle err = GRPC_ERROR_NONE;
|
151
153
|
|
152
154
|
GPR_ASSERT(fd >= 0);
|
153
155
|
|
@@ -210,7 +212,7 @@ error:
|
|
210
212
|
if (fd >= 0) {
|
211
213
|
close(fd);
|
212
214
|
}
|
213
|
-
|
215
|
+
grpc_error_handle ret =
|
214
216
|
grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
215
217
|
"Unable to configure socket", &err, 1),
|
216
218
|
GRPC_ERROR_INT_FD, fd);
|
@@ -36,9 +36,9 @@
|
|
36
36
|
#include <grpc/support/alloc.h>
|
37
37
|
#include <grpc/support/log.h>
|
38
38
|
|
39
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
39
40
|
#include "src/core/lib/iomgr/error.h"
|
40
41
|
#include "src/core/lib/iomgr/sockaddr.h"
|
41
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
42
42
|
|
43
43
|
/* Return the listener in s with address addr or NULL. */
|
44
44
|
static grpc_tcp_listener* find_listener_with_addr(grpc_tcp_server* s,
|
@@ -58,12 +58,12 @@ static grpc_tcp_listener* find_listener_with_addr(grpc_tcp_server* s,
|
|
58
58
|
}
|
59
59
|
|
60
60
|
/* Bind to "::" to get a port number not used by any address. */
|
61
|
-
static
|
61
|
+
static grpc_error_handle get_unused_port(int* port) {
|
62
62
|
grpc_resolved_address wild;
|
63
63
|
grpc_sockaddr_make_wildcard6(0, &wild);
|
64
64
|
grpc_dualstack_mode dsmode;
|
65
65
|
int fd;
|
66
|
-
|
66
|
+
grpc_error_handle err =
|
67
67
|
grpc_create_dualstack_socket(&wild, SOCK_STREAM, 0, &dsmode, &fd);
|
68
68
|
if (err != GRPC_ERROR_NONE) {
|
69
69
|
return err;
|
@@ -89,15 +89,15 @@ static grpc_error* get_unused_port(int* port) {
|
|
89
89
|
: GRPC_ERROR_NONE;
|
90
90
|
}
|
91
91
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
92
|
+
grpc_error_handle grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
|
93
|
+
unsigned port_index,
|
94
|
+
int requested_port,
|
95
|
+
int* out_port) {
|
96
96
|
struct ifaddrs* ifa = nullptr;
|
97
97
|
struct ifaddrs* ifa_it;
|
98
98
|
unsigned fd_index = 0;
|
99
99
|
grpc_tcp_listener* sp = nullptr;
|
100
|
-
|
100
|
+
grpc_error_handle err = GRPC_ERROR_NONE;
|
101
101
|
if (requested_port == 0) {
|
102
102
|
/* Note: There could be a race where some local addrs can listen on the
|
103
103
|
selected port and some can't. The sane way to handle this would be to
|
@@ -146,7 +146,7 @@ grpc_error* grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
|
|
146
146
|
}
|
147
147
|
if ((err = grpc_tcp_server_add_addr(s, &addr, port_index, fd_index, &dsmode,
|
148
148
|
&new_sp)) != GRPC_ERROR_NONE) {
|
149
|
-
|
149
|
+
grpc_error_handle root_err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
150
150
|
absl::StrCat("Failed to add listener: ", addr_str).c_str());
|
151
151
|
err = grpc_error_add_child(root_err, err);
|
152
152
|
break;
|
@@ -24,10 +24,10 @@
|
|
24
24
|
|
25
25
|
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
grpc_error_handle grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
|
28
|
+
unsigned port_index,
|
29
|
+
int requested_port,
|
30
|
+
int* out_port) {
|
31
31
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING("no ifaddrs available");
|
32
32
|
}
|
33
33
|
|
@@ -38,11 +38,11 @@
|
|
38
38
|
#include <grpc/support/sync.h>
|
39
39
|
#include <grpc/support/time.h>
|
40
40
|
|
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/iomgr/iocp_windows.h"
|
43
44
|
#include "src/core/lib/iomgr/pollset_windows.h"
|
44
45
|
#include "src/core/lib/iomgr/resolve_address.h"
|
45
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
46
46
|
#include "src/core/lib/iomgr/socket_windows.h"
|
47
47
|
#include "src/core/lib/iomgr/tcp_server.h"
|
48
48
|
#include "src/core/lib/iomgr/tcp_windows.h"
|
@@ -101,9 +101,9 @@ struct grpc_tcp_server {
|
|
101
101
|
|
102
102
|
/* Public function. Allocates the proper data structures to hold a
|
103
103
|
grpc_tcp_server. */
|
104
|
-
static
|
105
|
-
|
106
|
-
|
104
|
+
static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
|
105
|
+
const grpc_channel_args* args,
|
106
|
+
grpc_tcp_server** server) {
|
107
107
|
grpc_tcp_server* s = (grpc_tcp_server*)gpr_malloc(sizeof(grpc_tcp_server));
|
108
108
|
s->channel_args = grpc_channel_args_copy(args);
|
109
109
|
gpr_ref_init(&s->refs, 1);
|
@@ -120,7 +120,7 @@ static grpc_error* tcp_server_create(grpc_closure* shutdown_complete,
|
|
120
120
|
return GRPC_ERROR_NONE;
|
121
121
|
}
|
122
122
|
|
123
|
-
static void destroy_server(void* arg,
|
123
|
+
static void destroy_server(void* arg, grpc_error_handle error) {
|
124
124
|
grpc_tcp_server* s = (grpc_tcp_server*)arg;
|
125
125
|
|
126
126
|
/* Now that the accepts have been aborted, we can destroy the sockets.
|
@@ -191,11 +191,11 @@ static void tcp_server_unref(grpc_tcp_server* s) {
|
|
191
191
|
}
|
192
192
|
|
193
193
|
/* Prepare (bind) a recently-created socket for listening. */
|
194
|
-
static
|
195
|
-
|
196
|
-
|
194
|
+
static grpc_error_handle prepare_socket(SOCKET sock,
|
195
|
+
const grpc_resolved_address* addr,
|
196
|
+
int* port) {
|
197
197
|
grpc_resolved_address sockname_temp;
|
198
|
-
|
198
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
199
199
|
int sockname_temp_len;
|
200
200
|
|
201
201
|
error = grpc_tcp_prepare_socket(sock);
|
@@ -249,12 +249,12 @@ static void decrement_active_ports_and_notify_locked(grpc_tcp_listener* sp) {
|
|
249
249
|
|
250
250
|
/* In order to do an async accept, we need to create a socket first which
|
251
251
|
will be the one assigned to the new incoming connection. */
|
252
|
-
static
|
252
|
+
static grpc_error_handle start_accept_locked(grpc_tcp_listener* port) {
|
253
253
|
SOCKET sock = INVALID_SOCKET;
|
254
254
|
BOOL success;
|
255
255
|
DWORD addrlen = sizeof(grpc_sockaddr_in6) + 16;
|
256
256
|
DWORD bytes_received = 0;
|
257
|
-
|
257
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
258
258
|
|
259
259
|
if (port->shutting_down) {
|
260
260
|
return GRPC_ERROR_NONE;
|
@@ -299,7 +299,7 @@ failure:
|
|
299
299
|
}
|
300
300
|
|
301
301
|
/* Event manager callback when reads are ready. */
|
302
|
-
static void on_accept(void* arg,
|
302
|
+
static void on_accept(void* arg, grpc_error_handle error) {
|
303
303
|
grpc_tcp_listener* sp = (grpc_tcp_listener*)arg;
|
304
304
|
SOCKET sock = sp->new_socket;
|
305
305
|
grpc_winsocket_callback_info* info = &sp->socket->read_info;
|
@@ -318,8 +318,8 @@ static void on_accept(void* arg, grpc_error* error) {
|
|
318
318
|
this is necessary in the read/write case, it's useless for the accept
|
319
319
|
case. We only need to adjust the pending callback count */
|
320
320
|
if (error != GRPC_ERROR_NONE) {
|
321
|
-
|
322
|
-
|
321
|
+
gpr_log(GPR_INFO, "Skipping on_accept due to error: %s",
|
322
|
+
grpc_error_std_string(error).c_str());
|
323
323
|
|
324
324
|
gpr_mu_unlock(&sp->server->mu);
|
325
325
|
return;
|
@@ -388,17 +388,17 @@ static void on_accept(void* arg, grpc_error* error) {
|
|
388
388
|
gpr_mu_unlock(&sp->server->mu);
|
389
389
|
}
|
390
390
|
|
391
|
-
static
|
392
|
-
|
393
|
-
|
394
|
-
|
391
|
+
static grpc_error_handle add_socket_to_server(grpc_tcp_server* s, SOCKET sock,
|
392
|
+
const grpc_resolved_address* addr,
|
393
|
+
unsigned port_index,
|
394
|
+
grpc_tcp_listener** listener) {
|
395
395
|
grpc_tcp_listener* sp = NULL;
|
396
396
|
int port = -1;
|
397
397
|
int status;
|
398
398
|
GUID guid = WSAID_ACCEPTEX;
|
399
399
|
DWORD ioctl_num_bytes;
|
400
400
|
LPFN_ACCEPTEX AcceptEx;
|
401
|
-
|
401
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
402
402
|
|
403
403
|
/* We need to grab the AcceptEx pointer for that port, as it may be
|
404
404
|
interface-dependent. We'll cache it to avoid doing that again. */
|
@@ -446,9 +446,9 @@ static grpc_error* add_socket_to_server(grpc_tcp_server* s, SOCKET sock,
|
|
446
446
|
return GRPC_ERROR_NONE;
|
447
447
|
}
|
448
448
|
|
449
|
-
static
|
450
|
-
|
451
|
-
|
449
|
+
static grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
|
450
|
+
const grpc_resolved_address* addr,
|
451
|
+
int* port) {
|
452
452
|
grpc_tcp_listener* sp = NULL;
|
453
453
|
SOCKET sock;
|
454
454
|
grpc_resolved_address addr6_v4mapped;
|
@@ -456,7 +456,7 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
|
|
456
456
|
grpc_resolved_address* allocated_addr = NULL;
|
457
457
|
grpc_resolved_address sockname_temp;
|
458
458
|
unsigned port_index = 0;
|
459
|
-
|
459
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
460
460
|
|
461
461
|
if (s->tail != NULL) {
|
462
462
|
port_index = s->tail->port_index + 1;
|
@@ -508,8 +508,9 @@ done:
|
|
508
508
|
gpr_free(allocated_addr);
|
509
509
|
|
510
510
|
if (error != GRPC_ERROR_NONE) {
|
511
|
-
|
512
|
-
|
511
|
+
grpc_error_handle error_out =
|
512
|
+
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
513
|
+
"Failed to add port to server", &error, 1);
|
513
514
|
GRPC_ERROR_UNREF(error);
|
514
515
|
error = error_out;
|
515
516
|
*port = -1;
|
@@ -55,7 +55,7 @@ typedef struct uv_socket_t {
|
|
55
55
|
|
56
56
|
int pending_connections;
|
57
57
|
grpc_custom_socket* accept_socket;
|
58
|
-
|
58
|
+
grpc_error_handle accept_error;
|
59
59
|
|
60
60
|
grpc_custom_connect_callback connect_cb;
|
61
61
|
grpc_custom_write_callback write_cb;
|
@@ -65,11 +65,11 @@ typedef struct uv_socket_t {
|
|
65
65
|
|
66
66
|
} uv_socket_t;
|
67
67
|
|
68
|
-
static
|
68
|
+
static grpc_error_handle tcp_error_create(const char* desc, int status) {
|
69
69
|
if (status == 0) {
|
70
70
|
return GRPC_ERROR_NONE;
|
71
71
|
}
|
72
|
-
|
72
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc);
|
73
73
|
/* All tcp errors are marked with UNAVAILABLE so that application may
|
74
74
|
* choose to retry. */
|
75
75
|
error = grpc_error_set_int(error, GRPC_ERROR_INT_GRPC_STATUS,
|
@@ -95,7 +95,7 @@ static void alloc_uv_buf(uv_handle_t* handle, size_t suggested_size,
|
|
95
95
|
|
96
96
|
static void uv_read_callback(uv_stream_t* stream, ssize_t nread,
|
97
97
|
const uv_buf_t* buf) {
|
98
|
-
|
98
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
99
99
|
if (nread == 0) {
|
100
100
|
// Nothing happened. Wait for the next callback
|
101
101
|
return;
|
@@ -126,7 +126,7 @@ static void uv_socket_read(grpc_custom_socket* socket, char* buffer,
|
|
126
126
|
size_t length, grpc_custom_read_callback read_cb) {
|
127
127
|
uv_socket_t* uv_socket = (uv_socket_t*)socket->impl;
|
128
128
|
int status;
|
129
|
-
|
129
|
+
grpc_error_handle error;
|
130
130
|
uv_socket->read_cb = read_cb;
|
131
131
|
uv_socket->read_buf = buffer;
|
132
132
|
uv_socket->read_len = length;
|
@@ -184,7 +184,8 @@ static void uv_socket_close(grpc_custom_socket* socket,
|
|
184
184
|
uv_close((uv_handle_t*)uv_socket->handle, uv_close_callback);
|
185
185
|
}
|
186
186
|
|
187
|
-
static
|
187
|
+
static grpc_error_handle uv_socket_init_helper(uv_socket_t* uv_socket,
|
188
|
+
int domain) {
|
188
189
|
uv_tcp_t* tcp = (uv_tcp_t*)gpr_malloc(sizeof(uv_tcp_t));
|
189
190
|
uv_socket->handle = tcp;
|
190
191
|
int status = uv_tcp_init_ex(uv_default_loop(), tcp, (unsigned int)domain);
|
@@ -212,9 +213,10 @@ static grpc_error* uv_socket_init_helper(uv_socket_t* uv_socket, int domain) {
|
|
212
213
|
return GRPC_ERROR_NONE;
|
213
214
|
}
|
214
215
|
|
215
|
-
static
|
216
|
+
static grpc_error_handle uv_socket_init(grpc_custom_socket* socket,
|
217
|
+
int domain) {
|
216
218
|
uv_socket_t* uv_socket = (uv_socket_t*)gpr_malloc(sizeof(uv_socket_t));
|
217
|
-
|
219
|
+
grpc_error_handle error = uv_socket_init_helper(uv_socket, domain);
|
218
220
|
if (error != GRPC_ERROR_NONE) {
|
219
221
|
return error;
|
220
222
|
}
|
@@ -223,18 +225,18 @@ static grpc_error* uv_socket_init(grpc_custom_socket* socket, int domain) {
|
|
223
225
|
return GRPC_ERROR_NONE;
|
224
226
|
}
|
225
227
|
|
226
|
-
static
|
227
|
-
|
228
|
-
|
228
|
+
static grpc_error_handle uv_socket_getpeername(grpc_custom_socket* socket,
|
229
|
+
const grpc_sockaddr* addr,
|
230
|
+
int* addr_len) {
|
229
231
|
uv_socket_t* uv_socket = (uv_socket_t*)socket->impl;
|
230
232
|
int err = uv_tcp_getpeername(uv_socket->handle,
|
231
233
|
(struct sockaddr*)IGNORE_CONST(addr), addr_len);
|
232
234
|
return tcp_error_create("getpeername failed", err);
|
233
235
|
}
|
234
236
|
|
235
|
-
static
|
236
|
-
|
237
|
-
|
237
|
+
static grpc_error_handle uv_socket_getsockname(grpc_custom_socket* socket,
|
238
|
+
const grpc_sockaddr* addr,
|
239
|
+
int* addr_len) {
|
238
240
|
uv_socket_t* uv_socket = (uv_socket_t*)socket->impl;
|
239
241
|
int err = uv_tcp_getsockname(uv_socket->handle,
|
240
242
|
(struct sockaddr*)IGNORE_CONST(addr), addr_len);
|
@@ -247,7 +249,7 @@ static void accept_new_connection(grpc_custom_socket* socket) {
|
|
247
249
|
return;
|
248
250
|
}
|
249
251
|
grpc_custom_socket* new_socket = uv_socket->accept_socket;
|
250
|
-
|
252
|
+
grpc_error_handle error = uv_socket->accept_error;
|
251
253
|
uv_socket->accept_socket = nullptr;
|
252
254
|
uv_socket->accept_error = GRPC_ERROR_NONE;
|
253
255
|
uv_socket->pending_connections -= 1;
|
@@ -293,16 +295,16 @@ void uv_socket_accept(grpc_custom_socket* socket,
|
|
293
295
|
accept_new_connection(socket);
|
294
296
|
}
|
295
297
|
|
296
|
-
static
|
297
|
-
|
298
|
-
|
298
|
+
static grpc_error_handle uv_socket_bind(grpc_custom_socket* socket,
|
299
|
+
const grpc_sockaddr* addr, size_t len,
|
300
|
+
int flags) {
|
299
301
|
uv_socket_t* uv_socket = (uv_socket_t*)socket->impl;
|
300
302
|
int status =
|
301
303
|
uv_tcp_bind((uv_tcp_t*)uv_socket->handle, (struct sockaddr*)addr, 0);
|
302
304
|
return tcp_error_create("Failed to bind to port", status);
|
303
305
|
}
|
304
306
|
|
305
|
-
static
|
307
|
+
static grpc_error_handle uv_socket_listen(grpc_custom_socket* socket) {
|
306
308
|
uv_socket_t* uv_socket = (uv_socket_t*)socket->impl;
|
307
309
|
int status =
|
308
310
|
uv_listen((uv_stream_t*)uv_socket->handle, SOMAXCONN, uv_on_connect);
|
@@ -312,7 +314,7 @@ static grpc_error* uv_socket_listen(grpc_custom_socket* socket) {
|
|
312
314
|
static void uv_tc_on_connect(uv_connect_t* req, int status) {
|
313
315
|
grpc_custom_socket* socket = (grpc_custom_socket*)req->data;
|
314
316
|
uv_socket_t* uv_socket = (uv_socket_t*)socket->impl;
|
315
|
-
|
317
|
+
grpc_error_handle error;
|
316
318
|
if (status == UV_ECANCELED) {
|
317
319
|
// This should only happen if the handle is already closed
|
318
320
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Timeout occurred");
|
@@ -370,8 +372,8 @@ static void uv_resolve_callback(uv_getaddrinfo_t* req, int status,
|
|
370
372
|
tcp_error_create("getaddrinfo failed", status));
|
371
373
|
}
|
372
374
|
|
373
|
-
static
|
374
|
-
|
375
|
+
static grpc_error_handle uv_resolve(const char* host, const char* port,
|
376
|
+
grpc_resolved_addresses** result) {
|
375
377
|
int status;
|
376
378
|
uv_getaddrinfo_t req;
|
377
379
|
struct addrinfo hints;
|
@@ -403,7 +405,7 @@ static void uv_resolve_async(grpc_custom_resolver* r, const char* host,
|
|
403
405
|
port, &hints);
|
404
406
|
if (status != 0) {
|
405
407
|
gpr_free(req);
|
406
|
-
|
408
|
+
grpc_error_handle error = tcp_error_create("getaddrinfo failed", status);
|
407
409
|
grpc_custom_resolve_callback(r, NULL, error);
|
408
410
|
}
|
409
411
|
}
|