grpc 1.31.1 → 1.32.0.pre1
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 +595 -15723
- data/include/grpc/grpc_security.h +31 -14
- data/include/grpc/impl/codegen/README.md +22 -0
- data/include/grpc/impl/codegen/port_platform.h +6 -1
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +64 -20
- data/src/core/ext/filters/client_channel/client_channel.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +0 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +6 -1
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +20 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -37
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -13
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +29 -10
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +5 -4
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +20 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +18 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +22 -14
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +18 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +54 -56
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +363 -14
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +0 -1
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +5 -4
- data/src/core/ext/filters/client_channel/server_address.cc +40 -7
- data/src/core/ext/filters/client_channel/server_address.h +42 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +64 -23
- data/src/core/ext/filters/client_channel/subchannel.h +16 -4
- data/src/core/ext/filters/max_age/max_age_filter.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +87 -31
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +18 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +10 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +19 -25
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +6 -6
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +239 -277
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +5 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +1 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +6 -5
- data/src/core/ext/transport/inproc/inproc_transport.cc +12 -12
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +224 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +700 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +226 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +380 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1378 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/filter.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +69 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/outlier_detection.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +334 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/backoff.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +79 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +309 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +869 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +96 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +328 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +71 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +195 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +634 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +684 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/http_uri.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +80 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +152 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +536 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +28 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +58 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +220 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +273 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +332 -0
- data/src/core/ext/upb-generated/envoy/config/listener/{v2 → v3}/api_listener.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +108 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +401 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +138 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +490 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +94 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +174 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +599 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +204 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +773 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2855 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +59 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +135 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +50 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +108 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +312 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1125 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +20 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +34 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +111 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +401 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +198 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +388 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/cluster/v3}/cds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +5 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +129 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +386 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +55 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/rds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/srds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +114 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +77 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +71 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +64 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +145 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +127 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +188 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +250 -0
- data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
- data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +8 -8
- data/src/core/ext/upb-generated/envoy/type/{percent.upb.c → v3/percent.upb.c} +9 -8
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +86 -0
- data/src/core/ext/upb-generated/envoy/type/{range.upb.c → v3/range.upb.c} +12 -11
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +111 -0
- data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +6 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +61 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +234 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +759 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +36 -36
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +53 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +11 -11
- data/src/core/ext/upb-generated/validate/validate.upb.h +1 -1
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_api.cc +1045 -767
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_api.h +114 -99
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.cc +44 -2
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.h +8 -3
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel.h +4 -4
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_args.h +3 -3
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_secure.cc +2 -5
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +85 -417
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.h +12 -45
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +2 -2
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +3 -3
- data/src/core/lib/channel/channelz.cc +14 -15
- data/src/core/lib/channel/channelz.h +1 -1
- data/src/core/lib/channel/channelz_registry.cc +3 -1
- data/src/core/lib/gpr/sync_posix.cc +2 -8
- data/src/core/lib/iomgr/endpoint.cc +5 -1
- data/src/core/lib/iomgr/endpoint.h +7 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +32 -11
- data/src/core/lib/iomgr/ev_posix.cc +0 -2
- data/src/core/lib/iomgr/iomgr.cc +0 -10
- data/src/core/lib/iomgr/iomgr.h +0 -10
- data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.cc +1 -1
- data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.h +3 -3
- data/src/core/lib/iomgr/sockaddr_utils.cc +2 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +2 -1
- data/src/core/lib/iomgr/tcp_custom.cc +32 -16
- data/src/core/lib/iomgr/tcp_posix.cc +31 -13
- data/src/core/lib/iomgr/tcp_windows.cc +26 -10
- data/src/core/lib/security/authorization/authorization_engine.cc +177 -0
- data/src/core/lib/security/authorization/authorization_engine.h +84 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +153 -0
- data/src/core/lib/security/authorization/evaluate_args.h +59 -0
- data/src/core/lib/security/authorization/mock_cel/activation.h +57 -0
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +42 -0
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +68 -0
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +93 -0
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +67 -0
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +56 -0
- data/src/core/lib/security/authorization/mock_cel/statusor.h +50 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +56 -38
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -2
- data/src/core/lib/security/transport/secure_endpoint.cc +7 -1
- data/src/core/lib/surface/call.cc +12 -12
- data/src/core/lib/surface/call.h +2 -1
- data/src/core/lib/surface/channel.cc +28 -20
- data/src/core/lib/surface/channel.h +12 -2
- data/src/core/lib/surface/completion_queue.cc +10 -272
- data/src/core/lib/surface/completion_queue.h +0 -8
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/server.cc +1066 -1244
- data/src/core/lib/surface/server.h +363 -87
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/authority_override.cc +38 -0
- data/src/core/lib/transport/authority_override.h +32 -0
- data/src/core/lib/transport/connectivity_state.cc +18 -13
- data/src/core/lib/transport/connectivity_state.h +18 -6
- data/src/core/lib/transport/error_utils.cc +13 -0
- data/src/core/lib/transport/error_utils.h +6 -0
- data/src/core/lib/transport/static_metadata.cc +295 -276
- data/src/core/lib/transport/static_metadata.h +80 -73
- data/src/core/lib/transport/transport.h +7 -0
- data/src/core/lib/uri/uri_parser.cc +23 -21
- data/src/core/lib/uri/uri_parser.h +3 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +22 -0
- data/src/core/tsi/ssl_transport_security.cc +3 -9
- data/src/ruby/ext/grpc/rb_channel_credentials.c +9 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +10 -0
- data/src/ruby/spec/generic/active_call_spec.rb +19 -8
- data/third_party/abseil-cpp/absl/algorithm/container.h +1727 -0
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +161 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +515 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +503 -0
- data/third_party/abseil-cpp/absl/container/internal/common.h +202 -0
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +440 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +146 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +191 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +269 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +297 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +30 -0
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +49 -0
- data/third_party/abseil-cpp/absl/container/internal/layout.h +741 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +48 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1882 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +138 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1895 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +192 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +125 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +70 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +99 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +248 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +85 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +128 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +194 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +25 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1480 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
- data/third_party/abseil-cpp/absl/hash/hash.h +324 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +346 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.h +96 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +55 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +988 -0
- data/third_party/abseil-cpp/absl/status/status.cc +447 -0
- data/third_party/abseil-cpp/absl/status/status.h +428 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +43 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
- data/third_party/abseil-cpp/absl/strings/cord.cc +2019 -0
- data/third_party/abseil-cpp/absl/strings/cord.h +1121 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +151 -0
- data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
- data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +697 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +155 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +261 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +484 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +159 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2728 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +1056 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
- data/third_party/abseil-cpp/absl/types/variant.h +861 -0
- data/third_party/boringssl-with-bazel/err_data.c +263 -257
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +456 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +192 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +20 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +52 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +39 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +2 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +11 -0
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +3 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +10 -0
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +34 -9
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
- data/third_party/upb/upb/decode.c +64 -15
- data/third_party/upb/upb/encode.c +2 -2
- data/third_party/upb/upb/msg.h +2 -2
- data/third_party/upb/upb/port_def.inc +1 -1
- data/third_party/upb/upb/table.c +0 -11
- data/third_party/upb/upb/table.int.h +0 -9
- data/third_party/upb/upb/upb.c +16 -14
- data/third_party/upb/upb/upb.h +26 -0
- data/third_party/upb/upb/upb.hpp +2 -0
- metadata +257 -155
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -34
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -429
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -198
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -388
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1453
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -226
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -323
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -334
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -79
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -891
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -328
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -71
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -649
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -693
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -536
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -88
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -386
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -224
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -32
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -273
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -332
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -415
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -32
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -538
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -111
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -204
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -32
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -2984
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -135
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -732
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1167
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -49
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -136
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -145
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -86
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -111
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -61
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -250
- data/src/core/lib/security/transport/target_authority_table.cc +0 -75
- data/src/core/lib/security/transport/target_authority_table.h +0 -40
- data/src/core/lib/slice/slice_hash_table.h +0 -199
- data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
data/src/core/lib/iomgr/iomgr.h
CHANGED
@@ -45,16 +45,6 @@ void grpc_iomgr_shutdown_background_closure();
|
|
45
45
|
*/
|
46
46
|
bool grpc_iomgr_run_in_background();
|
47
47
|
|
48
|
-
/* Returns true if polling engine is non-polling, false otherwise.
|
49
|
-
* Currently only 'none' is non-polling.
|
50
|
-
*/
|
51
|
-
bool grpc_iomgr_non_polling();
|
52
|
-
|
53
|
-
/* Mark the polling engine as non-polling. For internal use only.
|
54
|
-
* Currently only 'none' is non-polling.
|
55
|
-
*/
|
56
|
-
void grpc_iomgr_mark_non_polling_internal();
|
57
|
-
|
58
48
|
/** Returns true if the caller is a worker thread for any background poller. */
|
59
49
|
bool grpc_iomgr_is_any_background_poller_thread();
|
60
50
|
|
@@ -18,8 +18,8 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include "src/core/ext/filters/client_channel/parse_address.h"
|
22
21
|
#include "src/core/lib/iomgr/grpc_if_nametoindex.h"
|
22
|
+
#include "src/core/lib/iomgr/parse_address.h"
|
23
23
|
#include "src/core/lib/iomgr/sockaddr.h"
|
24
24
|
#include "src/core/lib/iomgr/socket_utils.h"
|
25
25
|
|
@@ -16,8 +16,8 @@
|
|
16
16
|
*
|
17
17
|
*/
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
#define
|
19
|
+
#ifndef GRPC_CORE_LIB_IOMGR_PARSE_ADDRESS_H
|
20
|
+
#define GRPC_CORE_LIB_IOMGR_PARSE_ADDRESS_H
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
@@ -50,4 +50,4 @@ bool grpc_parse_ipv6_hostport(const char* hostport, grpc_resolved_address* addr,
|
|
50
50
|
/* Converts named or numeric port to a uint16 suitable for use in a sockaddr. */
|
51
51
|
uint16_t grpc_strhtons(const char* port);
|
52
52
|
|
53
|
-
#endif /*
|
53
|
+
#endif /* GRPC_CORE_LIB_IOMGR_PARSE_ADDRESS_H */
|
@@ -198,7 +198,8 @@ std::string grpc_sockaddr_to_string(const grpc_resolved_address* resolved_addr,
|
|
198
198
|
return out;
|
199
199
|
}
|
200
200
|
|
201
|
-
void grpc_string_to_sockaddr(grpc_resolved_address* out, char* addr,
|
201
|
+
void grpc_string_to_sockaddr(grpc_resolved_address* out, const char* addr,
|
202
|
+
int port) {
|
202
203
|
memset(out, 0, sizeof(grpc_resolved_address));
|
203
204
|
grpc_sockaddr_in6* addr6 = (grpc_sockaddr_in6*)out->addr;
|
204
205
|
grpc_sockaddr_in* addr4 = (grpc_sockaddr_in*)out->addr;
|
@@ -66,7 +66,8 @@ int grpc_sockaddr_set_port(const grpc_resolved_address* addr, int port);
|
|
66
66
|
std::string grpc_sockaddr_to_string(const grpc_resolved_address* addr,
|
67
67
|
bool normalize);
|
68
68
|
|
69
|
-
void grpc_string_to_sockaddr(grpc_resolved_address* out, char* addr,
|
69
|
+
void grpc_string_to_sockaddr(grpc_resolved_address* out, const char* addr,
|
70
|
+
int port);
|
70
71
|
|
71
72
|
/* Returns the URI string corresponding to \a addr */
|
72
73
|
std::string grpc_sockaddr_to_uri(const grpc_resolved_address* addr);
|
@@ -32,6 +32,7 @@
|
|
32
32
|
#include "src/core/lib/iomgr/error.h"
|
33
33
|
#include "src/core/lib/iomgr/iomgr_custom.h"
|
34
34
|
#include "src/core/lib/iomgr/resource_quota.h"
|
35
|
+
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
35
36
|
#include "src/core/lib/iomgr/tcp_client.h"
|
36
37
|
#include "src/core/lib/iomgr/tcp_custom.h"
|
37
38
|
#include "src/core/lib/iomgr/tcp_server.h"
|
@@ -57,24 +58,24 @@ struct custom_tcp_endpoint {
|
|
57
58
|
gpr_refcount refcount;
|
58
59
|
grpc_custom_socket* socket;
|
59
60
|
|
60
|
-
grpc_closure* read_cb;
|
61
|
-
grpc_closure* write_cb;
|
61
|
+
grpc_closure* read_cb = nullptr;
|
62
|
+
grpc_closure* write_cb = nullptr;
|
62
63
|
|
63
|
-
grpc_slice_buffer* read_slices;
|
64
|
-
grpc_slice_buffer* write_slices;
|
64
|
+
grpc_slice_buffer* read_slices = nullptr;
|
65
|
+
grpc_slice_buffer* write_slices = nullptr;
|
65
66
|
|
66
67
|
grpc_resource_user* resource_user;
|
67
68
|
grpc_resource_user_slice_allocator slice_allocator;
|
68
69
|
|
69
70
|
bool shutting_down;
|
70
71
|
|
71
|
-
|
72
|
+
std::string peer_string;
|
73
|
+
std::string local_address;
|
72
74
|
};
|
73
75
|
static void tcp_free(grpc_custom_socket* s) {
|
74
76
|
custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)s->endpoint;
|
75
77
|
grpc_resource_user_unref(tcp->resource_user);
|
76
|
-
|
77
|
-
gpr_free(tcp);
|
78
|
+
delete tcp;
|
78
79
|
s->refs--;
|
79
80
|
if (s->refs == 0) {
|
80
81
|
grpc_custom_socket_vtable->destroy(s);
|
@@ -132,7 +133,8 @@ static void call_read_cb(custom_tcp_endpoint* tcp, grpc_error* error) {
|
|
132
133
|
for (i = 0; i < tcp->read_slices->count; i++) {
|
133
134
|
char* dump = grpc_dump_slice(tcp->read_slices->slices[i],
|
134
135
|
GPR_DUMP_HEX | GPR_DUMP_ASCII);
|
135
|
-
gpr_log(GPR_INFO, "READ %p (peer=%s): %s", tcp, tcp->peer_string,
|
136
|
+
gpr_log(GPR_INFO, "READ %p (peer=%s): %s", tcp, tcp->peer_string.c_str(),
|
137
|
+
dump);
|
136
138
|
gpr_free(dump);
|
137
139
|
}
|
138
140
|
}
|
@@ -233,8 +235,8 @@ static void endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* write_slices,
|
|
233
235
|
for (j = 0; j < write_slices->count; j++) {
|
234
236
|
char* data = grpc_dump_slice(write_slices->slices[j],
|
235
237
|
GPR_DUMP_HEX | GPR_DUMP_ASCII);
|
236
|
-
gpr_log(GPR_INFO, "WRITE %p (peer=%s): %s", tcp->socket,
|
237
|
-
data);
|
238
|
+
gpr_log(GPR_INFO, "WRITE %p (peer=%s): %s", tcp->socket,
|
239
|
+
tcp->peer_string.c_str(), data);
|
238
240
|
gpr_free(data);
|
239
241
|
}
|
240
242
|
}
|
@@ -317,9 +319,14 @@ static void endpoint_destroy(grpc_endpoint* ep) {
|
|
317
319
|
grpc_custom_socket_vtable->close(tcp->socket, custom_close_callback);
|
318
320
|
}
|
319
321
|
|
320
|
-
static
|
322
|
+
static absl::string_view endpoint_get_peer(grpc_endpoint* ep) {
|
321
323
|
custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)ep;
|
322
|
-
return
|
324
|
+
return tcp->peer_string;
|
325
|
+
}
|
326
|
+
|
327
|
+
static absl::string_view endpoint_get_local_address(grpc_endpoint* ep) {
|
328
|
+
custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)ep;
|
329
|
+
return tcp->local_address;
|
323
330
|
}
|
324
331
|
|
325
332
|
static grpc_resource_user* endpoint_get_resource_user(grpc_endpoint* ep) {
|
@@ -340,27 +347,36 @@ static grpc_endpoint_vtable vtable = {endpoint_read,
|
|
340
347
|
endpoint_destroy,
|
341
348
|
endpoint_get_resource_user,
|
342
349
|
endpoint_get_peer,
|
350
|
+
endpoint_get_local_address,
|
343
351
|
endpoint_get_fd,
|
344
352
|
endpoint_can_track_err};
|
345
353
|
|
346
354
|
grpc_endpoint* custom_tcp_endpoint_create(grpc_custom_socket* socket,
|
347
355
|
grpc_resource_quota* resource_quota,
|
348
356
|
const char* peer_string) {
|
349
|
-
custom_tcp_endpoint* tcp =
|
350
|
-
(custom_tcp_endpoint*)gpr_malloc(sizeof(custom_tcp_endpoint));
|
357
|
+
custom_tcp_endpoint* tcp = new custom_tcp_endpoint;
|
351
358
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
352
359
|
grpc_core::ExecCtx exec_ctx;
|
353
360
|
|
354
361
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
|
355
362
|
gpr_log(GPR_INFO, "Creating TCP endpoint %p", socket);
|
356
363
|
}
|
357
|
-
memset(tcp, 0, sizeof(custom_tcp_endpoint));
|
358
364
|
socket->refs++;
|
359
365
|
socket->endpoint = (grpc_endpoint*)tcp;
|
360
366
|
tcp->socket = socket;
|
361
367
|
tcp->base.vtable = &vtable;
|
362
368
|
gpr_ref_init(&tcp->refcount, 1);
|
363
|
-
tcp->peer_string =
|
369
|
+
tcp->peer_string = peer_string;
|
370
|
+
grpc_resolved_address resolved_local_addr;
|
371
|
+
resolved_local_addr.len = sizeof(resolved_local_addr.addr);
|
372
|
+
if (grpc_custom_socket_vtable->getsockname(
|
373
|
+
socket, reinterpret_cast<sockaddr*>(resolved_local_addr.addr),
|
374
|
+
reinterpret_cast<int*>(&resolved_local_addr.len)) !=
|
375
|
+
GRPC_ERROR_NONE) {
|
376
|
+
tcp->local_address = "";
|
377
|
+
} else {
|
378
|
+
tcp->local_address = grpc_sockaddr_to_uri(&resolved_local_addr);
|
379
|
+
}
|
364
380
|
tcp->shutting_down = false;
|
365
381
|
tcp->resource_user = grpc_resource_user_create(resource_quota, peer_string);
|
366
382
|
grpc_resource_user_slice_allocator_init(
|
@@ -54,6 +54,7 @@
|
|
54
54
|
#include "src/core/lib/iomgr/buffer_list.h"
|
55
55
|
#include "src/core/lib/iomgr/ev_posix.h"
|
56
56
|
#include "src/core/lib/iomgr/executor.h"
|
57
|
+
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
57
58
|
#include "src/core/lib/iomgr/socket_utils_posix.h"
|
58
59
|
#include "src/core/lib/profiling/timers.h"
|
59
60
|
#include "src/core/lib/slice/slice_internal.h"
|
@@ -351,6 +352,8 @@ using grpc_core::TcpZerocopySendRecord;
|
|
351
352
|
|
352
353
|
namespace {
|
353
354
|
struct grpc_tcp {
|
355
|
+
grpc_tcp(int max_sends, size_t send_bytes_threshold)
|
356
|
+
: tcp_zerocopy_send_ctx(max_sends, send_bytes_threshold) {}
|
354
357
|
grpc_endpoint base;
|
355
358
|
grpc_fd* em_fd;
|
356
359
|
int fd;
|
@@ -385,7 +388,8 @@ struct grpc_tcp {
|
|
385
388
|
grpc_closure write_done_closure;
|
386
389
|
grpc_closure error_closure;
|
387
390
|
|
388
|
-
|
391
|
+
std::string peer_string;
|
392
|
+
std::string local_address;
|
389
393
|
|
390
394
|
grpc_resource_user* resource_user;
|
391
395
|
grpc_resource_user_slice_allocator slice_allocator;
|
@@ -605,7 +609,7 @@ static grpc_error* tcp_annotate_error(grpc_error* src_error, grpc_tcp* tcp) {
|
|
605
609
|
* choose to retry. */
|
606
610
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE),
|
607
611
|
GRPC_ERROR_STR_TARGET_ADDRESS,
|
608
|
-
grpc_slice_from_copied_string(tcp->peer_string));
|
612
|
+
grpc_slice_from_copied_string(tcp->peer_string.c_str()));
|
609
613
|
}
|
610
614
|
|
611
615
|
static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error* error);
|
@@ -623,7 +627,6 @@ static void tcp_free(grpc_tcp* tcp) {
|
|
623
627
|
"tcp_unref_orphan");
|
624
628
|
grpc_slice_buffer_destroy_internal(&tcp->last_read_buffer);
|
625
629
|
grpc_resource_user_unref(tcp->resource_user);
|
626
|
-
gpr_free(tcp->peer_string);
|
627
630
|
/* The lock is not really necessary here, since all refs have been released */
|
628
631
|
gpr_mu_lock(&tcp->tb_mu);
|
629
632
|
grpc_core::TracedBuffer::Shutdown(
|
@@ -632,8 +635,7 @@ static void tcp_free(grpc_tcp* tcp) {
|
|
632
635
|
gpr_mu_unlock(&tcp->tb_mu);
|
633
636
|
tcp->outgoing_buffer_arg = nullptr;
|
634
637
|
gpr_mu_destroy(&tcp->tb_mu);
|
635
|
-
tcp
|
636
|
-
gpr_free(tcp);
|
638
|
+
delete tcp;
|
637
639
|
}
|
638
640
|
|
639
641
|
#ifndef NDEBUG
|
@@ -680,7 +682,8 @@ static void call_read_cb(grpc_tcp* tcp, grpc_error* error) {
|
|
680
682
|
gpr_log(GPR_INFO, "TCP:%p call_cb %p %p:%p", tcp, cb, cb->cb, cb->cb_arg);
|
681
683
|
size_t i;
|
682
684
|
const char* str = grpc_error_string(error);
|
683
|
-
gpr_log(GPR_INFO, "READ %p (peer=%s) error=%s", tcp,
|
685
|
+
gpr_log(GPR_INFO, "READ %p (peer=%s) error=%s", tcp,
|
686
|
+
tcp->peer_string.c_str(), str);
|
684
687
|
|
685
688
|
if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
|
686
689
|
for (i = 0; i < tcp->incoming_buffer->count; i++) {
|
@@ -1563,7 +1566,7 @@ static void tcp_write(grpc_endpoint* ep, grpc_slice_buffer* buf,
|
|
1563
1566
|
size_t i;
|
1564
1567
|
|
1565
1568
|
for (i = 0; i < buf->count; i++) {
|
1566
|
-
gpr_log(GPR_INFO, "WRITE %p (peer=%s)", tcp, tcp->peer_string);
|
1569
|
+
gpr_log(GPR_INFO, "WRITE %p (peer=%s)", tcp, tcp->peer_string.c_str());
|
1567
1570
|
if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
|
1568
1571
|
char* data =
|
1569
1572
|
grpc_dump_slice(buf->slices[i], GPR_DUMP_HEX | GPR_DUMP_ASCII);
|
@@ -1637,9 +1640,14 @@ static void tcp_delete_from_pollset_set(grpc_endpoint* ep,
|
|
1637
1640
|
grpc_pollset_set_del_fd(pollset_set, tcp->em_fd);
|
1638
1641
|
}
|
1639
1642
|
|
1640
|
-
static
|
1643
|
+
static absl::string_view tcp_get_peer(grpc_endpoint* ep) {
|
1641
1644
|
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
1642
|
-
return
|
1645
|
+
return tcp->peer_string;
|
1646
|
+
}
|
1647
|
+
|
1648
|
+
static absl::string_view tcp_get_local_address(grpc_endpoint* ep) {
|
1649
|
+
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
1650
|
+
return tcp->local_address;
|
1643
1651
|
}
|
1644
1652
|
|
1645
1653
|
static int tcp_get_fd(grpc_endpoint* ep) {
|
@@ -1677,6 +1685,7 @@ static const grpc_endpoint_vtable vtable = {tcp_read,
|
|
1677
1685
|
tcp_destroy,
|
1678
1686
|
tcp_get_resource_user,
|
1679
1687
|
tcp_get_peer,
|
1688
|
+
tcp_get_local_address,
|
1680
1689
|
tcp_get_fd,
|
1681
1690
|
tcp_can_track_err};
|
1682
1691
|
|
@@ -1745,10 +1754,21 @@ grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd,
|
|
1745
1754
|
tcp_read_chunk_size = GPR_CLAMP(tcp_read_chunk_size, tcp_min_read_chunk_size,
|
1746
1755
|
tcp_max_read_chunk_size);
|
1747
1756
|
|
1748
|
-
grpc_tcp* tcp =
|
1757
|
+
grpc_tcp* tcp = new grpc_tcp(tcp_tx_zerocopy_max_simult_sends,
|
1758
|
+
tcp_tx_zerocopy_send_bytes_thresh);
|
1749
1759
|
tcp->base.vtable = &vtable;
|
1750
|
-
tcp->peer_string =
|
1760
|
+
tcp->peer_string = peer_string;
|
1751
1761
|
tcp->fd = grpc_fd_wrapped_fd(em_fd);
|
1762
|
+
grpc_resolved_address resolved_local_addr;
|
1763
|
+
memset(&resolved_local_addr, 0, sizeof(resolved_local_addr));
|
1764
|
+
resolved_local_addr.len = sizeof(resolved_local_addr.addr);
|
1765
|
+
if (getsockname(tcp->fd,
|
1766
|
+
reinterpret_cast<sockaddr*>(resolved_local_addr.addr),
|
1767
|
+
&resolved_local_addr.len) < 0) {
|
1768
|
+
tcp->local_address = "";
|
1769
|
+
} else {
|
1770
|
+
tcp->local_address = grpc_sockaddr_to_uri(&resolved_local_addr);
|
1771
|
+
}
|
1752
1772
|
tcp->read_cb = nullptr;
|
1753
1773
|
tcp->write_cb = nullptr;
|
1754
1774
|
tcp->current_zerocopy_send = nullptr;
|
@@ -1765,8 +1785,6 @@ grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd,
|
|
1765
1785
|
tcp->socket_ts_enabled = false;
|
1766
1786
|
tcp->ts_capable = true;
|
1767
1787
|
tcp->outgoing_buffer_arg = nullptr;
|
1768
|
-
new (&tcp->tcp_zerocopy_send_ctx) TcpZerocopySendCtx(
|
1769
|
-
tcp_tx_zerocopy_max_simult_sends, tcp_tx_zerocopy_send_bytes_thresh);
|
1770
1788
|
if (tcp_tx_zerocopy_enabled && !tcp->tcp_zerocopy_send_ctx.memory_limited()) {
|
1771
1789
|
#ifdef GRPC_LINUX_ERRQUEUE
|
1772
1790
|
const int enable = 1;
|
@@ -125,17 +125,17 @@ typedef struct grpc_tcp {
|
|
125
125
|
int shutting_down;
|
126
126
|
grpc_error* shutdown_error;
|
127
127
|
|
128
|
-
|
128
|
+
std::string peer_string;
|
129
|
+
std::string local_address;
|
129
130
|
} grpc_tcp;
|
130
131
|
|
131
132
|
static void tcp_free(grpc_tcp* tcp) {
|
132
133
|
grpc_winsocket_destroy(tcp->socket);
|
133
134
|
gpr_mu_destroy(&tcp->mu);
|
134
|
-
gpr_free(tcp->peer_string);
|
135
135
|
grpc_slice_buffer_destroy_internal(&tcp->last_read_buffer);
|
136
136
|
grpc_resource_user_unref(tcp->resource_user);
|
137
137
|
if (tcp->shutting_down) GRPC_ERROR_UNREF(tcp->shutdown_error);
|
138
|
-
|
138
|
+
delete tcp;
|
139
139
|
}
|
140
140
|
|
141
141
|
#ifndef NDEBUG
|
@@ -213,8 +213,8 @@ static void on_read(void* tcpp, grpc_error* error) {
|
|
213
213
|
for (i = 0; i < tcp->read_slices->count; i++) {
|
214
214
|
char* dump = grpc_dump_slice(tcp->read_slices->slices[i],
|
215
215
|
GPR_DUMP_HEX | GPR_DUMP_ASCII);
|
216
|
-
gpr_log(GPR_INFO, "READ %p (peer=%s): %s", tcp,
|
217
|
-
dump);
|
216
|
+
gpr_log(GPR_INFO, "READ %p (peer=%s): %s", tcp,
|
217
|
+
tcp->peer_string.c_str(), dump);
|
218
218
|
gpr_free(dump);
|
219
219
|
}
|
220
220
|
}
|
@@ -361,7 +361,8 @@ static void win_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
361
361
|
for (i = 0; i < slices->count; i++) {
|
362
362
|
char* data =
|
363
363
|
grpc_dump_slice(slices->slices[i], GPR_DUMP_HEX | GPR_DUMP_ASCII);
|
364
|
-
gpr_log(GPR_INFO, "WRITE %p (peer=%s): %s", tcp, tcp->peer_string,
|
364
|
+
gpr_log(GPR_INFO, "WRITE %p (peer=%s): %s", tcp, tcp->peer_string.c_str(),
|
365
|
+
data);
|
365
366
|
gpr_free(data);
|
366
367
|
}
|
367
368
|
}
|
@@ -475,9 +476,14 @@ static void win_destroy(grpc_endpoint* ep) {
|
|
475
476
|
TCP_UNREF(tcp, "destroy");
|
476
477
|
}
|
477
478
|
|
478
|
-
static
|
479
|
+
static absl::string_view win_get_peer(grpc_endpoint* ep) {
|
479
480
|
grpc_tcp* tcp = (grpc_tcp*)ep;
|
480
|
-
return
|
481
|
+
return tcp->peer_string;
|
482
|
+
}
|
483
|
+
|
484
|
+
static absl::string_view win_get_local_address(grpc_endpoint* ep) {
|
485
|
+
grpc_tcp* tcp = (grpc_tcp*)ep;
|
486
|
+
return tcp->local_address;
|
481
487
|
}
|
482
488
|
|
483
489
|
static grpc_resource_user* win_get_resource_user(grpc_endpoint* ep) {
|
@@ -498,6 +504,7 @@ static grpc_endpoint_vtable vtable = {win_read,
|
|
498
504
|
win_destroy,
|
499
505
|
win_get_resource_user,
|
500
506
|
win_get_peer,
|
507
|
+
win_get_local_address,
|
501
508
|
win_get_fd,
|
502
509
|
win_can_track_err};
|
503
510
|
|
@@ -514,7 +521,7 @@ grpc_endpoint* grpc_tcp_create(grpc_winsocket* socket,
|
|
514
521
|
}
|
515
522
|
}
|
516
523
|
}
|
517
|
-
grpc_tcp* tcp =
|
524
|
+
grpc_tcp* tcp = new grpc_tcp;
|
518
525
|
memset(tcp, 0, sizeof(grpc_tcp));
|
519
526
|
tcp->base.vtable = &vtable;
|
520
527
|
tcp->socket = socket;
|
@@ -522,7 +529,16 @@ grpc_endpoint* grpc_tcp_create(grpc_winsocket* socket,
|
|
522
529
|
gpr_ref_init(&tcp->refcount, 1);
|
523
530
|
GRPC_CLOSURE_INIT(&tcp->on_read, on_read, tcp, grpc_schedule_on_exec_ctx);
|
524
531
|
GRPC_CLOSURE_INIT(&tcp->on_write, on_write, tcp, grpc_schedule_on_exec_ctx);
|
525
|
-
|
532
|
+
grpc_resolved_address resolved_local_addr;
|
533
|
+
resolved_local_addr.len = sizeof(resolved_local_addr.addr);
|
534
|
+
if (getsockname(tcp->socket->socket,
|
535
|
+
reinterpret_cast<sockaddr*>(resolved_local_addr.addr),
|
536
|
+
&resolved_local_addr.len) < 0) {
|
537
|
+
tcp->local_address = "";
|
538
|
+
} else {
|
539
|
+
tcp->local_address = grpc_sockaddr_to_uri(&resolved_local_addr);
|
540
|
+
}
|
541
|
+
tcp->peer_string = peer_string;
|
526
542
|
grpc_slice_buffer_init(&tcp->last_read_buffer);
|
527
543
|
tcp->resource_user = grpc_resource_user_create(resource_quota, peer_string);
|
528
544
|
grpc_resource_quota_unref_internal(resource_quota);
|
@@ -0,0 +1,177 @@
|
|
1
|
+
// Copyright 2020 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#include <grpc/support/port_platform.h>
|
16
|
+
|
17
|
+
#include "absl/memory/memory.h"
|
18
|
+
|
19
|
+
#include "src/core/lib/security/authorization/authorization_engine.h"
|
20
|
+
|
21
|
+
namespace grpc_core {
|
22
|
+
|
23
|
+
namespace {
|
24
|
+
|
25
|
+
// Symbols for traversing Envoy Attributes
|
26
|
+
constexpr char kUrlPath[] = "url_path";
|
27
|
+
constexpr char kHost[] = "host";
|
28
|
+
constexpr char kMethod[] = "method";
|
29
|
+
constexpr char kHeaders[] = "headers";
|
30
|
+
constexpr char kSourceAddress[] = "source_address";
|
31
|
+
constexpr char kSourcePort[] = "source_port";
|
32
|
+
constexpr char kDestinationAddress[] = "destination_address";
|
33
|
+
constexpr char kDestinationPort[] = "destination_port";
|
34
|
+
constexpr char kSpiffeId[] = "spiffe_id";
|
35
|
+
constexpr char kCertServerName[] = "cert_server_name";
|
36
|
+
|
37
|
+
} // namespace
|
38
|
+
|
39
|
+
std::unique_ptr<AuthorizationEngine>
|
40
|
+
AuthorizationEngine::CreateAuthorizationEngine(
|
41
|
+
const std::vector<envoy_config_rbac_v3_RBAC*>& rbac_policies) {
|
42
|
+
if (rbac_policies.empty() || rbac_policies.size() > 2) {
|
43
|
+
gpr_log(GPR_ERROR,
|
44
|
+
"Invalid rbac policies vector. Must contain either one or two rbac "
|
45
|
+
"policies.");
|
46
|
+
return nullptr;
|
47
|
+
} else if (rbac_policies.size() == 2 &&
|
48
|
+
(envoy_config_rbac_v3_RBAC_action(rbac_policies[0]) != kDeny ||
|
49
|
+
envoy_config_rbac_v3_RBAC_action(rbac_policies[1]) != kAllow)) {
|
50
|
+
gpr_log(GPR_ERROR,
|
51
|
+
"Invalid rbac policies vector. Must contain one deny \
|
52
|
+
policy and one allow policy, in that order.");
|
53
|
+
return nullptr;
|
54
|
+
} else {
|
55
|
+
return absl::make_unique<AuthorizationEngine>(rbac_policies);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
AuthorizationEngine::AuthorizationEngine(
|
60
|
+
const std::vector<envoy_config_rbac_v3_RBAC*>& rbac_policies) {
|
61
|
+
for (const auto& rbac_policy : rbac_policies) {
|
62
|
+
// Extract array of policies and store their condition fields in either
|
63
|
+
// allow_if_matched_ or deny_if_matched_, depending on the policy action.
|
64
|
+
upb::Arena temp_arena;
|
65
|
+
size_t policy_num = UPB_MAP_BEGIN;
|
66
|
+
const envoy_config_rbac_v3_RBAC_PoliciesEntry* policy_entry;
|
67
|
+
while ((policy_entry = envoy_config_rbac_v3_RBAC_policies_next(
|
68
|
+
rbac_policy, &policy_num)) != nullptr) {
|
69
|
+
const upb_strview policy_name_strview =
|
70
|
+
envoy_config_rbac_v3_RBAC_PoliciesEntry_key(policy_entry);
|
71
|
+
const std::string policy_name(policy_name_strview.data,
|
72
|
+
policy_name_strview.size);
|
73
|
+
const envoy_config_rbac_v3_Policy* policy =
|
74
|
+
envoy_config_rbac_v3_RBAC_PoliciesEntry_value(policy_entry);
|
75
|
+
const google_api_expr_v1alpha1_Expr* condition =
|
76
|
+
envoy_config_rbac_v3_Policy_condition(policy);
|
77
|
+
// Parse condition to make a pointer tied to the lifetime of arena_.
|
78
|
+
size_t serial_len;
|
79
|
+
const char* serialized = google_api_expr_v1alpha1_Expr_serialize(
|
80
|
+
condition, temp_arena.ptr(), &serial_len);
|
81
|
+
const google_api_expr_v1alpha1_Expr* parsed_condition =
|
82
|
+
google_api_expr_v1alpha1_Expr_parse(serialized, serial_len,
|
83
|
+
arena_.ptr());
|
84
|
+
if (envoy_config_rbac_v3_RBAC_action(rbac_policy) == kAllow) {
|
85
|
+
allow_if_matched_.insert(std::make_pair(policy_name, parsed_condition));
|
86
|
+
} else {
|
87
|
+
deny_if_matched_.insert(std::make_pair(policy_name, parsed_condition));
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
std::unique_ptr<mock_cel::Activation> AuthorizationEngine::CreateActivation(
|
94
|
+
const EvaluateArgs& args) {
|
95
|
+
std::unique_ptr<mock_cel::Activation> activation;
|
96
|
+
for (const auto& elem : envoy_attributes_) {
|
97
|
+
if (elem == kUrlPath) {
|
98
|
+
absl::string_view url_path(args.GetPath());
|
99
|
+
if (!url_path.empty()) {
|
100
|
+
activation->InsertValue(kUrlPath,
|
101
|
+
mock_cel::CelValue::CreateStringView(url_path));
|
102
|
+
}
|
103
|
+
} else if (elem == kHost) {
|
104
|
+
absl::string_view host(args.GetHost());
|
105
|
+
if (!host.empty()) {
|
106
|
+
activation->InsertValue(kHost,
|
107
|
+
mock_cel::CelValue::CreateStringView(host));
|
108
|
+
}
|
109
|
+
} else if (elem == kMethod) {
|
110
|
+
absl::string_view method(args.GetMethod());
|
111
|
+
if (!method.empty()) {
|
112
|
+
activation->InsertValue(kMethod,
|
113
|
+
mock_cel::CelValue::CreateStringView(method));
|
114
|
+
}
|
115
|
+
} else if (elem == kHeaders) {
|
116
|
+
std::multimap<absl::string_view, absl::string_view> headers =
|
117
|
+
args.GetHeaders();
|
118
|
+
std::vector<std::pair<mock_cel::CelValue, mock_cel::CelValue>>
|
119
|
+
header_items;
|
120
|
+
for (const auto& header_key : header_keys_) {
|
121
|
+
auto header_item = headers.find(header_key);
|
122
|
+
if (header_item != headers.end()) {
|
123
|
+
header_items.push_back(
|
124
|
+
std::pair<mock_cel::CelValue, mock_cel::CelValue>(
|
125
|
+
mock_cel::CelValue::CreateStringView(header_key),
|
126
|
+
mock_cel::CelValue::CreateStringView(header_item->second)));
|
127
|
+
}
|
128
|
+
}
|
129
|
+
headers_ = mock_cel::ContainerBackedMapImpl::Create(
|
130
|
+
absl::Span<std::pair<mock_cel::CelValue, mock_cel::CelValue>>(
|
131
|
+
header_items));
|
132
|
+
activation->InsertValue(kHeaders,
|
133
|
+
mock_cel::CelValue::CreateMap(headers_.get()));
|
134
|
+
} else if (elem == kSourceAddress) {
|
135
|
+
absl::string_view source_address(args.GetPeerAddress());
|
136
|
+
if (!source_address.empty()) {
|
137
|
+
activation->InsertValue(
|
138
|
+
kSourceAddress,
|
139
|
+
mock_cel::CelValue::CreateStringView(source_address));
|
140
|
+
}
|
141
|
+
} else if (elem == kSourcePort) {
|
142
|
+
activation->InsertValue(
|
143
|
+
kSourcePort, mock_cel::CelValue::CreateInt64(args.GetPeerPort()));
|
144
|
+
} else if (elem == kDestinationAddress) {
|
145
|
+
absl::string_view destination_address(args.GetLocalAddress());
|
146
|
+
if (!destination_address.empty()) {
|
147
|
+
activation->InsertValue(
|
148
|
+
kDestinationAddress,
|
149
|
+
mock_cel::CelValue::CreateStringView(destination_address));
|
150
|
+
}
|
151
|
+
} else if (elem == kDestinationPort) {
|
152
|
+
activation->InsertValue(kDestinationPort, mock_cel::CelValue::CreateInt64(
|
153
|
+
args.GetLocalPort()));
|
154
|
+
} else if (elem == kSpiffeId) {
|
155
|
+
absl::string_view spiffe_id(args.GetSpiffeId());
|
156
|
+
if (!spiffe_id.empty()) {
|
157
|
+
activation->InsertValue(
|
158
|
+
kSpiffeId, mock_cel::CelValue::CreateStringView(spiffe_id));
|
159
|
+
}
|
160
|
+
} else if (elem == kCertServerName) {
|
161
|
+
absl::string_view cert_server_name(args.GetCertServerName());
|
162
|
+
if (!cert_server_name.empty()) {
|
163
|
+
activation->InsertValue(
|
164
|
+
kCertServerName,
|
165
|
+
mock_cel::CelValue::CreateStringView(cert_server_name));
|
166
|
+
}
|
167
|
+
} else {
|
168
|
+
gpr_log(GPR_ERROR,
|
169
|
+
"Error: Authorization engine does not support evaluating "
|
170
|
+
"attribute %s.",
|
171
|
+
elem.c_str());
|
172
|
+
}
|
173
|
+
}
|
174
|
+
return activation;
|
175
|
+
}
|
176
|
+
|
177
|
+
} // namespace grpc_core
|