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
@@ -50,15 +50,15 @@ void grpc_wakeup_fd_global_destroy(void) { wakeup_fd_vtable = nullptr; }
|
|
50
50
|
|
51
51
|
int grpc_has_wakeup_fd(void) { return has_real_wakeup_fd; }
|
52
52
|
|
53
|
-
|
53
|
+
grpc_error_handle grpc_wakeup_fd_init(grpc_wakeup_fd* fd_info) {
|
54
54
|
return wakeup_fd_vtable->init(fd_info);
|
55
55
|
}
|
56
56
|
|
57
|
-
|
57
|
+
grpc_error_handle grpc_wakeup_fd_consume_wakeup(grpc_wakeup_fd* fd_info) {
|
58
58
|
return wakeup_fd_vtable->consume(fd_info);
|
59
59
|
}
|
60
60
|
|
61
|
-
|
61
|
+
grpc_error_handle grpc_wakeup_fd_wakeup(grpc_wakeup_fd* fd_info) {
|
62
62
|
return wakeup_fd_vtable->wakeup(fd_info);
|
63
63
|
}
|
64
64
|
|
@@ -65,9 +65,9 @@ void grpc_enable_cv_wakeup_fds(int enable);
|
|
65
65
|
typedef struct grpc_wakeup_fd grpc_wakeup_fd;
|
66
66
|
|
67
67
|
typedef struct grpc_wakeup_fd_vtable {
|
68
|
-
|
69
|
-
|
70
|
-
|
68
|
+
grpc_error_handle (*init)(grpc_wakeup_fd* fd_info);
|
69
|
+
grpc_error_handle (*consume)(grpc_wakeup_fd* fd_info);
|
70
|
+
grpc_error_handle (*wakeup)(grpc_wakeup_fd* fd_info);
|
71
71
|
void (*destroy)(grpc_wakeup_fd* fd_info);
|
72
72
|
/* Must be called before calling any other functions */
|
73
73
|
int (*check_availability)(void);
|
@@ -83,10 +83,12 @@ extern int grpc_allow_pipe_wakeup_fd;
|
|
83
83
|
|
84
84
|
#define GRPC_WAKEUP_FD_GET_READ_FD(fd_info) ((fd_info)->read_fd)
|
85
85
|
|
86
|
-
|
87
|
-
|
86
|
+
grpc_error_handle grpc_wakeup_fd_init(grpc_wakeup_fd* fd_info)
|
87
|
+
GRPC_MUST_USE_RESULT;
|
88
|
+
grpc_error_handle grpc_wakeup_fd_consume_wakeup(grpc_wakeup_fd* fd_info)
|
89
|
+
GRPC_MUST_USE_RESULT;
|
90
|
+
grpc_error_handle grpc_wakeup_fd_wakeup(grpc_wakeup_fd* fd_info)
|
88
91
|
GRPC_MUST_USE_RESULT;
|
89
|
-
grpc_error* grpc_wakeup_fd_wakeup(grpc_wakeup_fd* fd_info) GRPC_MUST_USE_RESULT;
|
90
92
|
void grpc_wakeup_fd_destroy(grpc_wakeup_fd* fd_info);
|
91
93
|
|
92
94
|
/* Defined in some specialized implementation's .c file, or by
|
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
#include <functional>
|
22
22
|
|
23
|
+
#include "absl/synchronization/mutex.h"
|
24
|
+
|
23
25
|
#include "src/core/lib/debug/trace.h"
|
24
26
|
#include "src/core/lib/gprpp/atomic.h"
|
25
27
|
#include "src/core/lib/gprpp/debug_location.h"
|
@@ -43,12 +45,26 @@ namespace grpc_core {
|
|
43
45
|
// other callbacks from other threads might also be executed before Run()
|
44
46
|
// returns. Since an arbitrary set of callbacks might be executed when Run() is
|
45
47
|
// called, generally no locks should be held while calling Run().
|
46
|
-
class WorkSerializer {
|
48
|
+
class ABSL_LOCKABLE WorkSerializer {
|
47
49
|
public:
|
48
50
|
WorkSerializer();
|
49
51
|
|
50
52
|
~WorkSerializer();
|
51
53
|
|
54
|
+
// Runs a given callback.
|
55
|
+
//
|
56
|
+
// If you want to use clang thread annotation to make sure that callback is
|
57
|
+
// called by WorkSerializer only, you need to add the annotation to both the
|
58
|
+
// lambda function given to Run and the actual callback function like;
|
59
|
+
//
|
60
|
+
// void run_callback() {
|
61
|
+
// work_serializer.Run(
|
62
|
+
// []() ABSL_EXCLUSIVE_LOCKS_REQUIRED(work_serializer) {
|
63
|
+
// callback();
|
64
|
+
// }, DEBUG_LOCATION);
|
65
|
+
// }
|
66
|
+
// void callback() ABSL_EXCLUSIVE_LOCKS_REQUIRED(work_serializer) { ... }
|
67
|
+
//
|
52
68
|
// TODO(yashkt): Replace grpc_core::DebugLocation with absl::SourceLocation
|
53
69
|
// once we can start using it directly.
|
54
70
|
void Run(std::function<void()> callback,
|
data/src/core/lib/json/json.h
CHANGED
@@ -56,7 +56,7 @@ class Json {
|
|
56
56
|
using Array = std::vector<Json>;
|
57
57
|
|
58
58
|
// Parses JSON string from json_str. On error, sets *error.
|
59
|
-
static Json Parse(absl::string_view json_str,
|
59
|
+
static Json Parse(absl::string_view json_str, grpc_error_handle* error);
|
60
60
|
|
61
61
|
Json() = default;
|
62
62
|
|
@@ -38,7 +38,7 @@ namespace {
|
|
38
38
|
|
39
39
|
class JsonReader {
|
40
40
|
public:
|
41
|
-
static
|
41
|
+
static grpc_error_handle Parse(absl::string_view input, Json* output);
|
42
42
|
|
43
43
|
private:
|
44
44
|
enum class Status {
|
@@ -117,7 +117,7 @@ class JsonReader {
|
|
117
117
|
bool container_just_begun_ = false;
|
118
118
|
uint16_t unicode_char_ = 0;
|
119
119
|
uint16_t unicode_high_surrogate_ = 0;
|
120
|
-
std::vector<
|
120
|
+
std::vector<grpc_error_handle> errors_;
|
121
121
|
bool truncated_errors_ = false;
|
122
122
|
|
123
123
|
Json root_value_;
|
@@ -821,7 +821,7 @@ JsonReader::Status JsonReader::Run() {
|
|
821
821
|
GPR_UNREACHABLE_CODE(return Status::GRPC_JSON_INTERNAL_ERROR);
|
822
822
|
}
|
823
823
|
|
824
|
-
|
824
|
+
grpc_error_handle JsonReader::Parse(absl::string_view input, Json* output) {
|
825
825
|
JsonReader reader(input);
|
826
826
|
Status status = reader.Run();
|
827
827
|
if (reader.truncated_errors_) {
|
@@ -849,7 +849,7 @@ grpc_error* JsonReader::Parse(absl::string_view input, Json* output) {
|
|
849
849
|
|
850
850
|
} // namespace
|
851
851
|
|
852
|
-
Json Json::Parse(absl::string_view json_str,
|
852
|
+
Json Json::Parse(absl::string_view json_str, grpc_error_handle* error) {
|
853
853
|
Json value;
|
854
854
|
*error = JsonReader::Parse(json_str, &value);
|
855
855
|
return value;
|
@@ -31,7 +31,7 @@ namespace grpc_core {
|
|
31
31
|
absl::StatusOr<StringMatcher> StringMatcher::Create(Type type,
|
32
32
|
absl::string_view matcher,
|
33
33
|
bool case_sensitive) {
|
34
|
-
if (type == Type::
|
34
|
+
if (type == Type::kSafeRegex) {
|
35
35
|
RE2::Options options;
|
36
36
|
options.set_case_sensitive(case_sensitive);
|
37
37
|
auto regex_matcher = absl::make_unique<RE2>(std::string(matcher), options);
|
@@ -51,13 +51,13 @@ StringMatcher::StringMatcher(Type type, absl::string_view matcher,
|
|
51
51
|
|
52
52
|
StringMatcher::StringMatcher(std::unique_ptr<RE2> regex_matcher,
|
53
53
|
bool case_sensitive)
|
54
|
-
: type_(Type::
|
54
|
+
: type_(Type::kSafeRegex),
|
55
55
|
regex_matcher_(std::move(regex_matcher)),
|
56
56
|
case_sensitive_(case_sensitive) {}
|
57
57
|
|
58
58
|
StringMatcher::StringMatcher(const StringMatcher& other)
|
59
59
|
: type_(other.type_), case_sensitive_(other.case_sensitive_) {
|
60
|
-
if (type_ == Type::
|
60
|
+
if (type_ == Type::kSafeRegex) {
|
61
61
|
RE2::Options options;
|
62
62
|
options.set_case_sensitive(other.case_sensitive_);
|
63
63
|
regex_matcher_ =
|
@@ -69,7 +69,7 @@ StringMatcher::StringMatcher(const StringMatcher& other)
|
|
69
69
|
|
70
70
|
StringMatcher& StringMatcher::operator=(const StringMatcher& other) {
|
71
71
|
type_ = other.type_;
|
72
|
-
if (type_ == Type::
|
72
|
+
if (type_ == Type::kSafeRegex) {
|
73
73
|
RE2::Options options;
|
74
74
|
options.set_case_sensitive(other.case_sensitive_);
|
75
75
|
regex_matcher_ =
|
@@ -83,7 +83,7 @@ StringMatcher& StringMatcher::operator=(const StringMatcher& other) {
|
|
83
83
|
|
84
84
|
StringMatcher::StringMatcher(StringMatcher&& other) noexcept
|
85
85
|
: type_(other.type_), case_sensitive_(other.case_sensitive_) {
|
86
|
-
if (type_ == Type::
|
86
|
+
if (type_ == Type::kSafeRegex) {
|
87
87
|
regex_matcher_ = std::move(other.regex_matcher_);
|
88
88
|
} else {
|
89
89
|
string_matcher_ = std::move(other.string_matcher_);
|
@@ -92,7 +92,7 @@ StringMatcher::StringMatcher(StringMatcher&& other) noexcept
|
|
92
92
|
|
93
93
|
StringMatcher& StringMatcher::operator=(StringMatcher&& other) noexcept {
|
94
94
|
type_ = other.type_;
|
95
|
-
if (type_ == Type::
|
95
|
+
if (type_ == Type::kSafeRegex) {
|
96
96
|
regex_matcher_ = std::move(other.regex_matcher_);
|
97
97
|
} else {
|
98
98
|
string_matcher_ = std::move(other.string_matcher_);
|
@@ -105,7 +105,7 @@ bool StringMatcher::operator==(const StringMatcher& other) const {
|
|
105
105
|
if (type_ != other.type_ || case_sensitive_ != other.case_sensitive_) {
|
106
106
|
return false;
|
107
107
|
}
|
108
|
-
if (type_ == Type::
|
108
|
+
if (type_ == Type::kSafeRegex) {
|
109
109
|
return regex_matcher_->pattern() == other.regex_matcher_->pattern();
|
110
110
|
} else {
|
111
111
|
return string_matcher_ == other.string_matcher_;
|
@@ -114,22 +114,22 @@ bool StringMatcher::operator==(const StringMatcher& other) const {
|
|
114
114
|
|
115
115
|
bool StringMatcher::Match(absl::string_view value) const {
|
116
116
|
switch (type_) {
|
117
|
-
case Type::
|
117
|
+
case Type::kExact:
|
118
118
|
return case_sensitive_ ? value == string_matcher_
|
119
119
|
: absl::EqualsIgnoreCase(value, string_matcher_);
|
120
|
-
case StringMatcher::Type::
|
120
|
+
case StringMatcher::Type::kPrefix:
|
121
121
|
return case_sensitive_
|
122
122
|
? absl::StartsWith(value, string_matcher_)
|
123
123
|
: absl::StartsWithIgnoreCase(value, string_matcher_);
|
124
|
-
case StringMatcher::Type::
|
124
|
+
case StringMatcher::Type::kSuffix:
|
125
125
|
return case_sensitive_ ? absl::EndsWith(value, string_matcher_)
|
126
126
|
: absl::EndsWithIgnoreCase(value, string_matcher_);
|
127
|
-
case StringMatcher::Type::
|
127
|
+
case StringMatcher::Type::kContains:
|
128
128
|
return case_sensitive_
|
129
129
|
? absl::StrContains(value, string_matcher_)
|
130
130
|
: absl::StrContains(absl::AsciiStrToLower(value),
|
131
131
|
absl::AsciiStrToLower(string_matcher_));
|
132
|
-
case StringMatcher::Type::
|
132
|
+
case StringMatcher::Type::kSafeRegex:
|
133
133
|
return RE2::FullMatch(std::string(value), *regex_matcher_);
|
134
134
|
default:
|
135
135
|
return false;
|
@@ -138,19 +138,19 @@ bool StringMatcher::Match(absl::string_view value) const {
|
|
138
138
|
|
139
139
|
std::string StringMatcher::ToString() const {
|
140
140
|
switch (type_) {
|
141
|
-
case Type::
|
141
|
+
case Type::kExact:
|
142
142
|
return absl::StrFormat("StringMatcher{exact=%s%s}", string_matcher_,
|
143
143
|
case_sensitive_ ? "" : ", case_sensitive=false");
|
144
|
-
case Type::
|
144
|
+
case Type::kPrefix:
|
145
145
|
return absl::StrFormat("StringMatcher{prefix=%s%s}", string_matcher_,
|
146
146
|
case_sensitive_ ? "" : ", case_sensitive=false");
|
147
|
-
case Type::
|
147
|
+
case Type::kSuffix:
|
148
148
|
return absl::StrFormat("StringMatcher{suffix=%s%s}", string_matcher_,
|
149
149
|
case_sensitive_ ? "" : ", case_sensitive=false");
|
150
|
-
case Type::
|
150
|
+
case Type::kContains:
|
151
151
|
return absl::StrFormat("StringMatcher{contains=%s%s}", string_matcher_,
|
152
152
|
case_sensitive_ ? "" : ", case_sensitive=false");
|
153
|
-
case Type::
|
153
|
+
case Type::kSafeRegex:
|
154
154
|
return absl::StrFormat("StringMatcher{safe_regex=%s%s}",
|
155
155
|
regex_matcher_->pattern(),
|
156
156
|
case_sensitive_ ? "" : ", case_sensitive=false");
|
@@ -177,7 +177,7 @@ absl::StatusOr<HeaderMatcher> HeaderMatcher::Create(
|
|
177
177
|
}
|
178
178
|
return HeaderMatcher(name, type, std::move(string_matcher.value()),
|
179
179
|
invert_match);
|
180
|
-
} else if (type == Type::
|
180
|
+
} else if (type == Type::kRange) {
|
181
181
|
if (range_start > range_end) {
|
182
182
|
return absl::InvalidArgumentError(
|
183
183
|
"Invalid range specifier specified: end cannot be smaller than "
|
@@ -199,7 +199,7 @@ HeaderMatcher::HeaderMatcher(absl::string_view name, Type type,
|
|
199
199
|
HeaderMatcher::HeaderMatcher(absl::string_view name, int64_t range_start,
|
200
200
|
int64_t range_end, bool invert_match)
|
201
201
|
: name_(name),
|
202
|
-
type_(Type::
|
202
|
+
type_(Type::kRange),
|
203
203
|
range_start_(range_start),
|
204
204
|
range_end_(range_end),
|
205
205
|
invert_match_(invert_match) {}
|
@@ -207,7 +207,7 @@ HeaderMatcher::HeaderMatcher(absl::string_view name, int64_t range_start,
|
|
207
207
|
HeaderMatcher::HeaderMatcher(absl::string_view name, bool present_match,
|
208
208
|
bool invert_match)
|
209
209
|
: name_(name),
|
210
|
-
type_(Type::
|
210
|
+
type_(Type::kPresent),
|
211
211
|
present_match_(present_match),
|
212
212
|
invert_match_(invert_match) {}
|
213
213
|
|
@@ -216,11 +216,11 @@ HeaderMatcher::HeaderMatcher(const HeaderMatcher& other)
|
|
216
216
|
type_(other.type_),
|
217
217
|
invert_match_(other.invert_match_) {
|
218
218
|
switch (type_) {
|
219
|
-
case Type::
|
219
|
+
case Type::kRange:
|
220
220
|
range_start_ = other.range_start_;
|
221
221
|
range_end_ = other.range_end_;
|
222
222
|
break;
|
223
|
-
case Type::
|
223
|
+
case Type::kPresent:
|
224
224
|
present_match_ = other.present_match_;
|
225
225
|
break;
|
226
226
|
default:
|
@@ -233,11 +233,11 @@ HeaderMatcher& HeaderMatcher::operator=(const HeaderMatcher& other) {
|
|
233
233
|
type_ = other.type_;
|
234
234
|
invert_match_ = other.invert_match_;
|
235
235
|
switch (type_) {
|
236
|
-
case Type::
|
236
|
+
case Type::kRange:
|
237
237
|
range_start_ = other.range_start_;
|
238
238
|
range_end_ = other.range_end_;
|
239
239
|
break;
|
240
|
-
case Type::
|
240
|
+
case Type::kPresent:
|
241
241
|
present_match_ = other.present_match_;
|
242
242
|
break;
|
243
243
|
default:
|
@@ -251,11 +251,11 @@ HeaderMatcher::HeaderMatcher(HeaderMatcher&& other) noexcept
|
|
251
251
|
type_(other.type_),
|
252
252
|
invert_match_(other.invert_match_) {
|
253
253
|
switch (type_) {
|
254
|
-
case Type::
|
254
|
+
case Type::kRange:
|
255
255
|
range_start_ = other.range_start_;
|
256
256
|
range_end_ = other.range_end_;
|
257
257
|
break;
|
258
|
-
case Type::
|
258
|
+
case Type::kPresent:
|
259
259
|
present_match_ = other.present_match_;
|
260
260
|
break;
|
261
261
|
default:
|
@@ -268,11 +268,11 @@ HeaderMatcher& HeaderMatcher::operator=(HeaderMatcher&& other) noexcept {
|
|
268
268
|
type_ = other.type_;
|
269
269
|
invert_match_ = other.invert_match_;
|
270
270
|
switch (type_) {
|
271
|
-
case Type::
|
271
|
+
case Type::kRange:
|
272
272
|
range_start_ = other.range_start_;
|
273
273
|
range_end_ = other.range_end_;
|
274
274
|
break;
|
275
|
-
case Type::
|
275
|
+
case Type::kPresent:
|
276
276
|
present_match_ = other.present_match_;
|
277
277
|
break;
|
278
278
|
default:
|
@@ -286,10 +286,10 @@ bool HeaderMatcher::operator==(const HeaderMatcher& other) const {
|
|
286
286
|
if (type_ != other.type_) return false;
|
287
287
|
if (invert_match_ != other.invert_match_) return false;
|
288
288
|
switch (type_) {
|
289
|
-
case Type::
|
289
|
+
case Type::kRange:
|
290
290
|
return range_start_ == other.range_start_ &&
|
291
291
|
range_end_ == other.range_end_;
|
292
|
-
case Type::
|
292
|
+
case Type::kPresent:
|
293
293
|
return present_match_ == other.present_match_;
|
294
294
|
default:
|
295
295
|
return matcher_ == other.matcher_;
|
@@ -299,12 +299,12 @@ bool HeaderMatcher::operator==(const HeaderMatcher& other) const {
|
|
299
299
|
bool HeaderMatcher::Match(
|
300
300
|
const absl::optional<absl::string_view>& value) const {
|
301
301
|
bool match;
|
302
|
-
if (type_ == Type::
|
302
|
+
if (type_ == Type::kPresent) {
|
303
303
|
match = value.has_value() == present_match_;
|
304
304
|
} else if (!value.has_value()) {
|
305
305
|
// All other types fail to match if field is not present.
|
306
306
|
match = false;
|
307
|
-
} else if (type_ == Type::
|
307
|
+
} else if (type_ == Type::kRange) {
|
308
308
|
int64_t int_value;
|
309
309
|
match = absl::SimpleAtoi(value.value(), &int_value) &&
|
310
310
|
int_value >= range_start_ && int_value < range_end_;
|
@@ -316,19 +316,19 @@ bool HeaderMatcher::Match(
|
|
316
316
|
|
317
317
|
std::string HeaderMatcher::ToString() const {
|
318
318
|
switch (type_) {
|
319
|
-
case Type::
|
319
|
+
case Type::kRange:
|
320
320
|
return absl::StrFormat("HeaderMatcher{%s %srange=[%d, %d]}", name_,
|
321
321
|
invert_match_ ? "not " : "", range_start_,
|
322
322
|
range_end_);
|
323
|
-
case Type::
|
323
|
+
case Type::kPresent:
|
324
324
|
return absl::StrFormat("HeaderMatcher{%s %spresent=%s}", name_,
|
325
325
|
invert_match_ ? "not " : "",
|
326
326
|
present_match_ ? "true" : "false");
|
327
|
-
case Type::
|
328
|
-
case Type::
|
329
|
-
case Type::
|
330
|
-
case Type::
|
331
|
-
case Type::
|
327
|
+
case Type::kExact:
|
328
|
+
case Type::kPrefix:
|
329
|
+
case Type::kSuffix:
|
330
|
+
case Type::kSafeRegex:
|
331
|
+
case Type::kContains:
|
332
332
|
return absl::StrFormat("HeaderMatcher{%s %s%s}", name_,
|
333
333
|
invert_match_ ? "not " : "", matcher_.ToString());
|
334
334
|
default:
|
@@ -31,11 +31,11 @@ namespace grpc_core {
|
|
31
31
|
class StringMatcher {
|
32
32
|
public:
|
33
33
|
enum class Type {
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
kExact, // value stored in string_matcher_ field
|
35
|
+
kPrefix, // value stored in string_matcher_ field
|
36
|
+
kSuffix, // value stored in string_matcher_ field
|
37
|
+
kSafeRegex, // pattern stored in regex_matcher_ field
|
38
|
+
kContains, // value stored in string_matcher_ field
|
39
39
|
};
|
40
40
|
|
41
41
|
// Creates StringMatcher instance. Returns error status on failure.
|
@@ -56,10 +56,10 @@ class StringMatcher {
|
|
56
56
|
|
57
57
|
Type type() const { return type_; }
|
58
58
|
|
59
|
-
// Valid for
|
59
|
+
// Valid for kExact, kPrefix, kSuffix and kContains.
|
60
60
|
const std::string& string_matcher() const { return string_matcher_; }
|
61
61
|
|
62
|
-
// Valid for
|
62
|
+
// Valid for kSafeRegex.
|
63
63
|
RE2* regex_matcher() const { return regex_matcher_.get(); }
|
64
64
|
|
65
65
|
bool case_sensitive() const { return case_sensitive_; }
|
@@ -68,7 +68,7 @@ class StringMatcher {
|
|
68
68
|
StringMatcher(Type type, absl::string_view matcher, bool case_sensitive);
|
69
69
|
StringMatcher(std::unique_ptr<RE2> regex_matcher, bool case_sensitive);
|
70
70
|
|
71
|
-
Type type_ = Type::
|
71
|
+
Type type_ = Type::kExact;
|
72
72
|
std::string string_matcher_;
|
73
73
|
std::unique_ptr<RE2> regex_matcher_;
|
74
74
|
bool case_sensitive_ = true;
|
@@ -77,32 +77,32 @@ class StringMatcher {
|
|
77
77
|
class HeaderMatcher {
|
78
78
|
public:
|
79
79
|
enum class Type {
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
80
|
+
kExact, // value stored in StringMatcher field
|
81
|
+
kPrefix, // value stored in StringMatcher field
|
82
|
+
kSuffix, // value stored in StringMatcher field
|
83
|
+
kSafeRegex, // value stored in StringMatcher field
|
84
|
+
kContains, // value stored in StringMatcher field
|
85
|
+
kRange, // uses range_start and range_end fields
|
86
|
+
kPresent, // uses present_match field
|
87
87
|
};
|
88
88
|
|
89
89
|
// Make sure that the first five HeaderMatcher::Type enum values match up to
|
90
90
|
// the corresponding StringMatcher::Type enum values, so that it's safe to
|
91
91
|
// convert by casting when delegating to StringMatcher.
|
92
|
-
static_assert(static_cast<StringMatcher::Type>(Type::
|
93
|
-
StringMatcher::Type::
|
92
|
+
static_assert(static_cast<StringMatcher::Type>(Type::kExact) ==
|
93
|
+
StringMatcher::Type::kExact,
|
94
94
|
"");
|
95
|
-
static_assert(static_cast<StringMatcher::Type>(Type::
|
96
|
-
StringMatcher::Type::
|
95
|
+
static_assert(static_cast<StringMatcher::Type>(Type::kPrefix) ==
|
96
|
+
StringMatcher::Type::kPrefix,
|
97
97
|
"");
|
98
|
-
static_assert(static_cast<StringMatcher::Type>(Type::
|
99
|
-
StringMatcher::Type::
|
98
|
+
static_assert(static_cast<StringMatcher::Type>(Type::kSuffix) ==
|
99
|
+
StringMatcher::Type::kSuffix,
|
100
100
|
"");
|
101
|
-
static_assert(static_cast<StringMatcher::Type>(Type::
|
102
|
-
StringMatcher::Type::
|
101
|
+
static_assert(static_cast<StringMatcher::Type>(Type::kSafeRegex) ==
|
102
|
+
StringMatcher::Type::kSafeRegex,
|
103
103
|
"");
|
104
|
-
static_assert(static_cast<StringMatcher::Type>(Type::
|
105
|
-
StringMatcher::Type::
|
104
|
+
static_assert(static_cast<StringMatcher::Type>(Type::kContains) ==
|
105
|
+
StringMatcher::Type::kContains,
|
106
106
|
"");
|
107
107
|
|
108
108
|
// Creates HeaderMatcher instance. Returns error status on failure.
|
@@ -124,12 +124,12 @@ class HeaderMatcher {
|
|
124
124
|
|
125
125
|
Type type() const { return type_; }
|
126
126
|
|
127
|
-
// Valid for
|
127
|
+
// Valid for kExact, kPrefix, kSuffix and kContains.
|
128
128
|
const std::string& string_matcher() const {
|
129
129
|
return matcher_.string_matcher();
|
130
130
|
}
|
131
131
|
|
132
|
-
// Valid for
|
132
|
+
// Valid for kSafeRegex.
|
133
133
|
RE2* regex_matcher() const { return matcher_.regex_matcher(); }
|
134
134
|
|
135
135
|
bool Match(const absl::optional<absl::string_view>& value) const;
|
@@ -147,7 +147,7 @@ class HeaderMatcher {
|
|
147
147
|
HeaderMatcher(absl::string_view name, bool present_match, bool invert_match);
|
148
148
|
|
149
149
|
std::string name_;
|
150
|
-
Type type_ = Type::
|
150
|
+
Type type_ = Type::kExact;
|
151
151
|
StringMatcher matcher_;
|
152
152
|
int64_t range_start_;
|
153
153
|
int64_t range_end_;
|