grpc 1.43.1 → 1.44.0.pre2
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 +84 -64
- data/include/grpc/grpc_security.h +10 -0
- data/include/grpc/impl/codegen/compression_types.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +6 -0
- data/src/core/ext/filters/client_channel/backend_metric.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel.cc +62 -68
- data/src/core/ext/filters/client_channel/client_channel.h +8 -8
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +4 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -14
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +3 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +31 -32
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
- 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/pick_first/pick_first.cc +43 -29
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +120 -68
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +60 -48
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +62 -61
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +16 -11
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +11 -5
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +19 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +50 -105
- data/src/core/ext/filters/client_channel/lb_policy.cc +15 -14
- data/src/core/ext/filters/client_channel/lb_policy.h +19 -3
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +207 -81
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +22 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +19 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +23 -38
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +118 -207
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +25 -32
- 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 +82 -73
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +10 -10
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +2 -5
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +157 -67
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +2 -2
- data/src/core/ext/filters/client_channel/retry_filter.cc +37 -64
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -1
- data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +1 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +12 -16
- data/src/core/ext/filters/client_channel/subchannel.h +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +37 -48
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -8
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +51 -122
- data/src/core/ext/filters/http/client_authority_filter.cc +8 -24
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +42 -140
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +5 -25
- data/src/core/ext/filters/http/server/http_server_filter.cc +50 -135
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/rbac/rbac_filter.cc +157 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +74 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +605 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +70 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +3 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +11 -6
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +89 -29
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +45 -186
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +341 -279
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +69 -159
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +19 -32
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +94 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -24
- data/src/core/ext/transport/chttp2/transport/internal.h +0 -33
- data/src/core/ext/transport/chttp2/transport/parsing.cc +0 -6
- data/src/core/ext/transport/chttp2/transport/writing.cc +47 -116
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +11 -63
- data/src/core/ext/transport/inproc/inproc_transport.h +0 -3
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +61 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +146 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +188 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.h +55 -0
- data/src/core/ext/xds/upb_utils.h +65 -0
- data/src/core/ext/xds/xds_api.cc +81 -3458
- data/src/core/ext/xds/xds_api.h +56 -611
- data/src/core/ext/xds/xds_bootstrap.cc +189 -125
- data/src/core/ext/xds/xds_bootstrap.h +20 -15
- data/src/core/ext/xds/xds_certificate_provider.h +1 -0
- data/src/core/ext/xds/xds_channel_creds.cc +108 -0
- data/src/core/ext/xds/xds_channel_creds.h +50 -0
- data/src/core/ext/xds/xds_client.cc +584 -994
- data/src/core/ext/xds/xds_client.h +78 -135
- data/src/core/ext/xds/xds_cluster.cc +451 -0
- data/src/core/ext/xds/xds_cluster.h +111 -0
- data/src/core/ext/xds/xds_common_types.cc +388 -0
- data/src/core/ext/xds/xds_common_types.h +110 -0
- data/src/core/ext/xds/xds_endpoint.cc +364 -0
- data/src/core/ext/xds/xds_endpoint.h +135 -0
- data/src/core/ext/xds/xds_http_filters.cc +5 -0
- data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
- data/src/core/ext/xds/xds_listener.cc +1036 -0
- data/src/core/ext/xds/xds_listener.h +220 -0
- data/src/core/ext/{transport/chttp2/transport/hpack_utils.h → xds/xds_resource_type.cc} +12 -9
- data/src/core/ext/xds/xds_resource_type.h +98 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
- data/src/core/ext/xds/xds_route_config.cc +993 -0
- data/src/core/ext/xds/xds_route_config.h +215 -0
- data/src/core/ext/xds/xds_routing.cc +11 -8
- data/src/core/ext/xds/xds_routing.h +8 -5
- data/src/core/ext/xds/xds_server_config_fetcher.cc +159 -99
- data/src/core/lib/address_utils/parse_address.cc +20 -0
- data/src/core/lib/address_utils/parse_address.h +5 -0
- data/src/core/lib/address_utils/sockaddr_utils.cc +33 -36
- data/src/core/lib/address_utils/sockaddr_utils.h +1 -16
- data/src/core/lib/backoff/backoff.cc +4 -30
- data/src/core/lib/backoff/backoff.h +3 -3
- data/src/core/lib/channel/channel_args.cc +0 -1
- data/src/core/lib/channel/channel_stack.cc +8 -0
- data/src/core/lib/channel/channel_stack.h +1 -1
- data/src/core/lib/channel/channel_stack_builder.cc +5 -9
- data/src/core/lib/channel/channel_stack_builder.h +4 -7
- data/src/core/lib/channel/channelz.cc +1 -0
- data/src/core/lib/compression/compression.cc +19 -111
- data/src/core/lib/compression/compression_internal.cc +142 -202
- data/src/core/lib/compression/compression_internal.h +64 -69
- data/src/core/lib/compression/message_compress.cc +11 -11
- data/src/core/lib/compression/message_compress.h +2 -2
- data/src/core/lib/gpr/useful.h +4 -0
- data/src/core/lib/gprpp/bitset.h +7 -0
- data/src/core/lib/gprpp/chunked_vector.h +45 -3
- data/src/core/lib/gprpp/status_helper.cc +20 -28
- data/src/core/lib/gprpp/status_helper.h +6 -19
- data/src/core/lib/gprpp/table.h +11 -0
- data/src/core/lib/http/httpcli.cc +37 -46
- data/src/core/lib/http/httpcli.h +3 -15
- data/src/core/lib/iomgr/call_combiner.cc +15 -4
- data/src/core/lib/iomgr/closure.h +29 -9
- data/src/core/lib/iomgr/combiner.cc +25 -3
- data/src/core/lib/iomgr/error.cc +2 -0
- data/src/core/lib/iomgr/error.h +3 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +3 -2
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +6 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +2 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +66 -48
- data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
- data/src/core/lib/iomgr/exec_ctx.cc +22 -9
- data/src/core/lib/iomgr/executor.cc +10 -1
- data/src/core/lib/iomgr/fork_posix.cc +3 -2
- data/src/core/lib/iomgr/iomgr_custom.cc +4 -1
- data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +2 -2
- data/src/core/lib/iomgr/port.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +5 -24
- data/src/core/lib/iomgr/resolve_address.h +47 -44
- data/src/core/lib/iomgr/resolve_address_custom.cc +131 -109
- data/src/core/lib/iomgr/resolve_address_custom.h +101 -19
- data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +82 -66
- data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +93 -74
- data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
- data/src/core/lib/iomgr/resolved_address.h +39 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +1 -0
- data/src/core/lib/iomgr/unix_sockets_posix.cc +22 -34
- data/src/core/lib/iomgr/unix_sockets_posix.h +4 -7
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +6 -15
- data/src/core/lib/matchers/matchers.cc +1 -1
- data/src/core/lib/promise/activity.h +49 -20
- data/src/core/lib/promise/detail/status.h +5 -0
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +10 -5
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_registry.cc +3 -2
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_registry.h +4 -5
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +1 -1
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +4 -4
- data/src/core/lib/resource_quota/api.h +0 -1
- data/src/core/lib/{gprpp → resource_quota}/arena.cc +16 -13
- data/src/core/lib/{gprpp → resource_quota}/arena.h +24 -13
- data/src/core/lib/security/authorization/evaluate_args.cc +30 -15
- data/src/core/lib/security/authorization/evaluate_args.h +1 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
- data/src/core/lib/security/authorization/matchers.cc +227 -0
- data/src/core/lib/security/authorization/matchers.h +211 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
- data/src/core/lib/security/authorization/rbac_policy.h +170 -0
- data/src/core/lib/security/context/security_context.cc +4 -2
- data/src/core/lib/security/context/security_context.h +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +5 -5
- data/src/core/lib/security/credentials/composite/composite_credentials.h +4 -3
- data/src/core/lib/security/credentials/credentials.h +10 -20
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +6 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +7 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.h +2 -7
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
- data/src/core/lib/security/credentials/fake/fake_credentials.h +8 -7
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +2 -5
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +16 -19
- data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -5
- data/src/core/lib/security/credentials/jwt/json_token.cc +4 -6
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +16 -28
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +8 -8
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +6 -13
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +44 -57
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +13 -15
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +5 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +1 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +6 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +7 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +1 -1
- data/src/core/lib/security/security_connector/security_connector.cc +0 -4
- data/src/core/lib/security/security_connector/security_connector.h +5 -1
- data/src/core/lib/security/security_connector/ssl_utils.cc +14 -24
- data/src/core/lib/security/security_connector/ssl_utils.h +5 -14
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +2 -3
- data/src/core/lib/security/transport/auth_filters.h +7 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +53 -33
- data/src/core/lib/security/transport/server_auth_filter.cc +40 -35
- data/src/core/{ext → lib}/service_config/service_config.cc +2 -2
- data/src/core/{ext → lib}/service_config/service_config.h +4 -4
- data/src/core/{ext → lib}/service_config/service_config_call_data.h +5 -5
- data/src/core/{ext → lib}/service_config/service_config_parser.cc +1 -1
- data/src/core/{ext → lib}/service_config/service_config_parser.h +3 -3
- data/src/core/lib/slice/slice.cc +3 -1
- data/src/core/lib/slice/slice.h +43 -13
- data/src/core/lib/slice/slice_intern.cc +3 -101
- data/src/core/lib/slice/slice_internal.h +1 -2
- data/src/core/lib/slice/slice_refcount.h +4 -13
- data/src/core/lib/slice/slice_refcount_base.h +0 -16
- data/src/core/lib/surface/call.cc +140 -382
- data/src/core/lib/surface/call.h +4 -4
- data/src/core/lib/surface/channel.cc +42 -44
- data/src/core/lib/surface/channel.h +4 -4
- data/src/core/lib/surface/init.cc +0 -2
- data/src/core/lib/surface/lame_client.cc +0 -1
- data/src/core/lib/surface/server.cc +12 -29
- data/src/core/lib/surface/server.h +2 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/error_utils.h +14 -0
- data/src/core/lib/transport/metadata_batch.h +799 -717
- data/src/core/lib/transport/parsed_metadata.cc +2 -0
- data/src/core/lib/transport/parsed_metadata.h +95 -92
- data/src/core/lib/transport/timeout_encoding.cc +200 -66
- data/src/core/lib/transport/timeout_encoding.h +40 -10
- data/src/core/lib/transport/transport.h +1 -1
- data/src/core/lib/transport/transport_op_string.cc +6 -39
- data/src/core/lib/uri/uri_parser.cc +223 -53
- data/src/core/lib/uri/uri_parser.h +36 -23
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -4
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -5
- data/src/core/tsi/ssl_transport_security.cc +53 -13
- data/src/core/tsi/ssl_transport_security.h +18 -6
- data/src/ruby/ext/grpc/extconf.rb +10 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -1
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
- data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
- data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
- data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
- data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
- data/third_party/abseil-cpp/absl/random/random.h +189 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +29 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +13 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +10 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +23 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +4 -0
- data/third_party/xxhash/xxhash.h +607 -352
- metadata +149 -77
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +0 -107
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +0 -46
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +0 -60
- data/src/core/lib/compression/algorithm_metadata.h +0 -62
- data/src/core/lib/compression/compression_args.cc +0 -140
- data/src/core/lib/compression/compression_args.h +0 -58
- data/src/core/lib/compression/stream_compression.cc +0 -81
- data/src/core/lib/compression/stream_compression.h +0 -117
- data/src/core/lib/compression/stream_compression_gzip.cc +0 -231
- data/src/core/lib/compression/stream_compression_gzip.h +0 -28
- data/src/core/lib/compression/stream_compression_identity.cc +0 -91
- data/src/core/lib/compression/stream_compression_identity.h +0 -29
- data/src/core/lib/security/credentials/credentials_metadata.cc +0 -61
- data/src/core/lib/slice/static_slice.cc +0 -377
- data/src/core/lib/slice/static_slice.h +0 -300
- data/src/core/lib/transport/metadata.cc +0 -714
- data/src/core/lib/transport/metadata.h +0 -449
- data/src/core/lib/transport/metadata_batch.cc +0 -99
- data/src/core/lib/transport/static_metadata.cc +0 -1032
- data/src/core/lib/transport/static_metadata.h +0 -322
- data/src/core/lib/transport/status_metadata.cc +0 -63
- data/src/core/lib/transport/status_metadata.h +0 -48
@@ -21,7 +21,8 @@
|
|
21
21
|
|
22
22
|
#include "absl/status/statusor.h"
|
23
23
|
|
24
|
-
#include "src/core/
|
24
|
+
#include "src/core/lib/gprpp/dual_ref_counted.h"
|
25
|
+
#include "src/core/lib/service_config/service_config.h"
|
25
26
|
#include "src/core/lib/transport/metadata_batch.h"
|
26
27
|
|
27
28
|
namespace grpc_core {
|
@@ -45,7 +46,7 @@ class ServerConfigSelector : public RefCounted<ServerConfigSelector> {
|
|
45
46
|
// ServerConfigSelectorProvider allows for subscribers to watch for updates on
|
46
47
|
// ServerConfigSelector. It is propagated via channel args.
|
47
48
|
class ServerConfigSelectorProvider
|
48
|
-
: public
|
49
|
+
: public DualRefCounted<ServerConfigSelectorProvider> {
|
49
50
|
public:
|
50
51
|
class ServerConfigSelectorWatcher {
|
51
52
|
public:
|
@@ -21,7 +21,7 @@
|
|
21
21
|
#include "src/core/ext/filters/server_config_selector/server_config_selector_filter.h"
|
22
22
|
|
23
23
|
#include "src/core/ext/filters/server_config_selector/server_config_selector.h"
|
24
|
-
#include "src/core/
|
24
|
+
#include "src/core/lib/service_config/service_config_call_data.h"
|
25
25
|
#include "src/core/lib/transport/error_utils.h"
|
26
26
|
|
27
27
|
namespace grpc_core {
|
@@ -36,7 +36,7 @@ class ChannelData {
|
|
36
36
|
|
37
37
|
absl::StatusOr<RefCountedPtr<ServerConfigSelector>> config_selector() {
|
38
38
|
MutexLock lock(&mu_);
|
39
|
-
return config_selector_;
|
39
|
+
return config_selector_.value();
|
40
40
|
}
|
41
41
|
|
42
42
|
private:
|
@@ -60,8 +60,8 @@ class ChannelData {
|
|
60
60
|
|
61
61
|
RefCountedPtr<ServerConfigSelectorProvider> server_config_selector_provider_;
|
62
62
|
Mutex mu_;
|
63
|
-
absl::StatusOr<RefCountedPtr<ServerConfigSelector
|
64
|
-
ABSL_GUARDED_BY(mu_);
|
63
|
+
absl::optional<absl::StatusOr<RefCountedPtr<ServerConfigSelector>>>
|
64
|
+
config_selector_ ABSL_GUARDED_BY(mu_);
|
65
65
|
};
|
66
66
|
|
67
67
|
class CallData {
|
@@ -103,7 +103,7 @@ class CallData {
|
|
103
103
|
|
104
104
|
grpc_error_handle ChannelData::Init(grpc_channel_element* elem,
|
105
105
|
grpc_channel_element_args* args) {
|
106
|
-
GPR_ASSERT(elem->filter
|
106
|
+
GPR_ASSERT(elem->filter == &kServerConfigSelectorFilter);
|
107
107
|
RefCountedPtr<ServerConfigSelectorProvider> server_config_selector_provider =
|
108
108
|
ServerConfigSelectorProvider::GetFromChannelArgs(*args->channel_args);
|
109
109
|
if (server_config_selector_provider == nullptr) {
|
@@ -127,8 +127,13 @@ ChannelData::ChannelData(
|
|
127
127
|
GPR_ASSERT(server_config_selector_provider_ != nullptr);
|
128
128
|
auto server_config_selector_watcher =
|
129
129
|
absl::make_unique<ServerConfigSelectorWatcher>(this);
|
130
|
-
|
130
|
+
auto config_selector = server_config_selector_provider_->Watch(
|
131
131
|
std::move(server_config_selector_watcher));
|
132
|
+
MutexLock lock(&mu_);
|
133
|
+
// It's possible for the watcher to have already updated config_selector_
|
134
|
+
if (!config_selector_.has_value()) {
|
135
|
+
config_selector_ = std::move(config_selector);
|
136
|
+
}
|
132
137
|
}
|
133
138
|
|
134
139
|
ChannelData::~ChannelData() { server_config_selector_provider_->CancelWatch(); }
|
@@ -23,9 +23,9 @@
|
|
23
23
|
#include <grpc/support/string_util.h>
|
24
24
|
|
25
25
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
26
|
-
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
27
26
|
#include "src/core/ext/transport/chttp2/client/chttp2_connector.h"
|
28
27
|
#include "src/core/lib/channel/channel_args.h"
|
28
|
+
#include "src/core/lib/resolver/resolver_registry.h"
|
29
29
|
#include "src/core/lib/resource_quota/api.h"
|
30
30
|
#include "src/core/lib/surface/api_trace.h"
|
31
31
|
#include "src/core/lib/surface/channel.h"
|
@@ -23,11 +23,11 @@
|
|
23
23
|
#include <grpc/support/string_util.h>
|
24
24
|
|
25
25
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
26
|
-
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
27
26
|
#include "src/core/ext/transport/chttp2/client/chttp2_connector.h"
|
28
27
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
29
28
|
#include "src/core/lib/channel/channel_args.h"
|
30
29
|
#include "src/core/lib/gprpp/memory.h"
|
30
|
+
#include "src/core/lib/resolver/resolver_registry.h"
|
31
31
|
#include "src/core/lib/resource_quota/api.h"
|
32
32
|
#include "src/core/lib/security/credentials/credentials.h"
|
33
33
|
#include "src/core/lib/security/security_connector/security_connector.h"
|
@@ -55,6 +55,7 @@
|
|
55
55
|
#include "src/core/lib/slice/slice_internal.h"
|
56
56
|
#include "src/core/lib/surface/api_trace.h"
|
57
57
|
#include "src/core/lib/surface/server.h"
|
58
|
+
#include "src/core/lib/transport/error_utils.h"
|
58
59
|
#include "src/core/lib/uri/uri_parser.h"
|
59
60
|
|
60
61
|
namespace grpc_core {
|
@@ -160,6 +161,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
160
161
|
|
161
162
|
private:
|
162
163
|
static void OnClose(void* arg, grpc_error_handle error);
|
164
|
+
static void OnDrainGraceTimeExpiry(void* arg, grpc_error_handle error);
|
163
165
|
|
164
166
|
RefCountedPtr<Chttp2ServerListener> listener_;
|
165
167
|
Mutex mu_ ABSL_ACQUIRED_AFTER(&listener_->mu_);
|
@@ -170,6 +172,10 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
170
172
|
// created.
|
171
173
|
grpc_chttp2_transport* transport_ ABSL_GUARDED_BY(&mu_) = nullptr;
|
172
174
|
grpc_closure on_close_;
|
175
|
+
grpc_timer drain_grace_timer_;
|
176
|
+
grpc_closure on_drain_grace_time_expiry_;
|
177
|
+
bool drain_grace_timer_expiry_callback_pending_ ABSL_GUARDED_BY(&mu_) =
|
178
|
+
false;
|
173
179
|
bool shutdown_ ABSL_GUARDED_BY(&mu_) = false;
|
174
180
|
};
|
175
181
|
|
@@ -221,10 +227,9 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
221
227
|
Chttp2ServerArgsModifier const args_modifier_;
|
222
228
|
ConfigFetcherWatcher* config_fetcher_watcher_ = nullptr;
|
223
229
|
grpc_channel_args* args_;
|
224
|
-
Mutex connection_manager_mu_;
|
225
|
-
RefCountedPtr<grpc_server_config_fetcher::ConnectionManager>
|
226
|
-
connection_manager_ ABSL_GUARDED_BY(connection_manager_mu_);
|
227
230
|
Mutex mu_;
|
231
|
+
RefCountedPtr<grpc_server_config_fetcher::ConnectionManager>
|
232
|
+
connection_manager_ ABSL_GUARDED_BY(mu_);
|
228
233
|
// Signals whether grpc_tcp_server_start() has been called.
|
229
234
|
bool started_ ABSL_GUARDED_BY(mu_) = false;
|
230
235
|
// Signals whether grpc_tcp_server_start() has completed.
|
@@ -250,13 +255,31 @@ void Chttp2ServerListener::ConfigFetcherWatcher::UpdateConnectionManager(
|
|
250
255
|
connection_manager) {
|
251
256
|
RefCountedPtr<grpc_server_config_fetcher::ConnectionManager>
|
252
257
|
connection_manager_to_destroy;
|
258
|
+
class GracefulShutdownExistingConnections {
|
259
|
+
public:
|
260
|
+
~GracefulShutdownExistingConnections() {
|
261
|
+
// Send GOAWAYs on the transports so that they get disconnected when
|
262
|
+
// existing RPCs finish, and so that no new RPC is started on them.
|
263
|
+
for (auto& connection : connections_) {
|
264
|
+
connection.first->SendGoAway();
|
265
|
+
}
|
266
|
+
}
|
267
|
+
|
268
|
+
void set_connections(
|
269
|
+
std::map<ActiveConnection*, OrphanablePtr<ActiveConnection>>
|
270
|
+
connections) {
|
271
|
+
GPR_ASSERT(connections_.empty());
|
272
|
+
connections_ = std::move(connections);
|
273
|
+
}
|
274
|
+
|
275
|
+
private:
|
276
|
+
std::map<ActiveConnection*, OrphanablePtr<ActiveConnection>> connections_;
|
277
|
+
} connections_to_shutdown;
|
253
278
|
{
|
254
|
-
MutexLock lock(&listener_->
|
279
|
+
MutexLock lock(&listener_->mu_);
|
255
280
|
connection_manager_to_destroy = listener_->connection_manager_;
|
256
281
|
listener_->connection_manager_ = std::move(connection_manager);
|
257
|
-
|
258
|
-
{
|
259
|
-
MutexLock lock(&listener_->mu_);
|
282
|
+
connections_to_shutdown.set_connections(std::move(listener_->connections_));
|
260
283
|
if (listener_->shutdown_) {
|
261
284
|
return;
|
262
285
|
}
|
@@ -525,7 +548,21 @@ void Chttp2ServerListener::ActiveConnection::SendGoAway() {
|
|
525
548
|
grpc_chttp2_transport* transport = nullptr;
|
526
549
|
{
|
527
550
|
MutexLock lock(&mu_);
|
528
|
-
|
551
|
+
if (transport_ != nullptr && !shutdown_) {
|
552
|
+
transport = transport_;
|
553
|
+
Ref().release(); // Ref held by OnDrainGraceTimeExpiry
|
554
|
+
GRPC_CLOSURE_INIT(&on_drain_grace_time_expiry_, OnDrainGraceTimeExpiry,
|
555
|
+
this, nullptr);
|
556
|
+
grpc_timer_init(&drain_grace_timer_,
|
557
|
+
ExecCtx::Get()->Now() +
|
558
|
+
grpc_channel_args_find_integer(
|
559
|
+
listener_->args_,
|
560
|
+
GRPC_ARG_SERVER_CONFIG_CHANGE_DRAIN_GRACE_TIME_MS,
|
561
|
+
{10 * 60 * GPR_MS_PER_SEC, 0, INT_MAX}),
|
562
|
+
&on_drain_grace_time_expiry_);
|
563
|
+
drain_grace_timer_expiry_callback_pending_ = true;
|
564
|
+
shutdown_ = true;
|
565
|
+
}
|
529
566
|
}
|
530
567
|
if (transport != nullptr) {
|
531
568
|
grpc_transport_op* op = grpc_make_transport_op(nullptr);
|
@@ -565,11 +602,35 @@ void Chttp2ServerListener::ActiveConnection::OnClose(
|
|
565
602
|
connection = std::move(it->second);
|
566
603
|
self->listener_->connections_.erase(it);
|
567
604
|
}
|
605
|
+
self->shutdown_ = true;
|
606
|
+
}
|
607
|
+
// Cancel the drain_grace_timer_ if needed.
|
608
|
+
if (self->drain_grace_timer_expiry_callback_pending_) {
|
609
|
+
grpc_timer_cancel(&self->drain_grace_timer_);
|
568
610
|
}
|
569
611
|
}
|
570
612
|
self->Unref();
|
571
613
|
}
|
572
614
|
|
615
|
+
void Chttp2ServerListener::ActiveConnection::OnDrainGraceTimeExpiry(
|
616
|
+
void* arg, grpc_error_handle error) {
|
617
|
+
ActiveConnection* self = static_cast<ActiveConnection*>(arg);
|
618
|
+
// If the drain_grace_timer_ was not cancelled, disconnect the transport
|
619
|
+
// immediately.
|
620
|
+
if (error == GRPC_ERROR_NONE) {
|
621
|
+
grpc_chttp2_transport* transport = nullptr;
|
622
|
+
{
|
623
|
+
MutexLock lock(&self->mu_);
|
624
|
+
transport = self->transport_;
|
625
|
+
}
|
626
|
+
grpc_transport_op* op = grpc_make_transport_op(nullptr);
|
627
|
+
op->disconnect_with_error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
628
|
+
"Drain grace time expired. Closing connection immediately.");
|
629
|
+
grpc_transport_perform_op(&transport->base, op);
|
630
|
+
}
|
631
|
+
self->Unref();
|
632
|
+
}
|
633
|
+
|
573
634
|
//
|
574
635
|
// Chttp2ServerListener
|
575
636
|
//
|
@@ -700,7 +761,7 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
700
761
|
RefCountedPtr<grpc_server_config_fetcher::ConnectionManager>
|
701
762
|
connection_manager;
|
702
763
|
{
|
703
|
-
MutexLock lock(&self->
|
764
|
+
MutexLock lock(&self->mu_);
|
704
765
|
connection_manager = self->connection_manager_;
|
705
766
|
}
|
706
767
|
auto endpoint_cleanup = [&](grpc_error_handle error) {
|
@@ -751,8 +812,10 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
751
812
|
RefCountedPtr<Chttp2ServerListener> listener_ref;
|
752
813
|
{
|
753
814
|
MutexLock lock(&self->mu_);
|
754
|
-
// Shutdown the the connection if listener's stopped serving
|
755
|
-
|
815
|
+
// Shutdown the the connection if listener's stopped serving or if the
|
816
|
+
// connection manager has changed.
|
817
|
+
if (!self->shutdown_ && self->is_serving_ &&
|
818
|
+
connection_manager == self->connection_manager_) {
|
756
819
|
// This ref needs to be taken in the critical region after having made
|
757
820
|
// sure that the listener has not been Orphaned, so as to avoid
|
758
821
|
// heap-use-after-free issues where `Ref()` is invoked when the ref of
|
@@ -825,7 +888,7 @@ grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
|
825
888
|
args_modifier);
|
826
889
|
}
|
827
890
|
*port_num = -1;
|
828
|
-
|
891
|
+
absl::StatusOr<std::vector<grpc_resolved_address>> resolved_or;
|
829
892
|
std::vector<grpc_error_handle> error_list;
|
830
893
|
std::string parsed_addr = URI::PercentDecode(addr);
|
831
894
|
absl::string_view parsed_addr_unprefixed{parsed_addr};
|
@@ -833,26 +896,26 @@ grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
|
833
896
|
grpc_error_handle error = [&]() {
|
834
897
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
835
898
|
if (absl::ConsumePrefix(&parsed_addr_unprefixed, kUnixUriPrefix)) {
|
836
|
-
|
837
|
-
grpc_resolve_unix_domain_address(parsed_addr_unprefixed, &resolved);
|
899
|
+
resolved_or = grpc_resolve_unix_domain_address(parsed_addr_unprefixed);
|
838
900
|
} else if (absl::ConsumePrefix(&parsed_addr_unprefixed,
|
839
901
|
kUnixAbstractUriPrefix)) {
|
840
|
-
|
841
|
-
|
902
|
+
resolved_or =
|
903
|
+
grpc_resolve_unix_abstract_domain_address(parsed_addr_unprefixed);
|
842
904
|
} else {
|
843
|
-
|
844
|
-
|
905
|
+
resolved_or = GetDNSResolver()->ResolveNameBlocking(parsed_addr, "https");
|
906
|
+
}
|
907
|
+
if (!resolved_or.ok()) {
|
908
|
+
return absl_status_to_grpc_error(resolved_or.status());
|
845
909
|
}
|
846
|
-
if (error != GRPC_ERROR_NONE) return error;
|
847
910
|
// Create a listener for each resolved address.
|
848
|
-
for (
|
911
|
+
for (auto& addr : *resolved_or) {
|
849
912
|
// If address has a wildcard port (0), use the same port as a previous
|
850
913
|
// listener.
|
851
|
-
if (*port_num != -1 && grpc_sockaddr_get_port(&
|
852
|
-
grpc_sockaddr_set_port(&
|
914
|
+
if (*port_num != -1 && grpc_sockaddr_get_port(&addr) == 0) {
|
915
|
+
grpc_sockaddr_set_port(&addr, *port_num);
|
853
916
|
}
|
854
917
|
int port_temp = -1;
|
855
|
-
error = Chttp2ServerListener::Create(server, &
|
918
|
+
error = Chttp2ServerListener::Create(server, &addr,
|
856
919
|
grpc_channel_args_copy(args),
|
857
920
|
args_modifier, &port_temp);
|
858
921
|
if (error != GRPC_ERROR_NONE) {
|
@@ -865,17 +928,17 @@ grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
|
865
928
|
}
|
866
929
|
}
|
867
930
|
}
|
868
|
-
if (error_list.size() ==
|
931
|
+
if (error_list.size() == resolved_or->size()) {
|
869
932
|
std::string msg =
|
870
933
|
absl::StrFormat("No address added out of total %" PRIuPTR " resolved",
|
871
|
-
|
934
|
+
resolved_or->size());
|
872
935
|
return GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(
|
873
936
|
msg.c_str(), error_list.data(), error_list.size());
|
874
937
|
} else if (!error_list.empty()) {
|
875
938
|
std::string msg = absl::StrFormat(
|
876
939
|
"Only %" PRIuPTR " addresses added out of total %" PRIuPTR
|
877
940
|
" resolved",
|
878
|
-
|
941
|
+
resolved_or->size() - error_list.size(), resolved_or->size());
|
879
942
|
error = GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(
|
880
943
|
msg.c_str(), error_list.data(), error_list.size());
|
881
944
|
gpr_log(GPR_INFO, "WARNING: %s", grpc_error_std_string(error).c_str());
|
@@ -888,9 +951,6 @@ grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
|
888
951
|
GRPC_ERROR_UNREF(error);
|
889
952
|
}
|
890
953
|
grpc_channel_args_destroy(args);
|
891
|
-
if (resolved != nullptr) {
|
892
|
-
grpc_resolved_addresses_destroy(resolved);
|
893
|
-
}
|
894
954
|
if (error != GRPC_ERROR_NONE) *port_num = 0;
|
895
955
|
return error;
|
896
956
|
}
|
@@ -21,7 +21,6 @@
|
|
21
21
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
22
22
|
#include "src/core/lib/debug/trace.h"
|
23
23
|
#include "src/core/lib/gprpp/global_config.h"
|
24
|
-
#include "src/core/lib/transport/metadata.h"
|
25
24
|
|
26
25
|
GPR_GLOBAL_CONFIG_DEFINE_BOOL(
|
27
26
|
grpc_experimental_disable_flow_control, false,
|