grpc 1.33.0.pre1 → 1.34.0

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.

Files changed (533) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +342 -134
  3. data/include/grpc/grpc.h +1 -2
  4. data/include/grpc/grpc_security.h +149 -172
  5. data/include/grpc/impl/codegen/grpc_types.h +9 -2
  6. data/include/grpc/impl/codegen/port_platform.h +22 -55
  7. data/src/core/ext/filters/client_channel/client_channel.cc +11 -34
  8. data/src/core/ext/filters/client_channel/config_selector.h +2 -3
  9. data/src/core/ext/filters/client_channel/health/health_check_client.cc +4 -1
  10. data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -2
  11. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
  12. data/src/core/ext/filters/client_channel/lb_policy.cc +5 -1
  13. data/src/core/ext/filters/client_channel/lb_policy.h +3 -3
  14. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +1 -1
  15. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +80 -71
  17. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
  18. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +2 -2
  19. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +47 -17
  20. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +2 -2
  21. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +8 -5
  22. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -3
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +1 -1
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +16 -243
  25. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +53 -17
  26. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +809 -0
  27. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +20 -25
  28. data/src/core/ext/filters/client_channel/resolver.cc +3 -1
  29. data/src/core/ext/filters/client_channel/resolver.h +4 -1
  30. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +1 -1
  31. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -1
  32. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -1
  33. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -1
  34. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
  35. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +20 -0
  36. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +66 -7
  37. data/src/core/ext/filters/client_channel/resolver_registry.cc +4 -4
  38. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +13 -25
  39. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +1 -1
  40. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +2 -2
  41. data/src/core/ext/filters/client_channel/retry_throttle.h +1 -1
  42. data/src/core/ext/filters/client_channel/server_address.h +0 -4
  43. data/src/core/ext/filters/client_channel/service_config.cc +3 -1
  44. data/src/core/ext/filters/client_channel/service_config.h +1 -1
  45. data/src/core/ext/filters/client_channel/subchannel.cc +18 -15
  46. data/src/core/ext/filters/client_channel/subchannel.h +2 -2
  47. data/src/core/ext/filters/client_channel/subchannel_interface.h +7 -15
  48. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -2
  49. data/src/core/ext/filters/deadline/deadline_filter.cc +83 -77
  50. data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
  51. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
  52. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
  53. data/src/core/ext/filters/max_age/max_age_filter.cc +1 -1
  54. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +1 -1
  55. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +17 -3
  56. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
  57. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +4 -24
  58. data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -2
  59. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  60. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
  61. data/src/core/ext/transport/chttp2/transport/internal.h +0 -1
  62. data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -1
  63. data/src/core/ext/transport/chttp2/transport/writing.cc +1 -2
  64. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
  65. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  66. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
  67. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  68. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +254 -0
  69. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  70. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
  71. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  72. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +558 -0
  73. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
  74. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
  75. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  76. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +133 -0
  77. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  78. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
  79. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  80. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
  81. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  82. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +266 -0
  83. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +125 -0
  84. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
  85. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
  86. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
  87. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  88. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
  89. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
  90. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
  91. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  92. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
  93. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
  94. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
  95. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  96. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +228 -0
  97. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +80 -0
  98. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +46 -0
  99. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  100. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
  101. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  102. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +55 -0
  103. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  104. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +110 -0
  105. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  106. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
  107. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
  108. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
  109. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  110. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
  111. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  112. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +190 -0
  113. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
  114. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +185 -0
  115. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  116. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +62 -0
  117. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  118. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +97 -0
  119. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
  120. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +915 -0
  121. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +280 -0
  122. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
  123. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  124. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +64 -0
  125. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  126. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +511 -0
  127. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
  128. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -0
  129. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  130. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +166 -0
  131. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
  132. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +105 -0
  133. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  134. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +249 -0
  135. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
  136. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
  137. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
  138. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
  139. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  140. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +152 -0
  141. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +60 -0
  142. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +83 -0
  143. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
  144. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +82 -0
  145. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
  146. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +83 -0
  147. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  148. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +86 -0
  149. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
  150. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
  151. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
  152. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
  153. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  154. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
  155. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  156. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
  157. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  158. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
  159. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  160. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +72 -0
  161. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  162. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
  163. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  164. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
  165. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  166. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
  167. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  168. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
  169. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +30 -0
  170. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
  171. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  172. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
  173. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  174. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
  175. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  176. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  177. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  178. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
  179. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  180. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +38 -0
  181. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  182. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
  183. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  184. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +39 -0
  185. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  186. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
  187. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  188. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
  189. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  190. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +39 -0
  191. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  192. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
  193. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  194. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
  195. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  196. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
  197. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  198. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
  199. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  200. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
  201. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  202. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
  203. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  204. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
  205. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  206. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +42 -0
  207. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +35 -0
  208. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +62 -0
  209. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +40 -0
  210. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +45 -0
  211. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +40 -0
  212. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +49 -0
  213. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +35 -0
  214. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +68 -0
  215. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +40 -0
  216. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +51 -0
  217. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +35 -0
  218. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +307 -0
  219. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  220. data/src/core/ext/xds/certificate_provider_factory.h +7 -5
  221. data/src/core/ext/xds/certificate_provider_store.cc +84 -0
  222. data/src/core/ext/xds/certificate_provider_store.h +65 -8
  223. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +119 -0
  224. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +72 -0
  225. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +28 -140
  226. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +6 -4
  227. data/src/core/ext/xds/xds_api.cc +241 -718
  228. data/src/core/ext/xds/xds_api.h +50 -9
  229. data/src/core/ext/xds/xds_bootstrap.cc +172 -25
  230. data/src/core/ext/xds/xds_bootstrap.h +23 -7
  231. data/src/core/ext/xds/xds_certificate_provider.cc +240 -0
  232. data/src/core/ext/xds/xds_certificate_provider.h +74 -0
  233. data/src/core/ext/xds/xds_client.cc +161 -128
  234. data/src/core/ext/xds/xds_client.h +12 -11
  235. data/src/core/ext/xds/xds_client_stats.cc +41 -4
  236. data/src/core/ext/xds/xds_client_stats.h +2 -2
  237. data/src/core/lib/channel/channel_args.cc +2 -1
  238. data/src/core/lib/channel/channel_trace.cc +4 -2
  239. data/src/core/lib/channel/channelz.h +2 -2
  240. data/src/core/lib/channel/handshaker.h +2 -2
  241. data/src/core/lib/compression/compression.cc +8 -4
  242. data/src/core/lib/compression/compression_internal.cc +10 -5
  243. data/src/core/lib/compression/compression_internal.h +2 -1
  244. data/src/core/lib/compression/stream_compression_identity.cc +1 -3
  245. data/src/core/lib/debug/stats_data.cc +1 -0
  246. data/src/core/lib/gpr/cpu_iphone.cc +10 -2
  247. data/src/core/lib/gpr/log_linux.cc +17 -3
  248. data/src/core/lib/gpr/log_posix.cc +13 -1
  249. data/src/core/lib/gpr/log_windows.cc +16 -4
  250. data/src/core/lib/gpr/murmur_hash.cc +1 -1
  251. data/src/core/lib/gpr/string.cc +1 -1
  252. data/src/core/lib/gpr/time_precise.cc +3 -2
  253. data/src/core/lib/gpr/tls.h +4 -0
  254. data/src/core/lib/gpr/tls_msvc.h +2 -0
  255. data/src/core/lib/gpr/tls_stdcpp.h +48 -0
  256. data/src/core/lib/gpr/useful.h +5 -4
  257. data/src/core/lib/gprpp/dual_ref_counted.h +44 -49
  258. data/src/core/lib/gprpp/examine_stack.cc +43 -0
  259. data/src/core/lib/gprpp/examine_stack.h +46 -0
  260. data/src/core/lib/gprpp/fork.cc +2 -2
  261. data/src/core/lib/gprpp/manual_constructor.h +1 -1
  262. data/src/core/lib/gprpp/orphanable.h +4 -8
  263. data/src/core/lib/gprpp/ref_counted.h +40 -46
  264. data/src/core/lib/gprpp/ref_counted_ptr.h +9 -11
  265. data/src/core/lib/{security/authorization/mock_cel/statusor.h → gprpp/stat.h} +13 -25
  266. data/src/core/lib/gprpp/stat_posix.cc +49 -0
  267. data/src/core/lib/gprpp/stat_windows.cc +48 -0
  268. data/src/core/lib/gprpp/thd.h +2 -2
  269. data/src/core/lib/gprpp/thd_posix.cc +36 -36
  270. data/src/core/lib/http/parser.cc +46 -25
  271. data/src/core/lib/iomgr/error.cc +2 -1
  272. data/src/core/lib/iomgr/ev_epollex_linux.cc +8 -4
  273. data/src/core/lib/iomgr/exec_ctx.cc +1 -1
  274. data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
  275. data/src/core/lib/iomgr/executor/threadpool.h +3 -3
  276. data/src/core/lib/iomgr/parse_address.cc +84 -6
  277. data/src/core/lib/iomgr/parse_address.h +20 -0
  278. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +2 -1
  279. data/src/core/lib/iomgr/python_util.h +3 -3
  280. data/src/core/lib/iomgr/resolve_address_posix.cc +1 -5
  281. data/src/core/lib/iomgr/tcp_posix.cc +3 -2
  282. data/src/core/lib/iomgr/timer_custom.cc +2 -2
  283. data/src/core/lib/iomgr/unix_sockets_posix.cc +27 -15
  284. data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
  285. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
  286. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
  287. data/src/core/lib/json/json.h +2 -2
  288. data/src/core/lib/json/json_reader.cc +8 -4
  289. data/src/core/lib/json/json_util.h +167 -0
  290. data/src/core/lib/json/json_writer.cc +2 -1
  291. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +3 -1
  292. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +5 -4
  293. data/src/core/lib/security/authorization/mock_cel/cel_value.h +4 -0
  294. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +6 -6
  295. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +10 -9
  296. data/src/core/lib/security/context/security_context.h +3 -1
  297. data/src/core/lib/security/credentials/credentials.cc +1 -1
  298. data/src/core/lib/security/credentials/credentials.h +3 -3
  299. data/src/core/lib/security/credentials/external/aws_request_signer.cc +208 -0
  300. data/src/core/lib/security/credentials/external/aws_request_signer.h +73 -0
  301. data/src/core/lib/security/credentials/external/external_account_credentials.cc +311 -0
  302. data/src/core/lib/security/credentials/external/external_account_credentials.h +118 -0
  303. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +136 -0
  304. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +49 -0
  305. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +211 -0
  306. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +59 -0
  307. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +51 -0
  308. data/src/core/lib/security/credentials/jwt/json_token.cc +5 -2
  309. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
  310. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -1
  311. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +2 -2
  312. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +35 -5
  313. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +12 -8
  314. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +78 -0
  315. data/src/core/lib/security/{certificate_provider.h → credentials/tls/grpc_tls_certificate_provider.h} +32 -18
  316. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +77 -149
  317. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +58 -187
  318. data/src/core/lib/security/credentials/tls/tls_credentials.cc +16 -12
  319. data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
  320. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +2 -2
  321. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +88 -0
  322. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +70 -0
  323. data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
  324. data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
  325. data/src/core/lib/security/security_connector/local/local_security_connector.cc +2 -2
  326. data/src/core/lib/security/security_connector/security_connector.cc +1 -1
  327. data/src/core/lib/security/security_connector/security_connector.h +4 -2
  328. data/src/core/lib/security/security_connector/ssl_utils.h +4 -2
  329. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +293 -275
  330. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +106 -61
  331. data/src/core/lib/security/transport/security_handshaker.cc +1 -1
  332. data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
  333. data/src/core/lib/security/util/json_util.h +1 -0
  334. data/src/core/lib/slice/slice.cc +7 -4
  335. data/src/core/lib/slice/slice_buffer.cc +2 -1
  336. data/src/core/lib/slice/slice_intern.cc +2 -2
  337. data/src/core/lib/surface/call.cc +9 -8
  338. data/src/core/lib/surface/completion_queue.cc +7 -6
  339. data/src/core/lib/surface/server.cc +4 -2
  340. data/src/core/lib/surface/server.h +2 -2
  341. data/src/core/lib/surface/validate_metadata.h +3 -0
  342. data/src/core/lib/surface/version.cc +2 -2
  343. data/src/core/lib/transport/authority_override.h +2 -0
  344. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  345. data/src/core/lib/transport/byte_stream.h +3 -3
  346. data/src/core/lib/transport/connectivity_state.h +3 -3
  347. data/src/core/lib/transport/metadata.h +2 -2
  348. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  349. data/src/core/lib/transport/transport.cc +5 -3
  350. data/src/core/lib/transport/transport.h +1 -1
  351. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  352. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +4 -3
  353. data/src/core/tsi/fake_transport_security.cc +1 -0
  354. data/src/core/tsi/local_transport_security.cc +5 -1
  355. data/src/core/tsi/local_transport_security.h +6 -7
  356. data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -0
  357. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -1
  358. data/src/core/tsi/ssl_transport_security.cc +14 -7
  359. data/src/core/tsi/ssl_transport_security.h +3 -0
  360. data/src/core/tsi/transport_security.cc +4 -2
  361. data/src/ruby/ext/grpc/extconf.rb +1 -1
  362. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +22 -14
  363. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +36 -24
  364. data/src/ruby/lib/grpc/version.rb +1 -1
  365. data/third_party/abseil-cpp/absl/algorithm/container.h +59 -22
  366. data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
  367. data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
  368. data/third_party/abseil-cpp/absl/base/casts.h +9 -6
  369. data/third_party/abseil-cpp/absl/base/config.h +60 -17
  370. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
  371. data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
  372. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -0
  373. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  374. data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
  375. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +1 -1
  376. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
  377. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
  378. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
  379. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
  380. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
  381. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
  382. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
  383. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
  384. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
  385. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
  386. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
  387. data/third_party/abseil-cpp/absl/base/macros.h +36 -109
  388. data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
  389. data/third_party/abseil-cpp/absl/base/options.h +31 -4
  390. data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
  391. data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
  392. data/third_party/abseil-cpp/absl/container/fixed_array.h +42 -25
  393. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +2 -1
  394. data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
  395. data/third_party/abseil-cpp/absl/container/internal/common.h +6 -2
  396. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
  397. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +49 -29
  398. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +15 -0
  399. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +24 -7
  400. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -1
  401. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +35 -11
  402. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +10 -9
  403. data/third_party/abseil-cpp/absl/container/internal/layout.h +7 -5
  404. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +55 -34
  405. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +5 -4
  406. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +66 -16
  407. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +4 -0
  408. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +13 -4
  409. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +43 -24
  410. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +12 -3
  411. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +10 -2
  412. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +22 -1
  413. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -21
  414. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +12 -1
  415. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  416. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +100 -20
  417. data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
  418. data/third_party/abseil-cpp/absl/functional/function_ref.h +1 -1
  419. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  420. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
  421. data/third_party/abseil-cpp/absl/hash/hash.h +6 -5
  422. data/third_party/abseil-cpp/absl/hash/internal/hash.h +73 -65
  423. data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
  424. data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
  425. data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
  426. data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
  427. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
  428. data/third_party/abseil-cpp/absl/status/status.cc +4 -6
  429. data/third_party/abseil-cpp/absl/status/status.h +502 -113
  430. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +5 -10
  431. data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
  432. data/third_party/abseil-cpp/absl/strings/cord.cc +91 -112
  433. data/third_party/abseil-cpp/absl/strings/cord.h +360 -205
  434. data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
  435. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
  436. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  437. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
  438. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  439. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +45 -23
  440. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
  441. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
  442. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
  443. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
  444. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
  445. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
  446. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
  447. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
  448. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
  449. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
  450. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
  451. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
  452. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
  453. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  454. data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
  455. data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
  456. data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
  457. data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
  458. data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
  459. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
  460. data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
  461. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
  462. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +3 -3
  463. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +28 -28
  464. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +4 -16
  465. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -1
  466. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +8 -0
  467. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -2
  468. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -64
  469. data/third_party/abseil-cpp/absl/synchronization/mutex.h +15 -6
  470. data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
  471. data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
  472. data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
  473. data/third_party/abseil-cpp/absl/time/format.cc +43 -36
  474. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
  475. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
  476. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
  477. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
  478. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
  479. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
  480. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
  481. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
  482. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
  483. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
  484. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
  485. data/third_party/abseil-cpp/absl/time/time.h +15 -16
  486. data/third_party/abseil-cpp/absl/types/internal/variant.h +4 -4
  487. data/third_party/abseil-cpp/absl/types/optional.h +9 -9
  488. data/third_party/abseil-cpp/absl/types/span.h +49 -36
  489. data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
  490. data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
  491. data/third_party/boringssl-with-bazel/err_data.c +340 -336
  492. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
  493. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
  494. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +46 -7
  495. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +8 -2
  496. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +90 -63
  497. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +60 -60
  498. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +179 -47
  499. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +10 -0
  501. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
  502. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +14 -14
  503. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
  504. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
  505. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +7 -5
  506. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -2
  507. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
  508. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
  509. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
  510. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
  511. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +55 -1
  512. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
  513. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +31 -23
  514. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +435 -394
  515. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
  516. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
  517. data/third_party/boringssl-with-bazel/src/ssl/internal.h +36 -1
  518. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +42 -1
  519. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +67 -0
  520. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +11 -14
  521. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +216 -11
  522. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +53 -11
  523. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +133 -39
  524. data/third_party/upb/upb/def.c +2169 -0
  525. data/third_party/upb/upb/def.h +330 -0
  526. data/third_party/upb/upb/def.hpp +525 -0
  527. data/third_party/upb/upb/reflection.c +391 -0
  528. data/third_party/upb/upb/reflection.h +168 -0
  529. data/third_party/upb/upb/text_encode.c +398 -0
  530. data/third_party/upb/upb/text_encode.h +35 -0
  531. metadata +227 -37
  532. data/src/core/ext/filters/client_channel/lb_policy/xds/eds_drop.cc +0 -571
  533. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
@@ -23,13 +23,14 @@
23
23
 
24
24
  #include "src/core/lib/gprpp/sync.h"
25
25
  #include "src/core/lib/security/context/security_context.h"
26
+ #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h"
26
27
  #include "src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h"
27
28
 
28
29
  #define GRPC_TLS_TRANSPORT_SECURITY_TYPE "tls"
29
30
 
30
31
  namespace grpc_core {
31
32
 
32
- // TLS channel security connector.
33
+ // Channel security connector using TLS as transport security protocol.
33
34
  class TlsChannelSecurityConnector final
34
35
  : public grpc_channel_security_connector {
35
36
  public:
@@ -37,14 +38,18 @@ class TlsChannelSecurityConnector final
37
38
  static grpc_core::RefCountedPtr<grpc_channel_security_connector>
38
39
  CreateTlsChannelSecurityConnector(
39
40
  grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
41
+ grpc_core::RefCountedPtr<grpc_tls_credentials_options> options,
40
42
  grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
41
43
  const char* target_name, const char* overridden_target_name,
42
44
  tsi_ssl_session_cache* ssl_session_cache);
43
45
 
44
46
  TlsChannelSecurityConnector(
45
47
  grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
48
+ grpc_core::RefCountedPtr<grpc_tls_credentials_options> options,
46
49
  grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
47
- const char* target_name, const char* overridden_target_name);
50
+ const char* target_name, const char* overridden_target_name,
51
+ tsi_ssl_session_cache* ssl_session_cache);
52
+
48
53
  ~TlsChannelSecurityConnector() override;
49
54
 
50
55
  void add_handshakers(const grpc_channel_args* args,
@@ -64,15 +69,45 @@ class TlsChannelSecurityConnector final
64
69
  void cancel_check_call_host(grpc_closure* on_call_host_checked,
65
70
  grpc_error* error) override;
66
71
 
67
- private:
68
- // Initialize SSL TSI client handshaker factory.
69
- grpc_security_status InitializeHandshakerFactory(
70
- tsi_ssl_session_cache* ssl_session_cache);
72
+ tsi_ssl_client_handshaker_factory* ClientHandshakerFactoryForTesting() {
73
+ grpc_core::MutexLock lock(&mu_);
74
+ return client_handshaker_factory_;
75
+ };
71
76
 
72
- // A util function to create a new client handshaker factory to replace
73
- // the existing one if exists.
74
- grpc_security_status ReplaceHandshakerFactory(
75
- tsi_ssl_session_cache* ssl_session_cache);
77
+ const absl::optional<absl::string_view>& RootCertsForTesting() {
78
+ grpc_core::MutexLock lock(&mu_);
79
+ return pem_root_certs_;
80
+ }
81
+
82
+ const absl::optional<grpc_core::PemKeyCertPairList>&
83
+ KeyCertPairListForTesting() {
84
+ grpc_core::MutexLock lock(&mu_);
85
+ return pem_key_cert_pair_list_;
86
+ }
87
+
88
+ private:
89
+ // A watcher that watches certificate updates from
90
+ // grpc_tls_certificate_distributor. It will never outlive
91
+ // |security_connector_|.
92
+ class TlsChannelCertificateWatcher : public grpc_tls_certificate_distributor::
93
+ TlsCertificatesWatcherInterface {
94
+ public:
95
+ explicit TlsChannelCertificateWatcher(
96
+ TlsChannelSecurityConnector* security_connector)
97
+ : security_connector_(security_connector) {}
98
+ void OnCertificatesChanged(
99
+ absl::optional<absl::string_view> root_certs,
100
+ absl::optional<grpc_core::PemKeyCertPairList> key_cert_pairs) override;
101
+ void OnError(grpc_error* root_cert_error,
102
+ grpc_error* identity_cert_error) override;
103
+
104
+ private:
105
+ TlsChannelSecurityConnector* security_connector_ = nullptr;
106
+ };
107
+
108
+ // Updates |client_handshaker_factory_| when the certificates that
109
+ // |certificate_watcher_| is watching get updated.
110
+ grpc_security_status UpdateHandshakerFactoryLocked();
76
111
 
77
112
  // gRPC-provided callback executed by application, which servers to bring the
78
113
  // control back to gRPC core.
@@ -91,29 +126,32 @@ class TlsChannelSecurityConnector final
91
126
  static void ServerAuthorizationCheckArgDestroy(
92
127
  grpc_tls_server_authorization_check_arg* arg);
93
128
 
94
- // A util function to refresh SSL TSI client handshaker factory with a valid
95
- // credential.
96
- grpc_security_status RefreshHandshakerFactory();
97
-
98
129
  grpc_core::Mutex mu_;
99
- grpc_closure* on_peer_checked_;
130
+ grpc_core::RefCountedPtr<grpc_tls_credentials_options> options_;
131
+ grpc_tls_certificate_distributor::TlsCertificatesWatcherInterface*
132
+ certificate_watcher_ = nullptr;
133
+ grpc_closure* on_peer_checked_ = nullptr;
100
134
  std::string target_name_;
101
135
  std::string overridden_target_name_;
102
136
  tsi_ssl_client_handshaker_factory* client_handshaker_factory_ = nullptr;
103
- grpc_tls_server_authorization_check_arg* check_arg_;
104
- grpc_core::RefCountedPtr<grpc_tls_key_materials_config> key_materials_config_;
137
+ grpc_tls_server_authorization_check_arg* check_arg_ = nullptr;
138
+ tsi_ssl_session_cache* ssl_session_cache_ = nullptr;
139
+ absl::optional<absl::string_view> pem_root_certs_;
140
+ absl::optional<grpc_core::PemKeyCertPairList> pem_key_cert_pair_list_;
105
141
  };
106
142
 
107
- // TLS server security connector.
143
+ // Server security connector using TLS as transport security protocol.
108
144
  class TlsServerSecurityConnector final : public grpc_server_security_connector {
109
145
  public:
110
146
  // static factory method to create a TLS server security connector.
111
147
  static grpc_core::RefCountedPtr<grpc_server_security_connector>
112
148
  CreateTlsServerSecurityConnector(
113
- grpc_core::RefCountedPtr<grpc_server_credentials> server_creds);
149
+ grpc_core::RefCountedPtr<grpc_server_credentials> server_creds,
150
+ grpc_core::RefCountedPtr<grpc_tls_credentials_options> options);
114
151
 
115
- explicit TlsServerSecurityConnector(
116
- grpc_core::RefCountedPtr<grpc_server_credentials> server_creds);
152
+ TlsServerSecurityConnector(
153
+ grpc_core::RefCountedPtr<grpc_server_credentials> server_creds,
154
+ grpc_core::RefCountedPtr<grpc_tls_credentials_options> options);
117
155
  ~TlsServerSecurityConnector() override;
118
156
 
119
157
  void add_handshakers(const grpc_channel_args* args,
@@ -126,58 +164,65 @@ class TlsServerSecurityConnector final : public grpc_server_security_connector {
126
164
 
127
165
  int cmp(const grpc_security_connector* other) const override;
128
166
 
129
- private:
130
- // Initialize SSL TSI server handshaker factory.
131
- grpc_security_status InitializeHandshakerFactory();
167
+ tsi_ssl_server_handshaker_factory* ServerHandshakerFactoryForTesting() {
168
+ grpc_core::MutexLock lock(&mu_);
169
+ return server_handshaker_factory_;
170
+ };
132
171
 
133
- // A util function to create a new server handshaker factory to replace the
134
- // existing once if exists.
135
- grpc_security_status ReplaceHandshakerFactory();
172
+ const absl::optional<absl::string_view>& RootCertsForTesting() {
173
+ grpc_core::MutexLock lock(&mu_);
174
+ return pem_root_certs_;
175
+ }
136
176
 
137
- // A util function to refresh SSL TSI server handshaker factory with a valid
138
- // credential.
139
- grpc_security_status RefreshHandshakerFactory();
177
+ const absl::optional<grpc_core::PemKeyCertPairList>&
178
+ KeyCertPairListForTesting() {
179
+ grpc_core::MutexLock lock(&mu_);
180
+ return pem_key_cert_pair_list_;
181
+ }
182
+
183
+ private:
184
+ // A watcher that watches certificate updates from
185
+ // grpc_tls_certificate_distributor. It will never outlive
186
+ // |security_connector_|.
187
+ class TlsServerCertificateWatcher : public grpc_tls_certificate_distributor::
188
+ TlsCertificatesWatcherInterface {
189
+ public:
190
+ explicit TlsServerCertificateWatcher(
191
+ TlsServerSecurityConnector* security_connector)
192
+ : security_connector_(security_connector) {}
193
+ void OnCertificatesChanged(
194
+ absl::optional<absl::string_view> root_certs,
195
+ absl::optional<grpc_core::PemKeyCertPairList> key_cert_pairs) override;
196
+ void OnError(grpc_error* root_cert_error,
197
+ grpc_error* identity_cert_error) override;
198
+
199
+ private:
200
+ TlsServerSecurityConnector* security_connector_ = nullptr;
201
+ };
202
+
203
+ // Updates |server_handshaker_factory_| when the certificates that
204
+ // |certificate_watcher_| is watching get updated.
205
+ grpc_security_status UpdateHandshakerFactoryLocked();
140
206
 
141
207
  grpc_core::Mutex mu_;
208
+ grpc_core::RefCountedPtr<grpc_tls_credentials_options> options_;
209
+ grpc_tls_certificate_distributor::TlsCertificatesWatcherInterface*
210
+ certificate_watcher_ = nullptr;
211
+
142
212
  tsi_ssl_server_handshaker_factory* server_handshaker_factory_ = nullptr;
143
- grpc_core::RefCountedPtr<grpc_tls_key_materials_config> key_materials_config_;
213
+ absl::optional<absl::string_view> pem_root_certs_;
214
+ absl::optional<grpc_core::PemKeyCertPairList> pem_key_cert_pair_list_;
144
215
  };
145
216
 
146
217
  // ---- Functions below are exposed for testing only -----------------------
147
-
148
- /** The |TlsFetchKeyMaterials| API ensures that |key_materials_config| has a
149
- * non-empty pem-key-cert pair list. This is done as follows:
150
- * - if |options| is equipped with a credential reload config, then this
151
- * methods uses credential reloading to populate |key_materials_config|, and
152
- * afterwards it populates |reload_status| with the status of this operation.
153
- * In particular, any data stored in |key_materials_config| is overwritten.
154
- * - if |options| has no credential reload config, then:
155
- * - if |key_materials_config| already has a non-empty pem-key-cert pair
156
- * list or is called by a client, then the method returns |GRPC_STATUS_OK|.
157
- * - if |key_materials_config| has an empty pem-key-cert pair list and is
158
- * called by a server, then the method return an error code.
159
- *
160
- * The arguments are detailed below:
161
- * - key_materials_config: a key materials config that will be populated by the
162
- * method on success; the caller should not pass in nullptr. Any data held by
163
- * the config will be overwritten.
164
- * - options: the TLS credentials options whose credential reloading config
165
- * will be used to populate |key_materials_config|.
166
- * - is_server: true denotes that this method is called by a server, and
167
- * false denotes that this method is called by a client.
168
- * - status: the status of the credential reloading after the method
169
- * returns; the caller should not pass in nullptr. **/
170
- grpc_status_code TlsFetchKeyMaterials(
171
- const grpc_core::RefCountedPtr<grpc_tls_key_materials_config>&
172
- key_materials_config,
173
- const grpc_tls_credentials_options& options, bool is_server,
174
- grpc_ssl_certificate_config_reload_status* status);
218
+ namespace internal {
175
219
 
176
220
  // TlsCheckHostName checks if |peer_name| matches the identity information
177
221
  // contained in |peer|. This is AKA hostname check.
178
222
  grpc_error* TlsCheckHostName(const char* peer_name, const tsi_peer* peer);
179
223
 
224
+ } // namespace internal
225
+
180
226
  } // namespace grpc_core
181
227
 
182
- #endif /* GRPC_CORE_LIB_SECURITY_SECURITY_CONNECTOR_TLS_TLS_SECURITY_CONNECTOR_H \
183
- */
228
+ #endif // GRPC_CORE_LIB_SECURITY_SECURITY_CONNECTOR_TLS_TLS_SECURITY_CONNECTOR_H
@@ -499,7 +499,7 @@ class FailHandshaker : public Handshaker {
499
499
  }
500
500
 
501
501
  private:
502
- virtual ~FailHandshaker() = default;
502
+ ~FailHandshaker() override = default;
503
503
  };
504
504
 
505
505
  //
@@ -123,8 +123,9 @@ static grpc_filtered_mdelem remove_consumed_md(void* user_data,
123
123
  for (i = 0; i < calld->num_consumed_md; i++) {
124
124
  const grpc_metadata* consumed_md = &calld->consumed_md[i];
125
125
  if (grpc_slice_eq(GRPC_MDKEY(md), consumed_md->key) &&
126
- grpc_slice_eq(GRPC_MDVALUE(md), consumed_md->value))
126
+ grpc_slice_eq(GRPC_MDVALUE(md), consumed_md->value)) {
127
127
  return GRPC_FILTERED_REMOVE();
128
+ }
128
129
  }
129
130
  return GRPC_FILTERED_MDELEM(md);
130
131
  }
@@ -30,6 +30,7 @@
30
30
  #define GRPC_AUTH_JSON_TYPE_INVALID "invalid"
31
31
  #define GRPC_AUTH_JSON_TYPE_SERVICE_ACCOUNT "service_account"
32
32
  #define GRPC_AUTH_JSON_TYPE_AUTHORIZED_USER "authorized_user"
33
+ #define GRPC_AUTH_JSON_TYPE_EXTERNAL_ACCOUNT "external_account"
33
34
 
34
35
  // Gets a child property from a json node.
35
36
  const char* grpc_json_get_string_property(const grpc_core::Json& json,
@@ -555,8 +555,9 @@ int grpc_slice_buf_start_eq(grpc_slice a, const void* b, size_t len) {
555
555
  int grpc_slice_rchr(grpc_slice s, char c) {
556
556
  const char* b = reinterpret_cast<const char*> GRPC_SLICE_START_PTR(s);
557
557
  int i;
558
- for (i = static_cast<int> GRPC_SLICE_LENGTH(s) - 1; i != -1 && b[i] != c; i--)
559
- ;
558
+ for (i = static_cast<int> GRPC_SLICE_LENGTH(s) - 1; i != -1 && b[i] != c;
559
+ i--) {
560
+ }
560
561
  return i;
561
562
  }
562
563
 
@@ -574,10 +575,12 @@ int grpc_slice_slice(grpc_slice haystack, grpc_slice needle) {
574
575
 
575
576
  if (haystack_len == 0 || needle_len == 0) return -1;
576
577
  if (haystack_len < needle_len) return -1;
577
- if (haystack_len == needle_len)
578
+ if (haystack_len == needle_len) {
578
579
  return grpc_slice_eq(haystack, needle) ? 0 : -1;
579
- if (needle_len == 1)
580
+ }
581
+ if (needle_len == 1) {
580
582
  return grpc_slice_chr(haystack, static_cast<char>(*needle_bytes));
583
+ }
581
584
 
582
585
  const uint8_t* last = haystack_bytes + haystack_len - needle_len;
583
586
  for (const uint8_t* cur = haystack_bytes; cur != last; ++cur) {
@@ -106,8 +106,9 @@ uint8_t* grpc_slice_buffer_tiny_add(grpc_slice_buffer* sb, size_t n) {
106
106
  if (sb->count == 0) goto add_first;
107
107
  back = &sb->slices[sb->count - 1];
108
108
  if (back->refcount) goto add_new;
109
- if ((back->data.inlined.length + n) > sizeof(back->data.inlined.bytes))
109
+ if ((back->data.inlined.length + n) > sizeof(back->data.inlined.bytes)) {
110
110
  goto add_new;
111
+ }
111
112
  out = back->data.inlined.bytes + back->data.inlined.length;
112
113
  back->data.inlined.length =
113
114
  static_cast<uint8_t>(back->data.inlined.length + n);
@@ -74,8 +74,8 @@ InternedSliceRefcount::~InternedSliceRefcount() {
74
74
  InternedSliceRefcount* cur;
75
75
  for (prev_next = &shard->strs[TABLE_IDX(this->hash, shard->capacity)],
76
76
  cur = *prev_next;
77
- cur != this; prev_next = &cur->bucket_next, cur = cur->bucket_next)
78
- ;
77
+ cur != this; prev_next = &cur->bucket_next, cur = cur->bucket_next) {
78
+ }
79
79
  *prev_next = cur->bucket_next;
80
80
  shard->count--;
81
81
  }
@@ -298,8 +298,9 @@ static void post_batch_completion(batch_control* bctl);
298
298
 
299
299
  static void add_init_error(grpc_error** composite, grpc_error* new_err) {
300
300
  if (new_err == GRPC_ERROR_NONE) return;
301
- if (*composite == GRPC_ERROR_NONE)
301
+ if (*composite == GRPC_ERROR_NONE) {
302
302
  *composite = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Call creation failed");
303
+ }
303
304
  *composite = grpc_error_add_child(*composite, new_err);
304
305
  }
305
306
 
@@ -412,7 +413,7 @@ grpc_error* grpc_call_create(const grpc_call_create_args* args,
412
413
  "without Census tracing propagation"));
413
414
  }
414
415
  if (args->propagation_mask & GRPC_PROPAGATE_CANCELLATION) {
415
- call->cancellation_is_inherited = 1;
416
+ call->cancellation_is_inherited = true;
416
417
  if (gpr_atm_acq_load(&args->parent->received_final_op_atm)) {
417
418
  immediately_cancel = true;
418
419
  }
@@ -595,7 +596,7 @@ void grpc_call_unref(grpc_call* c) {
595
596
  }
596
597
 
597
598
  GPR_ASSERT(!c->destroy_called);
598
- c->destroy_called = 1;
599
+ c->destroy_called = true;
599
600
  bool cancel = gpr_atm_acq_load(&c->any_ops_sent_atm) != 0 &&
600
601
  gpr_atm_acq_load(&c->received_final_op_atm) == 0;
601
602
  if (cancel) {
@@ -811,7 +812,7 @@ uint32_t grpc_call_test_only_get_message_flags(grpc_call* call) {
811
812
  return flags;
812
813
  }
813
814
 
814
- static void destroy_encodings_accepted_by_peer(void* /*p*/) { return; }
815
+ static void destroy_encodings_accepted_by_peer(void* /*p*/) {}
815
816
 
816
817
  static void set_encodings_accepted_by_peer(grpc_call* /*call*/,
817
818
  grpc_mdelem mdel,
@@ -1253,7 +1254,7 @@ static void continue_receiving_slices(batch_control* bctl) {
1253
1254
  size_t remaining = call->receiving_stream->length() -
1254
1255
  (*call->receiving_buffer)->data.raw.slice_buffer.length;
1255
1256
  if (remaining == 0) {
1256
- call->receiving_message = 0;
1257
+ call->receiving_message = false;
1257
1258
  call->receiving_stream.reset();
1258
1259
  finish_batch_step(bctl);
1259
1260
  return;
@@ -1267,7 +1268,7 @@ static void continue_receiving_slices(batch_control* bctl) {
1267
1268
  call->receiving_stream.reset();
1268
1269
  grpc_byte_buffer_destroy(*call->receiving_buffer);
1269
1270
  *call->receiving_buffer = nullptr;
1270
- call->receiving_message = 0;
1271
+ call->receiving_message = false;
1271
1272
  finish_batch_step(bctl);
1272
1273
  GRPC_ERROR_UNREF(error);
1273
1274
  return;
@@ -1303,7 +1304,7 @@ static void receiving_slice_ready(void* bctlp, grpc_error* error) {
1303
1304
  call->receiving_stream.reset();
1304
1305
  grpc_byte_buffer_destroy(*call->receiving_buffer);
1305
1306
  *call->receiving_buffer = nullptr;
1306
- call->receiving_message = 0;
1307
+ call->receiving_message = false;
1307
1308
  finish_batch_step(bctl);
1308
1309
  if (release_error) {
1309
1310
  GRPC_ERROR_UNREF(error);
@@ -1315,7 +1316,7 @@ static void process_data_after_md(batch_control* bctl) {
1315
1316
  grpc_call* call = bctl->call;
1316
1317
  if (call->receiving_stream == nullptr) {
1317
1318
  *call->receiving_buffer = nullptr;
1318
- call->receiving_message = 0;
1319
+ call->receiving_message = false;
1319
1320
  finish_batch_step(bctl);
1320
1321
  } else {
1321
1322
  call->test_only_last_message_flags = call->receiving_stream->flags();
@@ -126,8 +126,8 @@ grpc_error* non_polling_poller_work(grpc_pollset* pollset,
126
126
  gpr_timespec deadline_ts =
127
127
  grpc_millis_to_timespec(deadline, GPR_CLOCK_MONOTONIC);
128
128
  while (!npp->shutdown && !w.kicked &&
129
- !gpr_cv_wait(&w.cv, &npp->mu, deadline_ts))
130
- ;
129
+ !gpr_cv_wait(&w.cv, &npp->mu, deadline_ts)) {
130
+ }
131
131
  grpc_core::ExecCtx::Get()->InvalidateNow();
132
132
  if (&w == npp->root) {
133
133
  npp->root = w.next;
@@ -148,8 +148,9 @@ grpc_error* non_polling_poller_work(grpc_pollset* pollset,
148
148
  grpc_error* non_polling_poller_kick(grpc_pollset* pollset,
149
149
  grpc_pollset_worker* specific_worker) {
150
150
  non_polling_poller* p = reinterpret_cast<non_polling_poller*>(pollset);
151
- if (specific_worker == nullptr)
151
+ if (specific_worker == nullptr) {
152
152
  specific_worker = reinterpret_cast<grpc_pollset_worker*>(p->root);
153
+ }
153
154
  if (specific_worker != nullptr) {
154
155
  non_polling_worker* w =
155
156
  reinterpret_cast<non_polling_worker*>(specific_worker);
@@ -422,9 +423,9 @@ static const cq_vtable g_cq_vtable[] = {
422
423
  cq_end_op_for_callback, nullptr, nullptr},
423
424
  };
424
425
 
425
- #define DATA_FROM_CQ(cq) ((void*)(cq + 1))
426
+ #define DATA_FROM_CQ(cq) ((void*)((cq) + 1))
426
427
  #define POLLSET_FROM_CQ(cq) \
427
- ((grpc_pollset*)(cq->vtable->data_size + (char*)DATA_FROM_CQ(cq)))
428
+ ((grpc_pollset*)((cq)->vtable->data_size + (char*)DATA_FROM_CQ(cq)))
428
429
 
429
430
  grpc_core::TraceFlag grpc_cq_pluck_trace(false, "queue_pluck");
430
431
 
@@ -1329,7 +1330,7 @@ static void cq_finish_shutdown_pluck(grpc_completion_queue* cq) {
1329
1330
 
1330
1331
  GPR_ASSERT(cqd->shutdown_called);
1331
1332
  GPR_ASSERT(!cqd->shutdown.Load(grpc_core::MemoryOrder::RELAXED));
1332
- cqd->shutdown.Store(1, grpc_core::MemoryOrder::RELAXED);
1333
+ cqd->shutdown.Store(true, grpc_core::MemoryOrder::RELAXED);
1333
1334
 
1334
1335
  cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
1335
1336
  }
@@ -30,6 +30,7 @@
30
30
  #include <utility>
31
31
  #include <vector>
32
32
 
33
+ #include "absl/memory/memory.h"
33
34
  #include "absl/types/optional.h"
34
35
 
35
36
  #include <grpc/support/alloc.h>
@@ -936,7 +937,7 @@ class Server::ChannelData::ConnectivityWatcher
936
937
  GRPC_CHANNEL_INTERNAL_REF(chand_->channel_, "connectivity");
937
938
  }
938
939
 
939
- ~ConnectivityWatcher() {
940
+ ~ConnectivityWatcher() override {
940
941
  GRPC_CHANNEL_INTERNAL_UNREF(chand_->channel_, "connectivity");
941
942
  }
942
943
 
@@ -1000,7 +1001,8 @@ void Server::ChannelData::InitTransport(RefCountedPtr<Server> server,
1000
1001
  if (num_registered_methods > 0) {
1001
1002
  uint32_t max_probes = 0;
1002
1003
  size_t slots = 2 * num_registered_methods;
1003
- registered_methods_.reset(new std::vector<ChannelRegisteredMethod>(slots));
1004
+ registered_methods_ =
1005
+ absl::make_unique<std::vector<ChannelRegisteredMethod>>(slots);
1004
1006
  for (std::unique_ptr<RegisteredMethod>& rm : server_->registered_methods_) {
1005
1007
  ExternallyManagedSlice host;
1006
1008
  ExternallyManagedSlice method(rm->method.c_str());