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
@@ -37,6 +37,7 @@
|
|
37
37
|
#include <grpc/support/log.h>
|
38
38
|
#include <grpc/support/string_util.h>
|
39
39
|
|
40
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
40
41
|
#include "src/core/lib/gpr/string.h"
|
41
42
|
#include "src/core/lib/gprpp/host_port.h"
|
42
43
|
#include "src/core/lib/iomgr/grpc_if_nametoindex.h"
|
@@ -318,3 +319,22 @@ uint16_t grpc_strhtons(const char* port) {
|
|
318
319
|
}
|
319
320
|
return htons(static_cast<unsigned short>(atoi(port)));
|
320
321
|
}
|
322
|
+
|
323
|
+
grpc_error_handle grpc_string_to_sockaddr(grpc_resolved_address* out,
|
324
|
+
const char* addr, int port) {
|
325
|
+
memset(out, 0, sizeof(grpc_resolved_address));
|
326
|
+
grpc_sockaddr_in6* addr6 = reinterpret_cast<grpc_sockaddr_in6*>(out->addr);
|
327
|
+
grpc_sockaddr_in* addr4 = reinterpret_cast<grpc_sockaddr_in*>(out->addr);
|
328
|
+
if (grpc_inet_pton(GRPC_AF_INET6, addr, &addr6->sin6_addr) == 1) {
|
329
|
+
addr6->sin6_family = GRPC_AF_INET6;
|
330
|
+
out->len = sizeof(grpc_sockaddr_in6);
|
331
|
+
} else if (grpc_inet_pton(GRPC_AF_INET, addr, &addr4->sin_addr) == 1) {
|
332
|
+
addr4->sin_family = GRPC_AF_INET;
|
333
|
+
out->len = sizeof(grpc_sockaddr_in);
|
334
|
+
} else {
|
335
|
+
return GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
336
|
+
absl::StrCat("Failed to parse address:", addr));
|
337
|
+
}
|
338
|
+
grpc_sockaddr_set_port(out, port);
|
339
|
+
return GRPC_ERROR_NONE;
|
340
|
+
}
|
@@ -61,6 +61,11 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
|
|
61
61
|
/* Converts named or numeric port to a uint16 suitable for use in a sockaddr. */
|
62
62
|
uint16_t grpc_strhtons(const char* port);
|
63
63
|
|
64
|
+
// Newer form of grpc_string_to_sockaddr which returns an error instead of
|
65
|
+
// crashing if \a addr is not IPv6/IPv6
|
66
|
+
grpc_error_handle grpc_string_to_sockaddr(grpc_resolved_address* out,
|
67
|
+
const char* addr, int port);
|
68
|
+
|
64
69
|
namespace grpc_core {
|
65
70
|
|
66
71
|
/** Populate \a resolved_addr to be a unix socket at |path| */
|
@@ -29,16 +29,42 @@
|
|
29
29
|
#include "absl/strings/str_cat.h"
|
30
30
|
#include "absl/strings/str_format.h"
|
31
31
|
|
32
|
-
#include <grpc/event_engine/event_engine.h>
|
33
32
|
#include <grpc/support/alloc.h>
|
34
33
|
#include <grpc/support/log.h>
|
35
34
|
|
36
35
|
#include "src/core/lib/gpr/string.h"
|
37
36
|
#include "src/core/lib/gprpp/host_port.h"
|
38
|
-
#include "src/core/lib/iomgr/event_engine/resolved_address_internal.h"
|
39
37
|
#include "src/core/lib/iomgr/sockaddr.h"
|
40
38
|
#include "src/core/lib/iomgr/socket_utils.h"
|
41
|
-
|
39
|
+
|
40
|
+
#ifdef GRPC_HAVE_UNIX_SOCKET
|
41
|
+
#include <sys/un.h>
|
42
|
+
#endif
|
43
|
+
|
44
|
+
#ifdef GRPC_HAVE_UNIX_SOCKET
|
45
|
+
static std::string grpc_sockaddr_to_uri_unix_if_possible(
|
46
|
+
const grpc_resolved_address* resolved_addr) {
|
47
|
+
const grpc_sockaddr* addr =
|
48
|
+
reinterpret_cast<const grpc_sockaddr*>(resolved_addr->addr);
|
49
|
+
if (addr->sa_family != AF_UNIX) {
|
50
|
+
return "";
|
51
|
+
}
|
52
|
+
const auto* unix_addr = reinterpret_cast<const struct sockaddr_un*>(addr);
|
53
|
+
if (unix_addr->sun_path[0] == '\0' && unix_addr->sun_path[1] != '\0') {
|
54
|
+
return absl::StrCat(
|
55
|
+
"unix-abstract:",
|
56
|
+
absl::string_view(
|
57
|
+
unix_addr->sun_path + 1,
|
58
|
+
resolved_addr->len - sizeof(unix_addr->sun_family) - 1));
|
59
|
+
}
|
60
|
+
return absl::StrCat("unix:", unix_addr->sun_path);
|
61
|
+
}
|
62
|
+
#else
|
63
|
+
static std::string grpc_sockaddr_to_uri_unix_if_possible(
|
64
|
+
const grpc_resolved_address* /* addr */) {
|
65
|
+
return "";
|
66
|
+
}
|
67
|
+
#endif
|
42
68
|
|
43
69
|
static const uint8_t kV4MappedPrefix[] = {0, 0, 0, 0, 0, 0,
|
44
70
|
0, 0, 0, 0, 0xff, 0xff};
|
@@ -200,25 +226,6 @@ std::string grpc_sockaddr_to_string(const grpc_resolved_address* resolved_addr,
|
|
200
226
|
return out;
|
201
227
|
}
|
202
228
|
|
203
|
-
grpc_error_handle grpc_string_to_sockaddr(grpc_resolved_address* out,
|
204
|
-
const char* addr, int port) {
|
205
|
-
memset(out, 0, sizeof(grpc_resolved_address));
|
206
|
-
grpc_sockaddr_in6* addr6 = reinterpret_cast<grpc_sockaddr_in6*>(out->addr);
|
207
|
-
grpc_sockaddr_in* addr4 = reinterpret_cast<grpc_sockaddr_in*>(out->addr);
|
208
|
-
if (grpc_inet_pton(GRPC_AF_INET6, addr, &addr6->sin6_addr) == 1) {
|
209
|
-
addr6->sin6_family = GRPC_AF_INET6;
|
210
|
-
out->len = sizeof(grpc_sockaddr_in6);
|
211
|
-
} else if (grpc_inet_pton(GRPC_AF_INET, addr, &addr4->sin_addr) == 1) {
|
212
|
-
addr4->sin_family = GRPC_AF_INET;
|
213
|
-
out->len = sizeof(grpc_sockaddr_in);
|
214
|
-
} else {
|
215
|
-
return GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
216
|
-
absl::StrCat("Failed to parse address:", addr));
|
217
|
-
}
|
218
|
-
grpc_sockaddr_set_port(out, port);
|
219
|
-
return GRPC_ERROR_NONE;
|
220
|
-
}
|
221
|
-
|
222
229
|
std::string grpc_sockaddr_to_uri(const grpc_resolved_address* resolved_addr) {
|
223
230
|
if (resolved_addr->len == 0) return "";
|
224
231
|
grpc_resolved_address addr_normalized;
|
@@ -269,10 +276,11 @@ int grpc_sockaddr_get_port(const grpc_resolved_address* resolved_addr) {
|
|
269
276
|
case GRPC_AF_INET6:
|
270
277
|
return grpc_ntohs(
|
271
278
|
(reinterpret_cast<const grpc_sockaddr_in6*>(addr))->sin6_port);
|
279
|
+
#ifdef GRPC_HAVE_UNIX_SOCKET
|
280
|
+
case AF_UNIX:
|
281
|
+
return 1;
|
282
|
+
#endif
|
272
283
|
default:
|
273
|
-
if (grpc_is_unix_socket(resolved_addr)) {
|
274
|
-
return 1;
|
275
|
-
}
|
276
284
|
gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_get_port",
|
277
285
|
addr->sa_family);
|
278
286
|
return 0;
|
@@ -399,14 +407,3 @@ bool grpc_sockaddr_match_subnet(const grpc_resolved_address* address,
|
|
399
407
|
}
|
400
408
|
return false;
|
401
409
|
}
|
402
|
-
|
403
|
-
namespace grpc_event_engine {
|
404
|
-
namespace experimental {
|
405
|
-
|
406
|
-
std::string ResolvedAddressToURI(const EventEngine::ResolvedAddress& addr) {
|
407
|
-
auto gra = CreateGRPCResolvedAddress(addr);
|
408
|
-
return grpc_sockaddr_to_uri(&gra);
|
409
|
-
}
|
410
|
-
|
411
|
-
} // namespace experimental
|
412
|
-
} // namespace grpc_event_engine
|
@@ -23,9 +23,7 @@
|
|
23
23
|
|
24
24
|
#include <string>
|
25
25
|
|
26
|
-
#include
|
27
|
-
|
28
|
-
#include "src/core/lib/iomgr/resolve_address.h"
|
26
|
+
#include "src/core/lib/iomgr/resolved_address.h"
|
29
27
|
|
30
28
|
/* Returns true if addr is an IPv4-mapped IPv6 address within the
|
31
29
|
::ffff:0.0.0.0/96 range, or false otherwise.
|
@@ -68,11 +66,6 @@ int grpc_sockaddr_set_port(grpc_resolved_address* addr, int port);
|
|
68
66
|
std::string grpc_sockaddr_to_string(const grpc_resolved_address* addr,
|
69
67
|
bool normalize) GRPC_MUST_USE_RESULT;
|
70
68
|
|
71
|
-
// Newer form of grpc_string_to_sockaddr which returns an error instead of
|
72
|
-
// crashing if \a addr is not IPv6/IPv6
|
73
|
-
grpc_error_handle grpc_string_to_sockaddr(grpc_resolved_address* out,
|
74
|
-
const char* addr, int port);
|
75
|
-
|
76
69
|
/* Returns the URI string corresponding to \a addr */
|
77
70
|
std::string grpc_sockaddr_to_uri(const grpc_resolved_address* addr);
|
78
71
|
|
@@ -99,12 +92,4 @@ bool grpc_sockaddr_match_subnet(const grpc_resolved_address* address,
|
|
99
92
|
const grpc_resolved_address* subnet_address,
|
100
93
|
uint32_t mask_bits);
|
101
94
|
|
102
|
-
namespace grpc_event_engine {
|
103
|
-
namespace experimental {
|
104
|
-
|
105
|
-
std::string ResolvedAddressToURI(const EventEngine::ResolvedAddress& addr);
|
106
|
-
|
107
|
-
} // namespace experimental
|
108
|
-
} // namespace grpc_event_engine
|
109
|
-
|
110
95
|
#endif /* GRPC_CORE_LIB_ADDRESS_UTILS_SOCKADDR_UTILS_H */
|
@@ -26,31 +26,7 @@
|
|
26
26
|
|
27
27
|
namespace grpc_core {
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
/* Generate a random number between 0 and 1. We roll our own RNG because seeding
|
32
|
-
* rand() modifies a global variable we have no control over. */
|
33
|
-
double generate_uniform_random_number(uint32_t* rng_state) {
|
34
|
-
constexpr uint32_t two_raise_31 = uint32_t(1) << 31;
|
35
|
-
*rng_state = (1103515245 * *rng_state + 12345) % two_raise_31;
|
36
|
-
return *rng_state / static_cast<double>(two_raise_31);
|
37
|
-
}
|
38
|
-
|
39
|
-
double generate_uniform_random_number_between(uint32_t* rng_state, double a,
|
40
|
-
double b) {
|
41
|
-
if (a == b) return a;
|
42
|
-
if (a > b) std::swap(a, b); // make sure a < b
|
43
|
-
const double range = b - a;
|
44
|
-
return a + generate_uniform_random_number(rng_state) * range;
|
45
|
-
}
|
46
|
-
|
47
|
-
} // namespace
|
48
|
-
|
49
|
-
BackOff::BackOff(const Options& options)
|
50
|
-
: options_(options),
|
51
|
-
rng_state_(static_cast<uint32_t>(gpr_now(GPR_CLOCK_REALTIME).tv_nsec)) {
|
52
|
-
Reset();
|
53
|
-
}
|
29
|
+
BackOff::BackOff(const Options& options) : options_(options) { Reset(); }
|
54
30
|
|
55
31
|
grpc_millis BackOff::NextAttemptTime() {
|
56
32
|
if (initial_) {
|
@@ -60,9 +36,9 @@ grpc_millis BackOff::NextAttemptTime() {
|
|
60
36
|
current_backoff_ = static_cast<grpc_millis>(
|
61
37
|
std::min(current_backoff_ * options_.multiplier(),
|
62
38
|
static_cast<double>(options_.max_backoff())));
|
63
|
-
const double jitter =
|
64
|
-
|
65
|
-
|
39
|
+
const double jitter =
|
40
|
+
absl::Uniform(rand_gen_, -options_.jitter() * current_backoff_,
|
41
|
+
options_.jitter() * current_backoff_);
|
66
42
|
const grpc_millis next_timeout =
|
67
43
|
static_cast<grpc_millis>(current_backoff_ + jitter);
|
68
44
|
return next_timeout + ExecCtx::Get()->Now();
|
@@ -73,6 +49,4 @@ void BackOff::Reset() {
|
|
73
49
|
initial_ = true;
|
74
50
|
}
|
75
51
|
|
76
|
-
void BackOff::SetRandomSeed(uint32_t seed) { rng_state_ = seed; }
|
77
|
-
|
78
52
|
} // namespace grpc_core
|
@@ -21,6 +21,8 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include "absl/random/random.h"
|
25
|
+
|
24
26
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
25
27
|
|
26
28
|
namespace grpc_core {
|
@@ -41,8 +43,6 @@ class BackOff {
|
|
41
43
|
/// will be the time of the second attempt (rather than the Nth).
|
42
44
|
void Reset();
|
43
45
|
|
44
|
-
void SetRandomSeed(unsigned int seed);
|
45
|
-
|
46
46
|
class Options {
|
47
47
|
public:
|
48
48
|
Options& set_initial_backoff(grpc_millis initial_backoff) {
|
@@ -79,7 +79,7 @@ class BackOff {
|
|
79
79
|
|
80
80
|
private:
|
81
81
|
const Options options_;
|
82
|
-
|
82
|
+
absl::BitGen rand_gen_;
|
83
83
|
bool initial_;
|
84
84
|
/// current delay before retries
|
85
85
|
grpc_millis current_backoff_;
|
@@ -29,6 +29,7 @@
|
|
29
29
|
#include "src/core/lib/gpr/alloc.h"
|
30
30
|
|
31
31
|
grpc_core::TraceFlag grpc_trace_channel(false, "channel");
|
32
|
+
grpc_core::TraceFlag grpc_trace_channel_stack(false, "channel_stack");
|
32
33
|
|
33
34
|
/* Memory layouts.
|
34
35
|
|
@@ -105,6 +106,13 @@ grpc_error_handle grpc_channel_stack_init(
|
|
105
106
|
const grpc_channel_filter** filters, size_t filter_count,
|
106
107
|
const grpc_channel_args* channel_args, grpc_transport* optional_transport,
|
107
108
|
const char* name, grpc_channel_stack* stack) {
|
109
|
+
if (grpc_trace_channel_stack.enabled()) {
|
110
|
+
gpr_log(GPR_INFO, "CHANNEL_STACK: init %s", name);
|
111
|
+
for (size_t i = 0; i < filter_count; i++) {
|
112
|
+
gpr_log(GPR_INFO, "CHANNEL_STACK: filter %s", filters[i]->name);
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
108
116
|
size_t call_size =
|
109
117
|
GPR_ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(grpc_call_stack)) +
|
110
118
|
GPR_ROUND_UP_TO_ALIGNMENT_SIZE(filter_count * sizeof(grpc_call_element));
|
@@ -54,9 +54,9 @@
|
|
54
54
|
|
55
55
|
#include "src/core/lib/debug/trace.h"
|
56
56
|
#include "src/core/lib/gpr/time_precise.h"
|
57
|
-
#include "src/core/lib/gprpp/arena.h"
|
58
57
|
#include "src/core/lib/iomgr/call_combiner.h"
|
59
58
|
#include "src/core/lib/iomgr/polling_entity.h"
|
59
|
+
#include "src/core/lib/resource_quota/arena.h"
|
60
60
|
#include "src/core/lib/transport/transport.h"
|
61
61
|
|
62
62
|
typedef struct grpc_channel_element grpc_channel_element;
|
@@ -51,7 +51,8 @@ struct grpc_channel_stack_builder_iterator {
|
|
51
51
|
filter_node* node;
|
52
52
|
};
|
53
53
|
|
54
|
-
grpc_channel_stack_builder* grpc_channel_stack_builder_create(
|
54
|
+
grpc_channel_stack_builder* grpc_channel_stack_builder_create(
|
55
|
+
const char* name) {
|
55
56
|
grpc_channel_stack_builder* b =
|
56
57
|
grpc_core::Zalloc<grpc_channel_stack_builder>();
|
57
58
|
b->begin.filter = nullptr;
|
@@ -60,6 +61,7 @@ grpc_channel_stack_builder* grpc_channel_stack_builder_create(void) {
|
|
60
61
|
b->begin.prev = &b->end;
|
61
62
|
b->end.next = &b->begin;
|
62
63
|
b->end.prev = &b->begin;
|
64
|
+
b->name = name;
|
63
65
|
return b;
|
64
66
|
}
|
65
67
|
|
@@ -69,9 +71,9 @@ void grpc_channel_stack_builder_set_target(grpc_channel_stack_builder* b,
|
|
69
71
|
b->target = gpr_strdup(target);
|
70
72
|
}
|
71
73
|
|
72
|
-
|
74
|
+
std::string grpc_channel_stack_builder_get_target(
|
73
75
|
grpc_channel_stack_builder* b) {
|
74
|
-
return b->target;
|
76
|
+
return b->target == nullptr ? std::string("unknown") : std::string(b->target);
|
75
77
|
}
|
76
78
|
|
77
79
|
static grpc_channel_stack_builder_iterator* create_iterator_at_filter_node(
|
@@ -143,12 +145,6 @@ grpc_channel_stack_builder_iterator* grpc_channel_stack_builder_iterator_find(
|
|
143
145
|
bool grpc_channel_stack_builder_move_prev(
|
144
146
|
grpc_channel_stack_builder_iterator* iterator);
|
145
147
|
|
146
|
-
void grpc_channel_stack_builder_set_name(grpc_channel_stack_builder* builder,
|
147
|
-
const char* name) {
|
148
|
-
GPR_ASSERT(builder->name == nullptr);
|
149
|
-
builder->name = name;
|
150
|
-
}
|
151
|
-
|
152
148
|
void grpc_channel_stack_builder_set_channel_arguments(
|
153
149
|
grpc_channel_stack_builder* builder, const grpc_channel_args* args) {
|
154
150
|
if (builder->args != nullptr) {
|
@@ -32,18 +32,15 @@ typedef struct grpc_channel_stack_builder grpc_channel_stack_builder;
|
|
32
32
|
typedef struct grpc_channel_stack_builder_iterator
|
33
33
|
grpc_channel_stack_builder_iterator;
|
34
34
|
|
35
|
-
/// Create a new channel stack builder
|
36
|
-
|
37
|
-
|
38
|
-
/// Assign a name to the channel stack: \a name must be statically allocated
|
39
|
-
void grpc_channel_stack_builder_set_name(grpc_channel_stack_builder* builder,
|
40
|
-
const char* name);
|
35
|
+
/// Create a new channel stack builder.
|
36
|
+
/// \a name must be statically allocated.
|
37
|
+
grpc_channel_stack_builder* grpc_channel_stack_builder_create(const char* name);
|
41
38
|
|
42
39
|
/// Set the target uri
|
43
40
|
void grpc_channel_stack_builder_set_target(grpc_channel_stack_builder* b,
|
44
41
|
const char* target);
|
45
42
|
|
46
|
-
|
43
|
+
std::string grpc_channel_stack_builder_get_target(
|
47
44
|
grpc_channel_stack_builder* b);
|
48
45
|
|
49
46
|
/// Attach \a transport to the builder (does not take ownership)
|
@@ -34,6 +34,7 @@
|
|
34
34
|
#include <grpc/support/log.h>
|
35
35
|
#include <grpc/support/string_util.h>
|
36
36
|
|
37
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
37
38
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
38
39
|
#include "src/core/lib/channel/channelz_registry.h"
|
39
40
|
#include "src/core/lib/channel/status_util.h"
|
@@ -23,89 +23,47 @@
|
|
23
23
|
|
24
24
|
#include <grpc/compression.h>
|
25
25
|
|
26
|
-
#include "src/core/lib/compression/algorithm_metadata.h"
|
27
26
|
#include "src/core/lib/compression/compression_internal.h"
|
28
27
|
#include "src/core/lib/gpr/useful.h"
|
29
28
|
#include "src/core/lib/slice/slice_utils.h"
|
30
29
|
#include "src/core/lib/surface/api_trace.h"
|
31
|
-
#include "src/core/lib/transport/static_metadata.h"
|
32
30
|
|
33
|
-
int grpc_compression_algorithm_is_message(
|
34
|
-
|
35
|
-
return (algorithm >= GRPC_COMPRESS_DEFLATE && algorithm <= GRPC_COMPRESS_GZIP)
|
36
|
-
? 1
|
37
|
-
: 0;
|
31
|
+
int grpc_compression_algorithm_is_message(grpc_compression_algorithm) {
|
32
|
+
return 1;
|
38
33
|
}
|
39
34
|
|
40
|
-
int grpc_compression_algorithm_is_stream(grpc_compression_algorithm
|
41
|
-
return
|
35
|
+
int grpc_compression_algorithm_is_stream(grpc_compression_algorithm) {
|
36
|
+
return 0;
|
42
37
|
}
|
43
38
|
|
44
39
|
int grpc_compression_algorithm_parse(grpc_slice name,
|
45
40
|
grpc_compression_algorithm* algorithm) {
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
*algorithm =
|
41
|
+
absl::optional<grpc_compression_algorithm> alg =
|
42
|
+
grpc_core::ParseCompressionAlgorithm(
|
43
|
+
grpc_core::StringViewFromSlice(name));
|
44
|
+
if (alg.has_value()) {
|
45
|
+
*algorithm = alg.value();
|
51
46
|
return 1;
|
52
|
-
} else if (grpc_slice_eq_static_interned(name, GRPC_MDSTR_GZIP)) {
|
53
|
-
*algorithm = GRPC_COMPRESS_GZIP;
|
54
|
-
return 1;
|
55
|
-
} else if (grpc_slice_eq_static_interned(name,
|
56
|
-
GRPC_MDSTR_STREAM_SLASH_GZIP)) {
|
57
|
-
*algorithm = GRPC_COMPRESS_STREAM_GZIP;
|
58
|
-
return 1;
|
59
|
-
} else {
|
60
|
-
return 0;
|
61
47
|
}
|
48
|
+
return 0;
|
62
49
|
}
|
63
50
|
|
64
51
|
int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
|
65
52
|
const char** name) {
|
66
53
|
GRPC_API_TRACE("grpc_compression_algorithm_name(algorithm=%d, name=%p)", 2,
|
67
54
|
((int)algorithm, name));
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
case GRPC_COMPRESS_DEFLATE:
|
73
|
-
*name = "deflate";
|
74
|
-
return 1;
|
75
|
-
case GRPC_COMPRESS_GZIP:
|
76
|
-
*name = "gzip";
|
77
|
-
return 1;
|
78
|
-
case GRPC_COMPRESS_STREAM_GZIP:
|
79
|
-
*name = "stream/gzip";
|
80
|
-
return 1;
|
81
|
-
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
82
|
-
return 0;
|
55
|
+
const char* result = grpc_core::CompressionAlgorithmAsString(algorithm);
|
56
|
+
if (result != nullptr) {
|
57
|
+
*name = result;
|
58
|
+
return 1;
|
83
59
|
}
|
84
60
|
return 0;
|
85
61
|
}
|
86
62
|
|
87
63
|
grpc_compression_algorithm grpc_compression_algorithm_for_level(
|
88
64
|
grpc_compression_level level, uint32_t accepted_encodings) {
|
89
|
-
|
90
|
-
|
91
|
-
return GRPC_COMPRESS_NONE;
|
92
|
-
} else if (level <= GRPC_COMPRESS_LEVEL_HIGH) {
|
93
|
-
// TODO(mxyan): Design algorithm to select from all algorithms, including
|
94
|
-
// stream compression algorithm
|
95
|
-
if (!grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
96
|
-
&algo,
|
97
|
-
grpc_message_compression_algorithm_for_level(
|
98
|
-
level,
|
99
|
-
grpc_compression_bitset_to_message_bitset(accepted_encodings)),
|
100
|
-
static_cast<grpc_stream_compression_algorithm>(0))) {
|
101
|
-
gpr_log(GPR_ERROR, "Parse compression level error");
|
102
|
-
return GRPC_COMPRESS_NONE;
|
103
|
-
}
|
104
|
-
return algo;
|
105
|
-
} else {
|
106
|
-
gpr_log(GPR_ERROR, "Unknown compression level: %d", level);
|
107
|
-
return GRPC_COMPRESS_NONE;
|
108
|
-
}
|
65
|
+
return grpc_core::CompressionAlgorithmSet::FromUint32(accepted_encodings)
|
66
|
+
.CompressionAlgorithmForLevel(level);
|
109
67
|
}
|
110
68
|
|
111
69
|
void grpc_compression_options_init(grpc_compression_options* opts) {
|
@@ -127,57 +85,7 @@ void grpc_compression_options_disable_algorithm(
|
|
127
85
|
int grpc_compression_options_is_algorithm_enabled(
|
128
86
|
const grpc_compression_options* opts,
|
129
87
|
grpc_compression_algorithm algorithm) {
|
130
|
-
return
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
grpc_slice grpc_compression_algorithm_slice(
|
135
|
-
grpc_compression_algorithm algorithm) {
|
136
|
-
switch (algorithm) {
|
137
|
-
case GRPC_COMPRESS_NONE:
|
138
|
-
return GRPC_MDSTR_IDENTITY;
|
139
|
-
case GRPC_COMPRESS_DEFLATE:
|
140
|
-
return GRPC_MDSTR_DEFLATE;
|
141
|
-
case GRPC_COMPRESS_GZIP:
|
142
|
-
return GRPC_MDSTR_GZIP;
|
143
|
-
case GRPC_COMPRESS_STREAM_GZIP:
|
144
|
-
return GRPC_MDSTR_STREAM_SLASH_GZIP;
|
145
|
-
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
146
|
-
return grpc_empty_slice();
|
147
|
-
}
|
148
|
-
return grpc_empty_slice();
|
149
|
-
}
|
150
|
-
|
151
|
-
grpc_compression_algorithm grpc_compression_algorithm_from_slice(
|
152
|
-
const grpc_slice& str) {
|
153
|
-
if (grpc_slice_eq_static_interned(str, GRPC_MDSTR_IDENTITY)) {
|
154
|
-
return GRPC_COMPRESS_NONE;
|
155
|
-
}
|
156
|
-
if (grpc_slice_eq_static_interned(str, GRPC_MDSTR_DEFLATE)) {
|
157
|
-
return GRPC_COMPRESS_DEFLATE;
|
158
|
-
}
|
159
|
-
if (grpc_slice_eq_static_interned(str, GRPC_MDSTR_GZIP)) {
|
160
|
-
return GRPC_COMPRESS_GZIP;
|
161
|
-
}
|
162
|
-
if (grpc_slice_eq_static_interned(str, GRPC_MDSTR_STREAM_SLASH_GZIP)) {
|
163
|
-
return GRPC_COMPRESS_STREAM_GZIP;
|
164
|
-
}
|
165
|
-
return GRPC_COMPRESS_ALGORITHMS_COUNT;
|
166
|
-
}
|
167
|
-
|
168
|
-
grpc_mdelem grpc_compression_encoding_mdelem(
|
169
|
-
grpc_compression_algorithm algorithm) {
|
170
|
-
switch (algorithm) {
|
171
|
-
case GRPC_COMPRESS_NONE:
|
172
|
-
return GRPC_MDELEM_GRPC_ENCODING_IDENTITY;
|
173
|
-
case GRPC_COMPRESS_DEFLATE:
|
174
|
-
return GRPC_MDELEM_GRPC_ENCODING_DEFLATE;
|
175
|
-
case GRPC_COMPRESS_GZIP:
|
176
|
-
return GRPC_MDELEM_GRPC_ENCODING_GZIP;
|
177
|
-
case GRPC_COMPRESS_STREAM_GZIP:
|
178
|
-
return GRPC_MDELEM_GRPC_ENCODING_GZIP;
|
179
|
-
default:
|
180
|
-
break;
|
181
|
-
}
|
182
|
-
return GRPC_MDNULL;
|
88
|
+
return grpc_core::CompressionAlgorithmSet::FromUint32(
|
89
|
+
opts->enabled_algorithms_bitset)
|
90
|
+
.IsSet(algorithm);
|
183
91
|
}
|