grpc 1.45.0 → 1.46.2
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 +36 -29
- data/include/grpc/impl/codegen/grpc_types.h +7 -13
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +309 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +122 -0
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.cc +1 -1
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.h +3 -3
- data/src/core/ext/filters/client_channel/client_channel.cc +163 -96
- data/src/core/ext/filters/client_channel/client_channel.h +2 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +124 -581
- data/src/core/ext/filters/client_channel/health/health_check_client.h +24 -160
- data/src/core/ext/filters/client_channel/http_proxy.cc +88 -110
- data/src/core/ext/filters/client_channel/http_proxy.h +17 -0
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +182 -142
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -6
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +1 -10
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +87 -58
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +51 -48
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +14 -7
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +229 -284
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +92 -257
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +51 -221
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +201 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +106 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +102 -55
- data/src/core/ext/filters/client_channel/retry_filter.cc +18 -3
- data/src/core/ext/filters/client_channel/subchannel.cc +5 -5
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +544 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +214 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +127 -367
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +24 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +78 -458
- data/src/core/ext/filters/http/client/http_client_filter.h +21 -4
- data/src/core/ext/filters/http/client_authority_filter.cc +17 -22
- data/src/core/ext/filters/http/client_authority_filter.h +6 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +9 -6
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -116
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +2 -8
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +2 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +73 -201
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -28
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -6
- data/src/core/ext/transport/chttp2/transport/internal.h +4 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +8 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -13
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +27 -24
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +143 -63
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +37 -35
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +177 -77
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +115 -111
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +547 -207
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +26 -13
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +13 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +49 -46
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +217 -78
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +40 -8
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +20 -2
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +55 -55
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +289 -110
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +133 -125
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +656 -267
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +24 -18
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +96 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +185 -173
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +860 -309
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +44 -24
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +165 -40
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +72 -63
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +433 -174
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +33 -31
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +154 -52
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +5 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +89 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +460 -166
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +76 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +379 -69
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +14 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +5 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +10 -91
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +26 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +70 -68
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +369 -131
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +94 -65
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +447 -161
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +27 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +104 -85
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +378 -113
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +3 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +43 -16
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +58 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +18 -18
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +100 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +31 -30
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +171 -71
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +196 -95
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +7 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +53 -46
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +284 -129
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +56 -50
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +337 -146
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +49 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +20 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +33 -32
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +205 -86
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +34 -34
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +175 -74
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +56 -52
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +370 -146
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +27 -23
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +173 -74
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +362 -341
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2056 -845
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +49 -16
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +56 -50
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +293 -111
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +26 -10
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +27 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +17 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +83 -36
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +7 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +46 -17
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +38 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +10 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +71 -28
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +25 -25
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +149 -65
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +8 -7
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +30 -12
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +42 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +173 -144
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +898 -323
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +51 -45
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +261 -116
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +70 -25
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +80 -55
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +410 -124
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +44 -44
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +261 -122
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +47 -21
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +175 -66
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +17 -6
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +38 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +12 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +43 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +20 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +24 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +14 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +40 -16
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +70 -25
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +37 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +81 -30
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +76 -30
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +20 -20
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +28 -10
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +3 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +13 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +17 -4
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +17 -2
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +70 -66
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +410 -162
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +80 -74
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +440 -158
- data/src/core/ext/upb-generated/google/api/http.upb.c +17 -17
- data/src/core/ext/upb-generated/google/api/http.upb.h +116 -43
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +4 -4
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +19 -7
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +163 -162
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1157 -435
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +10 -4
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +108 -40
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +10 -4
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +18 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +4 -4
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +19 -7
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +15 -15
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +65 -22
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +49 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +69 -65
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +364 -149
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +8 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +20 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +150 -58
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +11 -11
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +51 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +175 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +764 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +22 -22
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +97 -10
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +23 -2
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +10 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +27 -6
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +5 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +20 -2
- data/src/core/ext/upb-generated/validate/validate.upb.c +261 -250
- data/src/core/ext/upb-generated/validate/validate.upb.h +1836 -663
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +22 -22
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +97 -10
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +23 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +10 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +18 -18
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +70 -10
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +20 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +3 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +8 -8
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +38 -12
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +27 -10
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +10 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +21 -8
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +10 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +71 -30
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +16 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +12 -12
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +69 -26
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +43 -39
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +255 -103
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +4 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +19 -8
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +9 -9
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +70 -25
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +10 -2
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +50 -46
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +195 -185
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +129 -94
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +18 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +163 -155
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +141 -138
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +26 -20
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +738 -730
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +271 -251
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +207 -193
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
- data/src/core/ext/xds/certificate_provider_store.cc +8 -0
- data/src/core/ext/xds/certificate_provider_store.h +9 -0
- data/src/core/ext/xds/xds_api.cc +20 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +2 -0
- data/src/core/ext/xds/xds_certificate_provider.h +8 -0
- data/src/core/ext/xds/xds_client.cc +83 -93
- data/src/core/ext/xds/xds_client.h +11 -4
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +142 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +79 -0
- data/src/core/ext/xds/xds_common_types.cc +9 -9
- data/src/core/ext/xds/xds_common_types.h +3 -3
- data/src/core/ext/xds/xds_endpoint.cc +12 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +1 -1
- data/src/core/ext/xds/xds_listener.cc +1 -1
- data/src/core/ext/xds/xds_route_config.cc +162 -25
- data/src/core/ext/xds/xds_route_config.h +13 -10
- data/src/core/ext/xds/xds_server_config_fetcher.cc +17 -22
- data/src/core/lib/avl/avl.h +68 -5
- data/src/core/lib/channel/call_tracer.h +4 -1
- data/src/core/lib/channel/channel_args.cc +138 -59
- data/src/core/lib/channel/channel_args.h +210 -9
- data/src/core/lib/channel/channel_args_preconditioning.cc +3 -9
- data/src/core/lib/channel/channel_args_preconditioning.h +1 -2
- data/src/core/lib/channel/channel_stack.h +2 -5
- data/src/core/lib/channel/channel_stack_builder.cc +0 -65
- data/src/core/lib/channel/channel_stack_builder.h +27 -6
- data/src/core/lib/channel/channel_stack_builder_impl.cc +102 -0
- data/src/core/lib/channel/channel_stack_builder_impl.h +48 -0
- data/src/core/lib/channel/connected_channel.h +1 -0
- data/src/core/lib/channel/promise_based_filter.cc +495 -162
- data/src/core/lib/channel/promise_based_filter.h +55 -41
- data/src/core/lib/compression/compression_internal.cc +1 -7
- data/src/core/lib/debug/stats_data.cc +2 -6
- data/src/core/lib/debug/stats_data.h +18 -21
- data/src/core/lib/gpr/tls.h +1 -0
- data/src/core/lib/gprpp/bitset.h +12 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +4 -0
- data/src/core/lib/gprpp/match.h +73 -0
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +2 -0
- data/src/core/lib/gprpp/single_set_ptr.h +87 -0
- data/src/core/lib/gprpp/status_helper.cc +18 -2
- data/src/core/lib/gprpp/time.cc +12 -0
- data/src/core/lib/gprpp/time.h +1 -1
- data/src/core/lib/http/format_request.cc +1 -2
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/http/parser.cc +80 -9
- data/src/core/lib/http/parser.h +14 -1
- data/src/core/lib/iomgr/ev_posix.cc +6 -7
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/port.h +0 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +2 -2
- data/src/core/lib/iomgr/tcp_posix.cc +93 -35
- data/src/core/lib/iomgr/tcp_server_posix.cc +26 -17
- data/src/core/lib/json/json_util.h +3 -3
- data/src/core/lib/promise/call_push_pull.h +144 -0
- data/src/core/lib/promise/detail/status.h +2 -1
- data/src/core/lib/promise/intra_activity_waiter.h +49 -0
- data/src/core/lib/promise/latch.h +104 -0
- data/src/core/lib/resource_quota/api.cc +5 -30
- data/src/core/lib/resource_quota/api.h +1 -1
- data/src/core/lib/resource_quota/resource_quota.h +8 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +9 -12
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +5 -6
- data/src/core/lib/security/context/security_context.h +8 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +6 -5
- data/src/core/lib/security/credentials/alts/alts_credentials.h +4 -0
- data/src/core/lib/security/credentials/call_creds_util.cc +3 -3
- data/src/core/lib/security/credentials/call_creds_util.h +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +15 -10
- data/src/core/lib/security/credentials/composite/composite_credentials.h +9 -8
- data/src/core/lib/security/credentials/credentials.h +16 -33
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +8 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.h +8 -5
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +3 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +22 -29
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +57 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +6 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +6 -6
- data/src/core/lib/security/credentials/local/local_credentials.h +4 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +17 -9
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +14 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +8 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +8 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +6 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +49 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +42 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +66 -95
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +9 -6
- data/src/core/lib/security/credentials/tls/tls_credentials.h +5 -5
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +48 -50
- data/src/core/lib/security/credentials/xds/xds_credentials.h +31 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/security_connector.h +9 -0
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -2
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +4 -2
- data/src/core/lib/security/transport/auth_filters.h +7 -7
- data/src/core/lib/security/transport/client_auth_filter.cc +28 -20
- data/src/core/lib/security/transport/secure_endpoint.cc +198 -129
- data/src/core/lib/security/transport/secure_endpoint.h +1 -1
- data/src/core/lib/security/transport/security_handshaker.cc +6 -4
- data/src/core/lib/surface/call.cc +1023 -903
- data/src/core/lib/surface/call.h +0 -14
- data/src/core/lib/surface/channel.cc +4 -3
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +2 -6
- data/src/core/lib/surface/init.cc +1 -1
- data/src/core/lib/surface/server.cc +3 -14
- data/src/core/lib/surface/server.h +1 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.cc +2 -0
- data/src/core/lib/transport/metadata_batch.h +12 -8
- data/src/core/lib/transport/transport.h +20 -5
- data/src/core/lib/transport/transport_impl.h +4 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -2
- data/src/core/tsi/ssl_transport_security.cc +75 -38
- data/src/core/tsi/ssl_transport_security.h +8 -2
- data/src/core/tsi/transport_security_interface.h +2 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
- data/src/ruby/lib/grpc/grpc.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -0
- data/src/ruby/pb/test/client.rb +769 -0
- data/src/ruby/pb/test/server.rb +252 -0
- data/src/ruby/pb/test/xds_client.rb +415 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
- data/third_party/upb/upb/decode.c +32 -16
- data/third_party/upb/upb/def.c +118 -55
- data/third_party/upb/upb/def.h +12 -3
- data/third_party/upb/upb/encode.c +14 -8
- data/third_party/upb/upb/json_encode.c +776 -0
- data/third_party/upb/upb/json_encode.h +62 -0
- data/third_party/upb/upb/msg.c +5 -7
- data/third_party/upb/upb/msg.h +1 -2
- data/third_party/upb/upb/msg_internal.h +49 -36
- data/third_party/upb/upb/port_def.inc +8 -0
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/table.c +10 -6
- data/third_party/upb/upb/table_internal.h +2 -0
- data/third_party/upb/upb/upb.h +41 -11
- data/third_party/zlib/crc32.c +966 -292
- data/third_party/zlib/crc32.h +9441 -436
- data/third_party/zlib/deflate.c +78 -30
- data/third_party/zlib/deflate.h +12 -15
- data/third_party/zlib/gzguts.h +3 -2
- data/third_party/zlib/gzlib.c +5 -3
- data/third_party/zlib/gzread.c +5 -7
- data/third_party/zlib/gzwrite.c +25 -13
- data/third_party/zlib/infback.c +2 -1
- data/third_party/zlib/inffast.c +14 -14
- data/third_party/zlib/inflate.c +39 -8
- data/third_party/zlib/inflate.h +3 -2
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/trees.c +27 -48
- data/third_party/zlib/zlib.h +123 -100
- data/third_party/zlib/zutil.c +2 -2
- data/third_party/zlib/zutil.h +12 -9
- metadata +66 -45
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -201
- data/src/core/ext/filters/max_age/max_age_filter.cc +0 -566
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -26
- data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1657
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -30
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
- data/src/core/lib/iomgr/is_epollexclusive_available.h +0 -36
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
@@ -31,9 +31,9 @@
|
|
31
31
|
#include "src/core/lib/promise/promise.h"
|
32
32
|
#include "src/core/lib/surface/api_trace.h"
|
33
33
|
|
34
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
34
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
35
35
|
grpc_google_iam_credentials::GetRequestMetadata(
|
36
|
-
grpc_core::
|
36
|
+
grpc_core::ClientMetadataHandle initial_metadata,
|
37
37
|
const grpc_call_credentials::GetRequestMetadataArgs*) {
|
38
38
|
if (token_.has_value()) {
|
39
39
|
initial_metadata->Append(
|
@@ -48,8 +48,7 @@ grpc_google_iam_credentials::GetRequestMetadata(
|
|
48
48
|
|
49
49
|
grpc_google_iam_credentials::grpc_google_iam_credentials(
|
50
50
|
const char* token, const char* authority_selector)
|
51
|
-
:
|
52
|
-
token_(token == nullptr ? absl::optional<grpc_core::Slice>()
|
51
|
+
: token_(token == nullptr ? absl::optional<grpc_core::Slice>()
|
53
52
|
: grpc_core::Slice::FromCopiedString(token)),
|
54
53
|
authority_selector_(
|
55
54
|
grpc_core::Slice::FromCopiedString(authority_selector)),
|
@@ -57,6 +56,8 @@ grpc_google_iam_credentials::grpc_google_iam_credentials(
|
|
57
56
|
"GoogleIAMCredentials{Token:%s,AuthoritySelector:%s}",
|
58
57
|
token != nullptr ? "present" : "absent", authority_selector)) {}
|
59
58
|
|
59
|
+
const char* grpc_google_iam_credentials::Type() { return "Iam"; }
|
60
|
+
|
60
61
|
grpc_call_credentials* grpc_google_iam_credentials_create(
|
61
62
|
const char* token, const char* authority_selector, void* reserved) {
|
62
63
|
grpc_core::ExecCtx exec_ctx;
|
@@ -30,12 +30,16 @@ class grpc_google_iam_credentials : public grpc_call_credentials {
|
|
30
30
|
grpc_google_iam_credentials(const char* token,
|
31
31
|
const char* authority_selector);
|
32
32
|
|
33
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
34
|
-
GetRequestMetadata(grpc_core::
|
33
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
34
|
+
GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
|
35
35
|
const GetRequestMetadataArgs* args) override;
|
36
36
|
|
37
37
|
std::string debug_string() override { return debug_string_; }
|
38
38
|
|
39
|
+
static const char* Type();
|
40
|
+
|
41
|
+
const char* type() const override { return Type(); }
|
42
|
+
|
39
43
|
private:
|
40
44
|
int cmp_impl(const grpc_call_credentials* other) const override {
|
41
45
|
// TODO(yashykt): Check if we can do something better here
|
@@ -18,44 +18,37 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include "src/core/lib/security/credentials/
|
21
|
+
#include "src/core/lib/security/credentials/insecure/insecure_credentials.h"
|
22
|
+
|
22
23
|
#include "src/core/lib/security/security_connector/insecure/insecure_security_connector.h"
|
23
24
|
|
24
25
|
namespace grpc_core {
|
25
|
-
namespace {
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
RefCountedPtr<grpc_channel_security_connector>
|
28
|
+
InsecureCredentials::create_security_connector(
|
29
|
+
RefCountedPtr<grpc_call_credentials> request_metadata_creds,
|
30
|
+
const char* /* target_name */, const grpc_channel_args* /* args */,
|
31
|
+
grpc_channel_args** /* new_args */) {
|
32
|
+
return MakeRefCounted<InsecureChannelSecurityConnector>(
|
33
|
+
Ref(), std::move(request_metadata_creds));
|
34
|
+
}
|
31
35
|
|
32
|
-
|
33
|
-
RefCountedPtr<grpc_call_credentials> call_creds,
|
34
|
-
const char* /* target_name */, const grpc_channel_args* /* args */,
|
35
|
-
grpc_channel_args** /* new_args */) override {
|
36
|
-
return MakeRefCounted<InsecureChannelSecurityConnector>(
|
37
|
-
Ref(), std::move(call_creds));
|
38
|
-
}
|
36
|
+
const char* InsecureCredentials::Type() { return "Insecure"; }
|
39
37
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
};
|
38
|
+
int InsecureCredentials::cmp_impl(
|
39
|
+
const grpc_channel_credentials* /* other */) const {
|
40
|
+
// All insecure credentials objects should compare equal.
|
41
|
+
return 0;
|
42
|
+
}
|
46
43
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
44
|
+
RefCountedPtr<grpc_server_security_connector>
|
45
|
+
InsecureServerCredentials::create_security_connector(
|
46
|
+
const grpc_channel_args* /* args */) {
|
47
|
+
return MakeRefCounted<InsecureServerSecurityConnector>(Ref());
|
48
|
+
}
|
51
49
|
|
52
|
-
|
53
|
-
const grpc_channel_args* /* args */) override {
|
54
|
-
return MakeRefCounted<InsecureServerSecurityConnector>(Ref());
|
55
|
-
}
|
56
|
-
};
|
50
|
+
const char* InsecureServerCredentials::Type() { return "Insecure"; }
|
57
51
|
|
58
|
-
} // namespace
|
59
52
|
} // namespace grpc_core
|
60
53
|
|
61
54
|
grpc_channel_credentials* grpc_insecure_credentials_create() {
|
@@ -0,0 +1,57 @@
|
|
1
|
+
//
|
2
|
+
//
|
3
|
+
// Copyright 2022 gRPC authors.
|
4
|
+
//
|
5
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
// you may not use this file except in compliance with the License.
|
7
|
+
// You may obtain a copy of the License at
|
8
|
+
//
|
9
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
//
|
11
|
+
// Unless required by applicable law or agreed to in writing, software
|
12
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
// See the License for the specific language governing permissions and
|
15
|
+
// limitations under the License.
|
16
|
+
//
|
17
|
+
//
|
18
|
+
|
19
|
+
#ifndef GRPC_CORE_LIB_SECURITY_CREDENTIALS_INSECURE_INSECURE_CREDENTIALS_H
|
20
|
+
#define GRPC_CORE_LIB_SECURITY_CREDENTIALS_INSECURE_INSECURE_CREDENTIALS_H
|
21
|
+
|
22
|
+
#include <grpc/support/port_platform.h>
|
23
|
+
|
24
|
+
#include <grpc/grpc_security.h>
|
25
|
+
|
26
|
+
#include "src/core/lib/security/credentials/credentials.h"
|
27
|
+
|
28
|
+
namespace grpc_core {
|
29
|
+
|
30
|
+
class InsecureCredentials final : public grpc_channel_credentials {
|
31
|
+
public:
|
32
|
+
RefCountedPtr<grpc_channel_security_connector> create_security_connector(
|
33
|
+
RefCountedPtr<grpc_call_credentials> request_metadata_creds,
|
34
|
+
const char* /* target_name */, const grpc_channel_args* /* args */,
|
35
|
+
grpc_channel_args** /* new_args */) override;
|
36
|
+
|
37
|
+
static const char* Type();
|
38
|
+
|
39
|
+
const char* type() const override { return Type(); }
|
40
|
+
|
41
|
+
private:
|
42
|
+
int cmp_impl(const grpc_channel_credentials* other) const override;
|
43
|
+
};
|
44
|
+
|
45
|
+
class InsecureServerCredentials final : public grpc_server_credentials {
|
46
|
+
public:
|
47
|
+
RefCountedPtr<grpc_server_security_connector> create_security_connector(
|
48
|
+
const grpc_channel_args* /* args */) override;
|
49
|
+
|
50
|
+
static const char* Type();
|
51
|
+
|
52
|
+
const char* type() const override { return Type(); }
|
53
|
+
};
|
54
|
+
|
55
|
+
} // namespace grpc_core
|
56
|
+
|
57
|
+
#endif // GRPC_CORE_LIB_SECURITY_CREDENTIALS_INSECURE_INSECURE_CREDENTIALS_H
|
@@ -49,9 +49,9 @@ grpc_service_account_jwt_access_credentials::
|
|
49
49
|
gpr_mu_destroy(&cache_mu_);
|
50
50
|
}
|
51
51
|
|
52
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
52
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
53
53
|
grpc_service_account_jwt_access_credentials::GetRequestMetadata(
|
54
|
-
grpc_core::
|
54
|
+
grpc_core::ClientMetadataHandle initial_metadata,
|
55
55
|
const grpc_call_credentials::GetRequestMetadataArgs* args) {
|
56
56
|
gpr_timespec refresh_threshold = gpr_time_from_seconds(
|
57
57
|
GRPC_SECURE_TOKEN_REFRESH_THRESHOLD_SECS, GPR_TIMESPAN);
|
@@ -106,7 +106,7 @@ grpc_service_account_jwt_access_credentials::GetRequestMetadata(
|
|
106
106
|
grpc_service_account_jwt_access_credentials::
|
107
107
|
grpc_service_account_jwt_access_credentials(grpc_auth_json_key key,
|
108
108
|
gpr_timespec token_lifetime)
|
109
|
-
:
|
109
|
+
: key_(key) {
|
110
110
|
gpr_timespec max_token_lifetime = grpc_max_auth_token_lifetime();
|
111
111
|
if (gpr_time_cmp(token_lifetime, max_token_lifetime) > 0) {
|
112
112
|
gpr_log(GPR_INFO,
|
@@ -118,6 +118,10 @@ grpc_service_account_jwt_access_credentials::
|
|
118
118
|
gpr_mu_init(&cache_mu_);
|
119
119
|
}
|
120
120
|
|
121
|
+
const char* grpc_service_account_jwt_access_credentials::Type() {
|
122
|
+
return "Jwt";
|
123
|
+
}
|
124
|
+
|
121
125
|
grpc_core::RefCountedPtr<grpc_call_credentials>
|
122
126
|
grpc_service_account_jwt_access_credentials_create_from_auth_json_key(
|
123
127
|
grpc_auth_json_key key, gpr_timespec token_lifetime) {
|
@@ -38,8 +38,8 @@ class grpc_service_account_jwt_access_credentials
|
|
38
38
|
gpr_timespec token_lifetime);
|
39
39
|
~grpc_service_account_jwt_access_credentials() override;
|
40
40
|
|
41
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
42
|
-
GetRequestMetadata(grpc_core::
|
41
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
42
|
+
GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
|
43
43
|
const GetRequestMetadataArgs* args) override;
|
44
44
|
|
45
45
|
const gpr_timespec& jwt_lifetime() const { return jwt_lifetime_; }
|
@@ -52,6 +52,10 @@ class grpc_service_account_jwt_access_credentials
|
|
52
52
|
static_cast<int64_t>(gpr_timespec_to_micros(jwt_lifetime_)))));
|
53
53
|
};
|
54
54
|
|
55
|
+
static const char* Type();
|
56
|
+
|
57
|
+
const char* type() const override { return Type(); }
|
58
|
+
|
55
59
|
private:
|
56
60
|
int cmp_impl(const grpc_call_credentials* other) const override {
|
57
61
|
// TODO(yashykt): Check if we can do something better here
|
@@ -27,8 +27,6 @@
|
|
27
27
|
#include "src/core/lib/channel/channel_args.h"
|
28
28
|
#include "src/core/lib/security/security_connector/local/local_security_connector.h"
|
29
29
|
|
30
|
-
#define GRPC_CREDENTIALS_TYPE_LOCAL "Local"
|
31
|
-
|
32
30
|
grpc_core::RefCountedPtr<grpc_channel_security_connector>
|
33
31
|
grpc_local_credentials::create_security_connector(
|
34
32
|
grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
|
@@ -38,16 +36,19 @@ grpc_local_credentials::create_security_connector(
|
|
38
36
|
this->Ref(), std::move(request_metadata_creds), args, target_name);
|
39
37
|
}
|
40
38
|
|
39
|
+
const char* grpc_local_credentials::type() const { return "Local"; }
|
40
|
+
|
41
41
|
grpc_core::RefCountedPtr<grpc_server_security_connector>
|
42
42
|
grpc_local_server_credentials::create_security_connector(
|
43
43
|
const grpc_channel_args* /* args */) {
|
44
44
|
return grpc_local_server_security_connector_create(this->Ref());
|
45
45
|
}
|
46
46
|
|
47
|
+
const char* grpc_local_server_credentials::type() const { return "Local"; }
|
48
|
+
|
47
49
|
grpc_local_credentials::grpc_local_credentials(
|
48
50
|
grpc_local_connect_type connect_type)
|
49
|
-
:
|
50
|
-
connect_type_(connect_type) {}
|
51
|
+
: connect_type_(connect_type) {}
|
51
52
|
|
52
53
|
grpc_channel_credentials* grpc_local_credentials_create(
|
53
54
|
grpc_local_connect_type connect_type) {
|
@@ -56,8 +57,7 @@ grpc_channel_credentials* grpc_local_credentials_create(
|
|
56
57
|
|
57
58
|
grpc_local_server_credentials::grpc_local_server_credentials(
|
58
59
|
grpc_local_connect_type connect_type)
|
59
|
-
:
|
60
|
-
connect_type_(connect_type) {}
|
60
|
+
: connect_type_(connect_type) {}
|
61
61
|
|
62
62
|
grpc_server_credentials* grpc_local_server_credentials_create(
|
63
63
|
grpc_local_connect_type connect_type) {
|
@@ -37,6 +37,8 @@ class grpc_local_credentials final : public grpc_channel_credentials {
|
|
37
37
|
const char* target_name, const grpc_channel_args* args,
|
38
38
|
grpc_channel_args** new_args) override;
|
39
39
|
|
40
|
+
const char* type() const override;
|
41
|
+
|
40
42
|
grpc_local_connect_type connect_type() const { return connect_type_; }
|
41
43
|
|
42
44
|
private:
|
@@ -58,6 +60,8 @@ class grpc_local_server_credentials final : public grpc_server_credentials {
|
|
58
60
|
grpc_core::RefCountedPtr<grpc_server_security_connector>
|
59
61
|
create_security_connector(const grpc_channel_args* /* args */) override;
|
60
62
|
|
63
|
+
const char* type() const override;
|
64
|
+
|
61
65
|
grpc_local_connect_type connect_type() const { return connect_type_; }
|
62
66
|
|
63
67
|
private:
|
@@ -281,9 +281,9 @@ void grpc_oauth2_token_fetcher_credentials::on_http_response(
|
|
281
281
|
delete r;
|
282
282
|
}
|
283
283
|
|
284
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
284
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
285
285
|
grpc_oauth2_token_fetcher_credentials::GetRequestMetadata(
|
286
|
-
grpc_core::
|
286
|
+
grpc_core::ClientMetadataHandle initial_metadata,
|
287
287
|
const grpc_call_credentials::GetRequestMetadataArgs*) {
|
288
288
|
// Check if we can use the cached token.
|
289
289
|
absl::optional<grpc_core::Slice> cached_access_token_value;
|
@@ -328,7 +328,7 @@ grpc_oauth2_token_fetcher_credentials::GetRequestMetadata(
|
|
328
328
|
}
|
329
329
|
return
|
330
330
|
[pending_request]()
|
331
|
-
-> grpc_core::Poll<absl::StatusOr<grpc_core::
|
331
|
+
-> grpc_core::Poll<absl::StatusOr<grpc_core::ClientMetadataHandle>> {
|
332
332
|
if (!pending_request->done.load(std::memory_order_acquire)) {
|
333
333
|
return grpc_core::Pending{};
|
334
334
|
}
|
@@ -337,8 +337,7 @@ grpc_oauth2_token_fetcher_credentials::GetRequestMetadata(
|
|
337
337
|
}
|
338
338
|
|
339
339
|
grpc_oauth2_token_fetcher_credentials::grpc_oauth2_token_fetcher_credentials()
|
340
|
-
:
|
341
|
-
token_expiration_(gpr_inf_past(GPR_CLOCK_MONOTONIC)),
|
340
|
+
: token_expiration_(gpr_inf_past(GPR_CLOCK_MONOTONIC)),
|
342
341
|
pollent_(grpc_polling_entity_create_from_pollset_set(
|
343
342
|
grpc_pollset_set_create())) {
|
344
343
|
gpr_mu_init(&mu_);
|
@@ -348,6 +347,10 @@ std::string grpc_oauth2_token_fetcher_credentials::debug_string() {
|
|
348
347
|
return "OAuth2TokenFetcherCredentials";
|
349
348
|
}
|
350
349
|
|
350
|
+
const char* grpc_oauth2_token_fetcher_credentials::type() const {
|
351
|
+
return "Oauth2";
|
352
|
+
}
|
353
|
+
|
351
354
|
//
|
352
355
|
// Google Compute Engine credentials.
|
353
356
|
//
|
@@ -473,6 +476,10 @@ std::string grpc_google_refresh_token_credentials::debug_string() {
|
|
473
476
|
grpc_oauth2_token_fetcher_credentials::debug_string());
|
474
477
|
}
|
475
478
|
|
479
|
+
const char* grpc_google_refresh_token_credentials::type() const {
|
480
|
+
return "GoogleRefreshToken";
|
481
|
+
}
|
482
|
+
|
476
483
|
static std::string create_loggable_refresh_token(
|
477
484
|
grpc_auth_refresh_token* token) {
|
478
485
|
if (strcmp(token->type, GRPC_AUTH_JSON_TYPE_INVALID) == 0) {
|
@@ -696,9 +703,9 @@ grpc_call_credentials* grpc_sts_credentials_create(
|
|
696
703
|
// Oauth2 Access Token credentials.
|
697
704
|
//
|
698
705
|
|
699
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
706
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
700
707
|
grpc_access_token_credentials::GetRequestMetadata(
|
701
|
-
grpc_core::
|
708
|
+
grpc_core::ClientMetadataHandle initial_metadata,
|
702
709
|
const grpc_call_credentials::GetRequestMetadataArgs*) {
|
703
710
|
initial_metadata->Append(
|
704
711
|
GRPC_AUTHORIZATION_METADATA_KEY, access_token_value_.Ref(),
|
@@ -706,10 +713,11 @@ grpc_access_token_credentials::GetRequestMetadata(
|
|
706
713
|
return grpc_core::Immediate(std::move(initial_metadata));
|
707
714
|
}
|
708
715
|
|
716
|
+
const char* grpc_access_token_credentials::Type() { return "AccessToken"; }
|
717
|
+
|
709
718
|
grpc_access_token_credentials::grpc_access_token_credentials(
|
710
719
|
const char* access_token)
|
711
|
-
:
|
712
|
-
access_token_value_(grpc_core::Slice::FromCopiedString(
|
720
|
+
: access_token_value_(grpc_core::Slice::FromCopiedString(
|
713
721
|
absl::StrCat("Bearer ", access_token))) {}
|
714
722
|
|
715
723
|
std::string grpc_access_token_credentials::debug_string() {
|
@@ -79,9 +79,9 @@ struct grpc_oauth2_pending_get_request_metadata
|
|
79
79
|
std::atomic<bool> done{false};
|
80
80
|
grpc_core::Waker waker;
|
81
81
|
grpc_polling_entity* pollent;
|
82
|
-
grpc_core::
|
82
|
+
grpc_core::ClientMetadataHandle md;
|
83
83
|
struct grpc_oauth2_pending_get_request_metadata* next;
|
84
|
-
absl::StatusOr<grpc_core::
|
84
|
+
absl::StatusOr<grpc_core::ClientMetadataHandle> result;
|
85
85
|
};
|
86
86
|
|
87
87
|
// -- Oauth2 Token Fetcher credentials --
|
@@ -94,14 +94,16 @@ class grpc_oauth2_token_fetcher_credentials : public grpc_call_credentials {
|
|
94
94
|
grpc_oauth2_token_fetcher_credentials();
|
95
95
|
~grpc_oauth2_token_fetcher_credentials() override;
|
96
96
|
|
97
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
98
|
-
GetRequestMetadata(grpc_core::
|
97
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
98
|
+
GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
|
99
99
|
const GetRequestMetadataArgs* args) override;
|
100
100
|
|
101
101
|
void on_http_response(grpc_credentials_metadata_request* r,
|
102
102
|
grpc_error_handle error);
|
103
103
|
std::string debug_string() override;
|
104
104
|
|
105
|
+
const char* type() const override;
|
106
|
+
|
105
107
|
protected:
|
106
108
|
virtual void fetch_oauth2(grpc_credentials_metadata_request* req,
|
107
109
|
grpc_polling_entity* pollent, grpc_iomgr_cb_func cb,
|
@@ -136,6 +138,8 @@ class grpc_google_refresh_token_credentials final
|
|
136
138
|
|
137
139
|
std::string debug_string() override;
|
138
140
|
|
141
|
+
const char* type() const override;
|
142
|
+
|
139
143
|
protected:
|
140
144
|
void fetch_oauth2(grpc_credentials_metadata_request* req,
|
141
145
|
grpc_polling_entity* pollent, grpc_iomgr_cb_func cb,
|
@@ -152,12 +156,16 @@ class grpc_access_token_credentials final : public grpc_call_credentials {
|
|
152
156
|
public:
|
153
157
|
explicit grpc_access_token_credentials(const char* access_token);
|
154
158
|
|
155
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
156
|
-
GetRequestMetadata(grpc_core::
|
159
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
160
|
+
GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
|
157
161
|
const GetRequestMetadataArgs* args) override;
|
158
162
|
|
159
163
|
std::string debug_string() override;
|
160
164
|
|
165
|
+
static const char* Type();
|
166
|
+
|
167
|
+
const char* type() const override { return Type(); }
|
168
|
+
|
161
169
|
private:
|
162
170
|
int cmp_impl(const grpc_call_credentials* other) const override {
|
163
171
|
// TODO(yashykt): Check if we can do something better here
|
@@ -60,7 +60,9 @@ std::string grpc_plugin_credentials::debug_string() {
|
|
60
60
|
return debug_str;
|
61
61
|
}
|
62
62
|
|
63
|
-
|
63
|
+
const char* grpc_plugin_credentials::type() const { return "Plugin"; }
|
64
|
+
|
65
|
+
absl::StatusOr<grpc_core::ClientMetadataHandle>
|
64
66
|
grpc_plugin_credentials::PendingRequest::ProcessPluginResult(
|
65
67
|
const grpc_metadata* md, size_t num_md, grpc_status_code status,
|
66
68
|
const char* error_details) {
|
@@ -96,12 +98,12 @@ grpc_plugin_credentials::PendingRequest::ProcessPluginResult(
|
|
96
98
|
});
|
97
99
|
}
|
98
100
|
if (!error.ok()) return std::move(error);
|
99
|
-
return grpc_core::
|
101
|
+
return grpc_core::ClientMetadataHandle(std::move(md_));
|
100
102
|
}
|
101
103
|
}
|
102
104
|
}
|
103
105
|
|
104
|
-
grpc_core::Poll<absl::StatusOr<grpc_core::
|
106
|
+
grpc_core::Poll<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
105
107
|
grpc_plugin_credentials::PendingRequest::PollAsyncResult() {
|
106
108
|
if (!ready_.load(std::memory_order_acquire)) {
|
107
109
|
return grpc_core::Pending{};
|
@@ -137,9 +139,9 @@ void grpc_plugin_credentials::PendingRequest::RequestMetadataReady(
|
|
137
139
|
r->waker_.Wakeup();
|
138
140
|
}
|
139
141
|
|
140
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
142
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
141
143
|
grpc_plugin_credentials::GetRequestMetadata(
|
142
|
-
grpc_core::
|
144
|
+
grpc_core::ClientMetadataHandle initial_metadata,
|
143
145
|
const grpc_call_credentials::GetRequestMetadataArgs* args) {
|
144
146
|
if (plugin_.get_metadata == nullptr) {
|
145
147
|
return grpc_core::Immediate(std::move(initial_metadata));
|
@@ -197,7 +199,7 @@ grpc_plugin_credentials::GetRequestMetadata(
|
|
197
199
|
grpc_plugin_credentials::grpc_plugin_credentials(
|
198
200
|
grpc_metadata_credentials_plugin plugin,
|
199
201
|
grpc_security_level min_security_level)
|
200
|
-
: grpc_call_credentials(
|
202
|
+
: grpc_call_credentials(min_security_level), plugin_(plugin) {}
|
201
203
|
|
202
204
|
grpc_call_credentials* grpc_metadata_credentials_create_from_plugin(
|
203
205
|
grpc_metadata_credentials_plugin plugin,
|
@@ -35,17 +35,19 @@ struct grpc_plugin_credentials final : public grpc_call_credentials {
|
|
35
35
|
grpc_security_level min_security_level);
|
36
36
|
~grpc_plugin_credentials() override;
|
37
37
|
|
38
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
39
|
-
GetRequestMetadata(grpc_core::
|
38
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
39
|
+
GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
|
40
40
|
const GetRequestMetadataArgs* args) override;
|
41
41
|
|
42
42
|
std::string debug_string() override;
|
43
43
|
|
44
|
+
const char* type() const override;
|
45
|
+
|
44
46
|
private:
|
45
47
|
class PendingRequest : public grpc_core::RefCounted<PendingRequest> {
|
46
48
|
public:
|
47
49
|
PendingRequest(grpc_core::RefCountedPtr<grpc_plugin_credentials> creds,
|
48
|
-
grpc_core::
|
50
|
+
grpc_core::ClientMetadataHandle initial_metadata,
|
49
51
|
const grpc_call_credentials::GetRequestMetadataArgs* args)
|
50
52
|
: call_creds_(std::move(creds)),
|
51
53
|
context_(
|
@@ -60,11 +62,11 @@ struct grpc_plugin_credentials final : public grpc_call_credentials {
|
|
60
62
|
}
|
61
63
|
}
|
62
64
|
|
63
|
-
absl::StatusOr<grpc_core::
|
65
|
+
absl::StatusOr<grpc_core::ClientMetadataHandle> ProcessPluginResult(
|
64
66
|
const grpc_metadata* md, size_t num_md, grpc_status_code status,
|
65
67
|
const char* error_details);
|
66
68
|
|
67
|
-
grpc_core::Poll<absl::StatusOr<grpc_core::
|
69
|
+
grpc_core::Poll<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
68
70
|
PollAsyncResult();
|
69
71
|
|
70
72
|
static void RequestMetadataReady(void* request, const grpc_metadata* md,
|
@@ -80,7 +82,7 @@ struct grpc_plugin_credentials final : public grpc_call_credentials {
|
|
80
82
|
grpc_core::Activity::current()->MakeNonOwningWaker()};
|
81
83
|
grpc_core::RefCountedPtr<grpc_plugin_credentials> call_creds_;
|
82
84
|
grpc_auth_metadata_context context_;
|
83
|
-
grpc_core::
|
85
|
+
grpc_core::ClientMetadataHandle md_;
|
84
86
|
// final status
|
85
87
|
absl::InlinedVector<grpc_metadata, 2> metadata_;
|
86
88
|
std::string error_details_;
|
@@ -37,8 +37,7 @@
|
|
37
37
|
|
38
38
|
grpc_ssl_credentials::grpc_ssl_credentials(
|
39
39
|
const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pair,
|
40
|
-
const grpc_ssl_verify_peer_options* verify_options)
|
41
|
-
: grpc_channel_credentials(GRPC_CHANNEL_CREDENTIALS_TYPE_SSL) {
|
40
|
+
const grpc_ssl_verify_peer_options* verify_options) {
|
42
41
|
build_config(pem_root_certs, pem_key_cert_pair, verify_options);
|
43
42
|
}
|
44
43
|
|
@@ -83,6 +82,8 @@ grpc_ssl_credentials::create_security_connector(
|
|
83
82
|
return sc;
|
84
83
|
}
|
85
84
|
|
85
|
+
const char* grpc_ssl_credentials::Type() { return "Ssl"; }
|
86
|
+
|
86
87
|
void grpc_ssl_credentials::build_config(
|
87
88
|
const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pair,
|
88
89
|
const grpc_ssl_verify_peer_options* verify_options) {
|
@@ -162,8 +163,7 @@ struct grpc_ssl_server_credentials_options {
|
|
162
163
|
};
|
163
164
|
|
164
165
|
grpc_ssl_server_credentials::grpc_ssl_server_credentials(
|
165
|
-
const grpc_ssl_server_credentials_options& options)
|
166
|
-
: grpc_server_credentials(GRPC_CHANNEL_CREDENTIALS_TYPE_SSL) {
|
166
|
+
const grpc_ssl_server_credentials_options& options) {
|
167
167
|
if (options.certificate_config_fetcher != nullptr) {
|
168
168
|
config_.client_certificate_request = options.client_certificate_request;
|
169
169
|
certificate_config_fetcher_ = *options.certificate_config_fetcher;
|
@@ -186,6 +186,8 @@ grpc_ssl_server_credentials::create_security_connector(
|
|
186
186
|
return grpc_ssl_server_security_connector_create(this->Ref());
|
187
187
|
}
|
188
188
|
|
189
|
+
const char* grpc_ssl_server_credentials::Type() { return "Ssl"; }
|
190
|
+
|
189
191
|
tsi_ssl_pem_key_cert_pair* grpc_convert_grpc_to_tsi_cert_pairs(
|
190
192
|
const grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
|
191
193
|
size_t num_key_cert_pairs) {
|
@@ -37,6 +37,10 @@ class grpc_ssl_credentials : public grpc_channel_credentials {
|
|
37
37
|
const char* target, const grpc_channel_args* args,
|
38
38
|
grpc_channel_args** new_args) override;
|
39
39
|
|
40
|
+
static const char* Type();
|
41
|
+
|
42
|
+
const char* type() const override { return Type(); }
|
43
|
+
|
40
44
|
// TODO(mattstev): Plumb to wrapped languages. Until then, setting the TLS
|
41
45
|
// version should be done for testing purposes only.
|
42
46
|
void set_min_tls_version(grpc_tls_version min_tls_version);
|
@@ -76,6 +80,10 @@ class grpc_ssl_server_credentials final : public grpc_server_credentials {
|
|
76
80
|
grpc_core::RefCountedPtr<grpc_server_security_connector>
|
77
81
|
create_security_connector(const grpc_channel_args* /* args */) override;
|
78
82
|
|
83
|
+
static const char* Type();
|
84
|
+
|
85
|
+
const char* type() const override { return Type(); }
|
86
|
+
|
79
87
|
bool has_cert_config_fetcher() const {
|
80
88
|
return certificate_config_fetcher_.cb != nullptr;
|
81
89
|
}
|
@@ -26,6 +26,7 @@
|
|
26
26
|
|
27
27
|
#include <grpc/grpc_security.h>
|
28
28
|
|
29
|
+
#include "src/core/lib/gpr/useful.h"
|
29
30
|
#include "src/core/lib/gprpp/ref_counted.h"
|
30
31
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
31
32
|
#include "src/core/lib/gprpp/thd.h"
|
@@ -50,6 +51,36 @@ struct grpc_tls_certificate_provider
|
|
50
51
|
|
51
52
|
virtual grpc_core::RefCountedPtr<grpc_tls_certificate_distributor>
|
52
53
|
distributor() const = 0;
|
54
|
+
|
55
|
+
// Compares this grpc_tls_certificate_provider object with \a other.
|
56
|
+
// If this method returns 0, it means that gRPC can treat the two certificate
|
57
|
+
// providers as effectively the same. This method is used to compare
|
58
|
+
// `grpc_tls_certificate_provider` objects when they are present in
|
59
|
+
// channel_args. One important usage of this is when channel args are used in
|
60
|
+
// SubchannelKey, which leads to a useful property that allows subchannels to
|
61
|
+
// be reused when two different `grpc_tls_certificate_provider` objects are
|
62
|
+
// used but they compare as equal (assuming other channel args match).
|
63
|
+
int Compare(const grpc_tls_certificate_provider* other) const {
|
64
|
+
GPR_ASSERT(other != nullptr);
|
65
|
+
// Intentionally uses grpc_core::QsortCompare instead of strcmp as a safety
|
66
|
+
// against different grpc_tls_certificate_provider types using the same
|
67
|
+
// name.
|
68
|
+
int r = grpc_core::QsortCompare(type(), other->type());
|
69
|
+
if (r != 0) return r;
|
70
|
+
return CompareImpl(other);
|
71
|
+
}
|
72
|
+
|
73
|
+
// The pointer value \a type is used to uniquely identify a creds
|
74
|
+
// implementation for down-casting purposes. Every provider implementation
|
75
|
+
// should use a unique string instance, which should be returned by all
|
76
|
+
// instances of that provider implementation.
|
77
|
+
virtual const char* type() const = 0;
|
78
|
+
|
79
|
+
private:
|
80
|
+
// Implementation for `Compare` method intended to be overridden by
|
81
|
+
// subclasses. Only invoked if `type()` and `other->type()` point to the same
|
82
|
+
// string.
|
83
|
+
virtual int CompareImpl(const grpc_tls_certificate_provider* other) const = 0;
|
53
84
|
};
|
54
85
|
|
55
86
|
namespace grpc_core {
|
@@ -68,11 +99,20 @@ class StaticDataCertificateProvider final
|
|
68
99
|
return distributor_;
|
69
100
|
}
|
70
101
|
|
102
|
+
const char* type() const override { return "StaticData"; }
|
103
|
+
|
71
104
|
private:
|
72
105
|
struct WatcherInfo {
|
73
106
|
bool root_being_watched = false;
|
74
107
|
bool identity_being_watched = false;
|
75
108
|
};
|
109
|
+
|
110
|
+
int CompareImpl(const grpc_tls_certificate_provider* other) const override {
|
111
|
+
// TODO(yashykt): Maybe do something better here.
|
112
|
+
return QsortCompare(static_cast<const grpc_tls_certificate_provider*>(this),
|
113
|
+
other);
|
114
|
+
}
|
115
|
+
|
76
116
|
RefCountedPtr<grpc_tls_certificate_distributor> distributor_;
|
77
117
|
std::string root_certificate_;
|
78
118
|
PemKeyCertPairList pem_key_cert_pairs_;
|
@@ -98,11 +138,20 @@ class FileWatcherCertificateProvider final
|
|
98
138
|
return distributor_;
|
99
139
|
}
|
100
140
|
|
141
|
+
const char* type() const override { return "FileWatcher"; }
|
142
|
+
|
101
143
|
private:
|
102
144
|
struct WatcherInfo {
|
103
145
|
bool root_being_watched = false;
|
104
146
|
bool identity_being_watched = false;
|
105
147
|
};
|
148
|
+
|
149
|
+
int CompareImpl(const grpc_tls_certificate_provider* other) const override {
|
150
|
+
// TODO(yashykt): Maybe do something better here.
|
151
|
+
return QsortCompare(static_cast<const grpc_tls_certificate_provider*>(this),
|
152
|
+
other);
|
153
|
+
}
|
154
|
+
|
106
155
|
// Force an update from the file system regardless of the interval.
|
107
156
|
void ForceUpdate();
|
108
157
|
// Read the root certificates from files and update the distributor.
|