grpc 1.37.1 → 1.38.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 (544) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +64 -58
  3. data/include/grpc/event_engine/README.md +38 -0
  4. data/include/grpc/event_engine/channel_args.h +28 -0
  5. data/include/grpc/event_engine/event_engine.h +336 -0
  6. data/include/grpc/event_engine/port.h +39 -0
  7. data/include/grpc/event_engine/slice_allocator.h +81 -0
  8. data/include/grpc/grpc.h +2 -2
  9. data/include/grpc/grpc_security_constants.h +14 -0
  10. data/include/grpc/impl/codegen/grpc_types.h +11 -0
  11. data/include/grpc/impl/codegen/port_platform.h +5 -0
  12. data/include/grpc/module.modulemap +14 -14
  13. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  14. data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
  15. data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
  16. data/src/core/ext/filters/client_channel/client_channel.h +489 -55
  17. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
  19. data/src/core/ext/filters/client_channel/config_selector.h +1 -1
  20. data/src/core/ext/filters/client_channel/connector.h +1 -1
  21. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
  22. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  23. data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
  24. data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
  26. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
  32. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
  33. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
  34. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
  35. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
  36. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
  41. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
  42. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
  43. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  44. data/src/core/ext/filters/client_channel/resolver.h +2 -2
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  54. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
  55. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
  56. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  57. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
  58. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
  59. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
  60. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
  61. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
  62. data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
  63. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  64. data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
  65. data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
  66. data/src/core/ext/filters/client_channel/server_address.cc +1 -1
  67. data/src/core/ext/filters/client_channel/service_config.cc +15 -14
  68. data/src/core/ext/filters/client_channel/service_config.h +7 -6
  69. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
  70. data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
  71. data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
  72. data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
  73. data/src/core/ext/filters/client_channel/subchannel.h +7 -6
  74. data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
  75. data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
  76. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
  77. data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
  78. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  79. data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
  80. data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
  81. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  82. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
  83. data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
  84. data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
  85. data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
  86. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  87. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
  88. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
  89. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  90. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
  91. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
  92. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
  93. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
  94. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
  95. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
  96. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
  97. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
  98. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
  99. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  100. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  101. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  102. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
  103. data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
  104. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  105. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
  106. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  107. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
  108. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  109. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  110. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  111. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
  112. data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
  113. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
  114. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  115. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
  116. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
  117. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
  118. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  119. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  120. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  121. data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
  122. data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
  123. data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
  124. data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
  125. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  126. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  127. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
  128. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  129. data/src/core/ext/xds/xds_api.cc +101 -93
  130. data/src/core/ext/xds/xds_api.h +6 -6
  131. data/src/core/ext/xds/xds_bootstrap.cc +97 -159
  132. data/src/core/ext/xds/xds_bootstrap.h +19 -24
  133. data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
  134. data/src/core/ext/xds/xds_certificate_provider.h +4 -4
  135. data/src/core/ext/xds/xds_channel_args.h +5 -2
  136. data/src/core/ext/xds/xds_client.cc +310 -178
  137. data/src/core/ext/xds/xds_client.h +41 -27
  138. data/src/core/ext/xds/xds_client_stats.h +3 -2
  139. data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
  140. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
  141. data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
  142. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
  143. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
  144. data/src/core/lib/channel/channel_stack.cc +10 -9
  145. data/src/core/lib/channel/channel_stack.h +10 -9
  146. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  147. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  148. data/src/core/lib/channel/channelz.cc +21 -13
  149. data/src/core/lib/channel/connected_channel.cc +4 -4
  150. data/src/core/lib/channel/handshaker.cc +7 -6
  151. data/src/core/lib/channel/handshaker.h +5 -5
  152. data/src/core/lib/event_engine/slice_allocator.cc +59 -0
  153. data/src/core/lib/event_engine/sockaddr.cc +38 -0
  154. data/src/core/lib/gprpp/ref_counted.h +28 -14
  155. data/src/core/lib/gprpp/status_helper.cc +407 -0
  156. data/src/core/lib/gprpp/status_helper.h +180 -0
  157. data/src/core/lib/http/httpcli.cc +11 -11
  158. data/src/core/lib/http/httpcli_security_connector.cc +11 -7
  159. data/src/core/lib/http/parser.cc +16 -16
  160. data/src/core/lib/http/parser.h +4 -4
  161. data/src/core/lib/iomgr/buffer_list.cc +7 -9
  162. data/src/core/lib/iomgr/buffer_list.h +4 -5
  163. data/src/core/lib/iomgr/call_combiner.cc +15 -12
  164. data/src/core/lib/iomgr/call_combiner.h +12 -14
  165. data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
  166. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  167. data/src/core/lib/iomgr/closure.h +7 -6
  168. data/src/core/lib/iomgr/combiner.cc +14 -12
  169. data/src/core/lib/iomgr/combiner.h +2 -2
  170. data/src/core/lib/iomgr/endpoint.cc +1 -1
  171. data/src/core/lib/iomgr/endpoint.h +2 -2
  172. data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
  173. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  174. data/src/core/lib/iomgr/error.cc +167 -61
  175. data/src/core/lib/iomgr/error.h +217 -106
  176. data/src/core/lib/iomgr/error_cfstream.cc +3 -2
  177. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  178. data/src/core/lib/iomgr/error_internal.h +5 -1
  179. data/src/core/lib/iomgr/ev_apple.cc +5 -5
  180. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  181. data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
  182. data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
  183. data/src/core/lib/iomgr/ev_posix.cc +9 -8
  184. data/src/core/lib/iomgr/ev_posix.h +9 -9
  185. data/src/core/lib/iomgr/exec_ctx.cc +4 -4
  186. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  187. data/src/core/lib/iomgr/executor.cc +8 -8
  188. data/src/core/lib/iomgr/executor.h +2 -2
  189. data/src/core/lib/iomgr/iomgr.cc +1 -1
  190. data/src/core/lib/iomgr/iomgr.h +1 -1
  191. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  192. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  193. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  194. data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
  195. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
  196. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  197. data/src/core/lib/iomgr/load_file.cc +4 -4
  198. data/src/core/lib/iomgr/load_file.h +2 -2
  199. data/src/core/lib/iomgr/lockfree_event.cc +5 -5
  200. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  201. data/src/core/lib/iomgr/pollset.cc +5 -5
  202. data/src/core/lib/iomgr/pollset.h +9 -9
  203. data/src/core/lib/iomgr/pollset_custom.cc +5 -5
  204. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  205. data/src/core/lib/iomgr/port.h +1 -1
  206. data/src/core/lib/iomgr/python_util.h +1 -1
  207. data/src/core/lib/iomgr/resolve_address.cc +3 -3
  208. data/src/core/lib/iomgr/resolve_address.h +6 -6
  209. data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
  210. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  211. data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
  212. data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
  213. data/src/core/lib/iomgr/resource_quota.cc +11 -10
  214. data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
  215. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  216. data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
  217. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
  218. data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
  219. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  220. data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
  221. data/src/core/lib/iomgr/tcp_custom.cc +14 -16
  222. data/src/core/lib/iomgr/tcp_custom.h +13 -12
  223. data/src/core/lib/iomgr/tcp_posix.cc +36 -34
  224. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  225. data/src/core/lib/iomgr/tcp_server.h +12 -11
  226. data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
  227. data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
  228. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
  229. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
  230. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
  231. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  232. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
  233. data/src/core/lib/iomgr/tcp_uv.cc +25 -23
  234. data/src/core/lib/iomgr/tcp_windows.cc +13 -13
  235. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  236. data/src/core/lib/iomgr/timer_custom.cc +2 -1
  237. data/src/core/lib/iomgr/timer_custom.h +1 -1
  238. data/src/core/lib/iomgr/timer_generic.cc +6 -6
  239. data/src/core/lib/iomgr/udp_server.cc +21 -20
  240. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  241. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
  242. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  243. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  244. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
  245. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  246. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  247. data/src/core/lib/iomgr/work_serializer.h +17 -1
  248. data/src/core/lib/json/json.h +1 -1
  249. data/src/core/lib/json/json_reader.cc +4 -4
  250. data/src/core/lib/matchers/matchers.cc +39 -39
  251. data/src/core/lib/matchers/matchers.h +28 -28
  252. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  253. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  254. data/src/core/lib/security/credentials/credentials.h +2 -2
  255. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
  256. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
  257. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
  258. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  259. data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
  260. data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
  261. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
  262. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  263. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
  264. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
  265. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  266. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  267. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
  268. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  269. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  270. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
  271. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
  272. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  273. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
  274. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  275. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
  276. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
  277. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  278. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
  279. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
  280. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
  281. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
  282. data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
  283. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
  284. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
  285. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  286. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
  287. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  288. data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
  289. data/src/core/lib/security/security_connector/security_connector.h +9 -4
  290. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
  291. data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
  292. data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
  293. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
  294. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
  295. data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
  296. data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
  297. data/src/core/lib/security/transport/security_handshaker.cc +33 -32
  298. data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
  299. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  300. data/src/core/lib/security/transport/tsi_error.h +2 -1
  301. data/src/core/lib/security/util/json_util.cc +2 -2
  302. data/src/core/lib/security/util/json_util.h +1 -1
  303. data/src/core/lib/surface/call.cc +46 -45
  304. data/src/core/lib/surface/call.h +2 -2
  305. data/src/core/lib/surface/channel.cc +6 -6
  306. data/src/core/lib/surface/channel.h +3 -2
  307. data/src/core/lib/surface/channel_ping.cc +1 -1
  308. data/src/core/lib/surface/completion_queue.cc +46 -47
  309. data/src/core/lib/surface/completion_queue.h +2 -1
  310. data/src/core/lib/surface/lame_client.cc +11 -11
  311. data/src/core/lib/surface/lame_client.h +1 -1
  312. data/src/core/lib/surface/server.cc +28 -22
  313. data/src/core/lib/surface/server.h +16 -15
  314. data/src/core/lib/surface/validate_metadata.cc +7 -7
  315. data/src/core/lib/surface/validate_metadata.h +3 -2
  316. data/src/core/lib/surface/version.cc +4 -2
  317. data/src/core/lib/transport/byte_stream.cc +5 -5
  318. data/src/core/lib/transport/byte_stream.h +8 -8
  319. data/src/core/lib/transport/connectivity_state.cc +1 -1
  320. data/src/core/lib/transport/error_utils.cc +19 -8
  321. data/src/core/lib/transport/error_utils.h +11 -5
  322. data/src/core/lib/transport/metadata_batch.cc +37 -37
  323. data/src/core/lib/transport/metadata_batch.h +19 -18
  324. data/src/core/lib/transport/transport.cc +4 -3
  325. data/src/core/lib/transport/transport.h +4 -4
  326. data/src/core/lib/transport/transport_op_string.cc +5 -5
  327. data/src/core/tsi/alts/crypt/gsec.h +4 -0
  328. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
  329. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
  330. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  331. data/src/core/tsi/ssl_transport_security.cc +32 -14
  332. data/src/core/tsi/ssl_transport_security.h +3 -4
  333. data/src/ruby/bin/math_services_pb.rb +1 -1
  334. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  335. data/src/ruby/lib/grpc/version.rb +1 -1
  336. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  337. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  338. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  339. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  340. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  341. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  342. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  343. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  344. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  345. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  346. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  347. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  348. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  349. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  350. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  351. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  352. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  353. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  354. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  355. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  356. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  357. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  358. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  359. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  360. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  361. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  362. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  363. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  364. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  365. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  366. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  367. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  368. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  369. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  370. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  371. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  372. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  373. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  374. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  375. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  376. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  377. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  378. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  379. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  380. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  381. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  382. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  383. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  384. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  385. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  386. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  387. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  388. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  389. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  390. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  391. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  392. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  393. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  394. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  395. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  396. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  397. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  398. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  399. data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
  400. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  401. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  402. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  403. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  404. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  405. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  406. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  407. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  408. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  409. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  410. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  411. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  412. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  413. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  414. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  415. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  416. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  417. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  418. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  419. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  420. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  421. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  422. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  423. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  424. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  425. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  426. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  427. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  428. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  429. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  430. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  431. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  432. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  433. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  434. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  435. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  436. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  437. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  438. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  439. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  440. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  441. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  442. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  443. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  444. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  445. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  446. data/third_party/boringssl-with-bazel/err_data.c +477 -461
  447. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  448. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
  449. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
  450. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
  451. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
  452. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
  453. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
  454. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  455. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
  456. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  457. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  458. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
  459. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
  460. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
  461. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
  462. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  463. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
  464. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
  465. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
  466. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  467. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  468. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  469. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
  470. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
  471. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  472. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  473. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  474. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  475. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  476. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  477. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
  478. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  479. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
  480. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
  481. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
  482. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
  483. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
  484. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
  485. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  486. data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
  487. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  488. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
  489. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  490. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
  491. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  504. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
  505. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  506. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
  507. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
  508. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
  509. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
  510. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
  511. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  512. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
  513. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
  514. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  515. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
  516. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  517. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  518. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
  519. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  520. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  521. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
  522. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
  523. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
  524. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
  525. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
  526. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
  527. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
  528. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
  529. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
  530. data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
  531. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
  532. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  533. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  534. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
  535. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
  536. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
  537. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
  538. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  539. metadata +68 -45
  540. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  541. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  542. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  543. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  544. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
@@ -63,7 +63,7 @@ grpc_slice GetSystemRootCerts() {
63
63
  grpc_slice valid_bundle_slice = grpc_empty_slice();
64
64
  size_t num_cert_files_ = GPR_ARRAY_SIZE(kLinuxCertFiles);
65
65
  for (size_t i = 0; i < num_cert_files_; i++) {
66
- grpc_error* error =
66
+ grpc_error_handle error =
67
67
  grpc_load_file(kLinuxCertFiles[i], 1, &valid_bundle_slice);
68
68
  if (error == GRPC_ERROR_NONE) {
69
69
  return valid_bundle_slice;
@@ -29,12 +29,12 @@
29
29
  #include <grpc/support/string_util.h>
30
30
 
31
31
  #include "src/core/ext/filters/client_channel/client_channel.h"
32
+ #include "src/core/lib/address_utils/sockaddr_utils.h"
32
33
  #include "src/core/lib/channel/channel_args.h"
33
34
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
34
35
  #include "src/core/lib/iomgr/pollset.h"
35
36
  #include "src/core/lib/iomgr/resolve_address.h"
36
37
  #include "src/core/lib/iomgr/sockaddr.h"
37
- #include "src/core/lib/iomgr/sockaddr_utils.h"
38
38
  #include "src/core/lib/iomgr/socket_utils.h"
39
39
  #include "src/core/lib/iomgr/unix_sockets_posix.h"
40
40
  #include "src/core/lib/security/credentials/local/local_credentials.h"
@@ -103,7 +103,7 @@ void local_check_peer(tsi_peer peer, grpc_endpoint* ep,
103
103
  }
104
104
  }
105
105
  }
106
- grpc_error* error = GRPC_ERROR_NONE;
106
+ grpc_error_handle error = GRPC_ERROR_NONE;
107
107
  if (!is_endpoint_local) {
108
108
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
109
109
  "Endpoint is neither UDS or TCP loopback address.");
@@ -181,10 +181,15 @@ class grpc_local_channel_security_connector final
181
181
  creds->connect_type());
182
182
  }
183
183
 
184
+ void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
185
+ grpc_error_handle error) override {
186
+ GRPC_ERROR_UNREF(error);
187
+ }
188
+
184
189
  bool check_call_host(absl::string_view host,
185
190
  grpc_auth_context* /*auth_context*/,
186
191
  grpc_closure* /*on_call_host_checked*/,
187
- grpc_error** error) override {
192
+ grpc_error_handle* error) override {
188
193
  if (host.empty() || host != target_name_) {
189
194
  *error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
190
195
  "local call host does not match target name");
@@ -193,7 +198,7 @@ class grpc_local_channel_security_connector final
193
198
  }
194
199
 
195
200
  void cancel_check_call_host(grpc_closure* /*on_call_host_checked*/,
196
- grpc_error* error) override {
201
+ grpc_error_handle error) override {
197
202
  GRPC_ERROR_UNREF(error);
198
203
  }
199
204
 
@@ -230,6 +235,11 @@ class grpc_local_server_security_connector final
230
235
  creds->connect_type());
231
236
  }
232
237
 
238
+ void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
239
+ grpc_error_handle error) override {
240
+ GRPC_ERROR_UNREF(error);
241
+ }
242
+
233
243
  int cmp(const grpc_security_connector* other) const override {
234
244
  return server_security_connector_cmp(
235
245
  static_cast<const grpc_server_security_connector*>(other));
@@ -55,13 +55,18 @@ class grpc_security_connector
55
55
  url_scheme_(url_scheme) {}
56
56
  ~grpc_security_connector() override = default;
57
57
 
58
- /* Check the peer. Callee takes ownership of the peer object.
59
- When done, sets *auth_context and invokes on_peer_checked. */
58
+ // Checks the peer. Callee takes ownership of the peer object.
59
+ // When done, sets *auth_context and invokes on_peer_checked.
60
60
  virtual void check_peer(
61
61
  tsi_peer peer, grpc_endpoint* ep,
62
62
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
63
63
  grpc_closure* on_peer_checked) = 0;
64
64
 
65
+ // Cancels the pending check_peer() request associated with on_peer_checked.
66
+ // If there is no such request pending, this is a no-op.
67
+ virtual void cancel_check_peer(grpc_closure* on_peer_checked,
68
+ grpc_error_handle error) = 0;
69
+
65
70
  /* Compares two security connectors. */
66
71
  virtual int cmp(const grpc_security_connector* other) const = 0;
67
72
 
@@ -103,12 +108,12 @@ class grpc_channel_security_connector : public grpc_security_connector {
103
108
  virtual bool check_call_host(absl::string_view host,
104
109
  grpc_auth_context* auth_context,
105
110
  grpc_closure* on_call_host_checked,
106
- grpc_error** error) = 0;
111
+ grpc_error_handle* error) = 0;
107
112
  /// Cancels a pending asynchronous call to
108
113
  /// grpc_channel_security_connector_check_call_host() with
109
114
  /// \a on_call_host_checked as its callback.
110
115
  virtual void cancel_check_call_host(grpc_closure* on_call_host_checked,
111
- grpc_error* error) = 0;
116
+ grpc_error_handle error) = 0;
112
117
  /// Registers handshakers with \a handshake_mgr.
113
118
  virtual void add_handshakers(const grpc_channel_args* args,
114
119
  grpc_pollset_set* interested_parties,
@@ -45,10 +45,10 @@
45
45
  #include "src/core/tsi/transport_security.h"
46
46
 
47
47
  namespace {
48
- grpc_error* ssl_check_peer(
48
+ grpc_error_handle ssl_check_peer(
49
49
  const char* peer_name, const tsi_peer* peer,
50
50
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context) {
51
- grpc_error* error = grpc_ssl_check_alpn(peer);
51
+ grpc_error_handle error = grpc_ssl_check_alpn(peer);
52
52
  if (error != GRPC_ERROR_NONE) {
53
53
  return error;
54
54
  }
@@ -145,7 +145,7 @@ class grpc_ssl_channel_security_connector final
145
145
  const char* target_name = overridden_target_name_.empty()
146
146
  ? target_name_.c_str()
147
147
  : overridden_target_name_.c_str();
148
- grpc_error* error = ssl_check_peer(target_name, &peer, auth_context);
148
+ grpc_error_handle error = ssl_check_peer(target_name, &peer, auth_context);
149
149
  if (error == GRPC_ERROR_NONE &&
150
150
  verify_options_->verify_peer_callback != nullptr) {
151
151
  const tsi_peer_property* p =
@@ -173,6 +173,11 @@ class grpc_ssl_channel_security_connector final
173
173
  tsi_peer_destruct(&peer);
174
174
  }
175
175
 
176
+ void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
177
+ grpc_error_handle error) override {
178
+ GRPC_ERROR_UNREF(error);
179
+ }
180
+
176
181
  int cmp(const grpc_security_connector* other_sc) const override {
177
182
  auto* other =
178
183
  reinterpret_cast<const grpc_ssl_channel_security_connector*>(other_sc);
@@ -185,14 +190,14 @@ class grpc_ssl_channel_security_connector final
185
190
 
186
191
  bool check_call_host(absl::string_view host, grpc_auth_context* auth_context,
187
192
  grpc_closure* /*on_call_host_checked*/,
188
- grpc_error** error) override {
193
+ grpc_error_handle* error) override {
189
194
  return grpc_ssl_check_call_host(host, target_name_.c_str(),
190
195
  overridden_target_name_.c_str(),
191
196
  auth_context, error);
192
197
  }
193
198
 
194
199
  void cancel_check_call_host(grpc_closure* /*on_call_host_checked*/,
195
- grpc_error* error) override {
200
+ grpc_error_handle error) override {
196
201
  GRPC_ERROR_UNREF(error);
197
202
  }
198
203
 
@@ -288,11 +293,16 @@ class grpc_ssl_server_security_connector
288
293
  void check_peer(tsi_peer peer, grpc_endpoint* /*ep*/,
289
294
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
290
295
  grpc_closure* on_peer_checked) override {
291
- grpc_error* error = ssl_check_peer(nullptr, &peer, auth_context);
296
+ grpc_error_handle error = ssl_check_peer(nullptr, &peer, auth_context);
292
297
  tsi_peer_destruct(&peer);
293
298
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
294
299
  }
295
300
 
301
+ void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
302
+ grpc_error_handle error) override {
303
+ GRPC_ERROR_UNREF(error);
304
+ }
305
+
296
306
  int cmp(const grpc_security_connector* other) const override {
297
307
  return server_security_connector_cmp(
298
308
  static_cast<const grpc_server_security_connector*>(other));
@@ -152,7 +152,7 @@ tsi_tls_version grpc_get_tsi_tls_version(grpc_tls_version tls_version) {
152
152
  }
153
153
  }
154
154
 
155
- grpc_error* grpc_ssl_check_alpn(const tsi_peer* peer) {
155
+ grpc_error_handle grpc_ssl_check_alpn(const tsi_peer* peer) {
156
156
  #if TSI_OPENSSL_ALPN_SUPPORT
157
157
  /* Check the ALPN if ALPN is supported. */
158
158
  const tsi_peer_property* p =
@@ -169,8 +169,8 @@ grpc_error* grpc_ssl_check_alpn(const tsi_peer* peer) {
169
169
  return GRPC_ERROR_NONE;
170
170
  }
171
171
 
172
- grpc_error* grpc_ssl_check_peer_name(absl::string_view peer_name,
173
- const tsi_peer* peer) {
172
+ grpc_error_handle grpc_ssl_check_peer_name(absl::string_view peer_name,
173
+ const tsi_peer* peer) {
174
174
  /* Check the peer name if specified. */
175
175
  if (!peer_name.empty() && !grpc_ssl_host_matches_name(peer, peer_name)) {
176
176
  return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
@@ -184,7 +184,7 @@ bool grpc_ssl_check_call_host(absl::string_view host,
184
184
  absl::string_view target_name,
185
185
  absl::string_view overridden_target_name,
186
186
  grpc_auth_context* auth_context,
187
- grpc_error** error) {
187
+ grpc_error_handle* error) {
188
188
  grpc_security_status status = GRPC_SECURITY_ERROR;
189
189
  tsi_peer peer = grpc_shallow_peer_from_ssl_auth_context(auth_context);
190
190
  if (grpc_ssl_host_matches_name(&peer, host)) status = GRPC_SECURITY_OK;
@@ -305,6 +305,9 @@ grpc_core::RefCountedPtr<grpc_auth_context> grpc_ssl_peer_to_auth_context(
305
305
  grpc_auth_context_add_property(
306
306
  ctx.get(), GRPC_TRANSPORT_SECURITY_LEVEL_PROPERTY_NAME,
307
307
  prop->value.data, prop->value.length);
308
+ } else if (strcmp(prop->name, TSI_X509_DNS_PEER_PROPERTY) == 0) {
309
+ grpc_auth_context_add_property(ctx.get(), GRPC_PEER_DNS_PROPERTY_NAME,
310
+ prop->value.data, prop->value.length);
308
311
  } else if (strcmp(prop->name, TSI_X509_URI_PEER_PROPERTY) == 0) {
309
312
  uri_count++;
310
313
  absl::string_view spiffe_id(prop->value.data, prop->value.length);
@@ -313,6 +316,12 @@ grpc_core::RefCountedPtr<grpc_auth_context> grpc_ssl_peer_to_auth_context(
313
316
  spiffe_length = prop->value.length;
314
317
  has_spiffe_id = true;
315
318
  }
319
+ } else if (strcmp(prop->name, TSI_X509_EMAIL_PEER_PROPERTY) == 0) {
320
+ grpc_auth_context_add_property(ctx.get(), GRPC_PEER_EMAIL_PROPERTY_NAME,
321
+ prop->value.data, prop->value.length);
322
+ } else if (strcmp(prop->name, TSI_X509_IP_PEER_PROPERTY) == 0) {
323
+ grpc_auth_context_add_property(ctx.get(), GRPC_PEER_IP_PROPERTY_NAME,
324
+ prop->value.data, prop->value.length);
316
325
  }
317
326
  }
318
327
  if (peer_identity_property_name != nullptr) {
@@ -376,9 +385,18 @@ tsi_peer grpc_shallow_peer_from_ssl_auth_context(
376
385
  0) {
377
386
  add_shallow_auth_property_to_peer(&peer, prop,
378
387
  TSI_X509_PEM_CERT_CHAIN_PROPERTY);
388
+ } else if (strcmp(prop->name, GRPC_PEER_DNS_PROPERTY_NAME) == 0) {
389
+ add_shallow_auth_property_to_peer(&peer, prop,
390
+ TSI_X509_DNS_PEER_PROPERTY);
379
391
  } else if (strcmp(prop->name, GRPC_PEER_SPIFFE_ID_PROPERTY_NAME) == 0) {
380
392
  add_shallow_auth_property_to_peer(&peer, prop,
381
393
  TSI_X509_URI_PEER_PROPERTY);
394
+ } else if (strcmp(prop->name, GRPC_PEER_EMAIL_PROPERTY_NAME) == 0) {
395
+ add_shallow_auth_property_to_peer(&peer, prop,
396
+ TSI_X509_EMAIL_PEER_PROPERTY);
397
+ } else if (strcmp(prop->name, GRPC_PEER_IP_PROPERTY_NAME) == 0) {
398
+ add_shallow_auth_property_to_peer(&peer, prop,
399
+ TSI_X509_IP_PEER_PROPERTY);
382
400
  }
383
401
  }
384
402
  }
@@ -44,11 +44,11 @@
44
44
  #define GRPC_SSL_URL_SCHEME "https"
45
45
 
46
46
  /* Check ALPN information returned from SSL handshakes. */
47
- grpc_error* grpc_ssl_check_alpn(const tsi_peer* peer);
47
+ grpc_error_handle grpc_ssl_check_alpn(const tsi_peer* peer);
48
48
 
49
49
  /* Check peer name information returned from SSL handshakes. */
50
- grpc_error* grpc_ssl_check_peer_name(absl::string_view peer_name,
51
- const tsi_peer* peer);
50
+ grpc_error_handle grpc_ssl_check_peer_name(absl::string_view peer_name,
51
+ const tsi_peer* peer);
52
52
  /* Compare targer_name information extracted from SSL security connectors. */
53
53
  int grpc_ssl_cmp_target_name(absl::string_view target_name,
54
54
  absl::string_view other_target_name,
@@ -59,7 +59,7 @@ bool grpc_ssl_check_call_host(absl::string_view host,
59
59
  absl::string_view target_name,
60
60
  absl::string_view overridden_target_name,
61
61
  grpc_auth_context* auth_context,
62
- grpc_error** error);
62
+ grpc_error_handle* error);
63
63
  /* Return HTTP2-compliant cipher suites that gRPC accepts by default. */
64
64
  const char* grpc_get_ssl_cipher_suites(void);
65
65
 
@@ -46,7 +46,7 @@ namespace grpc_core {
46
46
  namespace {
47
47
 
48
48
  tsi_ssl_pem_key_cert_pair* ConvertToTsiPemKeyCertPair(
49
- const grpc_core::PemKeyCertPairList& cert_pair_list) {
49
+ const PemKeyCertPairList& cert_pair_list) {
50
50
  tsi_ssl_pem_key_cert_pair* tsi_pairs = nullptr;
51
51
  size_t num_key_cert_pairs = cert_pair_list.size();
52
52
  if (num_key_cert_pairs > 0) {
@@ -68,11 +68,11 @@ tsi_ssl_pem_key_cert_pair* ConvertToTsiPemKeyCertPair(
68
68
  } // namespace
69
69
 
70
70
  // -------------------channel security connector-------------------
71
- grpc_core::RefCountedPtr<grpc_channel_security_connector>
71
+ RefCountedPtr<grpc_channel_security_connector>
72
72
  TlsChannelSecurityConnector::CreateTlsChannelSecurityConnector(
73
- grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
74
- grpc_core::RefCountedPtr<grpc_tls_credentials_options> options,
75
- grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
73
+ RefCountedPtr<grpc_channel_credentials> channel_creds,
74
+ RefCountedPtr<grpc_tls_credentials_options> options,
75
+ RefCountedPtr<grpc_call_credentials> request_metadata_creds,
76
76
  const char* target_name, const char* overridden_target_name,
77
77
  tsi_ssl_session_cache* ssl_session_cache) {
78
78
  if (channel_creds == nullptr) {
@@ -93,18 +93,16 @@ TlsChannelSecurityConnector::CreateTlsChannelSecurityConnector(
93
93
  "TlsChannelSecurityConnectorCreate()");
94
94
  return nullptr;
95
95
  }
96
- grpc_core::RefCountedPtr<TlsChannelSecurityConnector> c =
97
- grpc_core::MakeRefCounted<TlsChannelSecurityConnector>(
98
- std::move(channel_creds), std::move(options),
99
- std::move(request_metadata_creds), target_name,
100
- overridden_target_name, ssl_session_cache);
101
- return c;
96
+ return MakeRefCounted<TlsChannelSecurityConnector>(
97
+ std::move(channel_creds), std::move(options),
98
+ std::move(request_metadata_creds), target_name, overridden_target_name,
99
+ ssl_session_cache);
102
100
  }
103
101
 
104
102
  TlsChannelSecurityConnector::TlsChannelSecurityConnector(
105
- grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
106
- grpc_core::RefCountedPtr<grpc_tls_credentials_options> options,
107
- grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
103
+ RefCountedPtr<grpc_channel_credentials> channel_creds,
104
+ RefCountedPtr<grpc_tls_credentials_options> options,
105
+ RefCountedPtr<grpc_call_credentials> request_metadata_creds,
108
106
  const char* target_name, const char* overridden_target_name,
109
107
  tsi_ssl_session_cache* ssl_session_cache)
110
108
  : grpc_channel_security_connector(GRPC_SSL_URL_SCHEME,
@@ -120,7 +118,7 @@ TlsChannelSecurityConnector::TlsChannelSecurityConnector(
120
118
  check_arg_ = ServerAuthorizationCheckArgCreate(this);
121
119
  absl::string_view host;
122
120
  absl::string_view port;
123
- grpc_core::SplitHostPort(target_name, &host, &port);
121
+ SplitHostPort(target_name, &host, &port);
124
122
  target_name_ = std::string(host);
125
123
  // Create a watcher.
126
124
  auto watcher_ptr = absl::make_unique<TlsChannelCertificateWatcher>(this);
@@ -172,8 +170,8 @@ TlsChannelSecurityConnector::~TlsChannelSecurityConnector() {
172
170
 
173
171
  void TlsChannelSecurityConnector::add_handshakers(
174
172
  const grpc_channel_args* args, grpc_pollset_set* /*interested_parties*/,
175
- grpc_core::HandshakeManager* handshake_mgr) {
176
- grpc_core::MutexLock lock(&mu_);
173
+ HandshakeManager* handshake_mgr) {
174
+ MutexLock lock(&mu_);
177
175
  if (client_handshaker_factory_ != nullptr) {
178
176
  // Instantiate TSI handshaker.
179
177
  tsi_handshaker* tsi_hs = nullptr;
@@ -188,7 +186,7 @@ void TlsChannelSecurityConnector::add_handshakers(
188
186
  return;
189
187
  }
190
188
  // Create handshakers.
191
- handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this, args));
189
+ handshake_mgr->Add(SecurityHandshakerCreate(tsi_hs, this, args));
192
190
  return;
193
191
  }
194
192
  // TODO(ZhenLian): Implement the logic(delegation to
@@ -199,14 +197,14 @@ void TlsChannelSecurityConnector::add_handshakers(
199
197
 
200
198
  void TlsChannelSecurityConnector::check_peer(
201
199
  tsi_peer peer, grpc_endpoint* /*ep*/,
202
- grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
200
+ RefCountedPtr<grpc_auth_context>* auth_context,
203
201
  grpc_closure* on_peer_checked) {
204
202
  const char* target_name = overridden_target_name_.empty()
205
203
  ? target_name_.c_str()
206
204
  : overridden_target_name_.c_str();
207
- grpc_error* error = grpc_ssl_check_alpn(&peer);
205
+ grpc_error_handle error = grpc_ssl_check_alpn(&peer);
208
206
  if (error != GRPC_ERROR_NONE) {
209
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
207
+ ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
210
208
  tsi_peer_destruct(&peer);
211
209
  return;
212
210
  }
@@ -216,7 +214,7 @@ void TlsChannelSecurityConnector::check_peer(
216
214
  /* Do the default host name check if specifying the target name. */
217
215
  error = internal::TlsCheckHostName(target_name, &peer);
218
216
  if (error != GRPC_ERROR_NONE) {
219
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
217
+ ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
220
218
  tsi_peer_destruct(&peer);
221
219
  return;
222
220
  }
@@ -299,7 +297,7 @@ void TlsChannelSecurityConnector::check_peer(
299
297
  error = ProcessServerAuthorizationCheckResult(check_arg_);
300
298
  }
301
299
  }
302
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
300
+ ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
303
301
  tsi_peer_destruct(&peer);
304
302
  }
305
303
 
@@ -317,7 +315,7 @@ int TlsChannelSecurityConnector::cmp(
317
315
 
318
316
  bool TlsChannelSecurityConnector::check_call_host(
319
317
  absl::string_view host, grpc_auth_context* auth_context,
320
- grpc_closure* /*on_call_host_checked*/, grpc_error** error) {
318
+ grpc_closure* /*on_call_host_checked*/, grpc_error_handle* error) {
321
319
  if (options_->server_verification_option() ==
322
320
  GRPC_TLS_SKIP_HOSTNAME_VERIFICATION ||
323
321
  options_->server_verification_option() ==
@@ -330,16 +328,15 @@ bool TlsChannelSecurityConnector::check_call_host(
330
328
  }
331
329
 
332
330
  void TlsChannelSecurityConnector::cancel_check_call_host(
333
- grpc_closure* /*on_call_host_checked*/, grpc_error* error) {
331
+ grpc_closure* /*on_call_host_checked*/, grpc_error_handle error) {
334
332
  GRPC_ERROR_UNREF(error);
335
333
  }
336
334
 
337
335
  void TlsChannelSecurityConnector::TlsChannelCertificateWatcher::
338
- OnCertificatesChanged(
339
- absl::optional<absl::string_view> root_certs,
340
- absl::optional<grpc_core::PemKeyCertPairList> key_cert_pairs) {
336
+ OnCertificatesChanged(absl::optional<absl::string_view> root_certs,
337
+ absl::optional<PemKeyCertPairList> key_cert_pairs) {
341
338
  GPR_ASSERT(security_connector_ != nullptr);
342
- grpc_core::MutexLock lock(&security_connector_->mu_);
339
+ MutexLock lock(&security_connector_->mu_);
343
340
  if (root_certs.has_value()) {
344
341
  security_connector_->pem_root_certs_ = root_certs;
345
342
  }
@@ -362,16 +359,16 @@ void TlsChannelSecurityConnector::TlsChannelCertificateWatcher::
362
359
  // TODO(ZhenLian): implement the logic to signal waiting handshakers once
363
360
  // BlockOnInitialCredentialHandshaker is implemented.
364
361
  void TlsChannelSecurityConnector::TlsChannelCertificateWatcher::OnError(
365
- grpc_error* root_cert_error, grpc_error* identity_cert_error) {
362
+ grpc_error_handle root_cert_error, grpc_error_handle identity_cert_error) {
366
363
  if (root_cert_error != GRPC_ERROR_NONE) {
367
364
  gpr_log(GPR_ERROR,
368
365
  "TlsChannelCertificateWatcher getting root_cert_error: %s",
369
- grpc_error_string(root_cert_error));
366
+ grpc_error_std_string(root_cert_error).c_str());
370
367
  }
371
368
  if (identity_cert_error != GRPC_ERROR_NONE) {
372
369
  gpr_log(GPR_ERROR,
373
370
  "TlsChannelCertificateWatcher getting identity_cert_error: %s",
374
- grpc_error_string(identity_cert_error));
371
+ grpc_error_std_string(identity_cert_error).c_str());
375
372
  }
376
373
  GRPC_ERROR_UNREF(root_cert_error);
377
374
  GRPC_ERROR_UNREF(identity_cert_error);
@@ -417,16 +414,17 @@ TlsChannelSecurityConnector::UpdateHandshakerFactoryLocked() {
417
414
  void TlsChannelSecurityConnector::ServerAuthorizationCheckDone(
418
415
  grpc_tls_server_authorization_check_arg* arg) {
419
416
  GPR_ASSERT(arg != nullptr);
420
- grpc_core::ExecCtx exec_ctx;
421
- grpc_error* error = ProcessServerAuthorizationCheckResult(arg);
417
+ ExecCtx exec_ctx;
418
+ grpc_error_handle error = ProcessServerAuthorizationCheckResult(arg);
422
419
  TlsChannelSecurityConnector* connector =
423
420
  static_cast<TlsChannelSecurityConnector*>(arg->cb_user_data);
424
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, connector->on_peer_checked_, error);
421
+ ExecCtx::Run(DEBUG_LOCATION, connector->on_peer_checked_, error);
425
422
  }
426
423
 
427
- grpc_error* TlsChannelSecurityConnector::ProcessServerAuthorizationCheckResult(
424
+ grpc_error_handle
425
+ TlsChannelSecurityConnector::ProcessServerAuthorizationCheckResult(
428
426
  grpc_tls_server_authorization_check_arg* arg) {
429
- grpc_error* error = GRPC_ERROR_NONE;
427
+ grpc_error_handle error = GRPC_ERROR_NONE;
430
428
  /* Server authorization check is cancelled by caller. */
431
429
  if (arg->status == GRPC_STATUS_CANCELLED) {
432
430
  error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
@@ -491,10 +489,10 @@ void TlsChannelSecurityConnector::ServerAuthorizationCheckArgDestroy(
491
489
  }
492
490
 
493
491
  // -------------------server security connector-------------------
494
- grpc_core::RefCountedPtr<grpc_server_security_connector>
492
+ RefCountedPtr<grpc_server_security_connector>
495
493
  TlsServerSecurityConnector::CreateTlsServerSecurityConnector(
496
- grpc_core::RefCountedPtr<grpc_server_credentials> server_creds,
497
- grpc_core::RefCountedPtr<grpc_tls_credentials_options> options) {
494
+ RefCountedPtr<grpc_server_credentials> server_creds,
495
+ RefCountedPtr<grpc_tls_credentials_options> options) {
498
496
  if (server_creds == nullptr) {
499
497
  gpr_log(GPR_ERROR,
500
498
  "server_creds is nullptr in "
@@ -507,15 +505,13 @@ TlsServerSecurityConnector::CreateTlsServerSecurityConnector(
507
505
  "TlsServerSecurityConnectorCreate()");
508
506
  return nullptr;
509
507
  }
510
- grpc_core::RefCountedPtr<TlsServerSecurityConnector> c =
511
- grpc_core::MakeRefCounted<TlsServerSecurityConnector>(
512
- std::move(server_creds), std::move(options));
513
- return c;
508
+ return MakeRefCounted<TlsServerSecurityConnector>(std::move(server_creds),
509
+ std::move(options));
514
510
  }
515
511
 
516
512
  TlsServerSecurityConnector::TlsServerSecurityConnector(
517
- grpc_core::RefCountedPtr<grpc_server_credentials> server_creds,
518
- grpc_core::RefCountedPtr<grpc_tls_credentials_options> options)
513
+ RefCountedPtr<grpc_server_credentials> server_creds,
514
+ RefCountedPtr<grpc_tls_credentials_options> options)
519
515
  : grpc_server_security_connector(GRPC_SSL_URL_SCHEME,
520
516
  std::move(server_creds)),
521
517
  options_(std::move(options)) {
@@ -551,8 +547,8 @@ TlsServerSecurityConnector::~TlsServerSecurityConnector() {
551
547
 
552
548
  void TlsServerSecurityConnector::add_handshakers(
553
549
  const grpc_channel_args* args, grpc_pollset_set* /*interested_parties*/,
554
- grpc_core::HandshakeManager* handshake_mgr) {
555
- grpc_core::MutexLock lock(&mu_);
550
+ HandshakeManager* handshake_mgr) {
551
+ MutexLock lock(&mu_);
556
552
  if (server_handshaker_factory_ != nullptr) {
557
553
  // Instantiate TSI handshaker.
558
554
  tsi_handshaker* tsi_hs = nullptr;
@@ -564,7 +560,7 @@ void TlsServerSecurityConnector::add_handshakers(
564
560
  return;
565
561
  }
566
562
  // Create handshakers.
567
- handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this, args));
563
+ handshake_mgr->Add(SecurityHandshakerCreate(tsi_hs, this, args));
568
564
  return;
569
565
  }
570
566
  // TODO(ZhenLian): Implement the logic(delegation to
@@ -575,13 +571,13 @@ void TlsServerSecurityConnector::add_handshakers(
575
571
 
576
572
  void TlsServerSecurityConnector::check_peer(
577
573
  tsi_peer peer, grpc_endpoint* /*ep*/,
578
- grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
574
+ RefCountedPtr<grpc_auth_context>* auth_context,
579
575
  grpc_closure* on_peer_checked) {
580
- grpc_error* error = grpc_ssl_check_alpn(&peer);
576
+ grpc_error_handle error = grpc_ssl_check_alpn(&peer);
581
577
  *auth_context =
582
578
  grpc_ssl_peer_to_auth_context(&peer, GRPC_TLS_TRANSPORT_SECURITY_TYPE);
583
579
  tsi_peer_destruct(&peer);
584
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
580
+ ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
585
581
  }
586
582
 
587
583
  int TlsServerSecurityConnector::cmp(
@@ -591,11 +587,10 @@ int TlsServerSecurityConnector::cmp(
591
587
  }
592
588
 
593
589
  void TlsServerSecurityConnector::TlsServerCertificateWatcher::
594
- OnCertificatesChanged(
595
- absl::optional<absl::string_view> root_certs,
596
- absl::optional<grpc_core::PemKeyCertPairList> key_cert_pairs) {
590
+ OnCertificatesChanged(absl::optional<absl::string_view> root_certs,
591
+ absl::optional<PemKeyCertPairList> key_cert_pairs) {
597
592
  GPR_ASSERT(security_connector_ != nullptr);
598
- grpc_core::MutexLock lock(&security_connector_->mu_);
593
+ MutexLock lock(&security_connector_->mu_);
599
594
  if (root_certs.has_value()) {
600
595
  security_connector_->pem_root_certs_ = root_certs;
601
596
  }
@@ -622,16 +617,16 @@ void TlsServerSecurityConnector::TlsServerCertificateWatcher::
622
617
  // TODO(ZhenLian): implement the logic to signal waiting handshakers once
623
618
  // BlockOnInitialCredentialHandshaker is implemented.
624
619
  void TlsServerSecurityConnector::TlsServerCertificateWatcher::OnError(
625
- grpc_error* root_cert_error, grpc_error* identity_cert_error) {
620
+ grpc_error_handle root_cert_error, grpc_error_handle identity_cert_error) {
626
621
  if (root_cert_error != GRPC_ERROR_NONE) {
627
622
  gpr_log(GPR_ERROR,
628
623
  "TlsServerCertificateWatcher getting root_cert_error: %s",
629
- grpc_error_string(root_cert_error));
624
+ grpc_error_std_string(root_cert_error).c_str());
630
625
  }
631
626
  if (identity_cert_error != GRPC_ERROR_NONE) {
632
627
  gpr_log(GPR_ERROR,
633
628
  "TlsServerCertificateWatcher getting identity_cert_error: %s",
634
- grpc_error_string(identity_cert_error));
629
+ grpc_error_std_string(identity_cert_error).c_str());
635
630
  }
636
631
  GRPC_ERROR_UNREF(root_cert_error);
637
632
  GRPC_ERROR_UNREF(identity_cert_error);
@@ -672,7 +667,8 @@ TlsServerSecurityConnector::UpdateHandshakerFactoryLocked() {
672
667
 
673
668
  namespace internal {
674
669
 
675
- grpc_error* TlsCheckHostName(const char* peer_name, const tsi_peer* peer) {
670
+ grpc_error_handle TlsCheckHostName(const char* peer_name,
671
+ const tsi_peer* peer) {
676
672
  /* Check the peer name if specified. */
677
673
  if (peer_name != nullptr && !grpc_ssl_host_matches_name(peer, peer_name)) {
678
674
  return GRPC_ERROR_CREATE_FROM_COPIED_STRING(