grpc 1.40.0 → 1.41.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.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +27 -36
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -1
- data/include/grpc/event_engine/endpoint_config.h +6 -11
- data/include/grpc/event_engine/event_engine.h +63 -58
- data/include/grpc/event_engine/port.h +1 -3
- data/include/grpc/event_engine/slice_allocator.h +6 -1
- data/include/grpc/fork.h +1 -1
- data/include/grpc/grpc.h +10 -4
- data/include/grpc/grpc_posix.h +5 -2
- data/include/grpc/impl/codegen/atm.h +5 -3
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
- data/include/grpc/impl/codegen/atm_windows.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -0
- data/include/grpc/impl/codegen/connectivity_state.h +2 -0
- data/include/grpc/impl/codegen/fork.h +2 -0
- data/include/grpc/impl/codegen/gpr_slice.h +2 -0
- data/include/grpc/impl/codegen/gpr_types.h +2 -0
- data/include/grpc/impl/codegen/grpc_types.h +4 -5
- data/include/grpc/impl/codegen/log.h +2 -0
- data/include/grpc/impl/codegen/port_platform.h +26 -22
- data/include/grpc/impl/codegen/propagation_bits.h +2 -0
- data/include/grpc/impl/codegen/slice.h +2 -0
- data/include/grpc/impl/codegen/status.h +2 -0
- data/include/grpc/impl/codegen/sync.h +8 -5
- data/include/grpc/impl/codegen/sync_abseil.h +2 -0
- data/include/grpc/impl/codegen/sync_custom.h +2 -0
- data/include/grpc/impl/codegen/sync_generic.h +3 -0
- data/include/grpc/impl/codegen/sync_posix.h +4 -2
- data/include/grpc/impl/codegen/sync_windows.h +2 -0
- data/include/grpc/slice.h +1 -1
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +1 -1
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_windows.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_abseil.h +1 -1
- data/include/grpc/support/sync_custom.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_windows.h +1 -1
- data/include/grpc/support/time.h +2 -2
- data/src/core/ext/filters/census/grpc_context.cc +1 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +0 -1
- data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +1 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +24 -52
- data/src/core/ext/filters/client_channel/client_channel.h +3 -3
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -1
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -6
- data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +8 -7
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +2 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -23
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +2 -8
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +15 -18
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +10 -7
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -8
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +11 -44
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +2 -10
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +6 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +14 -19
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +5 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +2 -3
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +36 -30
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +8 -6
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -13
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -2
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +7 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +5 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +9 -13
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +29 -12
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -0
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -3
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +10 -6
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +2 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +60 -37
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -6
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -1
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +2 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +24 -30
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -1
- data/src/core/ext/transport/chttp2/transport/context_list.h +1 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +39 -23
- data/src/core/ext/transport/chttp2/transport/flow_control.h +9 -3
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +36 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +12 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +272 -666
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +236 -70
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +776 -1037
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +48 -169
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +159 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +130 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.h +30 -0
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +20 -30
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.cc +7 -3
- data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +32 -28
- data/src/core/ext/transport/inproc/inproc_transport.cc +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +96 -96
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +221 -89
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +48 -48
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +151 -61
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +99 -99
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +171 -69
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +126 -127
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +229 -101
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +23 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +28 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +82 -82
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +201 -81
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +24 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +62 -62
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +131 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +51 -51
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +81 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +62 -62
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +141 -57
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +57 -22
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +174 -17
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -37
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +61 -25
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +40 -40
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +30 -30
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +81 -33
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +41 -29
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +141 -43
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +46 -43
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +88 -29
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +18 -18
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +281 -277
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +569 -248
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +23 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +115 -116
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +191 -77
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +46 -32
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +118 -34
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +44 -42
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +108 -55
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +42 -42
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +61 -25
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +28 -28
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +41 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +9 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +19 -19
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +11 -5
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +1 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +58 -58
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +111 -45
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +68 -68
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +121 -49
- data/src/core/ext/upb-generated/google/api/http.upb.c +18 -18
- data/src/core/ext/upb-generated/google/api/http.upb.h +31 -13
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +153 -153
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +271 -109
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +31 -13
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +19 -19
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +91 -37
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +5 -5
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +11 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +60 -60
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +101 -41
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -9
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +21 -9
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +91 -37
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +8 -8
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +31 -13
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +13 -13
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +11 -5
- data/src/core/ext/upb-generated/validate/validate.upb.c +220 -220
- data/src/core/ext/upb-generated/validate/validate.upb.h +231 -93
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +8 -8
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +21 -9
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +11 -11
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +21 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +384 -382
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +94 -63
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +30 -19
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +791 -780
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +96 -100
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +133 -115
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +178 -173
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +14 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +103 -103
- data/src/core/ext/xds/certificate_provider_registry.cc +2 -2
- data/src/core/ext/xds/xds_api.cc +788 -910
- data/src/core/ext/xds/xds_api.h +16 -33
- data/src/core/ext/xds/xds_bootstrap.cc +27 -52
- data/src/core/ext/xds/xds_client.cc +69 -30
- data/src/core/ext/xds/xds_client_stats.cc +16 -15
- data/src/core/ext/xds/xds_client_stats.h +6 -6
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -3
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +1 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +10 -10
- data/src/core/lib/address_utils/parse_address.cc +4 -8
- data/src/core/lib/address_utils/sockaddr_utils.cc +2 -2
- data/src/core/lib/channel/channel_args.cc +2 -1
- data/src/core/lib/channel/channel_stack.cc +5 -3
- data/src/core/lib/channel/channel_stack_builder.cc +1 -11
- data/src/core/lib/channel/channel_stack_builder.h +0 -8
- data/src/core/lib/channel/channel_trace.cc +4 -3
- data/src/core/lib/channel/channel_trace.h +1 -0
- data/src/core/lib/channel/channelz.cc +40 -36
- data/src/core/lib/channel/channelz.h +27 -27
- data/src/core/lib/channel/channelz_registry.cc +7 -6
- data/src/core/lib/channel/connected_channel.cc +1 -0
- data/src/core/lib/channel/handshaker.cc +2 -1
- data/src/core/lib/channel/handshaker.h +1 -2
- data/src/core/lib/channel/handshaker_factory.h +10 -2
- data/src/core/lib/channel/handshaker_registry.cc +15 -70
- data/src/core/lib/channel/handshaker_registry.h +29 -12
- data/src/core/lib/channel/status_util.h +2 -2
- data/src/core/lib/compression/algorithm_metadata.h +1 -0
- data/src/core/lib/compression/compression_args.cc +2 -1
- data/src/core/lib/compression/compression_internal.cc +2 -4
- data/src/core/lib/compression/message_compress.cc +2 -2
- data/src/core/lib/compression/stream_compression.cc +2 -1
- data/src/core/lib/compression/stream_compression.h +2 -1
- data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
- data/src/core/lib/compression/stream_compression_identity.cc +2 -1
- data/src/core/lib/config/core_configuration.cc +54 -0
- data/src/core/lib/config/core_configuration.h +108 -0
- data/src/core/lib/debug/stats.h +1 -0
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/stats_data.h +1 -0
- data/src/core/lib/debug/trace.cc +1 -0
- data/src/core/lib/debug/trace.h +2 -1
- data/src/core/lib/event_engine/endpoint_config.cc +0 -1
- data/src/core/lib/event_engine/event_engine.cc +3 -3
- data/src/core/lib/event_engine/sockaddr.cc +3 -3
- data/src/core/lib/gpr/alloc.cc +4 -3
- data/src/core/lib/gpr/env_linux.cc +1 -2
- data/src/core/lib/gpr/env_posix.cc +2 -3
- data/src/core/lib/gpr/log.cc +3 -3
- data/src/core/lib/gpr/log_android.cc +3 -2
- data/src/core/lib/gpr/log_linux.cc +7 -4
- data/src/core/lib/gpr/log_posix.cc +6 -3
- data/src/core/lib/gpr/string.h +2 -2
- data/src/core/lib/gpr/sync.cc +2 -2
- data/src/core/lib/gpr/sync_abseil.cc +7 -6
- data/src/core/lib/gpr/sync_posix.cc +3 -3
- data/src/core/lib/gpr/time.cc +3 -2
- data/src/core/lib/gpr/time_windows.cc +3 -2
- data/src/core/lib/gpr/tls.h +120 -41
- data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
- data/src/core/lib/gprpp/arena.cc +2 -1
- data/src/core/lib/gprpp/arena.h +5 -5
- data/src/core/lib/gprpp/atomic_utils.h +47 -0
- data/src/core/lib/gprpp/bitset.h +166 -0
- data/src/core/lib/gprpp/construct_destruct.h +39 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
- data/src/core/lib/gprpp/fork.cc +14 -12
- data/src/core/lib/gprpp/fork.h +4 -4
- data/src/core/lib/gprpp/global_config.h +1 -2
- data/src/core/lib/gprpp/global_config_env.cc +7 -7
- data/src/core/lib/gprpp/global_config_generic.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +8 -5
- data/src/core/lib/gprpp/match.h +73 -0
- data/src/core/lib/gprpp/memory.h +3 -3
- data/src/core/lib/gprpp/mpscq.cc +7 -7
- data/src/core/lib/gprpp/mpscq.h +6 -5
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +18 -18
- data/src/core/lib/gprpp/status_helper.cc +4 -4
- data/src/core/lib/gprpp/sync.h +3 -1
- data/src/core/lib/gprpp/thd_posix.cc +5 -5
- data/src/core/lib/gprpp/thd_windows.cc +4 -11
- data/src/core/lib/gprpp/time_util.cc +2 -2
- data/src/core/lib/gprpp/time_util.h +2 -2
- data/src/core/lib/http/format_request.cc +1 -0
- data/src/core/lib/http/format_request.h +1 -0
- data/src/core/lib/http/httpcli.cc +9 -9
- data/src/core/lib/http/httpcli.h +3 -0
- data/src/core/lib/http/httpcli_security_connector.cc +5 -8
- data/src/core/lib/http/parser.h +1 -0
- data/src/core/lib/iomgr/buffer_list.cc +2 -1
- data/src/core/lib/iomgr/buffer_list.h +1 -2
- data/src/core/lib/iomgr/call_combiner.cc +1 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/combiner.cc +3 -2
- data/src/core/lib/iomgr/combiner.h +1 -0
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
- data/src/core/lib/iomgr/endpoint.cc +0 -4
- data/src/core/lib/iomgr/endpoint.h +1 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -20
- data/src/core/lib/iomgr/endpoint_cfstream.h +1 -1
- data/src/core/lib/iomgr/endpoint_pair.h +1 -0
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +1 -2
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +15 -11
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +17 -9
- data/src/core/lib/iomgr/error.h +23 -9
- data/src/core/lib/iomgr/error_cfstream.cc +2 -2
- data/src/core/lib/iomgr/error_internal.h +1 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +14 -22
- data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -22
- data/src/core/lib/iomgr/ev_poll_posix.cc +13 -25
- data/src/core/lib/iomgr/ev_posix.cc +1 -2
- data/src/core/lib/iomgr/event_engine/endpoint.cc +3 -22
- data/src/core/lib/iomgr/event_engine/endpoint.h +1 -2
- data/src/core/lib/iomgr/event_engine/iomgr.cc +17 -18
- data/src/core/lib/iomgr/event_engine/iomgr.h +20 -2
- data/src/core/lib/iomgr/event_engine/resolver.cc +2 -1
- data/src/core/lib/iomgr/event_engine/tcp.cc +53 -24
- data/src/core/lib/iomgr/exec_ctx.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.h +11 -19
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +10 -9
- data/src/core/lib/iomgr/executor/mpmcqueue.h +4 -3
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -2
- data/src/core/lib/iomgr/executor/threadpool.h +2 -1
- data/src/core/lib/iomgr/executor.cc +5 -6
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
- data/src/core/lib/iomgr/iocp_windows.cc +1 -0
- data/src/core/lib/iomgr/iomgr.h +2 -2
- data/src/core/lib/iomgr/iomgr_custom.cc +2 -2
- data/src/core/lib/iomgr/iomgr_custom.h +2 -2
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -1
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -2
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
- data/src/core/lib/iomgr/polling_entity.cc +2 -2
- data/src/core/lib/iomgr/pollset_custom.cc +3 -4
- data/src/core/lib/iomgr/pollset_custom.h +2 -2
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
- data/src/core/lib/iomgr/port.h +0 -5
- data/src/core/lib/iomgr/python_util.h +1 -0
- data/src/core/lib/iomgr/resolve_address.cc +2 -1
- data/src/core/lib/iomgr/resolve_address.h +0 -4
- data/src/core/lib/iomgr/resolve_address_custom.cc +4 -4
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +2 -4
- data/src/core/lib/iomgr/resolve_address_windows.cc +6 -8
- data/src/core/lib/iomgr/resource_quota.cc +127 -42
- data/src/core/lib/iomgr/resource_quota.h +66 -17
- data/src/core/lib/iomgr/sockaddr.h +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -3
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.h +2 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -3
- data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
- data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_client.cc +4 -2
- data/src/core/lib/iomgr/tcp_client.h +4 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -19
- data/src/core/lib/iomgr/tcp_client_custom.cc +9 -17
- data/src/core/lib/iomgr/tcp_client_posix.cc +24 -9
- data/src/core/lib/iomgr/tcp_client_posix.h +5 -2
- data/src/core/lib/iomgr/tcp_client_windows.cc +14 -6
- data/src/core/lib/iomgr/tcp_custom.cc +11 -23
- data/src/core/lib/iomgr/tcp_custom.h +2 -1
- data/src/core/lib/iomgr/tcp_posix.cc +29 -59
- data/src/core/lib/iomgr/tcp_posix.h +11 -12
- data/src/core/lib/iomgr/tcp_server.cc +6 -4
- data/src/core/lib/iomgr/tcp_server.h +12 -9
- data/src/core/lib/iomgr/tcp_server_custom.cc +15 -33
- data/src/core/lib/iomgr/tcp_server_posix.cc +20 -13
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +13 -9
- data/src/core/lib/iomgr/tcp_windows.cc +6 -25
- data/src/core/lib/iomgr/tcp_windows.h +2 -1
- data/src/core/lib/iomgr/timer.cc +1 -0
- data/src/core/lib/iomgr/timer.h +1 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/timer_generic.cc +8 -38
- data/src/core/lib/iomgr/timer_generic.h +1 -0
- data/src/core/lib/iomgr/timer_heap.cc +1 -2
- data/src/core/lib/iomgr/udp_server.cc +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -5
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -0
- data/src/core/lib/iomgr/work_serializer.cc +4 -4
- data/src/core/lib/iomgr/work_serializer.h +1 -1
- data/src/core/lib/json/json_reader.cc +9 -17
- data/src/core/lib/json/json_util.h +18 -26
- data/src/core/lib/matchers/matchers.h +0 -1
- data/src/core/lib/profiling/basic_timers.cc +8 -6
- data/src/core/lib/profiling/stap_timers.cc +2 -2
- data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -4
- data/src/core/lib/security/authorization/evaluate_args.cc +2 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +159 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
- data/src/core/lib/security/context/security_context.cc +7 -6
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -3
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +13 -26
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -2
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +3 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +13 -22
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -4
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +55 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +31 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +3 -7
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +4 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +3 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +10 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +2 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -6
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +9 -14
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +4 -6
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -14
- data/src/core/lib/security/transport/secure_endpoint.h +1 -0
- data/src/core/lib/security/transport/security_handshaker.cc +5 -4
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/util/json_util.cc +6 -8
- data/src/core/lib/slice/percent_encoding.cc +73 -30
- data/src/core/lib/slice/percent_encoding.h +29 -28
- data/src/core/lib/slice/slice.cc +2 -3
- data/src/core/lib/slice/slice_buffer.cc +1 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +2 -2
- data/src/core/lib/surface/api_trace.cc +2 -1
- data/src/core/lib/surface/api_trace.h +1 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
- data/src/core/lib/surface/call.cc +9 -8
- data/src/core/lib/surface/call.h +3 -3
- data/src/core/lib/surface/call_details.cc +2 -2
- data/src/core/lib/surface/call_log_batch.cc +2 -2
- data/src/core/lib/surface/channel.cc +22 -9
- data/src/core/lib/surface/channel.h +14 -2
- data/src/core/lib/surface/channel_ping.cc +1 -2
- data/src/core/lib/surface/channel_stack_type.cc +2 -1
- data/src/core/lib/surface/completion_queue.cc +54 -64
- data/src/core/lib/surface/completion_queue_factory.cc +2 -1
- data/src/core/lib/surface/completion_queue_factory.h +1 -0
- data/src/core/lib/surface/event_string.cc +1 -0
- data/src/core/lib/surface/init.cc +4 -9
- data/src/core/lib/surface/init.h +0 -1
- data/src/core/lib/surface/init_secure.cc +23 -4
- data/src/core/lib/surface/lame_client.cc +6 -5
- data/src/core/lib/surface/metadata_array.cc +2 -2
- data/src/core/lib/surface/server.cc +17 -33
- data/src/core/lib/surface/server.h +11 -13
- data/src/core/lib/surface/validate_metadata.cc +44 -16
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.h +1 -0
- data/src/core/lib/transport/connectivity_state.cc +8 -5
- data/src/core/lib/transport/connectivity_state.h +2 -2
- data/src/core/lib/transport/error_utils.cc +1 -0
- data/src/core/lib/transport/metadata.cc +10 -10
- data/src/core/lib/transport/metadata.h +13 -11
- data/src/core/lib/transport/metadata_batch.h +8 -0
- data/src/core/lib/transport/transport_op_string.cc +2 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +14 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -2
- data/src/core/tsi/alts/crypt/gsec.h +2 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
- data/src/core/tsi/ssl_transport_security.cc +11 -9
- data/src/core/tsi/ssl_transport_security.h +3 -1
- data/src/core/tsi/transport_security.cc +3 -3
- data/src/core/tsi/transport_security_grpc.h +1 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
- data/src/ruby/ext/grpc/rb_call.c +5 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_channel.c +10 -8
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
- data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc.c +5 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_server.c +6 -5
- data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/err_data.c +294 -292
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +52 -47
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_locl.h → internal.h} +20 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +23 -2
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +45 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +6 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +9 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +160 -74
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +25 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +5 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +58 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +184 -55
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +0 -5
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +9 -16
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +44 -2
- data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +24 -11
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +75 -68
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +17 -9
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +25 -6
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +1 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +11 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +0 -49
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +121 -65
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +14 -6
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +9 -11
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +2 -2
- data/third_party/upb/upb/decode.c +129 -60
- data/third_party/upb/upb/decode.h +32 -4
- data/third_party/upb/upb/decode_fast.c +513 -500
- data/third_party/upb/upb/decode_fast.h +27 -0
- data/third_party/upb/upb/{decode.int.h → decode_internal.h} +38 -8
- data/third_party/upb/upb/def.c +171 -181
- data/third_party/upb/upb/def.h +41 -19
- data/third_party/upb/upb/def.hpp +29 -0
- data/third_party/upb/upb/encode.c +49 -16
- data/third_party/upb/upb/encode.h +29 -2
- data/third_party/upb/upb/msg.c +169 -28
- data/third_party/upb/upb/msg.h +75 -580
- data/third_party/upb/upb/msg_internal.h +687 -0
- data/third_party/upb/upb/port_def.inc +85 -24
- data/third_party/upb/upb/port_undef.inc +38 -1
- data/third_party/upb/upb/reflection.c +29 -37
- data/third_party/upb/upb/reflection.h +36 -8
- data/third_party/upb/upb/reflection.hpp +37 -0
- data/third_party/upb/upb/table.c +211 -86
- data/third_party/upb/upb/{table.int.h → table_internal.h} +56 -180
- data/third_party/upb/upb/text_encode.c +32 -4
- data/third_party/upb/upb/text_encode.h +26 -0
- data/third_party/upb/upb/upb.c +59 -8
- data/third_party/upb/upb/upb.h +36 -6
- data/third_party/upb/upb/upb.hpp +24 -0
- data/third_party/upb/upb/upb_internal.h +58 -0
- metadata +58 -56
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -243
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
- data/src/core/lib/gpr/tls_gcc.h +0 -52
- data/src/core/lib/gpr/tls_msvc.h +0 -54
- data/src/core/lib/gpr/tls_pthread.cc +0 -30
- data/src/core/lib/gpr/tls_pthread.h +0 -56
- data/src/core/lib/gpr/tls_stdcpp.h +0 -48
- data/src/core/lib/gprpp/atomic.h +0 -104
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- data/src/core/lib/iomgr/pollset_uv.cc +0 -95
- data/src/core/lib/iomgr/pollset_uv.h +0 -36
- data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
- data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
- data/src/core/lib/iomgr/tcp_uv.cc +0 -421
- data/src/core/lib/iomgr/timer_uv.cc +0 -66
- data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
- data/third_party/upb/upb/upb.int.h +0 -29
@@ -78,8 +78,9 @@ void grpc_custom_endpoint_init(grpc_socket_vtable* impl);
|
|
78
78
|
|
79
79
|
void grpc_custom_close_server_callback(grpc_tcp_listener* listener);
|
80
80
|
|
81
|
+
/// Takes ownership of \a slice_allocator.
|
81
82
|
grpc_endpoint* custom_tcp_endpoint_create(grpc_custom_socket* socket,
|
82
|
-
|
83
|
+
grpc_slice_allocator* slice_allocator,
|
83
84
|
const char* peer_string);
|
84
85
|
|
85
86
|
#endif /* GRPC_CORE_LIB_IOMGR_TCP_CUSTOM_H */
|
@@ -22,8 +22,6 @@
|
|
22
22
|
|
23
23
|
#ifdef GRPC_POSIX_SOCKET_TCP
|
24
24
|
|
25
|
-
#include "src/core/lib/iomgr/tcp_posix.h"
|
26
|
-
|
27
25
|
#include <errno.h>
|
28
26
|
#include <limits.h>
|
29
27
|
#include <netinet/in.h>
|
@@ -35,6 +33,7 @@
|
|
35
33
|
#include <sys/socket.h>
|
36
34
|
#include <sys/types.h>
|
37
35
|
#include <unistd.h>
|
36
|
+
|
38
37
|
#include <algorithm>
|
39
38
|
#include <unordered_map>
|
40
39
|
|
@@ -55,7 +54,9 @@
|
|
55
54
|
#include "src/core/lib/iomgr/buffer_list.h"
|
56
55
|
#include "src/core/lib/iomgr/ev_posix.h"
|
57
56
|
#include "src/core/lib/iomgr/executor.h"
|
57
|
+
#include "src/core/lib/iomgr/resource_quota.h"
|
58
58
|
#include "src/core/lib/iomgr/socket_utils_posix.h"
|
59
|
+
#include "src/core/lib/iomgr/tcp_posix.h"
|
59
60
|
#include "src/core/lib/profiling/timers.h"
|
60
61
|
#include "src/core/lib/slice/slice_internal.h"
|
61
62
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
@@ -136,12 +137,12 @@ class TcpZerocopySendRecord {
|
|
136
137
|
}
|
137
138
|
|
138
139
|
// References: 1 reference per sendmsg(), and 1 for the tcp_write().
|
139
|
-
void Ref() { ref_.
|
140
|
+
void Ref() { ref_.fetch_add(1, std::memory_order_relaxed); }
|
140
141
|
|
141
142
|
// Unref: called when we get an error queue notification for a sendmsg(), if a
|
142
143
|
// sendmsg() failed or when tcp_write() is done.
|
143
144
|
bool Unref() {
|
144
|
-
const intptr_t prior = ref_.
|
145
|
+
const intptr_t prior = ref_.fetch_sub(1, std::memory_order_acq_rel);
|
145
146
|
GPR_DEBUG_ASSERT(prior > 0);
|
146
147
|
if (prior == 1) {
|
147
148
|
AllSendsComplete();
|
@@ -159,7 +160,7 @@ class TcpZerocopySendRecord {
|
|
159
160
|
void AssertEmpty() {
|
160
161
|
GPR_DEBUG_ASSERT(buf_.count == 0);
|
161
162
|
GPR_DEBUG_ASSERT(buf_.length == 0);
|
162
|
-
GPR_DEBUG_ASSERT(ref_.
|
163
|
+
GPR_DEBUG_ASSERT(ref_.load(std::memory_order_relaxed) == 0);
|
163
164
|
}
|
164
165
|
|
165
166
|
// When all sendmsg() calls associated with this tcp_write() have been
|
@@ -167,12 +168,12 @@ class TcpZerocopySendRecord {
|
|
167
168
|
// for each sendmsg()) and all reference counts have been dropped, drop our
|
168
169
|
// reference to the underlying data since we no longer need it.
|
169
170
|
void AllSendsComplete() {
|
170
|
-
GPR_DEBUG_ASSERT(ref_.
|
171
|
+
GPR_DEBUG_ASSERT(ref_.load(std::memory_order_relaxed) == 0);
|
171
172
|
grpc_slice_buffer_reset_and_unref_internal(&buf_);
|
172
173
|
}
|
173
174
|
|
174
175
|
grpc_slice_buffer buf_;
|
175
|
-
|
176
|
+
std::atomic<intptr_t> ref_{0};
|
176
177
|
OutgoingOffset out_offset_;
|
177
178
|
};
|
178
179
|
|
@@ -286,7 +287,7 @@ class TcpZerocopySendCtx {
|
|
286
287
|
|
287
288
|
// Indicate that we are disposing of this zerocopy context. This indicator
|
288
289
|
// will prevent new zerocopy writes from being issued.
|
289
|
-
void Shutdown() { shutdown_.
|
290
|
+
void Shutdown() { shutdown_.store(true, std::memory_order_release); }
|
290
291
|
|
291
292
|
// Indicates that there are no inflight tcp_write() instances with zerocopy
|
292
293
|
// enabled.
|
@@ -317,7 +318,7 @@ class TcpZerocopySendCtx {
|
|
317
318
|
}
|
318
319
|
|
319
320
|
TcpZerocopySendRecord* TryGetSendRecordLocked() {
|
320
|
-
if (shutdown_.
|
321
|
+
if (shutdown_.load(std::memory_order_acquire)) {
|
321
322
|
return nullptr;
|
322
323
|
}
|
323
324
|
if (free_send_records_size_ == 0) {
|
@@ -339,7 +340,7 @@ class TcpZerocopySendCtx {
|
|
339
340
|
int free_send_records_size_;
|
340
341
|
Mutex lock_;
|
341
342
|
uint32_t last_send_ = 0;
|
342
|
-
|
343
|
+
std::atomic<bool> shutdown_{false};
|
343
344
|
bool enabled_ = false;
|
344
345
|
size_t threshold_bytes_ = kDefaultSendBytesThreshold;
|
345
346
|
std::unordered_map<uint32_t, TcpZerocopySendRecord*> ctx_lookup_;
|
@@ -392,8 +393,7 @@ struct grpc_tcp {
|
|
392
393
|
std::string peer_string;
|
393
394
|
std::string local_address;
|
394
395
|
|
395
|
-
|
396
|
-
grpc_resource_user_slice_allocator slice_allocator;
|
396
|
+
grpc_slice_allocator* slice_allocator;
|
397
397
|
|
398
398
|
grpc_core::TracedBuffer* tb_head; /* List of traced buffers */
|
399
399
|
gpr_mu tb_mu; /* Lock for access to list of traced buffers */
|
@@ -584,24 +584,6 @@ static void finish_estimate(grpc_tcp* tcp) {
|
|
584
584
|
tcp->bytes_read_this_round = 0;
|
585
585
|
}
|
586
586
|
|
587
|
-
static size_t get_target_read_size(grpc_tcp* tcp) {
|
588
|
-
grpc_resource_quota* rq = grpc_resource_user_quota(tcp->resource_user);
|
589
|
-
double pressure = grpc_resource_quota_get_memory_pressure(rq);
|
590
|
-
double target =
|
591
|
-
tcp->target_length * (pressure > 0.8 ? (1.0 - pressure) / 0.2 : 1.0);
|
592
|
-
size_t sz = ((static_cast<size_t> GPR_CLAMP(target, tcp->min_read_chunk_size,
|
593
|
-
tcp->max_read_chunk_size)) +
|
594
|
-
255) &
|
595
|
-
~static_cast<size_t>(255);
|
596
|
-
/* don't use more than 1/16th of the overall resource quota for a single read
|
597
|
-
* alloc */
|
598
|
-
size_t rqmax = grpc_resource_quota_peek_size(rq);
|
599
|
-
if (sz > rqmax / 16 && rqmax > 1024) {
|
600
|
-
sz = rqmax / 16;
|
601
|
-
}
|
602
|
-
return sz;
|
603
|
-
}
|
604
|
-
|
605
587
|
static grpc_error_handle tcp_annotate_error(grpc_error_handle src_error,
|
606
588
|
grpc_tcp* tcp) {
|
607
589
|
return grpc_error_set_str(
|
@@ -621,14 +603,13 @@ static void tcp_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
|
|
621
603
|
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
622
604
|
ZerocopyDisableAndWaitForRemaining(tcp);
|
623
605
|
grpc_fd_shutdown(tcp->em_fd, why);
|
624
|
-
grpc_resource_user_shutdown(tcp->resource_user);
|
625
606
|
}
|
626
607
|
|
627
608
|
static void tcp_free(grpc_tcp* tcp) {
|
628
609
|
grpc_fd_orphan(tcp->em_fd, tcp->release_fd_cb, tcp->release_fd,
|
629
610
|
"tcp_unref_orphan");
|
630
611
|
grpc_slice_buffer_destroy_internal(&tcp->last_read_buffer);
|
631
|
-
|
612
|
+
grpc_slice_allocator_destroy(tcp->slice_allocator);
|
632
613
|
/* The lock is not really necessary here, since all refs have been released */
|
633
614
|
gpr_mu_lock(&tcp->tb_mu);
|
634
615
|
grpc_core::TracedBuffer::Shutdown(
|
@@ -864,16 +845,16 @@ static void tcp_read_allocation_done(void* tcpp, grpc_error_handle error) {
|
|
864
845
|
}
|
865
846
|
|
866
847
|
static void tcp_continue_read(grpc_tcp* tcp) {
|
867
|
-
size_t target_read_size = get_target_read_size(tcp);
|
868
848
|
/* Wait for allocation only when there is no buffer left. */
|
869
849
|
if (tcp->incoming_buffer->length == 0 &&
|
870
850
|
tcp->incoming_buffer->count < MAX_READ_IOVEC) {
|
871
851
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
872
852
|
gpr_log(GPR_INFO, "TCP:%p alloc_slices", tcp);
|
873
853
|
}
|
874
|
-
if (GPR_UNLIKELY(!
|
875
|
-
|
876
|
-
|
854
|
+
if (GPR_UNLIKELY(!grpc_slice_allocator_allocate(
|
855
|
+
tcp->slice_allocator, tcp->target_length, 1,
|
856
|
+
grpc_slice_allocator_intent::kReadBuffer, tcp->incoming_buffer,
|
857
|
+
tcp_read_allocation_done, tcp))) {
|
877
858
|
// Wait for allocation.
|
878
859
|
return;
|
879
860
|
}
|
@@ -1276,10 +1257,10 @@ void tcp_shutdown_buffer_list(grpc_tcp* tcp) {
|
|
1276
1257
|
}
|
1277
1258
|
}
|
1278
1259
|
|
1279
|
-
#if defined(IOV_MAX) && IOV_MAX <
|
1260
|
+
#if defined(IOV_MAX) && IOV_MAX < 260
|
1280
1261
|
#define MAX_WRITE_IOVEC IOV_MAX
|
1281
1262
|
#else
|
1282
|
-
#define MAX_WRITE_IOVEC
|
1263
|
+
#define MAX_WRITE_IOVEC 260
|
1283
1264
|
#endif
|
1284
1265
|
msg_iovlen_type TcpZerocopySendRecord::PopulateIovs(size_t* unwind_slice_idx,
|
1285
1266
|
size_t* unwind_byte_idx,
|
@@ -1324,13 +1305,17 @@ void TcpZerocopySendRecord::UpdateOffsetForBytesSent(size_t sending_length,
|
|
1324
1305
|
// returns true if done, false if pending; if returning true, *error is set
|
1325
1306
|
static bool do_tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
|
1326
1307
|
grpc_error_handle* error) {
|
1327
|
-
struct msghdr msg;
|
1328
|
-
struct iovec iov[MAX_WRITE_IOVEC];
|
1329
1308
|
msg_iovlen_type iov_size;
|
1330
1309
|
ssize_t sent_length = 0;
|
1331
1310
|
size_t sending_length;
|
1332
1311
|
size_t unwind_slice_idx;
|
1333
1312
|
size_t unwind_byte_idx;
|
1313
|
+
bool tried_sending_message;
|
1314
|
+
msghdr msg;
|
1315
|
+
// iov consumes a large space. Keep it as the last item on the stack to
|
1316
|
+
// improve locality. After all, we expect only the first elements of it being
|
1317
|
+
// populated in most cases.
|
1318
|
+
iovec iov[MAX_WRITE_IOVEC];
|
1334
1319
|
while (true) {
|
1335
1320
|
sending_length = 0;
|
1336
1321
|
iov_size = record->PopulateIovs(&unwind_slice_idx, &unwind_byte_idx,
|
@@ -1340,7 +1325,7 @@ static bool do_tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
|
|
1340
1325
|
msg.msg_iov = iov;
|
1341
1326
|
msg.msg_iovlen = iov_size;
|
1342
1327
|
msg.msg_flags = 0;
|
1343
|
-
|
1328
|
+
tried_sending_message = false;
|
1344
1329
|
// Before calling sendmsg (with or without timestamps): we
|
1345
1330
|
// take a single ref on the zerocopy send record.
|
1346
1331
|
tcp->tcp_zerocopy_send_ctx.NoteSend(record);
|
@@ -1656,11 +1641,6 @@ static int tcp_get_fd(grpc_endpoint* ep) {
|
|
1656
1641
|
return tcp->fd;
|
1657
1642
|
}
|
1658
1643
|
|
1659
|
-
static grpc_resource_user* tcp_get_resource_user(grpc_endpoint* ep) {
|
1660
|
-
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
1661
|
-
return tcp->resource_user;
|
1662
|
-
}
|
1663
|
-
|
1664
1644
|
static bool tcp_can_track_err(grpc_endpoint* ep) {
|
1665
1645
|
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
1666
1646
|
if (!grpc_event_engine_can_track_errors()) {
|
@@ -1681,7 +1661,6 @@ static const grpc_endpoint_vtable vtable = {tcp_read,
|
|
1681
1661
|
tcp_delete_from_pollset_set,
|
1682
1662
|
tcp_shutdown,
|
1683
1663
|
tcp_destroy,
|
1684
|
-
tcp_get_resource_user,
|
1685
1664
|
tcp_get_peer,
|
1686
1665
|
tcp_get_local_address,
|
1687
1666
|
tcp_get_fd,
|
@@ -1691,7 +1670,8 @@ static const grpc_endpoint_vtable vtable = {tcp_read,
|
|
1691
1670
|
|
1692
1671
|
grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd,
|
1693
1672
|
const grpc_channel_args* channel_args,
|
1694
|
-
const char* peer_string
|
1673
|
+
const char* peer_string,
|
1674
|
+
grpc_slice_allocator* slice_allocator) {
|
1695
1675
|
static constexpr bool kZerocpTxEnabledDefault = false;
|
1696
1676
|
int tcp_read_chunk_size = GRPC_TCP_DEFAULT_READ_SLICE_SIZE;
|
1697
1677
|
int tcp_max_read_chunk_size = 4 * 1024 * 1024;
|
@@ -1701,7 +1681,6 @@ grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd,
|
|
1701
1681
|
grpc_core::TcpZerocopySendCtx::kDefaultSendBytesThreshold;
|
1702
1682
|
int tcp_tx_zerocopy_max_simult_sends =
|
1703
1683
|
grpc_core::TcpZerocopySendCtx::kDefaultMaxSends;
|
1704
|
-
grpc_resource_quota* resource_quota = grpc_resource_quota_create(nullptr);
|
1705
1684
|
if (channel_args != nullptr) {
|
1706
1685
|
for (size_t i = 0; i < channel_args->num_args; i++) {
|
1707
1686
|
if (0 ==
|
@@ -1719,12 +1698,6 @@ grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd,
|
|
1719
1698
|
grpc_integer_options options = {tcp_read_chunk_size, 1, MAX_CHUNK_SIZE};
|
1720
1699
|
tcp_max_read_chunk_size =
|
1721
1700
|
grpc_channel_arg_get_integer(&channel_args->args[i], options);
|
1722
|
-
} else if (0 ==
|
1723
|
-
strcmp(channel_args->args[i].key, GRPC_ARG_RESOURCE_QUOTA)) {
|
1724
|
-
grpc_resource_quota_unref_internal(resource_quota);
|
1725
|
-
resource_quota =
|
1726
|
-
grpc_resource_quota_ref_internal(static_cast<grpc_resource_quota*>(
|
1727
|
-
channel_args->args[i].value.pointer.p));
|
1728
1701
|
} else if (0 == strcmp(channel_args->args[i].key,
|
1729
1702
|
GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED)) {
|
1730
1703
|
tcp_tx_zerocopy_enabled = grpc_channel_arg_get_bool(
|
@@ -1757,6 +1730,7 @@ grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd,
|
|
1757
1730
|
tcp->base.vtable = &vtable;
|
1758
1731
|
tcp->peer_string = peer_string;
|
1759
1732
|
tcp->fd = grpc_fd_wrapped_fd(em_fd);
|
1733
|
+
tcp->slice_allocator = slice_allocator;
|
1760
1734
|
grpc_resolved_address resolved_local_addr;
|
1761
1735
|
memset(&resolved_local_addr, 0, sizeof(resolved_local_addr));
|
1762
1736
|
resolved_local_addr.len = sizeof(resolved_local_addr.addr);
|
@@ -1801,10 +1775,6 @@ grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd,
|
|
1801
1775
|
gpr_atm_no_barrier_store(&tcp->shutdown_count, 0);
|
1802
1776
|
tcp->em_fd = em_fd;
|
1803
1777
|
grpc_slice_buffer_init(&tcp->last_read_buffer);
|
1804
|
-
tcp->resource_user = grpc_resource_user_create(resource_quota, peer_string);
|
1805
|
-
grpc_resource_user_slice_allocator_init(
|
1806
|
-
&tcp->slice_allocator, tcp->resource_user, tcp_read_allocation_done, tcp);
|
1807
|
-
grpc_resource_quota_unref_internal(resource_quota);
|
1808
1778
|
gpr_mu_init(&tcp->tb_mu);
|
1809
1779
|
tcp->tb_head = nullptr;
|
1810
1780
|
GRPC_CLOSURE_INIT(&tcp->read_done_closure, tcp_handle_read, tcp,
|
@@ -31,29 +31,28 @@
|
|
31
31
|
|
32
32
|
#include <grpc/support/port_platform.h>
|
33
33
|
|
34
|
-
#include "src/core/lib/iomgr/port.h"
|
35
|
-
|
36
34
|
#include "src/core/lib/debug/trace.h"
|
37
35
|
#include "src/core/lib/iomgr/buffer_list.h"
|
38
36
|
#include "src/core/lib/iomgr/endpoint.h"
|
39
37
|
#include "src/core/lib/iomgr/ev_posix.h"
|
38
|
+
#include "src/core/lib/iomgr/port.h"
|
39
|
+
#include "src/core/lib/iomgr/resource_quota.h"
|
40
40
|
|
41
41
|
extern grpc_core::TraceFlag grpc_tcp_trace;
|
42
42
|
|
43
|
-
|
44
|
-
|
43
|
+
/// Create a tcp endpoint given a file desciptor and a read slice size.
|
44
|
+
/// Takes ownership of \a fd. Takes ownership of the \a slice_allocator.
|
45
45
|
grpc_endpoint* grpc_tcp_create(grpc_fd* fd, const grpc_channel_args* args,
|
46
|
-
const char* peer_string
|
46
|
+
const char* peer_string,
|
47
|
+
grpc_slice_allocator* slice_allocator);
|
47
48
|
|
48
|
-
|
49
|
-
|
50
|
-
Requires: ep must be a tcp endpoint.
|
51
|
-
*/
|
49
|
+
/// Return the tcp endpoint's fd, or -1 if this is not available. Does not
|
50
|
+
/// release the fd. Requires: \a ep must be a tcp endpoint.
|
52
51
|
int grpc_tcp_fd(grpc_endpoint* ep);
|
53
52
|
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
/// Destroy the tcp endpoint without closing its fd. *fd will be set and done
|
54
|
+
/// will be called when the endpoint is destroyed. Requires: \a ep must be a tcp
|
55
|
+
/// endpoint and fd must not be NULL.
|
57
56
|
void grpc_tcp_destroy_and_release_fd(grpc_endpoint* ep, int* fd,
|
58
57
|
grpc_closure* done);
|
59
58
|
|
@@ -22,10 +22,12 @@
|
|
22
22
|
|
23
23
|
grpc_tcp_server_vtable* grpc_tcp_server_impl;
|
24
24
|
|
25
|
-
grpc_error_handle grpc_tcp_server_create(
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
grpc_error_handle grpc_tcp_server_create(
|
26
|
+
grpc_closure* shutdown_complete, const grpc_channel_args* args,
|
27
|
+
grpc_slice_allocator_factory* slice_allocator_factory,
|
28
|
+
grpc_tcp_server** server) {
|
29
|
+
return grpc_tcp_server_impl->create(shutdown_complete, args,
|
30
|
+
slice_allocator_factory, server);
|
29
31
|
}
|
30
32
|
|
31
33
|
void grpc_tcp_server_start(grpc_tcp_server* server,
|
@@ -21,11 +21,11 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <vector>
|
25
|
+
|
24
26
|
#include <grpc/grpc.h>
|
25
27
|
#include <grpc/impl/codegen/grpc_types.h>
|
26
28
|
|
27
|
-
#include <vector>
|
28
|
-
|
29
29
|
#include "src/core/lib/iomgr/closure.h"
|
30
30
|
#include "src/core/lib/iomgr/endpoint.h"
|
31
31
|
#include "src/core/lib/iomgr/resolve_address.h"
|
@@ -63,9 +63,10 @@ class TcpServerFdHandler {
|
|
63
63
|
} // namespace grpc_core
|
64
64
|
|
65
65
|
typedef struct grpc_tcp_server_vtable {
|
66
|
-
grpc_error_handle (*create)(
|
67
|
-
|
68
|
-
|
66
|
+
grpc_error_handle (*create)(
|
67
|
+
grpc_closure* shutdown_complete, const grpc_channel_args* args,
|
68
|
+
grpc_slice_allocator_factory* slice_allocator_factory,
|
69
|
+
grpc_tcp_server** server);
|
69
70
|
void (*start)(grpc_tcp_server* server,
|
70
71
|
const std::vector<grpc_pollset*>* pollsets,
|
71
72
|
grpc_tcp_server_cb on_accept_cb, void* cb_arg);
|
@@ -84,10 +85,12 @@ typedef struct grpc_tcp_server_vtable {
|
|
84
85
|
|
85
86
|
/* Create a server, initially not bound to any ports. The caller owns one ref.
|
86
87
|
If shutdown_complete is not NULL, it will be used by
|
87
|
-
grpc_tcp_server_unref() when the ref count reaches zero.
|
88
|
-
|
89
|
-
|
90
|
-
|
88
|
+
grpc_tcp_server_unref() when the ref count reaches zero.
|
89
|
+
Takes ownership of the slice_allocator_factory. */
|
90
|
+
grpc_error_handle grpc_tcp_server_create(
|
91
|
+
grpc_closure* shutdown_complete, const grpc_channel_args* args,
|
92
|
+
grpc_slice_allocator_factory* slice_allocator_factory,
|
93
|
+
grpc_tcp_server** server);
|
91
94
|
|
92
95
|
/* Start listening to bound ports */
|
93
96
|
void grpc_tcp_server_start(grpc_tcp_server* server,
|
@@ -18,8 +18,6 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include "src/core/lib/iomgr/port.h"
|
22
|
-
|
23
21
|
#include <assert.h>
|
24
22
|
#include <string.h>
|
25
23
|
|
@@ -33,6 +31,7 @@
|
|
33
31
|
#include "src/core/lib/iomgr/error.h"
|
34
32
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
35
33
|
#include "src/core/lib/iomgr/iomgr_custom.h"
|
34
|
+
#include "src/core/lib/iomgr/port.h"
|
36
35
|
#include "src/core/lib/iomgr/sockaddr.h"
|
37
36
|
#include "src/core/lib/iomgr/tcp_custom.h"
|
38
37
|
#include "src/core/lib/iomgr/tcp_server.h"
|
@@ -77,34 +76,17 @@ struct grpc_tcp_server {
|
|
77
76
|
bool shutdown;
|
78
77
|
bool so_reuseport;
|
79
78
|
|
80
|
-
|
79
|
+
grpc_slice_allocator_factory* slice_allocator_factory;
|
81
80
|
};
|
82
81
|
|
83
|
-
static grpc_error_handle tcp_server_create(
|
84
|
-
|
85
|
-
|
82
|
+
static grpc_error_handle tcp_server_create(
|
83
|
+
grpc_closure* shutdown_complete, const grpc_channel_args* args,
|
84
|
+
grpc_slice_allocator_factory* slice_allocator_factory,
|
85
|
+
grpc_tcp_server** server) {
|
86
86
|
grpc_tcp_server* s =
|
87
87
|
static_cast<grpc_tcp_server*>(gpr_malloc(sizeof(grpc_tcp_server)));
|
88
|
-
|
89
|
-
|
90
|
-
s->resource_quota = grpc_resource_quota_create(nullptr);
|
91
|
-
for (size_t i = 0; i < (args == nullptr ? 0 : args->num_args); i++) {
|
92
|
-
if (!grpc_channel_args_find_bool(args, GRPC_ARG_ALLOW_REUSEPORT, true)) {
|
93
|
-
s->so_reuseport = false;
|
94
|
-
}
|
95
|
-
if (0 == strcmp(GRPC_ARG_RESOURCE_QUOTA, args->args[i].key)) {
|
96
|
-
if (args->args[i].type == GRPC_ARG_POINTER) {
|
97
|
-
grpc_resource_quota_unref_internal(s->resource_quota);
|
98
|
-
s->resource_quota = grpc_resource_quota_ref_internal(
|
99
|
-
static_cast<grpc_resource_quota*>(args->args[i].value.pointer.p));
|
100
|
-
} else {
|
101
|
-
grpc_resource_quota_unref_internal(s->resource_quota);
|
102
|
-
gpr_free(s);
|
103
|
-
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
104
|
-
GRPC_ARG_RESOURCE_QUOTA " must be a pointer to a buffer pool");
|
105
|
-
}
|
106
|
-
}
|
107
|
-
}
|
88
|
+
s->so_reuseport =
|
89
|
+
grpc_channel_args_find_bool(args, GRPC_ARG_ALLOW_REUSEPORT, true);
|
108
90
|
gpr_ref_init(&s->refs, 1);
|
109
91
|
s->on_accept_cb = nullptr;
|
110
92
|
s->on_accept_cb_arg = nullptr;
|
@@ -115,6 +97,7 @@ static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
|
|
115
97
|
s->shutdown_starting.tail = nullptr;
|
116
98
|
s->shutdown_complete = shutdown_complete;
|
117
99
|
s->shutdown = false;
|
100
|
+
s->slice_allocator_factory = slice_allocator_factory;
|
118
101
|
*server = s;
|
119
102
|
return GRPC_ERROR_NONE;
|
120
103
|
}
|
@@ -144,7 +127,7 @@ static void finish_shutdown(grpc_tcp_server* s) {
|
|
144
127
|
sp->next = nullptr;
|
145
128
|
gpr_free(sp);
|
146
129
|
}
|
147
|
-
|
130
|
+
grpc_slice_allocator_factory_destroy(s->slice_allocator_factory);
|
148
131
|
gpr_free(s);
|
149
132
|
}
|
150
133
|
|
@@ -235,8 +218,11 @@ static void finish_accept(grpc_tcp_listener* sp, grpc_custom_socket* socket) {
|
|
235
218
|
gpr_log(GPR_INFO, "SERVER_CONNECT: %p accepted connection: %s", sp->server,
|
236
219
|
peer_name_string.c_str());
|
237
220
|
}
|
238
|
-
ep = custom_tcp_endpoint_create(
|
239
|
-
|
221
|
+
ep = custom_tcp_endpoint_create(
|
222
|
+
socket,
|
223
|
+
grpc_slice_allocator_factory_create_slice_allocator(
|
224
|
+
sp->server->slice_allocator_factory, peer_name_string),
|
225
|
+
peer_name_string.c_str());
|
240
226
|
acceptor->from_server = sp->server;
|
241
227
|
acceptor->port_index = sp->port_index;
|
242
228
|
acceptor->fd_index = 0;
|
@@ -478,7 +464,3 @@ grpc_tcp_server_vtable custom_tcp_server_vtable = {
|
|
478
464
|
tcp_server_port_fd_count, tcp_server_port_fd,
|
479
465
|
tcp_server_ref, tcp_server_shutdown_starting_add,
|
480
466
|
tcp_server_unref, tcp_server_shutdown_listeners};
|
481
|
-
|
482
|
-
#ifdef GRPC_UV_TEST
|
483
|
-
grpc_tcp_server_vtable* default_tcp_server_vtable = &custom_tcp_server_vtable;
|
484
|
-
#endif
|
@@ -60,9 +60,10 @@
|
|
60
60
|
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
61
61
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
62
62
|
|
63
|
-
static grpc_error_handle tcp_server_create(
|
64
|
-
|
65
|
-
|
63
|
+
static grpc_error_handle tcp_server_create(
|
64
|
+
grpc_closure* shutdown_complete, const grpc_channel_args* args,
|
65
|
+
grpc_slice_allocator_factory* slice_allocator_factory,
|
66
|
+
grpc_tcp_server** server) {
|
66
67
|
grpc_tcp_server* s =
|
67
68
|
static_cast<grpc_tcp_server*>(gpr_zalloc(sizeof(grpc_tcp_server)));
|
68
69
|
s->so_reuseport = grpc_is_socket_reuse_port_supported();
|
@@ -74,6 +75,7 @@ static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
|
|
74
75
|
(args->args[i].value.integer != 0);
|
75
76
|
} else {
|
76
77
|
gpr_free(s);
|
78
|
+
grpc_slice_allocator_factory_destroy(slice_allocator_factory);
|
77
79
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(GRPC_ARG_ALLOW_REUSEPORT
|
78
80
|
" must be an integer");
|
79
81
|
}
|
@@ -82,6 +84,7 @@ static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
|
|
82
84
|
s->expand_wildcard_addrs = (args->args[i].value.integer != 0);
|
83
85
|
} else {
|
84
86
|
gpr_free(s);
|
87
|
+
grpc_slice_allocator_factory_destroy(slice_allocator_factory);
|
85
88
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
86
89
|
GRPC_ARG_EXPAND_WILDCARD_ADDRS " must be an integer");
|
87
90
|
}
|
@@ -102,6 +105,7 @@ static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
|
|
102
105
|
s->nports = 0;
|
103
106
|
s->channel_args = grpc_channel_args_copy(args);
|
104
107
|
s->fd_handler = nullptr;
|
108
|
+
s->slice_allocator_factory = slice_allocator_factory;
|
105
109
|
gpr_atm_no_barrier_store(&s->next_pollset_to_assign, 0);
|
106
110
|
*server = s;
|
107
111
|
return GRPC_ERROR_NONE;
|
@@ -115,17 +119,15 @@ static void finish_shutdown(grpc_tcp_server* s) {
|
|
115
119
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, s->shutdown_complete,
|
116
120
|
GRPC_ERROR_NONE);
|
117
121
|
}
|
118
|
-
|
119
122
|
gpr_mu_destroy(&s->mu);
|
120
|
-
|
121
123
|
while (s->head) {
|
122
124
|
grpc_tcp_listener* sp = s->head;
|
123
125
|
s->head = sp->next;
|
124
126
|
gpr_free(sp);
|
125
127
|
}
|
128
|
+
grpc_slice_allocator_factory_destroy(s->slice_allocator_factory);
|
126
129
|
grpc_channel_args_destroy(s->channel_args);
|
127
130
|
delete s->fd_handler;
|
128
|
-
|
129
131
|
gpr_free(s);
|
130
132
|
}
|
131
133
|
|
@@ -169,10 +171,8 @@ static void deactivated_all_ports(grpc_tcp_server* s) {
|
|
169
171
|
|
170
172
|
static void tcp_server_destroy(grpc_tcp_server* s) {
|
171
173
|
gpr_mu_lock(&s->mu);
|
172
|
-
|
173
174
|
GPR_ASSERT(!s->shutdown);
|
174
175
|
s->shutdown = true;
|
175
|
-
|
176
176
|
/* shutdown all fd's */
|
177
177
|
if (s->active_ports) {
|
178
178
|
grpc_tcp_listener* sp;
|
@@ -267,10 +267,13 @@ static void on_read(void* arg, grpc_error_handle err) {
|
|
267
267
|
acceptor->port_index = sp->port_index;
|
268
268
|
acceptor->fd_index = sp->fd_index;
|
269
269
|
acceptor->external_connection = false;
|
270
|
-
|
271
270
|
sp->server->on_accept_cb(
|
272
271
|
sp->server->on_accept_cb_arg,
|
273
|
-
grpc_tcp_create(fdobj, sp->server->channel_args, addr_str.c_str()
|
272
|
+
grpc_tcp_create(fdobj, sp->server->channel_args, addr_str.c_str(),
|
273
|
+
grpc_slice_allocator_factory_create_slice_allocator(
|
274
|
+
sp->server->slice_allocator_factory,
|
275
|
+
absl::StrCat("tcp_server_posix:", addr_str),
|
276
|
+
sp->server->channel_args)),
|
274
277
|
read_notifier_pollset, acceptor);
|
275
278
|
}
|
276
279
|
|
@@ -613,9 +616,13 @@ class ExternalConnectionHandler : public grpc_core::TcpServerFdHandler {
|
|
613
616
|
acceptor->external_connection = true;
|
614
617
|
acceptor->listener_fd = listener_fd;
|
615
618
|
acceptor->pending_data = buf;
|
616
|
-
s_->on_accept_cb(
|
617
|
-
|
618
|
-
|
619
|
+
s_->on_accept_cb(
|
620
|
+
s_->on_accept_cb_arg,
|
621
|
+
grpc_tcp_create(
|
622
|
+
fdobj, s_->channel_args, addr_str.c_str(),
|
623
|
+
grpc_slice_allocator_factory_create_slice_allocator(
|
624
|
+
s_->slice_allocator_factory, addr_str, s_->channel_args)),
|
625
|
+
read_notifier_pollset, acceptor);
|
619
626
|
}
|
620
627
|
|
621
628
|
private:
|
@@ -94,6 +94,9 @@ struct grpc_tcp_server {
|
|
94
94
|
|
95
95
|
/* a handler for external connections, owned */
|
96
96
|
grpc_core::TcpServerFdHandler* fd_handler;
|
97
|
+
|
98
|
+
/* used to create slice allocators for endpoints, owned */
|
99
|
+
grpc_slice_allocator_factory* slice_allocator_factory;
|
97
100
|
};
|
98
101
|
|
99
102
|
/* If successful, add a listener to \a s for \a addr, set \a dsmode for the
|
@@ -22,8 +22,6 @@
|
|
22
22
|
|
23
23
|
#ifdef GRPC_POSIX_SOCKET_TCP_SERVER_UTILS_COMMON
|
24
24
|
|
25
|
-
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
26
|
-
|
27
25
|
#include <errno.h>
|
28
26
|
#include <limits.h>
|
29
27
|
#include <stdio.h>
|
@@ -40,6 +38,7 @@
|
|
40
38
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
41
39
|
#include "src/core/lib/iomgr/error.h"
|
42
40
|
#include "src/core/lib/iomgr/sockaddr.h"
|
41
|
+
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
43
42
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
44
43
|
|
45
44
|
#define MIN_SAFE_ACCEPT_QUEUE_SIZE 100
|
@@ -22,8 +22,6 @@
|
|
22
22
|
|
23
23
|
#ifdef GRPC_HAVE_IFADDRS
|
24
24
|
|
25
|
-
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
26
|
-
|
27
25
|
#include <errno.h>
|
28
26
|
#include <ifaddrs.h>
|
29
27
|
#include <stddef.h>
|
@@ -39,6 +37,7 @@
|
|
39
37
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
40
38
|
#include "src/core/lib/iomgr/error.h"
|
41
39
|
#include "src/core/lib/iomgr/sockaddr.h"
|
40
|
+
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
42
41
|
|
43
42
|
/* Return the listener in s with address addr or NULL. */
|
44
43
|
static grpc_tcp_listener* find_listener_with_addr(grpc_tcp_server* s,
|
@@ -146,8 +145,8 @@ grpc_error_handle grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
|
|
146
145
|
}
|
147
146
|
if ((err = grpc_tcp_server_add_addr(s, &addr, port_index, fd_index, &dsmode,
|
148
147
|
&new_sp)) != GRPC_ERROR_NONE) {
|
149
|
-
grpc_error_handle root_err =
|
150
|
-
absl::StrCat("Failed to add listener: ", addr_str)
|
148
|
+
grpc_error_handle root_err = GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
149
|
+
absl::StrCat("Failed to add listener: ", addr_str));
|
151
150
|
err = grpc_error_add_child(root_err, err);
|
152
151
|
break;
|
153
152
|
} else {
|
@@ -24,10 +24,10 @@
|
|
24
24
|
|
25
25
|
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
26
26
|
|
27
|
-
grpc_error_handle grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s
|
28
|
-
unsigned port_index
|
29
|
-
int requested_port
|
30
|
-
int* out_port) {
|
27
|
+
grpc_error_handle grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* /*s*/,
|
28
|
+
unsigned /*port_index*/,
|
29
|
+
int /*requested_port*/,
|
30
|
+
int* /*out_port*/) {
|
31
31
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING("no ifaddrs available");
|
32
32
|
}
|
33
33
|
|