grpc 1.55.3 → 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 -70
- 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 +82 -98
- data/src/core/ext/filters/client_channel/client_channel.h +4 -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/hpack_parser.cc +543 -567
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +9 -150
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +32 -46
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +5 -18
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -15
- data/src/core/ext/transport/chttp2/transport/parsing.cc +12 -12
- 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/backoff/random_early_detection.h +0 -5
- 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 +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +1 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -33
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +7 -11
- 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 +156 -140
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -13
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +0 -21
- 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/validate_metadata.cc +22 -37
- data/src/core/lib/surface/validate_metadata.h +3 -13
- 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 -16
- 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/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +0 -176
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +0 -325
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
@@ -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;
|
@@ -21,6 +21,8 @@
|
|
21
21
|
#include "src/core/lib/surface/validate_metadata.h"
|
22
22
|
|
23
23
|
#include "absl/status/status.h"
|
24
|
+
#include "absl/strings/escaping.h"
|
25
|
+
#include "absl/strings/str_cat.h"
|
24
26
|
#include "absl/strings/string_view.h"
|
25
27
|
|
26
28
|
#include <grpc/grpc.h>
|
@@ -44,49 +46,32 @@ class LegalHeaderKeyBits : public BitSet<256> {
|
|
44
46
|
};
|
45
47
|
constexpr LegalHeaderKeyBits g_legal_header_key_bits;
|
46
48
|
|
47
|
-
|
48
|
-
|
49
|
-
|
49
|
+
GPR_ATTRIBUTE_NOINLINE
|
50
|
+
absl::Status DoesNotConformTo(absl::string_view x, const char* err_desc) {
|
51
|
+
return absl::InternalError(absl::StrCat(err_desc, ": ", x, " (hex ",
|
52
|
+
absl::BytesToHexString(x), ")"));
|
53
|
+
}
|
54
|
+
|
55
|
+
absl::Status ConformsTo(absl::string_view x, const BitSet<256>& legal_bits,
|
56
|
+
const char* err_desc) {
|
50
57
|
for (uint8_t c : x) {
|
51
58
|
if (!legal_bits.is_set(c)) {
|
52
|
-
return
|
59
|
+
return DoesNotConformTo(x, err_desc);
|
53
60
|
}
|
54
61
|
}
|
55
|
-
return
|
56
|
-
}
|
57
|
-
|
58
|
-
absl::Status UpgradeToStatus(ValidateMetadataResult result) {
|
59
|
-
if (result == ValidateMetadataResult::kOk) return absl::OkStatus();
|
60
|
-
return absl::InternalError(ValidateMetadataResultToString(result));
|
62
|
+
return absl::OkStatus();
|
61
63
|
}
|
62
|
-
|
63
64
|
} // namespace
|
64
65
|
|
65
|
-
|
66
|
+
absl::Status ValidateHeaderKeyIsLegal(absl::string_view key) {
|
66
67
|
if (key.empty()) {
|
67
|
-
return
|
68
|
+
return absl::InternalError("Metadata keys cannot be zero length");
|
68
69
|
}
|
69
70
|
if (key.size() > UINT32_MAX) {
|
70
|
-
return
|
71
|
-
|
72
|
-
return ConformsTo(key, g_legal_header_key_bits,
|
73
|
-
ValidateMetadataResult::kIllegalHeaderKey);
|
74
|
-
}
|
75
|
-
|
76
|
-
const char* ValidateMetadataResultToString(ValidateMetadataResult result) {
|
77
|
-
switch (result) {
|
78
|
-
case ValidateMetadataResult::kOk:
|
79
|
-
return "Ok";
|
80
|
-
case ValidateMetadataResult::kCannotBeZeroLength:
|
81
|
-
return "Metadata keys cannot be zero length";
|
82
|
-
case ValidateMetadataResult::kTooLong:
|
83
|
-
return "Metadata keys cannot be larger than UINT32_MAX";
|
84
|
-
case ValidateMetadataResult::kIllegalHeaderKey:
|
85
|
-
return "Illegal header key";
|
86
|
-
case ValidateMetadataResult::kIllegalHeaderValue:
|
87
|
-
return "Illegal header value";
|
71
|
+
return absl::InternalError(
|
72
|
+
"Metadata keys cannot be larger than UINT32_MAX");
|
88
73
|
}
|
89
|
-
|
74
|
+
return ConformsTo(key, g_legal_header_key_bits, "Illegal header key");
|
90
75
|
}
|
91
76
|
|
92
77
|
} // namespace grpc_core
|
@@ -97,8 +82,8 @@ static int error2int(grpc_error_handle error) {
|
|
97
82
|
}
|
98
83
|
|
99
84
|
grpc_error_handle grpc_validate_header_key_is_legal(const grpc_slice& slice) {
|
100
|
-
return grpc_core::
|
101
|
-
grpc_core::StringViewFromSlice(slice))
|
85
|
+
return grpc_core::ValidateHeaderKeyIsLegal(
|
86
|
+
grpc_core::StringViewFromSlice(slice));
|
102
87
|
}
|
103
88
|
|
104
89
|
int grpc_header_key_is_legal(grpc_slice slice) {
|
@@ -119,9 +104,9 @@ constexpr LegalHeaderNonBinValueBits g_legal_header_non_bin_value_bits;
|
|
119
104
|
|
120
105
|
grpc_error_handle grpc_validate_header_nonbin_value_is_legal(
|
121
106
|
const grpc_slice& slice) {
|
122
|
-
return grpc_core::
|
123
|
-
|
124
|
-
|
107
|
+
return grpc_core::ConformsTo(grpc_core::StringViewFromSlice(slice),
|
108
|
+
g_legal_header_non_bin_value_bits,
|
109
|
+
"Illegal header value");
|
125
110
|
}
|
126
111
|
|
127
112
|
int grpc_header_nonbin_value_is_legal(grpc_slice slice) {
|
@@ -25,6 +25,7 @@
|
|
25
25
|
|
26
26
|
#include <cstring>
|
27
27
|
|
28
|
+
#include "absl/status/status.h"
|
28
29
|
#include "absl/strings/string_view.h"
|
29
30
|
|
30
31
|
#include <grpc/slice.h>
|
@@ -34,20 +35,9 @@
|
|
34
35
|
|
35
36
|
namespace grpc_core {
|
36
37
|
|
37
|
-
|
38
|
-
kOk,
|
39
|
-
kCannotBeZeroLength,
|
40
|
-
kTooLong,
|
41
|
-
kIllegalHeaderKey,
|
42
|
-
kIllegalHeaderValue
|
43
|
-
};
|
38
|
+
absl::Status ValidateHeaderKeyIsLegal(absl::string_view key);
|
44
39
|
|
45
|
-
|
46
|
-
|
47
|
-
// Returns nullopt if the key is legal, otherwise returns an error message.
|
48
|
-
ValidateMetadataResult ValidateHeaderKeyIsLegal(absl::string_view key);
|
49
|
-
|
50
|
-
} // namespace grpc_core
|
40
|
+
}
|
51
41
|
|
52
42
|
grpc_error_handle grpc_validate_header_key_is_legal(const grpc_slice& slice);
|
53
43
|
grpc_error_handle grpc_validate_header_nonbin_value_is_legal(
|
@@ -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)) {
|
@@ -693,15 +693,18 @@ static int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cout, int *out_omit,
|
|
693
693
|
case V_ASN1_SET:
|
694
694
|
// This is not a valid |ASN1_ITEM| type, but it appears in |ASN1_TYPE|.
|
695
695
|
case V_ASN1_OTHER:
|
696
|
+
// TODO(crbug.com/boringssl/412): This default case should be removed, now
|
697
|
+
// that we've resolved https://crbug.com/boringssl/561. However, it is still
|
698
|
+
// needed to support some edge cases in |ASN1_PRINTABLE|. |ASN1_PRINTABLE|
|
699
|
+
// broadly doesn't tolerate unrecognized universal tags, but except for
|
700
|
+
// eight values that map to |B_ASN1_UNKNOWN| instead of zero. See the
|
701
|
+
// X509Test.NameAttributeValues test.
|
702
|
+
default:
|
696
703
|
// All based on ASN1_STRING and handled the same
|
697
704
|
strtmp = (ASN1_STRING *)*pval;
|
698
705
|
cont = strtmp->data;
|
699
706
|
len = strtmp->length;
|
700
707
|
break;
|
701
|
-
|
702
|
-
default:
|
703
|
-
OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_TEMPLATE);
|
704
|
-
return -1;
|
705
708
|
}
|
706
709
|
if (cout && len) {
|
707
710
|
OPENSSL_memcpy(cout, cont, len);
|
@@ -423,7 +423,7 @@ int BIO_indent(BIO *bio, unsigned indent, unsigned max_indent) {
|
|
423
423
|
}
|
424
424
|
|
425
425
|
static int print_bio(const char *str, size_t len, void *bio) {
|
426
|
-
return
|
426
|
+
return BIO_write_all((BIO *)bio, str, len);
|
427
427
|
}
|
428
428
|
|
429
429
|
void ERR_print_errors(BIO *bio) {
|
@@ -462,9 +462,11 @@ static int bio_read_all(BIO *bio, uint8_t **out, size_t *out_len,
|
|
462
462
|
OPENSSL_free(*out);
|
463
463
|
return 0;
|
464
464
|
}
|
465
|
-
|
466
|
-
|
467
|
-
|
465
|
+
size_t todo = len - done;
|
466
|
+
if (todo > INT_MAX) {
|
467
|
+
todo = INT_MAX;
|
468
|
+
}
|
469
|
+
const int n = BIO_read(bio, *out + done, (int)todo);
|
468
470
|
if (n == 0) {
|
469
471
|
*out_len = done;
|
470
472
|
return 1;
|