grpc 1.37.1 → 1.39.0
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 +96 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +334 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +91 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +28 -13
- data/include/grpc/impl/codegen/port_platform.h +22 -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 +630 -3103
- 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 +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- 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/ring_hash/ring_hash.cc +755 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- 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 +46 -54
- 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 +146 -155
- 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_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/dns/c_ares/dns_resolver_ares.cc +24 -18
- 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_event_engine.cc +31 -0
- 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_event_engine.cc +28 -0
- 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 +18 -12
- 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 +20 -13
- 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 +60 -32
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- 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 +2449 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -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 +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +25 -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 +3 -2
- 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 +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
- 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 +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- 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 +348 -199
- data/src/core/ext/xds/xds_api.h +21 -12
- 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 +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -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/channelz.h +3 -0
- 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/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/slice_allocator.cc +89 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- 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 +183 -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_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -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/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- 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 +2 -2
- 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 +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- 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 +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -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/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- 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 +22 -19
- 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 +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- 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 +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- 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.h +6 -1
- 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/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- 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 +12 -10
- 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/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -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 +22 -9
- 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 +27 -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 +67 -46
- data/src/core/lib/surface/call.h +13 -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 +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -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 +21 -10
- 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 +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -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/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- 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 +483 -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 +9 -7
- 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/cipher_extra.c +4 -0
- 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/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- 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/bn/prime.c +0 -4
- 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/digest.c +7 -0
- 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 +87 -160
- 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 +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- 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/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -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 +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- 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 +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -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 +42 -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_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- 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_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -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/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- 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/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -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 +20 -49
- 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/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- 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/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- 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 +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +94 -46
- 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
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -57,4 +57,12 @@ int grpc_tcp_fd(grpc_endpoint* ep);
|
|
57
57
|
void grpc_tcp_destroy_and_release_fd(grpc_endpoint* ep, int* fd,
|
58
58
|
grpc_closure* done);
|
59
59
|
|
60
|
+
#ifdef GRPC_POSIX_SOCKET_TCP
|
61
|
+
|
62
|
+
void grpc_tcp_posix_init();
|
63
|
+
|
64
|
+
void grpc_tcp_posix_shutdown();
|
65
|
+
|
66
|
+
#endif /* GRPC_POSIX_SOCKET_TCP */
|
67
|
+
|
60
68
|
#endif /* GRPC_CORE_LIB_IOMGR_TCP_POSIX_H */
|
@@ -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();
|
@@ -361,10 +362,9 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
|
|
361
362
|
for (sp = s->head; sp; sp = sp->next) {
|
362
363
|
socket = sp->socket;
|
363
364
|
sockname_temp.len = GRPC_MAX_SOCKADDR_SIZE;
|
364
|
-
if (
|
365
|
-
|
366
|
-
|
367
|
-
reinterpret_cast<int*>(&sockname_temp.len))) {
|
365
|
+
if (grpc_custom_socket_vtable->getsockname(
|
366
|
+
socket, reinterpret_cast<grpc_sockaddr*>(&sockname_temp.addr),
|
367
|
+
reinterpret_cast<int*>(&sockname_temp.len)) == GRPC_ERROR_NONE) {
|
368
368
|
*port = grpc_sockaddr_get_port(&sockname_temp);
|
369
369
|
if (*port > 0) {
|
370
370
|
allocated_addr = static_cast<grpc_resolved_address*>(
|
@@ -392,7 +392,7 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
|
|
392
392
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
393
393
|
gpr_log(GPR_INFO, "SERVER %p add_port %s error=%s", s,
|
394
394
|
grpc_sockaddr_to_string(addr, false).c_str(),
|
395
|
-
|
395
|
+
grpc_error_std_string(error).c_str());
|
396
396
|
}
|
397
397
|
|
398
398
|
family = grpc_sockaddr_get_family(addr);
|
@@ -410,8 +410,9 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
|
|
410
410
|
gpr_free(allocated_addr);
|
411
411
|
|
412
412
|
if (error != GRPC_ERROR_NONE) {
|
413
|
-
|
414
|
-
|
413
|
+
grpc_error_handle error_out =
|
414
|
+
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
415
|
+
"Failed to add port to server", &error, 1);
|
415
416
|
GRPC_ERROR_UNREF(error);
|
416
417
|
error = error_out;
|
417
418
|
*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) {
|
@@ -238,6 +238,12 @@ static void on_read(void* arg, grpc_error* err) {
|
|
238
238
|
|
239
239
|
grpc_set_socket_no_sigpipe_if_possible(fd);
|
240
240
|
|
241
|
+
err = grpc_apply_socket_mutator_in_args(fd, GRPC_FD_SERVER_CONNECTION_USAGE,
|
242
|
+
sp->server->channel_args);
|
243
|
+
if (err != GRPC_ERROR_NONE) {
|
244
|
+
goto error;
|
245
|
+
}
|
246
|
+
|
241
247
|
std::string addr_str = grpc_sockaddr_to_uri(&addr);
|
242
248
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
243
249
|
gpr_log(GPR_INFO, "SERVER_CONNECT: incoming connection: %s",
|
@@ -281,18 +287,18 @@ error:
|
|
281
287
|
}
|
282
288
|
|
283
289
|
/* Treat :: or 0.0.0.0 as a family-agnostic wildcard. */
|
284
|
-
static
|
285
|
-
|
286
|
-
|
287
|
-
|
290
|
+
static grpc_error_handle add_wildcard_addrs_to_server(grpc_tcp_server* s,
|
291
|
+
unsigned port_index,
|
292
|
+
int requested_port,
|
293
|
+
int* out_port) {
|
288
294
|
grpc_resolved_address wild4;
|
289
295
|
grpc_resolved_address wild6;
|
290
296
|
unsigned fd_index = 0;
|
291
297
|
grpc_dualstack_mode dsmode;
|
292
298
|
grpc_tcp_listener* sp = nullptr;
|
293
299
|
grpc_tcp_listener* sp2 = nullptr;
|
294
|
-
|
295
|
-
|
300
|
+
grpc_error_handle v6_err = GRPC_ERROR_NONE;
|
301
|
+
grpc_error_handle v4_err = GRPC_ERROR_NONE;
|
296
302
|
*out_port = -1;
|
297
303
|
|
298
304
|
if (grpc_tcp_server_have_ifaddrs() && s->expand_wildcard_addrs) {
|
@@ -325,19 +331,19 @@ static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
|
|
325
331
|
gpr_log(GPR_INFO,
|
326
332
|
"Failed to add :: listener, "
|
327
333
|
"the environment may not support IPv6: %s",
|
328
|
-
|
334
|
+
grpc_error_std_string(v6_err).c_str());
|
329
335
|
GRPC_ERROR_UNREF(v6_err);
|
330
336
|
}
|
331
337
|
if (v4_err != GRPC_ERROR_NONE) {
|
332
338
|
gpr_log(GPR_INFO,
|
333
339
|
"Failed to add 0.0.0.0 listener, "
|
334
340
|
"the environment may not support IPv4: %s",
|
335
|
-
|
341
|
+
grpc_error_std_string(v4_err).c_str());
|
336
342
|
GRPC_ERROR_UNREF(v4_err);
|
337
343
|
}
|
338
344
|
return GRPC_ERROR_NONE;
|
339
345
|
} else {
|
340
|
-
|
346
|
+
grpc_error_handle root_err = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
341
347
|
"Failed to add any wildcard listeners");
|
342
348
|
GPR_ASSERT(v6_err != GRPC_ERROR_NONE && v4_err != GRPC_ERROR_NONE);
|
343
349
|
root_err = grpc_error_add_child(root_err, v6_err);
|
@@ -346,10 +352,11 @@ static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
|
|
346
352
|
}
|
347
353
|
}
|
348
354
|
|
349
|
-
static
|
355
|
+
static grpc_error_handle clone_port(grpc_tcp_listener* listener,
|
356
|
+
unsigned count) {
|
350
357
|
grpc_tcp_listener* sp = nullptr;
|
351
358
|
std::string addr_str;
|
352
|
-
|
359
|
+
grpc_error_handle err;
|
353
360
|
|
354
361
|
for (grpc_tcp_listener* l = listener->next; l && l->is_sibling; l = l->next) {
|
355
362
|
l->fd_index += count;
|
@@ -395,16 +402,16 @@ static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
|
|
395
402
|
return GRPC_ERROR_NONE;
|
396
403
|
}
|
397
404
|
|
398
|
-
static
|
399
|
-
|
400
|
-
|
405
|
+
static grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
|
406
|
+
const grpc_resolved_address* addr,
|
407
|
+
int* out_port) {
|
401
408
|
grpc_tcp_listener* sp;
|
402
409
|
grpc_resolved_address sockname_temp;
|
403
410
|
grpc_resolved_address addr6_v4mapped;
|
404
411
|
int requested_port = grpc_sockaddr_get_port(addr);
|
405
412
|
unsigned port_index = 0;
|
406
413
|
grpc_dualstack_mode dsmode;
|
407
|
-
|
414
|
+
grpc_error_handle err;
|
408
415
|
*out_port = -1;
|
409
416
|
if (s->tail != nullptr) {
|
410
417
|
port_index = s->tail->port_index + 1;
|
@@ -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
|
|
@@ -180,7 +182,8 @@ grpc_error* grpc_tcp_server_prepare_socket(grpc_tcp_server* s, int fd,
|
|
180
182
|
err = grpc_set_socket_no_sigpipe_if_possible(fd);
|
181
183
|
if (err != GRPC_ERROR_NONE) goto error;
|
182
184
|
|
183
|
-
err = grpc_apply_socket_mutator_in_args(fd,
|
185
|
+
err = grpc_apply_socket_mutator_in_args(fd, GRPC_FD_SERVER_LISTENER_USAGE,
|
186
|
+
s->channel_args);
|
184
187
|
if (err != GRPC_ERROR_NONE) goto error;
|
185
188
|
|
186
189
|
if (bind(fd, reinterpret_cast<grpc_sockaddr*>(const_cast<char*>(addr->addr)),
|
@@ -210,7 +213,7 @@ error:
|
|
210
213
|
if (fd >= 0) {
|
211
214
|
close(fd);
|
212
215
|
}
|
213
|
-
|
216
|
+
grpc_error_handle ret =
|
214
217
|
grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
215
218
|
"Unable to configure socket", &err, 1),
|
216
219
|
GRPC_ERROR_INT_FD, fd);
|