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
@@ -46,7 +46,7 @@ void grpc_endpoint_delete_from_pollset_set(grpc_endpoint* ep,
|
|
46
46
|
ep->vtable->delete_from_pollset_set(ep, pollset_set);
|
47
47
|
}
|
48
48
|
|
49
|
-
void grpc_endpoint_shutdown(grpc_endpoint* ep,
|
49
|
+
void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
|
50
50
|
ep->vtable->shutdown(ep, why);
|
51
51
|
}
|
52
52
|
|
@@ -44,7 +44,7 @@ struct grpc_endpoint_vtable {
|
|
44
44
|
void (*add_to_pollset)(grpc_endpoint* ep, grpc_pollset* pollset);
|
45
45
|
void (*add_to_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
46
46
|
void (*delete_from_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
47
|
-
void (*shutdown)(grpc_endpoint* ep,
|
47
|
+
void (*shutdown)(grpc_endpoint* ep, grpc_error_handle why);
|
48
48
|
void (*destroy)(grpc_endpoint* ep);
|
49
49
|
grpc_resource_user* (*get_resource_user)(grpc_endpoint* ep);
|
50
50
|
absl::string_view (*get_peer)(grpc_endpoint* ep);
|
@@ -86,7 +86,7 @@ void grpc_endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
86
86
|
|
87
87
|
/* Causes any pending and future read/write callbacks to run immediately with
|
88
88
|
success==0 */
|
89
|
-
void grpc_endpoint_shutdown(grpc_endpoint* ep,
|
89
|
+
void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why);
|
90
90
|
void grpc_endpoint_destroy(grpc_endpoint* ep);
|
91
91
|
|
92
92
|
/* Add an endpoint to a pollset or pollset_set, so that when the pollset is
|
@@ -29,13 +29,13 @@
|
|
29
29
|
#include <grpc/support/alloc.h>
|
30
30
|
#include <grpc/support/string_util.h>
|
31
31
|
|
32
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
32
33
|
#include "src/core/lib/gpr/string.h"
|
33
34
|
#include "src/core/lib/iomgr/cfstream_handle.h"
|
34
35
|
#include "src/core/lib/iomgr/closure.h"
|
35
36
|
#include "src/core/lib/iomgr/endpoint.h"
|
36
37
|
#include "src/core/lib/iomgr/error_cfstream.h"
|
37
38
|
#include "src/core/lib/iomgr/sockaddr.h"
|
38
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
39
39
|
#include "src/core/lib/slice/slice_internal.h"
|
40
40
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
41
41
|
|
@@ -106,8 +106,8 @@ static void CFStreamUnref(CFStreamEndpoint* ep) {
|
|
106
106
|
static void CFStreamRef(CFStreamEndpoint* ep) { gpr_ref(&ep->refcount); }
|
107
107
|
#endif
|
108
108
|
|
109
|
-
static
|
110
|
-
|
109
|
+
static grpc_error_handle CFStreamAnnotateError(grpc_error_handle src_error,
|
110
|
+
CFStreamEndpoint* ep) {
|
111
111
|
return grpc_error_set_str(
|
112
112
|
grpc_error_set_int(src_error, GRPC_ERROR_INT_GRPC_STATUS,
|
113
113
|
GRPC_STATUS_UNAVAILABLE),
|
@@ -115,13 +115,12 @@ static grpc_error* CFStreamAnnotateError(grpc_error* src_error,
|
|
115
115
|
grpc_slice_from_copied_string(ep->peer_string.c_str()));
|
116
116
|
}
|
117
117
|
|
118
|
-
static void CallReadCb(CFStreamEndpoint* ep,
|
118
|
+
static void CallReadCb(CFStreamEndpoint* ep, grpc_error_handle error) {
|
119
119
|
if (grpc_tcp_trace.enabled()) {
|
120
120
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p call_read_cb %p %p:%p", ep,
|
121
121
|
ep->read_cb, ep->read_cb->cb, ep->read_cb->cb_arg);
|
122
122
|
size_t i;
|
123
|
-
|
124
|
-
gpr_log(GPR_DEBUG, "read: error=%s", str);
|
123
|
+
gpr_log(GPR_DEBUG, "read: error=%s", grpc_error_std_string(error).c_str());
|
125
124
|
|
126
125
|
for (i = 0; i < ep->read_slices->count; i++) {
|
127
126
|
char* dump = grpc_dump_slice(ep->read_slices->slices[i],
|
@@ -137,12 +136,11 @@ static void CallReadCb(CFStreamEndpoint* ep, grpc_error* error) {
|
|
137
136
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
|
138
137
|
}
|
139
138
|
|
140
|
-
static void CallWriteCb(CFStreamEndpoint* ep,
|
139
|
+
static void CallWriteCb(CFStreamEndpoint* ep, grpc_error_handle error) {
|
141
140
|
if (grpc_tcp_trace.enabled()) {
|
142
141
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p call_write_cb %p %p:%p", ep,
|
143
142
|
ep->write_cb, ep->write_cb->cb, ep->write_cb->cb_arg);
|
144
|
-
|
145
|
-
gpr_log(GPR_DEBUG, "write: error=%s", str);
|
143
|
+
gpr_log(GPR_DEBUG, "write: error=%s", grpc_error_std_string(error).c_str());
|
146
144
|
}
|
147
145
|
grpc_closure* cb = ep->write_cb;
|
148
146
|
ep->write_cb = nullptr;
|
@@ -150,7 +148,7 @@ static void CallWriteCb(CFStreamEndpoint* ep, grpc_error* error) {
|
|
150
148
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
|
151
149
|
}
|
152
150
|
|
153
|
-
static void ReadAction(void* arg,
|
151
|
+
static void ReadAction(void* arg, grpc_error_handle error) {
|
154
152
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
155
153
|
GPR_ASSERT(ep->read_cb != nullptr);
|
156
154
|
if (error) {
|
@@ -192,7 +190,7 @@ static void ReadAction(void* arg, grpc_error* error) {
|
|
192
190
|
}
|
193
191
|
}
|
194
192
|
|
195
|
-
static void WriteAction(void* arg,
|
193
|
+
static void WriteAction(void* arg, grpc_error_handle error) {
|
196
194
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
197
195
|
GPR_ASSERT(ep->write_cb != nullptr);
|
198
196
|
if (error) {
|
@@ -242,7 +240,7 @@ static void WriteAction(void* arg, grpc_error* error) {
|
|
242
240
|
grpc_slice_unref_internal(slice);
|
243
241
|
}
|
244
242
|
|
245
|
-
static void CFStreamReadAllocationDone(void* arg,
|
243
|
+
static void CFStreamReadAllocationDone(void* arg, grpc_error_handle error) {
|
246
244
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
247
245
|
if (error == GRPC_ERROR_NONE) {
|
248
246
|
ep->stream_sync->NotifyOnRead(&ep->read_action);
|
@@ -286,7 +284,7 @@ static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
286
284
|
ep_impl->stream_sync->NotifyOnWrite(&ep_impl->write_action);
|
287
285
|
}
|
288
286
|
|
289
|
-
void CFStreamShutdown(grpc_endpoint* ep,
|
287
|
+
void CFStreamShutdown(grpc_endpoint* ep, grpc_error_handle why) {
|
290
288
|
CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
|
291
289
|
if (grpc_tcp_trace.enabled()) {
|
292
290
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p shutdown (%p)", ep_impl, why);
|
@@ -21,9 +21,9 @@
|
|
21
21
|
#include "src/core/lib/iomgr/port.h"
|
22
22
|
|
23
23
|
#ifdef GRPC_WINSOCK_SOCKET
|
24
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
24
25
|
#include "src/core/lib/iomgr/endpoint_pair.h"
|
25
26
|
#include "src/core/lib/iomgr/sockaddr.h"
|
26
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
27
27
|
|
28
28
|
#include <errno.h>
|
29
29
|
#include <fcntl.h>
|
data/src/core/lib/iomgr/error.cc
CHANGED
@@ -41,6 +41,114 @@ grpc_core::DebugOnlyTraceFlag grpc_trace_error_refcount(false,
|
|
41
41
|
"error_refcount");
|
42
42
|
grpc_core::DebugOnlyTraceFlag grpc_trace_closure(false, "closure");
|
43
43
|
|
44
|
+
static gpr_atm g_error_creation_allowed = true;
|
45
|
+
|
46
|
+
void grpc_disable_error_creation() {
|
47
|
+
gpr_atm_no_barrier_store(&g_error_creation_allowed, false);
|
48
|
+
}
|
49
|
+
|
50
|
+
void grpc_enable_error_creation() {
|
51
|
+
gpr_atm_no_barrier_store(&g_error_creation_allowed, true);
|
52
|
+
}
|
53
|
+
|
54
|
+
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
55
|
+
|
56
|
+
absl::Status grpc_status_create(absl::StatusCode code, absl::string_view msg,
|
57
|
+
const grpc_core::DebugLocation& location,
|
58
|
+
size_t children_count, absl::Status* children) {
|
59
|
+
absl::Status s = StatusCreate(code, msg, location, {});
|
60
|
+
for (size_t i = 0; i < children_count; ++i) {
|
61
|
+
if (!children[i].ok()) {
|
62
|
+
StatusAddChild(&s, children[i]);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
return s;
|
66
|
+
}
|
67
|
+
|
68
|
+
std::string grpc_error_std_string(const absl::Status& error) {
|
69
|
+
return grpc_core::StatusToString(error);
|
70
|
+
}
|
71
|
+
|
72
|
+
absl::Status grpc_os_error(const grpc_core::DebugLocation& location, int err,
|
73
|
+
const char* call_name) {
|
74
|
+
absl::Status s =
|
75
|
+
StatusCreate(absl::StatusCode::kUnknown, "OS Error", location, {});
|
76
|
+
grpc_core::StatusSetInt(&s, grpc_core::StatusIntProperty::ERRNO, err);
|
77
|
+
grpc_core::StatusSetStr(&s, grpc_core::StatusStrProperty::OS_ERROR,
|
78
|
+
strerror(err));
|
79
|
+
grpc_core::StatusSetStr(&s, grpc_core::StatusStrProperty::SYSCALL, call_name);
|
80
|
+
return s;
|
81
|
+
}
|
82
|
+
|
83
|
+
#ifdef GPR_WINDOWS
|
84
|
+
absl::Status grpc_wsa_error(const grpc_core::DebugLocation& location, int err,
|
85
|
+
const char* call_name) {
|
86
|
+
char* utf8_message = gpr_format_message(err);
|
87
|
+
absl::Status s =
|
88
|
+
StatusCreate(absl::StatusCode::kUnknown, "WSA Error", location, {});
|
89
|
+
StatusSetInt(&s, StatusIntProperty::WSA_ERROR, err);
|
90
|
+
StatusSetStr(&s, StatusStrProperty::OS_ERROR, utf8_message);
|
91
|
+
StatusSetStr(&s, StatusStrProperty::SYSCALL, call_name);
|
92
|
+
}
|
93
|
+
#endif
|
94
|
+
|
95
|
+
grpc_error_handle grpc_error_set_int(grpc_error_handle src,
|
96
|
+
grpc_error_ints which, intptr_t value) {
|
97
|
+
grpc_core::StatusSetInt(
|
98
|
+
&src, static_cast<grpc_core::StatusIntProperty>(which), value);
|
99
|
+
return src;
|
100
|
+
}
|
101
|
+
|
102
|
+
bool grpc_error_get_int(grpc_error_handle error, grpc_error_ints which,
|
103
|
+
intptr_t* p) {
|
104
|
+
absl::optional<intptr_t> value = grpc_core::StatusGetInt(
|
105
|
+
error, static_cast<grpc_core::StatusIntProperty>(which));
|
106
|
+
if (value.has_value()) {
|
107
|
+
*p = *value;
|
108
|
+
return true;
|
109
|
+
} else {
|
110
|
+
return false;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
grpc_error_handle grpc_error_set_str(grpc_error_handle src,
|
115
|
+
grpc_error_strs which,
|
116
|
+
const grpc_slice& str) {
|
117
|
+
grpc_core::StatusSetStr(
|
118
|
+
&src, static_cast<grpc_core::StatusStrProperty>(which),
|
119
|
+
std::string(reinterpret_cast<const char*>(GRPC_SLICE_START_PTR(str)),
|
120
|
+
GRPC_SLICE_LENGTH(str)));
|
121
|
+
return src;
|
122
|
+
}
|
123
|
+
|
124
|
+
bool grpc_error_get_str(grpc_error_handle error, grpc_error_strs which,
|
125
|
+
grpc_slice* s) {
|
126
|
+
absl::optional<std::string> value = grpc_core::StatusGetStr(
|
127
|
+
error, static_cast<grpc_core::StatusStrProperty>(which));
|
128
|
+
if (value.has_value()) {
|
129
|
+
*s = grpc_slice_from_copied_buffer(value->c_str(), value->size());
|
130
|
+
return true;
|
131
|
+
} else {
|
132
|
+
return false;
|
133
|
+
}
|
134
|
+
}
|
135
|
+
|
136
|
+
grpc_error_handle grpc_error_add_child(grpc_error_handle src,
|
137
|
+
grpc_error_handle child) {
|
138
|
+
grpc_core::StatusAddChild(&src, child);
|
139
|
+
return src;
|
140
|
+
}
|
141
|
+
|
142
|
+
bool grpc_log_error(const char* what, grpc_error_handle error, const char* file,
|
143
|
+
int line) {
|
144
|
+
GPR_DEBUG_ASSERT(error != GRPC_ERROR_NONE);
|
145
|
+
gpr_log(file, line, GPR_LOG_SEVERITY_ERROR, "%s: %s", what,
|
146
|
+
grpc_core::StatusToString(error).c_str());
|
147
|
+
return false;
|
148
|
+
}
|
149
|
+
|
150
|
+
#else // GRPC_ERROR_IS_ABSEIL_STATUS
|
151
|
+
|
44
152
|
static const char* error_int_name(grpc_error_ints key) {
|
45
153
|
switch (key) {
|
46
154
|
case GRPC_ERROR_INT_ERRNO:
|
@@ -61,20 +169,18 @@ static const char* error_int_name(grpc_error_ints key) {
|
|
61
169
|
return "http2_error";
|
62
170
|
case GRPC_ERROR_INT_TSI_CODE:
|
63
171
|
return "tsi_code";
|
64
|
-
case GRPC_ERROR_INT_SECURITY_STATUS:
|
65
|
-
return "security_status";
|
66
172
|
case GRPC_ERROR_INT_FD:
|
67
173
|
return "fd";
|
68
174
|
case GRPC_ERROR_INT_WSA_ERROR:
|
69
175
|
return "wsa_error";
|
70
176
|
case GRPC_ERROR_INT_HTTP_STATUS:
|
71
177
|
return "http_status";
|
72
|
-
case GRPC_ERROR_INT_LIMIT:
|
73
|
-
return "limit";
|
74
178
|
case GRPC_ERROR_INT_OCCURRED_DURING_WRITE:
|
75
179
|
return "occurred_during_write";
|
76
180
|
case GRPC_ERROR_INT_CHANNEL_CONNECTIVITY_STATE:
|
77
181
|
return "channel_connectivity_state";
|
182
|
+
case GRPC_ERROR_INT_LB_POLICY_DROP:
|
183
|
+
return "lb_policy_drop";
|
78
184
|
case GRPC_ERROR_INT_MAX:
|
79
185
|
GPR_UNREACHABLE_CODE(return "unknown");
|
80
186
|
}
|
@@ -105,8 +211,6 @@ static const char* error_str_name(grpc_error_strs key) {
|
|
105
211
|
return "tsi_error";
|
106
212
|
case GRPC_ERROR_STR_FILENAME:
|
107
213
|
return "filename";
|
108
|
-
case GRPC_ERROR_STR_QUEUED_BUFFERS:
|
109
|
-
return "queued_buffers";
|
110
214
|
case GRPC_ERROR_STR_MAX:
|
111
215
|
GPR_UNREACHABLE_CODE(return "unknown");
|
112
216
|
}
|
@@ -124,7 +228,8 @@ static const char* error_time_name(grpc_error_times key) {
|
|
124
228
|
}
|
125
229
|
|
126
230
|
#ifndef NDEBUG
|
127
|
-
|
231
|
+
grpc_error_handle grpc_error_do_ref(grpc_error_handle err, const char* file,
|
232
|
+
int line) {
|
128
233
|
if (grpc_trace_error_refcount.enabled()) {
|
129
234
|
gpr_log(GPR_DEBUG, "%p: %" PRIdPTR " -> %" PRIdPTR " [%s:%d]", err,
|
130
235
|
gpr_atm_no_barrier_load(&err->atomics.refs.count),
|
@@ -134,13 +239,13 @@ grpc_error* grpc_error_do_ref(grpc_error* err, const char* file, int line) {
|
|
134
239
|
return err;
|
135
240
|
}
|
136
241
|
#else
|
137
|
-
|
242
|
+
grpc_error_handle grpc_error_do_ref(grpc_error_handle err) {
|
138
243
|
gpr_ref(&err->atomics.refs);
|
139
244
|
return err;
|
140
245
|
}
|
141
246
|
#endif
|
142
247
|
|
143
|
-
static void unref_errs(
|
248
|
+
static void unref_errs(grpc_error_handle err) {
|
144
249
|
uint8_t slot = err->first_err;
|
145
250
|
while (slot != UINT8_MAX) {
|
146
251
|
grpc_linked_error* lerr =
|
@@ -152,7 +257,7 @@ static void unref_errs(grpc_error* err) {
|
|
152
257
|
}
|
153
258
|
}
|
154
259
|
|
155
|
-
static void unref_strs(
|
260
|
+
static void unref_strs(grpc_error_handle err) {
|
156
261
|
for (size_t which = 0; which < GRPC_ERROR_STR_MAX; ++which) {
|
157
262
|
uint8_t slot = err->strs[which];
|
158
263
|
if (slot != UINT8_MAX) {
|
@@ -162,7 +267,7 @@ static void unref_strs(grpc_error* err) {
|
|
162
267
|
}
|
163
268
|
}
|
164
269
|
|
165
|
-
static void error_destroy(
|
270
|
+
static void error_destroy(grpc_error_handle err) {
|
166
271
|
GPR_ASSERT(!grpc_error_is_special(err));
|
167
272
|
unref_errs(err);
|
168
273
|
unref_strs(err);
|
@@ -172,7 +277,7 @@ static void error_destroy(grpc_error* err) {
|
|
172
277
|
}
|
173
278
|
|
174
279
|
#ifndef NDEBUG
|
175
|
-
void grpc_error_do_unref(
|
280
|
+
void grpc_error_do_unref(grpc_error_handle err, const char* file, int line) {
|
176
281
|
if (grpc_trace_error_refcount.enabled()) {
|
177
282
|
gpr_log(GPR_DEBUG, "%p: %" PRIdPTR " -> %" PRIdPTR " [%s:%d]", err,
|
178
283
|
gpr_atm_no_barrier_load(&err->atomics.refs.count),
|
@@ -183,14 +288,14 @@ void grpc_error_do_unref(grpc_error* err, const char* file, int line) {
|
|
183
288
|
}
|
184
289
|
}
|
185
290
|
#else
|
186
|
-
void grpc_error_do_unref(
|
291
|
+
void grpc_error_do_unref(grpc_error_handle err) {
|
187
292
|
if (gpr_unref(&err->atomics.refs)) {
|
188
293
|
error_destroy(err);
|
189
294
|
}
|
190
295
|
}
|
191
296
|
#endif
|
192
297
|
|
193
|
-
static uint8_t get_placement(
|
298
|
+
static uint8_t get_placement(grpc_error_handle* err, size_t size) {
|
194
299
|
GPR_ASSERT(*err);
|
195
300
|
uint8_t slots = static_cast<uint8_t>(size / sizeof(intptr_t));
|
196
301
|
if ((*err)->arena_size + slots > (*err)->arena_capacity) {
|
@@ -200,9 +305,9 @@ static uint8_t get_placement(grpc_error** err, size_t size) {
|
|
200
305
|
return UINT8_MAX;
|
201
306
|
}
|
202
307
|
#ifndef NDEBUG
|
203
|
-
|
308
|
+
grpc_error_handle orig = *err;
|
204
309
|
#endif
|
205
|
-
*err = static_cast<
|
310
|
+
*err = static_cast<grpc_error_handle>(gpr_realloc(
|
206
311
|
*err, sizeof(grpc_error) + (*err)->arena_capacity * sizeof(intptr_t)));
|
207
312
|
#ifndef NDEBUG
|
208
313
|
if (grpc_trace_error_refcount.enabled()) {
|
@@ -217,7 +322,7 @@ static uint8_t get_placement(grpc_error** err, size_t size) {
|
|
217
322
|
return placement;
|
218
323
|
}
|
219
324
|
|
220
|
-
static void internal_set_int(
|
325
|
+
static void internal_set_int(grpc_error_handle* err, grpc_error_ints which,
|
221
326
|
intptr_t value) {
|
222
327
|
uint8_t slot = (*err)->ints[which];
|
223
328
|
if (slot == UINT8_MAX) {
|
@@ -232,7 +337,7 @@ static void internal_set_int(grpc_error** err, grpc_error_ints which,
|
|
232
337
|
(*err)->arena[slot] = value;
|
233
338
|
}
|
234
339
|
|
235
|
-
static void internal_set_str(
|
340
|
+
static void internal_set_str(grpc_error_handle* err, grpc_error_strs which,
|
236
341
|
const grpc_slice& value) {
|
237
342
|
uint8_t slot = (*err)->strs[which];
|
238
343
|
if (slot == UINT8_MAX) {
|
@@ -253,7 +358,7 @@ static void internal_set_str(grpc_error** err, grpc_error_strs which,
|
|
253
358
|
}
|
254
359
|
|
255
360
|
static char* fmt_time(gpr_timespec tm);
|
256
|
-
static void internal_set_time(
|
361
|
+
static void internal_set_time(grpc_error_handle* err, grpc_error_times which,
|
257
362
|
gpr_timespec value) {
|
258
363
|
uint8_t slot = (*err)->times[which];
|
259
364
|
if (slot == UINT8_MAX) {
|
@@ -270,7 +375,8 @@ static void internal_set_time(grpc_error** err, grpc_error_times which,
|
|
270
375
|
memcpy((*err)->arena + slot, &value, sizeof(value));
|
271
376
|
}
|
272
377
|
|
273
|
-
static void internal_add_error(
|
378
|
+
static void internal_add_error(grpc_error_handle* err,
|
379
|
+
grpc_error_handle new_err) {
|
274
380
|
grpc_linked_error new_last = {new_err, UINT8_MAX};
|
275
381
|
uint8_t slot = get_placement(err, sizeof(grpc_linked_error));
|
276
382
|
if (slot == UINT8_MAX) {
|
@@ -306,25 +412,16 @@ static void internal_add_error(grpc_error** err, grpc_error* new_err) {
|
|
306
412
|
// It is very common to include and extra int and string in an error
|
307
413
|
#define SURPLUS_CAPACITY (2 * SLOTS_PER_INT + SLOTS_PER_TIME)
|
308
414
|
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
}
|
314
|
-
|
315
|
-
void grpc_enable_error_creation() {
|
316
|
-
gpr_atm_no_barrier_store(&g_error_creation_allowed, true);
|
317
|
-
}
|
318
|
-
|
319
|
-
grpc_error* grpc_error_create(const char* file, int line,
|
320
|
-
const grpc_slice& desc, grpc_error** referencing,
|
321
|
-
size_t num_referencing) {
|
415
|
+
grpc_error_handle grpc_error_create(const char* file, int line,
|
416
|
+
const grpc_slice& desc,
|
417
|
+
grpc_error_handle* referencing,
|
418
|
+
size_t num_referencing) {
|
322
419
|
GPR_TIMER_SCOPE("grpc_error_create", 0);
|
323
420
|
uint8_t initial_arena_capacity = static_cast<uint8_t>(
|
324
421
|
DEFAULT_ERROR_CAPACITY +
|
325
422
|
static_cast<uint8_t>(num_referencing * SLOTS_PER_LINKED_ERROR) +
|
326
423
|
SURPLUS_CAPACITY);
|
327
|
-
|
424
|
+
grpc_error_handle err = static_cast<grpc_error_handle>(
|
328
425
|
gpr_malloc(sizeof(*err) + initial_arena_capacity * sizeof(intptr_t)));
|
329
426
|
if (err == nullptr) { // TODO(ctiller): make gpr_malloc return NULL
|
330
427
|
return GRPC_ERROR_OOM;
|
@@ -370,7 +467,7 @@ grpc_error* grpc_error_create(const char* file, int line,
|
|
370
467
|
return err;
|
371
468
|
}
|
372
469
|
|
373
|
-
static void ref_strs(
|
470
|
+
static void ref_strs(grpc_error_handle err) {
|
374
471
|
for (size_t i = 0; i < GRPC_ERROR_STR_MAX; ++i) {
|
375
472
|
uint8_t slot = err->strs[i];
|
376
473
|
if (slot != UINT8_MAX) {
|
@@ -380,7 +477,7 @@ static void ref_strs(grpc_error* err) {
|
|
380
477
|
}
|
381
478
|
}
|
382
479
|
|
383
|
-
static void ref_errs(
|
480
|
+
static void ref_errs(grpc_error_handle err) {
|
384
481
|
uint8_t slot = err->first_err;
|
385
482
|
while (slot != UINT8_MAX) {
|
386
483
|
grpc_linked_error* lerr =
|
@@ -390,9 +487,9 @@ static void ref_errs(grpc_error* err) {
|
|
390
487
|
}
|
391
488
|
}
|
392
489
|
|
393
|
-
static
|
490
|
+
static grpc_error_handle copy_error_and_unref(grpc_error_handle in) {
|
394
491
|
GPR_TIMER_SCOPE("copy_error_and_unref", 0);
|
395
|
-
|
492
|
+
grpc_error_handle out;
|
396
493
|
if (grpc_error_is_special(in)) {
|
397
494
|
out = GRPC_ERROR_CREATE_FROM_STATIC_STRING("unknown");
|
398
495
|
if (in == GRPC_ERROR_NONE) {
|
@@ -417,7 +514,7 @@ static grpc_error* copy_error_and_unref(grpc_error* in) {
|
|
417
514
|
static_cast<uint8_t> SLOTS_PER_STR) {
|
418
515
|
new_arena_capacity = static_cast<uint8_t>(3 * new_arena_capacity / 2);
|
419
516
|
}
|
420
|
-
out = static_cast<
|
517
|
+
out = static_cast<grpc_error_handle>(
|
421
518
|
gpr_malloc(sizeof(*in) + new_arena_capacity * sizeof(intptr_t)));
|
422
519
|
#ifndef NDEBUG
|
423
520
|
if (grpc_trace_error_refcount.enabled()) {
|
@@ -441,10 +538,10 @@ static grpc_error* copy_error_and_unref(grpc_error* in) {
|
|
441
538
|
return out;
|
442
539
|
}
|
443
540
|
|
444
|
-
|
445
|
-
|
541
|
+
grpc_error_handle grpc_error_set_int(grpc_error_handle src,
|
542
|
+
grpc_error_ints which, intptr_t value) {
|
446
543
|
GPR_TIMER_SCOPE("grpc_error_set_int", 0);
|
447
|
-
|
544
|
+
grpc_error_handle new_err = copy_error_and_unref(src);
|
448
545
|
internal_set_int(&new_err, which, value);
|
449
546
|
return new_err;
|
450
547
|
}
|
@@ -464,7 +561,8 @@ const special_error_status_map error_status_map[] = {
|
|
464
561
|
strlen("Cancelled")}, // GRPC_ERROR_CANCELLED
|
465
562
|
};
|
466
563
|
|
467
|
-
bool grpc_error_get_int(
|
564
|
+
bool grpc_error_get_int(grpc_error_handle err, grpc_error_ints which,
|
565
|
+
intptr_t* p) {
|
468
566
|
GPR_TIMER_SCOPE("grpc_error_get_int", 0);
|
469
567
|
if (grpc_error_is_special(err)) {
|
470
568
|
if (which != GRPC_ERROR_INT_GRPC_STATUS) return false;
|
@@ -479,15 +577,16 @@ bool grpc_error_get_int(grpc_error* err, grpc_error_ints which, intptr_t* p) {
|
|
479
577
|
return false;
|
480
578
|
}
|
481
579
|
|
482
|
-
|
483
|
-
|
580
|
+
grpc_error_handle grpc_error_set_str(grpc_error_handle src,
|
581
|
+
grpc_error_strs which,
|
582
|
+
const grpc_slice& str) {
|
484
583
|
GPR_TIMER_SCOPE("grpc_error_set_str", 0);
|
485
|
-
|
584
|
+
grpc_error_handle new_err = copy_error_and_unref(src);
|
486
585
|
internal_set_str(&new_err, which, str);
|
487
586
|
return new_err;
|
488
587
|
}
|
489
588
|
|
490
|
-
bool grpc_error_get_str(
|
589
|
+
bool grpc_error_get_str(grpc_error_handle err, grpc_error_strs which,
|
491
590
|
grpc_slice* str) {
|
492
591
|
if (grpc_error_is_special(err)) {
|
493
592
|
if (which != GRPC_ERROR_STR_GRPC_MESSAGE) return false;
|
@@ -508,14 +607,15 @@ bool grpc_error_get_str(grpc_error* err, grpc_error_strs which,
|
|
508
607
|
}
|
509
608
|
}
|
510
609
|
|
511
|
-
|
610
|
+
grpc_error_handle grpc_error_add_child(grpc_error_handle src,
|
611
|
+
grpc_error_handle child) {
|
512
612
|
GPR_TIMER_SCOPE("grpc_error_add_child", 0);
|
513
613
|
if (src != GRPC_ERROR_NONE) {
|
514
614
|
if (child == GRPC_ERROR_NONE) {
|
515
615
|
/* \a child is empty. Simply return the ref to \a src */
|
516
616
|
return src;
|
517
617
|
} else if (child != src) {
|
518
|
-
|
618
|
+
grpc_error_handle new_err = copy_error_and_unref(src);
|
519
619
|
internal_add_error(&new_err, child);
|
520
620
|
return new_err;
|
521
621
|
} else {
|
@@ -616,7 +716,7 @@ static char* fmt_int(intptr_t p) {
|
|
616
716
|
return s;
|
617
717
|
}
|
618
718
|
|
619
|
-
static void collect_ints_kvs(
|
719
|
+
static void collect_ints_kvs(grpc_error_handle err, kv_pairs* kvs) {
|
620
720
|
for (size_t which = 0; which < GRPC_ERROR_INT_MAX; ++which) {
|
621
721
|
uint8_t slot = err->ints[which];
|
622
722
|
if (slot != UINT8_MAX) {
|
@@ -640,7 +740,7 @@ static char* fmt_str(const grpc_slice& slice) {
|
|
640
740
|
return s;
|
641
741
|
}
|
642
742
|
|
643
|
-
static void collect_strs_kvs(
|
743
|
+
static void collect_strs_kvs(grpc_error_handle err, kv_pairs* kvs) {
|
644
744
|
for (size_t which = 0; which < GRPC_ERROR_STR_MAX; ++which) {
|
645
745
|
uint8_t slot = err->strs[which];
|
646
746
|
if (slot != UINT8_MAX) {
|
@@ -675,7 +775,7 @@ static char* fmt_time(gpr_timespec tm) {
|
|
675
775
|
return out;
|
676
776
|
}
|
677
777
|
|
678
|
-
static void collect_times_kvs(
|
778
|
+
static void collect_times_kvs(grpc_error_handle err, kv_pairs* kvs) {
|
679
779
|
for (size_t which = 0; which < GRPC_ERROR_TIME_MAX; ++which) {
|
680
780
|
uint8_t slot = err->times[which];
|
681
781
|
if (slot != UINT8_MAX) {
|
@@ -685,7 +785,7 @@ static void collect_times_kvs(grpc_error* err, kv_pairs* kvs) {
|
|
685
785
|
}
|
686
786
|
}
|
687
787
|
|
688
|
-
static void add_errs(
|
788
|
+
static void add_errs(grpc_error_handle err, char** s, size_t* sz, size_t* cap) {
|
689
789
|
uint8_t slot = err->first_err;
|
690
790
|
bool first = true;
|
691
791
|
while (slot != UINT8_MAX) {
|
@@ -701,7 +801,7 @@ static void add_errs(grpc_error* err, char** s, size_t* sz, size_t* cap) {
|
|
701
801
|
}
|
702
802
|
}
|
703
803
|
|
704
|
-
static char* errs_string(
|
804
|
+
static char* errs_string(grpc_error_handle err) {
|
705
805
|
char* s = nullptr;
|
706
806
|
size_t sz = 0;
|
707
807
|
size_t cap = 0;
|
@@ -740,7 +840,7 @@ static char* finish_kvs(kv_pairs* kvs) {
|
|
740
840
|
return s;
|
741
841
|
}
|
742
842
|
|
743
|
-
const char* grpc_error_string(
|
843
|
+
const char* grpc_error_string(grpc_error_handle err) {
|
744
844
|
GPR_TIMER_SCOPE("grpc_error_string", 0);
|
745
845
|
if (err == GRPC_ERROR_NONE) return no_error_string;
|
746
846
|
if (err == GRPC_ERROR_OOM) return oom_error_string;
|
@@ -775,8 +875,12 @@ const char* grpc_error_string(grpc_error* err) {
|
|
775
875
|
return out;
|
776
876
|
}
|
777
877
|
|
778
|
-
|
779
|
-
|
878
|
+
std::string grpc_error_std_string(grpc_error_handle error) {
|
879
|
+
return std::string(grpc_error_string(error));
|
880
|
+
}
|
881
|
+
|
882
|
+
grpc_error_handle grpc_os_error(const char* file, int line, int err,
|
883
|
+
const char* call_name) {
|
780
884
|
return grpc_error_set_str(
|
781
885
|
grpc_error_set_str(
|
782
886
|
grpc_error_set_int(
|
@@ -790,10 +894,10 @@ grpc_error* grpc_os_error(const char* file, int line, int err,
|
|
790
894
|
}
|
791
895
|
|
792
896
|
#ifdef GPR_WINDOWS
|
793
|
-
|
794
|
-
|
897
|
+
grpc_error_handle grpc_wsa_error(const char* file, int line, int err,
|
898
|
+
const char* call_name) {
|
795
899
|
char* utf8_message = gpr_format_message(err);
|
796
|
-
|
900
|
+
grpc_error_handle error = grpc_error_set_str(
|
797
901
|
grpc_error_set_str(
|
798
902
|
grpc_error_set_int(
|
799
903
|
grpc_error_create(file, line,
|
@@ -807,7 +911,7 @@ grpc_error* grpc_wsa_error(const char* file, int line, int err,
|
|
807
911
|
}
|
808
912
|
#endif
|
809
913
|
|
810
|
-
bool grpc_log_error(const char* what,
|
914
|
+
bool grpc_log_error(const char* what, grpc_error_handle error, const char* file,
|
811
915
|
int line) {
|
812
916
|
GPR_DEBUG_ASSERT(error != GRPC_ERROR_NONE);
|
813
917
|
const char* msg = grpc_error_string(error);
|
@@ -815,3 +919,5 @@ bool grpc_log_error(const char* what, grpc_error* error, const char* file,
|
|
815
919
|
GRPC_ERROR_UNREF(error);
|
816
920
|
return false;
|
817
921
|
}
|
922
|
+
|
923
|
+
#endif // GRPC_ERROR_IS_ABSEIL_STATUS
|