grpc 1.38.0 → 1.40.0
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 +68 -21
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +23 -29
- data/include/grpc/event_engine/port.h +2 -0
- data/include/grpc/event_engine/slice_allocator.h +21 -36
- data/include/grpc/grpc.h +9 -2
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +1 -0
- data/include/grpc/impl/codegen/grpc_types.h +33 -19
- data/include/grpc/impl/codegen/port_platform.h +41 -0
- data/src/core/ext/filters/client_channel/client_channel.cc +415 -249
- data/src/core/ext/filters/client_channel/client_channel.h +42 -18
- data/src/core/ext/filters/client_channel/config_selector.h +19 -6
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +2 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +7 -8
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +12 -21
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +3 -5
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +8 -15
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -6
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +18 -36
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +14 -22
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +68 -103
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -15
- data/src/core/ext/filters/client_channel/lb_policy.h +70 -46
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +1 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -3
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +7 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +116 -76
- data/src/core/ext/filters/client_channel/retry_filter.cc +967 -544
- data/src/core/ext/filters/client_channel/retry_service_config.cc +57 -28
- data/src/core/ext/filters/client_channel/retry_service_config.h +9 -3
- data/src/core/ext/filters/client_channel/service_config_call_data.h +45 -5
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +5 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +2 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +5 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +1 -1
- data/src/core/{lib/event_engine/slice_allocator.cc → ext/transport/chttp2/transport/chttp2_slice_allocator.cc} +23 -16
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +12 -10
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +639 -752
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +190 -69
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +72 -56
- data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +42 -31
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +56 -35
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -76
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +97 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +67 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +66 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +227 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +32 -24
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -73
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +27 -19
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +57 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +29 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +15 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +85 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +274 -91
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +11 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +33 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +1 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +82 -66
- data/src/core/ext/upb-generated/validate/validate.upb.h +220 -124
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +437 -410
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +684 -664
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +441 -375
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +122 -114
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/xds_api.cc +582 -257
- data/src/core/ext/xds/xds_api.h +46 -8
- data/src/core/ext/xds/xds_bootstrap.cc +4 -1
- data/src/core/ext/xds/xds_client.cc +66 -43
- data/src/core/ext/xds/xds_client.h +0 -4
- data/src/core/ext/xds/xds_http_filters.cc +3 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -0
- data/src/core/lib/address_utils/sockaddr_utils.cc +13 -0
- data/src/core/lib/address_utils/sockaddr_utils.h +10 -0
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_stack.h +1 -1
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/status_util.h +4 -0
- data/src/core/lib/compression/stream_compression.h +1 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/debug/stats.h +1 -1
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/sockaddr.cc +14 -12
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/status_helper.h +3 -0
- data/src/core/lib/gprpp/sync.h +2 -30
- data/src/core/lib/iomgr/buffer_list.cc +1 -1
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/error.cc +5 -4
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/{include/grpc/event_engine/channel_args.h → src/core/lib/iomgr/event_engine/pollset.h} +7 -10
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +8 -0
- data/src/core/lib/iomgr/exec_ctx.h +3 -4
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix.cc +2 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +40 -10
- data/src/core/lib/iomgr/pollset_custom.cc +2 -2
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +5 -1
- data/src/core/lib/iomgr/resolve_address.h +6 -0
- data/src/core/lib/iomgr/resource_quota.cc +2 -0
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -4
- data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +7 -2
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -0
- data/src/core/lib/iomgr/tcp_posix.cc +42 -39
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server_custom.cc +3 -4
- data/src/core/lib/iomgr/tcp_server_posix.cc +7 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +2 -1
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/json/json_reader.cc +1 -2
- data/src/core/lib/matchers/matchers.cc +8 -20
- data/src/core/lib/matchers/matchers.h +2 -1
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +3 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +49 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +9 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +5 -0
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +6 -18
- data/src/core/lib/security/transport/security_handshaker.cc +12 -4
- data/src/core/lib/security/transport/server_auth_filter.cc +0 -7
- data/src/core/lib/slice/slice.cc +12 -2
- data/src/core/lib/slice/slice_internal.h +1 -0
- data/src/core/lib/surface/call.cc +26 -7
- data/src/core/lib/surface/call.h +11 -0
- data/src/core/lib/surface/completion_queue.cc +22 -22
- data/src/core/lib/surface/completion_queue.h +1 -1
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/server.cc +3 -1
- data/src/core/lib/surface/server.h +3 -3
- data/src/core/lib/surface/version.cc +2 -4
- data/src/core/lib/transport/error_utils.cc +2 -2
- data/src/core/lib/transport/metadata_batch.cc +13 -2
- data/src/core/lib/transport/metadata_batch.h +7 -0
- data/src/core/lib/transport/transport.h +2 -0
- data/src/core/lib/transport/transport_op_string.cc +1 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +2 -0
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +10 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/err_data.c +269 -263
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +8 -6
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -121
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +20 -30
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +19 -30
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +28 -39
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +48 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +362 -371
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +101 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +40 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +14 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +19 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +23 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -109
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +12 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +48 -50
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +0 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +773 -84
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +80 -47
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +24 -19
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +45 -56
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +272 -167
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +34 -102
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +576 -648
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +31 -3
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +58 -68
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +81 -39
- data/src/core/lib/gpr/arena.h +0 -47
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -267
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -26,15 +26,38 @@
|
|
26
26
|
|
27
27
|
#include <stdbool.h>
|
28
28
|
|
29
|
+
/** How is an fd to be used? */
|
30
|
+
typedef enum {
|
31
|
+
/** Used for client connection */
|
32
|
+
GRPC_FD_CLIENT_CONNECTION_USAGE,
|
33
|
+
/** Used for server listening */
|
34
|
+
GRPC_FD_SERVER_LISTENER_USAGE,
|
35
|
+
/** Used for server connection */
|
36
|
+
GRPC_FD_SERVER_CONNECTION_USAGE,
|
37
|
+
} grpc_fd_usage;
|
38
|
+
|
39
|
+
/** Information about an fd to mutate */
|
40
|
+
typedef struct {
|
41
|
+
/** File descriptor to mutate */
|
42
|
+
int fd;
|
43
|
+
/** How the fd will be used */
|
44
|
+
grpc_fd_usage usage;
|
45
|
+
} grpc_mutate_socket_info;
|
46
|
+
|
29
47
|
/** The virtual table of grpc_socket_mutator */
|
30
48
|
struct grpc_socket_mutator_vtable {
|
31
|
-
/** Mutates the socket options of \a fd */
|
49
|
+
/** Mutates the socket options of \a fd -- deprecated, prefer mutate_fd_2 */
|
32
50
|
bool (*mutate_fd)(int fd, grpc_socket_mutator* mutator);
|
33
51
|
/** Compare socket mutator \a a and \a b */
|
34
52
|
int (*compare)(grpc_socket_mutator* a, grpc_socket_mutator* b);
|
35
53
|
/** Destroys the socket mutator instance */
|
36
54
|
void (*destroy)(grpc_socket_mutator* mutator);
|
55
|
+
/** Mutates the socket options of the fd in \a info - if set takes preference
|
56
|
+
* to mutate_fd */
|
57
|
+
bool (*mutate_fd_2)(const grpc_mutate_socket_info* info,
|
58
|
+
grpc_socket_mutator* mutator);
|
37
59
|
};
|
60
|
+
|
38
61
|
/** The Socket Mutator interface allows changes on socket options */
|
39
62
|
struct grpc_socket_mutator {
|
40
63
|
const grpc_socket_mutator_vtable* vtable;
|
@@ -49,7 +72,8 @@ void grpc_socket_mutator_init(grpc_socket_mutator* mutator,
|
|
49
72
|
grpc_arg grpc_socket_mutator_to_arg(grpc_socket_mutator* mutator);
|
50
73
|
|
51
74
|
/** Perform the file descriptor mutation operation of \a mutator on \a fd */
|
52
|
-
bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator* mutator, int fd
|
75
|
+
bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator* mutator, int fd,
|
76
|
+
grpc_fd_usage usage);
|
53
77
|
|
54
78
|
/** Compare if \a a and \a b are the same mutator or have same settings */
|
55
79
|
int grpc_socket_mutator_compare(grpc_socket_mutator* a, grpc_socket_mutator* b);
|
@@ -388,17 +388,17 @@ grpc_error_handle grpc_set_socket_tcp_user_timeout(
|
|
388
388
|
}
|
389
389
|
|
390
390
|
/* set a socket using a grpc_socket_mutator */
|
391
|
-
grpc_error_handle grpc_set_socket_with_mutator(int fd,
|
391
|
+
grpc_error_handle grpc_set_socket_with_mutator(int fd, grpc_fd_usage usage,
|
392
392
|
grpc_socket_mutator* mutator) {
|
393
393
|
GPR_ASSERT(mutator);
|
394
|
-
if (!grpc_socket_mutator_mutate_fd(mutator, fd)) {
|
394
|
+
if (!grpc_socket_mutator_mutate_fd(mutator, fd, usage)) {
|
395
395
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING("grpc_socket_mutator failed.");
|
396
396
|
}
|
397
397
|
return GRPC_ERROR_NONE;
|
398
398
|
}
|
399
399
|
|
400
400
|
grpc_error_handle grpc_apply_socket_mutator_in_args(
|
401
|
-
int fd, const grpc_channel_args* args) {
|
401
|
+
int fd, grpc_fd_usage usage, const grpc_channel_args* args) {
|
402
402
|
const grpc_arg* socket_mutator_arg =
|
403
403
|
grpc_channel_args_find(args, GRPC_ARG_SOCKET_MUTATOR);
|
404
404
|
if (socket_mutator_arg == nullptr) {
|
@@ -407,7 +407,7 @@ grpc_error_handle grpc_apply_socket_mutator_in_args(
|
|
407
407
|
GPR_DEBUG_ASSERT(socket_mutator_arg->type == GRPC_ARG_POINTER);
|
408
408
|
grpc_socket_mutator* mutator =
|
409
409
|
static_cast<grpc_socket_mutator*>(socket_mutator_arg->value.pointer.p);
|
410
|
-
return grpc_set_socket_with_mutator(fd, mutator);
|
410
|
+
return grpc_set_socket_with_mutator(fd, usage, mutator);
|
411
411
|
}
|
412
412
|
|
413
413
|
static gpr_once g_probe_ipv6_once = GPR_ONCE_INIT;
|
@@ -101,12 +101,12 @@ grpc_error_handle grpc_set_socket_sndbuf(int fd, int buffer_size_bytes);
|
|
101
101
|
grpc_error_handle grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes);
|
102
102
|
|
103
103
|
/* Tries to set the socket using a grpc_socket_mutator */
|
104
|
-
grpc_error_handle grpc_set_socket_with_mutator(int fd,
|
104
|
+
grpc_error_handle grpc_set_socket_with_mutator(int fd, grpc_fd_usage usage,
|
105
105
|
grpc_socket_mutator* mutator);
|
106
106
|
|
107
107
|
/* Extracts the first socket mutator from args if any and applies on the fd. */
|
108
108
|
grpc_error_handle grpc_apply_socket_mutator_in_args(
|
109
|
-
int fd, const grpc_channel_args* args);
|
109
|
+
int fd, grpc_fd_usage usage, const grpc_channel_args* args);
|
110
110
|
|
111
111
|
/* An enum to keep track of IPv4/IPv6 socket modes.
|
112
112
|
|
@@ -39,6 +39,7 @@
|
|
39
39
|
#include "src/core/lib/channel/channel_args.h"
|
40
40
|
#include "src/core/lib/gpr/string.h"
|
41
41
|
#include "src/core/lib/iomgr/ev_posix.h"
|
42
|
+
#include "src/core/lib/iomgr/executor.h"
|
42
43
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
43
44
|
#include "src/core/lib/iomgr/sockaddr.h"
|
44
45
|
#include "src/core/lib/iomgr/socket_mutator.h"
|
@@ -87,7 +88,8 @@ static grpc_error_handle prepare_socket(const grpc_resolved_address* addr,
|
|
87
88
|
err = grpc_set_socket_no_sigpipe_if_possible(fd);
|
88
89
|
if (err != GRPC_ERROR_NONE) goto error;
|
89
90
|
|
90
|
-
err = grpc_apply_socket_mutator_in_args(fd,
|
91
|
+
err = grpc_apply_socket_mutator_in_args(fd, GRPC_FD_CLIENT_CONNECTION_USAGE,
|
92
|
+
channel_args);
|
91
93
|
if (err != GRPC_ERROR_NONE) goto error;
|
92
94
|
|
93
95
|
goto done;
|
@@ -238,7 +240,10 @@ finish:
|
|
238
240
|
grpc_channel_args_destroy(ac->channel_args);
|
239
241
|
delete ac;
|
240
242
|
}
|
241
|
-
|
243
|
+
// Push async connect closure to the executor since this may actually be
|
244
|
+
// called during the shutdown process, in which case a deadlock could form
|
245
|
+
// between the core shutdown mu and the connector mu (b/188239051)
|
246
|
+
grpc_core::Executor::Run(closure, error);
|
242
247
|
}
|
243
248
|
|
244
249
|
grpc_error_handle grpc_tcp_client_prepare_fd(
|
@@ -206,8 +206,10 @@ static void tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
|
|
206
206
|
GRPC_CLOSURE_INIT(&ac->on_connect, on_connect, ac, grpc_schedule_on_exec_ctx);
|
207
207
|
|
208
208
|
GRPC_CLOSURE_INIT(&ac->on_alarm, on_alarm, ac, grpc_schedule_on_exec_ctx);
|
209
|
+
gpr_mu_lock(&ac->mu);
|
209
210
|
grpc_timer_init(&ac->alarm, deadline, &ac->on_alarm);
|
210
211
|
grpc_socket_notify_on_write(socket, &ac->on_connect);
|
212
|
+
gpr_mu_unlock(&ac->mu);
|
211
213
|
return;
|
212
214
|
|
213
215
|
failure:
|
@@ -432,8 +432,10 @@ static void ZerocopyDisableAndWaitForRemaining(grpc_tcp* tcp);
|
|
432
432
|
|
433
433
|
#define BACKUP_POLLER_POLLSET(b) ((grpc_pollset*)((b) + 1))
|
434
434
|
|
435
|
-
static
|
436
|
-
static
|
435
|
+
static grpc_core::Mutex* g_backup_poller_mu = nullptr;
|
436
|
+
static int g_uncovered_notifications_pending
|
437
|
+
ABSL_GUARDED_BY(g_backup_poller_mu);
|
438
|
+
static backup_poller* g_backup_poller ABSL_GUARDED_BY(g_backup_poller_mu);
|
437
439
|
|
438
440
|
static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error_handle error);
|
439
441
|
static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error_handle error);
|
@@ -461,17 +463,13 @@ static void run_poller(void* bp, grpc_error_handle /*error_ignored*/) {
|
|
461
463
|
"backup_poller:pollset_work",
|
462
464
|
grpc_pollset_work(BACKUP_POLLER_POLLSET(p), nullptr, deadline));
|
463
465
|
gpr_mu_unlock(p->pollset_mu);
|
464
|
-
|
465
|
-
|
466
|
-
if (
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
472
|
-
gpr_log(GPR_INFO, "BACKUP_POLLER:%p done cas_ok=%d", p, cas_ok);
|
473
|
-
}
|
474
|
-
gpr_mu_unlock(p->pollset_mu);
|
466
|
+
g_backup_poller_mu->Lock();
|
467
|
+
/* last "uncovered" notification is the ref that keeps us polling */
|
468
|
+
if (g_uncovered_notifications_pending == 1) {
|
469
|
+
GPR_ASSERT(g_backup_poller == p);
|
470
|
+
g_backup_poller = nullptr;
|
471
|
+
g_uncovered_notifications_pending = 0;
|
472
|
+
g_backup_poller_mu->Unlock();
|
475
473
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
476
474
|
gpr_log(GPR_INFO, "BACKUP_POLLER:%p shutdown", p);
|
477
475
|
}
|
@@ -479,6 +477,7 @@ static void run_poller(void* bp, grpc_error_handle /*error_ignored*/) {
|
|
479
477
|
GRPC_CLOSURE_INIT(&p->run_poller, done_poller, p,
|
480
478
|
grpc_schedule_on_exec_ctx));
|
481
479
|
} else {
|
480
|
+
g_backup_poller_mu->Unlock();
|
482
481
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
483
482
|
gpr_log(GPR_INFO, "BACKUP_POLLER:%p reschedule", p);
|
484
483
|
}
|
@@ -489,15 +488,17 @@ static void run_poller(void* bp, grpc_error_handle /*error_ignored*/) {
|
|
489
488
|
}
|
490
489
|
|
491
490
|
static void drop_uncovered(grpc_tcp* /*tcp*/) {
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
491
|
+
int old_count;
|
492
|
+
backup_poller* p;
|
493
|
+
g_backup_poller_mu->Lock();
|
494
|
+
p = g_backup_poller;
|
495
|
+
old_count = g_uncovered_notifications_pending--;
|
496
|
+
g_backup_poller_mu->Unlock();
|
497
|
+
GPR_ASSERT(old_count > 1);
|
496
498
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
497
|
-
gpr_log(GPR_INFO, "BACKUP_POLLER:%p uncover cnt %d->%d", p,
|
498
|
-
|
499
|
+
gpr_log(GPR_INFO, "BACKUP_POLLER:%p uncover cnt %d->%d", p, old_count,
|
500
|
+
old_count - 1);
|
499
501
|
}
|
500
|
-
GPR_ASSERT(old_count != 1);
|
501
502
|
}
|
502
503
|
|
503
504
|
// gRPC API considers a Write operation to be done the moment it clears ‘flow
|
@@ -509,38 +510,33 @@ static void drop_uncovered(grpc_tcp* /*tcp*/) {
|
|
509
510
|
// polling thread and progress is made) and hence add it to a backup poller here
|
510
511
|
static void cover_self(grpc_tcp* tcp) {
|
511
512
|
backup_poller* p;
|
512
|
-
|
513
|
-
|
514
|
-
if (
|
515
|
-
|
516
|
-
static_cast<int>(old_count), 2 + static_cast<int>(old_count));
|
517
|
-
}
|
518
|
-
if (old_count == 0) {
|
519
|
-
GRPC_STATS_INC_TCP_BACKUP_POLLERS_CREATED();
|
513
|
+
g_backup_poller_mu->Lock();
|
514
|
+
int old_count = 0;
|
515
|
+
if (g_uncovered_notifications_pending == 0) {
|
516
|
+
g_uncovered_notifications_pending = 2;
|
520
517
|
p = static_cast<backup_poller*>(
|
521
518
|
gpr_zalloc(sizeof(*p) + grpc_pollset_size()));
|
519
|
+
g_backup_poller = p;
|
520
|
+
grpc_pollset_init(BACKUP_POLLER_POLLSET(p), &p->pollset_mu);
|
521
|
+
g_backup_poller_mu->Unlock();
|
522
|
+
GRPC_STATS_INC_TCP_BACKUP_POLLERS_CREATED();
|
522
523
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
523
524
|
gpr_log(GPR_INFO, "BACKUP_POLLER:%p create", p);
|
524
525
|
}
|
525
|
-
grpc_pollset_init(BACKUP_POLLER_POLLSET(p), &p->pollset_mu);
|
526
|
-
gpr_atm_rel_store(&g_backup_poller, (gpr_atm)p);
|
527
526
|
grpc_core::Executor::Run(
|
528
527
|
GRPC_CLOSURE_INIT(&p->run_poller, run_poller, p, nullptr),
|
529
528
|
GRPC_ERROR_NONE, grpc_core::ExecutorType::DEFAULT,
|
530
529
|
grpc_core::ExecutorJobType::LONG);
|
531
530
|
} else {
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
}
|
531
|
+
old_count = g_uncovered_notifications_pending++;
|
532
|
+
p = g_backup_poller;
|
533
|
+
g_backup_poller_mu->Unlock();
|
536
534
|
}
|
537
535
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
538
|
-
gpr_log(GPR_INFO, "BACKUP_POLLER:%p add %p", p, tcp
|
536
|
+
gpr_log(GPR_INFO, "BACKUP_POLLER:%p add %p cnt %d->%d", p, tcp,
|
537
|
+
old_count - 1, old_count);
|
539
538
|
}
|
540
539
|
grpc_pollset_add_fd(BACKUP_POLLER_POLLSET(p), tcp->em_fd);
|
541
|
-
if (old_count != 0) {
|
542
|
-
drop_uncovered(tcp);
|
543
|
-
}
|
544
540
|
}
|
545
541
|
|
546
542
|
static void notify_on_read(grpc_tcp* tcp) {
|
@@ -1164,9 +1160,9 @@ static bool process_errors(grpc_tcp* tcp) {
|
|
1164
1160
|
struct cmsghdr align;
|
1165
1161
|
} aligned_buf;
|
1166
1162
|
msg.msg_control = aligned_buf.rbuf;
|
1167
|
-
msg.msg_controllen = sizeof(aligned_buf.rbuf);
|
1168
1163
|
int r, saved_errno;
|
1169
1164
|
while (true) {
|
1165
|
+
msg.msg_controllen = sizeof(aligned_buf.rbuf);
|
1170
1166
|
do {
|
1171
1167
|
r = recvmsg(tcp->fd, &msg, MSG_ERRQUEUE);
|
1172
1168
|
saved_errno = errno;
|
@@ -1873,4 +1869,11 @@ void grpc_tcp_destroy_and_release_fd(grpc_endpoint* ep, int* fd,
|
|
1873
1869
|
TCP_UNREF(tcp, "destroy");
|
1874
1870
|
}
|
1875
1871
|
|
1872
|
+
void grpc_tcp_posix_init() { g_backup_poller_mu = new grpc_core::Mutex; }
|
1873
|
+
|
1874
|
+
void grpc_tcp_posix_shutdown() {
|
1875
|
+
delete g_backup_poller_mu;
|
1876
|
+
g_backup_poller_mu = nullptr;
|
1877
|
+
}
|
1878
|
+
|
1876
1879
|
#endif /* GRPC_POSIX_SOCKET_TCP */
|
@@ -57,4 +57,12 @@ int grpc_tcp_fd(grpc_endpoint* ep);
|
|
57
57
|
void grpc_tcp_destroy_and_release_fd(grpc_endpoint* ep, int* fd,
|
58
58
|
grpc_closure* done);
|
59
59
|
|
60
|
+
#ifdef GRPC_POSIX_SOCKET_TCP
|
61
|
+
|
62
|
+
void grpc_tcp_posix_init();
|
63
|
+
|
64
|
+
void grpc_tcp_posix_shutdown();
|
65
|
+
|
66
|
+
#endif /* GRPC_POSIX_SOCKET_TCP */
|
67
|
+
|
60
68
|
#endif /* GRPC_CORE_LIB_IOMGR_TCP_POSIX_H */
|
@@ -362,10 +362,9 @@ static grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
|
|
362
362
|
for (sp = s->head; sp; sp = sp->next) {
|
363
363
|
socket = sp->socket;
|
364
364
|
sockname_temp.len = GRPC_MAX_SOCKADDR_SIZE;
|
365
|
-
if (
|
366
|
-
|
367
|
-
|
368
|
-
reinterpret_cast<int*>(&sockname_temp.len))) {
|
365
|
+
if (grpc_custom_socket_vtable->getsockname(
|
366
|
+
socket, reinterpret_cast<grpc_sockaddr*>(&sockname_temp.addr),
|
367
|
+
reinterpret_cast<int*>(&sockname_temp.len)) == GRPC_ERROR_NONE) {
|
369
368
|
*port = grpc_sockaddr_get_port(&sockname_temp);
|
370
369
|
if (*port > 0) {
|
371
370
|
allocated_addr = static_cast<grpc_resolved_address*>(
|
@@ -238,6 +238,12 @@ static void on_read(void* arg, grpc_error_handle err) {
|
|
238
238
|
|
239
239
|
grpc_set_socket_no_sigpipe_if_possible(fd);
|
240
240
|
|
241
|
+
err = grpc_apply_socket_mutator_in_args(fd, GRPC_FD_SERVER_CONNECTION_USAGE,
|
242
|
+
sp->server->channel_args);
|
243
|
+
if (err != GRPC_ERROR_NONE) {
|
244
|
+
goto error;
|
245
|
+
}
|
246
|
+
|
241
247
|
std::string addr_str = grpc_sockaddr_to_uri(&addr);
|
242
248
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
243
249
|
gpr_log(GPR_INFO, "SERVER_CONNECT: incoming connection: %s",
|
@@ -399,6 +405,7 @@ static grpc_error_handle clone_port(grpc_tcp_listener* listener,
|
|
399
405
|
static grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
|
400
406
|
const grpc_resolved_address* addr,
|
401
407
|
int* out_port) {
|
408
|
+
GPR_ASSERT(addr->len <= GRPC_MAX_SOCKADDR_SIZE);
|
402
409
|
grpc_tcp_listener* sp;
|
403
410
|
grpc_resolved_address sockname_temp;
|
404
411
|
grpc_resolved_address addr6_v4mapped;
|
@@ -182,7 +182,8 @@ grpc_error_handle grpc_tcp_server_prepare_socket(
|
|
182
182
|
err = grpc_set_socket_no_sigpipe_if_possible(fd);
|
183
183
|
if (err != GRPC_ERROR_NONE) goto error;
|
184
184
|
|
185
|
-
err = grpc_apply_socket_mutator_in_args(fd,
|
185
|
+
err = grpc_apply_socket_mutator_in_args(fd, GRPC_FD_SERVER_LISTENER_USAGE,
|
186
|
+
s->channel_args);
|
186
187
|
if (err != GRPC_ERROR_NONE) goto error;
|
187
188
|
|
188
189
|
if (bind(fd, reinterpret_cast<grpc_sockaddr*>(const_cast<char*>(addr->addr)),
|
data/src/core/lib/iomgr/timer.h
CHANGED
@@ -23,7 +23,9 @@
|
|
23
23
|
|
24
24
|
#include "src/core/lib/iomgr/port.h"
|
25
25
|
|
26
|
+
#include <grpc/event_engine/event_engine.h>
|
26
27
|
#include <grpc/support/time.h>
|
28
|
+
|
27
29
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
28
30
|
#include "src/core/lib/iomgr/iomgr.h"
|
29
31
|
|
@@ -40,7 +42,10 @@ typedef struct grpc_timer {
|
|
40
42
|
#endif
|
41
43
|
|
42
44
|
// Optional field used by custom timers
|
43
|
-
|
45
|
+
union {
|
46
|
+
void* custom_timer;
|
47
|
+
grpc_event_engine::experimental::EventEngine::TaskHandle ee_task_handle;
|
48
|
+
};
|
44
49
|
} grpc_timer;
|
45
50
|
|
46
51
|
typedef enum {
|
@@ -250,7 +250,7 @@ static void timer_main_loop() {
|
|
250
250
|
gpr_log(GPR_INFO, "timers not checked: expect another thread to");
|
251
251
|
}
|
252
252
|
next = GRPC_MILLIS_INF_FUTURE;
|
253
|
-
|
253
|
+
ABSL_FALLTHROUGH_INTENDED;
|
254
254
|
case GRPC_TIMERS_CHECKED_AND_EMPTY:
|
255
255
|
if (!wait_until(next)) {
|
256
256
|
return;
|
@@ -347,8 +347,7 @@ JsonReader::Status JsonReader::Run() {
|
|
347
347
|
}
|
348
348
|
if (!SetNumber()) return Status::GRPC_JSON_PARSE_ERROR;
|
349
349
|
state_ = State::GRPC_JSON_STATE_VALUE_END;
|
350
|
-
|
351
|
-
/* fallthrough */
|
350
|
+
ABSL_FALLTHROUGH_INTENDED;
|
352
351
|
|
353
352
|
case State::GRPC_JSON_STATE_VALUE_END:
|
354
353
|
case State::GRPC_JSON_STATE_OBJECT_KEY_BEGIN:
|
@@ -32,14 +32,12 @@ absl::StatusOr<StringMatcher> StringMatcher::Create(Type type,
|
|
32
32
|
absl::string_view matcher,
|
33
33
|
bool case_sensitive) {
|
34
34
|
if (type == Type::kSafeRegex) {
|
35
|
-
RE2::
|
36
|
-
options.set_case_sensitive(case_sensitive);
|
37
|
-
auto regex_matcher = absl::make_unique<RE2>(std::string(matcher), options);
|
35
|
+
auto regex_matcher = absl::make_unique<RE2>(std::string(matcher));
|
38
36
|
if (!regex_matcher->ok()) {
|
39
37
|
return absl::InvalidArgumentError(
|
40
38
|
"Invalid regex string specified in matcher.");
|
41
39
|
}
|
42
|
-
return StringMatcher(std::move(regex_matcher)
|
40
|
+
return StringMatcher(std::move(regex_matcher));
|
43
41
|
} else {
|
44
42
|
return StringMatcher(type, matcher, case_sensitive);
|
45
43
|
}
|
@@ -49,19 +47,13 @@ StringMatcher::StringMatcher(Type type, absl::string_view matcher,
|
|
49
47
|
bool case_sensitive)
|
50
48
|
: type_(type), string_matcher_(matcher), case_sensitive_(case_sensitive) {}
|
51
49
|
|
52
|
-
StringMatcher::StringMatcher(std::unique_ptr<RE2> regex_matcher
|
53
|
-
|
54
|
-
: type_(Type::kSafeRegex),
|
55
|
-
regex_matcher_(std::move(regex_matcher)),
|
56
|
-
case_sensitive_(case_sensitive) {}
|
50
|
+
StringMatcher::StringMatcher(std::unique_ptr<RE2> regex_matcher)
|
51
|
+
: type_(Type::kSafeRegex), regex_matcher_(std::move(regex_matcher)) {}
|
57
52
|
|
58
53
|
StringMatcher::StringMatcher(const StringMatcher& other)
|
59
54
|
: type_(other.type_), case_sensitive_(other.case_sensitive_) {
|
60
55
|
if (type_ == Type::kSafeRegex) {
|
61
|
-
RE2
|
62
|
-
options.set_case_sensitive(other.case_sensitive_);
|
63
|
-
regex_matcher_ =
|
64
|
-
absl::make_unique<RE2>(other.regex_matcher_->pattern(), options);
|
56
|
+
regex_matcher_ = absl::make_unique<RE2>(other.regex_matcher_->pattern());
|
65
57
|
} else {
|
66
58
|
string_matcher_ = other.string_matcher_;
|
67
59
|
}
|
@@ -70,10 +62,7 @@ StringMatcher::StringMatcher(const StringMatcher& other)
|
|
70
62
|
StringMatcher& StringMatcher::operator=(const StringMatcher& other) {
|
71
63
|
type_ = other.type_;
|
72
64
|
if (type_ == Type::kSafeRegex) {
|
73
|
-
RE2
|
74
|
-
options.set_case_sensitive(other.case_sensitive_);
|
75
|
-
regex_matcher_ =
|
76
|
-
absl::make_unique<RE2>(other.regex_matcher_->pattern(), options);
|
65
|
+
regex_matcher_ = absl::make_unique<RE2>(other.regex_matcher_->pattern());
|
77
66
|
} else {
|
78
67
|
string_matcher_ = other.string_matcher_;
|
79
68
|
}
|
@@ -151,9 +140,8 @@ std::string StringMatcher::ToString() const {
|
|
151
140
|
return absl::StrFormat("StringMatcher{contains=%s%s}", string_matcher_,
|
152
141
|
case_sensitive_ ? "" : ", case_sensitive=false");
|
153
142
|
case Type::kSafeRegex:
|
154
|
-
return absl::StrFormat("StringMatcher{safe_regex=%s
|
155
|
-
regex_matcher_->pattern()
|
156
|
-
case_sensitive_ ? "" : ", case_sensitive=false");
|
143
|
+
return absl::StrFormat("StringMatcher{safe_regex=%s}",
|
144
|
+
regex_matcher_->pattern());
|
157
145
|
default:
|
158
146
|
return "";
|
159
147
|
}
|