grpc 1.36.0 → 1.38.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 +126 -92
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +15 -1
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +7 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +715 -3166
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +9 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +18 -14
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +29 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +32 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +86 -63
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
- data/src/core/ext/filters/client_channel/resolver.cc +3 -0
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +17 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +38 -33
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +31 -14
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +334 -114
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- data/src/core/ext/filters/client_channel/server_address.cc +4 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +86 -162
- data/src/core/ext/filters/client_channel/subchannel.h +68 -99
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +501 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +5 -4
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +5 -4
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +485 -199
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +3 -3
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +167 -122
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +13 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +15 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +44 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +13 -9
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +13 -7
- 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/common/fault/v3/fault.upbdefs.c +102 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +21 -20
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +1649 -329
- data/src/core/ext/xds/xds_api.h +284 -44
- data/src/core/ext/xds/xds_bootstrap.cc +110 -156
- data/src/core/ext/xds/xds_bootstrap.h +24 -25
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +454 -177
- data/src/core/ext/xds/xds_client.h +62 -22
- data/src/core/ext/xds/xds_client_stats.h +5 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
- data/src/core/ext/xds/xds_http_filters.cc +114 -0
- data/src/core/ext/xds/xds_http_filters.h +130 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +410 -131
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +107 -4
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +26 -6
- data/src/core/lib/channel/channel_stack.cc +22 -9
- data/src/core/lib/channel/channel_stack.h +17 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +108 -12
- data/src/core/lib/channel/channelz.h +30 -1
- data/src/core/lib/channel/channelz_registry.cc +14 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -45
- data/src/core/lib/channel/handshaker.h +5 -22
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +5 -0
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gpr/sync_abseil.cc +3 -6
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gprpp/atomic.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/gprpp/thd.h +1 -1
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +5 -6
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +5 -5
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +218 -107
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +6 -6
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +22 -22
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +12 -11
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +10 -6
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +12 -11
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +37 -38
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +27 -25
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +8 -8
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/{security/authorization → matchers}/matchers.cc +47 -47
- data/src/core/lib/{security/authorization → matchers}/matchers.h +42 -40
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +28 -8
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +62 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +65 -34
- data/src/core/lib/security/transport/server_auth_filter.cc +24 -11
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice_intern.cc +6 -7
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +6 -5
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/lame_client.cc +43 -24
- data/src/core/lib/surface/lame_client.h +4 -3
- data/src/core/lib/surface/server.cc +68 -55
- data/src/core/lib/surface/server.h +89 -29
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +64 -37
- data/src/core/lib/transport/metadata_batch.h +33 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -0
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +6 -8
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
- data/src/core/tsi/fake_transport_security.cc +10 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +9 -1
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
- data/src/ruby/ext/grpc/rb_server.c +13 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +32 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +478 -462
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- 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/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -30
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +210 -26
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -122
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +131 -83
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +5443 -0
- metadata +128 -61
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/authorization_engine.h +0 -84
- data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
- data/src/core/lib/security/authorization/evaluate_args.h +0 -59
- data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -99
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/upb/upb/json_decode.c +0 -1443
- data/third_party/upb/upb/json_decode.h +0 -23
- data/third_party/upb/upb/json_encode.c +0 -713
- data/third_party/upb/upb/json_encode.h +0 -36
@@ -156,7 +156,7 @@ void grpc_channel_stack_builder_iterator_destroy(
|
|
156
156
|
/// Returns the base pointer of the allocated block
|
157
157
|
/// \a initial_refs, \a destroy, \a destroy_arg are as per
|
158
158
|
/// grpc_channel_stack_init
|
159
|
-
|
159
|
+
grpc_error_handle grpc_channel_stack_builder_finish(
|
160
160
|
grpc_channel_stack_builder* builder, size_t prefix_bytes, int initial_refs,
|
161
161
|
grpc_iomgr_cb_func destroy, void* destroy_arg, void** result);
|
162
162
|
|
@@ -20,16 +20,19 @@
|
|
20
20
|
|
21
21
|
#include "src/core/lib/channel/channelz.h"
|
22
22
|
|
23
|
+
#include <stdio.h>
|
24
|
+
#include <stdlib.h>
|
25
|
+
#include <string.h>
|
26
|
+
|
27
|
+
#include "absl/strings/escaping.h"
|
23
28
|
#include "absl/strings/strip.h"
|
24
29
|
|
25
30
|
#include <grpc/grpc.h>
|
26
31
|
#include <grpc/support/alloc.h>
|
27
32
|
#include <grpc/support/log.h>
|
28
33
|
#include <grpc/support/string_util.h>
|
29
|
-
#include <stdio.h>
|
30
|
-
#include <stdlib.h>
|
31
|
-
#include <string.h>
|
32
34
|
|
35
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
33
36
|
#include "src/core/lib/channel/channelz_registry.h"
|
34
37
|
#include "src/core/lib/channel/status_util.h"
|
35
38
|
#include "src/core/lib/gpr/string.h"
|
@@ -39,6 +42,7 @@
|
|
39
42
|
#include "src/core/lib/gprpp/memory.h"
|
40
43
|
#include "src/core/lib/iomgr/error.h"
|
41
44
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
45
|
+
#include "src/core/lib/iomgr/resolve_address.h"
|
42
46
|
#include "src/core/lib/slice/b64.h"
|
43
47
|
#include "src/core/lib/slice/slice_internal.h"
|
44
48
|
#include "src/core/lib/surface/channel.h"
|
@@ -336,6 +340,83 @@ Json ServerNode::RenderJson() {
|
|
336
340
|
return object;
|
337
341
|
}
|
338
342
|
|
343
|
+
//
|
344
|
+
// SocketNode::Security::Tls
|
345
|
+
//
|
346
|
+
|
347
|
+
Json SocketNode::Security::Tls::RenderJson() {
|
348
|
+
Json::Object data;
|
349
|
+
if (type == NameType::kStandardName) {
|
350
|
+
data["standard_name"] = name;
|
351
|
+
} else if (type == NameType::kOtherName) {
|
352
|
+
data["other_name"] = name;
|
353
|
+
}
|
354
|
+
if (!local_certificate.empty()) {
|
355
|
+
data["local_certificate"] = absl::Base64Escape(local_certificate);
|
356
|
+
}
|
357
|
+
if (!remote_certificate.empty()) {
|
358
|
+
data["remote_certificate"] = absl::Base64Escape(remote_certificate);
|
359
|
+
}
|
360
|
+
return data;
|
361
|
+
}
|
362
|
+
|
363
|
+
//
|
364
|
+
// SocketNode::Security
|
365
|
+
//
|
366
|
+
|
367
|
+
Json SocketNode::Security::RenderJson() {
|
368
|
+
Json::Object data;
|
369
|
+
switch (type) {
|
370
|
+
case ModelType::kUnset:
|
371
|
+
break;
|
372
|
+
case ModelType::kTls:
|
373
|
+
if (tls) {
|
374
|
+
data["tls"] = tls->RenderJson();
|
375
|
+
}
|
376
|
+
break;
|
377
|
+
case ModelType::kOther:
|
378
|
+
if (other) {
|
379
|
+
data["other"] = *other;
|
380
|
+
}
|
381
|
+
break;
|
382
|
+
}
|
383
|
+
return data;
|
384
|
+
}
|
385
|
+
|
386
|
+
namespace {
|
387
|
+
|
388
|
+
void* SecurityArgCopy(void* p) {
|
389
|
+
SocketNode::Security* xds_certificate_provider =
|
390
|
+
static_cast<SocketNode::Security*>(p);
|
391
|
+
return xds_certificate_provider->Ref().release();
|
392
|
+
}
|
393
|
+
|
394
|
+
void SecurityArgDestroy(void* p) {
|
395
|
+
SocketNode::Security* xds_certificate_provider =
|
396
|
+
static_cast<SocketNode::Security*>(p);
|
397
|
+
xds_certificate_provider->Unref();
|
398
|
+
}
|
399
|
+
|
400
|
+
int SecurityArgCmp(void* p, void* q) { return GPR_ICMP(p, q); }
|
401
|
+
|
402
|
+
const grpc_arg_pointer_vtable kChannelArgVtable = {
|
403
|
+
SecurityArgCopy, SecurityArgDestroy, SecurityArgCmp};
|
404
|
+
|
405
|
+
} // namespace
|
406
|
+
|
407
|
+
grpc_arg SocketNode::Security::MakeChannelArg() const {
|
408
|
+
return grpc_channel_arg_pointer_create(
|
409
|
+
const_cast<char*>(GRPC_ARG_CHANNELZ_SECURITY),
|
410
|
+
const_cast<SocketNode::Security*>(this), &kChannelArgVtable);
|
411
|
+
}
|
412
|
+
|
413
|
+
RefCountedPtr<SocketNode::Security> SocketNode::Security::GetFromChannelArgs(
|
414
|
+
const grpc_channel_args* args) {
|
415
|
+
Security* security = grpc_channel_args_find_pointer<Security>(
|
416
|
+
args, GRPC_ARG_CHANNELZ_SECURITY);
|
417
|
+
return security != nullptr ? security->Ref() : nullptr;
|
418
|
+
}
|
419
|
+
|
339
420
|
//
|
340
421
|
// SocketNode
|
341
422
|
//
|
@@ -356,13 +437,22 @@ void PopulateSocketAddressJson(Json::Object* json, const char* name,
|
|
356
437
|
if (!port.empty()) {
|
357
438
|
port_num = atoi(port.data());
|
358
439
|
}
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
440
|
+
grpc_resolved_address resolved_host;
|
441
|
+
grpc_error_handle error =
|
442
|
+
grpc_string_to_sockaddr(&resolved_host, host.c_str(), port_num);
|
443
|
+
if (error == GRPC_ERROR_NONE) {
|
444
|
+
std::string packed_host = grpc_sockaddr_get_packed_host(&resolved_host);
|
445
|
+
std::string b64_host = absl::Base64Escape(packed_host);
|
446
|
+
data["tcpip_address"] = Json::Object{
|
447
|
+
{"port", port_num},
|
448
|
+
{"ip_address", b64_host},
|
449
|
+
};
|
450
|
+
(*json)[name] = std::move(data);
|
451
|
+
return;
|
452
|
+
}
|
453
|
+
GRPC_ERROR_UNREF(error);
|
454
|
+
}
|
455
|
+
if (uri.ok() && uri->scheme() == "unix") {
|
366
456
|
data["uds_address"] = Json::Object{
|
367
457
|
{"filename", uri->path()},
|
368
458
|
};
|
@@ -376,10 +466,12 @@ void PopulateSocketAddressJson(Json::Object* json, const char* name,
|
|
376
466
|
|
377
467
|
} // namespace
|
378
468
|
|
379
|
-
SocketNode::SocketNode(std::string local, std::string remote, std::string name
|
469
|
+
SocketNode::SocketNode(std::string local, std::string remote, std::string name,
|
470
|
+
RefCountedPtr<Security> security)
|
380
471
|
: BaseNode(EntityType::kSocket, std::move(name)),
|
381
472
|
local_(std::move(local)),
|
382
|
-
remote_(std::move(remote))
|
473
|
+
remote_(std::move(remote)),
|
474
|
+
security_(std::move(security)) {}
|
383
475
|
|
384
476
|
void SocketNode::RecordStreamStartedFromLocal() {
|
385
477
|
streams_started_.FetchAdd(1, MemoryOrder::RELAXED);
|
@@ -467,6 +559,10 @@ Json SocketNode::RenderJson() {
|
|
467
559
|
}},
|
468
560
|
{"data", std::move(data)},
|
469
561
|
};
|
562
|
+
if (security_ != nullptr &&
|
563
|
+
security_->type != SocketNode::Security::ModelType::kUnset) {
|
564
|
+
object["security"] = security_->RenderJson();
|
565
|
+
}
|
470
566
|
PopulateSocketAddressJson(&object, "remote", remote_.c_str());
|
471
567
|
PopulateSocketAddressJson(&object, "local", local_.c_str());
|
472
568
|
return object;
|
@@ -27,6 +27,7 @@
|
|
27
27
|
#include <string>
|
28
28
|
|
29
29
|
#include "absl/container/inlined_vector.h"
|
30
|
+
#include "absl/types/optional.h"
|
30
31
|
|
31
32
|
#include "src/core/lib/channel/channel_trace.h"
|
32
33
|
#include "src/core/lib/gpr/time_precise.h"
|
@@ -268,10 +269,37 @@ class ServerNode : public BaseNode {
|
|
268
269
|
std::map<intptr_t, RefCountedPtr<ListenSocketNode>> child_listen_sockets_;
|
269
270
|
};
|
270
271
|
|
272
|
+
#define GRPC_ARG_CHANNELZ_SECURITY "grpc.internal.channelz_security"
|
273
|
+
|
271
274
|
// Handles channelz bookkeeping for sockets
|
272
275
|
class SocketNode : public BaseNode {
|
273
276
|
public:
|
274
|
-
|
277
|
+
struct Security : public RefCounted<Security> {
|
278
|
+
struct Tls {
|
279
|
+
enum class NameType { kUnset = 0, kStandardName = 1, kOtherName = 2 };
|
280
|
+
NameType type = NameType::kUnset;
|
281
|
+
// Holds the value of standard_name or other_names if type is not kUnset.
|
282
|
+
std::string name;
|
283
|
+
std::string local_certificate;
|
284
|
+
std::string remote_certificate;
|
285
|
+
|
286
|
+
Json RenderJson();
|
287
|
+
};
|
288
|
+
enum class ModelType { kUnset = 0, kTls = 1, kOther = 2 };
|
289
|
+
ModelType type = ModelType::kUnset;
|
290
|
+
absl::optional<Tls> tls;
|
291
|
+
absl::optional<Json> other;
|
292
|
+
|
293
|
+
Json RenderJson();
|
294
|
+
|
295
|
+
grpc_arg MakeChannelArg() const;
|
296
|
+
|
297
|
+
static RefCountedPtr<Security> GetFromChannelArgs(
|
298
|
+
const grpc_channel_args* args);
|
299
|
+
};
|
300
|
+
|
301
|
+
SocketNode(std::string local, std::string remote, std::string name,
|
302
|
+
RefCountedPtr<Security> security);
|
275
303
|
~SocketNode() override {}
|
276
304
|
|
277
305
|
Json RenderJson() override;
|
@@ -305,6 +333,7 @@ class SocketNode : public BaseNode {
|
|
305
333
|
Atomic<gpr_cycle_counter> last_message_received_cycle_{0};
|
306
334
|
std::string local_;
|
307
335
|
std::string remote_;
|
336
|
+
RefCountedPtr<Security> const security_;
|
308
337
|
};
|
309
338
|
|
310
339
|
// Handles channelz bookkeeping for listen sockets
|
@@ -181,18 +181,24 @@ void ChannelzRegistry::InternalLogAllEntities() {
|
|
181
181
|
} // namespace grpc_core
|
182
182
|
|
183
183
|
char* grpc_channelz_get_top_channels(intptr_t start_channel_id) {
|
184
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
185
|
+
grpc_core::ExecCtx exec_ctx;
|
184
186
|
return gpr_strdup(
|
185
187
|
grpc_core::channelz::ChannelzRegistry::GetTopChannels(start_channel_id)
|
186
188
|
.c_str());
|
187
189
|
}
|
188
190
|
|
189
191
|
char* grpc_channelz_get_servers(intptr_t start_server_id) {
|
192
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
193
|
+
grpc_core::ExecCtx exec_ctx;
|
190
194
|
return gpr_strdup(
|
191
195
|
grpc_core::channelz::ChannelzRegistry::GetServers(start_server_id)
|
192
196
|
.c_str());
|
193
197
|
}
|
194
198
|
|
195
199
|
char* grpc_channelz_get_server(intptr_t server_id) {
|
200
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
201
|
+
grpc_core::ExecCtx exec_ctx;
|
196
202
|
grpc_core::RefCountedPtr<grpc_core::channelz::BaseNode> server_node =
|
197
203
|
grpc_core::channelz::ChannelzRegistry::Get(server_id);
|
198
204
|
if (server_node == nullptr ||
|
@@ -209,6 +215,8 @@ char* grpc_channelz_get_server(intptr_t server_id) {
|
|
209
215
|
char* grpc_channelz_get_server_sockets(intptr_t server_id,
|
210
216
|
intptr_t start_socket_id,
|
211
217
|
intptr_t max_results) {
|
218
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
219
|
+
grpc_core::ExecCtx exec_ctx;
|
212
220
|
// Validate inputs before handing them of to the renderer.
|
213
221
|
grpc_core::RefCountedPtr<grpc_core::channelz::BaseNode> base_node =
|
214
222
|
grpc_core::channelz::ChannelzRegistry::Get(server_id);
|
@@ -226,6 +234,8 @@ char* grpc_channelz_get_server_sockets(intptr_t server_id,
|
|
226
234
|
}
|
227
235
|
|
228
236
|
char* grpc_channelz_get_channel(intptr_t channel_id) {
|
237
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
238
|
+
grpc_core::ExecCtx exec_ctx;
|
229
239
|
grpc_core::RefCountedPtr<grpc_core::channelz::BaseNode> channel_node =
|
230
240
|
grpc_core::channelz::ChannelzRegistry::Get(channel_id);
|
231
241
|
if (channel_node == nullptr ||
|
@@ -242,6 +252,8 @@ char* grpc_channelz_get_channel(intptr_t channel_id) {
|
|
242
252
|
}
|
243
253
|
|
244
254
|
char* grpc_channelz_get_subchannel(intptr_t subchannel_id) {
|
255
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
256
|
+
grpc_core::ExecCtx exec_ctx;
|
245
257
|
grpc_core::RefCountedPtr<grpc_core::channelz::BaseNode> subchannel_node =
|
246
258
|
grpc_core::channelz::ChannelzRegistry::Get(subchannel_id);
|
247
259
|
if (subchannel_node == nullptr ||
|
@@ -256,6 +268,8 @@ char* grpc_channelz_get_subchannel(intptr_t subchannel_id) {
|
|
256
268
|
}
|
257
269
|
|
258
270
|
char* grpc_channelz_get_socket(intptr_t socket_id) {
|
271
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
272
|
+
grpc_core::ExecCtx exec_ctx;
|
259
273
|
grpc_core::RefCountedPtr<grpc_core::channelz::BaseNode> socket_node =
|
260
274
|
grpc_core::channelz::ChannelzRegistry::Get(socket_id);
|
261
275
|
if (socket_node == nullptr ||
|
@@ -53,13 +53,13 @@ typedef struct connected_channel_call_data {
|
|
53
53
|
callback_state recv_trailing_metadata_ready;
|
54
54
|
} call_data;
|
55
55
|
|
56
|
-
static void run_in_call_combiner(void* arg,
|
56
|
+
static void run_in_call_combiner(void* arg, grpc_error_handle error) {
|
57
57
|
callback_state* state = static_cast<callback_state*>(arg);
|
58
58
|
GRPC_CALL_COMBINER_START(state->call_combiner, state->original_closure,
|
59
59
|
GRPC_ERROR_REF(error), state->reason);
|
60
60
|
}
|
61
61
|
|
62
|
-
static void run_cancel_in_call_combiner(void* arg,
|
62
|
+
static void run_cancel_in_call_combiner(void* arg, grpc_error_handle error) {
|
63
63
|
run_in_call_combiner(arg, error);
|
64
64
|
gpr_free(arg);
|
65
65
|
}
|
@@ -146,7 +146,7 @@ static void connected_channel_start_transport_op(grpc_channel_element* elem,
|
|
146
146
|
}
|
147
147
|
|
148
148
|
/* Constructor for call_data */
|
149
|
-
static
|
149
|
+
static grpc_error_handle connected_channel_init_call_elem(
|
150
150
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
151
151
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
152
152
|
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
@@ -179,7 +179,7 @@ static void connected_channel_destroy_call_elem(
|
|
179
179
|
}
|
180
180
|
|
181
181
|
/* Constructor for channel_data */
|
182
|
-
static
|
182
|
+
static grpc_error_handle connected_channel_init_channel_elem(
|
183
183
|
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
184
184
|
channel_data* cd = static_cast<channel_data*>(elem->channel_data);
|
185
185
|
GPR_ASSERT(args->is_last);
|
@@ -55,44 +55,6 @@ std::string HandshakerArgsString(HandshakerArgs* args) {
|
|
55
55
|
|
56
56
|
HandshakeManager::HandshakeManager() {}
|
57
57
|
|
58
|
-
/// Add \a mgr to the server side list of all pending handshake managers, the
|
59
|
-
/// list starts with \a *head.
|
60
|
-
// Not thread-safe. Caller needs to synchronize.
|
61
|
-
void HandshakeManager::AddToPendingMgrList(HandshakeManager** head) {
|
62
|
-
GPR_ASSERT(prev_ == nullptr);
|
63
|
-
GPR_ASSERT(next_ == nullptr);
|
64
|
-
next_ = *head;
|
65
|
-
if (*head) {
|
66
|
-
(*head)->prev_ = this;
|
67
|
-
}
|
68
|
-
*head = this;
|
69
|
-
}
|
70
|
-
|
71
|
-
/// Remove \a mgr from the server side list of all pending handshake managers.
|
72
|
-
// Not thread-safe. Caller needs to synchronize.
|
73
|
-
void HandshakeManager::RemoveFromPendingMgrList(HandshakeManager** head) {
|
74
|
-
if (next_ != nullptr) {
|
75
|
-
next_->prev_ = prev_;
|
76
|
-
}
|
77
|
-
if (prev_ != nullptr) {
|
78
|
-
prev_->next_ = next_;
|
79
|
-
} else {
|
80
|
-
GPR_ASSERT(*head == this);
|
81
|
-
*head = next_;
|
82
|
-
}
|
83
|
-
}
|
84
|
-
|
85
|
-
/// Shutdown all pending handshake managers starting at head on the server
|
86
|
-
/// side. Not thread-safe. Caller needs to synchronize.
|
87
|
-
void HandshakeManager::ShutdownAllPending(grpc_error* why) {
|
88
|
-
auto* head = this;
|
89
|
-
while (head != nullptr) {
|
90
|
-
head->Shutdown(GRPC_ERROR_REF(why));
|
91
|
-
head = head->next_;
|
92
|
-
}
|
93
|
-
GRPC_ERROR_UNREF(why);
|
94
|
-
}
|
95
|
-
|
96
58
|
void HandshakeManager::Add(RefCountedPtr<Handshaker> handshaker) {
|
97
59
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_handshaker_trace)) {
|
98
60
|
gpr_log(
|
@@ -106,7 +68,7 @@ void HandshakeManager::Add(RefCountedPtr<Handshaker> handshaker) {
|
|
106
68
|
|
107
69
|
HandshakeManager::~HandshakeManager() { handshakers_.clear(); }
|
108
70
|
|
109
|
-
void HandshakeManager::Shutdown(
|
71
|
+
void HandshakeManager::Shutdown(grpc_error_handle why) {
|
110
72
|
{
|
111
73
|
MutexLock lock(&mu_);
|
112
74
|
// Shutdown the handshaker that's currently in progress, if any.
|
@@ -121,12 +83,12 @@ void HandshakeManager::Shutdown(grpc_error* why) {
|
|
121
83
|
// Helper function to call either the next handshaker or the
|
122
84
|
// on_handshake_done callback.
|
123
85
|
// Returns true if we've scheduled the on_handshake_done callback.
|
124
|
-
bool HandshakeManager::CallNextHandshakerLocked(
|
86
|
+
bool HandshakeManager::CallNextHandshakerLocked(grpc_error_handle error) {
|
125
87
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_handshaker_trace)) {
|
126
88
|
gpr_log(GPR_INFO,
|
127
89
|
"handshake_manager %p: error=%s shutdown=%d index=%" PRIuPTR
|
128
90
|
", args=%s",
|
129
|
-
this,
|
91
|
+
this, grpc_error_std_string(error).c_str(), is_shutdown_, index_,
|
130
92
|
HandshakerArgsString(&args_).c_str());
|
131
93
|
}
|
132
94
|
GPR_ASSERT(index_ <= handshakers_.size());
|
@@ -159,7 +121,7 @@ bool HandshakeManager::CallNextHandshakerLocked(grpc_error* error) {
|
|
159
121
|
gpr_log(GPR_INFO,
|
160
122
|
"handshake_manager %p: handshaking complete -- scheduling "
|
161
123
|
"on_handshake_done with error=%s",
|
162
|
-
this,
|
124
|
+
this, grpc_error_std_string(error).c_str());
|
163
125
|
}
|
164
126
|
// Cancel deadline timer, since we're invoking the on_handshake_done
|
165
127
|
// callback now.
|
@@ -180,7 +142,8 @@ bool HandshakeManager::CallNextHandshakerLocked(grpc_error* error) {
|
|
180
142
|
return is_shutdown_;
|
181
143
|
}
|
182
144
|
|
183
|
-
void HandshakeManager::CallNextHandshakerFn(void* arg,
|
145
|
+
void HandshakeManager::CallNextHandshakerFn(void* arg,
|
146
|
+
grpc_error_handle error) {
|
184
147
|
auto* mgr = static_cast<HandshakeManager*>(arg);
|
185
148
|
bool done;
|
186
149
|
{
|
@@ -195,7 +158,7 @@ void HandshakeManager::CallNextHandshakerFn(void* arg, grpc_error* error) {
|
|
195
158
|
}
|
196
159
|
}
|
197
160
|
|
198
|
-
void HandshakeManager::OnTimeoutFn(void* arg,
|
161
|
+
void HandshakeManager::OnTimeoutFn(void* arg, grpc_error_handle error) {
|
199
162
|
auto* mgr = static_cast<HandshakeManager*>(arg);
|
200
163
|
if (error == GRPC_ERROR_NONE) { // Timer fired, rather than being cancelled
|
201
164
|
mgr->Shutdown(GRPC_ERROR_CREATE_FROM_STATIC_STRING("Handshake timed out"));
|
@@ -213,7 +176,6 @@ void HandshakeManager::DoHandshake(grpc_endpoint* endpoint,
|
|
213
176
|
{
|
214
177
|
MutexLock lock(&mu_);
|
215
178
|
GPR_ASSERT(index_ == 0);
|
216
|
-
GPR_ASSERT(!is_shutdown_);
|
217
179
|
// Construct handshaker args. These will be passed through all
|
218
180
|
// handshakers and eventually be freed by the on_handshake_done callback.
|
219
181
|
args_.endpoint = endpoint;
|
@@ -78,7 +78,7 @@ struct HandshakerArgs {
|
|
78
78
|
class Handshaker : public RefCounted<Handshaker> {
|
79
79
|
public:
|
80
80
|
~Handshaker() override = default;
|
81
|
-
virtual void Shutdown(
|
81
|
+
virtual void Shutdown(grpc_error_handle why) = 0;
|
82
82
|
virtual void DoHandshake(grpc_tcp_server_acceptor* acceptor,
|
83
83
|
grpc_closure* on_handshake_done,
|
84
84
|
HandshakerArgs* args) = 0;
|
@@ -94,26 +94,13 @@ class HandshakeManager : public RefCounted<HandshakeManager> {
|
|
94
94
|
HandshakeManager();
|
95
95
|
~HandshakeManager() override;
|
96
96
|
|
97
|
-
/// Add \a mgr to the server side list of all pending handshake managers, the
|
98
|
-
/// list starts with \a *head.
|
99
|
-
// Not thread-safe. Caller needs to synchronize.
|
100
|
-
void AddToPendingMgrList(HandshakeManager** head);
|
101
|
-
|
102
|
-
/// Remove \a mgr from the server side list of all pending handshake managers.
|
103
|
-
// Not thread-safe. Caller needs to synchronize.
|
104
|
-
void RemoveFromPendingMgrList(HandshakeManager** head);
|
105
|
-
|
106
|
-
/// Shutdown all pending handshake managers starting at head on the server
|
107
|
-
/// side. Not thread-safe. Caller needs to synchronize.
|
108
|
-
void ShutdownAllPending(grpc_error* why);
|
109
|
-
|
110
97
|
/// Adds a handshaker to the handshake manager.
|
111
98
|
/// Takes ownership of \a handshaker.
|
112
99
|
void Add(RefCountedPtr<Handshaker> handshaker);
|
113
100
|
|
114
101
|
/// Shuts down the handshake manager (e.g., to clean up when the operation is
|
115
102
|
/// aborted in the middle).
|
116
|
-
void Shutdown(
|
103
|
+
void Shutdown(grpc_error_handle why);
|
117
104
|
|
118
105
|
/// Invokes handshakers in the order they were added.
|
119
106
|
/// Takes ownership of \a endpoint, and then passes that ownership to
|
@@ -133,14 +120,14 @@ class HandshakeManager : public RefCounted<HandshakeManager> {
|
|
133
120
|
grpc_iomgr_cb_func on_handshake_done, void* user_data);
|
134
121
|
|
135
122
|
private:
|
136
|
-
bool CallNextHandshakerLocked(
|
123
|
+
bool CallNextHandshakerLocked(grpc_error_handle error);
|
137
124
|
|
138
125
|
// A function used as the handshaker-done callback when chaining
|
139
126
|
// handshakers together.
|
140
|
-
static void CallNextHandshakerFn(void* arg,
|
127
|
+
static void CallNextHandshakerFn(void* arg, grpc_error_handle error);
|
141
128
|
|
142
129
|
// Callback invoked when deadline is exceeded.
|
143
|
-
static void OnTimeoutFn(void* arg,
|
130
|
+
static void OnTimeoutFn(void* arg, grpc_error_handle error);
|
144
131
|
|
145
132
|
static const size_t HANDSHAKERS_INIT_SIZE = 2;
|
146
133
|
|
@@ -161,10 +148,6 @@ class HandshakeManager : public RefCounted<HandshakeManager> {
|
|
161
148
|
grpc_closure on_handshake_done_;
|
162
149
|
// Handshaker args.
|
163
150
|
HandshakerArgs args_;
|
164
|
-
// Links to the previous and next managers in a list of all pending handshakes
|
165
|
-
// Used at server side only.
|
166
|
-
HandshakeManager* prev_ = nullptr;
|
167
|
-
HandshakeManager* next_ = nullptr;
|
168
151
|
};
|
169
152
|
|
170
153
|
} // namespace grpc_core
|