grpc 1.34.0 → 1.35.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (458) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +808 -2787
  3. data/etc/roots.pem +257 -573
  4. data/include/grpc/compression.h +1 -1
  5. data/include/grpc/grpc.h +14 -0
  6. data/include/grpc/grpc_security.h +61 -3
  7. data/include/grpc/impl/codegen/atm_windows.h +4 -0
  8. data/include/grpc/impl/codegen/byte_buffer.h +1 -1
  9. data/include/grpc/impl/codegen/grpc_types.h +1 -1
  10. data/include/grpc/impl/codegen/log.h +0 -2
  11. data/include/grpc/impl/codegen/sync_windows.h +4 -0
  12. data/include/grpc/slice_buffer.h +3 -3
  13. data/include/grpc/support/sync.h +3 -3
  14. data/include/grpc/support/time.h +7 -7
  15. data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
  16. data/src/core/ext/filters/client_channel/client_channel.cc +2734 -1498
  17. data/src/core/ext/filters/client_channel/client_channel.h +0 -4
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  19. data/src/core/ext/filters/client_channel/config_selector.h +4 -0
  20. data/src/core/ext/filters/client_channel/dynamic_filters.cc +186 -0
  21. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  22. data/src/core/ext/filters/client_channel/health/health_check_client.cc +6 -6
  23. data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -2
  24. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +4 -5
  25. data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
  26. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy.h +2 -3
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +32 -30
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +162 -20
  32. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +0 -8
  33. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +24 -0
  34. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -2
  35. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +1 -1
  36. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1262 -0
  37. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +7 -14
  38. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
  39. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +454 -16
  41. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
  42. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -9
  43. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
  44. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +18 -31
  45. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +3 -5
  46. data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
  47. data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
  48. data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
  49. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +11 -13
  50. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +8 -8
  51. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
  52. data/src/core/ext/filters/client_channel/retry_throttle.h +3 -1
  53. data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
  54. data/src/core/ext/filters/client_channel/subchannel.cc +34 -50
  55. data/src/core/ext/filters/client_channel/subchannel.h +12 -18
  56. data/src/core/ext/filters/deadline/deadline_filter.cc +4 -2
  57. data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
  58. data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
  59. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
  60. data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
  61. data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
  62. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +20 -8
  63. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
  64. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +26 -14
  65. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +178 -86
  66. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -5
  67. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +7 -8
  68. data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -1
  69. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
  70. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
  71. data/src/core/ext/transport/chttp2/transport/writing.cc +1 -1
  72. data/src/core/ext/transport/inproc/inproc_transport.cc +42 -8
  73. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
  74. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  75. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  76. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +27 -27
  77. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +139 -40
  78. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +13 -13
  79. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +44 -17
  80. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +111 -111
  81. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +424 -241
  82. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
  83. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +13 -5
  84. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +22 -22
  85. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +47 -21
  86. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +21 -21
  87. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +88 -39
  88. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
  89. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +15 -6
  90. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +44 -44
  91. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +200 -78
  92. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +17 -17
  93. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +72 -35
  94. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
  95. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +7 -0
  96. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +7 -7
  97. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +27 -11
  98. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +30 -30
  99. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +136 -49
  100. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +39 -39
  101. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +157 -89
  102. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
  103. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +17 -9
  104. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +47 -47
  105. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +163 -78
  106. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
  107. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +7 -0
  108. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +2 -2
  109. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +9 -2
  110. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
  111. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +7 -0
  112. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +13 -13
  113. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +59 -36
  114. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +16 -16
  115. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +61 -29
  116. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +26 -26
  117. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +101 -66
  118. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
  119. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -3
  120. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +28 -28
  121. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +122 -77
  122. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +23 -23
  123. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +106 -54
  124. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +2 -2
  125. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +13 -0
  126. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +16 -16
  127. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +81 -35
  128. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -7
  129. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +38 -22
  130. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +203 -203
  131. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +845 -495
  132. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +5 -5
  133. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +26 -6
  134. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +3 -3
  135. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +17 -3
  136. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +87 -87
  137. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +343 -204
  138. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -0
  139. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +20 -20
  140. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +85 -46
  141. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +7 -7
  142. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +33 -11
  143. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +32 -32
  144. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +118 -67
  145. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +1 -1
  146. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +7 -0
  147. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
  148. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +7 -0
  149. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +29 -29
  150. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +120 -82
  151. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +1 -1
  152. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +7 -0
  153. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +1 -1
  154. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +7 -0
  155. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +7 -7
  156. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +31 -16
  157. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +1 -1
  158. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +7 -0
  159. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +1 -1
  160. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +7 -0
  161. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +5 -5
  162. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -11
  163. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
  164. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +7 -0
  165. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
  166. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +7 -0
  167. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +6 -6
  168. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +29 -8
  169. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +2 -2
  170. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +16 -3
  171. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
  172. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +19 -0
  173. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
  174. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +46 -3
  175. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +8 -8
  176. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +41 -8
  177. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -0
  178. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +3 -3
  179. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +15 -2
  180. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +3 -3
  181. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +19 -0
  182. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
  183. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +7 -0
  184. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
  185. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +34 -34
  186. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +149 -72
  187. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +34 -34
  188. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +142 -59
  189. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  190. data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
  191. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  192. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
  193. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +90 -90
  194. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
  195. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  196. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
  197. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  198. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
  199. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
  200. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +22 -3
  201. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  202. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
  203. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
  204. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
  205. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  206. data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
  207. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
  208. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
  209. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
  210. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
  211. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
  212. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
  213. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  214. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +13 -0
  215. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
  216. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
  217. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  218. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
  219. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
  220. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
  221. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
  222. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
  223. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
  224. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
  225. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
  226. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +1 -1
  227. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +7 -0
  228. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +5 -5
  229. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +21 -7
  230. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +2 -2
  231. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +7 -0
  232. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +4 -4
  233. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +17 -8
  234. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +7 -7
  235. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +31 -18
  236. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +5 -5
  237. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +19 -11
  238. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
  239. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
  240. data/src/core/ext/upb-generated/validate/validate.upb.c +64 -64
  241. data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
  242. data/src/core/ext/xds/certificate_provider_store.cc +10 -7
  243. data/src/core/ext/xds/certificate_provider_store.h +12 -7
  244. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +25 -0
  245. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +1 -4
  246. data/src/core/ext/xds/xds_api.cc +220 -31
  247. data/src/core/ext/xds/xds_api.h +41 -10
  248. data/src/core/ext/xds/xds_bootstrap.h +0 -1
  249. data/src/core/ext/xds/xds_certificate_provider.cc +61 -2
  250. data/src/core/ext/xds/xds_certificate_provider.h +40 -2
  251. data/src/core/ext/xds/xds_client.cc +31 -29
  252. data/src/core/ext/xds/xds_client.h +6 -1
  253. data/src/core/ext/xds/xds_client_stats.cc +2 -2
  254. data/src/core/ext/xds/xds_server_config_fetcher.cc +131 -0
  255. data/src/core/lib/channel/channel_args.cc +8 -8
  256. data/src/core/lib/channel/channel_trace.h +1 -1
  257. data/src/core/lib/channel/channelz.cc +13 -14
  258. data/src/core/lib/channel/channelz.h +0 -1
  259. data/src/core/lib/channel/channelz_registry.h +0 -1
  260. data/src/core/lib/channel/handshaker.cc +2 -2
  261. data/src/core/lib/compression/compression_args.cc +3 -2
  262. data/src/core/lib/debug/stats.h +2 -2
  263. data/src/core/lib/debug/stats_data.h +13 -13
  264. data/src/core/lib/gpr/alloc.cc +3 -2
  265. data/src/core/lib/gpr/log.cc +53 -16
  266. data/src/core/lib/gpr/log_linux.cc +3 -1
  267. data/src/core/lib/gpr/log_posix.cc +3 -1
  268. data/src/core/lib/gpr/log_windows.cc +3 -1
  269. data/src/core/lib/gpr/spinlock.h +10 -2
  270. data/src/core/lib/gpr/string.cc +22 -21
  271. data/src/core/lib/gpr/string.h +5 -6
  272. data/src/core/lib/gpr/sync.cc +4 -4
  273. data/src/core/lib/gpr/time.cc +12 -12
  274. data/src/core/lib/gprpp/arena.h +3 -2
  275. data/src/core/lib/gprpp/ref_counted.h +2 -2
  276. data/src/core/lib/gprpp/ref_counted_ptr.h +9 -1
  277. data/src/core/lib/gprpp/thd_posix.cc +6 -1
  278. data/src/core/lib/gprpp/thd_windows.cc +3 -1
  279. data/src/core/lib/http/httpcli.cc +1 -1
  280. data/src/core/lib/http/httpcli.h +2 -3
  281. data/src/core/lib/http/httpcli_security_connector.cc +1 -1
  282. data/src/core/lib/http/parser.cc +1 -2
  283. data/src/core/lib/iomgr/call_combiner.cc +8 -5
  284. data/src/core/lib/iomgr/combiner.cc +2 -1
  285. data/src/core/lib/iomgr/endpoint.h +1 -1
  286. data/src/core/lib/iomgr/error.cc +15 -11
  287. data/src/core/lib/iomgr/error_internal.h +1 -1
  288. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -13
  289. data/src/core/lib/iomgr/ev_epollex_linux.cc +17 -13
  290. data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
  291. data/src/core/lib/iomgr/exec_ctx.h +6 -4
  292. data/src/core/lib/iomgr/executor.cc +2 -1
  293. data/src/core/lib/iomgr/executor.h +1 -1
  294. data/src/core/lib/iomgr/executor/threadpool.h +1 -1
  295. data/src/core/lib/iomgr/iomgr.cc +1 -1
  296. data/src/core/lib/iomgr/load_file.h +1 -1
  297. data/src/core/lib/iomgr/lockfree_event.cc +19 -14
  298. data/src/core/lib/iomgr/lockfree_event.h +2 -2
  299. data/src/core/lib/iomgr/parse_address.cc +52 -46
  300. data/src/core/lib/iomgr/parse_address.h +13 -9
  301. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +1 -1
  302. data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
  303. data/src/core/lib/iomgr/python_util.h +1 -1
  304. data/src/core/lib/iomgr/resolve_address.cc +4 -4
  305. data/src/core/lib/iomgr/resource_quota.cc +4 -4
  306. data/src/core/lib/iomgr/sockaddr_utils.cc +10 -10
  307. data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
  308. data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
  309. data/src/core/lib/iomgr/socket_mutator.cc +3 -2
  310. data/src/core/lib/iomgr/tcp_client.cc +3 -3
  311. data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
  312. data/src/core/lib/iomgr/tcp_custom.cc +22 -17
  313. data/src/core/lib/iomgr/tcp_posix.cc +9 -6
  314. data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
  315. data/src/core/lib/iomgr/timer_custom.cc +3 -3
  316. data/src/core/lib/iomgr/timer_generic.cc +3 -3
  317. data/src/core/lib/iomgr/timer_manager.cc +2 -2
  318. data/src/core/lib/iomgr/udp_server.cc +1 -2
  319. data/src/core/lib/iomgr/udp_server.h +1 -2
  320. data/src/core/lib/iomgr/unix_sockets_posix.cc +17 -18
  321. data/src/core/lib/json/json.h +10 -0
  322. data/src/core/lib/security/authorization/evaluate_args.cc +5 -10
  323. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  324. data/src/core/lib/security/context/security_context.cc +4 -3
  325. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  326. data/src/core/lib/security/credentials/credentials.cc +6 -6
  327. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
  328. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
  329. data/src/core/lib/security/credentials/external/aws_request_signer.cc +15 -10
  330. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -2
  331. data/src/core/lib/security/credentials/external/external_account_credentials.cc +217 -31
  332. data/src/core/lib/security/credentials/external/external_account_credentials.h +7 -5
  333. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
  334. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +3 -4
  335. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +20 -18
  336. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +5 -6
  337. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -1
  338. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +18 -12
  339. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +18 -5
  340. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  341. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +3 -3
  342. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +37 -44
  343. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
  344. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
  345. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -5
  346. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  347. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +1 -6
  348. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +1 -6
  349. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +326 -5
  350. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +64 -0
  351. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +1 -1
  352. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +0 -1
  353. data/src/core/lib/security/credentials/tls/tls_credentials.cc +1 -1
  354. data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
  355. data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
  356. data/src/core/lib/security/credentials/xds/xds_credentials.cc +140 -10
  357. data/src/core/lib/security/credentials/xds/xds_credentials.h +27 -9
  358. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
  359. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -1
  360. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +46 -13
  361. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +23 -6
  362. data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
  363. data/src/core/lib/security/security_connector/security_connector.cc +3 -2
  364. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
  365. data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
  366. data/src/core/lib/security/security_connector/ssl_utils.h +12 -19
  367. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +57 -12
  368. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +2 -3
  369. data/src/core/lib/security/transport/secure_endpoint.cc +2 -2
  370. data/src/core/lib/security/transport/security_handshaker.cc +2 -2
  371. data/src/core/lib/slice/slice_intern.cc +4 -5
  372. data/src/core/lib/slice/slice_internal.h +2 -2
  373. data/src/core/lib/surface/call.cc +32 -24
  374. data/src/core/lib/surface/call_details.cc +8 -8
  375. data/src/core/lib/surface/channel.cc +16 -10
  376. data/src/core/lib/surface/channel.h +3 -2
  377. data/src/core/lib/surface/channel_init.cc +1 -1
  378. data/src/core/lib/surface/completion_queue.cc +23 -18
  379. data/src/core/lib/surface/completion_queue.h +16 -16
  380. data/src/core/lib/surface/init.cc +6 -5
  381. data/src/core/lib/surface/lame_client.cc +20 -46
  382. data/src/core/lib/surface/lame_client.h +4 -0
  383. data/src/core/lib/surface/server.cc +59 -15
  384. data/src/core/lib/surface/server.h +37 -5
  385. data/src/core/lib/surface/version.cc +1 -1
  386. data/src/core/lib/transport/authority_override.cc +6 -4
  387. data/src/core/lib/transport/authority_override.h +5 -2
  388. data/src/core/lib/transport/connectivity_state.h +6 -4
  389. data/src/core/lib/transport/error_utils.h +1 -1
  390. data/src/core/lib/transport/metadata_batch.h +4 -4
  391. data/src/core/lib/transport/static_metadata.cc +1 -1
  392. data/src/core/lib/transport/status_metadata.cc +4 -3
  393. data/src/core/lib/transport/transport.h +7 -7
  394. data/src/core/lib/uri/uri_parser.cc +131 -249
  395. data/src/core/lib/uri/uri_parser.h +57 -21
  396. data/src/core/plugin_registry/grpc_plugin_registry.cc +10 -4
  397. data/src/core/tsi/alts/crypt/gsec.cc +5 -4
  398. data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
  399. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  400. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +23 -23
  401. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
  402. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
  403. data/src/core/tsi/fake_transport_security.cc +5 -3
  404. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  405. data/src/core/tsi/ssl_transport_security.cc +62 -49
  406. data/src/core/tsi/ssl_transport_security.h +6 -6
  407. data/src/core/tsi/transport_security.cc +6 -6
  408. data/src/core/tsi/transport_security_interface.h +1 -1
  409. data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
  410. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +12 -0
  411. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +31 -13
  412. data/src/ruby/lib/grpc/version.rb +1 -1
  413. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +28 -0
  414. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
  415. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
  416. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  417. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  418. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
  419. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  420. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  421. data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
  422. data/third_party/upb/upb/decode.c +248 -167
  423. data/third_party/upb/upb/decode.h +20 -1
  424. data/third_party/upb/upb/decode.int.h +163 -0
  425. data/third_party/upb/upb/decode_fast.c +1040 -0
  426. data/third_party/upb/upb/decode_fast.h +126 -0
  427. data/third_party/upb/upb/def.c +525 -516
  428. data/third_party/upb/upb/def.h +16 -31
  429. data/third_party/upb/upb/def.hpp +37 -123
  430. data/third_party/upb/upb/encode.c +227 -169
  431. data/third_party/upb/upb/encode.h +27 -2
  432. data/third_party/upb/upb/json_decode.c +1443 -0
  433. data/third_party/upb/upb/json_decode.h +23 -0
  434. data/third_party/upb/upb/json_encode.c +713 -0
  435. data/third_party/upb/upb/json_encode.h +36 -0
  436. data/third_party/upb/upb/msg.c +167 -88
  437. data/third_party/upb/upb/msg.h +174 -34
  438. data/third_party/upb/upb/port_def.inc +74 -61
  439. data/third_party/upb/upb/port_undef.inc +3 -7
  440. data/third_party/upb/upb/reflection.c +36 -19
  441. data/third_party/upb/upb/table.c +34 -197
  442. data/third_party/upb/upb/table.int.h +14 -5
  443. data/third_party/upb/upb/text_encode.c +45 -22
  444. data/third_party/upb/upb/text_encode.h +4 -1
  445. data/third_party/upb/upb/upb.c +18 -41
  446. data/third_party/upb/upb/upb.h +36 -7
  447. data/third_party/upb/upb/upb.hpp +4 -4
  448. data/third_party/upb/upb/upb.int.h +29 -0
  449. metadata +60 -46
  450. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -909
  451. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
  452. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
  453. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -355
  454. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -138
  455. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +0 -265
  456. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +0 -104
  457. data/src/core/lib/gprpp/map.h +0 -53
  458. data/third_party/upb/upb/port.c +0 -26
@@ -176,7 +176,7 @@ namespace grpc_core {
176
176
  struct StaticSliceRefcount {
177
177
  static grpc_slice_refcount kStaticSubRefcount;
178
178
 
179
- StaticSliceRefcount(uint32_t index)
179
+ explicit StaticSliceRefcount(uint32_t index)
180
180
  : base(&kStaticSubRefcount, grpc_slice_refcount::Type::STATIC),
181
181
  index(index) {}
182
182
 
@@ -310,7 +310,7 @@ inline bool grpc_slice_static_interned_equal(const grpc_slice& a,
310
310
 
311
311
  void grpc_slice_intern_init(void);
312
312
  void grpc_slice_intern_shutdown(void);
313
- void grpc_test_only_set_slice_hash_seed(uint32_t key);
313
+ void grpc_test_only_set_slice_hash_seed(uint32_t seed);
314
314
  // if slice matches a static slice, returns the static slice
315
315
  // otherwise returns the passed in slice (without reffing it)
316
316
  // used for surface boundaries where we might receive an un-interned static
@@ -124,7 +124,7 @@ struct parent_call {
124
124
  };
125
125
 
126
126
  struct child_call {
127
- child_call(grpc_call* parent) : parent(parent) {}
127
+ explicit child_call(grpc_call* parent) : parent(parent) {}
128
128
  grpc_call* parent;
129
129
  /** siblings: children of the same parent form a list, and this list is
130
130
  protected under
@@ -284,7 +284,8 @@ grpc_core::TraceFlag grpc_compression_trace(false, "compression");
284
284
  #define CALL_FROM_TOP_ELEM(top_elem) \
285
285
  CALL_FROM_CALL_STACK(grpc_call_stack_from_top_element(top_elem))
286
286
 
287
- static void execute_batch(grpc_call* call, grpc_transport_stream_op_batch* op,
287
+ static void execute_batch(grpc_call* call,
288
+ grpc_transport_stream_op_batch* batch,
288
289
  grpc_closure* start_batch_closure);
289
290
 
290
291
  static void cancel_with_status(grpc_call* c, grpc_status_code status,
@@ -309,20 +310,24 @@ void* grpc_call_arena_alloc(grpc_call* call, size_t size) {
309
310
  }
310
311
 
311
312
  static parent_call* get_or_create_parent_call(grpc_call* call) {
312
- parent_call* p = (parent_call*)gpr_atm_acq_load(&call->parent_call_atm);
313
+ parent_call* p =
314
+ reinterpret_cast<parent_call*>(gpr_atm_acq_load(&call->parent_call_atm));
313
315
  if (p == nullptr) {
314
316
  p = call->arena->New<parent_call>();
315
- if (!gpr_atm_rel_cas(&call->parent_call_atm, (gpr_atm) nullptr,
316
- (gpr_atm)p)) {
317
+ if (!gpr_atm_rel_cas(&call->parent_call_atm,
318
+ reinterpret_cast<gpr_atm>(nullptr),
319
+ reinterpret_cast<gpr_atm>(p))) {
317
320
  p->~parent_call();
318
- p = (parent_call*)gpr_atm_acq_load(&call->parent_call_atm);
321
+ p = reinterpret_cast<parent_call*>(
322
+ gpr_atm_acq_load(&call->parent_call_atm));
319
323
  }
320
324
  }
321
325
  return p;
322
326
  }
323
327
 
324
328
  static parent_call* get_parent_call(grpc_call* call) {
325
- return (parent_call*)gpr_atm_acq_load(&call->parent_call_atm);
329
+ return reinterpret_cast<parent_call*>(
330
+ gpr_atm_acq_load(&call->parent_call_atm));
326
331
  }
327
332
 
328
333
  size_t grpc_call_get_initial_size_estimate() {
@@ -648,15 +653,16 @@ static void execute_batch(grpc_call* call,
648
653
  }
649
654
 
650
655
  char* grpc_call_get_peer(grpc_call* call) {
651
- char* peer_string = (char*)gpr_atm_acq_load(&call->peer_string);
656
+ char* peer_string =
657
+ reinterpret_cast<char*>(gpr_atm_acq_load(&call->peer_string));
652
658
  if (peer_string != nullptr) return gpr_strdup(peer_string);
653
659
  peer_string = grpc_channel_get_target(call->channel);
654
660
  if (peer_string != nullptr) return peer_string;
655
661
  return gpr_strdup("unknown");
656
662
  }
657
663
 
658
- grpc_call* grpc_call_from_top_element(grpc_call_element* elem) {
659
- return CALL_FROM_TOP_ELEM(elem);
664
+ grpc_call* grpc_call_from_top_element(grpc_call_element* surface_element) {
665
+ return CALL_FROM_TOP_ELEM(surface_element);
660
666
  }
661
667
 
662
668
  /*******************************************************************************
@@ -827,8 +833,8 @@ static void set_encodings_accepted_by_peer(grpc_call* /*call*/,
827
833
  accepted_user_data =
828
834
  grpc_mdelem_get_user_data(mdel, destroy_encodings_accepted_by_peer);
829
835
  if (accepted_user_data != nullptr) {
830
- *encodings_accepted_by_peer =
831
- static_cast<uint32_t>(((uintptr_t)accepted_user_data) - 1);
836
+ *encodings_accepted_by_peer = static_cast<uint32_t>(
837
+ reinterpret_cast<uintptr_t>(accepted_user_data) - 1);
832
838
  return;
833
839
  }
834
840
 
@@ -868,7 +874,8 @@ static void set_encodings_accepted_by_peer(grpc_call* /*call*/,
868
874
 
869
875
  grpc_mdelem_set_user_data(
870
876
  mdel, destroy_encodings_accepted_by_peer,
871
- (void*)((static_cast<uintptr_t>(*encodings_accepted_by_peer)) + 1));
877
+ reinterpret_cast<void*>(
878
+ static_cast<uintptr_t>(*encodings_accepted_by_peer) + 1));
872
879
  }
873
880
 
874
881
  uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call* call) {
@@ -882,8 +889,8 @@ grpc_call_test_only_get_incoming_stream_encodings(grpc_call* call) {
882
889
  return call->incoming_stream_compression_algorithm;
883
890
  }
884
891
 
885
- static grpc_linked_mdelem* linked_from_md(const grpc_metadata* md) {
886
- return (grpc_linked_mdelem*)&md->internal_data;
892
+ static grpc_linked_mdelem* linked_from_md(grpc_metadata* md) {
893
+ return reinterpret_cast<grpc_linked_mdelem*>(&md->internal_data);
887
894
  }
888
895
 
889
896
  static grpc_metadata* get_md_elem(grpc_metadata* metadata,
@@ -906,8 +913,7 @@ static int prepare_application_metadata(grpc_call* call, int count,
906
913
  grpc_metadata_batch* batch =
907
914
  &call->metadata_batch[0 /* is_receiving */][is_trailing];
908
915
  for (i = 0; i < total_count; i++) {
909
- const grpc_metadata* md =
910
- get_md_elem(metadata, additional_metadata, i, count);
916
+ grpc_metadata* md = get_md_elem(metadata, additional_metadata, i, count);
911
917
  grpc_linked_mdelem* l = linked_from_md(md);
912
918
  GPR_ASSERT(sizeof(grpc_linked_mdelem) == sizeof(md->internal_data));
913
919
  if (!GRPC_LOG_IF_ERROR("validate_metadata",
@@ -926,8 +932,7 @@ static int prepare_application_metadata(grpc_call* call, int count,
926
932
  }
927
933
  if (i != total_count) {
928
934
  for (int j = 0; j < i; j++) {
929
- const grpc_metadata* md =
930
- get_md_elem(metadata, additional_metadata, j, count);
935
+ grpc_metadata* md = get_md_elem(metadata, additional_metadata, j, count);
931
936
  grpc_linked_mdelem* l = linked_from_md(md);
932
937
  GRPC_MDELEM_UNREF(l->md);
933
938
  }
@@ -1229,9 +1234,10 @@ static void post_batch_completion(batch_control* bctl) {
1229
1234
  if (bctl->completion_data.notify_tag.is_closure) {
1230
1235
  /* unrefs error */
1231
1236
  bctl->call = nullptr;
1232
- grpc_core::Closure::Run(DEBUG_LOCATION,
1233
- (grpc_closure*)bctl->completion_data.notify_tag.tag,
1234
- error);
1237
+ grpc_core::Closure::Run(
1238
+ DEBUG_LOCATION,
1239
+ static_cast<grpc_closure*>(bctl->completion_data.notify_tag.tag),
1240
+ error);
1235
1241
  GRPC_CALL_INTERNAL_UNREF(call, "completion");
1236
1242
  } else {
1237
1243
  /* unrefs error */
@@ -1355,7 +1361,8 @@ static void receiving_stream_ready(void* bctlp, grpc_error* error) {
1355
1361
  * object with rel_cas, and will not use it after the cas. Its corresponding
1356
1362
  * acq_load is in receiving_initial_metadata_ready() */
1357
1363
  if (error != GRPC_ERROR_NONE || call->receiving_stream == nullptr ||
1358
- !gpr_atm_rel_cas(&call->recv_state, RECV_NONE, (gpr_atm)bctlp)) {
1364
+ !gpr_atm_rel_cas(&call->recv_state, RECV_NONE,
1365
+ reinterpret_cast<gpr_atm>(bctlp))) {
1359
1366
  process_data_after_md(bctl);
1360
1367
  }
1361
1368
  }
@@ -1569,7 +1576,8 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1569
1576
  static_cast<grpc_cq_completion*>(
1570
1577
  gpr_malloc(sizeof(grpc_cq_completion))));
1571
1578
  } else {
1572
- grpc_core::Closure::Run(DEBUG_LOCATION, (grpc_closure*)notify_tag,
1579
+ grpc_core::Closure::Run(DEBUG_LOCATION,
1580
+ static_cast<grpc_closure*>(notify_tag),
1573
1581
  GRPC_ERROR_NONE);
1574
1582
  }
1575
1583
  error = GRPC_CALL_OK;
@@ -27,15 +27,15 @@
27
27
  #include "src/core/lib/slice/slice_internal.h"
28
28
  #include "src/core/lib/surface/api_trace.h"
29
29
 
30
- void grpc_call_details_init(grpc_call_details* cd) {
31
- GRPC_API_TRACE("grpc_call_details_init(cd=%p)", 1, (cd));
32
- cd->method = grpc_empty_slice();
33
- cd->host = grpc_empty_slice();
30
+ void grpc_call_details_init(grpc_call_details* details) {
31
+ GRPC_API_TRACE("grpc_call_details_init(details=%p)", 1, (details));
32
+ details->method = grpc_empty_slice();
33
+ details->host = grpc_empty_slice();
34
34
  }
35
35
 
36
- void grpc_call_details_destroy(grpc_call_details* cd) {
37
- GRPC_API_TRACE("grpc_call_details_destroy(cd=%p)", 1, (cd));
36
+ void grpc_call_details_destroy(grpc_call_details* details) {
37
+ GRPC_API_TRACE("grpc_call_details_destroy(details=%p)", 1, (details));
38
38
  grpc_core::ExecCtx exec_ctx;
39
- grpc_slice_unref_internal(cd->method);
40
- grpc_slice_unref_internal(cd->host);
39
+ grpc_slice_unref_internal(details->method);
40
+ grpc_slice_unref_internal(details->host);
41
41
  }
@@ -58,7 +58,7 @@ static void destroy_channel(void* arg, grpc_error* error);
58
58
 
59
59
  grpc_channel* grpc_channel_create_with_builder(
60
60
  grpc_channel_stack_builder* builder,
61
- grpc_channel_stack_type channel_stack_type) {
61
+ grpc_channel_stack_type channel_stack_type, grpc_error** error) {
62
62
  char* target = gpr_strdup(grpc_channel_stack_builder_get_target(builder));
63
63
  grpc_channel_args* args = grpc_channel_args_copy(
64
64
  grpc_channel_stack_builder_get_channel_arguments(builder));
@@ -70,16 +70,21 @@ grpc_channel* grpc_channel_create_with_builder(
70
70
  } else {
71
71
  GRPC_STATS_INC_CLIENT_CHANNELS_CREATED();
72
72
  }
73
- grpc_error* error = grpc_channel_stack_builder_finish(
73
+ grpc_error* builder_error = grpc_channel_stack_builder_finish(
74
74
  builder, sizeof(grpc_channel), 1, destroy_channel, nullptr,
75
75
  reinterpret_cast<void**>(&channel));
76
- if (error != GRPC_ERROR_NONE) {
76
+ if (builder_error != GRPC_ERROR_NONE) {
77
77
  gpr_log(GPR_ERROR, "channel stack builder failed: %s",
78
- grpc_error_string(error));
79
- GRPC_ERROR_UNREF(error);
78
+ grpc_error_string(builder_error));
79
+ GPR_ASSERT(channel == nullptr);
80
+ if (error != nullptr) {
81
+ *error = builder_error;
82
+ } else {
83
+ GRPC_ERROR_UNREF(builder_error);
84
+ }
80
85
  gpr_free(target);
81
86
  grpc_channel_args_destroy(args);
82
- return channel;
87
+ return nullptr;
83
88
  }
84
89
  channel->target = target;
85
90
  channel->resource_user = resource_user;
@@ -219,7 +224,8 @@ grpc_channel* grpc_channel_create(const char* target,
219
224
  const grpc_channel_args* input_args,
220
225
  grpc_channel_stack_type channel_stack_type,
221
226
  grpc_transport* optional_transport,
222
- grpc_resource_user* resource_user) {
227
+ grpc_resource_user* resource_user,
228
+ grpc_error** error) {
223
229
  // We need to make sure that grpc_shutdown() does not shut things down
224
230
  // until after the channel is destroyed. However, the channel may not
225
231
  // actually be destroyed by the time grpc_channel_destroy() returns,
@@ -268,7 +274,7 @@ grpc_channel* grpc_channel_create(const char* target,
268
274
  CreateChannelzNode(builder);
269
275
  }
270
276
  grpc_channel* channel =
271
- grpc_channel_create_with_builder(builder, channel_stack_type);
277
+ grpc_channel_create_with_builder(builder, channel_stack_type, error);
272
278
  if (channel == nullptr) {
273
279
  grpc_shutdown(); // Since we won't call destroy_channel().
274
280
  }
@@ -372,14 +378,14 @@ static grpc_call* grpc_channel_create_call_internal(
372
378
  grpc_call* grpc_channel_create_call(grpc_channel* channel,
373
379
  grpc_call* parent_call,
374
380
  uint32_t propagation_mask,
375
- grpc_completion_queue* cq,
381
+ grpc_completion_queue* completion_queue,
376
382
  grpc_slice method, const grpc_slice* host,
377
383
  gpr_timespec deadline, void* reserved) {
378
384
  GPR_ASSERT(!reserved);
379
385
  grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
380
386
  grpc_core::ExecCtx exec_ctx;
381
387
  grpc_call* call = grpc_channel_create_call_internal(
382
- channel, parent_call, propagation_mask, cq, nullptr,
388
+ channel, parent_call, propagation_mask, completion_queue, nullptr,
383
389
  grpc_mdelem_create(GRPC_MDSTR_PATH, method, nullptr),
384
390
  host != nullptr ? grpc_mdelem_create(GRPC_MDSTR_AUTHORITY, *host, nullptr)
385
391
  : GRPC_MDNULL,
@@ -34,7 +34,8 @@ grpc_channel* grpc_channel_create(const char* target,
34
34
  const grpc_channel_args* args,
35
35
  grpc_channel_stack_type channel_stack_type,
36
36
  grpc_transport* optional_transport,
37
- grpc_resource_user* resource_user = nullptr);
37
+ grpc_resource_user* resource_user = nullptr,
38
+ grpc_error** error = nullptr);
38
39
 
39
40
  /** The same as grpc_channel_destroy, but doesn't create an ExecCtx, and so
40
41
  * is safe to use from within core. */
@@ -42,7 +43,7 @@ void grpc_channel_destroy_internal(grpc_channel* channel);
42
43
 
43
44
  grpc_channel* grpc_channel_create_with_builder(
44
45
  grpc_channel_stack_builder* builder,
45
- grpc_channel_stack_type channel_stack_type);
46
+ grpc_channel_stack_type channel_stack_type, grpc_error** error = nullptr);
46
47
 
47
48
  /** Create a call given a grpc_channel, in order to call \a method.
48
49
  Progress is tied to activity on \a pollset_set. The returned call object is
@@ -87,7 +87,7 @@ void grpc_channel_init_shutdown(void) {
87
87
  for (int i = 0; i < GRPC_NUM_CHANNEL_STACK_TYPES; i++) {
88
88
  gpr_free(g_slots[i].slots);
89
89
  g_slots[i].slots =
90
- static_cast<stage_slot*>((void*)static_cast<uintptr_t>(0xdeadbeef));
90
+ static_cast<stage_slot*>(reinterpret_cast<void*>(0xdeadbeef));
91
91
  }
92
92
  }
93
93
 
@@ -310,7 +310,7 @@ struct cq_pluck_data {
310
310
  };
311
311
 
312
312
  struct cq_callback_data {
313
- cq_callback_data(
313
+ explicit cq_callback_data(
314
314
  grpc_experimental_completion_queue_functor* shutdown_callback)
315
315
  : shutdown_callback(shutdown_callback) {}
316
316
 
@@ -439,7 +439,7 @@ grpc_core::TraceFlag grpc_cq_pluck_trace(false, "queue_pluck");
439
439
  } \
440
440
  } while (0)
441
441
 
442
- static void on_pollset_shutdown_done(void* cq, grpc_error* error);
442
+ static void on_pollset_shutdown_done(void* arg, grpc_error* error);
443
443
 
444
444
  void grpc_cq_global_init() {
445
445
  gpr_tls_init(&g_cached_event);
@@ -447,7 +447,8 @@ void grpc_cq_global_init() {
447
447
  }
448
448
 
449
449
  void grpc_completion_queue_thread_local_cache_init(grpc_completion_queue* cq) {
450
- if ((grpc_completion_queue*)gpr_tls_get(&g_cached_cq) == nullptr) {
450
+ if (reinterpret_cast<grpc_completion_queue*>(gpr_tls_get(&g_cached_cq)) ==
451
+ nullptr) {
451
452
  gpr_tls_set(&g_cached_event, (intptr_t)0);
452
453
  gpr_tls_set(&g_cached_cq, (intptr_t)cq);
453
454
  }
@@ -456,10 +457,10 @@ void grpc_completion_queue_thread_local_cache_init(grpc_completion_queue* cq) {
456
457
  int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue* cq,
457
458
  void** tag, int* ok) {
458
459
  grpc_cq_completion* storage =
459
- (grpc_cq_completion*)gpr_tls_get(&g_cached_event);
460
+ reinterpret_cast<grpc_cq_completion*>(gpr_tls_get(&g_cached_event));
460
461
  int ret = 0;
461
- if (storage != nullptr &&
462
- (grpc_completion_queue*)gpr_tls_get(&g_cached_cq) == cq) {
462
+ if (storage != nullptr && reinterpret_cast<grpc_completion_queue*>(
463
+ gpr_tls_get(&g_cached_cq)) == cq) {
463
464
  *tag = storage->tag;
464
465
  grpc_core::ExecCtx exec_ctx;
465
466
  *ok = (storage->next & static_cast<uintptr_t>(1)) == 1;
@@ -717,8 +718,10 @@ static void cq_end_op_for_next(
717
718
 
718
719
  cq_check_tag(cq, tag, true); /* Used in debug builds only */
719
720
 
720
- if ((grpc_completion_queue*)gpr_tls_get(&g_cached_cq) == cq &&
721
- (grpc_cq_completion*)gpr_tls_get(&g_cached_event) == nullptr) {
721
+ if (reinterpret_cast<grpc_completion_queue*>(gpr_tls_get(&g_cached_cq)) ==
722
+ cq &&
723
+ reinterpret_cast<grpc_cq_completion*>(gpr_tls_get(&g_cached_event)) ==
724
+ nullptr) {
722
725
  gpr_tls_set(&g_cached_event, (intptr_t)storage);
723
726
  } else {
724
727
  /* Add the completion to the queue */
@@ -793,8 +796,8 @@ static void cq_end_op_for_pluck(
793
796
  storage->tag = tag;
794
797
  storage->done = done;
795
798
  storage->done_arg = done_arg;
796
- storage->next =
797
- ((uintptr_t)&cqd->completed_head) | (static_cast<uintptr_t>(is_success));
799
+ storage->next = reinterpret_cast<uintptr_t>(&cqd->completed_head) |
800
+ static_cast<uintptr_t>(is_success);
798
801
 
799
802
  gpr_mu_lock(cq->mu);
800
803
  cq_check_tag(cq, tag, false); /* Used in debug builds only */
@@ -802,7 +805,7 @@ static void cq_end_op_for_pluck(
802
805
  /* Add to the list of completions */
803
806
  cqd->things_queued_ever.FetchAdd(1, grpc_core::MemoryOrder::RELAXED);
804
807
  cqd->completed_tail->next =
805
- ((uintptr_t)storage) | (1u & cqd->completed_tail->next);
808
+ reinterpret_cast<uintptr_t>(storage) | (1u & cqd->completed_tail->next);
806
809
  cqd->completed_tail = storage;
807
810
 
808
811
  if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
@@ -910,7 +913,8 @@ struct cq_is_finished_arg {
910
913
  };
911
914
  class ExecCtxNext : public grpc_core::ExecCtx {
912
915
  public:
913
- ExecCtxNext(void* arg) : ExecCtx(0), check_ready_to_finish_arg_(arg) {}
916
+ explicit ExecCtxNext(void* arg)
917
+ : ExecCtx(0), check_ready_to_finish_arg_(arg) {}
914
918
 
915
919
  bool CheckReadyToFinish() override {
916
920
  cq_is_finished_arg* a =
@@ -1158,7 +1162,8 @@ static void del_plucker(grpc_completion_queue* cq, void* tag,
1158
1162
 
1159
1163
  class ExecCtxPluck : public grpc_core::ExecCtx {
1160
1164
  public:
1161
- ExecCtxPluck(void* arg) : ExecCtx(0), check_ready_to_finish_arg_(arg) {}
1165
+ explicit ExecCtxPluck(void* arg)
1166
+ : ExecCtx(0), check_ready_to_finish_arg_(arg) {}
1162
1167
 
1163
1168
  bool CheckReadyToFinish() override {
1164
1169
  cq_is_finished_arg* a =
@@ -1176,8 +1181,8 @@ class ExecCtxPluck : public grpc_core::ExecCtx {
1176
1181
  cqd->things_queued_ever.Load(grpc_core::MemoryOrder::RELAXED);
1177
1182
  grpc_cq_completion* c;
1178
1183
  grpc_cq_completion* prev = &cqd->completed_head;
1179
- while ((c = (grpc_cq_completion*)(prev->next &
1180
- ~static_cast<uintptr_t>(1))) !=
1184
+ while ((c = reinterpret_cast<grpc_cq_completion*>(
1185
+ prev->next & ~static_cast<uintptr_t>(1))) !=
1181
1186
  &cqd->completed_head) {
1182
1187
  if (c->tag == a->tag) {
1183
1188
  prev->next = (prev->next & static_cast<uintptr_t>(1)) |
@@ -1248,9 +1253,9 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
1248
1253
  break;
1249
1254
  }
1250
1255
  prev = &cqd->completed_head;
1251
- while (
1252
- (c = (grpc_cq_completion*)(prev->next & ~static_cast<uintptr_t>(1))) !=
1253
- &cqd->completed_head) {
1256
+ while ((c = reinterpret_cast<grpc_cq_completion*>(
1257
+ prev->next & ~static_cast<uintptr_t>(1))) !=
1258
+ &cqd->completed_head) {
1254
1259
  if (c->tag == tag) {
1255
1260
  prev->next = (prev->next & static_cast<uintptr_t>(1)) |
1256
1261
  (c->next & ~static_cast<uintptr_t>(1));
@@ -51,19 +51,19 @@ typedef struct grpc_cq_completion {
51
51
  } grpc_cq_completion;
52
52
 
53
53
  #ifndef NDEBUG
54
- void grpc_cq_internal_ref(grpc_completion_queue* cc, const char* reason,
54
+ void grpc_cq_internal_ref(grpc_completion_queue* cq, const char* reason,
55
55
  const char* file, int line);
56
- void grpc_cq_internal_unref(grpc_completion_queue* cc, const char* reason,
56
+ void grpc_cq_internal_unref(grpc_completion_queue* cq, const char* reason,
57
57
  const char* file, int line);
58
- #define GRPC_CQ_INTERNAL_REF(cc, reason) \
59
- grpc_cq_internal_ref(cc, reason, __FILE__, __LINE__)
60
- #define GRPC_CQ_INTERNAL_UNREF(cc, reason) \
61
- grpc_cq_internal_unref(cc, reason, __FILE__, __LINE__)
58
+ #define GRPC_CQ_INTERNAL_REF(cq, reason) \
59
+ grpc_cq_internal_ref(cq, reason, __FILE__, __LINE__)
60
+ #define GRPC_CQ_INTERNAL_UNREF(cq, reason) \
61
+ grpc_cq_internal_unref(cq, reason, __FILE__, __LINE__)
62
62
  #else
63
- void grpc_cq_internal_ref(grpc_completion_queue* cc);
64
- void grpc_cq_internal_unref(grpc_completion_queue* cc);
65
- #define GRPC_CQ_INTERNAL_REF(cc, reason) grpc_cq_internal_ref(cc)
66
- #define GRPC_CQ_INTERNAL_UNREF(cc, reason) grpc_cq_internal_unref(cc)
63
+ void grpc_cq_internal_ref(grpc_completion_queue* cq);
64
+ void grpc_cq_internal_unref(grpc_completion_queue* cq);
65
+ #define GRPC_CQ_INTERNAL_REF(cq, reason) grpc_cq_internal_ref(cq)
66
+ #define GRPC_CQ_INTERNAL_UNREF(cq, reason) grpc_cq_internal_unref(cq)
67
67
  #endif
68
68
 
69
69
  /* Initializes global variables used by completion queues */
@@ -73,22 +73,22 @@ void grpc_cq_global_init();
73
73
  shutdown until a corrensponding grpc_cq_end_* call is made.
74
74
  \a tag is currently used only in debug builds. Return true on success, and
75
75
  false if completion_queue has been shutdown. */
76
- bool grpc_cq_begin_op(grpc_completion_queue* cc, void* tag);
76
+ bool grpc_cq_begin_op(grpc_completion_queue* cq, void* tag);
77
77
 
78
78
  /* Queue a GRPC_OP_COMPLETED operation; tag must correspond to the tag passed to
79
79
  grpc_cq_begin_op */
80
- void grpc_cq_end_op(grpc_completion_queue* cc, void* tag, grpc_error* error,
80
+ void grpc_cq_end_op(grpc_completion_queue* cq, void* tag, grpc_error* error,
81
81
  void (*done)(void* done_arg, grpc_cq_completion* storage),
82
82
  void* done_arg, grpc_cq_completion* storage,
83
83
  bool internal = false);
84
84
 
85
- grpc_pollset* grpc_cq_pollset(grpc_completion_queue* cc);
85
+ grpc_pollset* grpc_cq_pollset(grpc_completion_queue* cq);
86
86
 
87
- bool grpc_cq_can_listen(grpc_completion_queue* cc);
87
+ bool grpc_cq_can_listen(grpc_completion_queue* cq);
88
88
 
89
- grpc_cq_completion_type grpc_get_cq_completion_type(grpc_completion_queue* cc);
89
+ grpc_cq_completion_type grpc_get_cq_completion_type(grpc_completion_queue* cq);
90
90
 
91
- int grpc_get_cq_poll_num(grpc_completion_queue* cc);
91
+ int grpc_get_cq_poll_num(grpc_completion_queue* cq);
92
92
 
93
93
  grpc_completion_queue* grpc_completion_queue_create_internal(
94
94
  grpc_cq_completion_type completion_type, grpc_cq_polling_type polling_type,