grpc 1.55.0 → 1.56.0.pre3
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 +100 -68
- data/include/grpc/event_engine/event_engine.h +4 -3
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/module.modulemap +2 -0
- data/include/grpc/support/json.h +218 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +5 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +4 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +86 -104
- data/src/core/ext/filters/client_channel/client_channel.h +6 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -18
- data/src/core/ext/filters/client_channel/client_channel_internal.h +16 -21
- data/src/core/ext/filters/client_channel/config_selector.h +9 -24
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +5 -4
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +455 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +186 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +2 -7
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +52 -20
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +23 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -6
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +16 -7
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +18 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +12 -9
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +76 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +32 -39
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +4 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +52 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +14 -16
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +40 -43
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +7 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +12 -19
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +35 -33
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +29 -4
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +28 -27
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +163 -46
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +16 -1
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +10 -40
- data/src/core/ext/filters/client_channel/subchannel.cc +10 -196
- data/src/core/ext/filters/client_channel/subchannel.h +3 -43
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +5 -5
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +100 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -8
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +16 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +46 -95
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -15
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +11 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +15 -0
- data/src/core/ext/xds/certificate_provider_store.cc +4 -9
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +30 -42
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -9
- data/src/core/ext/xds/xds_api.cc +9 -6
- data/src/core/ext/xds/xds_api.h +3 -2
- data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
- data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +21 -9
- data/src/core/ext/xds/xds_bootstrap_grpc.h +5 -0
- data/src/core/ext/xds/xds_client.cc +5 -4
- data/src/core/ext/xds/xds_client_stats.h +1 -1
- data/src/core/ext/xds/xds_cluster.cc +20 -19
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +11 -8
- data/src/core/ext/xds/xds_common_types.cc +3 -1
- data/src/core/ext/xds/xds_http_fault_filter.cc +16 -13
- data/src/core/ext/xds/xds_http_fault_filter.h +2 -1
- data/src/core/ext/xds/xds_http_filters.h +4 -2
- data/src/core/ext/xds/xds_http_rbac_filter.cc +154 -67
- data/src/core/ext/xds/xds_http_rbac_filter.h +2 -1
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +15 -11
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +2 -1
- data/src/core/ext/xds/xds_lb_policy_registry.cc +22 -16
- data/src/core/ext/xds/xds_listener.cc +1 -0
- data/src/core/ext/xds/xds_route_config.cc +40 -3
- data/src/core/ext/xds/xds_routing.cc +2 -2
- data/src/core/ext/xds/xds_transport_grpc.cc +3 -1
- data/src/core/lib/avl/avl.h +5 -0
- data/src/core/lib/channel/channel_args.cc +80 -22
- data/src/core/lib/channel/channel_args.h +34 -1
- data/src/core/lib/channel/channel_trace.cc +16 -12
- data/src/core/lib/channel/channelz.cc +159 -132
- data/src/core/lib/channel/channelz.h +42 -35
- data/src/core/lib/channel/channelz_registry.cc +23 -20
- data/src/core/lib/channel/connected_channel.cc +17 -6
- data/src/core/lib/channel/promise_based_filter.cc +0 -4
- data/src/core/lib/channel/promise_based_filter.h +2 -0
- data/src/core/lib/compression/compression_internal.cc +2 -5
- data/src/core/lib/config/config_vars.cc +20 -18
- data/src/core/lib/config/config_vars.h +4 -4
- data/src/core/lib/config/load_config.cc +13 -0
- data/src/core/lib/config/load_config.h +6 -0
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/stats_data.h +1 -1
- data/src/core/lib/debug/trace.cc +24 -55
- data/src/core/lib/debug/trace.h +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +211 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
- data/src/core/lib/event_engine/default_event_engine.cc +13 -1
- data/src/core/lib/event_engine/default_event_engine_factory.cc +14 -2
- data/src/core/lib/event_engine/poller.h +2 -2
- data/src/core/lib/event_engine/posix.h +4 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -18
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +33 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +7 -8
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
- data/src/core/lib/event_engine/shim.cc +7 -1
- data/src/core/lib/event_engine/{thread_pool.cc → thread_pool/original_thread_pool.cc} +28 -25
- data/src/core/lib/event_engine/{thread_pool.h → thread_pool/original_thread_pool.h} +11 -15
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
- data/src/core/lib/event_engine/{executor/executor.h → thread_pool/thread_pool_factory.cc} +17 -15
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +489 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +249 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +166 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +108 -0
- data/src/core/lib/event_engine/windows/iocp.cc +4 -3
- data/src/core/lib/event_engine/windows/iocp.h +3 -3
- data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
- data/src/core/lib/event_engine/windows/win_socket.h +4 -4
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +11 -10
- data/src/core/lib/event_engine/windows/windows_endpoint.h +3 -2
- data/src/core/lib/event_engine/windows/windows_engine.cc +19 -17
- data/src/core/lib/event_engine/windows/windows_engine.h +6 -6
- data/src/core/lib/event_engine/windows/windows_listener.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_listener.h +3 -2
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
- data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
- data/src/core/lib/experiments/config.cc +38 -7
- data/src/core/lib/experiments/config.h +16 -0
- data/src/core/lib/experiments/experiments.cc +67 -20
- data/src/core/lib/experiments/experiments.h +27 -21
- data/src/core/lib/gpr/log_internal.h +55 -0
- data/src/core/lib/gprpp/crash.cc +10 -0
- data/src/core/lib/gprpp/crash.h +3 -0
- data/src/core/lib/gprpp/per_cpu.cc +33 -0
- data/src/core/lib/gprpp/per_cpu.h +29 -6
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +10 -8
- data/src/core/lib/iomgr/ev_apple.cc +12 -12
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +10 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +15 -1
- data/src/core/lib/iomgr/iocp_windows.cc +24 -3
- data/src/core/lib/iomgr/iocp_windows.h +11 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -2
- data/src/core/lib/iomgr/socket_windows.cc +61 -7
- data/src/core/lib/iomgr/socket_windows.h +9 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -3
- data/src/core/lib/iomgr/tcp_server_posix.cc +148 -107
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_server_windows.cc +1 -1
- data/src/core/lib/json/json.h +2 -166
- data/src/core/lib/json/json_object_loader.cc +8 -9
- data/src/core/lib/json/json_object_loader.h +25 -18
- data/src/core/lib/json/json_reader.cc +13 -6
- data/src/core/lib/json/json_util.cc +6 -11
- data/src/core/lib/json/json_writer.cc +7 -8
- data/src/core/lib/load_balancing/lb_policy.h +13 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +2 -1
- data/src/core/lib/matchers/matchers.cc +3 -4
- data/src/core/lib/matchers/matchers.h +2 -1
- data/src/core/lib/promise/activity.cc +5 -0
- data/src/core/lib/promise/activity.h +10 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/party.cc +31 -13
- data/src/core/lib/promise/party.h +11 -2
- data/src/core/lib/promise/pipe.h +9 -2
- data/src/core/lib/promise/prioritized_race.h +95 -0
- data/src/core/lib/promise/sleep.cc +2 -1
- data/src/core/lib/resolver/server_address.cc +0 -8
- data/src/core/lib/resolver/server_address.h +0 -6
- data/src/core/lib/resource_quota/memory_quota.cc +7 -7
- data/src/core/lib/resource_quota/memory_quota.h +1 -2
- data/src/core/lib/security/authorization/audit_logging.cc +98 -0
- data/src/core/lib/security/authorization/audit_logging.h +73 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -2
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +18 -1
- data/src/core/lib/security/authorization/rbac_policy.cc +36 -4
- data/src/core/lib/security/authorization/rbac_policy.h +19 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
- data/src/core/lib/security/authorization/stdout_logger.h +61 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +8 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +14 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +19 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +4 -2
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +15 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +1 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +1 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -5
- data/src/core/lib/security/util/json_util.cc +1 -0
- data/src/core/lib/service_config/service_config_call_data.h +49 -20
- data/src/core/lib/service_config/service_config_impl.cc +2 -1
- data/src/core/lib/surface/call.cc +38 -23
- data/src/core/lib/surface/completion_queue.cc +6 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +15 -12
- data/src/core/lib/transport/batch_builder.h +39 -35
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/ruby/ext/grpc/extconf.rb +8 -9
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +7 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +31 -22
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_openbsd.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +795 -795
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +18 -6
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +15 -7
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +24 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +74 -74
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +11 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +23 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +13 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +2 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +115 -133
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +57 -47
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +21 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +5 -288
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +143 -83
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +95 -183
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +71 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +33 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +162 -6
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +18 -11
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +6 -13
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -14
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_lock.c → refcount_no_threads.c} +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +77 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +218 -44
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +588 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +27 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +17 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +39 -48
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -140
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +72 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +14 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +5 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +6 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +32 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +0 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +28 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +2 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +91 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +149 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +774 -615
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +42 -10
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +11 -6
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +2 -4
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +24 -16
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +65 -18
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +37 -18
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +187 -193
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +13 -129
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +85 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +17 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +5 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -2
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
- data/third_party/cares/cares/include/ares.h +23 -1
- data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
- data/third_party/cares/cares/include/ares_rules.h +2 -2
- data/third_party/cares/cares/include/ares_version.h +3 -3
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
- data/third_party/cares/cares/src/lib/ares_data.c +16 -0
- data/third_party/cares/cares/src/lib/ares_data.h +7 -0
- data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
- data/third_party/cares/cares/src/lib/ares_init.c +97 -485
- data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
- data/third_party/cares/cares/src/lib/ares_private.h +30 -16
- data/third_party/cares/cares/src/lib/ares_process.c +55 -16
- data/third_party/cares/cares/src/lib/ares_query.c +1 -35
- data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
- data/third_party/cares/cares/src/lib/ares_send.c +5 -7
- data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
- data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
- data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
- data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
- data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
- metadata +50 -14
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -175
- data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
@@ -121,7 +121,8 @@ RefCountedPtr<ServiceConfig> ServiceConfigImpl::Create(
|
|
121
121
|
service_config->parsed_method_config_vectors_storage_.reserve(
|
122
122
|
method_configs->size());
|
123
123
|
for (size_t i = 0; i < method_configs->size(); ++i) {
|
124
|
-
const Json
|
124
|
+
const Json method_config_json =
|
125
|
+
Json::FromObject(std::move((*method_configs)[i]));
|
125
126
|
ValidationErrors::ScopedField field(
|
126
127
|
errors, absl::StrCat(".methodConfig[", i, "]"));
|
127
128
|
// Have each parser read this method config.
|
@@ -195,7 +195,7 @@ class Call : public CppImplOf<Call, grpc_call> {
|
|
195
195
|
|
196
196
|
ParentCall* GetOrCreateParentCall();
|
197
197
|
ParentCall* parent_call();
|
198
|
-
Channel* channel() {
|
198
|
+
Channel* channel() const {
|
199
199
|
GPR_DEBUG_ASSERT(channel_ != nullptr);
|
200
200
|
return channel_.get();
|
201
201
|
}
|
@@ -445,6 +445,8 @@ void Call::PrepareOutgoingInitialMetadata(const grpc_op& op,
|
|
445
445
|
}
|
446
446
|
// Ignore any te metadata key value pairs specified.
|
447
447
|
md.Remove(TeMetadata());
|
448
|
+
// Should never come from applications
|
449
|
+
md.Remove(GrpcLbClientStatsMetadata());
|
448
450
|
}
|
449
451
|
|
450
452
|
void Call::ProcessIncomingInitialMetadata(grpc_metadata_batch& md) {
|
@@ -1047,8 +1049,8 @@ void FilterStackCall::CancelWithError(grpc_error_handle error) {
|
|
1047
1049
|
|
1048
1050
|
void FilterStackCall::SetFinalStatus(grpc_error_handle error) {
|
1049
1051
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_call_error_trace)) {
|
1050
|
-
gpr_log(GPR_DEBUG, "set_final_status %s", is_client() ? "CLI" : "SVR"
|
1051
|
-
|
1052
|
+
gpr_log(GPR_DEBUG, "set_final_status %s %s", is_client() ? "CLI" : "SVR",
|
1053
|
+
StatusToString(error).c_str());
|
1052
1054
|
}
|
1053
1055
|
if (is_client()) {
|
1054
1056
|
std::string status_details;
|
@@ -1295,8 +1297,9 @@ void FilterStackCall::BatchControl::PostCompletion() {
|
|
1295
1297
|
FilterStackCall* call = call_;
|
1296
1298
|
grpc_error_handle error = batch_error_.get();
|
1297
1299
|
if (grpc_call_trace.enabled()) {
|
1298
|
-
gpr_log(GPR_DEBUG, "tag:%p batch_error=%s",
|
1299
|
-
error.ToString().c_str()
|
1300
|
+
gpr_log(GPR_DEBUG, "tag:%p batch_error=%s op:%s",
|
1301
|
+
completion_data_.notify_tag.tag, error.ToString().c_str(),
|
1302
|
+
grpc_transport_stream_op_batch_string(&op_, false).c_str());
|
1300
1303
|
}
|
1301
1304
|
|
1302
1305
|
if (op_.send_initial_metadata) {
|
@@ -1314,16 +1317,16 @@ void FilterStackCall::BatchControl::PostCompletion() {
|
|
1314
1317
|
if (op_.send_trailing_metadata) {
|
1315
1318
|
call->send_trailing_metadata_.Clear();
|
1316
1319
|
}
|
1320
|
+
if (!error.ok() && op_.recv_message && *call->receiving_buffer_ != nullptr) {
|
1321
|
+
grpc_byte_buffer_destroy(*call->receiving_buffer_);
|
1322
|
+
*call->receiving_buffer_ = nullptr;
|
1323
|
+
}
|
1317
1324
|
if (op_.recv_trailing_metadata) {
|
1318
1325
|
// propagate cancellation to any interested children
|
1319
1326
|
gpr_atm_rel_store(&call->received_final_op_atm_, 1);
|
1320
1327
|
call->PropagateCancellationToChildren();
|
1321
1328
|
error = absl::OkStatus();
|
1322
1329
|
}
|
1323
|
-
if (!error.ok() && op_.recv_message && *call->receiving_buffer_ != nullptr) {
|
1324
|
-
grpc_byte_buffer_destroy(*call->receiving_buffer_);
|
1325
|
-
*call->receiving_buffer_ = nullptr;
|
1326
|
-
}
|
1327
1330
|
batch_error_.set(absl::OkStatus());
|
1328
1331
|
|
1329
1332
|
if (completion_data_.notify_tag.is_closure) {
|
@@ -2010,6 +2013,10 @@ class PromiseBasedCall : public Call,
|
|
2010
2013
|
return failed_before_recv_message_.load(std::memory_order_relaxed);
|
2011
2014
|
}
|
2012
2015
|
|
2016
|
+
grpc_event_engine::experimental::EventEngine* event_engine() const final {
|
2017
|
+
return channel()->event_engine();
|
2018
|
+
}
|
2019
|
+
|
2013
2020
|
using Call::arena;
|
2014
2021
|
|
2015
2022
|
protected:
|
@@ -2183,7 +2190,7 @@ class PromiseBasedCall : public Call,
|
|
2183
2190
|
void StartRecvMessage(const grpc_op& op, const Completion& completion,
|
2184
2191
|
FirstPromise first,
|
2185
2192
|
PipeReceiver<MessageHandle>* receiver,
|
2186
|
-
Party::BulkSpawner& spawner);
|
2193
|
+
bool cancel_on_error, Party::BulkSpawner& spawner);
|
2187
2194
|
void StartSendMessage(const grpc_op& op, const Completion& completion,
|
2188
2195
|
PipeSender<MessageHandle>* sender,
|
2189
2196
|
Party::BulkSpawner& spawner);
|
@@ -2538,7 +2545,8 @@ template <typename FirstPromiseFactory>
|
|
2538
2545
|
void PromiseBasedCall::StartRecvMessage(
|
2539
2546
|
const grpc_op& op, const Completion& completion,
|
2540
2547
|
FirstPromiseFactory first_promise_factory,
|
2541
|
-
PipeReceiver<MessageHandle>* receiver,
|
2548
|
+
PipeReceiver<MessageHandle>* receiver, bool cancel_on_error,
|
2549
|
+
Party::BulkSpawner& spawner) {
|
2542
2550
|
if (grpc_call_trace.enabled()) {
|
2543
2551
|
gpr_log(GPR_INFO, "%s[call] Start RecvMessage: %s", DebugTag().c_str(),
|
2544
2552
|
CompletionString(completion).c_str());
|
@@ -2549,7 +2557,7 @@ void PromiseBasedCall::StartRecvMessage(
|
|
2549
2557
|
[first_promise_factory = std::move(first_promise_factory), receiver]() {
|
2550
2558
|
return Seq(first_promise_factory(), receiver->Next());
|
2551
2559
|
},
|
2552
|
-
[this,
|
2560
|
+
[this, cancel_on_error,
|
2553
2561
|
completion = AddOpToCompletion(completion, PendingOp::kReceiveMessage)](
|
2554
2562
|
NextResult<MessageHandle> result) mutable {
|
2555
2563
|
if (result.has_value()) {
|
@@ -2580,6 +2588,7 @@ void PromiseBasedCall::StartRecvMessage(
|
|
2580
2588
|
}
|
2581
2589
|
failed_before_recv_message_.store(true);
|
2582
2590
|
FailCompletion(completion);
|
2591
|
+
if (cancel_on_error) CancelWithError(absl::CancelledError());
|
2583
2592
|
*recv_message_ = nullptr;
|
2584
2593
|
} else {
|
2585
2594
|
if (grpc_call_trace.enabled()) {
|
@@ -2873,7 +2882,7 @@ void ClientPromiseBasedCall::CommitBatch(const grpc_op* ops, size_t nops,
|
|
2873
2882
|
[this]() {
|
2874
2883
|
return server_initial_metadata_.receiver.AwaitClosed();
|
2875
2884
|
},
|
2876
|
-
&server_to_client_messages_.receiver, spawner);
|
2885
|
+
&server_to_client_messages_.receiver, false, spawner);
|
2877
2886
|
break;
|
2878
2887
|
case GRPC_OP_SEND_CLOSE_FROM_CLIENT:
|
2879
2888
|
spawner.Spawn(
|
@@ -3218,14 +3227,6 @@ void ServerPromiseBasedCall::Finish(ServerMetadataHandle result) {
|
|
3218
3227
|
DebugTag().c_str(), recv_close_op_cancel_state_.ToString().c_str(),
|
3219
3228
|
result->DebugString().c_str());
|
3220
3229
|
}
|
3221
|
-
if (recv_close_op_cancel_state_.CompleteCallWithCancelledSetTo(
|
3222
|
-
result->get(GrpcCallWasCancelled()).value_or(true))) {
|
3223
|
-
FinishOpOnCompletion(&recv_close_completion_,
|
3224
|
-
PendingOp::kReceiveCloseOnServer);
|
3225
|
-
}
|
3226
|
-
if (server_initial_metadata_ != nullptr) {
|
3227
|
-
server_initial_metadata_->Close();
|
3228
|
-
}
|
3229
3230
|
const auto status =
|
3230
3231
|
result->get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN);
|
3231
3232
|
channelz::ServerNode* channelz_node = server_->channelz_node();
|
@@ -3236,6 +3237,14 @@ void ServerPromiseBasedCall::Finish(ServerMetadataHandle result) {
|
|
3236
3237
|
channelz_node->RecordCallFailed();
|
3237
3238
|
}
|
3238
3239
|
}
|
3240
|
+
if (recv_close_op_cancel_state_.CompleteCallWithCancelledSetTo(
|
3241
|
+
result->get(GrpcCallWasCancelled()).value_or(true))) {
|
3242
|
+
FinishOpOnCompletion(&recv_close_completion_,
|
3243
|
+
PendingOp::kReceiveCloseOnServer);
|
3244
|
+
}
|
3245
|
+
if (server_initial_metadata_ != nullptr) {
|
3246
|
+
server_initial_metadata_->Close();
|
3247
|
+
}
|
3239
3248
|
absl::string_view message_string;
|
3240
3249
|
if (Slice* message = result->get_pointer(GrpcMessageMetadata())) {
|
3241
3250
|
message_string = message->as_string_view();
|
@@ -3328,7 +3337,7 @@ void ServerPromiseBasedCall::CommitBatch(const grpc_op* ops, size_t nops,
|
|
3328
3337
|
}
|
3329
3338
|
StartRecvMessage(
|
3330
3339
|
op, completion, []() { return []() { return Empty{}; }; },
|
3331
|
-
client_to_server_messages_, spawner);
|
3340
|
+
client_to_server_messages_, true, spawner);
|
3332
3341
|
break;
|
3333
3342
|
case GRPC_OP_SEND_STATUS_FROM_SERVER: {
|
3334
3343
|
auto metadata = arena()->MakePooled<ServerMetadata>(arena());
|
@@ -3521,6 +3530,9 @@ grpc_call* grpc_call_from_top_element(grpc_call_element* surface_element) {
|
|
3521
3530
|
grpc_call_error grpc_call_cancel(grpc_call* call, void* reserved) {
|
3522
3531
|
GRPC_API_TRACE("grpc_call_cancel(call=%p, reserved=%p)", 2, (call, reserved));
|
3523
3532
|
GPR_ASSERT(reserved == nullptr);
|
3533
|
+
if (call == nullptr) {
|
3534
|
+
return GRPC_CALL_ERROR;
|
3535
|
+
}
|
3524
3536
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
3525
3537
|
grpc_core::ExecCtx exec_ctx;
|
3526
3538
|
grpc_core::Call::FromC(call)->CancelWithError(absl::CancelledError());
|
@@ -3536,6 +3548,9 @@ grpc_call_error grpc_call_cancel_with_status(grpc_call* c,
|
|
3536
3548
|
"c=%p, status=%d, description=%s, reserved=%p)",
|
3537
3549
|
4, (c, (int)status, description, reserved));
|
3538
3550
|
GPR_ASSERT(reserved == nullptr);
|
3551
|
+
if (c == nullptr) {
|
3552
|
+
return GRPC_CALL_ERROR;
|
3553
|
+
}
|
3539
3554
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
3540
3555
|
grpc_core::ExecCtx exec_ctx;
|
3541
3556
|
grpc_core::Call::FromC(c)->CancelWithStatus(status, description);
|
@@ -3576,7 +3591,7 @@ grpc_call_error grpc_call_start_batch(grpc_call* call, const grpc_op* ops,
|
|
3576
3591
|
"reserved=%p)",
|
3577
3592
|
5, (call, ops, (unsigned long)nops, tag, reserved));
|
3578
3593
|
|
3579
|
-
if (reserved != nullptr) {
|
3594
|
+
if (reserved != nullptr || call == nullptr) {
|
3580
3595
|
return GRPC_CALL_ERROR;
|
3581
3596
|
} else {
|
3582
3597
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
@@ -349,10 +349,14 @@ struct cq_callback_data {
|
|
349
349
|
struct grpc_completion_queue {
|
350
350
|
/// Once owning_refs drops to zero, we will destroy the cq
|
351
351
|
grpc_core::RefCount owning_refs;
|
352
|
-
|
352
|
+
/// Add the paddings to fix the false sharing
|
353
|
+
char padding_1[GPR_CACHELINE_SIZE];
|
353
354
|
gpr_mu* mu;
|
354
355
|
|
356
|
+
char padding_2[GPR_CACHELINE_SIZE];
|
355
357
|
const cq_vtable* vtable;
|
358
|
+
|
359
|
+
char padding_3[GPR_CACHELINE_SIZE];
|
356
360
|
const cq_poller_vtable* poller_vtable;
|
357
361
|
|
358
362
|
#ifndef NDEBUG
|
@@ -1231,7 +1235,7 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1231
1235
|
prev = &cqd->completed_head;
|
1232
1236
|
while ((c = reinterpret_cast<grpc_cq_completion*>(
|
1233
1237
|
prev->next & ~uintptr_t{1})) != &cqd->completed_head) {
|
1234
|
-
if (c->tag == tag) {
|
1238
|
+
if (GPR_LIKELY(c->tag == tag)) {
|
1235
1239
|
prev->next = (prev->next & uintptr_t{1}) | (c->next & ~uintptr_t{1});
|
1236
1240
|
if (c == cqd->completed_tail) {
|
1237
1241
|
cqd->completed_tail = prev;
|
@@ -23,6 +23,6 @@
|
|
23
23
|
|
24
24
|
#include <grpc/grpc.h>
|
25
25
|
|
26
|
-
const char* grpc_version_string(void) { return "
|
26
|
+
const char* grpc_version_string(void) { return "33.0.0"; }
|
27
27
|
|
28
|
-
const char* grpc_g_stands_for(void) { return "
|
28
|
+
const char* grpc_g_stands_for(void) { return "galvanized"; }
|
@@ -36,8 +36,8 @@ void BatchBuilder::PendingCompletion::CompletionCallback(
|
|
36
36
|
auto* party = pc->batch->party.get();
|
37
37
|
if (grpc_call_trace.enabled()) {
|
38
38
|
gpr_log(
|
39
|
-
GPR_DEBUG, "%
|
40
|
-
|
39
|
+
GPR_DEBUG, "%sFinish batch-component %s for %s: status=%s",
|
40
|
+
pc->batch->DebugPrefix(party).c_str(), std::string(pc->name()).c_str(),
|
41
41
|
grpc_transport_stream_op_batch_string(&pc->batch->batch, false).c_str(),
|
42
42
|
error.ToString().c_str());
|
43
43
|
}
|
@@ -71,6 +71,10 @@ BatchBuilder::Batch::Batch(grpc_transport_stream_op_batch_payload* payload,
|
|
71
71
|
|
72
72
|
BatchBuilder::Batch::~Batch() {
|
73
73
|
auto* arena = party->arena();
|
74
|
+
if (grpc_call_trace.enabled()) {
|
75
|
+
gpr_log(GPR_DEBUG, "%s[connected] [batch %p] Destroy",
|
76
|
+
Activity::current()->DebugTag().c_str(), this);
|
77
|
+
}
|
74
78
|
if (pending_receive_message != nullptr) {
|
75
79
|
arena->DeletePooled(pending_receive_message);
|
76
80
|
}
|
@@ -114,8 +118,8 @@ void BatchBuilder::FlushBatch() {
|
|
114
118
|
GPR_ASSERT(target_.has_value());
|
115
119
|
if (grpc_call_trace.enabled()) {
|
116
120
|
gpr_log(
|
117
|
-
GPR_DEBUG, "%
|
118
|
-
batch_->
|
121
|
+
GPR_DEBUG, "%sPerform transport stream op batch: %p %s",
|
122
|
+
batch_->DebugPrefix().c_str(), &batch_->batch,
|
119
123
|
grpc_transport_stream_op_batch_string(&batch_->batch, false).c_str());
|
120
124
|
}
|
121
125
|
std::exchange(batch_, nullptr)->PerformWith(*target_);
|
@@ -127,15 +131,14 @@ void BatchBuilder::Batch::PerformWith(Target target) {
|
|
127
131
|
}
|
128
132
|
|
129
133
|
ServerMetadataHandle BatchBuilder::CompleteSendServerTrailingMetadata(
|
130
|
-
ServerMetadataHandle sent_metadata, absl::Status send_result,
|
134
|
+
Batch* batch, ServerMetadataHandle sent_metadata, absl::Status send_result,
|
131
135
|
bool actually_sent) {
|
132
136
|
if (!send_result.ok()) {
|
133
137
|
if (grpc_call_trace.enabled()) {
|
134
138
|
gpr_log(GPR_DEBUG,
|
135
|
-
"%
|
136
|
-
"
|
137
|
-
|
138
|
-
send_result.ToString().c_str());
|
139
|
+
"%sSend metadata failed with error: %s, fabricating trailing "
|
140
|
+
"metadata",
|
141
|
+
batch->DebugPrefix().c_str(), send_result.ToString().c_str());
|
139
142
|
}
|
140
143
|
sent_metadata->Clear();
|
141
144
|
sent_metadata->Set(GrpcStatusMetadata(),
|
@@ -148,9 +151,9 @@ ServerMetadataHandle BatchBuilder::CompleteSendServerTrailingMetadata(
|
|
148
151
|
if (grpc_call_trace.enabled()) {
|
149
152
|
gpr_log(
|
150
153
|
GPR_DEBUG,
|
151
|
-
"%
|
152
|
-
"
|
153
|
-
|
154
|
+
"%sTagging trailing metadata with cancellation status from "
|
155
|
+
"transport: %s",
|
156
|
+
batch->DebugPrefix().c_str(),
|
154
157
|
actually_sent ? "sent => not-cancelled" : "not-sent => cancelled");
|
155
158
|
}
|
156
159
|
sent_metadata->Set(GrpcCallWasCancelled(), !actually_sent);
|
@@ -19,12 +19,14 @@
|
|
19
19
|
|
20
20
|
#include <stdint.h>
|
21
21
|
|
22
|
+
#include <initializer_list>
|
22
23
|
#include <memory>
|
23
24
|
#include <string>
|
24
25
|
#include <utility>
|
25
26
|
|
26
27
|
#include "absl/status/status.h"
|
27
28
|
#include "absl/status/statusor.h"
|
29
|
+
#include "absl/strings/str_format.h"
|
28
30
|
#include "absl/strings/string_view.h"
|
29
31
|
#include "absl/types/optional.h"
|
30
32
|
|
@@ -202,6 +204,11 @@ class BatchBuilder {
|
|
202
204
|
~Batch();
|
203
205
|
Batch(const Batch&) = delete;
|
204
206
|
Batch& operator=(const Batch&) = delete;
|
207
|
+
std::string DebugPrefix(Activity* activity = Activity::current()) const {
|
208
|
+
return absl::StrFormat("%s[connected] [batch %p] ", activity->DebugTag(),
|
209
|
+
this);
|
210
|
+
}
|
211
|
+
|
205
212
|
void IncrementRefCount() { ++refs; }
|
206
213
|
void Unref() {
|
207
214
|
if (--refs == 0) party->arena()->DeletePooled(this);
|
@@ -222,8 +229,8 @@ class BatchBuilder {
|
|
222
229
|
if (this->*field != nullptr) return this->*field;
|
223
230
|
this->*field = party->arena()->NewPooled<T>(Ref());
|
224
231
|
if (grpc_call_trace.enabled()) {
|
225
|
-
gpr_log(GPR_DEBUG, "%
|
226
|
-
|
232
|
+
gpr_log(GPR_DEBUG, "%sAdd batch closure for %s @ %s",
|
233
|
+
DebugPrefix().c_str(),
|
227
234
|
std::string((this->*field)->name()).c_str(),
|
228
235
|
(this->*field)->on_done_closure.DebugString().c_str());
|
229
236
|
}
|
@@ -273,8 +280,8 @@ class BatchBuilder {
|
|
273
280
|
// Combine send status and server metadata into a final status to report back
|
274
281
|
// to the containing call.
|
275
282
|
static ServerMetadataHandle CompleteSendServerTrailingMetadata(
|
276
|
-
|
277
|
-
bool actually_sent);
|
283
|
+
Batch* batch, ServerMetadataHandle sent_metadata,
|
284
|
+
absl::Status send_result, bool actually_sent);
|
278
285
|
|
279
286
|
grpc_transport_stream_op_batch_payload* const payload_;
|
280
287
|
absl::optional<Target> target_;
|
@@ -282,12 +289,11 @@ class BatchBuilder {
|
|
282
289
|
};
|
283
290
|
|
284
291
|
inline auto BatchBuilder::SendMessage(Target target, MessageHandle message) {
|
292
|
+
auto* batch = GetBatch(target);
|
285
293
|
if (grpc_call_trace.enabled()) {
|
286
|
-
gpr_log(GPR_DEBUG, "%
|
287
|
-
Activity::current()->DebugTag().c_str(),
|
294
|
+
gpr_log(GPR_DEBUG, "%sQueue send message: %s", batch->DebugPrefix().c_str(),
|
288
295
|
message->DebugString().c_str());
|
289
296
|
}
|
290
|
-
auto* batch = GetBatch(target);
|
291
297
|
auto* pc = batch->GetInitializedCompletion(&Batch::pending_sends);
|
292
298
|
batch->batch.on_complete = &pc->on_done_closure;
|
293
299
|
batch->batch.send_message = true;
|
@@ -299,11 +305,11 @@ inline auto BatchBuilder::SendMessage(Target target, MessageHandle message) {
|
|
299
305
|
|
300
306
|
inline auto BatchBuilder::SendInitialMetadata(
|
301
307
|
Target target, Arena::PoolPtr<grpc_metadata_batch> md) {
|
308
|
+
auto* batch = GetBatch(target);
|
302
309
|
if (grpc_call_trace.enabled()) {
|
303
|
-
gpr_log(GPR_DEBUG, "%
|
304
|
-
|
310
|
+
gpr_log(GPR_DEBUG, "%sQueue send initial metadata: %s",
|
311
|
+
batch->DebugPrefix().c_str(), md->DebugString().c_str());
|
305
312
|
}
|
306
|
-
auto* batch = GetBatch(target);
|
307
313
|
auto* pc = batch->GetInitializedCompletion(&Batch::pending_sends);
|
308
314
|
batch->batch.on_complete = &pc->on_done_closure;
|
309
315
|
batch->batch.send_initial_metadata = true;
|
@@ -318,11 +324,11 @@ inline auto BatchBuilder::SendClientInitialMetadata(
|
|
318
324
|
}
|
319
325
|
|
320
326
|
inline auto BatchBuilder::SendClientTrailingMetadata(Target target) {
|
327
|
+
auto* batch = GetBatch(target);
|
321
328
|
if (grpc_call_trace.enabled()) {
|
322
|
-
gpr_log(GPR_DEBUG, "%
|
323
|
-
|
329
|
+
gpr_log(GPR_DEBUG, "%sQueue send trailing metadata",
|
330
|
+
batch->DebugPrefix().c_str());
|
324
331
|
}
|
325
|
-
auto* batch = GetBatch(target);
|
326
332
|
auto* pc = batch->GetInitializedCompletion(&Batch::pending_sends);
|
327
333
|
batch->batch.on_complete = &pc->on_done_closure;
|
328
334
|
batch->batch.send_trailing_metadata = true;
|
@@ -342,13 +348,6 @@ inline auto BatchBuilder::SendServerInitialMetadata(
|
|
342
348
|
inline auto BatchBuilder::SendServerTrailingMetadata(
|
343
349
|
Target target, ServerMetadataHandle metadata,
|
344
350
|
bool convert_to_cancellation) {
|
345
|
-
if (grpc_call_trace.enabled()) {
|
346
|
-
gpr_log(GPR_DEBUG, "%s[connected] %s: %s",
|
347
|
-
Activity::current()->DebugTag().c_str(),
|
348
|
-
convert_to_cancellation ? "Send trailing metadata as cancellation"
|
349
|
-
: "Queue send trailing metadata",
|
350
|
-
metadata->DebugString().c_str());
|
351
|
-
}
|
352
351
|
Batch* batch;
|
353
352
|
PendingSends* pc;
|
354
353
|
if (convert_to_cancellation) {
|
@@ -368,14 +367,20 @@ inline auto BatchBuilder::SendServerTrailingMetadata(
|
|
368
367
|
payload_->send_trailing_metadata.send_trailing_metadata = metadata.get();
|
369
368
|
payload_->send_trailing_metadata.sent = &pc->trailing_metadata_sent;
|
370
369
|
}
|
370
|
+
if (grpc_call_trace.enabled()) {
|
371
|
+
gpr_log(GPR_DEBUG, "%s%s: %s", batch->DebugPrefix().c_str(),
|
372
|
+
convert_to_cancellation ? "Send trailing metadata as cancellation"
|
373
|
+
: "Queue send trailing metadata",
|
374
|
+
metadata->DebugString().c_str());
|
375
|
+
}
|
371
376
|
batch->batch.on_complete = &pc->on_done_closure;
|
372
377
|
pc->send_trailing_metadata = std::move(metadata);
|
373
|
-
auto promise =
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
378
|
+
auto promise = Map(pc->done_latch.WaitAndCopy(),
|
379
|
+
[pc, batch = batch->Ref()](absl::Status status) {
|
380
|
+
return CompleteSendServerTrailingMetadata(
|
381
|
+
batch.get(), std::move(pc->send_trailing_metadata),
|
382
|
+
std::move(status), pc->trailing_metadata_sent);
|
383
|
+
});
|
379
384
|
if (convert_to_cancellation) {
|
380
385
|
batch->PerformWith(target);
|
381
386
|
}
|
@@ -383,11 +388,10 @@ inline auto BatchBuilder::SendServerTrailingMetadata(
|
|
383
388
|
}
|
384
389
|
|
385
390
|
inline auto BatchBuilder::ReceiveMessage(Target target) {
|
391
|
+
auto* batch = GetBatch(target);
|
386
392
|
if (grpc_call_trace.enabled()) {
|
387
|
-
gpr_log(GPR_DEBUG, "%
|
388
|
-
Activity::current()->DebugTag().c_str());
|
393
|
+
gpr_log(GPR_DEBUG, "%sQueue receive message", batch->DebugPrefix().c_str());
|
389
394
|
}
|
390
|
-
auto* batch = GetBatch(target);
|
391
395
|
auto* pc = batch->GetInitializedCompletion(&Batch::pending_receive_message);
|
392
396
|
batch->batch.recv_message = true;
|
393
397
|
payload_->recv_message.recv_message_ready = &pc->on_done_closure;
|
@@ -411,11 +415,11 @@ inline auto BatchBuilder::ReceiveMessage(Target target) {
|
|
411
415
|
}
|
412
416
|
|
413
417
|
inline auto BatchBuilder::ReceiveInitialMetadata(Target target) {
|
418
|
+
auto* batch = GetBatch(target);
|
414
419
|
if (grpc_call_trace.enabled()) {
|
415
|
-
gpr_log(GPR_DEBUG, "%
|
416
|
-
|
420
|
+
gpr_log(GPR_DEBUG, "%sQueue receive initial metadata",
|
421
|
+
batch->DebugPrefix().c_str());
|
417
422
|
}
|
418
|
-
auto* batch = GetBatch(target);
|
419
423
|
auto* pc =
|
420
424
|
batch->GetInitializedCompletion(&Batch::pending_receive_initial_metadata);
|
421
425
|
batch->batch.recv_initial_metadata = true;
|
@@ -439,11 +443,11 @@ inline auto BatchBuilder::ReceiveServerInitialMetadata(Target target) {
|
|
439
443
|
}
|
440
444
|
|
441
445
|
inline auto BatchBuilder::ReceiveTrailingMetadata(Target target) {
|
446
|
+
auto* batch = GetBatch(target);
|
442
447
|
if (grpc_call_trace.enabled()) {
|
443
|
-
gpr_log(GPR_DEBUG, "%
|
444
|
-
|
448
|
+
gpr_log(GPR_DEBUG, "%sQueue receive trailing metadata",
|
449
|
+
batch->DebugPrefix().c_str());
|
445
450
|
}
|
446
|
-
auto* batch = GetBatch(target);
|
447
451
|
auto* pc = batch->GetInitializedCompletion(
|
448
452
|
&Batch::pending_receive_trailing_metadata);
|
449
453
|
batch->batch.recv_trailing_metadata = true;
|
@@ -62,7 +62,6 @@ extern void RegisterPickFirstLbPolicy(CoreConfiguration::Builder* builder);
|
|
62
62
|
extern void RegisterRoundRobinLbPolicy(CoreConfiguration::Builder* builder);
|
63
63
|
extern void RegisterWeightedRoundRobinLbPolicy(
|
64
64
|
CoreConfiguration::Builder* builder);
|
65
|
-
extern void RegisterRingHashLbPolicy(CoreConfiguration::Builder* builder);
|
66
65
|
extern void RegisterHttpProxyMapper(CoreConfiguration::Builder* builder);
|
67
66
|
#ifndef GRPC_NO_RLS
|
68
67
|
extern void RegisterRlsLbPolicy(CoreConfiguration::Builder* builder);
|
@@ -85,7 +84,6 @@ void BuildCoreConfiguration(CoreConfiguration::Builder* builder) {
|
|
85
84
|
RegisterPickFirstLbPolicy(builder);
|
86
85
|
RegisterRoundRobinLbPolicy(builder);
|
87
86
|
RegisterWeightedRoundRobinLbPolicy(builder);
|
88
|
-
RegisterRingHashLbPolicy(builder);
|
89
87
|
BuildClientChannelConfiguration(builder);
|
90
88
|
SecurityRegisterHandshakerFactories(builder);
|
91
89
|
RegisterClientAuthorityFilter(builder);
|
@@ -39,6 +39,7 @@ extern void RegisterXdsClusterResolverLbPolicy(
|
|
39
39
|
extern void RegisterXdsOverrideHostLbPolicy(
|
40
40
|
CoreConfiguration::Builder* builder);
|
41
41
|
extern void RegisterXdsWrrLocalityLbPolicy(CoreConfiguration::Builder* builder);
|
42
|
+
extern void RegisterRingHashLbPolicy(CoreConfiguration::Builder* builder);
|
42
43
|
extern void RegisterFileWatcherCertificateProvider(
|
43
44
|
CoreConfiguration::Builder* builder);
|
44
45
|
#endif
|
@@ -60,6 +61,7 @@ void RegisterExtraFilters(CoreConfiguration::Builder* builder) {
|
|
60
61
|
RegisterXdsClusterResolverLbPolicy(builder);
|
61
62
|
RegisterXdsOverrideHostLbPolicy(builder);
|
62
63
|
RegisterXdsWrrLocalityLbPolicy(builder);
|
64
|
+
RegisterRingHashLbPolicy(builder);
|
63
65
|
RegisterFileWatcherCertificateProvider(builder);
|
64
66
|
#endif
|
65
67
|
}
|
@@ -34,24 +34,23 @@ def env_unset?(name)
|
|
34
34
|
ENV[name].nil? || ENV[name].size == 0
|
35
35
|
end
|
36
36
|
|
37
|
-
def
|
38
|
-
|
37
|
+
def inherit_env_or_rbconfig(name)
|
38
|
+
ENV[name] = inherit_rbconfig(name) if env_unset?(name)
|
39
39
|
end
|
40
40
|
|
41
41
|
def inherit_rbconfig(name)
|
42
|
-
ENV[name] = RbConfig::CONFIG[name]
|
42
|
+
ENV[name] = RbConfig::CONFIG[name] || ''
|
43
43
|
end
|
44
44
|
|
45
45
|
def env_append(name, string)
|
46
|
-
ENV[name] ||= ''
|
47
46
|
ENV[name] += ' ' + string
|
48
47
|
end
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
49
|
+
inherit_env_or_rbconfig 'AR'
|
50
|
+
inherit_env_or_rbconfig 'CC'
|
51
|
+
inherit_env_or_rbconfig 'CXX'
|
52
|
+
inherit_env_or_rbconfig 'RANLIB'
|
53
|
+
inherit_env_or_rbconfig 'STRIP'
|
55
54
|
inherit_rbconfig 'CPPFLAGS'
|
56
55
|
inherit_rbconfig 'LDFLAGS'
|
57
56
|
|
@@ -73,18 +73,19 @@
|
|
73
73
|
// horrible: it has to be :-( The 'ncopy' form checks minimum and maximum
|
74
74
|
// size limits too.
|
75
75
|
|
76
|
-
int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in,
|
77
|
-
int inform, unsigned long mask) {
|
78
|
-
return ASN1_mbstring_ncopy(out, in, len, inform, mask, 0,
|
76
|
+
int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in,
|
77
|
+
ossl_ssize_t len, int inform, unsigned long mask) {
|
78
|
+
return ASN1_mbstring_ncopy(out, in, len, inform, mask, /*minsize=*/0,
|
79
|
+
/*maxsize=*/0);
|
79
80
|
}
|
80
81
|
|
81
82
|
OPENSSL_DECLARE_ERROR_REASON(ASN1, INVALID_BMPSTRING)
|
82
83
|
OPENSSL_DECLARE_ERROR_REASON(ASN1, INVALID_UNIVERSALSTRING)
|
83
84
|
OPENSSL_DECLARE_ERROR_REASON(ASN1, INVALID_UTF8STRING)
|
84
85
|
|
85
|
-
int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in,
|
86
|
-
int inform, unsigned long mask,
|
87
|
-
|
86
|
+
int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in,
|
87
|
+
ossl_ssize_t len, int inform, unsigned long mask,
|
88
|
+
ossl_ssize_t minsize, ossl_ssize_t maxsize) {
|
88
89
|
if (len == -1) {
|
89
90
|
len = strlen((const char *)in);
|
90
91
|
}
|
@@ -164,14 +165,14 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len,
|
|
164
165
|
utf8_len += cbb_get_utf8_len(c);
|
165
166
|
if (maxsize > 0 && nchar > (size_t)maxsize) {
|
166
167
|
OPENSSL_PUT_ERROR(ASN1, ASN1_R_STRING_TOO_LONG);
|
167
|
-
ERR_add_error_dataf("maxsize=%
|
168
|
+
ERR_add_error_dataf("maxsize=%zu", (size_t)maxsize);
|
168
169
|
return -1;
|
169
170
|
}
|
170
171
|
}
|
171
172
|
|
172
173
|
if (minsize > 0 && nchar < (size_t)minsize) {
|
173
174
|
OPENSSL_PUT_ERROR(ASN1, ASN1_R_STRING_TOO_SHORT);
|
174
|
-
ERR_add_error_dataf("minsize=%
|
175
|
+
ERR_add_error_dataf("minsize=%zu", (size_t)minsize);
|
175
176
|
return -1;
|
176
177
|
}
|
177
178
|
|
@@ -87,7 +87,7 @@ static const ASN1_STRING_TABLE *asn1_string_table_get(int nid);
|
|
87
87
|
// a corresponding OID. For example certificates and certificate requests.
|
88
88
|
|
89
89
|
ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in,
|
90
|
-
|
90
|
+
ossl_ssize_t len, int inform, int nid) {
|
91
91
|
ASN1_STRING *str = NULL;
|
92
92
|
int ret;
|
93
93
|
if (!out) {
|
@@ -56,8 +56,8 @@
|
|
56
56
|
*
|
57
57
|
*/
|
58
58
|
|
59
|
-
#ifndef
|
60
|
-
#define
|
59
|
+
#ifndef OPENSSL_HEADER_ASN1_INTERNAL_H
|
60
|
+
#define OPENSSL_HEADER_ASN1_INTERNAL_H
|
61
61
|
|
62
62
|
#include <time.h>
|
63
63
|
|
@@ -266,4 +266,4 @@ typedef struct ASN1_EXTERN_FUNCS_st {
|
|
266
266
|
} // extern C
|
267
267
|
#endif
|
268
268
|
|
269
|
-
#endif //
|
269
|
+
#endif // OPENSSL_HEADER_ASN1_INTERNAL_H
|
@@ -85,7 +85,7 @@ static int asn1_template_ex_d2i(ASN1_VALUE **pval, const unsigned char **in,
|
|
85
85
|
static int asn1_template_noexp_d2i(ASN1_VALUE **val, const unsigned char **in,
|
86
86
|
long len, const ASN1_TEMPLATE *tt, char opt,
|
87
87
|
CRYPTO_BUFFER *buf, int depth);
|
88
|
-
static int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont,
|
88
|
+
static int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, long len,
|
89
89
|
int utype, const ASN1_ITEM *it);
|
90
90
|
static int asn1_d2i_ex_primitive(ASN1_VALUE **pval, const unsigned char **in,
|
91
91
|
long len, const ASN1_ITEM *it, int tag,
|
@@ -749,7 +749,7 @@ err:
|
|
749
749
|
|
750
750
|
// Translate ASN1 content octets into a structure
|
751
751
|
|
752
|
-
static int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont,
|
752
|
+
static int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, long len,
|
753
753
|
int utype, const ASN1_ITEM *it) {
|
754
754
|
ASN1_VALUE **opval = NULL;
|
755
755
|
ASN1_STRING *stmp;
|
@@ -837,7 +837,14 @@ static int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
|
|
837
837
|
case V_ASN1_UTF8STRING:
|
838
838
|
case V_ASN1_OTHER:
|
839
839
|
case V_ASN1_SET:
|
840
|
-
case V_ASN1_SEQUENCE:
|
840
|
+
case V_ASN1_SEQUENCE:
|
841
|
+
// TODO(crbug.com/boringssl/412): This default case should be removed, now
|
842
|
+
// that we've resolved https://crbug.com/boringssl/561. However, it is still
|
843
|
+
// needed to support some edge cases in |ASN1_PRINTABLE|. |ASN1_PRINTABLE|
|
844
|
+
// broadly doesn't tolerate unrecognized universal tags, but except for
|
845
|
+
// eight values that map to |B_ASN1_UNKNOWN| instead of zero. See the
|
846
|
+
// X509Test.NameAttributeValues test.
|
847
|
+
default: {
|
841
848
|
CBS cbs;
|
842
849
|
CBS_init(&cbs, cont, (size_t)len);
|
843
850
|
if (utype == V_ASN1_BMPSTRING) {
|
@@ -900,9 +907,6 @@ static int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
|
|
900
907
|
}
|
901
908
|
break;
|
902
909
|
}
|
903
|
-
default:
|
904
|
-
OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_TEMPLATE);
|
905
|
-
goto err;
|
906
910
|
}
|
907
911
|
// If ASN1_ANY and NULL type fix up value
|
908
912
|
if (typ && (utype == V_ASN1_NULL)) {
|