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
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
/* -- Composite call credentials. -- */
|
38
38
|
|
39
|
-
static void composite_call_metadata_cb(void* arg,
|
39
|
+
static void composite_call_metadata_cb(void* arg, grpc_error_handle error);
|
40
40
|
|
41
41
|
namespace {
|
42
42
|
struct grpc_composite_call_credentials_metadata_context {
|
@@ -64,7 +64,7 @@ struct grpc_composite_call_credentials_metadata_context {
|
|
64
64
|
};
|
65
65
|
} // namespace
|
66
66
|
|
67
|
-
static void composite_call_metadata_cb(void* arg,
|
67
|
+
static void composite_call_metadata_cb(void* arg, grpc_error_handle error) {
|
68
68
|
grpc_composite_call_credentials_metadata_context* ctx =
|
69
69
|
static_cast<grpc_composite_call_credentials_metadata_context*>(arg);
|
70
70
|
if (error == GRPC_ERROR_NONE) {
|
@@ -91,7 +91,7 @@ static void composite_call_metadata_cb(void* arg, grpc_error* error) {
|
|
91
91
|
bool grpc_composite_call_credentials::get_request_metadata(
|
92
92
|
grpc_polling_entity* pollent, grpc_auth_metadata_context auth_md_context,
|
93
93
|
grpc_credentials_mdelem_array* md_array, grpc_closure* on_request_metadata,
|
94
|
-
|
94
|
+
grpc_error_handle* error) {
|
95
95
|
grpc_composite_call_credentials_metadata_context* ctx;
|
96
96
|
ctx = new grpc_composite_call_credentials_metadata_context(
|
97
97
|
this, pollent, auth_md_context, md_array, on_request_metadata);
|
@@ -112,7 +112,7 @@ bool grpc_composite_call_credentials::get_request_metadata(
|
|
112
112
|
}
|
113
113
|
|
114
114
|
void grpc_composite_call_credentials::cancel_get_request_metadata(
|
115
|
-
grpc_credentials_mdelem_array* md_array,
|
115
|
+
grpc_credentials_mdelem_array* md_array, grpc_error_handle error) {
|
116
116
|
for (size_t i = 0; i < inner_.size(); ++i) {
|
117
117
|
inner_[i]->cancel_get_request_metadata(md_array, GRPC_ERROR_REF(error));
|
118
118
|
}
|
@@ -83,10 +83,10 @@ class grpc_composite_call_credentials : public grpc_call_credentials {
|
|
83
83
|
grpc_auth_metadata_context context,
|
84
84
|
grpc_credentials_mdelem_array* md_array,
|
85
85
|
grpc_closure* on_request_metadata,
|
86
|
-
|
86
|
+
grpc_error_handle* error) override;
|
87
87
|
|
88
88
|
void cancel_get_request_metadata(grpc_credentials_mdelem_array* md_array,
|
89
|
-
|
89
|
+
grpc_error_handle error) override;
|
90
90
|
|
91
91
|
grpc_security_level min_security_level() const override {
|
92
92
|
return min_security_level_;
|
@@ -187,13 +187,13 @@ struct grpc_call_credentials
|
|
187
187
|
grpc_auth_metadata_context context,
|
188
188
|
grpc_credentials_mdelem_array* md_array,
|
189
189
|
grpc_closure* on_request_metadata,
|
190
|
-
|
190
|
+
grpc_error_handle* error) = 0;
|
191
191
|
|
192
192
|
// Cancels a pending asynchronous operation started by
|
193
193
|
// grpc_call_credentials_get_request_metadata() with the corresponding
|
194
194
|
// value of \a md_array.
|
195
195
|
virtual void cancel_get_request_metadata(
|
196
|
-
grpc_credentials_mdelem_array* md_array,
|
196
|
+
grpc_credentials_mdelem_array* md_array, grpc_error_handle error) = 0;
|
197
197
|
|
198
198
|
virtual grpc_security_level min_security_level() const {
|
199
199
|
return min_security_level_;
|
@@ -30,6 +30,7 @@ namespace {
|
|
30
30
|
const char* kExpectedEnvironmentId = "aws1";
|
31
31
|
|
32
32
|
const char* kRegionEnvVar = "AWS_REGION";
|
33
|
+
const char* kDefaultRegionEnvVar = "AWS_DEFAULT_REGION";
|
33
34
|
const char* kAccessKeyIdEnvVar = "AWS_ACCESS_KEY_ID";
|
34
35
|
const char* kSecretAccessKeyEnvVar = "AWS_SECRET_ACCESS_KEY";
|
35
36
|
const char* kSessionTokenEnvVar = "AWS_SESSION_TOKEN";
|
@@ -57,7 +58,7 @@ std::string UrlEncode(const absl::string_view& s) {
|
|
57
58
|
RefCountedPtr<AwsExternalAccountCredentials>
|
58
59
|
AwsExternalAccountCredentials::Create(Options options,
|
59
60
|
std::vector<std::string> scopes,
|
60
|
-
|
61
|
+
grpc_error_handle* error) {
|
61
62
|
auto creds = MakeRefCounted<AwsExternalAccountCredentials>(
|
62
63
|
std::move(options), std::move(scopes), error);
|
63
64
|
if (*error == GRPC_ERROR_NONE) {
|
@@ -68,7 +69,7 @@ AwsExternalAccountCredentials::Create(Options options,
|
|
68
69
|
}
|
69
70
|
|
70
71
|
AwsExternalAccountCredentials::AwsExternalAccountCredentials(
|
71
|
-
Options options, std::vector<std::string> scopes,
|
72
|
+
Options options, std::vector<std::string> scopes, grpc_error_handle* error)
|
72
73
|
: ExternalAccountCredentials(options, std::move(scopes)) {
|
73
74
|
audience_ = options.audience;
|
74
75
|
auto it = options.credential_source.object_value().find("environment_id");
|
@@ -121,7 +122,7 @@ AwsExternalAccountCredentials::AwsExternalAccountCredentials(
|
|
121
122
|
|
122
123
|
void AwsExternalAccountCredentials::RetrieveSubjectToken(
|
123
124
|
HTTPRequestContext* ctx, const Options& /*options*/,
|
124
|
-
std::function<void(std::string,
|
125
|
+
std::function<void(std::string, grpc_error_handle)> cb) {
|
125
126
|
if (ctx == nullptr) {
|
126
127
|
FinishRetrieveSubjectToken(
|
127
128
|
"",
|
@@ -140,6 +141,9 @@ void AwsExternalAccountCredentials::RetrieveSubjectToken(
|
|
140
141
|
|
141
142
|
void AwsExternalAccountCredentials::RetrieveRegion() {
|
142
143
|
UniquePtr<char> region_from_env(gpr_getenv(kRegionEnvVar));
|
144
|
+
if (region_from_env == nullptr) {
|
145
|
+
region_from_env = UniquePtr<char>(gpr_getenv(kDefaultRegionEnvVar));
|
146
|
+
}
|
143
147
|
if (region_from_env != nullptr) {
|
144
148
|
region_ = std::string(region_from_env.get());
|
145
149
|
if (url_.empty()) {
|
@@ -175,14 +179,14 @@ void AwsExternalAccountCredentials::RetrieveRegion() {
|
|
175
179
|
}
|
176
180
|
|
177
181
|
void AwsExternalAccountCredentials::OnRetrieveRegion(void* arg,
|
178
|
-
|
182
|
+
grpc_error_handle error) {
|
179
183
|
AwsExternalAccountCredentials* self =
|
180
184
|
static_cast<AwsExternalAccountCredentials*>(arg);
|
181
185
|
self->OnRetrieveRegionInternal(GRPC_ERROR_REF(error));
|
182
186
|
}
|
183
187
|
|
184
188
|
void AwsExternalAccountCredentials::OnRetrieveRegionInternal(
|
185
|
-
|
189
|
+
grpc_error_handle error) {
|
186
190
|
if (error != GRPC_ERROR_NONE) {
|
187
191
|
FinishRetrieveSubjectToken("", error);
|
188
192
|
return;
|
@@ -224,15 +228,15 @@ void AwsExternalAccountCredentials::RetrieveRoleName() {
|
|
224
228
|
grpc_http_request_destroy(&request.http);
|
225
229
|
}
|
226
230
|
|
227
|
-
void AwsExternalAccountCredentials::OnRetrieveRoleName(
|
228
|
-
|
231
|
+
void AwsExternalAccountCredentials::OnRetrieveRoleName(
|
232
|
+
void* arg, grpc_error_handle error) {
|
229
233
|
AwsExternalAccountCredentials* self =
|
230
234
|
static_cast<AwsExternalAccountCredentials*>(arg);
|
231
235
|
self->OnRetrieveRoleNameInternal(GRPC_ERROR_REF(error));
|
232
236
|
}
|
233
237
|
|
234
238
|
void AwsExternalAccountCredentials::OnRetrieveRoleNameInternal(
|
235
|
-
|
239
|
+
grpc_error_handle error) {
|
236
240
|
if (error != GRPC_ERROR_NONE) {
|
237
241
|
FinishRetrieveSubjectToken("", error);
|
238
242
|
return;
|
@@ -287,15 +291,15 @@ void AwsExternalAccountCredentials::RetrieveSigningKeys() {
|
|
287
291
|
grpc_http_request_destroy(&request.http);
|
288
292
|
}
|
289
293
|
|
290
|
-
void AwsExternalAccountCredentials::OnRetrieveSigningKeys(
|
291
|
-
|
294
|
+
void AwsExternalAccountCredentials::OnRetrieveSigningKeys(
|
295
|
+
void* arg, grpc_error_handle error) {
|
292
296
|
AwsExternalAccountCredentials* self =
|
293
297
|
static_cast<AwsExternalAccountCredentials*>(arg);
|
294
298
|
self->OnRetrieveSigningKeysInternal(GRPC_ERROR_REF(error));
|
295
299
|
}
|
296
300
|
|
297
301
|
void AwsExternalAccountCredentials::OnRetrieveSigningKeysInternal(
|
298
|
-
|
302
|
+
grpc_error_handle error) {
|
299
303
|
if (error != GRPC_ERROR_NONE) {
|
300
304
|
FinishRetrieveSubjectToken("", error);
|
301
305
|
return;
|
@@ -350,7 +354,7 @@ void AwsExternalAccountCredentials::OnRetrieveSigningKeysInternal(
|
|
350
354
|
}
|
351
355
|
|
352
356
|
void AwsExternalAccountCredentials::BuildSubjectToken() {
|
353
|
-
|
357
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
354
358
|
if (signer_ == nullptr) {
|
355
359
|
cred_verification_url_ = absl::StrReplaceAll(
|
356
360
|
regional_cred_verification_url_, {{"{region}", region_}});
|
@@ -396,7 +400,7 @@ void AwsExternalAccountCredentials::BuildSubjectToken() {
|
|
396
400
|
}
|
397
401
|
|
398
402
|
void AwsExternalAccountCredentials::FinishRetrieveSubjectToken(
|
399
|
-
std::string subject_token,
|
403
|
+
std::string subject_token, grpc_error_handle error) {
|
400
404
|
// Reset context
|
401
405
|
ctx_ = nullptr;
|
402
406
|
// Move object state into local variables.
|
@@ -28,31 +28,33 @@ namespace grpc_core {
|
|
28
28
|
class AwsExternalAccountCredentials final : public ExternalAccountCredentials {
|
29
29
|
public:
|
30
30
|
static RefCountedPtr<AwsExternalAccountCredentials> Create(
|
31
|
-
Options options, std::vector<std::string> scopes,
|
31
|
+
Options options, std::vector<std::string> scopes,
|
32
|
+
grpc_error_handle* error);
|
32
33
|
|
33
34
|
AwsExternalAccountCredentials(Options options,
|
34
35
|
std::vector<std::string> scopes,
|
35
|
-
|
36
|
+
grpc_error_handle* error);
|
36
37
|
|
37
38
|
private:
|
38
39
|
void RetrieveSubjectToken(
|
39
40
|
HTTPRequestContext* ctx, const Options& options,
|
40
|
-
std::function<void(std::string,
|
41
|
+
std::function<void(std::string, grpc_error_handle)> cb) override;
|
41
42
|
|
42
43
|
void RetrieveRegion();
|
43
|
-
static void OnRetrieveRegion(void* arg,
|
44
|
-
void OnRetrieveRegionInternal(
|
44
|
+
static void OnRetrieveRegion(void* arg, grpc_error_handle error);
|
45
|
+
void OnRetrieveRegionInternal(grpc_error_handle error);
|
45
46
|
|
46
47
|
void RetrieveRoleName();
|
47
|
-
static void OnRetrieveRoleName(void* arg,
|
48
|
-
void OnRetrieveRoleNameInternal(
|
48
|
+
static void OnRetrieveRoleName(void* arg, grpc_error_handle error);
|
49
|
+
void OnRetrieveRoleNameInternal(grpc_error_handle error);
|
49
50
|
|
50
51
|
void RetrieveSigningKeys();
|
51
|
-
static void OnRetrieveSigningKeys(void* arg,
|
52
|
-
void OnRetrieveSigningKeysInternal(
|
52
|
+
static void OnRetrieveSigningKeys(void* arg, grpc_error_handle error);
|
53
|
+
void OnRetrieveSigningKeysInternal(grpc_error_handle error);
|
53
54
|
|
54
55
|
void BuildSubjectToken();
|
55
|
-
void FinishRetrieveSubjectToken(std::string subject_token,
|
56
|
+
void FinishRetrieveSubjectToken(std::string subject_token,
|
57
|
+
grpc_error_handle error);
|
56
58
|
|
57
59
|
std::string audience_;
|
58
60
|
|
@@ -72,7 +74,7 @@ class AwsExternalAccountCredentials final : public ExternalAccountCredentials {
|
|
72
74
|
std::string cred_verification_url_;
|
73
75
|
|
74
76
|
HTTPRequestContext* ctx_ = nullptr;
|
75
|
-
std::function<void(std::string,
|
77
|
+
std::function<void(std::string, grpc_error_handle)> cb_ = nullptr;
|
76
78
|
};
|
77
79
|
|
78
80
|
} // namespace grpc_core
|
@@ -66,7 +66,8 @@ AwsRequestSigner::AwsRequestSigner(
|
|
66
66
|
std::string access_key_id, std::string secret_access_key, std::string token,
|
67
67
|
std::string method, std::string url, std::string region,
|
68
68
|
std::string request_payload,
|
69
|
-
std::map<std::string, std::string> additional_headers,
|
69
|
+
std::map<std::string, std::string> additional_headers,
|
70
|
+
grpc_error_handle* error)
|
70
71
|
: access_key_id_(std::move(access_key_id)),
|
71
72
|
secret_access_key_(std::move(secret_access_key)),
|
72
73
|
token_(std::move(token)),
|
@@ -45,7 +45,7 @@ class AwsRequestSigner {
|
|
45
45
|
std::string token, std::string method, std::string url,
|
46
46
|
std::string region, std::string request_payload,
|
47
47
|
std::map<std::string, std::string> additional_headers,
|
48
|
-
|
48
|
+
grpc_error_handle* error);
|
49
49
|
|
50
50
|
// This method triggers the signing process then returns the headers of the
|
51
51
|
// signed request as a map. In case there is an error, the input `error`
|
@@ -63,7 +63,8 @@ std::string UrlEncode(const absl::string_view& s) {
|
|
63
63
|
} // namespace
|
64
64
|
|
65
65
|
RefCountedPtr<ExternalAccountCredentials> ExternalAccountCredentials::Create(
|
66
|
-
const Json& json, std::vector<std::string> scopes,
|
66
|
+
const Json& json, std::vector<std::string> scopes,
|
67
|
+
grpc_error_handle* error) {
|
67
68
|
GPR_ASSERT(*error == GRPC_ERROR_NONE);
|
68
69
|
Options options;
|
69
70
|
options.type = GRPC_AUTH_JSON_TYPE_INVALID;
|
@@ -213,14 +214,14 @@ void ExternalAccountCredentials::fetch_oauth2(
|
|
213
214
|
ctx_ = new HTTPRequestContext(httpcli_context, pollent, deadline);
|
214
215
|
metadata_req_ = metadata_req;
|
215
216
|
response_cb_ = response_cb;
|
216
|
-
auto cb = [this](std::string token,
|
217
|
+
auto cb = [this](std::string token, grpc_error_handle error) {
|
217
218
|
OnRetrieveSubjectTokenInternal(token, error);
|
218
219
|
};
|
219
220
|
RetrieveSubjectToken(ctx_, options_, cb);
|
220
221
|
}
|
221
222
|
|
222
223
|
void ExternalAccountCredentials::OnRetrieveSubjectTokenInternal(
|
223
|
-
absl::string_view subject_token,
|
224
|
+
absl::string_view subject_token, grpc_error_handle error) {
|
224
225
|
if (error != GRPC_ERROR_NONE) {
|
225
226
|
FinishTokenFetch(error);
|
226
227
|
} else {
|
@@ -300,13 +301,15 @@ void ExternalAccountCredentials::ExchangeToken(
|
|
300
301
|
grpc_http_request_destroy(&request.http);
|
301
302
|
}
|
302
303
|
|
303
|
-
void ExternalAccountCredentials::OnExchangeToken(void* arg,
|
304
|
+
void ExternalAccountCredentials::OnExchangeToken(void* arg,
|
305
|
+
grpc_error_handle error) {
|
304
306
|
ExternalAccountCredentials* self =
|
305
307
|
static_cast<ExternalAccountCredentials*>(arg);
|
306
308
|
self->OnExchangeTokenInternal(GRPC_ERROR_REF(error));
|
307
309
|
}
|
308
310
|
|
309
|
-
void ExternalAccountCredentials::OnExchangeTokenInternal(
|
311
|
+
void ExternalAccountCredentials::OnExchangeTokenInternal(
|
312
|
+
grpc_error_handle error) {
|
310
313
|
if (error != GRPC_ERROR_NONE) {
|
311
314
|
FinishTokenFetch(error);
|
312
315
|
} else {
|
@@ -330,7 +333,7 @@ void ExternalAccountCredentials::OnExchangeTokenInternal(grpc_error* error) {
|
|
330
333
|
}
|
331
334
|
|
332
335
|
void ExternalAccountCredentials::ImpersenateServiceAccount() {
|
333
|
-
|
336
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
334
337
|
absl::string_view response_body(ctx_->response.body,
|
335
338
|
ctx_->response.body_length);
|
336
339
|
Json json = Json::Parse(response_body, &error);
|
@@ -389,14 +392,14 @@ void ExternalAccountCredentials::ImpersenateServiceAccount() {
|
|
389
392
|
}
|
390
393
|
|
391
394
|
void ExternalAccountCredentials::OnImpersenateServiceAccount(
|
392
|
-
void* arg,
|
395
|
+
void* arg, grpc_error_handle error) {
|
393
396
|
ExternalAccountCredentials* self =
|
394
397
|
static_cast<ExternalAccountCredentials*>(arg);
|
395
398
|
self->OnImpersenateServiceAccountInternal(GRPC_ERROR_REF(error));
|
396
399
|
}
|
397
400
|
|
398
401
|
void ExternalAccountCredentials::OnImpersenateServiceAccountInternal(
|
399
|
-
|
402
|
+
grpc_error_handle error) {
|
400
403
|
if (error != GRPC_ERROR_NONE) {
|
401
404
|
FinishTokenFetch(error);
|
402
405
|
return;
|
@@ -452,7 +455,7 @@ void ExternalAccountCredentials::OnImpersenateServiceAccountInternal(
|
|
452
455
|
FinishTokenFetch(GRPC_ERROR_NONE);
|
453
456
|
}
|
454
457
|
|
455
|
-
void ExternalAccountCredentials::FinishTokenFetch(
|
458
|
+
void ExternalAccountCredentials::FinishTokenFetch(grpc_error_handle error) {
|
456
459
|
GRPC_LOG_IF_ERROR("Fetch external account credentials access token",
|
457
460
|
GRPC_ERROR_REF(error));
|
458
461
|
// Move object state into local variables.
|
@@ -473,12 +476,12 @@ void ExternalAccountCredentials::FinishTokenFetch(grpc_error* error) {
|
|
473
476
|
|
474
477
|
grpc_call_credentials* grpc_external_account_credentials_create(
|
475
478
|
const char* json_string, const char* scopes_string) {
|
476
|
-
|
479
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
477
480
|
grpc_core::Json json = grpc_core::Json::Parse(json_string, &error);
|
478
481
|
if (error != GRPC_ERROR_NONE) {
|
479
482
|
gpr_log(GPR_ERROR,
|
480
483
|
"External account credentials creation failed. Error: %s.",
|
481
|
-
|
484
|
+
grpc_error_std_string(error).c_str());
|
482
485
|
GRPC_ERROR_UNREF(error);
|
483
486
|
return nullptr;
|
484
487
|
}
|
@@ -489,7 +492,7 @@ grpc_call_credentials* grpc_external_account_credentials_create(
|
|
489
492
|
if (error != GRPC_ERROR_NONE) {
|
490
493
|
gpr_log(GPR_ERROR,
|
491
494
|
"External account credentials creation failed. Error: %s.",
|
492
|
-
|
495
|
+
grpc_error_std_string(error).c_str());
|
493
496
|
GRPC_ERROR_UNREF(error);
|
494
497
|
return nullptr;
|
495
498
|
}
|
@@ -49,7 +49,8 @@ class ExternalAccountCredentials
|
|
49
49
|
};
|
50
50
|
|
51
51
|
static RefCountedPtr<ExternalAccountCredentials> Create(
|
52
|
-
const Json& json, std::vector<std::string> scopes,
|
52
|
+
const Json& json, std::vector<std::string> scopes,
|
53
|
+
grpc_error_handle* error);
|
53
54
|
|
54
55
|
ExternalAccountCredentials(Options options, std::vector<std::string> scopes);
|
55
56
|
~ExternalAccountCredentials() override;
|
@@ -84,7 +85,7 @@ class ExternalAccountCredentials
|
|
84
85
|
// back.
|
85
86
|
virtual void RetrieveSubjectToken(
|
86
87
|
HTTPRequestContext* ctx, const Options& options,
|
87
|
-
std::function<void(std::string,
|
88
|
+
std::function<void(std::string, grpc_error_handle)> cb) = 0;
|
88
89
|
|
89
90
|
private:
|
90
91
|
// This method implements the common token fetch logic and it will be called
|
@@ -95,17 +96,17 @@ class ExternalAccountCredentials
|
|
95
96
|
grpc_millis deadline) override;
|
96
97
|
|
97
98
|
void OnRetrieveSubjectTokenInternal(absl::string_view subject_token,
|
98
|
-
|
99
|
+
grpc_error_handle error);
|
99
100
|
|
100
101
|
void ExchangeToken(absl::string_view subject_token);
|
101
|
-
static void OnExchangeToken(void* arg,
|
102
|
-
void OnExchangeTokenInternal(
|
102
|
+
static void OnExchangeToken(void* arg, grpc_error_handle error);
|
103
|
+
void OnExchangeTokenInternal(grpc_error_handle error);
|
103
104
|
|
104
105
|
void ImpersenateServiceAccount();
|
105
|
-
static void OnImpersenateServiceAccount(void* arg,
|
106
|
-
void OnImpersenateServiceAccountInternal(
|
106
|
+
static void OnImpersenateServiceAccount(void* arg, grpc_error_handle error);
|
107
|
+
void OnImpersenateServiceAccountInternal(grpc_error_handle error);
|
107
108
|
|
108
|
-
void FinishTokenFetch(
|
109
|
+
void FinishTokenFetch(grpc_error_handle error);
|
109
110
|
|
110
111
|
Options options_;
|
111
112
|
std::vector<std::string> scopes_;
|
@@ -28,7 +28,7 @@ namespace grpc_core {
|
|
28
28
|
RefCountedPtr<FileExternalAccountCredentials>
|
29
29
|
FileExternalAccountCredentials::Create(Options options,
|
30
30
|
std::vector<std::string> scopes,
|
31
|
-
|
31
|
+
grpc_error_handle* error) {
|
32
32
|
auto creds = MakeRefCounted<FileExternalAccountCredentials>(
|
33
33
|
std::move(options), std::move(scopes), error);
|
34
34
|
if (*error == GRPC_ERROR_NONE) {
|
@@ -39,7 +39,7 @@ FileExternalAccountCredentials::Create(Options options,
|
|
39
39
|
}
|
40
40
|
|
41
41
|
FileExternalAccountCredentials::FileExternalAccountCredentials(
|
42
|
-
Options options, std::vector<std::string> scopes,
|
42
|
+
Options options, std::vector<std::string> scopes, grpc_error_handle* error)
|
43
43
|
: ExternalAccountCredentials(options, std::move(scopes)) {
|
44
44
|
auto it = options.credential_source.object_value().find("file");
|
45
45
|
if (it == options.credential_source.object_value().end()) {
|
@@ -92,7 +92,7 @@ FileExternalAccountCredentials::FileExternalAccountCredentials(
|
|
92
92
|
|
93
93
|
void FileExternalAccountCredentials::RetrieveSubjectToken(
|
94
94
|
HTTPRequestContext* /*ctx*/, const Options& /*options*/,
|
95
|
-
std::function<void(std::string,
|
95
|
+
std::function<void(std::string, grpc_error_handle)> cb) {
|
96
96
|
struct SliceWrapper {
|
97
97
|
~SliceWrapper() { grpc_slice_unref_internal(slice); }
|
98
98
|
grpc_slice slice = grpc_empty_slice();
|
@@ -100,7 +100,8 @@ void FileExternalAccountCredentials::RetrieveSubjectToken(
|
|
100
100
|
SliceWrapper content_slice;
|
101
101
|
// To retrieve the subject token, we read the file every time we make a
|
102
102
|
// request because it may have changed since the last request.
|
103
|
-
|
103
|
+
grpc_error_handle error =
|
104
|
+
grpc_load_file(file_.c_str(), 0, &content_slice.slice);
|
104
105
|
if (error != GRPC_ERROR_NONE) {
|
105
106
|
cb("", error);
|
106
107
|
return;
|
@@ -26,16 +26,17 @@ namespace grpc_core {
|
|
26
26
|
class FileExternalAccountCredentials final : public ExternalAccountCredentials {
|
27
27
|
public:
|
28
28
|
static RefCountedPtr<FileExternalAccountCredentials> Create(
|
29
|
-
Options options, std::vector<std::string> scopes,
|
29
|
+
Options options, std::vector<std::string> scopes,
|
30
|
+
grpc_error_handle* error);
|
30
31
|
|
31
32
|
FileExternalAccountCredentials(Options options,
|
32
33
|
std::vector<std::string> scopes,
|
33
|
-
|
34
|
+
grpc_error_handle* error);
|
34
35
|
|
35
36
|
private:
|
36
37
|
void RetrieveSubjectToken(
|
37
38
|
HTTPRequestContext* ctx, const Options& options,
|
38
|
-
std::function<void(std::string,
|
39
|
+
std::function<void(std::string, grpc_error_handle)> cb) override;
|
39
40
|
|
40
41
|
// Fields of credential source
|
41
42
|
std::string file_;
|