grpc 1.39.0 → 1.41.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +45 -38
- 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 +73 -72
- data/include/grpc/event_engine/port.h +1 -3
- data/include/grpc/event_engine/slice_allocator.h +14 -34
- 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 +22 -13
- data/include/grpc/impl/codegen/log.h +2 -0
- data/include/grpc/impl/codegen/port_platform.h +50 -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 +437 -299
- data/src/core/ext/filters/client_channel/client_channel.h +45 -21
- 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/config_selector.h +19 -6
- 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 +9 -16
- 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/pick_first/pick_first.cc +12 -21
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +17 -28
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +18 -38
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +8 -15
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +5 -14
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +23 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +24 -29
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +4 -17
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +7 -11
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -15
- data/src/core/ext/filters/client_channel/lb_policy.h +81 -90
- 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 +106 -81
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +2 -3
- data/src/core/ext/filters/client_channel/retry_filter.cc +408 -246
- data/src/core/ext/filters/client_channel/retry_service_config.cc +36 -26
- data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_call_data.h +45 -5
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +36 -30
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +8 -12
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -13
- data/src/core/ext/filters/http/client/http_client_filter.cc +8 -4
- 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 +65 -38
- 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 +4 -2
- 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 +67 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +26 -36
- 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 +10 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +12 -11
- 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 +41 -10
- 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 +821 -1195
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +76 -76
- 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 +3 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +89 -83
- 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 +13 -7
- 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 +117 -96
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +347 -141
- 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 +133 -126
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +326 -149
- 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 +114 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +268 -88
- 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 +110 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +356 -45
- 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 +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +133 -0
- 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 +9 -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 +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +96 -0
- 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 +45 -37
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +177 -94
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +42 -40
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +86 -29
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +177 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +48 -28
- 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 +47 -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 +34 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +84 -9
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +293 -277
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +633 -240
- 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 +24 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +35 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +10 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +26 -16
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +147 -106
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +457 -160
- 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 +48 -31
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +135 -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 +48 -20
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +162 -17
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +205 -0
- 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 +10 -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 +240 -224
- data/src/core/ext/upb-generated/validate/validate.upb.h +451 -217
- 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/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +438 -409
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/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/listener/v3/listener.upbdefs.c +135 -125
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/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.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +796 -765
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +436 -374
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +140 -114
- 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/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +14 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +103 -103
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- data/src/core/ext/xds/certificate_provider_registry.cc +2 -2
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/xds_api.cc +1116 -1054
- data/src/core/ext/xds/xds_api.h +47 -35
- data/src/core/ext/xds/xds_bootstrap.cc +29 -51
- data/src/core/ext/xds/xds_client.cc +130 -68
- data/src/core/ext/xds/xds_client.h +0 -4
- 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 +4 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -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/call_tracer.h +85 -0
- 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.h +1 -1
- 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/context.h +3 -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 +6 -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 +3 -2
- data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.cc +2 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -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 +2 -1
- 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/murmur_hash.cc +4 -2
- 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 +9 -6
- 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 +6 -6
- 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 +5 -31
- 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 +3 -2
- 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_apple.h +1 -1
- 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 +9 -30
- 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 +68 -19
- 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 +2 -1
- 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 -40
- 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 +16 -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 +21 -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/timer_manager.cc +1 -1
- 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 +10 -19
- data/src/core/lib/json/json_util.h +18 -26
- data/src/core/lib/matchers/matchers.cc +8 -20
- data/src/core/lib/matchers/matchers.h +2 -2
- 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 +50 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +14 -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 +15 -32
- 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 +17 -8
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +0 -7
- 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 +14 -5
- 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 +3 -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 +14 -14
- 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 +20 -34
- data/src/core/lib/surface/server.h +14 -16
- data/src/core/lib/surface/validate_metadata.cc +44 -16
- data/src/core/lib/surface/version.cc +2 -4
- 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.cc +13 -2
- data/src/core/lib/transport/metadata_batch.h +15 -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
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +79 -60
- 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/event_engine/slice_allocator.cc +0 -89
- data/src/core/lib/gpr/arena.h +0 -47
- 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
@@ -45,7 +45,7 @@ class WorkSerializer::WorkSerializerImpl : public Orphanable {
|
|
45
45
|
|
46
46
|
// An initial size of 1 keeps track of whether the work serializer has been
|
47
47
|
// orphaned.
|
48
|
-
|
48
|
+
std::atomic<size_t> size_{1};
|
49
49
|
MultiProducerSingleConsumerQueue queue_;
|
50
50
|
};
|
51
51
|
|
@@ -55,7 +55,7 @@ void WorkSerializer::WorkSerializerImpl::Run(
|
|
55
55
|
gpr_log(GPR_INFO, "WorkSerializer::Run() %p Scheduling callback [%s:%d]",
|
56
56
|
this, location.file(), location.line());
|
57
57
|
}
|
58
|
-
const size_t prev_size = size_.
|
58
|
+
const size_t prev_size = size_.fetch_add(1);
|
59
59
|
// The work serializer should not have been orphaned.
|
60
60
|
GPR_DEBUG_ASSERT(prev_size > 0);
|
61
61
|
if (prev_size == 1) {
|
@@ -83,7 +83,7 @@ void WorkSerializer::WorkSerializerImpl::Orphan() {
|
|
83
83
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
|
84
84
|
gpr_log(GPR_INFO, "WorkSerializer::Orphan() %p", this);
|
85
85
|
}
|
86
|
-
size_t prev_size = size_.
|
86
|
+
size_t prev_size = size_.fetch_sub(1);
|
87
87
|
if (prev_size == 1) {
|
88
88
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
|
89
89
|
gpr_log(GPR_INFO, " Destroying");
|
@@ -101,7 +101,7 @@ void WorkSerializer::WorkSerializerImpl::DrainQueue() {
|
|
101
101
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
|
102
102
|
gpr_log(GPR_INFO, "WorkSerializer::DrainQueue() %p", this);
|
103
103
|
}
|
104
|
-
size_t prev_size = size_.
|
104
|
+
size_t prev_size = size_.fetch_sub(1);
|
105
105
|
GPR_DEBUG_ASSERT(prev_size >= 1);
|
106
106
|
// It is possible that while draining the queue, one of the callbacks ended
|
107
107
|
// up orphaning the work serializer. In that case, delete the object.
|
@@ -18,12 +18,12 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
+
#include <atomic>
|
21
22
|
#include <functional>
|
22
23
|
|
23
24
|
#include "absl/synchronization/mutex.h"
|
24
25
|
|
25
26
|
#include "src/core/lib/debug/trace.h"
|
26
|
-
#include "src/core/lib/gprpp/atomic.h"
|
27
27
|
#include "src/core/lib/gprpp/debug_location.h"
|
28
28
|
#include "src/core/lib/gprpp/mpscq.h"
|
29
29
|
#include "src/core/lib/gprpp/orphanable.h"
|
@@ -180,10 +180,9 @@ Json* JsonReader::CreateAndLinkValue() {
|
|
180
180
|
if (errors_.size() == GRPC_JSON_MAX_ERRORS) {
|
181
181
|
truncated_errors_ = true;
|
182
182
|
} else {
|
183
|
-
errors_.push_back(
|
183
|
+
errors_.push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
184
184
|
absl::StrFormat("duplicate key \"%s\" at index %" PRIuPTR, key_,
|
185
|
-
CurrentIndex())
|
186
|
-
.c_str()));
|
185
|
+
CurrentIndex())));
|
187
186
|
}
|
188
187
|
}
|
189
188
|
value = &(*parent->mutable_object())[std::move(key_)];
|
@@ -201,10 +200,9 @@ bool JsonReader::StartContainer(Json::Type type) {
|
|
201
200
|
if (errors_.size() == GRPC_JSON_MAX_ERRORS) {
|
202
201
|
truncated_errors_ = true;
|
203
202
|
} else {
|
204
|
-
errors_.push_back(
|
203
|
+
errors_.push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
205
204
|
absl::StrFormat("exceeded max stack depth (%d) at index %" PRIuPTR,
|
206
|
-
GRPC_JSON_MAX_DEPTH, CurrentIndex())
|
207
|
-
.c_str()));
|
205
|
+
GRPC_JSON_MAX_DEPTH, CurrentIndex())));
|
208
206
|
}
|
209
207
|
return false;
|
210
208
|
}
|
@@ -279,10 +277,8 @@ JsonReader::Status JsonReader::Run() {
|
|
279
277
|
case GRPC_JSON_READ_CHAR_EOF:
|
280
278
|
if (IsComplete()) {
|
281
279
|
return Status::GRPC_JSON_DONE;
|
282
|
-
} else {
|
283
|
-
return Status::GRPC_JSON_PARSE_ERROR;
|
284
280
|
}
|
285
|
-
|
281
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
286
282
|
|
287
283
|
/* Processing whitespaces. */
|
288
284
|
case ' ':
|
@@ -341,14 +337,12 @@ JsonReader::Status JsonReader::Run() {
|
|
341
337
|
} else if (c == '}' &&
|
342
338
|
stack_.back()->type() != Json::Type::OBJECT) {
|
343
339
|
return Status::GRPC_JSON_PARSE_ERROR;
|
344
|
-
return Status::GRPC_JSON_PARSE_ERROR;
|
345
340
|
} else if (c == ']' && stack_.back()->type() != Json::Type::ARRAY) {
|
346
341
|
return Status::GRPC_JSON_PARSE_ERROR;
|
347
342
|
}
|
348
343
|
if (!SetNumber()) return Status::GRPC_JSON_PARSE_ERROR;
|
349
344
|
state_ = State::GRPC_JSON_STATE_VALUE_END;
|
350
|
-
|
351
|
-
/* fallthrough */
|
345
|
+
ABSL_FALLTHROUGH_INTENDED;
|
352
346
|
|
353
347
|
case State::GRPC_JSON_STATE_VALUE_END:
|
354
348
|
case State::GRPC_JSON_STATE_OBJECT_KEY_BEGIN:
|
@@ -830,14 +824,11 @@ grpc_error_handle JsonReader::Parse(absl::string_view input, Json* output) {
|
|
830
824
|
"errors and try again to see additional errors"));
|
831
825
|
}
|
832
826
|
if (status == Status::GRPC_JSON_INTERNAL_ERROR) {
|
833
|
-
reader.errors_.push_back(
|
834
|
-
|
835
|
-
reader.CurrentIndex())
|
836
|
-
.c_str()));
|
827
|
+
reader.errors_.push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrCat(
|
828
|
+
"internal error in JSON parser at index ", reader.CurrentIndex())));
|
837
829
|
} else if (status == Status::GRPC_JSON_PARSE_ERROR) {
|
838
|
-
reader.errors_.push_back(
|
839
|
-
absl::StrCat("JSON parse error at index ", reader.CurrentIndex())
|
840
|
-
.c_str()));
|
830
|
+
reader.errors_.push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
831
|
+
absl::StrCat("JSON parse error at index ", reader.CurrentIndex())));
|
841
832
|
}
|
842
833
|
if (!reader.errors_.empty()) {
|
843
834
|
return GRPC_ERROR_CREATE_FROM_VECTOR("JSON parsing failed",
|
@@ -46,14 +46,13 @@ inline bool ExtractJsonNumber(const Json& json, const std::string& field_name,
|
|
46
46
|
ErrorVectorType* error_list) {
|
47
47
|
static_assert(std::is_integral<NumericType>::value, "Integral required");
|
48
48
|
if (json.type() != Json::Type::NUMBER) {
|
49
|
-
error_list->push_back(
|
50
|
-
absl::StrCat("field:", field_name, " error:type should be NUMBER")
|
51
|
-
.c_str()));
|
49
|
+
error_list->push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
50
|
+
absl::StrCat("field:", field_name, " error:type should be NUMBER")));
|
52
51
|
return false;
|
53
52
|
}
|
54
53
|
if (!absl::SimpleAtoi(json.string_value(), output)) {
|
55
|
-
error_list->push_back(
|
56
|
-
absl::StrCat("field:", field_name, " error:failed to parse.")
|
54
|
+
error_list->push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
55
|
+
absl::StrCat("field:", field_name, " error:failed to parse.")));
|
57
56
|
return false;
|
58
57
|
}
|
59
58
|
return true;
|
@@ -70,9 +69,8 @@ inline bool ExtractJsonBool(const Json& json, const std::string& field_name,
|
|
70
69
|
*output = false;
|
71
70
|
return true;
|
72
71
|
default:
|
73
|
-
error_list->push_back(
|
74
|
-
absl::StrCat("field:", field_name, " error:type should be BOOLEAN")
|
75
|
-
.c_str()));
|
72
|
+
error_list->push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
73
|
+
absl::StrCat("field:", field_name, " error:type should be BOOLEAN")));
|
76
74
|
return false;
|
77
75
|
}
|
78
76
|
}
|
@@ -83,9 +81,8 @@ inline bool ExtractJsonString(const Json& json, const std::string& field_name,
|
|
83
81
|
ErrorVectorType* error_list) {
|
84
82
|
if (json.type() != Json::Type::STRING) {
|
85
83
|
*output = "";
|
86
|
-
error_list->push_back(
|
87
|
-
absl::StrCat("field:", field_name, " error:type should be STRING")
|
88
|
-
.c_str()));
|
84
|
+
error_list->push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
85
|
+
absl::StrCat("field:", field_name, " error:type should be STRING")));
|
89
86
|
return false;
|
90
87
|
}
|
91
88
|
*output = json.string_value();
|
@@ -98,9 +95,8 @@ inline bool ExtractJsonArray(const Json& json, const std::string& field_name,
|
|
98
95
|
ErrorVectorType* error_list) {
|
99
96
|
if (json.type() != Json::Type::ARRAY) {
|
100
97
|
*output = nullptr;
|
101
|
-
error_list->push_back(
|
102
|
-
absl::StrCat("field:", field_name, " error:type should be ARRAY")
|
103
|
-
.c_str()));
|
98
|
+
error_list->push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
99
|
+
absl::StrCat("field:", field_name, " error:type should be ARRAY")));
|
104
100
|
return false;
|
105
101
|
}
|
106
102
|
*output = &json.array_value();
|
@@ -113,9 +109,8 @@ inline bool ExtractJsonObject(const Json& json, const std::string& field_name,
|
|
113
109
|
ErrorVectorType* error_list) {
|
114
110
|
if (json.type() != Json::Type::OBJECT) {
|
115
111
|
*output = nullptr;
|
116
|
-
error_list->push_back(
|
117
|
-
absl::StrCat("field:", field_name, " error:type should be OBJECT")
|
118
|
-
.c_str()));
|
112
|
+
error_list->push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
113
|
+
absl::StrCat("field:", field_name, " error:type should be OBJECT")));
|
119
114
|
return false;
|
120
115
|
}
|
121
116
|
*output = &json.object_value();
|
@@ -162,9 +157,8 @@ inline bool ParseJsonObjectField(const Json::Object& object,
|
|
162
157
|
auto it = object.find(field_name);
|
163
158
|
if (it == object.end()) {
|
164
159
|
if (required) {
|
165
|
-
error_list->push_back(
|
166
|
-
absl::StrCat("field:", field_name, " error:does not exist.")
|
167
|
-
.c_str()));
|
160
|
+
error_list->push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
161
|
+
absl::StrCat("field:", field_name, " error:does not exist.")));
|
168
162
|
}
|
169
163
|
return false;
|
170
164
|
}
|
@@ -181,19 +175,17 @@ inline bool ParseJsonObjectFieldAsDuration(const Json::Object& object,
|
|
181
175
|
auto it = object.find(field_name);
|
182
176
|
if (it == object.end()) {
|
183
177
|
if (required) {
|
184
|
-
error_list->push_back(
|
185
|
-
absl::StrCat("field:", field_name, " error:does not exist.")
|
186
|
-
.c_str()));
|
178
|
+
error_list->push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
179
|
+
absl::StrCat("field:", field_name, " error:does not exist.")));
|
187
180
|
}
|
188
181
|
return false;
|
189
182
|
}
|
190
183
|
if (!ParseDurationFromJson(it->second, output)) {
|
191
184
|
*output = GRPC_MILLIS_INF_PAST;
|
192
|
-
error_list->push_back(
|
185
|
+
error_list->push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
193
186
|
absl::StrCat("field:", field_name,
|
194
187
|
" error:type should be STRING of the form given by "
|
195
|
-
"google.proto.Duration.")
|
196
|
-
.c_str()));
|
188
|
+
"google.proto.Duration.")));
|
197
189
|
return false;
|
198
190
|
}
|
199
191
|
return true;
|
@@ -32,14 +32,12 @@ absl::StatusOr<StringMatcher> StringMatcher::Create(Type type,
|
|
32
32
|
absl::string_view matcher,
|
33
33
|
bool case_sensitive) {
|
34
34
|
if (type == Type::kSafeRegex) {
|
35
|
-
RE2::
|
36
|
-
options.set_case_sensitive(case_sensitive);
|
37
|
-
auto regex_matcher = absl::make_unique<RE2>(std::string(matcher), options);
|
35
|
+
auto regex_matcher = absl::make_unique<RE2>(std::string(matcher));
|
38
36
|
if (!regex_matcher->ok()) {
|
39
37
|
return absl::InvalidArgumentError(
|
40
38
|
"Invalid regex string specified in matcher.");
|
41
39
|
}
|
42
|
-
return StringMatcher(std::move(regex_matcher)
|
40
|
+
return StringMatcher(std::move(regex_matcher));
|
43
41
|
} else {
|
44
42
|
return StringMatcher(type, matcher, case_sensitive);
|
45
43
|
}
|
@@ -49,19 +47,13 @@ StringMatcher::StringMatcher(Type type, absl::string_view matcher,
|
|
49
47
|
bool case_sensitive)
|
50
48
|
: type_(type), string_matcher_(matcher), case_sensitive_(case_sensitive) {}
|
51
49
|
|
52
|
-
StringMatcher::StringMatcher(std::unique_ptr<RE2> regex_matcher
|
53
|
-
|
54
|
-
: type_(Type::kSafeRegex),
|
55
|
-
regex_matcher_(std::move(regex_matcher)),
|
56
|
-
case_sensitive_(case_sensitive) {}
|
50
|
+
StringMatcher::StringMatcher(std::unique_ptr<RE2> regex_matcher)
|
51
|
+
: type_(Type::kSafeRegex), regex_matcher_(std::move(regex_matcher)) {}
|
57
52
|
|
58
53
|
StringMatcher::StringMatcher(const StringMatcher& other)
|
59
54
|
: type_(other.type_), case_sensitive_(other.case_sensitive_) {
|
60
55
|
if (type_ == Type::kSafeRegex) {
|
61
|
-
RE2
|
62
|
-
options.set_case_sensitive(other.case_sensitive_);
|
63
|
-
regex_matcher_ =
|
64
|
-
absl::make_unique<RE2>(other.regex_matcher_->pattern(), options);
|
56
|
+
regex_matcher_ = absl::make_unique<RE2>(other.regex_matcher_->pattern());
|
65
57
|
} else {
|
66
58
|
string_matcher_ = other.string_matcher_;
|
67
59
|
}
|
@@ -70,10 +62,7 @@ StringMatcher::StringMatcher(const StringMatcher& other)
|
|
70
62
|
StringMatcher& StringMatcher::operator=(const StringMatcher& other) {
|
71
63
|
type_ = other.type_;
|
72
64
|
if (type_ == Type::kSafeRegex) {
|
73
|
-
RE2
|
74
|
-
options.set_case_sensitive(other.case_sensitive_);
|
75
|
-
regex_matcher_ =
|
76
|
-
absl::make_unique<RE2>(other.regex_matcher_->pattern(), options);
|
65
|
+
regex_matcher_ = absl::make_unique<RE2>(other.regex_matcher_->pattern());
|
77
66
|
} else {
|
78
67
|
string_matcher_ = other.string_matcher_;
|
79
68
|
}
|
@@ -151,9 +140,8 @@ std::string StringMatcher::ToString() const {
|
|
151
140
|
return absl::StrFormat("StringMatcher{contains=%s%s}", string_matcher_,
|
152
141
|
case_sensitive_ ? "" : ", case_sensitive=false");
|
153
142
|
case Type::kSafeRegex:
|
154
|
-
return absl::StrFormat("StringMatcher{safe_regex=%s
|
155
|
-
regex_matcher_->pattern()
|
156
|
-
case_sensitive_ ? "" : ", case_sensitive=false");
|
143
|
+
return absl::StrFormat("StringMatcher{safe_regex=%s}",
|
144
|
+
regex_matcher_->pattern());
|
157
145
|
default:
|
158
146
|
return "";
|
159
147
|
}
|
@@ -23,7 +23,6 @@
|
|
23
23
|
#include "absl/status/statusor.h"
|
24
24
|
#include "absl/strings/string_view.h"
|
25
25
|
#include "absl/types/optional.h"
|
26
|
-
|
27
26
|
#include "re2/re2.h"
|
28
27
|
|
29
28
|
namespace grpc_core {
|
@@ -39,6 +38,7 @@ class StringMatcher {
|
|
39
38
|
};
|
40
39
|
|
41
40
|
// Creates StringMatcher instance. Returns error status on failure.
|
41
|
+
// Note: case_sensitive is ignored for type kSafeRegex.
|
42
42
|
static absl::StatusOr<StringMatcher> Create(Type type,
|
43
43
|
absl::string_view matcher,
|
44
44
|
bool case_sensitive = true);
|
@@ -66,7 +66,7 @@ class StringMatcher {
|
|
66
66
|
|
67
67
|
private:
|
68
68
|
StringMatcher(Type type, absl::string_view matcher, bool case_sensitive);
|
69
|
-
StringMatcher(std::unique_ptr<RE2> regex_matcher
|
69
|
+
explicit StringMatcher(std::unique_ptr<RE2> regex_matcher);
|
70
70
|
|
71
71
|
Type type_ = Type::kExact;
|
72
72
|
std::string string_matcher_;
|
@@ -22,15 +22,17 @@
|
|
22
22
|
|
23
23
|
#ifdef GRPC_BASIC_PROFILER
|
24
24
|
|
25
|
-
#include <grpc/support/alloc.h>
|
26
|
-
#include <grpc/support/log.h>
|
27
|
-
#include <grpc/support/sync.h>
|
28
|
-
#include <grpc/support/time.h>
|
29
25
|
#include <inttypes.h>
|
30
26
|
#include <pthread.h>
|
31
27
|
#include <stdio.h>
|
32
28
|
#include <string.h>
|
33
29
|
|
30
|
+
#include <grpc/support/alloc.h>
|
31
|
+
#include <grpc/support/log.h>
|
32
|
+
#include <grpc/support/sync.h>
|
33
|
+
#include <grpc/support/time.h>
|
34
|
+
|
35
|
+
#include "src/core/lib/gpr/tls.h"
|
34
36
|
#include "src/core/lib/gprpp/global_config.h"
|
35
37
|
#include "src/core/lib/profiling/timers.h"
|
36
38
|
|
@@ -61,7 +63,7 @@ typedef struct gpr_timer_log_list {
|
|
61
63
|
gpr_timer_log* tail;
|
62
64
|
} gpr_timer_log_list;
|
63
65
|
|
64
|
-
static
|
66
|
+
static GPR_THREAD_LOCAL(gpr_timer_log*) g_thread_log;
|
65
67
|
static gpr_once g_once_init = GPR_ONCE_INIT;
|
66
68
|
static FILE* output_file;
|
67
69
|
static const char* output_filename_or_null = NULL;
|
@@ -71,7 +73,7 @@ static gpr_timer_log_list g_in_progress_logs;
|
|
71
73
|
static gpr_timer_log_list g_done_logs;
|
72
74
|
static int g_shutdown;
|
73
75
|
static pthread_t g_writing_thread;
|
74
|
-
static
|
76
|
+
static GPR_THREAD_LOCAL(int) g_thread_id;
|
75
77
|
static int g_next_thread_id;
|
76
78
|
static int g_writing_enabled = 1;
|
77
79
|
|
@@ -20,9 +20,9 @@
|
|
20
20
|
|
21
21
|
#ifdef GRPC_STAP_PROFILER
|
22
22
|
|
23
|
-
#include "src/core/lib/profiling/timers.h"
|
24
|
-
|
25
23
|
#include <sys/sdt.h>
|
24
|
+
|
25
|
+
#include "src/core/lib/profiling/timers.h"
|
26
26
|
/* Generated from src/core/profiling/stap_probes.d */
|
27
27
|
#include "src/core/lib/profiling/stap_probes.h"
|
28
28
|
|
@@ -23,10 +23,11 @@
|
|
23
23
|
struct grpc_authorization_policy_provider
|
24
24
|
: public grpc_core::DualRefCounted<grpc_authorization_policy_provider> {
|
25
25
|
public:
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
struct AuthorizationEngines {
|
27
|
+
grpc_core::RefCountedPtr<grpc_core::AuthorizationEngine> allow_engine;
|
28
|
+
grpc_core::RefCountedPtr<grpc_core::AuthorizationEngine> deny_engine;
|
29
|
+
};
|
30
|
+
virtual AuthorizationEngines engines() const = 0;
|
30
31
|
};
|
31
32
|
|
32
33
|
#endif // GRPC_CORE_LIB_SECURITY_AUTHORIZATION_AUTHORIZATION_POLICY_PROVIDER_H
|
@@ -16,6 +16,8 @@
|
|
16
16
|
|
17
17
|
#include "src/core/lib/security/authorization/evaluate_args.h"
|
18
18
|
|
19
|
+
#include "absl/strings/numbers.h"
|
20
|
+
|
19
21
|
#include "src/core/lib/address_utils/parse_address.h"
|
20
22
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
21
23
|
#include "src/core/lib/gprpp/host_port.h"
|
@@ -0,0 +1,159 @@
|
|
1
|
+
// Copyright 2021 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#include <grpc/support/port_platform.h>
|
16
|
+
|
17
|
+
#include "src/core/lib/security/authorization/sdk_server_authz_filter.h"
|
18
|
+
|
19
|
+
#include "src/core/lib/security/authorization/evaluate_args.h"
|
20
|
+
#include "src/core/lib/transport/transport.h"
|
21
|
+
|
22
|
+
namespace grpc_core {
|
23
|
+
|
24
|
+
TraceFlag grpc_sdk_authz_trace(false, "sdk_authz");
|
25
|
+
|
26
|
+
SdkServerAuthzFilter::SdkServerAuthzFilter(
|
27
|
+
RefCountedPtr<grpc_auth_context> auth_context, grpc_endpoint* endpoint,
|
28
|
+
RefCountedPtr<grpc_authorization_policy_provider> provider)
|
29
|
+
: auth_context_(std::move(auth_context)),
|
30
|
+
per_channel_evaluate_args_(auth_context_.get(), endpoint),
|
31
|
+
provider_(std::move(provider)) {}
|
32
|
+
|
33
|
+
grpc_error_handle SdkServerAuthzFilter::Init(grpc_channel_element* elem,
|
34
|
+
grpc_channel_element_args* args) {
|
35
|
+
GPR_ASSERT(!args->is_last);
|
36
|
+
grpc_auth_context* auth_context =
|
37
|
+
grpc_find_auth_context_in_args(args->channel_args);
|
38
|
+
grpc_authorization_policy_provider* provider =
|
39
|
+
grpc_channel_args_find_pointer<grpc_authorization_policy_provider>(
|
40
|
+
args->channel_args, GRPC_ARG_AUTHORIZATION_POLICY_PROVIDER);
|
41
|
+
if (provider == nullptr) {
|
42
|
+
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
43
|
+
"Failed to get authorization provider.");
|
44
|
+
}
|
45
|
+
// grpc_endpoint isn't needed because the current SDK authorization policy
|
46
|
+
// does not support any rules that requires looking for source or destination
|
47
|
+
// addresses.
|
48
|
+
new (elem->channel_data) SdkServerAuthzFilter(
|
49
|
+
auth_context != nullptr ? auth_context->Ref() : nullptr,
|
50
|
+
/*endpoint=*/nullptr, provider->Ref());
|
51
|
+
return GRPC_ERROR_NONE;
|
52
|
+
}
|
53
|
+
|
54
|
+
void SdkServerAuthzFilter::Destroy(grpc_channel_element* elem) {
|
55
|
+
auto* chand = static_cast<SdkServerAuthzFilter*>(elem->channel_data);
|
56
|
+
chand->~SdkServerAuthzFilter();
|
57
|
+
}
|
58
|
+
|
59
|
+
SdkServerAuthzFilter::CallData::CallData(grpc_call_element* elem) {
|
60
|
+
GRPC_CLOSURE_INIT(&recv_initial_metadata_ready_, RecvInitialMetadataReady,
|
61
|
+
elem, grpc_schedule_on_exec_ctx);
|
62
|
+
}
|
63
|
+
|
64
|
+
void SdkServerAuthzFilter::CallData::StartTransportStreamOpBatch(
|
65
|
+
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
66
|
+
auto* calld = static_cast<CallData*>(elem->call_data);
|
67
|
+
if (batch->recv_initial_metadata) {
|
68
|
+
// Inject our callback.
|
69
|
+
calld->recv_initial_metadata_batch_ =
|
70
|
+
batch->payload->recv_initial_metadata.recv_initial_metadata;
|
71
|
+
calld->original_recv_initial_metadata_ready_ =
|
72
|
+
batch->payload->recv_initial_metadata.recv_initial_metadata_ready;
|
73
|
+
batch->payload->recv_initial_metadata.recv_initial_metadata_ready =
|
74
|
+
&calld->recv_initial_metadata_ready_;
|
75
|
+
}
|
76
|
+
grpc_call_next_op(elem, batch);
|
77
|
+
}
|
78
|
+
|
79
|
+
grpc_error_handle SdkServerAuthzFilter::CallData::Init(
|
80
|
+
grpc_call_element* elem, const grpc_call_element_args*) {
|
81
|
+
new (elem->call_data) CallData(elem);
|
82
|
+
return GRPC_ERROR_NONE;
|
83
|
+
}
|
84
|
+
|
85
|
+
void SdkServerAuthzFilter::CallData::Destroy(
|
86
|
+
grpc_call_element* elem, const grpc_call_final_info* /*final_info*/,
|
87
|
+
grpc_closure* /*ignored*/) {
|
88
|
+
CallData* calld = static_cast<CallData*>(elem->call_data);
|
89
|
+
calld->~CallData();
|
90
|
+
}
|
91
|
+
|
92
|
+
bool SdkServerAuthzFilter::CallData::IsAuthorized(SdkServerAuthzFilter* chand) {
|
93
|
+
EvaluateArgs args(recv_initial_metadata_batch_,
|
94
|
+
&chand->per_channel_evaluate_args_);
|
95
|
+
grpc_authorization_policy_provider::AuthorizationEngines engines =
|
96
|
+
chand->provider_->engines();
|
97
|
+
if (engines.deny_engine != nullptr) {
|
98
|
+
AuthorizationEngine::Decision decision =
|
99
|
+
engines.deny_engine->Evaluate(args);
|
100
|
+
if (decision.type == AuthorizationEngine::Decision::Type::kDeny) {
|
101
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_sdk_authz_trace)) {
|
102
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: request denied by policy %s.",
|
103
|
+
chand, this, decision.matching_policy_name.c_str());
|
104
|
+
}
|
105
|
+
return false;
|
106
|
+
}
|
107
|
+
}
|
108
|
+
if (engines.allow_engine != nullptr) {
|
109
|
+
AuthorizationEngine::Decision decision =
|
110
|
+
engines.allow_engine->Evaluate(args);
|
111
|
+
if (decision.type == AuthorizationEngine::Decision::Type::kAllow) {
|
112
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_sdk_authz_trace)) {
|
113
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: request allowed by policy %s.",
|
114
|
+
chand, this, decision.matching_policy_name.c_str());
|
115
|
+
}
|
116
|
+
return true;
|
117
|
+
}
|
118
|
+
}
|
119
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_sdk_authz_trace)) {
|
120
|
+
gpr_log(GPR_INFO,
|
121
|
+
"chand=%p calld=%p: request denied, no matching policy found.",
|
122
|
+
chand, this);
|
123
|
+
}
|
124
|
+
return false;
|
125
|
+
}
|
126
|
+
|
127
|
+
void SdkServerAuthzFilter::CallData::RecvInitialMetadataReady(
|
128
|
+
void* arg, grpc_error_handle error) {
|
129
|
+
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
130
|
+
auto* chand = static_cast<SdkServerAuthzFilter*>(elem->channel_data);
|
131
|
+
auto* calld = static_cast<CallData*>(elem->call_data);
|
132
|
+
if (error == GRPC_ERROR_NONE) {
|
133
|
+
if (!calld->IsAuthorized(chand)) {
|
134
|
+
error = grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
135
|
+
"Unauthorized RPC request rejected."),
|
136
|
+
GRPC_ERROR_INT_GRPC_STATUS,
|
137
|
+
GRPC_STATUS_PERMISSION_DENIED);
|
138
|
+
}
|
139
|
+
} else {
|
140
|
+
GRPC_ERROR_REF(error);
|
141
|
+
}
|
142
|
+
Closure::Run(DEBUG_LOCATION, calld->original_recv_initial_metadata_ready_,
|
143
|
+
error);
|
144
|
+
}
|
145
|
+
|
146
|
+
const grpc_channel_filter SdkServerAuthzFilter::kFilterVtable = {
|
147
|
+
SdkServerAuthzFilter::CallData::StartTransportStreamOpBatch,
|
148
|
+
grpc_channel_next_op,
|
149
|
+
sizeof(SdkServerAuthzFilter::CallData),
|
150
|
+
SdkServerAuthzFilter::CallData::Init,
|
151
|
+
grpc_call_stack_ignore_set_pollset_or_pollset_set,
|
152
|
+
SdkServerAuthzFilter::CallData::Destroy,
|
153
|
+
sizeof(SdkServerAuthzFilter),
|
154
|
+
SdkServerAuthzFilter::Init,
|
155
|
+
SdkServerAuthzFilter::Destroy,
|
156
|
+
grpc_channel_next_get_info,
|
157
|
+
"sdk-server-authz"};
|
158
|
+
|
159
|
+
} // namespace grpc_core
|
@@ -0,0 +1,67 @@
|
|
1
|
+
// Copyright 2021 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef GRPC_CORE_LIB_SECURITY_AUTHORIZATION_SDK_SERVER_AUTHZ_FILTER_H
|
16
|
+
#define GRPC_CORE_LIB_SECURITY_AUTHORIZATION_SDK_SERVER_AUTHZ_FILTER_H
|
17
|
+
|
18
|
+
#include <grpc/support/port_platform.h>
|
19
|
+
|
20
|
+
#include "src/core/lib/channel/channel_stack.h"
|
21
|
+
#include "src/core/lib/security/authorization/authorization_policy_provider.h"
|
22
|
+
|
23
|
+
namespace grpc_core {
|
24
|
+
|
25
|
+
class SdkServerAuthzFilter {
|
26
|
+
public:
|
27
|
+
static const grpc_channel_filter kFilterVtable;
|
28
|
+
|
29
|
+
private:
|
30
|
+
class CallData {
|
31
|
+
public:
|
32
|
+
static void StartTransportStreamOpBatch(
|
33
|
+
grpc_call_element* elem, grpc_transport_stream_op_batch* batch);
|
34
|
+
static grpc_error_handle Init(grpc_call_element* elem,
|
35
|
+
const grpc_call_element_args*);
|
36
|
+
static void Destroy(grpc_call_element* elem,
|
37
|
+
const grpc_call_final_info* /*final_info*/,
|
38
|
+
grpc_closure* /*ignored*/);
|
39
|
+
|
40
|
+
private:
|
41
|
+
explicit CallData(grpc_call_element* elem);
|
42
|
+
|
43
|
+
bool IsAuthorized(SdkServerAuthzFilter* chand);
|
44
|
+
|
45
|
+
static void RecvInitialMetadataReady(void* arg, grpc_error_handle error);
|
46
|
+
|
47
|
+
grpc_metadata_batch* recv_initial_metadata_batch_;
|
48
|
+
grpc_closure* original_recv_initial_metadata_ready_;
|
49
|
+
grpc_closure recv_initial_metadata_ready_;
|
50
|
+
};
|
51
|
+
|
52
|
+
SdkServerAuthzFilter(
|
53
|
+
RefCountedPtr<grpc_auth_context> auth_context, grpc_endpoint* endpoint,
|
54
|
+
RefCountedPtr<grpc_authorization_policy_provider> provider);
|
55
|
+
|
56
|
+
static grpc_error_handle Init(grpc_channel_element* elem,
|
57
|
+
grpc_channel_element_args* args);
|
58
|
+
static void Destroy(grpc_channel_element* elem);
|
59
|
+
|
60
|
+
RefCountedPtr<grpc_auth_context> auth_context_;
|
61
|
+
EvaluateArgs::PerChannelArgs per_channel_evaluate_args_;
|
62
|
+
RefCountedPtr<grpc_authorization_policy_provider> provider_;
|
63
|
+
};
|
64
|
+
|
65
|
+
} // namespace grpc_core
|
66
|
+
|
67
|
+
#endif // GRPC_CORE_LIB_SECURITY_AUTHORIZATION_SDK_SERVER_AUTHZ_FILTER_H
|
@@ -18,22 +18,23 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
+
#include "src/core/lib/security/context/security_context.h"
|
22
|
+
|
21
23
|
#include <string.h>
|
22
24
|
|
25
|
+
#include <grpc/grpc_security.h>
|
26
|
+
#include <grpc/support/alloc.h>
|
27
|
+
#include <grpc/support/log.h>
|
28
|
+
#include <grpc/support/string_util.h>
|
29
|
+
|
23
30
|
#include "src/core/lib/channel/channel_args.h"
|
24
31
|
#include "src/core/lib/gpr/string.h"
|
25
32
|
#include "src/core/lib/gprpp/arena.h"
|
26
33
|
#include "src/core/lib/gprpp/ref_counted.h"
|
27
34
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
28
|
-
#include "src/core/lib/security/context/security_context.h"
|
29
35
|
#include "src/core/lib/surface/api_trace.h"
|
30
36
|
#include "src/core/lib/surface/call.h"
|
31
37
|
|
32
|
-
#include <grpc/grpc_security.h>
|
33
|
-
#include <grpc/support/alloc.h>
|
34
|
-
#include <grpc/support/log.h>
|
35
|
-
#include <grpc/support/string_util.h>
|
36
|
-
|
37
38
|
grpc_core::DebugOnlyTraceFlag grpc_trace_auth_context_refcount(
|
38
39
|
false, "auth_context_refcount");
|
39
40
|
|
@@ -20,12 +20,12 @@
|
|
20
20
|
|
21
21
|
#ifdef GPR_LINUX
|
22
22
|
|
23
|
-
#include
|
23
|
+
#include <string.h>
|
24
24
|
|
25
25
|
#include <grpc/support/alloc.h>
|
26
26
|
#include <grpc/support/sync.h>
|
27
27
|
|
28
|
-
#include
|
28
|
+
#include "src/core/lib/security/credentials/alts/check_gcp_environment.h"
|
29
29
|
|
30
30
|
#define GRPC_ALTS_EXPECT_NAME_GOOGLE "Google"
|
31
31
|
#define GRPC_ALTS_EXPECT_NAME_GCE "Google Compute Engine"
|