grpc 1.24.0 → 1.25.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 (505) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +306 -243
  3. data/etc/roots.pem +0 -100
  4. data/include/grpc/grpc_security.h +44 -18
  5. data/include/grpc/impl/codegen/grpc_types.h +15 -0
  6. data/include/grpc/impl/codegen/port_platform.h +27 -11
  7. data/include/grpc/impl/codegen/sync_generic.h +1 -1
  8. data/src/boringssl/err_data.c +695 -650
  9. data/src/core/ext/filters/client_channel/client_channel.cc +257 -179
  10. data/src/core/ext/filters/client_channel/client_channel.h +24 -0
  11. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +2 -3
  12. data/src/core/ext/filters/client_channel/client_channel_factory.h +1 -5
  13. data/src/core/ext/filters/client_channel/health/health_check_client.cc +18 -45
  14. data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -13
  15. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy.cc +2 -3
  17. data/src/core/ext/filters/client_channel/lb_policy.h +65 -55
  18. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -14
  19. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +113 -36
  20. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -19
  21. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +36 -13
  22. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -10
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +814 -1589
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +2 -5
  25. data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -6
  26. data/src/core/ext/filters/client_channel/resolver.cc +1 -2
  27. data/src/core/ext/filters/client_channel/resolver.h +8 -16
  28. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +25 -8
  29. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +46 -12
  30. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +10 -17
  31. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +7 -8
  32. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  33. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +111 -44
  34. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +22 -14
  35. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  36. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +2 -2
  37. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +29 -10
  38. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +27 -36
  39. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +7 -10
  40. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -16
  41. data/src/core/ext/filters/client_channel/resolver_factory.h +4 -8
  42. data/src/core/ext/filters/client_channel/resolver_registry.cc +1 -1
  43. data/src/core/ext/filters/client_channel/resolver_registry.h +1 -1
  44. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
  45. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +7 -8
  46. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +1 -1
  47. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -5
  48. data/src/core/ext/filters/client_channel/retry_throttle.h +1 -4
  49. data/src/core/ext/filters/client_channel/service_config.h +8 -8
  50. data/src/core/ext/filters/client_channel/subchannel.cc +53 -86
  51. data/src/core/ext/filters/client_channel/subchannel.h +7 -9
  52. data/src/core/ext/filters/client_channel/subchannel_interface.h +9 -13
  53. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +3 -6
  54. data/src/core/ext/filters/client_channel/{lb_policy/xds/xds_load_balancer_api.cc → xds/xds_api.cc} +169 -52
  55. data/src/core/ext/filters/client_channel/xds/xds_api.h +171 -0
  56. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +450 -0
  57. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +99 -0
  58. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel.h +8 -6
  59. data/src/core/ext/filters/client_channel/xds/xds_channel_args.h +26 -0
  60. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel_secure.cc +28 -11
  61. data/src/core/ext/filters/client_channel/xds/xds_client.cc +1413 -0
  62. data/src/core/ext/filters/client_channel/xds/xds_client.h +221 -0
  63. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.cc +1 -5
  64. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.h +3 -4
  65. data/src/core/ext/filters/deadline/deadline_filter.cc +20 -20
  66. data/src/core/ext/filters/http/client/http_client_filter.cc +15 -15
  67. data/src/core/ext/filters/http/client_authority_filter.cc +14 -14
  68. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +12 -12
  69. data/src/core/ext/filters/max_age/max_age_filter.cc +59 -50
  70. data/src/core/ext/filters/message_size/message_size_filter.cc +18 -18
  71. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -14
  72. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +233 -175
  73. data/src/core/ext/transport/chttp2/transport/flow_control.h +21 -24
  74. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +253 -163
  75. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +24 -12
  76. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -3
  77. data/src/core/ext/transport/chttp2/transport/internal.h +13 -15
  78. data/src/core/ext/transport/chttp2/transport/writing.cc +3 -0
  79. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -13
  80. data/src/core/lib/channel/channel_args.cc +16 -0
  81. data/src/core/lib/channel/channel_args.h +22 -0
  82. data/src/core/lib/channel/channelz.cc +5 -6
  83. data/src/core/lib/channel/channelz.h +1 -1
  84. data/src/core/lib/channel/connected_channel.cc +20 -20
  85. data/src/core/lib/channel/handshaker.h +3 -4
  86. data/src/core/lib/channel/handshaker_factory.h +1 -3
  87. data/src/core/lib/debug/trace.h +3 -2
  88. data/src/core/lib/gprpp/arena.cc +3 -3
  89. data/src/core/lib/gprpp/arena.h +2 -3
  90. data/src/core/lib/gprpp/inlined_vector.h +9 -0
  91. data/src/core/lib/gprpp/map.h +3 -501
  92. data/src/core/lib/gprpp/memory.h +45 -41
  93. data/src/core/lib/gprpp/mpscq.cc +108 -0
  94. data/src/core/lib/gprpp/mpscq.h +98 -0
  95. data/src/core/lib/gprpp/orphanable.h +6 -11
  96. data/src/core/lib/gprpp/ref_counted.h +25 -19
  97. data/src/core/lib/gprpp/set.h +33 -0
  98. data/src/core/lib/gprpp/thd.h +2 -4
  99. data/src/core/lib/http/httpcli.cc +1 -1
  100. data/src/core/lib/http/httpcli_security_connector.cc +15 -11
  101. data/src/core/lib/http/parser.cc +1 -1
  102. data/src/core/lib/iomgr/buffer_list.cc +4 -5
  103. data/src/core/lib/iomgr/buffer_list.h +5 -6
  104. data/src/core/lib/iomgr/call_combiner.cc +4 -5
  105. data/src/core/lib/iomgr/call_combiner.h +2 -2
  106. data/src/core/lib/iomgr/cfstream_handle.h +3 -5
  107. data/src/core/lib/iomgr/closure.h +8 -3
  108. data/src/core/lib/iomgr/combiner.cc +45 -82
  109. data/src/core/lib/iomgr/combiner.h +32 -8
  110. data/src/core/lib/iomgr/endpoint_cfstream.cc +5 -3
  111. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -15
  112. data/src/core/lib/iomgr/ev_poll_posix.cc +3 -1
  113. data/src/core/lib/iomgr/exec_ctx.h +4 -3
  114. data/src/core/lib/iomgr/executor.cc +4 -2
  115. data/src/core/lib/iomgr/executor.h +3 -0
  116. data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -6
  117. data/src/core/lib/iomgr/executor/threadpool.cc +1 -2
  118. data/src/core/lib/iomgr/executor/threadpool.h +7 -11
  119. data/src/core/lib/iomgr/resource_quota.cc +55 -51
  120. data/src/core/lib/iomgr/resource_quota.h +13 -9
  121. data/src/core/lib/iomgr/socket_utils_common_posix.cc +13 -0
  122. data/src/core/lib/iomgr/socket_utils_posix.h +4 -0
  123. data/src/core/lib/iomgr/tcp_client_posix.cc +4 -11
  124. data/src/core/lib/iomgr/tcp_custom.cc +9 -7
  125. data/src/core/lib/iomgr/tcp_posix.cc +20 -16
  126. data/src/core/lib/iomgr/tcp_server.h +1 -4
  127. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -5
  128. data/src/core/lib/iomgr/tcp_server_posix.cc +1 -1
  129. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +2 -11
  130. data/src/core/lib/iomgr/timer_custom.cc +2 -2
  131. data/src/core/lib/iomgr/udp_server.cc +3 -2
  132. data/src/core/lib/iomgr/udp_server.h +6 -12
  133. data/src/core/lib/json/json.h +1 -1
  134. data/src/core/lib/json/json_string.cc +2 -2
  135. data/src/core/lib/profiling/basic_timers.cc +2 -2
  136. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -2
  137. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -1
  138. data/src/core/lib/security/credentials/credentials.h +4 -20
  139. data/src/core/lib/security/credentials/fake/fake_credentials.cc +4 -4
  140. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -3
  141. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +64 -0
  142. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +4 -4
  143. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -7
  144. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +2 -0
  145. data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -4
  146. data/src/core/lib/security/security_connector/security_connector.cc +1 -0
  147. data/src/core/lib/security/security_connector/security_connector.h +19 -17
  148. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +8 -5
  149. data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
  150. data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
  151. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +14 -6
  152. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +4 -2
  153. data/src/core/lib/security/transport/client_auth_filter.cc +17 -17
  154. data/src/core/lib/security/transport/security_handshaker.cc +29 -13
  155. data/src/core/lib/security/transport/security_handshaker.h +4 -2
  156. data/src/core/lib/security/transport/server_auth_filter.cc +14 -14
  157. data/src/core/lib/slice/slice.cc +2 -10
  158. data/src/core/lib/slice/slice_hash_table.h +4 -6
  159. data/src/core/lib/slice/slice_intern.cc +42 -39
  160. data/src/core/lib/slice/slice_internal.h +3 -3
  161. data/src/core/lib/slice/slice_utils.h +21 -4
  162. data/src/core/lib/slice/slice_weak_hash_table.h +4 -6
  163. data/src/core/lib/surface/call.cc +3 -3
  164. data/src/core/lib/surface/channel.cc +7 -0
  165. data/src/core/lib/surface/completion_queue.cc +12 -11
  166. data/src/core/lib/surface/completion_queue.h +4 -2
  167. data/src/core/lib/surface/init.cc +1 -0
  168. data/src/core/lib/surface/lame_client.cc +33 -18
  169. data/src/core/lib/surface/server.cc +77 -76
  170. data/src/core/lib/surface/version.cc +1 -1
  171. data/src/core/lib/transport/byte_stream.h +3 -7
  172. data/src/core/lib/transport/connectivity_state.cc +112 -98
  173. data/src/core/lib/transport/connectivity_state.h +100 -50
  174. data/src/core/lib/transport/static_metadata.cc +276 -288
  175. data/src/core/lib/transport/static_metadata.h +73 -76
  176. data/src/core/lib/transport/status_conversion.cc +1 -1
  177. data/src/core/lib/transport/status_metadata.cc +1 -1
  178. data/src/core/lib/transport/transport.cc +2 -2
  179. data/src/core/lib/transport/transport.h +12 -4
  180. data/src/core/lib/transport/transport_op_string.cc +14 -11
  181. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -1
  182. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +1 -1
  183. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +5 -5
  184. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -2
  185. data/src/core/tsi/fake_transport_security.cc +7 -5
  186. data/src/core/tsi/grpc_shadow_boringssl.h +2918 -2627
  187. data/src/core/tsi/local_transport_security.cc +8 -6
  188. data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -3
  189. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -2
  190. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +7 -5
  191. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -6
  192. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -2
  193. data/src/core/tsi/ssl_transport_security.cc +12 -12
  194. data/src/core/tsi/ssl_transport_security.h +2 -2
  195. data/src/core/tsi/transport_security_grpc.cc +7 -0
  196. data/src/core/tsi/transport_security_grpc.h +6 -0
  197. data/src/ruby/ext/grpc/extconf.rb +1 -0
  198. data/src/ruby/ext/grpc/rb_call.c +1 -1
  199. data/src/ruby/ext/grpc/rb_channel.c +1 -1
  200. data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
  201. data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
  202. data/src/ruby/lib/grpc/version.rb +1 -1
  203. data/src/ruby/spec/google_rpc_status_utils_spec.rb +2 -2
  204. data/third_party/boringssl/crypto/asn1/a_bool.c +18 -5
  205. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +17 -221
  206. data/third_party/boringssl/crypto/asn1/a_dup.c +0 -24
  207. data/third_party/boringssl/crypto/asn1/a_enum.c +2 -2
  208. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +10 -72
  209. data/third_party/boringssl/crypto/asn1/a_int.c +12 -71
  210. data/third_party/boringssl/crypto/asn1/a_mbstr.c +110 -216
  211. data/third_party/boringssl/crypto/asn1/a_object.c +16 -5
  212. data/third_party/boringssl/crypto/asn1/a_strnid.c +1 -0
  213. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -1
  214. data/third_party/boringssl/crypto/asn1/tasn_enc.c +3 -1
  215. data/third_party/boringssl/crypto/base64/base64.c +2 -2
  216. data/third_party/boringssl/crypto/bio/bio.c +73 -9
  217. data/third_party/boringssl/crypto/bio/connect.c +4 -0
  218. data/third_party/boringssl/crypto/bio/fd.c +4 -0
  219. data/third_party/boringssl/crypto/bio/file.c +5 -2
  220. data/third_party/boringssl/crypto/bio/socket.c +4 -0
  221. data/third_party/boringssl/crypto/bio/socket_helper.c +4 -0
  222. data/third_party/boringssl/crypto/bn_extra/convert.c +11 -7
  223. data/third_party/boringssl/crypto/bytestring/ber.c +8 -4
  224. data/third_party/boringssl/crypto/bytestring/cbb.c +19 -7
  225. data/third_party/boringssl/crypto/bytestring/cbs.c +28 -15
  226. data/third_party/boringssl/crypto/bytestring/internal.h +28 -7
  227. data/third_party/boringssl/crypto/bytestring/unicode.c +155 -0
  228. data/third_party/boringssl/crypto/chacha/chacha.c +36 -19
  229. data/third_party/boringssl/crypto/chacha/internal.h +45 -0
  230. data/third_party/boringssl/crypto/cipher_extra/cipher_extra.c +29 -0
  231. data/third_party/boringssl/crypto/cipher_extra/e_aesccm.c +269 -25
  232. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +16 -14
  233. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +54 -38
  234. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +133 -41
  235. data/third_party/boringssl/crypto/cipher_extra/e_tls.c +23 -15
  236. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +24 -15
  237. data/third_party/boringssl/crypto/cmac/cmac.c +62 -25
  238. data/third_party/boringssl/crypto/conf/conf.c +7 -0
  239. data/third_party/boringssl/crypto/cpu-arm-linux.c +4 -148
  240. data/third_party/boringssl/crypto/cpu-arm-linux.h +201 -0
  241. data/third_party/boringssl/crypto/cpu-intel.c +45 -51
  242. data/third_party/boringssl/crypto/crypto.c +39 -22
  243. data/third_party/boringssl/crypto/curve25519/spake25519.c +1 -1
  244. data/third_party/boringssl/crypto/dsa/dsa.c +77 -53
  245. data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +20 -8
  246. data/third_party/boringssl/crypto/ec_extra/ec_derive.c +96 -0
  247. data/third_party/boringssl/crypto/{ecdh/ecdh.c → ecdh_extra/ecdh_extra.c} +20 -58
  248. data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +1 -9
  249. data/third_party/boringssl/crypto/engine/engine.c +2 -1
  250. data/third_party/boringssl/crypto/err/err.c +2 -0
  251. data/third_party/boringssl/crypto/err/internal.h +2 -2
  252. data/third_party/boringssl/crypto/evp/evp.c +89 -8
  253. data/third_party/boringssl/crypto/evp/evp_asn1.c +56 -5
  254. data/third_party/boringssl/crypto/evp/evp_ctx.c +52 -14
  255. data/third_party/boringssl/crypto/evp/internal.h +18 -1
  256. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +5 -0
  257. data/third_party/boringssl/crypto/evp/p_ec.c +51 -3
  258. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +6 -7
  259. data/third_party/boringssl/crypto/evp/p_ed25519.c +36 -3
  260. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +76 -45
  261. data/third_party/boringssl/crypto/evp/p_rsa.c +3 -1
  262. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +5 -0
  263. data/third_party/boringssl/crypto/evp/p_x25519.c +110 -0
  264. data/third_party/boringssl/crypto/evp/p_x25519_asn1.c +249 -0
  265. data/third_party/boringssl/crypto/evp/scrypt.c +6 -2
  266. data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +34 -274
  267. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +161 -21
  268. data/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.c +111 -13
  269. data/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.c +17 -21
  270. data/third_party/boringssl/crypto/fipsmodule/bcm.c +119 -7
  271. data/third_party/boringssl/crypto/fipsmodule/bn/bn.c +19 -2
  272. data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +2 -2
  273. data/third_party/boringssl/crypto/fipsmodule/bn/ctx.c +93 -160
  274. data/third_party/boringssl/crypto/fipsmodule/bn/div.c +48 -57
  275. data/third_party/boringssl/crypto/fipsmodule/bn/div_extra.c +87 -0
  276. data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +143 -211
  277. data/third_party/boringssl/crypto/fipsmodule/bn/gcd.c +0 -305
  278. data/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.c +325 -0
  279. data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +168 -50
  280. data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +68 -92
  281. data/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.c +7 -6
  282. data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +11 -14
  283. data/third_party/boringssl/crypto/fipsmodule/bn/prime.c +358 -443
  284. data/third_party/boringssl/crypto/fipsmodule/bn/random.c +25 -35
  285. data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.c +20 -25
  286. data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +76 -5
  287. data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +14 -14
  288. data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +7 -2
  289. data/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.c +383 -516
  290. data/third_party/boringssl/crypto/fipsmodule/cipher/e_des.c +4 -0
  291. data/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +3 -4
  292. data/third_party/boringssl/crypto/fipsmodule/delocate.h +3 -2
  293. data/third_party/boringssl/crypto/fipsmodule/digest/digest.c +32 -17
  294. data/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +3 -3
  295. data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +228 -122
  296. data/third_party/boringssl/crypto/fipsmodule/ec/ec_key.c +34 -8
  297. data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +311 -98
  298. data/third_party/boringssl/crypto/fipsmodule/ec/felem.c +82 -0
  299. data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +263 -97
  300. data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +22 -59
  301. data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +317 -234
  302. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +9473 -9475
  303. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +313 -109
  304. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.h +36 -0
  305. data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +96 -0
  306. data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +126 -792
  307. data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +84 -0
  308. data/third_party/boringssl/crypto/fipsmodule/ec/util.c +163 -12
  309. data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +84 -211
  310. data/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.c +122 -0
  311. data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +60 -205
  312. data/third_party/boringssl/crypto/fipsmodule/fips_shared_support.c +32 -0
  313. data/third_party/boringssl/crypto/fipsmodule/is_fips.c +2 -0
  314. data/third_party/boringssl/crypto/fipsmodule/md4/md4.c +3 -1
  315. data/third_party/boringssl/crypto/fipsmodule/md5/internal.h +37 -0
  316. data/third_party/boringssl/crypto/fipsmodule/md5/md5.c +11 -8
  317. data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +35 -79
  318. data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +7 -39
  319. data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +7 -27
  320. data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +123 -309
  321. data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +189 -126
  322. data/third_party/boringssl/crypto/fipsmodule/modes/ofb.c +3 -2
  323. data/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.c +2 -2
  324. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +35 -0
  325. data/third_party/boringssl/crypto/fipsmodule/rand/rand.c +24 -19
  326. data/third_party/boringssl/crypto/fipsmodule/rand/urandom.c +256 -77
  327. data/third_party/boringssl/crypto/fipsmodule/rsa/padding.c +10 -7
  328. data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +5 -1
  329. data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +131 -14
  330. data/third_party/boringssl/crypto/fipsmodule/self_check/self_check.c +83 -10
  331. data/third_party/boringssl/crypto/fipsmodule/sha/internal.h +53 -0
  332. data/third_party/boringssl/crypto/fipsmodule/sha/sha1.c +9 -13
  333. data/third_party/boringssl/crypto/fipsmodule/sha/sha256.c +18 -12
  334. data/third_party/boringssl/crypto/fipsmodule/sha/sha512.c +95 -168
  335. data/third_party/boringssl/crypto/hrss/hrss.c +2201 -0
  336. data/third_party/boringssl/crypto/hrss/internal.h +62 -0
  337. data/third_party/boringssl/crypto/internal.h +95 -20
  338. data/third_party/boringssl/crypto/lhash/lhash.c +45 -33
  339. data/third_party/boringssl/crypto/mem.c +39 -2
  340. data/third_party/boringssl/crypto/obj/obj.c +4 -4
  341. data/third_party/boringssl/crypto/obj/obj_dat.h +6181 -875
  342. data/third_party/boringssl/crypto/pem/pem_all.c +2 -3
  343. data/third_party/boringssl/crypto/pem/pem_info.c +144 -162
  344. data/third_party/boringssl/crypto/pem/pem_lib.c +53 -52
  345. data/third_party/boringssl/crypto/pem/pem_pkey.c +13 -21
  346. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +15 -22
  347. data/third_party/boringssl/crypto/pkcs7/pkcs7_x509.c +168 -16
  348. data/third_party/boringssl/crypto/pkcs8/internal.h +11 -0
  349. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +24 -15
  350. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +42 -25
  351. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +559 -43
  352. data/third_party/boringssl/crypto/pool/internal.h +1 -1
  353. data/third_party/boringssl/crypto/pool/pool.c +21 -0
  354. data/third_party/boringssl/crypto/rand_extra/deterministic.c +8 -0
  355. data/third_party/boringssl/crypto/rand_extra/fuchsia.c +1 -14
  356. data/third_party/boringssl/crypto/refcount_lock.c +2 -2
  357. data/third_party/boringssl/crypto/rsa_extra/rsa_print.c +22 -0
  358. data/third_party/boringssl/crypto/siphash/siphash.c +80 -0
  359. data/third_party/boringssl/crypto/stack/stack.c +83 -32
  360. data/third_party/boringssl/crypto/thread_none.c +2 -2
  361. data/third_party/boringssl/crypto/thread_pthread.c +2 -2
  362. data/third_party/boringssl/crypto/thread_win.c +38 -19
  363. data/third_party/boringssl/crypto/x509/a_strex.c +22 -2
  364. data/third_party/boringssl/crypto/x509/asn1_gen.c +2 -1
  365. data/third_party/boringssl/crypto/x509/by_dir.c +7 -0
  366. data/third_party/boringssl/crypto/x509/by_file.c +12 -10
  367. data/third_party/boringssl/crypto/x509/t_crl.c +5 -8
  368. data/third_party/boringssl/crypto/x509/t_req.c +1 -3
  369. data/third_party/boringssl/crypto/x509/t_x509.c +5 -8
  370. data/third_party/boringssl/crypto/x509/x509_cmp.c +1 -1
  371. data/third_party/boringssl/crypto/x509/x509_def.c +1 -1
  372. data/third_party/boringssl/crypto/x509/x509_lu.c +114 -5
  373. data/third_party/boringssl/crypto/x509/x509_req.c +20 -0
  374. data/third_party/boringssl/crypto/x509/x509_set.c +5 -0
  375. data/third_party/boringssl/crypto/x509/x509_trs.c +1 -0
  376. data/third_party/boringssl/crypto/x509/x509_txt.c +4 -5
  377. data/third_party/boringssl/crypto/x509/x509_vfy.c +145 -138
  378. data/third_party/boringssl/crypto/x509/x509_vpm.c +2 -0
  379. data/third_party/boringssl/crypto/x509/x509cset.c +40 -0
  380. data/third_party/boringssl/crypto/x509/x509name.c +2 -3
  381. data/third_party/boringssl/crypto/x509/x_all.c +109 -210
  382. data/third_party/boringssl/crypto/x509/x_x509.c +6 -0
  383. data/third_party/boringssl/crypto/x509v3/ext_dat.h +1 -3
  384. data/third_party/boringssl/crypto/x509v3/internal.h +56 -0
  385. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +2 -0
  386. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -0
  387. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +4 -2
  388. data/third_party/boringssl/crypto/x509v3/v3_akey.c +5 -2
  389. data/third_party/boringssl/crypto/x509v3/v3_alt.c +19 -13
  390. data/third_party/boringssl/crypto/x509v3/v3_conf.c +2 -1
  391. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +3 -2
  392. data/third_party/boringssl/crypto/x509v3/v3_genn.c +1 -6
  393. data/third_party/boringssl/crypto/x509v3/v3_lib.c +1 -0
  394. data/third_party/boringssl/crypto/x509v3/v3_ocsp.c +68 -0
  395. data/third_party/boringssl/crypto/x509v3/v3_pci.c +2 -1
  396. data/third_party/boringssl/crypto/x509v3/v3_purp.c +47 -69
  397. data/third_party/boringssl/crypto/x509v3/v3_skey.c +5 -2
  398. data/third_party/boringssl/crypto/x509v3/v3_utl.c +69 -25
  399. data/third_party/boringssl/include/openssl/aead.h +45 -19
  400. data/third_party/boringssl/include/openssl/aes.h +32 -7
  401. data/third_party/boringssl/include/openssl/asn1.h +7 -77
  402. data/third_party/boringssl/include/openssl/base.h +120 -6
  403. data/third_party/boringssl/include/openssl/base64.h +4 -1
  404. data/third_party/boringssl/include/openssl/bio.h +112 -81
  405. data/third_party/boringssl/include/openssl/blowfish.h +3 -3
  406. data/third_party/boringssl/include/openssl/bn.h +55 -29
  407. data/third_party/boringssl/include/openssl/buf.h +2 -2
  408. data/third_party/boringssl/include/openssl/bytestring.h +54 -32
  409. data/third_party/boringssl/include/openssl/cast.h +2 -2
  410. data/third_party/boringssl/include/openssl/cipher.h +46 -16
  411. data/third_party/boringssl/include/openssl/cmac.h +6 -2
  412. data/third_party/boringssl/include/openssl/conf.h +3 -6
  413. data/third_party/boringssl/include/openssl/cpu.h +25 -9
  414. data/third_party/boringssl/include/openssl/crypto.h +32 -10
  415. data/third_party/boringssl/include/openssl/curve25519.h +4 -4
  416. data/third_party/boringssl/include/openssl/dh.h +3 -2
  417. data/third_party/boringssl/include/openssl/digest.h +21 -7
  418. data/third_party/boringssl/include/openssl/dsa.h +8 -2
  419. data/third_party/boringssl/include/openssl/e_os2.h +18 -0
  420. data/third_party/boringssl/include/openssl/ec.h +25 -21
  421. data/third_party/boringssl/include/openssl/ec_key.h +36 -8
  422. data/third_party/boringssl/include/openssl/ecdh.h +17 -0
  423. data/third_party/boringssl/include/openssl/ecdsa.h +3 -3
  424. data/third_party/boringssl/include/openssl/engine.h +4 -4
  425. data/third_party/boringssl/include/openssl/err.h +3 -0
  426. data/third_party/boringssl/include/openssl/evp.h +199 -42
  427. data/third_party/boringssl/include/openssl/hmac.h +4 -4
  428. data/third_party/boringssl/include/openssl/hrss.h +100 -0
  429. data/third_party/boringssl/include/openssl/lhash.h +131 -23
  430. data/third_party/boringssl/include/openssl/md4.h +6 -4
  431. data/third_party/boringssl/include/openssl/md5.h +6 -4
  432. data/third_party/boringssl/include/openssl/mem.h +6 -2
  433. data/third_party/boringssl/include/openssl/nid.h +3 -0
  434. data/third_party/boringssl/include/openssl/obj.h +3 -0
  435. data/third_party/boringssl/include/openssl/pem.h +102 -64
  436. data/third_party/boringssl/include/openssl/pkcs7.h +136 -3
  437. data/third_party/boringssl/include/openssl/pkcs8.h +42 -3
  438. data/third_party/boringssl/include/openssl/pool.h +13 -2
  439. data/third_party/boringssl/include/openssl/ripemd.h +5 -4
  440. data/third_party/boringssl/include/openssl/rsa.h +46 -15
  441. data/third_party/boringssl/include/openssl/sha.h +40 -28
  442. data/third_party/boringssl/include/openssl/siphash.h +37 -0
  443. data/third_party/boringssl/include/openssl/span.h +17 -9
  444. data/third_party/boringssl/include/openssl/ssl.h +766 -393
  445. data/third_party/boringssl/include/openssl/ssl3.h +4 -3
  446. data/third_party/boringssl/include/openssl/stack.h +134 -77
  447. data/third_party/boringssl/include/openssl/thread.h +1 -1
  448. data/third_party/boringssl/include/openssl/tls1.h +25 -9
  449. data/third_party/boringssl/include/openssl/type_check.h +14 -15
  450. data/third_party/boringssl/include/openssl/x509.h +28 -3
  451. data/third_party/boringssl/include/openssl/x509_vfy.h +98 -32
  452. data/third_party/boringssl/include/openssl/x509v3.h +17 -13
  453. data/third_party/boringssl/ssl/d1_both.cc +9 -18
  454. data/third_party/boringssl/ssl/d1_lib.cc +4 -3
  455. data/third_party/boringssl/ssl/d1_pkt.cc +4 -4
  456. data/third_party/boringssl/ssl/d1_srtp.cc +15 -15
  457. data/third_party/boringssl/ssl/dtls_method.cc +0 -1
  458. data/third_party/boringssl/ssl/dtls_record.cc +28 -28
  459. data/third_party/boringssl/ssl/handoff.cc +295 -91
  460. data/third_party/boringssl/ssl/handshake.cc +133 -72
  461. data/third_party/boringssl/ssl/handshake_client.cc +218 -189
  462. data/third_party/boringssl/ssl/handshake_server.cc +399 -272
  463. data/third_party/boringssl/ssl/internal.h +1413 -928
  464. data/third_party/boringssl/ssl/s3_both.cc +175 -36
  465. data/third_party/boringssl/ssl/s3_lib.cc +9 -13
  466. data/third_party/boringssl/ssl/s3_pkt.cc +63 -29
  467. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +55 -35
  468. data/third_party/boringssl/ssl/ssl_asn1.cc +57 -73
  469. data/third_party/boringssl/ssl/ssl_buffer.cc +13 -12
  470. data/third_party/boringssl/ssl/ssl_cert.cc +313 -210
  471. data/third_party/boringssl/ssl/ssl_cipher.cc +159 -221
  472. data/third_party/boringssl/ssl/ssl_file.cc +2 -0
  473. data/third_party/boringssl/ssl/ssl_key_share.cc +164 -19
  474. data/third_party/boringssl/ssl/ssl_lib.cc +847 -555
  475. data/third_party/boringssl/ssl/ssl_privkey.cc +441 -111
  476. data/third_party/boringssl/ssl/ssl_session.cc +230 -178
  477. data/third_party/boringssl/ssl/ssl_transcript.cc +21 -142
  478. data/third_party/boringssl/ssl/ssl_versions.cc +88 -93
  479. data/third_party/boringssl/ssl/ssl_x509.cc +279 -218
  480. data/third_party/boringssl/ssl/t1_enc.cc +5 -96
  481. data/third_party/boringssl/ssl/t1_lib.cc +931 -678
  482. data/third_party/boringssl/ssl/tls13_both.cc +251 -121
  483. data/third_party/boringssl/ssl/tls13_client.cc +129 -73
  484. data/third_party/boringssl/ssl/tls13_enc.cc +350 -282
  485. data/third_party/boringssl/ssl/tls13_server.cc +259 -192
  486. data/third_party/boringssl/ssl/tls_method.cc +26 -21
  487. data/third_party/boringssl/ssl/tls_record.cc +42 -47
  488. data/third_party/boringssl/third_party/fiat/curve25519.c +261 -1324
  489. data/third_party/boringssl/third_party/fiat/curve25519_32.h +911 -0
  490. data/third_party/boringssl/third_party/fiat/curve25519_64.h +559 -0
  491. data/third_party/boringssl/third_party/fiat/p256.c +238 -999
  492. data/third_party/boringssl/third_party/fiat/p256_32.h +3226 -0
  493. data/third_party/boringssl/third_party/fiat/p256_64.h +1217 -0
  494. data/third_party/upb/upb/port_def.inc +1 -1
  495. data/third_party/upb/upb/table.c +2 -1
  496. metadata +72 -44
  497. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +0 -127
  498. data/src/core/lib/gpr/mpscq.cc +0 -117
  499. data/src/core/lib/gpr/mpscq.h +0 -88
  500. data/src/core/lib/gprpp/abstract.h +0 -47
  501. data/src/core/lib/gprpp/pair.h +0 -38
  502. data/third_party/boringssl/crypto/cipher_extra/e_ssl3.c +0 -460
  503. data/third_party/boringssl/crypto/fipsmodule/modes/ccm.c +0 -256
  504. data/third_party/boringssl/include/openssl/lhash_macros.h +0 -174
  505. data/third_party/boringssl/ssl/custom_extensions.cc +0 -265
@@ -30,12 +30,12 @@
30
30
  #include "src/core/lib/iomgr/error.h"
31
31
  #include "src/core/lib/profiling/timers.h"
32
32
 
33
- static grpc_error* init_channel_elem(grpc_channel_element* elem,
34
- grpc_channel_element_args* args) {
33
+ static grpc_error* clr_init_channel_elem(grpc_channel_element* elem,
34
+ grpc_channel_element_args* args) {
35
35
  return GRPC_ERROR_NONE;
36
36
  }
37
37
 
38
- static void destroy_channel_elem(grpc_channel_element* elem) {}
38
+ static void clr_destroy_channel_elem(grpc_channel_element* elem) {}
39
39
 
40
40
  namespace {
41
41
 
@@ -71,16 +71,16 @@ static void recv_initial_metadata_ready(void* arg, grpc_error* error) {
71
71
  GRPC_ERROR_REF(error));
72
72
  }
73
73
 
74
- static grpc_error* init_call_elem(grpc_call_element* elem,
75
- const grpc_call_element_args* args) {
74
+ static grpc_error* clr_init_call_elem(grpc_call_element* elem,
75
+ const grpc_call_element_args* args) {
76
76
  GPR_ASSERT(args->context != nullptr);
77
77
  new (elem->call_data) call_data();
78
78
  return GRPC_ERROR_NONE;
79
79
  }
80
80
 
81
- static void destroy_call_elem(grpc_call_element* elem,
82
- const grpc_call_final_info* final_info,
83
- grpc_closure* ignored) {
81
+ static void clr_destroy_call_elem(grpc_call_element* elem,
82
+ const grpc_call_final_info* final_info,
83
+ grpc_closure* ignored) {
84
84
  call_data* calld = static_cast<call_data*>(elem->call_data);
85
85
  if (calld->client_stats != nullptr) {
86
86
  // Record call finished, optionally setting client_failed_to_send and
@@ -92,7 +92,7 @@ static void destroy_call_elem(grpc_call_element* elem,
92
92
  calld->~call_data();
93
93
  }
94
94
 
95
- static void start_transport_stream_op_batch(
95
+ static void clr_start_transport_stream_op_batch(
96
96
  grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
97
97
  call_data* calld = static_cast<call_data*>(elem->call_data);
98
98
  GPR_TIMER_SCOPE("clr_start_transport_stream_op_batch", 0);
@@ -142,14 +142,14 @@ static void start_transport_stream_op_batch(
142
142
  }
143
143
 
144
144
  const grpc_channel_filter grpc_client_load_reporting_filter = {
145
- start_transport_stream_op_batch,
145
+ clr_start_transport_stream_op_batch,
146
146
  grpc_channel_next_op,
147
147
  sizeof(call_data),
148
- init_call_elem,
148
+ clr_init_call_elem,
149
149
  grpc_call_stack_ignore_set_pollset_or_pollset_set,
150
- destroy_call_elem,
150
+ clr_destroy_call_elem,
151
151
  0, // sizeof(channel_data)
152
- init_channel_elem,
153
- destroy_channel_elem,
152
+ clr_init_channel_elem,
153
+ clr_destroy_channel_elem,
154
154
  grpc_channel_next_get_info,
155
155
  "client_load_reporting"};
@@ -151,6 +151,7 @@ class GrpcLb : public LoadBalancingPolicy {
151
151
  public:
152
152
  explicit BalancerCallState(
153
153
  RefCountedPtr<LoadBalancingPolicy> parent_grpclb_policy);
154
+ ~BalancerCallState();
154
155
 
155
156
  // It's the caller's responsibility to ensure that Orphan() is called from
156
157
  // inside the combiner.
@@ -164,10 +165,6 @@ class GrpcLb : public LoadBalancingPolicy {
164
165
  bool seen_serverlist() const { return seen_serverlist_; }
165
166
 
166
167
  private:
167
- GRPC_ALLOW_CLASS_TO_USE_NON_PUBLIC_DELETE
168
-
169
- ~BalancerCallState();
170
-
171
168
  GrpcLb* grpclb_policy() const {
172
169
  return static_cast<GrpcLb*>(grpclb_policy_.get());
173
170
  }
@@ -177,6 +174,12 @@ class GrpcLb : public LoadBalancingPolicy {
177
174
 
178
175
  static bool LoadReportCountersAreZero(grpc_grpclb_request* request);
179
176
 
177
+ static void MaybeSendClientLoadReport(void* arg, grpc_error* error);
178
+ static void ClientLoadReportDone(void* arg, grpc_error* error);
179
+ static void OnInitialRequestSent(void* arg, grpc_error* error);
180
+ static void OnBalancerMessageReceived(void* arg, grpc_error* error);
181
+ static void OnBalancerStatusReceived(void* arg, grpc_error* error);
182
+
180
183
  static void MaybeSendClientLoadReportLocked(void* arg, grpc_error* error);
181
184
  static void ClientLoadReportDoneLocked(void* arg, grpc_error* error);
182
185
  static void OnInitialRequestSentLocked(void* arg, grpc_error* error);
@@ -315,17 +318,21 @@ class GrpcLb : public LoadBalancingPolicy {
315
318
  // Helper functions used in UpdateLocked().
316
319
  void ProcessAddressesAndChannelArgsLocked(const ServerAddressList& addresses,
317
320
  const grpc_channel_args& args);
321
+ static void OnBalancerChannelConnectivityChanged(void* arg,
322
+ grpc_error* error);
318
323
  static void OnBalancerChannelConnectivityChangedLocked(void* arg,
319
324
  grpc_error* error);
320
325
  void CancelBalancerChannelConnectivityWatchLocked();
321
326
 
322
327
  // Methods for dealing with fallback state.
323
328
  void MaybeEnterFallbackModeAfterStartup();
329
+ static void OnFallbackTimer(void* arg, grpc_error* error);
324
330
  static void OnFallbackTimerLocked(void* arg, grpc_error* error);
325
331
 
326
332
  // Methods for dealing with the balancer call.
327
333
  void StartBalancerCallLocked();
328
334
  void StartBalancerCallRetryTimerLocked();
335
+ static void OnBalancerCallRetryTimer(void* arg, grpc_error* error);
329
336
  static void OnBalancerCallRetryTimerLocked(void* arg, grpc_error* error);
330
337
 
331
338
  // Methods for dealing with the child policy.
@@ -660,7 +667,7 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
660
667
  gpr_log(GPR_INFO,
661
668
  "[grpclb %p helper %p] pending child policy %p reports state=%s",
662
669
  parent_.get(), this, parent_->pending_child_policy_.get(),
663
- grpc_connectivity_state_name(state));
670
+ ConnectivityStateName(state));
664
671
  }
665
672
  if (state != GRPC_CHANNEL_READY) return;
666
673
  grpc_pollset_set_del_pollset_set(
@@ -700,8 +707,7 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
700
707
  if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
701
708
  gpr_log(GPR_INFO,
702
709
  "[grpclb %p helper %p] state=%s passing child picker %p as-is",
703
- parent_.get(), this, grpc_connectivity_state_name(state),
704
- picker.get());
710
+ parent_.get(), this, ConnectivityStateName(state), picker.get());
705
711
  }
706
712
  parent_->channel_control_helper()->UpdateState(state, std::move(picker));
707
713
  return;
@@ -709,8 +715,7 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
709
715
  // Cases 2 and 3a: wrap picker from the child in our own picker.
710
716
  if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
711
717
  gpr_log(GPR_INFO, "[grpclb %p helper %p] state=%s wrapping child picker %p",
712
- parent_.get(), this, grpc_connectivity_state_name(state),
713
- picker.get());
718
+ parent_.get(), this, ConnectivityStateName(state), picker.get());
714
719
  }
715
720
  RefCountedPtr<GrpcLbClientStats> client_stats;
716
721
  if (parent_->lb_calld_ != nullptr &&
@@ -718,9 +723,8 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
718
723
  client_stats = parent_->lb_calld_->client_stats()->Ref();
719
724
  }
720
725
  parent_->channel_control_helper()->UpdateState(
721
- state, UniquePtr<SubchannelPicker>(
722
- New<Picker>(parent_.get(), parent_->serverlist_,
723
- std::move(picker), std::move(client_stats))));
726
+ state, MakeUnique<Picker>(parent_.get(), parent_->serverlist_,
727
+ std::move(picker), std::move(client_stats)));
724
728
  }
725
729
 
726
730
  void GrpcLb::Helper::RequestReresolution() {
@@ -789,14 +793,6 @@ GrpcLb::BalancerCallState::BalancerCallState(
789
793
  // Init other data associated with the LB call.
790
794
  grpc_metadata_array_init(&lb_initial_metadata_recv_);
791
795
  grpc_metadata_array_init(&lb_trailing_metadata_recv_);
792
- GRPC_CLOSURE_INIT(&lb_on_initial_request_sent_, OnInitialRequestSentLocked,
793
- this, grpc_combiner_scheduler(grpclb_policy()->combiner()));
794
- GRPC_CLOSURE_INIT(&lb_on_balancer_message_received_,
795
- OnBalancerMessageReceivedLocked, this,
796
- grpc_combiner_scheduler(grpclb_policy()->combiner()));
797
- GRPC_CLOSURE_INIT(&lb_on_balancer_status_received_,
798
- OnBalancerStatusReceivedLocked, this,
799
- grpc_combiner_scheduler(grpclb_policy()->combiner()));
800
796
  }
801
797
 
802
798
  GrpcLb::BalancerCallState::~BalancerCallState() {
@@ -854,6 +850,8 @@ void GrpcLb::BalancerCallState::StartQuery() {
854
850
  // with the callback.
855
851
  auto self = Ref(DEBUG_LOCATION, "on_initial_request_sent");
856
852
  self.release();
853
+ GRPC_CLOSURE_INIT(&lb_on_initial_request_sent_, OnInitialRequestSent, this,
854
+ grpc_schedule_on_exec_ctx);
857
855
  call_error = grpc_call_start_batch_and_execute(
858
856
  lb_call_, ops, (size_t)(op - ops), &lb_on_initial_request_sent_);
859
857
  GPR_ASSERT(GRPC_CALL_OK == call_error);
@@ -876,6 +874,8 @@ void GrpcLb::BalancerCallState::StartQuery() {
876
874
  // with the callback.
877
875
  self = Ref(DEBUG_LOCATION, "on_message_received");
878
876
  self.release();
877
+ GRPC_CLOSURE_INIT(&lb_on_balancer_message_received_,
878
+ OnBalancerMessageReceived, this, grpc_schedule_on_exec_ctx);
879
879
  call_error = grpc_call_start_batch_and_execute(
880
880
  lb_call_, ops, (size_t)(op - ops), &lb_on_balancer_message_received_);
881
881
  GPR_ASSERT(GRPC_CALL_OK == call_error);
@@ -892,6 +892,8 @@ void GrpcLb::BalancerCallState::StartQuery() {
892
892
  // This callback signals the end of the LB call, so it relies on the initial
893
893
  // ref instead of a new ref. When it's invoked, it's the initial ref that is
894
894
  // unreffed.
895
+ GRPC_CLOSURE_INIT(&lb_on_balancer_status_received_, OnBalancerStatusReceived,
896
+ this, grpc_schedule_on_exec_ctx);
895
897
  call_error = grpc_call_start_batch_and_execute(
896
898
  lb_call_, ops, (size_t)(op - ops), &lb_on_balancer_status_received_);
897
899
  GPR_ASSERT(GRPC_CALL_OK == call_error);
@@ -900,14 +902,22 @@ void GrpcLb::BalancerCallState::StartQuery() {
900
902
  void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
901
903
  const grpc_millis next_client_load_report_time =
902
904
  ExecCtx::Get()->Now() + client_stats_report_interval_;
903
- GRPC_CLOSURE_INIT(&client_load_report_closure_,
904
- MaybeSendClientLoadReportLocked, this,
905
- grpc_combiner_scheduler(grpclb_policy()->combiner()));
905
+ GRPC_CLOSURE_INIT(&client_load_report_closure_, MaybeSendClientLoadReport,
906
+ this, grpc_schedule_on_exec_ctx);
906
907
  grpc_timer_init(&client_load_report_timer_, next_client_load_report_time,
907
908
  &client_load_report_closure_);
908
909
  client_load_report_timer_callback_pending_ = true;
909
910
  }
910
911
 
912
+ void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(void* arg,
913
+ grpc_error* error) {
914
+ BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
915
+ lb_calld->grpclb_policy()->combiner()->Run(
916
+ GRPC_CLOSURE_INIT(&lb_calld->client_load_report_closure_,
917
+ MaybeSendClientLoadReportLocked, lb_calld, nullptr),
918
+ GRPC_ERROR_REF(error));
919
+ }
920
+
911
921
  void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked(
912
922
  void* arg, grpc_error* error) {
913
923
  BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
@@ -972,8 +982,8 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
972
982
  memset(&op, 0, sizeof(op));
973
983
  op.op = GRPC_OP_SEND_MESSAGE;
974
984
  op.data.send_message.send_message = send_message_payload_;
975
- GRPC_CLOSURE_INIT(&client_load_report_closure_, ClientLoadReportDoneLocked,
976
- this, grpc_combiner_scheduler(grpclb_policy()->combiner()));
985
+ GRPC_CLOSURE_INIT(&client_load_report_closure_, ClientLoadReportDone, this,
986
+ grpc_schedule_on_exec_ctx);
977
987
  grpc_call_error call_error = grpc_call_start_batch_and_execute(
978
988
  lb_call_, &op, 1, &client_load_report_closure_);
979
989
  if (GPR_UNLIKELY(call_error != GRPC_CALL_OK)) {
@@ -984,6 +994,15 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
984
994
  }
985
995
  }
986
996
 
997
+ void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
998
+ grpc_error* error) {
999
+ BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
1000
+ lb_calld->grpclb_policy()->combiner()->Run(
1001
+ GRPC_CLOSURE_INIT(&lb_calld->client_load_report_closure_,
1002
+ ClientLoadReportDoneLocked, lb_calld, nullptr),
1003
+ GRPC_ERROR_REF(error));
1004
+ }
1005
+
987
1006
  void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(void* arg,
988
1007
  grpc_error* error) {
989
1008
  BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
@@ -997,6 +1016,15 @@ void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(void* arg,
997
1016
  lb_calld->ScheduleNextClientLoadReportLocked();
998
1017
  }
999
1018
 
1019
+ void GrpcLb::BalancerCallState::OnInitialRequestSent(void* arg,
1020
+ grpc_error* error) {
1021
+ BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
1022
+ lb_calld->grpclb_policy()->combiner()->Run(
1023
+ GRPC_CLOSURE_INIT(&lb_calld->lb_on_initial_request_sent_,
1024
+ OnInitialRequestSentLocked, lb_calld, nullptr),
1025
+ GRPC_ERROR_REF(error));
1026
+ }
1027
+
1000
1028
  void GrpcLb::BalancerCallState::OnInitialRequestSentLocked(void* arg,
1001
1029
  grpc_error* error) {
1002
1030
  BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
@@ -1012,6 +1040,15 @@ void GrpcLb::BalancerCallState::OnInitialRequestSentLocked(void* arg,
1012
1040
  lb_calld->Unref(DEBUG_LOCATION, "on_initial_request_sent");
1013
1041
  }
1014
1042
 
1043
+ void GrpcLb::BalancerCallState::OnBalancerMessageReceived(void* arg,
1044
+ grpc_error* error) {
1045
+ BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
1046
+ lb_calld->grpclb_policy()->combiner()->Run(
1047
+ GRPC_CLOSURE_INIT(&lb_calld->lb_on_balancer_message_received_,
1048
+ OnBalancerMessageReceivedLocked, lb_calld, nullptr),
1049
+ GRPC_ERROR_REF(error));
1050
+ }
1051
+
1015
1052
  void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked(
1016
1053
  void* arg, grpc_error* error) {
1017
1054
  BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
@@ -1147,6 +1184,9 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked(
1147
1184
  op.flags = 0;
1148
1185
  op.reserved = nullptr;
1149
1186
  // Reuse the "OnBalancerMessageReceivedLocked" ref taken in StartQuery().
1187
+ GRPC_CLOSURE_INIT(&lb_calld->lb_on_balancer_message_received_,
1188
+ GrpcLb::BalancerCallState::OnBalancerMessageReceived,
1189
+ lb_calld, grpc_schedule_on_exec_ctx);
1150
1190
  const grpc_call_error call_error = grpc_call_start_batch_and_execute(
1151
1191
  lb_calld->lb_call_, &op, 1,
1152
1192
  &lb_calld->lb_on_balancer_message_received_);
@@ -1156,6 +1196,15 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked(
1156
1196
  }
1157
1197
  }
1158
1198
 
1199
+ void GrpcLb::BalancerCallState::OnBalancerStatusReceived(void* arg,
1200
+ grpc_error* error) {
1201
+ BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
1202
+ lb_calld->grpclb_policy()->combiner()->Run(
1203
+ GRPC_CLOSURE_INIT(&lb_calld->lb_on_balancer_status_received_,
1204
+ OnBalancerStatusReceivedLocked, lb_calld, nullptr),
1205
+ GRPC_ERROR_REF(error));
1206
+ }
1207
+
1159
1208
  void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
1160
1209
  void* arg, grpc_error* error) {
1161
1210
  BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
@@ -1318,12 +1367,6 @@ GrpcLb::GrpcLb(Args args)
1318
1367
  .set_jitter(GRPC_GRPCLB_RECONNECT_JITTER)
1319
1368
  .set_max_backoff(GRPC_GRPCLB_RECONNECT_MAX_BACKOFF_SECONDS *
1320
1369
  1000)) {
1321
- // Initialization.
1322
- GRPC_CLOSURE_INIT(&lb_on_fallback_, &GrpcLb::OnFallbackTimerLocked, this,
1323
- grpc_combiner_scheduler(combiner()));
1324
- GRPC_CLOSURE_INIT(&lb_channel_on_connectivity_changed_,
1325
- &GrpcLb::OnBalancerChannelConnectivityChangedLocked, this,
1326
- grpc_combiner_scheduler(args.combiner));
1327
1370
  // Record server name.
1328
1371
  const grpc_arg* arg = grpc_channel_args_find(args.args, GRPC_ARG_SERVER_URI);
1329
1372
  const char* server_uri = grpc_channel_arg_get_string(arg);
@@ -1416,6 +1459,8 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
1416
1459
  // Start timer.
1417
1460
  grpc_millis deadline = ExecCtx::Get()->Now() + fallback_at_startup_timeout_;
1418
1461
  Ref(DEBUG_LOCATION, "on_fallback_timer").release(); // Ref for callback
1462
+ GRPC_CLOSURE_INIT(&lb_on_fallback_, &GrpcLb::OnFallbackTimer, this,
1463
+ grpc_schedule_on_exec_ctx);
1419
1464
  grpc_timer_init(&lb_fallback_timer_, deadline, &lb_on_fallback_);
1420
1465
  // Start watching the channel's connectivity state. If the channel
1421
1466
  // goes into state TRANSIENT_FAILURE before the timer fires, we go into
@@ -1425,6 +1470,9 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
1425
1470
  GPR_ASSERT(client_channel_elem->filter == &grpc_client_channel_filter);
1426
1471
  // Ref held by callback.
1427
1472
  Ref(DEBUG_LOCATION, "watch_lb_channel_connectivity").release();
1473
+ GRPC_CLOSURE_INIT(&lb_channel_on_connectivity_changed_,
1474
+ &GrpcLb::OnBalancerChannelConnectivityChanged, this,
1475
+ grpc_schedule_on_exec_ctx);
1428
1476
  grpc_client_channel_watch_connectivity_state(
1429
1477
  client_channel_elem,
1430
1478
  grpc_polling_entity_create_from_pollset_set(interested_parties()),
@@ -1488,6 +1536,16 @@ void GrpcLb::ProcessAddressesAndChannelArgsLocked(
1488
1536
  response_generator_->SetResponse(std::move(result));
1489
1537
  }
1490
1538
 
1539
+ void GrpcLb::OnBalancerChannelConnectivityChanged(void* arg,
1540
+ grpc_error* error) {
1541
+ GrpcLb* self = static_cast<GrpcLb*>(arg);
1542
+ self->combiner()->Run(
1543
+ GRPC_CLOSURE_INIT(&self->lb_channel_on_connectivity_changed_,
1544
+ &GrpcLb::OnBalancerChannelConnectivityChangedLocked,
1545
+ self, nullptr),
1546
+ GRPC_ERROR_REF(error));
1547
+ }
1548
+
1491
1549
  void GrpcLb::OnBalancerChannelConnectivityChangedLocked(void* arg,
1492
1550
  grpc_error* error) {
1493
1551
  GrpcLb* self = static_cast<GrpcLb*>(arg);
@@ -1498,6 +1556,9 @@ void GrpcLb::OnBalancerChannelConnectivityChangedLocked(void* arg,
1498
1556
  grpc_channel_stack_last_element(
1499
1557
  grpc_channel_get_channel_stack(self->lb_channel_));
1500
1558
  GPR_ASSERT(client_channel_elem->filter == &grpc_client_channel_filter);
1559
+ GRPC_CLOSURE_INIT(&self->lb_channel_on_connectivity_changed_,
1560
+ &GrpcLb::OnBalancerChannelConnectivityChanged, self,
1561
+ grpc_schedule_on_exec_ctx);
1501
1562
  grpc_client_channel_watch_connectivity_state(
1502
1563
  client_channel_elem,
1503
1564
  grpc_polling_entity_create_from_pollset_set(
@@ -1567,12 +1628,21 @@ void GrpcLb::StartBalancerCallRetryTimerLocked() {
1567
1628
  // with the callback.
1568
1629
  auto self = Ref(DEBUG_LOCATION, "on_balancer_call_retry_timer");
1569
1630
  self.release();
1570
- GRPC_CLOSURE_INIT(&lb_on_call_retry_, &GrpcLb::OnBalancerCallRetryTimerLocked,
1571
- this, grpc_combiner_scheduler(combiner()));
1631
+ GRPC_CLOSURE_INIT(&lb_on_call_retry_, &GrpcLb::OnBalancerCallRetryTimer, this,
1632
+ grpc_schedule_on_exec_ctx);
1572
1633
  retry_timer_callback_pending_ = true;
1573
1634
  grpc_timer_init(&lb_call_retry_timer_, next_try, &lb_on_call_retry_);
1574
1635
  }
1575
1636
 
1637
+ void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error* error) {
1638
+ GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
1639
+ grpclb_policy->combiner()->Run(
1640
+ GRPC_CLOSURE_INIT(&grpclb_policy->lb_on_call_retry_,
1641
+ &GrpcLb::OnBalancerCallRetryTimerLocked, grpclb_policy,
1642
+ nullptr),
1643
+ GRPC_ERROR_REF(error));
1644
+ }
1645
+
1576
1646
  void GrpcLb::OnBalancerCallRetryTimerLocked(void* arg, grpc_error* error) {
1577
1647
  GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
1578
1648
  grpclb_policy->retry_timer_callback_pending_ = false;
@@ -1609,6 +1679,14 @@ void GrpcLb::MaybeEnterFallbackModeAfterStartup() {
1609
1679
  }
1610
1680
  }
1611
1681
 
1682
+ void GrpcLb::OnFallbackTimer(void* arg, grpc_error* error) {
1683
+ GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
1684
+ grpclb_policy->combiner()->Run(
1685
+ GRPC_CLOSURE_INIT(&grpclb_policy->lb_on_fallback_,
1686
+ &GrpcLb::OnFallbackTimerLocked, grpclb_policy, nullptr),
1687
+ GRPC_ERROR_REF(error));
1688
+ }
1689
+
1612
1690
  void GrpcLb::OnFallbackTimerLocked(void* arg, grpc_error* error) {
1613
1691
  GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
1614
1692
  // If we receive a serverlist after the timer fires but before this callback
@@ -1796,7 +1874,7 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
1796
1874
  public:
1797
1875
  OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
1798
1876
  LoadBalancingPolicy::Args args) const override {
1799
- return OrphanablePtr<LoadBalancingPolicy>(New<GrpcLb>(std::move(args)));
1877
+ return MakeOrphanable<GrpcLb>(std::move(args));
1800
1878
  }
1801
1879
 
1802
1880
  const char* name() const override { return kGrpclb; }
@@ -1871,8 +1949,7 @@ bool maybe_add_client_load_reporting_filter(grpc_channel_stack_builder* builder,
1871
1949
  void grpc_lb_policy_grpclb_init() {
1872
1950
  grpc_core::LoadBalancingPolicyRegistry::Builder::
1873
1951
  RegisterLoadBalancingPolicyFactory(
1874
- grpc_core::UniquePtr<grpc_core::LoadBalancingPolicyFactory>(
1875
- grpc_core::New<grpc_core::GrpcLbFactory>()));
1952
+ grpc_core::MakeUnique<grpc_core::GrpcLbFactory>());
1876
1953
  grpc_channel_init_register_stage(GRPC_CLIENT_SUBCHANNEL,
1877
1954
  GRPC_CHANNEL_INIT_BUILTIN_PRIORITY,
1878
1955
  maybe_add_client_load_reporting_filter,
@@ -201,7 +201,7 @@ void PickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
201
201
  GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
202
202
  channel_control_helper()->UpdateState(
203
203
  GRPC_CHANNEL_TRANSIENT_FAILURE,
204
- UniquePtr<SubchannelPicker>(New<TransientFailurePicker>(error)));
204
+ MakeUnique<TransientFailurePicker>(error));
205
205
  return;
206
206
  }
207
207
  // If one of the subchannels in the new list is already in state
@@ -294,7 +294,7 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
294
294
  if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_pick_first_trace)) {
295
295
  gpr_log(GPR_INFO,
296
296
  "Pick First %p selected subchannel connectivity changed to %s", p,
297
- grpc_connectivity_state_name(connectivity_state));
297
+ ConnectivityStateName(connectivity_state));
298
298
  }
299
299
  // If the new state is anything other than READY and there is a
300
300
  // pending update, switch to the pending update.
@@ -319,12 +319,11 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
319
319
  GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
320
320
  p->channel_control_helper()->UpdateState(
321
321
  GRPC_CHANNEL_TRANSIENT_FAILURE,
322
- UniquePtr<SubchannelPicker>(New<TransientFailurePicker>(error)));
322
+ MakeUnique<TransientFailurePicker>(error));
323
323
  } else {
324
324
  p->channel_control_helper()->UpdateState(
325
325
  GRPC_CHANNEL_CONNECTING,
326
- UniquePtr<SubchannelPicker>(
327
- New<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker"))));
326
+ MakeUnique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
328
327
  }
329
328
  } else {
330
329
  if (connectivity_state == GRPC_CHANNEL_TRANSIENT_FAILURE) {
@@ -339,20 +338,19 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
339
338
  p->selected_ = nullptr;
340
339
  p->subchannel_list_.reset();
341
340
  p->channel_control_helper()->UpdateState(
342
- GRPC_CHANNEL_IDLE, UniquePtr<SubchannelPicker>(New<QueuePicker>(
343
- p->Ref(DEBUG_LOCATION, "QueuePicker"))));
341
+ GRPC_CHANNEL_IDLE,
342
+ MakeUnique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
344
343
  } else {
345
344
  // This is unlikely but can happen when a subchannel has been asked
346
345
  // to reconnect by a different channel and this channel has dropped
347
346
  // some connectivity state notifications.
348
347
  if (connectivity_state == GRPC_CHANNEL_READY) {
349
348
  p->channel_control_helper()->UpdateState(
350
- GRPC_CHANNEL_READY,
351
- UniquePtr<SubchannelPicker>(New<Picker>(subchannel()->Ref())));
349
+ GRPC_CHANNEL_READY, MakeUnique<Picker>(subchannel()->Ref()));
352
350
  } else { // CONNECTING
353
351
  p->channel_control_helper()->UpdateState(
354
- connectivity_state, UniquePtr<SubchannelPicker>(New<QueuePicker>(
355
- p->Ref(DEBUG_LOCATION, "QueuePicker"))));
352
+ connectivity_state,
353
+ MakeUnique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
356
354
  }
357
355
  }
358
356
  }
@@ -396,7 +394,7 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
396
394
  GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
397
395
  p->channel_control_helper()->UpdateState(
398
396
  GRPC_CHANNEL_TRANSIENT_FAILURE,
399
- UniquePtr<SubchannelPicker>(New<TransientFailurePicker>(error)));
397
+ MakeUnique<TransientFailurePicker>(error));
400
398
  }
401
399
  }
402
400
  sd->CheckConnectivityStateAndStartWatchingLocked();
@@ -408,8 +406,7 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
408
406
  if (subchannel_list() == p->subchannel_list_.get()) {
409
407
  p->channel_control_helper()->UpdateState(
410
408
  GRPC_CHANNEL_CONNECTING,
411
- UniquePtr<SubchannelPicker>(
412
- New<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker"))));
409
+ MakeUnique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
413
410
  }
414
411
  break;
415
412
  }
@@ -448,8 +445,7 @@ void PickFirst::PickFirstSubchannelData::ProcessUnselectedReadyLocked() {
448
445
  }
449
446
  p->selected_ = this;
450
447
  p->channel_control_helper()->UpdateState(
451
- GRPC_CHANNEL_READY,
452
- UniquePtr<SubchannelPicker>(New<Picker>(subchannel()->Ref())));
448
+ GRPC_CHANNEL_READY, MakeUnique<Picker>(subchannel()->Ref()));
453
449
  for (size_t i = 0; i < subchannel_list()->num_subchannels(); ++i) {
454
450
  if (i != Index()) {
455
451
  subchannel_list()->subchannel(i)->ShutdownLocked();
@@ -488,7 +484,7 @@ class PickFirstFactory : public LoadBalancingPolicyFactory {
488
484
  public:
489
485
  OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
490
486
  LoadBalancingPolicy::Args args) const override {
491
- return OrphanablePtr<LoadBalancingPolicy>(New<PickFirst>(std::move(args)));
487
+ return MakeOrphanable<PickFirst>(std::move(args));
492
488
  }
493
489
 
494
490
  const char* name() const override { return kPickFirst; }
@@ -510,8 +506,7 @@ class PickFirstFactory : public LoadBalancingPolicyFactory {
510
506
  void grpc_lb_policy_pick_first_init() {
511
507
  grpc_core::LoadBalancingPolicyRegistry::Builder::
512
508
  RegisterLoadBalancingPolicyFactory(
513
- grpc_core::UniquePtr<grpc_core::LoadBalancingPolicyFactory>(
514
- grpc_core::New<grpc_core::PickFirstFactory>()));
509
+ grpc_core::MakeUnique<grpc_core::PickFirstFactory>());
515
510
  }
516
511
 
517
512
  void grpc_lb_policy_pick_first_shutdown() {}