grpc 1.71.0 → 1.72.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +78 -75
- data/include/grpc/event_engine/memory_request.h +3 -3
- data/include/grpc/impl/channel_arg_names.h +70 -50
- data/include/grpc/support/workaround_list.h +1 -4
- data/src/core/{lib/transport → call}/call_arena_allocator.cc +1 -1
- data/src/core/{lib/transport → call}/call_arena_allocator.h +3 -3
- data/src/core/{lib/transport → call}/call_destination.h +4 -4
- data/src/core/{lib/transport → call}/call_filters.cc +2 -2
- data/src/core/{lib/transport → call}/call_filters.h +25 -6
- data/src/core/{lib/channel → call}/call_finalization.h +3 -3
- data/src/core/{lib/transport → call}/call_spine.cc +1 -1
- data/src/core/{lib/transport → call}/call_spine.h +68 -26
- data/src/core/{lib/transport → call}/call_state.cc +1 -1
- data/src/core/{lib/transport → call}/call_state.h +3 -3
- data/src/core/{lib/surface → call}/client_call.cc +9 -7
- data/src/core/{lib/surface → call}/client_call.h +4 -4
- data/src/core/{lib/transport → call}/custom_metadata.h +3 -3
- data/src/core/{lib/transport → call}/interception_chain.cc +5 -5
- data/src/core/{lib/transport → call}/interception_chain.h +7 -7
- data/src/core/{lib/transport → call}/message.cc +1 -1
- data/src/core/{lib/transport → call}/message.h +7 -3
- data/src/core/{lib/transport → call}/metadata.cc +2 -2
- data/src/core/{lib/transport → call}/metadata.h +4 -4
- data/src/core/{lib/transport → call}/metadata_batch.cc +1 -1
- data/src/core/{lib/transport → call}/metadata_batch.h +7 -7
- data/src/core/{lib/transport → call}/metadata_compression_traits.h +3 -3
- data/src/core/{lib/transport → call}/metadata_info.cc +27 -9
- data/src/core/{lib/transport → call}/metadata_info.h +4 -4
- data/src/core/{lib/transport → call}/parsed_metadata.cc +1 -1
- data/src/core/{lib/transport → call}/parsed_metadata.h +3 -3
- data/src/core/call/request_buffer.h +3 -3
- data/src/core/call/security_context.cc +125 -0
- data/src/core/call/security_context.h +114 -0
- data/src/core/{lib/surface → call}/server_call.cc +3 -3
- data/src/core/{lib/surface → call}/server_call.h +5 -5
- data/src/core/{lib/transport → call}/simple_slice_based_metadata.h +4 -4
- data/src/core/{lib/channel → call}/status_util.cc +1 -1
- data/src/core/{lib/channel → call}/status_util.h +3 -3
- data/src/core/client_channel/client_channel.cc +24 -16
- data/src/core/client_channel/client_channel.h +4 -3
- data/src/core/client_channel/client_channel_filter.cc +10 -20
- data/src/core/client_channel/client_channel_filter.h +1 -1
- data/src/core/client_channel/client_channel_internal.h +1 -1
- data/src/core/client_channel/config_selector.h +2 -2
- data/src/core/client_channel/direct_channel.cc +2 -2
- data/src/core/client_channel/dynamic_filters.cc +0 -1
- data/src/core/client_channel/dynamic_filters.h +0 -1
- data/src/core/client_channel/lb_metadata.h +1 -1
- data/src/core/client_channel/load_balanced_call_destination.cc +1 -1
- data/src/core/client_channel/load_balanced_call_destination.h +1 -1
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +43 -41
- data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -6
- data/src/core/client_channel/retry_interceptor.h +1 -1
- data/src/core/client_channel/retry_service_config.cc +1 -1
- data/src/core/client_channel/retry_service_config.h +1 -1
- data/src/core/client_channel/retry_throttle.cc +30 -34
- data/src/core/client_channel/retry_throttle.h +10 -2
- data/src/core/client_channel/subchannel.cc +7 -8
- data/src/core/client_channel/subchannel.h +1 -2
- data/src/core/client_channel/subchannel_stream_client.cc +14 -11
- data/src/core/client_channel/subchannel_stream_client.h +2 -2
- data/src/core/config/core_configuration.h +2 -2
- data/src/core/credentials/call/call_credentials.h +157 -0
- data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.cc +4 -4
- data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.h +4 -4
- data/src/core/{lib/security/credentials/composite/composite_credentials.cc → credentials/call/composite/composite_call_credentials.cc} +4 -57
- data/src/core/credentials/call/composite/composite_call_credentials.h +82 -0
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.cc +6 -6
- data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.h +4 -4
- data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.cc +3 -2
- data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.h +4 -4
- data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +3 -2
- data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.h +6 -6
- data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.h +4 -4
- data/src/core/{lib/security/util → credentials/call}/json_util.cc +1 -1
- data/src/core/{lib/security/util → credentials/call}/json_util.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.cc +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.cc +3 -2
- data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.h +3 -3
- data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.cc +4 -3
- data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.cc +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.cc +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_linux.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_no_op.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_windows.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_client_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_server_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry_init.cc +21 -17
- data/src/core/credentials/transport/composite/composite_channel_credentials.cc +68 -0
- data/src/core/{lib/security/credentials/composite/composite_credentials.h → credentials/transport/composite/composite_channel_credentials.h} +6 -51
- data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.cc +4 -26
- data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.h +5 -37
- data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.cc +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/google_default/credentials_generic.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.cc +31 -19
- data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.cc +2 -2
- data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.cc +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.h +4 -4
- data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.cc +2 -2
- data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.h +6 -6
- data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.cc +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.h +4 -4
- data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_factory.h +3 -3
- data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.cc +1 -1
- data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_match.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.h +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.cc +2 -2
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.h +3 -3
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.h +7 -7
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.h +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots.h +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_fallback.cc +1 -1
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.cc +2 -2
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.h +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_windows.cc +1 -1
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.cc +3 -3
- data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.h +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.cc +4 -4
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.h +5 -5
- data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.cc +6 -6
- data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.h +6 -6
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.cc +1 -1
- data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.h +3 -3
- data/src/core/{lib/security/credentials/credentials.cc → credentials/transport/transport_credentials.cc} +1 -3
- data/src/core/{lib/security/credentials/credentials.h → credentials/transport/transport_credentials.h} +5 -121
- data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.cc +5 -5
- data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.h +6 -6
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -5
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +2 -2
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.h +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
- data/src/core/ext/filters/rbac/rbac_filter.cc +2 -2
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +8 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +1 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +58 -57
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame.cc +89 -68
- data/src/core/ext/transport/chttp2/transport/frame.h +37 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +10 -8
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_status.h +52 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +11 -14
- data/src/core/ext/transport/chttp2/transport/parsing.cc +36 -23
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -14
- data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +1 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +65 -65
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +28 -28
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +14 -14
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +6 -6
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +133 -133
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +71 -71
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +26 -26
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +7 -7
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +216 -218
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +66 -66
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +27 -27
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +326 -328
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +103 -103
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +58 -58
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +14 -14
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +22 -24
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +29 -29
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +16 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +186 -192
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +54 -54
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +54 -54
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +21 -21
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +59 -61
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +15 -15
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +100 -100
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +34 -34
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +12 -12
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +5 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +118 -118
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +39 -39
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +19 -19
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +27 -27
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +10 -10
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +12 -14
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +41 -41
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +16 -16
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +24 -24
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +139 -139
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +46 -46
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +61 -61
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +20 -20
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +33 -33
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +14 -14
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +12 -14
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +52 -54
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +10 -10
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +620 -626
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +215 -215
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +13 -13
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +15 -15
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +7 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +16 -16
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -10
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +306 -312
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +96 -96
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +61 -61
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -27
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +19 -19
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +6 -6
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +25 -25
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +34 -34
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +9 -9
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +294 -294
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +105 -105
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +3 -3
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +23 -23
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +8 -8
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +84 -84
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +28 -28
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +87 -87
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +31 -31
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +24 -24
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +5 -5
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +130 -132
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +43 -43
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +60 -60
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +26 -26
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +6 -6
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +7 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +11 -11
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +85 -89
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +20 -20
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +80 -83
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +27 -27
- data/src/core/ext/upb-gen/google/api/http.upb.h +51 -51
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -22
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +327 -301
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +97 -85
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +1 -0
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +9 -11
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +9 -10
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +110 -113
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +25 -25
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +6 -6
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +21 -22
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +70 -72
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +17 -17
- data/src/core/ext/upb-gen/validate/validate.upb.h +368 -368
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +117 -117
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +9 -10
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +7 -7
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +12 -12
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +27 -30
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +7 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +3 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +1 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +22 -24
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +3 -3
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +98 -87
- data/src/core/{lib/security/transport → filter/auth}/auth_filters.h +8 -7
- data/src/core/{lib/security/transport → filter/auth}/client_auth_filter.cc +7 -6
- data/src/core/{lib/security/transport → filter/auth}/server_auth_filter.cc +5 -4
- data/src/core/handshaker/handshaker.cc +0 -8
- data/src/core/handshaker/security/security_handshaker.cc +1 -1
- data/src/core/handshaker/security/security_handshaker.h +1 -1
- data/src/core/lib/channel/channel_args.h +49 -30
- data/src/core/lib/channel/channel_stack.h +1 -2
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/connected_channel.cc +2 -2
- data/src/core/lib/channel/promise_based_filter.h +3 -3
- data/src/core/lib/debug/trace_flags.cc +2 -4
- data/src/core/lib/debug/trace_flags.h +1 -2
- data/src/core/lib/event_engine/default_event_engine_factory.cc +6 -6
- data/src/core/lib/event_engine/default_event_engine_factory.h +1 -1
- data/src/core/lib/event_engine/extensions/iomgr_compatible.h +39 -0
- data/src/core/lib/event_engine/extensions/supports_win_sockets.h +48 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +0 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +1 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +26 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +4 -0
- data/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc +64 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +0 -11
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +10 -2
- data/src/core/lib/event_engine/shim.cc +9 -16
- data/src/core/lib/event_engine/shim.h +11 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +15 -7
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +2 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +11 -0
- data/src/core/lib/event_engine/windows/win_socket.h +3 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +5 -10
- data/src/core/lib/event_engine/windows/windows_engine.cc +42 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +8 -2
- data/src/core/lib/event_engine/windows/windows_listener.cc +5 -6
- data/src/core/lib/event_engine/windows/windows_listener.h +9 -4
- data/src/core/lib/experiments/experiments.cc +174 -21
- data/src/core/lib/experiments/experiments.h +70 -13
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +43 -16
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +43 -8
- data/src/core/lib/iomgr/error.cc +27 -43
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +13 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +13 -0
- data/src/core/lib/iomgr/polling_entity.cc +2 -7
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
- data/src/core/lib/iomgr/socket_utils_posix.cc +22 -11
- data/src/core/lib/iomgr/socket_utils_posix.h +12 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +8 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +11 -15
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +58 -31
- data/src/core/lib/iomgr/tcp_posix.h +10 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +9 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +27 -16
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -2
- data/src/core/lib/promise/all_ok.h +31 -0
- data/src/core/lib/promise/loop.h +8 -5
- data/src/core/lib/promise/map.h +65 -2
- data/src/core/lib/promise/party.h +5 -1
- data/src/core/lib/promise/poll.h +22 -20
- data/src/core/lib/promise/promise.h +2 -2
- data/src/core/lib/promise/status_flag.h +23 -11
- data/src/core/lib/security/authorization/evaluate_args.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.h +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/slice/slice.h +6 -0
- data/src/core/lib/surface/call.cc +20 -18
- data/src/core/lib/surface/call_utils.cc +3 -3
- data/src/core/lib/surface/call_utils.h +3 -3
- data/src/core/lib/surface/channel.h +2 -2
- data/src/core/lib/surface/channel_init.h +2 -2
- data/src/core/lib/surface/completion_queue.cc +77 -17
- data/src/core/lib/surface/filter_stack_call.cc +40 -27
- data/src/core/lib/surface/filter_stack_call.h +1 -1
- data/src/core/lib/surface/init.cc +2 -3
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +27 -23
- data/src/core/lib/surface/legacy_channel.h +1 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/error_utils.cc +65 -11
- data/src/core/lib/transport/error_utils.h +2 -2
- data/src/core/lib/transport/status_conversion.cc +16 -14
- data/src/core/lib/transport/status_conversion.h +5 -4
- data/src/core/lib/transport/transport.h +5 -5
- data/src/core/lib/transport/transport_op_string.cc +1 -1
- data/src/core/load_balancing/delegating_helper.h +1 -1
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -1
- data/src/core/load_balancing/grpclb/grpclb.cc +1 -2
- data/src/core/load_balancing/pick_first/pick_first.cc +0 -955
- data/src/core/load_balancing/rls/rls.cc +31 -37
- data/src/core/load_balancing/weighted_target/weighted_target.cc +1 -1
- data/src/core/load_balancing/xds/cds.cc +3 -10
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +1 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +1 -3
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -0
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +1 -1
- data/src/core/resolver/xds/xds_dependency_manager.cc +8 -3
- data/src/core/resolver/xds/xds_resolver.cc +2 -2
- data/src/core/server/server.cc +7 -4
- data/src/core/server/server.h +1 -1
- data/src/core/server/server_call_tracer_filter.cc +1 -1
- data/src/core/server/server_config_selector.h +1 -1
- data/src/core/server/server_config_selector_filter.cc +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +5 -5
- data/src/core/service_config/service_config_channel_arg_filter.cc +1 -1
- data/src/core/telemetry/call_tracer.cc +2 -4
- data/src/core/telemetry/call_tracer.h +3 -3
- data/src/core/telemetry/metrics.cc +30 -12
- data/src/core/telemetry/metrics.h +15 -3
- data/src/core/telemetry/stats_data.cc +75 -2
- data/src/core/telemetry/stats_data.h +46 -4
- data/src/core/telemetry/tcp_tracer.h +90 -84
- data/src/core/{lib/security/context/security_context.cc → transport/auth_context.cc} +1 -96
- data/src/core/{lib/security/context/security_context.h → transport/auth_context.h} +6 -76
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/ssl_transport_security.cc +1 -1
- data/src/core/util/check_class_size.h +48 -0
- data/src/core/util/gcp_metadata_query.cc +1 -1
- data/src/core/util/http_client/httpcli.cc +3 -3
- data/src/core/util/http_client/httpcli_security_connector.cc +3 -3
- data/src/core/util/load_file.cc +26 -14
- data/src/core/util/status_helper.cc +86 -63
- data/src/core/util/status_helper.h +9 -26
- data/src/core/xds/grpc/certificate_provider_store.cc +1 -1
- data/src/core/xds/grpc/certificate_provider_store.h +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +10 -7
- data/src/core/xds/grpc/xds_certificate_provider.cc +1 -1
- data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
- data/src/core/xds/grpc/xds_client_grpc.cc +7 -6
- data/src/core/xds/grpc/xds_client_grpc.h +4 -2
- data/src/core/xds/grpc/xds_cluster.h +3 -3
- data/src/core/xds/grpc/xds_cluster_parser.cc +3 -2
- data/src/core/xds/grpc/xds_http_fault_filter.cc +1 -1
- data/src/core/xds/grpc/xds_http_filter.h +1 -1
- data/src/core/xds/grpc/xds_http_filter_registry.h +1 -1
- data/src/core/xds/grpc/xds_route_config.h +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.cc +1 -1
- data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
- data/src/core/xds/grpc/xds_routing.h +1 -1
- data/src/core/xds/grpc/xds_server_grpc.cc +60 -48
- data/src/core/xds/grpc/xds_server_grpc.h +23 -13
- data/src/core/xds/grpc/xds_server_grpc_interface.h +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +5 -5
- data/src/core/xds/grpc/xds_transport_grpc.h +5 -3
- data/src/core/xds/xds_client/lrs_client.cc +6 -5
- data/src/core/xds/xds_client/lrs_client.h +7 -7
- data/src/core/xds/xds_client/xds_bootstrap.h +16 -1
- data/src/core/xds/xds_client/xds_client.cc +25 -23
- data/src/core/xds/xds_client/xds_client.h +3 -1
- data/src/core/xds/xds_client/xds_resource_type.h +1 -2
- data/src/core/xds/xds_client/xds_transport.h +1 -1
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +20 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -25
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +3 -7
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +13 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +1 -1
- data/third_party/upb/upb/base/internal/log2.h +3 -1
- data/third_party/upb/upb/base/string_view.h +10 -0
- data/third_party/upb/upb/hash/common.c +5 -1
- data/third_party/upb/upb/json/decode.c +2 -2
- data/third_party/upb/upb/json/decode.h +0 -1
- data/third_party/upb/upb/mem/alloc.h +5 -0
- data/third_party/upb/upb/mem/arena.c +296 -142
- data/third_party/upb/upb/mem/arena.h +47 -11
- data/third_party/upb/upb/mem/arena.hpp +4 -20
- data/third_party/upb/upb/mem/internal/arena.h +4 -6
- data/third_party/upb/upb/message/accessors.h +41 -0
- data/third_party/upb/upb/message/compat.c +11 -14
- data/third_party/upb/upb/message/compat.h +4 -3
- data/third_party/upb/upb/message/copy.c +35 -30
- data/third_party/upb/upb/message/internal/accessors.h +139 -10
- data/third_party/upb/upb/message/internal/extension.c +28 -25
- data/third_party/upb/upb/message/internal/extension.h +21 -5
- data/third_party/upb/upb/message/internal/iterator.c +58 -0
- data/third_party/upb/upb/message/internal/iterator.h +29 -0
- data/third_party/upb/upb/message/internal/map.h +2 -3
- data/third_party/upb/upb/message/internal/map_sorter.h +3 -2
- data/third_party/upb/upb/message/internal/message.c +48 -29
- data/third_party/upb/upb/message/internal/message.h +154 -24
- data/third_party/upb/upb/message/map_sorter.c +20 -8
- data/third_party/upb/upb/message/message.c +90 -38
- data/third_party/upb/upb/message/message.h +58 -2
- data/third_party/upb/upb/message/value.h +9 -0
- data/third_party/upb/upb/mini_descriptor/build_enum.c +1 -1
- data/third_party/upb/upb/mini_descriptor/decode.c +97 -136
- data/third_party/upb/upb/mini_descriptor/decode.h +4 -3
- data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +1 -1
- data/third_party/upb/upb/mini_table/extension_registry.c +24 -12
- data/third_party/upb/upb/mini_table/extension_registry.h +13 -6
- data/third_party/upb/upb/mini_table/message.c +21 -13
- data/third_party/upb/upb/port/atomic.h +134 -7
- data/third_party/upb/upb/port/def.inc +140 -38
- data/third_party/upb/upb/port/undef.inc +11 -1
- data/third_party/upb/upb/reflection/def.hpp +5 -1
- data/third_party/upb/upb/reflection/def_pool.c +10 -3
- data/third_party/upb/upb/reflection/descriptor_bootstrap.h +1 -1
- data/third_party/upb/upb/reflection/file_def.c +12 -5
- data/third_party/upb/upb/reflection/internal/def_builder.c +1 -1
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message.c +19 -16
- data/third_party/upb/upb/reflection/message.h +3 -1
- data/third_party/upb/upb/text/encode.c +1 -13
- data/third_party/upb/upb/text/internal/encode.c +25 -6
- data/third_party/upb/upb/text/internal/encode.h +4 -0
- data/third_party/upb/upb/wire/decode.c +60 -45
- data/third_party/upb/upb/wire/decode.h +4 -2
- data/third_party/upb/upb/wire/encode.c +77 -42
- data/third_party/upb/upb/wire/encode.h +2 -0
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +18 -20
- data/third_party/upb/upb/wire/internal/decoder.h +4 -11
- data/third_party/utf8_range/utf8_range.c +15 -275
- data/third_party/utf8_range/utf8_range_neon.inc +117 -0
- data/third_party/utf8_range/utf8_range_sse.inc +272 -0
- data/third_party/zlib/deflate.c +40 -15
- data/third_party/zlib/deflate.h +33 -2
- data/third_party/zlib/gzguts.h +2 -6
- data/third_party/zlib/inflate.c +1 -1
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/inftrees.h +2 -2
- data/third_party/zlib/trees.c +18 -4
- data/third_party/zlib/zconf.h +1 -9
- data/third_party/zlib/zlib.h +12 -12
- data/third_party/zlib/zutil.h +4 -25
- metadata +155 -145
- data/include/grpc/grpc_cronet.h +0 -37
- data/src/core/lib/transport/http2_errors.h +0 -43
- data/third_party/upb/upb/message/internal/compare_unknown.c +0 -289
- data/third_party/upb/upb/message/internal/compare_unknown.h +0 -49
@@ -91,6 +91,31 @@ struct IsRawPointerTagged<T,
|
|
91
91
|
absl::void_t<typename T::RawPointerChannelArgTag>> {
|
92
92
|
static constexpr bool kValue = true;
|
93
93
|
};
|
94
|
+
|
95
|
+
// Define a check for shared_ptr supported types, which must extend
|
96
|
+
// enable_shared_from_this.
|
97
|
+
template <typename T>
|
98
|
+
struct SupportedSharedPtrType
|
99
|
+
: std::integral_constant<
|
100
|
+
bool, std::is_base_of<std::enable_shared_from_this<T>, T>::value> {};
|
101
|
+
template <>
|
102
|
+
struct SupportedSharedPtrType<grpc_event_engine::experimental::EventEngine>
|
103
|
+
: std::true_type {};
|
104
|
+
|
105
|
+
// Specialization for shared_ptr
|
106
|
+
// Incurs an allocation because shared_ptr.release is not a thing.
|
107
|
+
template <typename T>
|
108
|
+
struct is_shared_ptr : std::false_type {};
|
109
|
+
template <typename T>
|
110
|
+
struct is_shared_ptr<std::shared_ptr<T>> : std::true_type {};
|
111
|
+
|
112
|
+
template <typename T, typename = void>
|
113
|
+
struct has_channel_args_compare : std::false_type {};
|
114
|
+
template <typename T>
|
115
|
+
struct has_channel_args_compare<
|
116
|
+
T, absl::void_t<decltype(T::ChannelArgsCompare(std::declval<const T*>(),
|
117
|
+
std::declval<const T*>()))>>
|
118
|
+
: std::true_type {};
|
94
119
|
} // namespace channel_args_detail
|
95
120
|
|
96
121
|
// Specialization for ref-counted pointers.
|
@@ -133,25 +158,9 @@ struct ChannelArgTypeTraits<
|
|
133
158
|
};
|
134
159
|
};
|
135
160
|
|
136
|
-
// Define a check for shared_ptr supported types, which must extend
|
137
|
-
// enable_shared_from_this.
|
138
161
|
template <typename T>
|
139
|
-
struct
|
140
|
-
|
141
|
-
bool, std::is_base_of<std::enable_shared_from_this<T>, T>::value> {};
|
142
|
-
template <>
|
143
|
-
struct SupportedSharedPtrType<grpc_event_engine::experimental::EventEngine>
|
144
|
-
: std::true_type {};
|
145
|
-
|
146
|
-
// Specialization for shared_ptr
|
147
|
-
// Incurs an allocation because shared_ptr.release is not a thing.
|
148
|
-
template <typename T>
|
149
|
-
struct is_shared_ptr : std::false_type {};
|
150
|
-
template <typename T>
|
151
|
-
struct is_shared_ptr<std::shared_ptr<T>> : std::true_type {};
|
152
|
-
template <typename T>
|
153
|
-
struct ChannelArgTypeTraits<T,
|
154
|
-
absl::enable_if_t<is_shared_ptr<T>::value, void>> {
|
162
|
+
struct ChannelArgTypeTraits<
|
163
|
+
T, absl::enable_if_t<channel_args_detail::is_shared_ptr<T>::value, void>> {
|
155
164
|
static void* TakeUnownedPointer(T* p) { return p; }
|
156
165
|
static const grpc_arg_pointer_vtable* VTable() {
|
157
166
|
static const grpc_arg_pointer_vtable tbl = {
|
@@ -161,8 +170,15 @@ struct ChannelArgTypeTraits<T,
|
|
161
170
|
[](void* p) { delete static_cast<T*>(p); },
|
162
171
|
// compare
|
163
172
|
[](void* p1, void* p2) {
|
164
|
-
|
165
|
-
|
173
|
+
if constexpr (channel_args_detail::has_channel_args_compare<
|
174
|
+
typename T::element_type>::value) {
|
175
|
+
return T::element_type::ChannelArgsCompare(
|
176
|
+
static_cast<const T*>(p1)->get(),
|
177
|
+
static_cast<const T*>(p2)->get());
|
178
|
+
} else {
|
179
|
+
return QsortCompare(static_cast<const T*>(p1)->get(),
|
180
|
+
static_cast<const T*>(p2)->get());
|
181
|
+
}
|
166
182
|
},
|
167
183
|
};
|
168
184
|
return &tbl;
|
@@ -209,9 +225,10 @@ struct GetObjectImpl;
|
|
209
225
|
// std::shared_ptr implementation
|
210
226
|
template <typename T>
|
211
227
|
struct GetObjectImpl<
|
212
|
-
T,
|
213
|
-
|
214
|
-
|
228
|
+
T,
|
229
|
+
absl::enable_if_t<!ChannelArgPointerShouldBeConst<T>::kValue &&
|
230
|
+
channel_args_detail::SupportedSharedPtrType<T>::value,
|
231
|
+
void>> {
|
215
232
|
using Result = T*;
|
216
233
|
using ReffedResult = std::shared_ptr<T>;
|
217
234
|
using StoredType = std::shared_ptr<T>*;
|
@@ -232,9 +249,10 @@ struct GetObjectImpl<
|
|
232
249
|
// RefCountedPtr
|
233
250
|
template <typename T>
|
234
251
|
struct GetObjectImpl<
|
235
|
-
T, absl::enable_if_t
|
236
|
-
|
237
|
-
|
252
|
+
T, absl::enable_if_t<
|
253
|
+
!ChannelArgPointerShouldBeConst<T>::kValue &&
|
254
|
+
!channel_args_detail::SupportedSharedPtrType<T>::value,
|
255
|
+
void>> {
|
238
256
|
using Result = T*;
|
239
257
|
using ReffedResult = RefCountedPtr<T>;
|
240
258
|
using StoredType = Result;
|
@@ -252,9 +270,10 @@ struct GetObjectImpl<
|
|
252
270
|
|
253
271
|
template <typename T>
|
254
272
|
struct GetObjectImpl<
|
255
|
-
T, absl::enable_if_t<
|
256
|
-
|
257
|
-
|
273
|
+
T, absl::enable_if_t<
|
274
|
+
ChannelArgPointerShouldBeConst<T>::kValue &&
|
275
|
+
!channel_args_detail::SupportedSharedPtrType<T>::value,
|
276
|
+
void>> {
|
258
277
|
using Result = const T*;
|
259
278
|
using ReffedResult = RefCountedPtr<const T>;
|
260
279
|
using StoredType = Result;
|
@@ -469,7 +488,7 @@ class ChannelArgs {
|
|
469
488
|
decltype(ChannelArgTypeTraits<std::shared_ptr<T>>::VTable())>::value,
|
470
489
|
ChannelArgs>
|
471
490
|
Set(absl::string_view name, std::shared_ptr<T> value) const {
|
472
|
-
static_assert(SupportedSharedPtrType<T>::value,
|
491
|
+
static_assert(channel_args_detail::SupportedSharedPtrType<T>::value,
|
473
492
|
"Type T must extend std::enable_shared_from_this to be added "
|
474
493
|
"into ChannelArgs as a shared_ptr<T>");
|
475
494
|
auto* store_value = new std::shared_ptr<T>(value);
|
@@ -81,7 +81,6 @@ struct grpc_channel_element_args {
|
|
81
81
|
struct grpc_call_element_args {
|
82
82
|
grpc_call_stack* call_stack;
|
83
83
|
const void* server_transport_data;
|
84
|
-
const grpc_slice& path;
|
85
84
|
gpr_cycle_counter start_time; // Note: not populated in subchannel stack.
|
86
85
|
grpc_core::Timestamp deadline;
|
87
86
|
grpc_core::Arena* arena;
|
@@ -198,7 +197,7 @@ struct grpc_channel_stack {
|
|
198
197
|
}
|
199
198
|
|
200
199
|
grpc_core::ManualConstructor<
|
201
|
-
grpc_core::GlobalStatsPluginRegistry::StatsPluginGroup
|
200
|
+
std::shared_ptr<grpc_core::GlobalStatsPluginRegistry::StatsPluginGroup>>
|
202
201
|
stats_plugin_group;
|
203
202
|
|
204
203
|
// Minimal infrastructure to act like a RefCounted thing without converting
|
@@ -33,6 +33,7 @@
|
|
33
33
|
#include "absl/container/flat_hash_map.h"
|
34
34
|
#include "absl/status/status.h"
|
35
35
|
#include "absl/strings/str_cat.h"
|
36
|
+
#include "src/core/call/metadata_batch.h"
|
36
37
|
#include "src/core/lib/channel/channel_fwd.h"
|
37
38
|
#include "src/core/lib/channel/channel_stack.h"
|
38
39
|
#include "src/core/lib/debug/trace.h"
|
@@ -43,7 +44,6 @@
|
|
43
44
|
#include "src/core/lib/promise/poll.h"
|
44
45
|
#include "src/core/lib/surface/channel_stack_type.h"
|
45
46
|
#include "src/core/lib/transport/error_utils.h"
|
46
|
-
#include "src/core/lib/transport/metadata_batch.h"
|
47
47
|
#include "src/core/lib/transport/transport.h"
|
48
48
|
#include "src/core/util/no_destruct.h"
|
49
49
|
#include "src/core/util/sync.h"
|
@@ -34,8 +34,9 @@
|
|
34
34
|
#include "absl/log/check.h"
|
35
35
|
#include "absl/status/status.h"
|
36
36
|
#include "absl/status/statusor.h"
|
37
|
+
#include "src/core/call/call_finalization.h"
|
38
|
+
#include "src/core/call/metadata_batch.h"
|
37
39
|
#include "src/core/config/core_configuration.h"
|
38
|
-
#include "src/core/lib/channel/call_finalization.h"
|
39
40
|
#include "src/core/lib/channel/channel_args.h"
|
40
41
|
#include "src/core/lib/channel/channel_fwd.h"
|
41
42
|
#include "src/core/lib/channel/channel_stack.h"
|
@@ -67,7 +68,6 @@
|
|
67
68
|
#include "src/core/lib/surface/call.h"
|
68
69
|
#include "src/core/lib/surface/channel_stack_type.h"
|
69
70
|
#include "src/core/lib/transport/error_utils.h"
|
70
|
-
#include "src/core/lib/transport/metadata_batch.h"
|
71
71
|
#include "src/core/lib/transport/transport.h"
|
72
72
|
#include "src/core/util/alloc.h"
|
73
73
|
#include "src/core/util/debug_location.h"
|
@@ -40,9 +40,11 @@
|
|
40
40
|
#include "absl/meta/type_traits.h"
|
41
41
|
#include "absl/status/status.h"
|
42
42
|
#include "absl/strings/string_view.h"
|
43
|
+
#include "src/core/call/call_filters.h"
|
44
|
+
#include "src/core/call/call_finalization.h"
|
45
|
+
#include "src/core/call/metadata_batch.h"
|
43
46
|
#include "src/core/filter/blackboard.h"
|
44
47
|
#include "src/core/filter/filter_args.h"
|
45
|
-
#include "src/core/lib/channel/call_finalization.h"
|
46
48
|
#include "src/core/lib/channel/channel_args.h"
|
47
49
|
#include "src/core/lib/channel/channel_fwd.h"
|
48
50
|
#include "src/core/lib/channel/channel_stack.h"
|
@@ -65,9 +67,7 @@
|
|
65
67
|
#include "src/core/lib/resource_quota/arena.h"
|
66
68
|
#include "src/core/lib/slice/slice_buffer.h"
|
67
69
|
#include "src/core/lib/surface/call.h"
|
68
|
-
#include "src/core/lib/transport/call_filters.h"
|
69
70
|
#include "src/core/lib/transport/error_utils.h"
|
70
|
-
#include "src/core/lib/transport/metadata_batch.h"
|
71
71
|
#include "src/core/lib/transport/transport.h"
|
72
72
|
#include "src/core/util/debug_location.h"
|
73
73
|
#include "src/core/util/match.h"
|
@@ -37,7 +37,7 @@ DebugOnlyTraceFlag fd_trace_trace(false, "fd_trace");
|
|
37
37
|
DebugOnlyTraceFlag lb_policy_refcount_trace(false, "lb_policy_refcount");
|
38
38
|
DebugOnlyTraceFlag party_state_trace(false, "party_state");
|
39
39
|
DebugOnlyTraceFlag pending_tags_trace(false, "pending_tags");
|
40
|
-
DebugOnlyTraceFlag
|
40
|
+
DebugOnlyTraceFlag http2_ph2_transport_trace(false, "http2_ph2_transport");
|
41
41
|
DebugOnlyTraceFlag polling_trace(false, "polling");
|
42
42
|
DebugOnlyTraceFlag polling_api_trace(false, "polling_api");
|
43
43
|
DebugOnlyTraceFlag promise_primitives_trace(false, "promise_primitives");
|
@@ -69,7 +69,6 @@ TraceFlag client_channel_lb_call_trace(false, "client_channel_lb_call");
|
|
69
69
|
TraceFlag client_idle_filter_trace(false, "client_idle_filter");
|
70
70
|
TraceFlag compression_trace(false, "compression");
|
71
71
|
TraceFlag connectivity_state_trace(false, "connectivity_state");
|
72
|
-
TraceFlag cronet_trace(false, "cronet");
|
73
72
|
TraceFlag dns_resolver_trace(false, "dns_resolver");
|
74
73
|
TraceFlag environment_autodetect_trace(false, "environment_autodetect");
|
75
74
|
TraceFlag event_engine_trace(false, "event_engine");
|
@@ -153,7 +152,6 @@ const absl::flat_hash_map<std::string, TraceFlag*>& GetAllTraceFlags() {
|
|
153
152
|
{"client_idle_filter", &client_idle_filter_trace},
|
154
153
|
{"compression", &compression_trace},
|
155
154
|
{"connectivity_state", &connectivity_state_trace},
|
156
|
-
{"cronet", &cronet_trace},
|
157
155
|
{"dns_resolver", &dns_resolver_trace},
|
158
156
|
{"environment_autodetect", &environment_autodetect_trace},
|
159
157
|
{"event_engine", &event_engine_trace},
|
@@ -227,7 +225,7 @@ const absl::flat_hash_map<std::string, TraceFlag*>& GetAllTraceFlags() {
|
|
227
225
|
{"lb_policy_refcount", &lb_policy_refcount_trace},
|
228
226
|
{"party_state", &party_state_trace},
|
229
227
|
{"pending_tags", &pending_tags_trace},
|
230
|
-
{"
|
228
|
+
{"http2_ph2_transport", &http2_ph2_transport_trace},
|
231
229
|
{"polling", &polling_trace},
|
232
230
|
{"polling_api", &polling_api_trace},
|
233
231
|
{"promise_primitives", &promise_primitives_trace},
|
@@ -37,7 +37,7 @@ extern DebugOnlyTraceFlag fd_trace_trace;
|
|
37
37
|
extern DebugOnlyTraceFlag lb_policy_refcount_trace;
|
38
38
|
extern DebugOnlyTraceFlag party_state_trace;
|
39
39
|
extern DebugOnlyTraceFlag pending_tags_trace;
|
40
|
-
extern DebugOnlyTraceFlag
|
40
|
+
extern DebugOnlyTraceFlag http2_ph2_transport_trace;
|
41
41
|
extern DebugOnlyTraceFlag polling_trace;
|
42
42
|
extern DebugOnlyTraceFlag polling_api_trace;
|
43
43
|
extern DebugOnlyTraceFlag promise_primitives_trace;
|
@@ -68,7 +68,6 @@ extern TraceFlag client_channel_lb_call_trace;
|
|
68
68
|
extern TraceFlag client_idle_filter_trace;
|
69
69
|
extern TraceFlag compression_trace;
|
70
70
|
extern TraceFlag connectivity_state_trace;
|
71
|
-
extern TraceFlag cronet_trace;
|
72
71
|
extern TraceFlag dns_resolver_trace;
|
73
72
|
extern TraceFlag environment_autodetect_trace;
|
74
73
|
extern TraceFlag event_engine_trace;
|
@@ -24,8 +24,8 @@
|
|
24
24
|
|
25
25
|
namespace grpc_event_engine::experimental {
|
26
26
|
|
27
|
-
std::
|
28
|
-
return std::
|
27
|
+
std::shared_ptr<EventEngine> DefaultEventEngineFactory() {
|
28
|
+
return std::make_shared<WindowsEventEngine>();
|
29
29
|
}
|
30
30
|
|
31
31
|
} // namespace grpc_event_engine::experimental
|
@@ -34,8 +34,8 @@ std::unique_ptr<EventEngine> DefaultEventEngineFactory() {
|
|
34
34
|
|
35
35
|
namespace grpc_event_engine::experimental {
|
36
36
|
|
37
|
-
std::
|
38
|
-
return std::
|
37
|
+
std::shared_ptr<EventEngine> DefaultEventEngineFactory() {
|
38
|
+
return std::make_shared<CFEventEngine>();
|
39
39
|
}
|
40
40
|
|
41
41
|
} // namespace grpc_event_engine::experimental
|
@@ -44,8 +44,8 @@ std::unique_ptr<EventEngine> DefaultEventEngineFactory() {
|
|
44
44
|
|
45
45
|
namespace grpc_event_engine::experimental {
|
46
46
|
|
47
|
-
std::
|
48
|
-
return std::
|
47
|
+
std::shared_ptr<EventEngine> DefaultEventEngineFactory() {
|
48
|
+
return std::make_shared<PosixEventEngine>();
|
49
49
|
}
|
50
50
|
|
51
51
|
} // namespace grpc_event_engine::experimental
|
@@ -23,7 +23,7 @@
|
|
23
23
|
namespace grpc_event_engine::experimental {
|
24
24
|
|
25
25
|
/// Create an EventEngine using the default factory provided at link time.
|
26
|
-
std::
|
26
|
+
std::shared_ptr<EventEngine> DefaultEventEngineFactory();
|
27
27
|
|
28
28
|
} // namespace grpc_event_engine::experimental
|
29
29
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// Copyright 2025 The gRPC Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef GRPC_SRC_CORE_LIB_EVENT_ENGINE_EXTENSIONS_IOMGR_COMPATIBLE_H
|
16
|
+
#define GRPC_SRC_CORE_LIB_EVENT_ENGINE_EXTENSIONS_IOMGR_COMPATIBLE_H
|
17
|
+
|
18
|
+
#include <grpc/event_engine/event_engine.h>
|
19
|
+
#include <grpc/support/port_platform.h>
|
20
|
+
|
21
|
+
#include "absl/functional/any_invocable.h"
|
22
|
+
#include "absl/status/statusor.h"
|
23
|
+
#include "absl/strings/string_view.h"
|
24
|
+
|
25
|
+
namespace grpc_event_engine::experimental {
|
26
|
+
|
27
|
+
class IomgrCompatibleListener {
|
28
|
+
public:
|
29
|
+
virtual ~IomgrCompatibleListener() = default;
|
30
|
+
static absl::string_view EndpointExtensionName() {
|
31
|
+
return "io.grpc.event_engine.extension.iomgr_compatible_listener";
|
32
|
+
}
|
33
|
+
/// Supports shutdown before destruction.
|
34
|
+
virtual void Shutdown() = 0;
|
35
|
+
};
|
36
|
+
|
37
|
+
} // namespace grpc_event_engine::experimental
|
38
|
+
|
39
|
+
#endif // GRPC_SRC_CORE_LIB_EVENT_ENGINE_EXTENSIONS_IOMGR_COMPATIBLE_H
|
@@ -0,0 +1,48 @@
|
|
1
|
+
// Copyright 2025 The gRPC Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef GRPC_SRC_CORE_LIB_EVENT_ENGINE_EXTENSIONS_SUPPORTS_WIN_SOCKETS_H
|
16
|
+
#define GRPC_SRC_CORE_LIB_EVENT_ENGINE_EXTENSIONS_SUPPORTS_WIN_SOCKETS_H
|
17
|
+
|
18
|
+
#include <grpc/support/port_platform.h>
|
19
|
+
|
20
|
+
#ifdef GRPC_WINSOCK_SOCKET
|
21
|
+
#include <grpc/event_engine/event_engine.h>
|
22
|
+
|
23
|
+
#include "absl/functional/any_invocable.h"
|
24
|
+
#include "absl/status/statusor.h"
|
25
|
+
#include "absl/strings/string_view.h"
|
26
|
+
|
27
|
+
namespace grpc_event_engine::experimental {
|
28
|
+
|
29
|
+
class EventEngineWindowsSocketSupport {
|
30
|
+
public:
|
31
|
+
virtual ~EventEngineWindowsSocketSupport() = default;
|
32
|
+
static absl::string_view EndpointExtensionName() {
|
33
|
+
return "io.grpc.event_engine.extension.event_engine_supports_win_sockets";
|
34
|
+
}
|
35
|
+
/// Creates an EventEngine::Endpoint from a windows SOCKET which is already
|
36
|
+
/// assumed to be connected to a remote peer.
|
37
|
+
/// Parameters:
|
38
|
+
/// \a fd - The connected socket.
|
39
|
+
/// \a config - Additional configuration to applied to the endpoint.
|
40
|
+
virtual std::unique_ptr<EventEngine::Endpoint> CreateEndpointFromWinSocket(
|
41
|
+
SOCKET socket, const EndpointConfig& config) = 0;
|
42
|
+
};
|
43
|
+
|
44
|
+
} // namespace grpc_event_engine::experimental
|
45
|
+
|
46
|
+
#endif // GRPC_WINSOCK_SOCKET
|
47
|
+
|
48
|
+
#endif // GRPC_SRC_CORE_LIB_EVENT_ENGINE_EXTENSIONS_SUPPORTS_WIN_SOCKETS_H
|
@@ -31,7 +31,7 @@ class TcpTraceExtension {
|
|
31
31
|
static absl::string_view EndpointExtensionName() {
|
32
32
|
return "io.grpc.event_engine.extension.tcp_trace";
|
33
33
|
}
|
34
|
-
virtual std::shared_ptr<grpc_core::
|
34
|
+
virtual std::shared_ptr<grpc_core::TcpConnectionTracer>
|
35
35
|
InitializeAndReturnTcpTracer() = 0;
|
36
36
|
};
|
37
37
|
|
@@ -277,8 +277,6 @@ void PosixEndpointImpl::FinishEstimate() {
|
|
277
277
|
}
|
278
278
|
|
279
279
|
absl::Status PosixEndpointImpl::TcpAnnotateError(absl::Status src_error) const {
|
280
|
-
grpc_core::StatusSetInt(&src_error, grpc_core::StatusIntProperty::kFd,
|
281
|
-
handle_->WrappedFd());
|
282
280
|
grpc_core::StatusSetInt(&src_error, grpc_core::StatusIntProperty::kRpcStatus,
|
283
281
|
GRPC_STATUS_UNAVAILABLE);
|
284
282
|
return src_error;
|
@@ -67,9 +67,7 @@
|
|
67
67
|
|
68
68
|
// IWYU pragma: no_include <ratio>
|
69
69
|
|
70
|
-
|
71
|
-
// The posix poller currently crashes iOS.
|
72
|
-
#if defined(GRPC_POSIX_SOCKET_TCP) && !defined(GRPC_CFSTREAM) && \
|
70
|
+
#if defined(GRPC_POSIX_SOCKET_TCP) && \
|
73
71
|
!defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
74
72
|
#define GRPC_PLATFORM_SUPPORTS_POSIX_POLLING true
|
75
73
|
#else
|
@@ -20,6 +20,7 @@
|
|
20
20
|
#include <stdio.h>
|
21
21
|
#include <stdlib.h>
|
22
22
|
|
23
|
+
#include <cstdint>
|
23
24
|
#include <cstring>
|
24
25
|
#include <string>
|
25
26
|
|
@@ -226,6 +227,27 @@ absl::StatusOr<ListenerSocket> CreateAndPrepareListenerSocket(
|
|
226
227
|
return socket;
|
227
228
|
}
|
228
229
|
|
230
|
+
bool IsSockAddrLinkLocal(const EventEngine::ResolvedAddress* resolved_addr) {
|
231
|
+
const sockaddr* addr = resolved_addr->address();
|
232
|
+
if (addr->sa_family == AF_INET) {
|
233
|
+
const sockaddr_in* addr4 = reinterpret_cast<const sockaddr_in*>(addr);
|
234
|
+
// Link-local IPv4 addresses are in the range 169.254.0.0/16
|
235
|
+
if ((addr4->sin_addr.s_addr & htonl(0xFFFF0000)) == htonl(0xA9FE0000)) {
|
236
|
+
return true;
|
237
|
+
}
|
238
|
+
} else if (addr->sa_family == AF_INET6) {
|
239
|
+
const sockaddr_in6* addr6 = reinterpret_cast<const sockaddr_in6*>(addr);
|
240
|
+
const uint8_t* addr_bytes = addr6->sin6_addr.s6_addr;
|
241
|
+
|
242
|
+
// Check the first 10 bits to make sure they are 1111 1110 10
|
243
|
+
if ((addr_bytes[0] == 0xfe) && ((addr_bytes[1] & 0xc0) == 0x80)) {
|
244
|
+
return true;
|
245
|
+
}
|
246
|
+
}
|
247
|
+
|
248
|
+
return false;
|
249
|
+
}
|
250
|
+
|
229
251
|
absl::StatusOr<int> ListenerContainerAddAllLocalAddresses(
|
230
252
|
ListenerSocketsContainer& listener_sockets, const PosixTcpOptions& options,
|
231
253
|
int requested_port) {
|
@@ -271,6 +293,10 @@ absl::StatusOr<int> ListenerContainerAddAllLocalAddresses(
|
|
271
293
|
addr = EventEngine::ResolvedAddress(ifa_it->ifa_addr, len);
|
272
294
|
ResolvedAddressSetPort(addr, requested_port);
|
273
295
|
std::string addr_str = *ResolvedAddressToString(addr);
|
296
|
+
if (IsSockAddrLinkLocal(&addr)) {
|
297
|
+
/* Exclude link-local addresses. */
|
298
|
+
continue;
|
299
|
+
}
|
274
300
|
VLOG(2) << absl::StrFormat(
|
275
301
|
"Adding local addr from interface %s flags 0x%x to server: %s",
|
276
302
|
ifa_name, ifa_it->ifa_flags, addr_str.c_str());
|
@@ -82,6 +82,10 @@ absl::StatusOr<int> ListenerContainerAddAllLocalAddresses(
|
|
82
82
|
ListenerSocketsContainer& listener_sockets, const PosixTcpOptions& options,
|
83
83
|
int requested_port);
|
84
84
|
|
85
|
+
// Returns true if addr is link-local (i.e. within the range 169.254.0.0/16 or
|
86
|
+
// fe80::/10).
|
87
|
+
bool IsSockAddrLinkLocal(const EventEngine::ResolvedAddress* resolved_addr);
|
88
|
+
|
85
89
|
} // namespace grpc_event_engine::experimental
|
86
90
|
|
87
91
|
#endif // GRPC_SRC_CORE_LIB_EVENT_ENGINE_POSIX_ENGINE_POSIX_ENGINE_LISTENER_UTILS_H
|
@@ -0,0 +1,64 @@
|
|
1
|
+
// Copyright 2022 The gRPC Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#include <errno.h>
|
16
|
+
#include <grpc/event_engine/event_engine.h>
|
17
|
+
#include <grpc/event_engine/memory_allocator.h>
|
18
|
+
#include <grpc/impl/channel_arg_names.h>
|
19
|
+
#include <grpc/support/port_platform.h>
|
20
|
+
#include <limits.h>
|
21
|
+
|
22
|
+
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
|
23
|
+
#include "src/core/lib/iomgr/port.h"
|
24
|
+
#include "src/core/util/crash.h" // IWYU pragma: keep
|
25
|
+
|
26
|
+
#ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
|
27
|
+
#include <arpa/inet.h> // IWYU pragma: keep
|
28
|
+
#ifdef GRPC_LINUX_TCP_H
|
29
|
+
#include <linux/tcp.h>
|
30
|
+
#else
|
31
|
+
#include <netinet/in.h> // IWYU pragma: keep
|
32
|
+
#include <netinet/tcp.h>
|
33
|
+
#endif
|
34
|
+
#include <fcntl.h>
|
35
|
+
#include <sys/socket.h>
|
36
|
+
#include <unistd.h>
|
37
|
+
#endif // GRPC_POSIX_SOCKET_UTILS_COMMON
|
38
|
+
|
39
|
+
#ifdef GRPC_HAVE_UNIX_SOCKET
|
40
|
+
#ifdef GPR_WINDOWS
|
41
|
+
// clang-format off
|
42
|
+
#include <ws2def.h>
|
43
|
+
#include <afunix.h>
|
44
|
+
// clang-format on
|
45
|
+
#else
|
46
|
+
#include <sys/stat.h> // IWYU pragma: keep
|
47
|
+
#include <sys/un.h>
|
48
|
+
#endif // GPR_WINDOWS
|
49
|
+
#endif
|
50
|
+
|
51
|
+
namespace grpc_event_engine::experimental {
|
52
|
+
|
53
|
+
#ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
|
54
|
+
#ifndef GRPC_SET_SOCKET_DUALSTACK_CUSTOM
|
55
|
+
|
56
|
+
bool SetSocketDualStack(int fd) {
|
57
|
+
const int off = 0;
|
58
|
+
return 0 == setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &off, sizeof(off));
|
59
|
+
}
|
60
|
+
|
61
|
+
#endif // GRPC_SET_SOCKET_DUALSTACK_CUSTOM
|
62
|
+
#endif // GRPC_POSIX_SOCKET_UTILS_COMMON
|
63
|
+
|
64
|
+
} // namespace grpc_event_engine::experimental
|
@@ -150,17 +150,6 @@ absl::Status PrepareTcpClientSocket(PosixSocketWrapper sock,
|
|
150
150
|
|
151
151
|
} // namespace
|
152
152
|
|
153
|
-
#ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
|
154
|
-
#ifndef GRPC_SET_SOCKET_DUALSTACK_CUSTOM
|
155
|
-
|
156
|
-
bool SetSocketDualStack(int fd) {
|
157
|
-
const int off = 0;
|
158
|
-
return 0 == setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &off, sizeof(off));
|
159
|
-
}
|
160
|
-
|
161
|
-
#endif // GRPC_SET_SOCKET_DUALSTACK_CUSTOM
|
162
|
-
#endif // GRPC_POSIX_SOCKET_UTILS_COMMON
|
163
|
-
|
164
153
|
PosixTcpOptions TcpOptionsFromEndpointConfig(const EndpointConfig& config) {
|
165
154
|
void* value;
|
166
155
|
PosixTcpOptions options;
|
@@ -64,9 +64,17 @@ absl::Status PipeWakeupFd::Init() {
|
|
64
64
|
absl::StrCat("pipe: ", grpc_core::StrError(errno)));
|
65
65
|
}
|
66
66
|
auto status = SetSocketNonBlocking(pipefd[0]);
|
67
|
-
if (!status.ok())
|
67
|
+
if (!status.ok()) {
|
68
|
+
close(pipefd[0]);
|
69
|
+
close(pipefd[1]);
|
70
|
+
return status;
|
71
|
+
}
|
68
72
|
status = SetSocketNonBlocking(pipefd[1]);
|
69
|
-
if (!status.ok())
|
73
|
+
if (!status.ok()) {
|
74
|
+
close(pipefd[0]);
|
75
|
+
close(pipefd[1]);
|
76
|
+
return status;
|
77
|
+
}
|
70
78
|
SetWakeupFds(pipefd[0], pipefd[1]);
|
71
79
|
return absl::OkStatus();
|
72
80
|
}
|
@@ -22,29 +22,22 @@
|
|
22
22
|
namespace grpc_event_engine::experimental {
|
23
23
|
|
24
24
|
bool UseEventEngineClient() {
|
25
|
-
|
26
|
-
// available for other platforms.
|
27
|
-
#if defined(GRPC_POSIX_SOCKET_TCP) && !defined(GRPC_CFSTREAM) && \
|
28
|
-
!defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
29
|
-
return grpc_core::IsEventEngineClientEnabled();
|
30
|
-
#elif defined(GPR_WINDOWS) && !defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
31
|
-
return grpc_core::IsEventEngineClientEnabled();
|
32
|
-
#elif GRPC_IOS_EVENT_ENGINE_CLIENT
|
33
|
-
return true;
|
34
|
-
#else
|
25
|
+
#if defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
35
26
|
return false;
|
36
27
|
#endif
|
28
|
+
return grpc_core::IsEventEngineClientEnabled();
|
37
29
|
}
|
38
30
|
|
39
31
|
bool UseEventEngineListener() {
|
40
|
-
|
41
|
-
// available for other platforms.
|
42
|
-
#if defined(GRPC_POSIX_SOCKET_TCP) && !defined(GRPC_CFSTREAM) && \
|
43
|
-
!defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
44
|
-
return grpc_core::IsEventEngineListenerEnabled();
|
45
|
-
#else
|
32
|
+
#if defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
46
33
|
return false;
|
47
34
|
#endif
|
35
|
+
return grpc_core::IsEventEngineListenerEnabled();
|
36
|
+
}
|
37
|
+
|
38
|
+
bool UsePollsetAlternative() {
|
39
|
+
return UseEventEngineClient() && UseEventEngineListener() &&
|
40
|
+
grpc_core::IsPollsetAlternativeEnabled();
|
48
41
|
}
|
49
42
|
|
50
43
|
} // namespace grpc_event_engine::experimental
|
@@ -20,10 +20,21 @@
|
|
20
20
|
|
21
21
|
namespace grpc_event_engine::experimental {
|
22
22
|
|
23
|
+
// Returns true if the EventEngine client shim should be used.
|
24
|
+
// This is based on the experiment state, and compile-time configurations that
|
25
|
+
// may disable the poller in some builds.
|
23
26
|
bool UseEventEngineClient();
|
24
27
|
|
28
|
+
// Returns true if the EventEngine listener shim should be used.
|
29
|
+
// This is based on the experiment state, and compile-time configurations that
|
30
|
+
// may disable the poller in some builds.
|
25
31
|
bool UseEventEngineListener();
|
26
32
|
|
33
|
+
// Returns true if the pollset alternative experiment should be used.
|
34
|
+
// This is based on the experiment state, and compile-time configurations that
|
35
|
+
// may disable the poller in some builds.
|
36
|
+
bool UsePollsetAlternative();
|
37
|
+
|
27
38
|
} // namespace grpc_event_engine::experimental
|
28
39
|
|
29
40
|
#endif // GRPC_SRC_CORE_LIB_EVENT_ENGINE_SHIM_H
|