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
@@ -513,17 +513,6 @@ const grpc_channel_filter Server::kServerTopFilter = {
|
|
513
513
|
|
514
514
|
namespace {
|
515
515
|
|
516
|
-
grpc_resource_user* CreateDefaultResourceUser(const grpc_channel_args* args) {
|
517
|
-
if (args != nullptr) {
|
518
|
-
grpc_resource_quota* resource_quota =
|
519
|
-
grpc_resource_quota_from_channel_args(args, false /* create */);
|
520
|
-
if (resource_quota != nullptr) {
|
521
|
-
return grpc_resource_user_create(resource_quota, "default");
|
522
|
-
}
|
523
|
-
}
|
524
|
-
return nullptr;
|
525
|
-
}
|
526
|
-
|
527
516
|
RefCountedPtr<channelz::ServerNode> CreateChannelzNode(
|
528
517
|
const grpc_channel_args* args) {
|
529
518
|
RefCountedPtr<channelz::ServerNode> channelz_node;
|
@@ -545,7 +534,6 @@ RefCountedPtr<channelz::ServerNode> CreateChannelzNode(
|
|
545
534
|
|
546
535
|
Server::Server(const grpc_channel_args* args)
|
547
536
|
: channel_args_(grpc_channel_args_copy(args)),
|
548
|
-
default_resource_user_(CreateDefaultResourceUser(args)),
|
549
537
|
channelz_node_(CreateChannelzNode(args)) {}
|
550
538
|
|
551
539
|
Server::~Server() {
|
@@ -613,11 +601,12 @@ grpc_error_handle Server::SetupTransport(
|
|
613
601
|
grpc_transport* transport, grpc_pollset* accepting_pollset,
|
614
602
|
const grpc_channel_args* args,
|
615
603
|
const RefCountedPtr<grpc_core::channelz::SocketNode>& socket_node,
|
616
|
-
grpc_resource_user* resource_user) {
|
604
|
+
grpc_resource_user* resource_user, size_t preallocated_bytes) {
|
617
605
|
// Create channel.
|
618
606
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
619
|
-
grpc_channel* channel =
|
620
|
-
nullptr, args, GRPC_SERVER_CHANNEL, transport,
|
607
|
+
grpc_channel* channel =
|
608
|
+
grpc_channel_create(nullptr, args, GRPC_SERVER_CHANNEL, transport,
|
609
|
+
resource_user, preallocated_bytes, &error);
|
621
610
|
if (channel == nullptr) {
|
622
611
|
return error;
|
623
612
|
}
|
@@ -866,11 +855,6 @@ void Server::Orphan() {
|
|
866
855
|
GPR_ASSERT(ShutdownCalled() || listeners_.empty());
|
867
856
|
GPR_ASSERT(listeners_destroyed_ == listeners_.size());
|
868
857
|
}
|
869
|
-
if (default_resource_user_ != nullptr) {
|
870
|
-
grpc_resource_quota_unref(grpc_resource_user_quota(default_resource_user_));
|
871
|
-
grpc_resource_user_shutdown(default_resource_user_);
|
872
|
-
grpc_resource_user_unref(default_resource_user_);
|
873
|
-
}
|
874
858
|
Unref();
|
875
859
|
}
|
876
860
|
|
@@ -1209,7 +1193,7 @@ Server::CallData::CallData(grpc_call_element* elem,
|
|
1209
1193
|
}
|
1210
1194
|
|
1211
1195
|
Server::CallData::~CallData() {
|
1212
|
-
GPR_ASSERT(state_.
|
1196
|
+
GPR_ASSERT(state_.load(std::memory_order_relaxed) != CallState::PENDING);
|
1213
1197
|
GRPC_ERROR_UNREF(recv_initial_metadata_error_);
|
1214
1198
|
if (host_.has_value()) {
|
1215
1199
|
grpc_slice_unref_internal(*host_);
|
@@ -1222,26 +1206,26 @@ Server::CallData::~CallData() {
|
|
1222
1206
|
}
|
1223
1207
|
|
1224
1208
|
void Server::CallData::SetState(CallState state) {
|
1225
|
-
state_.
|
1209
|
+
state_.store(state, std::memory_order_relaxed);
|
1226
1210
|
}
|
1227
1211
|
|
1228
1212
|
bool Server::CallData::MaybeActivate() {
|
1229
1213
|
CallState expected = CallState::PENDING;
|
1230
|
-
return state_.
|
1231
|
-
|
1232
|
-
|
1214
|
+
return state_.compare_exchange_strong(expected, CallState::ACTIVATED,
|
1215
|
+
std::memory_order_acq_rel,
|
1216
|
+
std::memory_order_relaxed);
|
1233
1217
|
}
|
1234
1218
|
|
1235
1219
|
void Server::CallData::FailCallCreation() {
|
1236
1220
|
CallState expected_not_started = CallState::NOT_STARTED;
|
1237
1221
|
CallState expected_pending = CallState::PENDING;
|
1238
|
-
if (state_.
|
1239
|
-
|
1240
|
-
|
1222
|
+
if (state_.compare_exchange_strong(expected_not_started, CallState::ZOMBIED,
|
1223
|
+
std::memory_order_acq_rel,
|
1224
|
+
std::memory_order_acquire)) {
|
1241
1225
|
KillZombie();
|
1242
|
-
} else if (state_.
|
1243
|
-
|
1244
|
-
|
1226
|
+
} else if (state_.compare_exchange_strong(
|
1227
|
+
expected_pending, CallState::ZOMBIED,
|
1228
|
+
std::memory_order_acq_rel, std::memory_order_relaxed)) {
|
1245
1229
|
// Zombied call will be destroyed when it's removed from the pending
|
1246
1230
|
// queue... later.
|
1247
1231
|
}
|
@@ -1297,7 +1281,7 @@ void Server::CallData::PublishNewRpc(void* arg, grpc_error_handle error) {
|
|
1297
1281
|
RequestMatcherInterface* rm = calld->matcher_;
|
1298
1282
|
Server* server = rm->server();
|
1299
1283
|
if (error != GRPC_ERROR_NONE || server->ShutdownCalled()) {
|
1300
|
-
calld->state_.
|
1284
|
+
calld->state_.store(CallState::ZOMBIED, std::memory_order_relaxed);
|
1301
1285
|
calld->KillZombie();
|
1302
1286
|
return;
|
1303
1287
|
}
|
@@ -1321,7 +1305,7 @@ void Server::CallData::KillZombie() {
|
|
1321
1305
|
void Server::CallData::StartNewRpc(grpc_call_element* elem) {
|
1322
1306
|
auto* chand = static_cast<ChannelData*>(elem->channel_data);
|
1323
1307
|
if (server_->ShutdownCalled()) {
|
1324
|
-
state_.
|
1308
|
+
state_.store(CallState::ZOMBIED, std::memory_order_relaxed);
|
1325
1309
|
KillZombie();
|
1326
1310
|
return;
|
1327
1311
|
}
|
@@ -19,6 +19,7 @@
|
|
19
19
|
|
20
20
|
#include <grpc/support/port_platform.h>
|
21
21
|
|
22
|
+
#include <atomic>
|
22
23
|
#include <list>
|
23
24
|
#include <vector>
|
24
25
|
|
@@ -31,7 +32,6 @@
|
|
31
32
|
#include "src/core/lib/channel/channel_stack.h"
|
32
33
|
#include "src/core/lib/channel/channelz.h"
|
33
34
|
#include "src/core/lib/debug/trace.h"
|
34
|
-
#include "src/core/lib/gprpp/atomic.h"
|
35
35
|
#include "src/core/lib/iomgr/resolve_address.h"
|
36
36
|
#include "src/core/lib/surface/completion_queue.h"
|
37
37
|
#include "src/core/lib/transport/transport.h"
|
@@ -97,9 +97,6 @@ class Server : public InternallyRefCounted<Server> {
|
|
97
97
|
void Orphan() ABSL_LOCKS_EXCLUDED(mu_global_) override;
|
98
98
|
|
99
99
|
const grpc_channel_args* channel_args() const { return channel_args_; }
|
100
|
-
grpc_resource_user* default_resource_user() const {
|
101
|
-
return default_resource_user_;
|
102
|
-
}
|
103
100
|
channelz::ServerNode* channelz_node() const { return channelz_node_.get(); }
|
104
101
|
|
105
102
|
// Do not call this before Start(). Returns the pollsets. The
|
@@ -128,11 +125,13 @@ class Server : public InternallyRefCounted<Server> {
|
|
128
125
|
|
129
126
|
// Sets up a transport. Creates a channel stack and binds the transport to
|
130
127
|
// the server. Called from the listener when a new connection is accepted.
|
128
|
+
// Takes ownership of a ref on resource_user from the caller.
|
131
129
|
grpc_error_handle SetupTransport(
|
132
130
|
grpc_transport* transport, grpc_pollset* accepting_pollset,
|
133
131
|
const grpc_channel_args* args,
|
134
132
|
const RefCountedPtr<channelz::SocketNode>& socket_node,
|
135
|
-
grpc_resource_user* resource_user = nullptr
|
133
|
+
grpc_resource_user* resource_user = nullptr,
|
134
|
+
size_t preallocated_bytes = 0);
|
136
135
|
|
137
136
|
void RegisterCompletionQueue(grpc_completion_queue* cq);
|
138
137
|
|
@@ -289,7 +288,7 @@ class Server : public InternallyRefCounted<Server> {
|
|
289
288
|
|
290
289
|
grpc_call* call_;
|
291
290
|
|
292
|
-
|
291
|
+
std::atomic<CallState> state_{CallState::NOT_STARTED};
|
293
292
|
|
294
293
|
absl::optional<grpc_slice> path_;
|
295
294
|
absl::optional<grpc_slice> host_;
|
@@ -367,7 +366,7 @@ class Server : public InternallyRefCounted<Server> {
|
|
367
366
|
// Take a shutdown ref for a request (increment by 2) and return if shutdown
|
368
367
|
// has already been called.
|
369
368
|
bool ShutdownRefOnRequest() {
|
370
|
-
int old_value = shutdown_refs_.
|
369
|
+
int old_value = shutdown_refs_.fetch_add(2, std::memory_order_acq_rel);
|
371
370
|
return (old_value & 1) != 0;
|
372
371
|
}
|
373
372
|
|
@@ -375,30 +374,29 @@ class Server : public InternallyRefCounted<Server> {
|
|
375
374
|
// (for in-flight request) and possibly call MaybeFinishShutdown if
|
376
375
|
// appropriate.
|
377
376
|
void ShutdownUnrefOnRequest() ABSL_LOCKS_EXCLUDED(mu_global_) {
|
378
|
-
if (shutdown_refs_.
|
377
|
+
if (shutdown_refs_.fetch_sub(2, std::memory_order_acq_rel) == 2) {
|
379
378
|
MutexLock lock(&mu_global_);
|
380
379
|
MaybeFinishShutdown();
|
381
380
|
}
|
382
381
|
}
|
383
382
|
void ShutdownUnrefOnShutdownCall() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_global_) {
|
384
|
-
if (shutdown_refs_.
|
383
|
+
if (shutdown_refs_.fetch_sub(1, std::memory_order_acq_rel) == 1) {
|
385
384
|
MaybeFinishShutdown();
|
386
385
|
}
|
387
386
|
}
|
388
387
|
|
389
388
|
bool ShutdownCalled() const {
|
390
|
-
return (shutdown_refs_.
|
389
|
+
return (shutdown_refs_.load(std::memory_order_acquire) & 1) == 0;
|
391
390
|
}
|
392
391
|
|
393
392
|
// Returns whether there are no more shutdown refs, which means that shutdown
|
394
393
|
// has been called and all accepted requests have been published if using an
|
395
394
|
// AllocatingRequestMatcher.
|
396
395
|
bool ShutdownReady() const {
|
397
|
-
return shutdown_refs_.
|
396
|
+
return shutdown_refs_.load(std::memory_order_acquire) == 0;
|
398
397
|
}
|
399
398
|
|
400
399
|
grpc_channel_args* const channel_args_;
|
401
|
-
grpc_resource_user* default_resource_user_ = nullptr;
|
402
400
|
RefCountedPtr<channelz::ServerNode> channelz_node_;
|
403
401
|
std::unique_ptr<grpc_server_config_fetcher> config_fetcher_;
|
404
402
|
|
@@ -432,7 +430,7 @@ class Server : public InternallyRefCounted<Server> {
|
|
432
430
|
// the lowest bit will be 0 (defaults to 1) and the counter will be even. The
|
433
431
|
// server should not notify on shutdown until the counter is 0 (shutdown is
|
434
432
|
// called and there are no requests that are accepted but not started).
|
435
|
-
|
433
|
+
std::atomic<int> shutdown_refs_{1};
|
436
434
|
bool shutdown_published_ ABSL_GUARDED_BY(mu_global_) = false;
|
437
435
|
std::vector<ShutdownTag> shutdown_tags_ ABSL_GUARDED_BY(mu_global_);
|
438
436
|
|
@@ -18,28 +18,35 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
+
#include "src/core/lib/surface/validate_metadata.h"
|
22
|
+
|
21
23
|
#include <stdlib.h>
|
22
24
|
#include <string.h>
|
23
25
|
|
24
26
|
#include <grpc/grpc.h>
|
25
27
|
#include <grpc/support/alloc.h>
|
26
28
|
|
29
|
+
#include "src/core/lib/gprpp/bitset.h"
|
27
30
|
#include "src/core/lib/gprpp/memory.h"
|
28
31
|
#include "src/core/lib/iomgr/error.h"
|
29
32
|
#include "src/core/lib/slice/slice_internal.h"
|
30
33
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
31
|
-
|
34
|
+
|
35
|
+
#if __cplusplus > 201103l
|
36
|
+
#define GRPC_VALIDATE_METADATA_CONSTEXPR_FN constexpr
|
37
|
+
#define GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE constexpr
|
38
|
+
#else
|
39
|
+
#define GRPC_VALIDATE_METADATA_CONSTEXPR_FN
|
40
|
+
#define GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE const
|
41
|
+
#endif
|
32
42
|
|
33
43
|
static grpc_error_handle conforms_to(const grpc_slice& slice,
|
34
|
-
const
|
44
|
+
const grpc_core::BitSet<256>& legal_bits,
|
35
45
|
const char* err_desc) {
|
36
46
|
const uint8_t* p = GRPC_SLICE_START_PTR(slice);
|
37
47
|
const uint8_t* e = GRPC_SLICE_END_PTR(slice);
|
38
48
|
for (; p != e; p++) {
|
39
|
-
|
40
|
-
int byte = idx / 8;
|
41
|
-
int bit = idx % 8;
|
42
|
-
if ((legal_bits[byte] & (1 << bit)) == 0) {
|
49
|
+
if (!legal_bits.is_set(*p)) {
|
43
50
|
grpc_error_handle error = grpc_error_set_str(
|
44
51
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_COPIED_STRING(err_desc),
|
45
52
|
GRPC_ERROR_INT_OFFSET,
|
@@ -58,11 +65,22 @@ static int error2int(grpc_error_handle error) {
|
|
58
65
|
return r;
|
59
66
|
}
|
60
67
|
|
68
|
+
namespace {
|
69
|
+
class LegalHeaderKeyBits : public grpc_core::BitSet<256> {
|
70
|
+
public:
|
71
|
+
GRPC_VALIDATE_METADATA_CONSTEXPR_FN LegalHeaderKeyBits() {
|
72
|
+
for (int i = 'a'; i <= 'z'; i++) set(i);
|
73
|
+
for (int i = '0'; i <= '9'; i++) set(i);
|
74
|
+
set('-');
|
75
|
+
set('_');
|
76
|
+
set('.');
|
77
|
+
}
|
78
|
+
};
|
79
|
+
static GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE LegalHeaderKeyBits
|
80
|
+
g_legal_header_key_bits;
|
81
|
+
} // namespace
|
82
|
+
|
61
83
|
grpc_error_handle grpc_validate_header_key_is_legal(const grpc_slice& slice) {
|
62
|
-
static const uint8_t legal_header_bits[256 / 8] = {
|
63
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xff, 0x03, 0x00, 0x00, 0x00,
|
64
|
-
0x80, 0xfe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
65
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
66
84
|
if (GRPC_SLICE_LENGTH(slice) == 0) {
|
67
85
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
68
86
|
"Metadata keys cannot be zero length");
|
@@ -75,20 +93,30 @@ grpc_error_handle grpc_validate_header_key_is_legal(const grpc_slice& slice) {
|
|
75
93
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
76
94
|
"Metadata keys cannot start with :");
|
77
95
|
}
|
78
|
-
return conforms_to(slice,
|
96
|
+
return conforms_to(slice, g_legal_header_key_bits, "Illegal header key");
|
79
97
|
}
|
80
98
|
|
81
99
|
int grpc_header_key_is_legal(grpc_slice slice) {
|
82
100
|
return error2int(grpc_validate_header_key_is_legal(slice));
|
83
101
|
}
|
84
102
|
|
103
|
+
namespace {
|
104
|
+
class LegalHeaderNonBinValueBits : public grpc_core::BitSet<256> {
|
105
|
+
public:
|
106
|
+
GRPC_VALIDATE_METADATA_CONSTEXPR_FN LegalHeaderNonBinValueBits() {
|
107
|
+
for (int i = 32; i <= 126; i++) {
|
108
|
+
set(i);
|
109
|
+
}
|
110
|
+
}
|
111
|
+
};
|
112
|
+
static GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE LegalHeaderNonBinValueBits
|
113
|
+
g_legal_header_non_bin_value_bits;
|
114
|
+
} // namespace
|
115
|
+
|
85
116
|
grpc_error_handle grpc_validate_header_nonbin_value_is_legal(
|
86
117
|
const grpc_slice& slice) {
|
87
|
-
|
88
|
-
|
89
|
-
0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
90
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
91
|
-
return conforms_to(slice, legal_header_bits, "Illegal header value");
|
118
|
+
return conforms_to(slice, g_legal_header_non_bin_value_bits,
|
119
|
+
"Illegal header value");
|
92
120
|
}
|
93
121
|
|
94
122
|
int grpc_header_nonbin_value_is_legal(grpc_slice slice) {
|
@@ -23,6 +23,6 @@
|
|
23
23
|
|
24
24
|
#include <grpc/grpc.h>
|
25
25
|
|
26
|
-
const char* grpc_version_string(void) { return "
|
26
|
+
const char* grpc_version_string(void) { return "19.0.0"; }
|
27
27
|
|
28
|
-
const char* grpc_g_stands_for(void) { return "
|
28
|
+
const char* grpc_g_stands_for(void) { return "goat"; }
|
@@ -101,7 +101,8 @@ void AsyncConnectivityStateWatcherInterface::Notify(
|
|
101
101
|
//
|
102
102
|
|
103
103
|
ConnectivityStateTracker::~ConnectivityStateTracker() {
|
104
|
-
grpc_connectivity_state current_state =
|
104
|
+
grpc_connectivity_state current_state =
|
105
|
+
state_.load(std::memory_order_relaxed);
|
105
106
|
if (current_state == GRPC_CHANNEL_SHUTDOWN) return;
|
106
107
|
for (const auto& p : watchers_) {
|
107
108
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_connectivity_state_trace)) {
|
@@ -121,7 +122,8 @@ void ConnectivityStateTracker::AddWatcher(
|
|
121
122
|
gpr_log(GPR_INFO, "ConnectivityStateTracker %s[%p]: add watcher %p", name_,
|
122
123
|
this, watcher.get());
|
123
124
|
}
|
124
|
-
grpc_connectivity_state current_state =
|
125
|
+
grpc_connectivity_state current_state =
|
126
|
+
state_.load(std::memory_order_relaxed);
|
125
127
|
if (initial_state != current_state) {
|
126
128
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_connectivity_state_trace)) {
|
127
129
|
gpr_log(GPR_INFO,
|
@@ -150,14 +152,15 @@ void ConnectivityStateTracker::RemoveWatcher(
|
|
150
152
|
void ConnectivityStateTracker::SetState(grpc_connectivity_state state,
|
151
153
|
const absl::Status& status,
|
152
154
|
const char* reason) {
|
153
|
-
grpc_connectivity_state current_state =
|
155
|
+
grpc_connectivity_state current_state =
|
156
|
+
state_.load(std::memory_order_relaxed);
|
154
157
|
if (state == current_state) return;
|
155
158
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_connectivity_state_trace)) {
|
156
159
|
gpr_log(GPR_INFO, "ConnectivityStateTracker %s[%p]: %s -> %s (%s, %s)",
|
157
160
|
name_, this, ConnectivityStateName(current_state),
|
158
161
|
ConnectivityStateName(state), reason, status.ToString().c_str());
|
159
162
|
}
|
160
|
-
state_.
|
163
|
+
state_.store(state, std::memory_order_relaxed);
|
161
164
|
status_ = status;
|
162
165
|
for (const auto& p : watchers_) {
|
163
166
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_connectivity_state_trace)) {
|
@@ -174,7 +177,7 @@ void ConnectivityStateTracker::SetState(grpc_connectivity_state state,
|
|
174
177
|
}
|
175
178
|
|
176
179
|
grpc_connectivity_state ConnectivityStateTracker::state() const {
|
177
|
-
grpc_connectivity_state state = state_.
|
180
|
+
grpc_connectivity_state state = state_.load(std::memory_order_relaxed);
|
178
181
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_connectivity_state_trace)) {
|
179
182
|
gpr_log(GPR_INFO, "ConnectivityStateTracker %s[%p]: get current state: %s",
|
180
183
|
name_, this, ConnectivityStateName(state));
|
@@ -21,6 +21,7 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <atomic>
|
24
25
|
#include <map>
|
25
26
|
#include <memory>
|
26
27
|
|
@@ -29,7 +30,6 @@
|
|
29
30
|
#include <grpc/grpc.h>
|
30
31
|
|
31
32
|
#include "src/core/lib/debug/trace.h"
|
32
|
-
#include "src/core/lib/gprpp/atomic.h"
|
33
33
|
#include "src/core/lib/gprpp/orphanable.h"
|
34
34
|
#include "src/core/lib/iomgr/closure.h"
|
35
35
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
@@ -131,7 +131,7 @@ class ConnectivityStateTracker {
|
|
131
131
|
|
132
132
|
private:
|
133
133
|
const char* name_;
|
134
|
-
|
134
|
+
std::atomic<grpc_connectivity_state> state_{grpc_connectivity_state()};
|
135
135
|
absl::Status status_;
|
136
136
|
// TODO(roth): Once we can use C++-14 heterogeneous lookups, this can
|
137
137
|
// be a set instead of a map.
|
@@ -145,10 +145,10 @@ AllocatedMetadata::AllocatedMetadata(
|
|
145
145
|
AllocatedMetadata::~AllocatedMetadata() {
|
146
146
|
grpc_slice_unref_internal(key());
|
147
147
|
grpc_slice_unref_internal(value());
|
148
|
-
void* user_data = user_data_.data.
|
148
|
+
void* user_data = user_data_.data.load(std::memory_order_relaxed);
|
149
149
|
if (user_data) {
|
150
150
|
destroy_user_data_func destroy_user_data =
|
151
|
-
user_data_.destroy_user_data.
|
151
|
+
user_data_.destroy_user_data.load(std::memory_order_relaxed);
|
152
152
|
destroy_user_data(user_data);
|
153
153
|
}
|
154
154
|
}
|
@@ -189,10 +189,10 @@ InternedMetadata::InternedMetadata(const grpc_slice& key,
|
|
189
189
|
InternedMetadata::~InternedMetadata() {
|
190
190
|
grpc_slice_unref_internal(key());
|
191
191
|
grpc_slice_unref_internal(value());
|
192
|
-
void* user_data = user_data_.data.
|
192
|
+
void* user_data = user_data_.data.load(std::memory_order_relaxed);
|
193
193
|
if (user_data) {
|
194
194
|
destroy_user_data_func destroy_user_data =
|
195
|
-
user_data_.destroy_user_data.
|
195
|
+
user_data_.destroy_user_data.load(std::memory_order_relaxed);
|
196
196
|
destroy_user_data(user_data);
|
197
197
|
}
|
198
198
|
}
|
@@ -560,9 +560,9 @@ grpc_mdelem grpc_mdelem_from_grpc_metadata(grpc_metadata* metadata) {
|
|
560
560
|
}
|
561
561
|
|
562
562
|
static void* get_user_data(UserData* user_data, void (*destroy_func)(void*)) {
|
563
|
-
if (user_data->destroy_user_data.
|
563
|
+
if (user_data->destroy_user_data.load(std::memory_order_acquire) ==
|
564
564
|
destroy_func) {
|
565
|
-
return user_data->data.
|
565
|
+
return user_data->data.load(std::memory_order_relaxed);
|
566
566
|
} else {
|
567
567
|
return nullptr;
|
568
568
|
}
|
@@ -594,16 +594,16 @@ static void* set_user_data(UserData* ud, void (*destroy_func)(void*),
|
|
594
594
|
void* data) {
|
595
595
|
GPR_ASSERT((data == nullptr) == (destroy_func == nullptr));
|
596
596
|
grpc_core::ReleasableMutexLock lock(&ud->mu_user_data);
|
597
|
-
if (ud->destroy_user_data.
|
597
|
+
if (ud->destroy_user_data.load(std::memory_order_relaxed)) {
|
598
598
|
/* user data can only be set once */
|
599
599
|
lock.Release();
|
600
600
|
if (destroy_func != nullptr) {
|
601
601
|
destroy_func(data);
|
602
602
|
}
|
603
|
-
return ud->data.
|
603
|
+
return ud->data.load(std::memory_order_relaxed);
|
604
604
|
}
|
605
|
-
ud->data.
|
606
|
-
ud->destroy_user_data.
|
605
|
+
ud->data.store(data, std::memory_order_relaxed);
|
606
|
+
ud->destroy_user_data.store(destroy_func, std::memory_order_release);
|
607
607
|
return data;
|
608
608
|
}
|
609
609
|
|
@@ -21,14 +21,14 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include <
|
24
|
+
#include <atomic>
|
25
25
|
|
26
26
|
#include <grpc/grpc.h>
|
27
|
+
#include <grpc/impl/codegen/log.h>
|
27
28
|
#include <grpc/slice.h>
|
28
29
|
|
29
30
|
#include "src/core/lib/debug/trace.h"
|
30
31
|
#include "src/core/lib/gpr/useful.h"
|
31
|
-
#include "src/core/lib/gprpp/atomic.h"
|
32
32
|
#include "src/core/lib/gprpp/sync.h"
|
33
33
|
#include "src/core/lib/slice/slice_utils.h"
|
34
34
|
|
@@ -203,8 +203,8 @@ typedef void (*destroy_user_data_func)(void* data);
|
|
203
203
|
|
204
204
|
struct UserData {
|
205
205
|
Mutex mu_user_data;
|
206
|
-
|
207
|
-
|
206
|
+
std::atomic<destroy_user_data_func> destroy_user_data{nullptr};
|
207
|
+
std::atomic<void*> data{nullptr};
|
208
208
|
};
|
209
209
|
|
210
210
|
class StaticMetadata {
|
@@ -241,7 +241,7 @@ class RefcountedMdBase {
|
|
241
241
|
#ifndef NDEBUG
|
242
242
|
void Ref(const char* file, int line) {
|
243
243
|
grpc_mdelem_trace_ref(this, key_, value_, RefValue(), file, line);
|
244
|
-
const intptr_t prior = refcnt_.
|
244
|
+
const intptr_t prior = refcnt_.fetch_add(1, std::memory_order_relaxed);
|
245
245
|
GPR_ASSERT(prior > 0);
|
246
246
|
}
|
247
247
|
bool Unref(const char* file, int line) {
|
@@ -253,10 +253,10 @@ class RefcountedMdBase {
|
|
253
253
|
/* we can assume the ref count is >= 1 as the application is calling
|
254
254
|
this function - meaning that no adjustment to mdtab_free is necessary,
|
255
255
|
simplifying the logic here to be just an atomic increment */
|
256
|
-
refcnt_.
|
256
|
+
refcnt_.fetch_add(1, std::memory_order_relaxed);
|
257
257
|
}
|
258
258
|
bool Unref() {
|
259
|
-
const intptr_t prior = refcnt_.
|
259
|
+
const intptr_t prior = refcnt_.fetch_sub(1, std::memory_order_acq_rel);
|
260
260
|
GPR_DEBUG_ASSERT(prior > 0);
|
261
261
|
return prior == 1;
|
262
262
|
}
|
@@ -266,15 +266,17 @@ class RefcountedMdBase {
|
|
266
266
|
void TraceAtStart(const char* tag);
|
267
267
|
#endif
|
268
268
|
|
269
|
-
intptr_t RefValue() { return refcnt_.
|
270
|
-
bool AllRefsDropped() { return refcnt_.
|
271
|
-
bool FirstRef() {
|
269
|
+
intptr_t RefValue() { return refcnt_.load(std::memory_order_relaxed); }
|
270
|
+
bool AllRefsDropped() { return refcnt_.load(std::memory_order_acquire) == 0; }
|
271
|
+
bool FirstRef() {
|
272
|
+
return refcnt_.fetch_add(1, std::memory_order_relaxed) == 0;
|
273
|
+
}
|
272
274
|
|
273
275
|
private:
|
274
276
|
/* must be byte compatible with grpc_mdelem_data */
|
275
277
|
grpc_slice key_;
|
276
278
|
grpc_slice value_;
|
277
|
-
|
279
|
+
std::atomic<intptr_t> refcnt_{0};
|
278
280
|
uint32_t hash_ = 0;
|
279
281
|
};
|
280
282
|
|
@@ -57,6 +57,14 @@ typedef struct grpc_metadata_batch {
|
|
57
57
|
or GRPC_MILLIS_INF_FUTURE if this batch does not need to send a
|
58
58
|
grpc-timeout */
|
59
59
|
grpc_millis deadline;
|
60
|
+
|
61
|
+
template <typename Encoder>
|
62
|
+
void Encode(Encoder* encoder) const {
|
63
|
+
for (auto* l = list.head; l; l = l->next) {
|
64
|
+
encoder->Encode(l->md);
|
65
|
+
}
|
66
|
+
if (deadline != GRPC_MILLIS_INF_FUTURE) encoder->EncodeDeadline(deadline);
|
67
|
+
}
|
60
68
|
} grpc_metadata_batch;
|
61
69
|
|
62
70
|
void grpc_metadata_batch_init(grpc_metadata_batch* batch);
|
@@ -18,8 +18,6 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include "src/core/lib/channel/channel_stack.h"
|
22
|
-
|
23
21
|
#include <inttypes.h>
|
24
22
|
#include <stdarg.h>
|
25
23
|
#include <stdio.h>
|
@@ -33,6 +31,8 @@
|
|
33
31
|
|
34
32
|
#include <grpc/support/alloc.h>
|
35
33
|
#include <grpc/support/string_util.h>
|
34
|
+
|
35
|
+
#include "src/core/lib/channel/channel_stack.h"
|
36
36
|
#include "src/core/lib/gpr/string.h"
|
37
37
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
38
38
|
#include "src/core/lib/transport/connectivity_state.h"
|
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
#include <grpc/grpc.h>
|
22
22
|
|
23
|
+
#include "src/core/lib/config/core_configuration.h"
|
24
|
+
|
23
25
|
void grpc_http_filters_init(void);
|
24
26
|
void grpc_http_filters_shutdown(void);
|
25
27
|
void grpc_chttp2_plugin_init(void);
|
@@ -160,3 +162,15 @@ void grpc_register_built_in_plugins(void) {
|
|
160
162
|
grpc_core::GoogleCloud2ProdResolverShutdown);
|
161
163
|
#endif
|
162
164
|
}
|
165
|
+
|
166
|
+
namespace grpc_core {
|
167
|
+
|
168
|
+
extern void BuildClientChannelConfiguration(CoreConfiguration::Builder* builder);
|
169
|
+
extern void SecurityRegisterHandshakerFactories(CoreConfiguration::Builder* builder);
|
170
|
+
|
171
|
+
void BuildCoreConfiguration(CoreConfiguration::Builder* builder) {
|
172
|
+
BuildClientChannelConfiguration(builder);
|
173
|
+
SecurityRegisterHandshakerFactories(builder);
|
174
|
+
}
|
175
|
+
|
176
|
+
} // namespace grpc_core
|
@@ -18,17 +18,18 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include
|
21
|
+
#include <string.h>
|
22
22
|
|
23
23
|
#include <openssl/bio.h>
|
24
24
|
#include <openssl/buffer.h>
|
25
25
|
#include <openssl/err.h>
|
26
26
|
#include <openssl/evp.h>
|
27
27
|
#include <openssl/hmac.h>
|
28
|
-
#include <string.h>
|
29
28
|
|
30
29
|
#include <grpc/support/alloc.h>
|
31
30
|
|
31
|
+
#include "src/core/tsi/alts/crypt/gsec.h"
|
32
|
+
|
32
33
|
constexpr size_t kKdfKeyLen = 32;
|
33
34
|
constexpr size_t kKdfCounterLen = 6;
|
34
35
|
constexpr size_t kKdfCounterOffset = 2;
|
@@ -21,16 +21,15 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include <grpc/event_engine/port.h>
|
25
|
-
|
26
24
|
#include <assert.h>
|
27
25
|
#include <stdint.h>
|
28
26
|
#include <stdlib.h>
|
29
27
|
|
28
|
+
#include <grpc/event_engine/port.h>
|
30
29
|
#include <grpc/grpc.h>
|
31
30
|
|
32
31
|
#ifndef _STRUCT_IOVEC
|
33
|
-
#
|
32
|
+
#if !defined(GRPC_EVENT_ENGINE_POSIX)
|
34
33
|
struct iovec {
|
35
34
|
void* iov_base;
|
36
35
|
size_t iov_len;
|