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
data/src/core/lib/surface/call.h
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
#include "src/core/lib/channel/channel_stack.h"
|
28
28
|
#include "src/core/lib/channel/context.h"
|
29
|
-
#include "src/core/lib/
|
29
|
+
#include "src/core/lib/resource_quota/arena.h"
|
30
30
|
#include "src/core/lib/surface/api_trace.h"
|
31
31
|
#include "src/core/lib/surface/server.h"
|
32
32
|
|
@@ -46,8 +46,8 @@ typedef struct grpc_call_create_args {
|
|
46
46
|
|
47
47
|
const void* server_transport_data;
|
48
48
|
|
49
|
-
|
50
|
-
|
49
|
+
absl::optional<grpc_core::Slice> path;
|
50
|
+
absl::optional<grpc_core::Slice> authority;
|
51
51
|
|
52
52
|
grpc_millis send_deadline;
|
53
53
|
} grpc_call_create_args;
|
@@ -55,7 +55,7 @@ typedef struct grpc_call_create_args {
|
|
55
55
|
/* Create a new call based on \a args.
|
56
56
|
Regardless of success or failure, always returns a valid new call into *call
|
57
57
|
*/
|
58
|
-
grpc_error_handle grpc_call_create(
|
58
|
+
grpc_error_handle grpc_call_create(grpc_call_create_args* args,
|
59
59
|
grpc_call** call);
|
60
60
|
|
61
61
|
void grpc_call_set_completion_queue(grpc_call* call, grpc_completion_queue* cq);
|
@@ -41,11 +41,12 @@
|
|
41
41
|
#include "src/core/lib/gprpp/memory.h"
|
42
42
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
43
43
|
#include "src/core/lib/iomgr/iomgr.h"
|
44
|
+
#include "src/core/lib/resource_quota/api.h"
|
44
45
|
#include "src/core/lib/resource_quota/memory_quota.h"
|
45
46
|
#include "src/core/lib/slice/slice_internal.h"
|
46
47
|
#include "src/core/lib/surface/api_trace.h"
|
47
48
|
#include "src/core/lib/surface/call.h"
|
48
|
-
#include "src/core/lib/
|
49
|
+
#include "src/core/lib/surface/channel_stack_type.h"
|
49
50
|
|
50
51
|
/** Cache grpc-status: X mdelems for X = 0..NUM_CACHED_STATUS_ELEMS.
|
51
52
|
* Avoids needing to take a metadata context lock for sending status
|
@@ -59,7 +60,7 @@ static void destroy_channel(void* arg, grpc_error_handle error);
|
|
59
60
|
grpc_channel* grpc_channel_create_with_builder(
|
60
61
|
grpc_channel_stack_builder* builder,
|
61
62
|
grpc_channel_stack_type channel_stack_type, grpc_error_handle* error) {
|
62
|
-
|
63
|
+
std::string target = grpc_channel_stack_builder_get_target(builder);
|
63
64
|
grpc_channel_args* args = grpc_channel_args_copy(
|
64
65
|
grpc_channel_stack_builder_get_channel_arguments(builder));
|
65
66
|
grpc_channel* channel;
|
@@ -68,6 +69,7 @@ grpc_channel* grpc_channel_create_with_builder(
|
|
68
69
|
} else {
|
69
70
|
GRPC_STATS_INC_CLIENT_CHANNELS_CREATED();
|
70
71
|
}
|
72
|
+
std::string name = grpc_channel_stack_builder_get_target(builder);
|
71
73
|
grpc_error_handle builder_error = grpc_channel_stack_builder_finish(
|
72
74
|
builder, sizeof(grpc_channel), 1, destroy_channel, nullptr,
|
73
75
|
reinterpret_cast<void**>(&channel));
|
@@ -80,13 +82,15 @@ grpc_channel* grpc_channel_create_with_builder(
|
|
80
82
|
} else {
|
81
83
|
GRPC_ERROR_UNREF(builder_error);
|
82
84
|
}
|
83
|
-
gpr_free(target);
|
84
85
|
grpc_channel_args_destroy(args);
|
85
86
|
return nullptr;
|
86
87
|
}
|
87
|
-
channel->target
|
88
|
+
channel->target.Init(std::move(target));
|
88
89
|
channel->is_client = grpc_channel_stack_type_is_client(channel_stack_type);
|
89
90
|
channel->registration_table.Init();
|
91
|
+
channel->allocator.Init(grpc_core::ResourceQuotaFromChannelArgs(args)
|
92
|
+
->memory_quota()
|
93
|
+
->CreateMemoryOwner(name));
|
90
94
|
|
91
95
|
gpr_atm_no_barrier_store(
|
92
96
|
&channel->call_size_estimate,
|
@@ -197,11 +201,10 @@ void CreateChannelzNode(grpc_channel_stack_builder* builder) {
|
|
197
201
|
const bool is_internal_channel = grpc_channel_args_find_bool(
|
198
202
|
args, GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL, false);
|
199
203
|
// Create the channelz node.
|
200
|
-
|
204
|
+
std::string target = grpc_channel_stack_builder_get_target(builder);
|
201
205
|
grpc_core::RefCountedPtr<grpc_core::channelz::ChannelNode> channelz_node =
|
202
206
|
grpc_core::MakeRefCounted<grpc_core::channelz::ChannelNode>(
|
203
|
-
target
|
204
|
-
is_internal_channel);
|
207
|
+
target.c_str(), channel_tracer_max_memory, is_internal_channel);
|
205
208
|
channelz_node->AddTraceEvent(
|
206
209
|
grpc_core::channelz::ChannelTrace::Severity::Info,
|
207
210
|
grpc_slice_from_static_string("Channel created"));
|
@@ -241,7 +244,8 @@ grpc_channel* grpc_channel_create(const char* target,
|
|
241
244
|
// grpc_shutdown() when the channel is actually destroyed, thus
|
242
245
|
// ensuring that shutdown is deferred until that point.
|
243
246
|
grpc_init();
|
244
|
-
grpc_channel_stack_builder* builder = grpc_channel_stack_builder_create(
|
247
|
+
grpc_channel_stack_builder* builder = grpc_channel_stack_builder_create(
|
248
|
+
grpc_channel_stack_type_string(channel_stack_type));
|
245
249
|
const grpc_core::UniquePtr<char> default_authority =
|
246
250
|
get_default_authority(input_args);
|
247
251
|
grpc_channel_args* args =
|
@@ -313,7 +317,7 @@ void grpc_channel_update_call_size_estimate(grpc_channel* channel,
|
|
313
317
|
|
314
318
|
char* grpc_channel_get_target(grpc_channel* channel) {
|
315
319
|
GRPC_API_TRACE("grpc_channel_get_target(channel=%p)", 1, (channel));
|
316
|
-
return gpr_strdup(channel->target);
|
320
|
+
return gpr_strdup(channel->target->c_str());
|
317
321
|
}
|
318
322
|
|
319
323
|
void grpc_channel_get_info(grpc_channel* channel,
|
@@ -340,19 +344,11 @@ void grpc_channel_reset_connect_backoff(grpc_channel* channel) {
|
|
340
344
|
static grpc_call* grpc_channel_create_call_internal(
|
341
345
|
grpc_channel* channel, grpc_call* parent_call, uint32_t propagation_mask,
|
342
346
|
grpc_completion_queue* cq, grpc_pollset_set* pollset_set_alternative,
|
343
|
-
|
347
|
+
grpc_core::Slice path, absl::optional<grpc_core::Slice> authority,
|
344
348
|
grpc_millis deadline) {
|
345
|
-
grpc_mdelem send_metadata[2];
|
346
|
-
size_t num_metadata = 0;
|
347
|
-
|
348
349
|
GPR_ASSERT(channel->is_client);
|
349
350
|
GPR_ASSERT(!(cq != nullptr && pollset_set_alternative != nullptr));
|
350
351
|
|
351
|
-
send_metadata[num_metadata++] = path_mdelem;
|
352
|
-
if (!GRPC_MDISNULL(authority_mdelem)) {
|
353
|
-
send_metadata[num_metadata++] = authority_mdelem;
|
354
|
-
}
|
355
|
-
|
356
352
|
grpc_call_create_args args;
|
357
353
|
args.channel = channel;
|
358
354
|
args.server = nullptr;
|
@@ -361,8 +357,8 @@ static grpc_call* grpc_channel_create_call_internal(
|
|
361
357
|
args.cq = cq;
|
362
358
|
args.pollset_set_alternative = pollset_set_alternative;
|
363
359
|
args.server_transport_data = nullptr;
|
364
|
-
args.
|
365
|
-
args.
|
360
|
+
args.path = std::move(path);
|
361
|
+
args.authority = std::move(authority);
|
366
362
|
args.send_deadline = deadline;
|
367
363
|
|
368
364
|
grpc_call* call;
|
@@ -381,9 +377,10 @@ grpc_call* grpc_channel_create_call(grpc_channel* channel,
|
|
381
377
|
grpc_core::ExecCtx exec_ctx;
|
382
378
|
grpc_call* call = grpc_channel_create_call_internal(
|
383
379
|
channel, parent_call, propagation_mask, completion_queue, nullptr,
|
384
|
-
|
385
|
-
host != nullptr
|
386
|
-
|
380
|
+
grpc_core::Slice(grpc_slice_ref_internal(method)),
|
381
|
+
host != nullptr
|
382
|
+
? absl::optional<grpc_core::Slice>(grpc_slice_ref_internal(*host))
|
383
|
+
: absl::nullopt,
|
387
384
|
grpc_timespec_to_millis_round_up(deadline));
|
388
385
|
|
389
386
|
return call;
|
@@ -396,34 +393,31 @@ grpc_call* grpc_channel_create_pollset_set_call(
|
|
396
393
|
GPR_ASSERT(!reserved);
|
397
394
|
return grpc_channel_create_call_internal(
|
398
395
|
channel, parent_call, propagation_mask, nullptr, pollset_set,
|
399
|
-
|
400
|
-
host != nullptr
|
401
|
-
|
396
|
+
grpc_core::Slice(method),
|
397
|
+
host != nullptr
|
398
|
+
? absl::optional<grpc_core::Slice>(grpc_slice_ref_internal(*host))
|
399
|
+
: absl::nullopt,
|
402
400
|
deadline);
|
403
401
|
}
|
404
402
|
|
405
403
|
namespace grpc_core {
|
406
404
|
|
407
|
-
RegisteredCall::RegisteredCall(const char* method_arg, const char* host_arg)
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
host_arg != nullptr && host_arg[0] != 0
|
414
|
-
? grpc_mdelem_from_slices(GRPC_MDSTR_AUTHORITY,
|
415
|
-
grpc_slice_from_copied_string(host_arg))
|
416
|
-
: GRPC_MDNULL) {}
|
405
|
+
RegisteredCall::RegisteredCall(const char* method_arg, const char* host_arg) {
|
406
|
+
path = Slice::FromCopiedString(method_arg);
|
407
|
+
if (host_arg != nullptr && host_arg[0] != 0) {
|
408
|
+
authority = Slice::FromCopiedString(host_arg);
|
409
|
+
}
|
410
|
+
}
|
417
411
|
|
418
412
|
RegisteredCall::RegisteredCall(const RegisteredCall& other)
|
419
|
-
: path(
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
GRPC_MDELEM_UNREF(path);
|
424
|
-
GRPC_MDELEM_UNREF(authority);
|
413
|
+
: path(other.path.Ref()) {
|
414
|
+
if (other.authority.has_value()) {
|
415
|
+
authority = other.authority->Ref();
|
416
|
+
}
|
425
417
|
}
|
426
418
|
|
419
|
+
RegisteredCall::~RegisteredCall() {}
|
420
|
+
|
427
421
|
} // namespace grpc_core
|
428
422
|
|
429
423
|
void* grpc_channel_register_call(grpc_channel* channel, const char* method,
|
@@ -470,7 +464,10 @@ grpc_call* grpc_channel_create_registered_call(
|
|
470
464
|
grpc_core::ExecCtx exec_ctx;
|
471
465
|
grpc_call* call = grpc_channel_create_call_internal(
|
472
466
|
channel, parent_call, propagation_mask, completion_queue, nullptr,
|
473
|
-
|
467
|
+
rc->path.Ref(),
|
468
|
+
rc->authority.has_value()
|
469
|
+
? absl::optional<grpc_core::Slice>(rc->authority->Ref())
|
470
|
+
: absl::nullopt,
|
474
471
|
grpc_timespec_to_millis_round_up(deadline));
|
475
472
|
|
476
473
|
return call;
|
@@ -486,7 +483,8 @@ static void destroy_channel(void* arg, grpc_error_handle /*error*/) {
|
|
486
483
|
}
|
487
484
|
grpc_channel_stack_destroy(CHANNEL_STACK_FROM_CHANNEL(channel));
|
488
485
|
channel->registration_table.Destroy();
|
489
|
-
|
486
|
+
channel->allocator.Destroy();
|
487
|
+
channel->target.Destroy();
|
490
488
|
gpr_free(channel);
|
491
489
|
// See comment in grpc_channel_create() for why we do this.
|
492
490
|
grpc_shutdown();
|
@@ -29,7 +29,6 @@
|
|
29
29
|
#include "src/core/lib/gprpp/manual_constructor.h"
|
30
30
|
#include "src/core/lib/resource_quota/memory_quota.h"
|
31
31
|
#include "src/core/lib/surface/channel_stack_type.h"
|
32
|
-
#include "src/core/lib/transport/metadata.h"
|
33
32
|
|
34
33
|
/// Creates a grpc_channel.
|
35
34
|
grpc_channel* grpc_channel_create(const char* target,
|
@@ -74,8 +73,8 @@ void grpc_channel_update_call_size_estimate(grpc_channel* channel, size_t size);
|
|
74
73
|
namespace grpc_core {
|
75
74
|
|
76
75
|
struct RegisteredCall {
|
77
|
-
|
78
|
-
|
76
|
+
Slice path;
|
77
|
+
absl::optional<Slice> authority;
|
79
78
|
|
80
79
|
explicit RegisteredCall(const char* method_arg, const char* host_arg);
|
81
80
|
RegisteredCall(const RegisteredCall& other);
|
@@ -110,8 +109,9 @@ struct grpc_channel {
|
|
110
109
|
grpc_core::ManualConstructor<grpc_core::CallRegistrationTable>
|
111
110
|
registration_table;
|
112
111
|
grpc_core::RefCountedPtr<grpc_core::channelz::ChannelNode> channelz_node;
|
112
|
+
grpc_core::ManualConstructor<grpc_core::MemoryAllocator> allocator;
|
113
113
|
|
114
|
-
|
114
|
+
grpc_core::ManualConstructor<std::string> target;
|
115
115
|
};
|
116
116
|
#define CHANNEL_STACK_FROM_CHANNEL(c) ((grpc_channel_stack*)((c) + 1))
|
117
117
|
|
@@ -105,7 +105,6 @@ void grpc_init(void) {
|
|
105
105
|
grpc_fork_handlers_auto_register();
|
106
106
|
grpc_stats_init();
|
107
107
|
grpc_slice_intern_init();
|
108
|
-
grpc_mdctx_global_init();
|
109
108
|
grpc_core::channelz::ChannelzRegistry::Init();
|
110
109
|
grpc_security_pre_init();
|
111
110
|
grpc_core::ApplicationCallbackExecCtx::GlobalInit();
|
@@ -141,7 +140,6 @@ void grpc_shutdown_internal_locked(void)
|
|
141
140
|
grpc_iomgr_shutdown();
|
142
141
|
gpr_timers_global_destroy();
|
143
142
|
grpc_tracer_shutdown();
|
144
|
-
grpc_mdctx_global_shutdown();
|
145
143
|
grpc_slice_intern_shutdown();
|
146
144
|
grpc_core::channelz::ChannelzRegistry::Shutdown();
|
147
145
|
grpc_stats_shutdown();
|
@@ -35,7 +35,6 @@
|
|
35
35
|
#include "src/core/lib/surface/call.h"
|
36
36
|
#include "src/core/lib/surface/channel.h"
|
37
37
|
#include "src/core/lib/transport/connectivity_state.h"
|
38
|
-
#include "src/core/lib/transport/static_metadata.h"
|
39
38
|
|
40
39
|
#define GRPC_ARG_LAME_FILTER_ERROR "grpc.lame_filter_error"
|
41
40
|
|
@@ -53,8 +53,6 @@
|
|
53
53
|
#include "src/core/lib/surface/channel.h"
|
54
54
|
#include "src/core/lib/surface/completion_queue.h"
|
55
55
|
#include "src/core/lib/surface/init.h"
|
56
|
-
#include "src/core/lib/transport/metadata.h"
|
57
|
-
#include "src/core/lib/transport/static_metadata.h"
|
58
56
|
|
59
57
|
namespace grpc_core {
|
60
58
|
|
@@ -1035,8 +1033,7 @@ void Server::ChannelData::InitTransport(RefCountedPtr<Server> server,
|
|
1035
1033
|
if (has_host) {
|
1036
1034
|
host = ExternallyManagedSlice(rm->host.c_str());
|
1037
1035
|
}
|
1038
|
-
uint32_t hash =
|
1039
|
-
GRPC_MDSTR_KV_HASH(has_host ? host.Hash() : 0, method.Hash());
|
1036
|
+
uint32_t hash = MixHash32(has_host ? host.Hash() : 0, method.Hash());
|
1040
1037
|
uint32_t probes = 0;
|
1041
1038
|
for (probes = 0; (*registered_methods_)[(hash + probes) % slots]
|
1042
1039
|
.server_registered_method != nullptr;
|
@@ -1080,8 +1077,8 @@ Server::ChannelRegisteredMethod* Server::ChannelData::GetRegisteredMethod(
|
|
1080
1077
|
if (registered_methods_ == nullptr) return nullptr;
|
1081
1078
|
/* TODO(ctiller): unify these two searches */
|
1082
1079
|
/* check for an exact match with host */
|
1083
|
-
uint32_t hash =
|
1084
|
-
|
1080
|
+
uint32_t hash =
|
1081
|
+
MixHash32(grpc_slice_hash_internal(host), grpc_slice_hash_internal(path));
|
1085
1082
|
for (size_t i = 0; i <= registered_method_max_probes_; i++) {
|
1086
1083
|
ChannelRegisteredMethod* rm =
|
1087
1084
|
&(*registered_methods_)[(hash + i) % registered_methods_->size()];
|
@@ -1096,7 +1093,7 @@ Server::ChannelRegisteredMethod* Server::ChannelData::GetRegisteredMethod(
|
|
1096
1093
|
return rm;
|
1097
1094
|
}
|
1098
1095
|
/* check for a wildcard method definition (no host set) */
|
1099
|
-
hash =
|
1096
|
+
hash = MixHash32(0, grpc_slice_hash_internal(path));
|
1100
1097
|
for (size_t i = 0; i <= registered_method_max_probes_; i++) {
|
1101
1098
|
ChannelRegisteredMethod* rm =
|
1102
1099
|
&(*registered_methods_)[(hash + i) % registered_methods_->size()];
|
@@ -1124,8 +1121,6 @@ void Server::ChannelData::AcceptStream(void* arg, grpc_transport* /*transport*/,
|
|
1124
1121
|
args.cq = nullptr;
|
1125
1122
|
args.pollset_set_alternative = nullptr;
|
1126
1123
|
args.server_transport_data = transport_server_data;
|
1127
|
-
args.add_initial_metadata = nullptr;
|
1128
|
-
args.add_initial_metadata_count = 0;
|
1129
1124
|
args.send_deadline = GRPC_MILLIS_INF_FUTURE;
|
1130
1125
|
grpc_call* call;
|
1131
1126
|
grpc_error_handle error = grpc_call_create(&args, &call);
|
@@ -1200,12 +1195,6 @@ Server::CallData::CallData(grpc_call_element* elem,
|
|
1200
1195
|
Server::CallData::~CallData() {
|
1201
1196
|
GPR_ASSERT(state_.load(std::memory_order_relaxed) != CallState::PENDING);
|
1202
1197
|
GRPC_ERROR_UNREF(recv_initial_metadata_error_);
|
1203
|
-
if (host_.has_value()) {
|
1204
|
-
grpc_slice_unref_internal(*host_);
|
1205
|
-
}
|
1206
|
-
if (path_.has_value()) {
|
1207
|
-
grpc_slice_unref_internal(*path_);
|
1208
|
-
}
|
1209
1198
|
grpc_metadata_array_destroy(&initial_metadata_);
|
1210
1199
|
grpc_byte_buffer_destroy(payload_);
|
1211
1200
|
}
|
@@ -1258,8 +1247,9 @@ void Server::CallData::Publish(size_t cq_idx, RequestedCall* rc) {
|
|
1258
1247
|
case RequestedCall::Type::BATCH_CALL:
|
1259
1248
|
GPR_ASSERT(host_.has_value());
|
1260
1249
|
GPR_ASSERT(path_.has_value());
|
1261
|
-
rc->data.batch.details->host = grpc_slice_ref_internal(
|
1262
|
-
rc->data.batch.details->method =
|
1250
|
+
rc->data.batch.details->host = grpc_slice_ref_internal(host_->c_slice());
|
1251
|
+
rc->data.batch.details->method =
|
1252
|
+
grpc_slice_ref_internal(path_->c_slice());
|
1263
1253
|
rc->data.batch.details->deadline =
|
1264
1254
|
grpc_millis_to_timespec(deadline_, GPR_CLOCK_MONOTONIC);
|
1265
1255
|
rc->data.batch.details->flags = recv_initial_metadata_flags_;
|
@@ -1320,7 +1310,7 @@ void Server::CallData::StartNewRpc(grpc_call_element* elem) {
|
|
1320
1310
|
GRPC_SRM_PAYLOAD_NONE;
|
1321
1311
|
if (path_.has_value() && host_.has_value()) {
|
1322
1312
|
ChannelRegisteredMethod* rm =
|
1323
|
-
chand->GetRegisteredMethod(
|
1313
|
+
chand->GetRegisteredMethod(host_->c_slice(), path_->c_slice(),
|
1324
1314
|
(recv_initial_metadata_flags_ &
|
1325
1315
|
GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST));
|
1326
1316
|
if (rm != nullptr) {
|
@@ -1352,6 +1342,8 @@ void Server::CallData::RecvInitialMetadataBatchComplete(
|
|
1352
1342
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
1353
1343
|
auto* calld = static_cast<Server::CallData*>(elem->call_data);
|
1354
1344
|
if (error != GRPC_ERROR_NONE) {
|
1345
|
+
gpr_log(GPR_DEBUG, "Failed call creation: %s",
|
1346
|
+
grpc_error_std_string(error).c_str());
|
1355
1347
|
calld->FailCallCreation();
|
1356
1348
|
return;
|
1357
1349
|
}
|
@@ -1385,17 +1377,8 @@ void Server::CallData::RecvInitialMetadataReady(void* arg,
|
|
1385
1377
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
1386
1378
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
1387
1379
|
if (error == GRPC_ERROR_NONE) {
|
1388
|
-
|
1389
|
-
|
1390
|
-
GPR_DEBUG_ASSERT(
|
1391
|
-
calld->recv_initial_metadata_->legacy_index()->named.authority !=
|
1392
|
-
nullptr);
|
1393
|
-
calld->path_.emplace(grpc_slice_ref_internal(GRPC_MDVALUE(
|
1394
|
-
calld->recv_initial_metadata_->legacy_index()->named.path->md)));
|
1395
|
-
calld->host_.emplace(grpc_slice_ref_internal(GRPC_MDVALUE(
|
1396
|
-
calld->recv_initial_metadata_->legacy_index()->named.authority->md)));
|
1397
|
-
calld->recv_initial_metadata_->Remove(GRPC_BATCH_PATH);
|
1398
|
-
calld->recv_initial_metadata_->Remove(GRPC_BATCH_AUTHORITY);
|
1380
|
+
calld->path_ = calld->recv_initial_metadata_->Take(HttpPathMetadata());
|
1381
|
+
calld->host_ = calld->recv_initial_metadata_->Take(HttpAuthorityMetadata());
|
1399
1382
|
} else {
|
1400
1383
|
(void)GRPC_ERROR_REF(error);
|
1401
1384
|
}
|
@@ -293,8 +293,8 @@ class Server : public InternallyRefCounted<Server>,
|
|
293
293
|
|
294
294
|
std::atomic<CallState> state_{CallState::NOT_STARTED};
|
295
295
|
|
296
|
-
absl::optional<
|
297
|
-
absl::optional<
|
296
|
+
absl::optional<Slice> path_;
|
297
|
+
absl::optional<Slice> host_;
|
298
298
|
grpc_millis deadline_ = GRPC_MILLIS_INF_FUTURE;
|
299
299
|
|
300
300
|
grpc_completion_queue* cq_new_ = nullptr;
|
@@ -23,6 +23,6 @@
|
|
23
23
|
|
24
24
|
#include <grpc/grpc.h>
|
25
25
|
|
26
|
-
const char* grpc_version_string(void) { return "
|
26
|
+
const char* grpc_version_string(void) { return "22.0.0"; }
|
27
27
|
|
28
|
-
const char* grpc_g_stands_for(void) { return "
|
28
|
+
const char* grpc_g_stands_for(void) { return "great"; }
|
@@ -27,6 +27,20 @@
|
|
27
27
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
28
28
|
#include "src/core/lib/transport/http2_errors.h"
|
29
29
|
|
30
|
+
namespace grpc_core {
|
31
|
+
|
32
|
+
enum class StreamNetworkState {
|
33
|
+
// Stream was never sent on the wire (e.g., because the transport became
|
34
|
+
// disconnected by the time the call got down to it).
|
35
|
+
kNotSentOnWire,
|
36
|
+
// Stream was sent on the wire but was not seen by the server application
|
37
|
+
// code (e.g., client sent data but then received a GOAWAY with a lower
|
38
|
+
// stream ID).
|
39
|
+
kNotSeenByServer,
|
40
|
+
};
|
41
|
+
|
42
|
+
} // namespace grpc_core
|
43
|
+
|
30
44
|
/// A utility function to get the status code and message to be returned
|
31
45
|
/// to the application. If not set in the top-level message, looks
|
32
46
|
/// through child errors until it finds the first one with these attributes.
|