grpc 1.8.7 → 1.9.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 (488) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +549 -325
  3. data/include/grpc/impl/codegen/grpc_types.h +1 -2
  4. data/include/grpc/impl/codegen/port_platform.h +46 -5
  5. data/include/grpc/impl/codegen/slice.h +1 -2
  6. data/include/grpc/module.modulemap +0 -2
  7. data/include/grpc/slice_buffer.h +1 -2
  8. data/include/grpc/support/log.h +4 -2
  9. data/include/grpc/support/thd.h +4 -1
  10. data/include/grpc/support/tls.h +6 -0
  11. data/include/grpc/support/tls_gcc.h +5 -40
  12. data/include/grpc/support/tls_msvc.h +9 -0
  13. data/include/grpc/support/tls_pthread.h +9 -0
  14. data/src/core/ext/filters/client_channel/backup_poller.cc +32 -29
  15. data/src/core/ext/filters/client_channel/backup_poller.h +2 -2
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +26 -32
  17. data/src/core/ext/filters/client_channel/client_channel.cc +325 -356
  18. data/src/core/ext/filters/client_channel/client_channel.h +4 -12
  19. data/src/core/ext/filters/client_channel/client_channel_factory.cc +9 -14
  20. data/src/core/ext/filters/client_channel/client_channel_factory.h +7 -20
  21. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +7 -10
  22. data/src/core/ext/filters/client_channel/connector.cc +6 -7
  23. data/src/core/ext/filters/client_channel/connector.h +6 -16
  24. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +38 -50
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -8
  26. data/src/core/ext/filters/client_channel/http_proxy.cc +9 -13
  27. data/src/core/ext/filters/client_channel/http_proxy.h +0 -8
  28. data/src/core/ext/filters/client_channel/lb_policy.cc +72 -94
  29. data/src/core/ext/filters/client_channel/lb_policy.h +83 -92
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -19
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +0 -8
  32. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +474 -591
  33. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -8
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +2 -10
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +6 -6
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +0 -8
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +0 -9
  38. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +0 -9
  39. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +3 -4
  40. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +9 -12
  41. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +160 -182
  42. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -221
  43. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +24 -35
  44. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -20
  45. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +6 -9
  46. data/src/core/ext/filters/client_channel/lb_policy_factory.h +4 -15
  47. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -3
  48. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -9
  49. data/src/core/ext/filters/client_channel/parse_address.cc +1 -1
  50. data/src/core/ext/filters/client_channel/parse_address.h +0 -8
  51. data/src/core/ext/filters/client_channel/proxy_mapper.cc +6 -8
  52. data/src/core/ext/filters/client_channel/proxy_mapper.h +6 -16
  53. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +13 -17
  54. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -12
  55. data/src/core/ext/filters/client_channel/resolver.cc +11 -13
  56. data/src/core/ext/filters/client_channel/resolver.h +14 -25
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +57 -70
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -12
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +23 -31
  60. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +27 -45
  61. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -15
  62. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +9 -11
  63. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +53 -66
  64. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +25 -33
  65. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -9
  66. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +26 -35
  67. data/src/core/ext/filters/client_channel/resolver_factory.cc +2 -3
  68. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -12
  69. data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
  70. data/src/core/ext/filters/client_channel/resolver_registry.h +3 -12
  71. data/src/core/ext/filters/client_channel/retry_throttle.h +0 -8
  72. data/src/core/ext/filters/client_channel/subchannel.cc +289 -301
  73. data/src/core/ext/filters/client_channel/subchannel.h +57 -84
  74. data/src/core/ext/filters/client_channel/subchannel_index.cc +30 -33
  75. data/src/core/ext/filters/client_channel/subchannel_index.h +4 -16
  76. data/src/core/ext/filters/client_channel/uri_parser.cc +13 -17
  77. data/src/core/ext/filters/client_channel/uri_parser.h +1 -10
  78. data/src/core/ext/filters/deadline/deadline_filter.cc +49 -67
  79. data/src/core/ext/filters/deadline/deadline_filter.h +4 -14
  80. data/src/core/ext/filters/http/client/http_client_filter.cc +60 -77
  81. data/src/core/ext/filters/http/client/http_client_filter.h +0 -8
  82. data/src/core/ext/filters/http/http_filters_plugin.cc +4 -6
  83. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +63 -79
  84. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -8
  85. data/src/core/ext/filters/http/server/http_server_filter.cc +57 -71
  86. data/src/core/ext/filters/http/server/http_server_filter.h +0 -8
  87. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +19 -24
  88. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +0 -8
  89. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +3 -3
  90. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +0 -8
  91. data/src/core/ext/filters/max_age/max_age_filter.cc +49 -62
  92. data/src/core/ext/filters/max_age/max_age_filter.h +0 -8
  93. data/src/core/ext/filters/message_size/message_size_filter.cc +23 -29
  94. data/src/core/ext/filters/message_size/message_size_filter.h +0 -8
  95. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -18
  96. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -8
  97. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -8
  98. data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -8
  99. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +33 -40
  100. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -8
  101. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +15 -17
  102. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +8 -8
  103. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +23 -28
  104. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +50 -57
  105. data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -10
  106. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -3
  107. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -10
  108. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -6
  109. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -9
  110. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -11
  111. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -9
  112. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +10 -2
  113. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +516 -636
  114. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -11
  115. data/src/core/ext/transport/chttp2/transport/flow_control.cc +29 -13
  116. data/src/core/ext/transport/chttp2/transport/flow_control.h +196 -53
  117. data/src/core/ext/transport/chttp2/transport/frame.h +0 -8
  118. data/src/core/ext/transport/chttp2/transport/frame_data.cc +31 -33
  119. data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -12
  120. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -3
  121. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -10
  122. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
  123. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -9
  124. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
  125. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -10
  126. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +8 -3
  127. data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -10
  128. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +8 -8
  129. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -11
  130. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +63 -81
  131. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -12
  132. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +230 -318
  133. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -19
  134. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +14 -20
  135. data/src/core/ext/transport/chttp2/transport/hpack_table.h +5 -16
  136. data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -7
  137. data/src/core/ext/transport/chttp2/transport/huffsyms.h +0 -8
  138. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +8 -11
  139. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +4 -13
  140. data/src/core/ext/transport/chttp2/transport/internal.h +51 -75
  141. data/src/core/ext/transport/chttp2/transport/parsing.cc +83 -109
  142. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
  143. data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -8
  144. data/src/core/ext/transport/chttp2/transport/varint.h +0 -8
  145. data/src/core/ext/transport/chttp2/transport/writing.cc +61 -65
  146. data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -4
  147. data/src/core/ext/transport/inproc/inproc_transport.cc +177 -188
  148. data/src/core/ext/transport/inproc/inproc_transport.h +0 -8
  149. data/src/core/lib/backoff/backoff.cc +39 -44
  150. data/src/core/lib/backoff/backoff.h +61 -57
  151. data/src/core/lib/channel/channel_args.cc +8 -10
  152. data/src/core/lib/channel/channel_args.h +4 -13
  153. data/src/core/lib/channel/channel_stack.cc +19 -27
  154. data/src/core/lib/channel/channel_stack.h +27 -47
  155. data/src/core/lib/channel/channel_stack_builder.cc +11 -14
  156. data/src/core/lib/channel/channel_stack_builder.h +4 -15
  157. data/src/core/lib/channel/connected_channel.cc +23 -36
  158. data/src/core/lib/channel/connected_channel.h +1 -10
  159. data/src/core/lib/channel/handshaker.cc +31 -40
  160. data/src/core/lib/channel/handshaker.h +14 -25
  161. data/src/core/lib/channel/handshaker_factory.cc +6 -6
  162. data/src/core/lib/channel/handshaker_factory.h +5 -15
  163. data/src/core/lib/channel/handshaker_registry.cc +9 -13
  164. data/src/core/lib/channel/handshaker_registry.h +2 -11
  165. data/src/core/lib/compression/algorithm_metadata.h +0 -8
  166. data/src/core/lib/compression/message_compress.cc +19 -23
  167. data/src/core/lib/compression/message_compress.h +2 -12
  168. data/src/core/lib/compression/stream_compression.cc +1 -1
  169. data/src/core/lib/compression/stream_compression.h +0 -8
  170. data/src/core/lib/compression/stream_compression_gzip.cc +12 -11
  171. data/src/core/lib/compression/stream_compression_gzip.h +0 -8
  172. data/src/core/lib/compression/stream_compression_identity.h +0 -8
  173. data/src/core/lib/debug/stats.cc +4 -4
  174. data/src/core/lib/debug/stats.h +9 -19
  175. data/src/core/lib/debug/stats_data.cc +85 -116
  176. data/src/core/lib/debug/stats_data.h +236 -312
  177. data/src/core/lib/debug/trace.cc +1 -1
  178. data/src/core/lib/debug/trace.h +0 -12
  179. data/src/core/lib/{support → gpr++}/abstract.h +8 -3
  180. data/src/core/lib/{support → gpr++}/atomic.h +5 -5
  181. data/src/core/lib/{support → gpr++}/atomic_with_atm.h +3 -3
  182. data/src/core/lib/{support → gpr++}/atomic_with_std.h +3 -3
  183. data/src/core/lib/gpr++/debug_location.h +52 -0
  184. data/src/core/lib/gpr++/inlined_vector.h +112 -0
  185. data/src/core/lib/{support → gpr++}/manual_constructor.h +2 -2
  186. data/src/core/lib/{support → gpr++}/memory.h +3 -3
  187. data/src/core/lib/gpr++/orphanable.h +171 -0
  188. data/src/core/lib/gpr++/ref_counted.h +133 -0
  189. data/src/core/lib/gpr++/ref_counted_ptr.h +99 -0
  190. data/src/core/lib/{support → gpr}/alloc.cc +0 -0
  191. data/src/core/lib/{support → gpr}/arena.cc +1 -1
  192. data/src/core/lib/{support → gpr}/arena.h +3 -11
  193. data/src/core/lib/{support → gpr}/atm.cc +0 -0
  194. data/src/core/lib/{support → gpr}/avl.cc +0 -0
  195. data/src/core/lib/{support → gpr}/cmdline.cc +1 -1
  196. data/src/core/lib/{support → gpr}/cpu_iphone.cc +0 -0
  197. data/src/core/lib/{support → gpr}/cpu_linux.cc +0 -0
  198. data/src/core/lib/{support → gpr}/cpu_posix.cc +0 -0
  199. data/src/core/lib/{support → gpr}/cpu_windows.cc +0 -0
  200. data/src/core/lib/{support → gpr}/env.h +3 -11
  201. data/src/core/lib/{support → gpr}/env_linux.cc +2 -2
  202. data/src/core/lib/{support → gpr}/env_posix.cc +4 -4
  203. data/src/core/lib/{support → gpr}/env_windows.cc +3 -3
  204. data/src/core/lib/{support → gpr}/fork.cc +3 -3
  205. data/src/core/lib/{support → gpr}/fork.h +3 -3
  206. data/src/core/lib/{support → gpr}/host_port.cc +1 -1
  207. data/src/core/lib/{support → gpr}/log.cc +3 -3
  208. data/src/core/lib/{support → gpr}/log_android.cc +3 -3
  209. data/src/core/lib/{support → gpr}/log_linux.cc +1 -1
  210. data/src/core/lib/{support → gpr}/log_posix.cc +5 -5
  211. data/src/core/lib/{support → gpr}/log_windows.cc +3 -3
  212. data/src/core/lib/{support → gpr}/mpscq.cc +1 -1
  213. data/src/core/lib/{support → gpr}/mpscq.h +3 -10
  214. data/src/core/lib/{support → gpr}/murmur_hash.cc +1 -1
  215. data/src/core/lib/{support → gpr}/murmur_hash.h +3 -11
  216. data/src/core/lib/{support → gpr}/spinlock.h +3 -3
  217. data/src/core/lib/{support → gpr}/string.cc +1 -1
  218. data/src/core/lib/{support → gpr}/string.h +3 -10
  219. data/src/core/lib/{support → gpr}/string_posix.cc +0 -0
  220. data/src/core/lib/{support → gpr}/string_util_windows.cc +2 -2
  221. data/src/core/lib/{support → gpr}/string_windows.cc +1 -1
  222. data/src/core/lib/{support → gpr}/string_windows.h +3 -11
  223. data/src/core/lib/{support → gpr}/subprocess_posix.cc +0 -0
  224. data/src/core/lib/{support → gpr}/subprocess_windows.cc +2 -2
  225. data/src/core/lib/{support → gpr}/sync.cc +0 -0
  226. data/src/core/lib/{support → gpr}/sync_posix.cc +10 -1
  227. data/src/core/lib/{support → gpr}/sync_windows.cc +0 -0
  228. data/src/core/lib/{support → gpr}/thd.cc +0 -0
  229. data/src/core/lib/{support → gpr}/thd_internal.h +3 -3
  230. data/src/core/lib/{support → gpr}/thd_posix.cc +18 -2
  231. data/src/core/lib/{support → gpr}/thd_windows.cc +2 -1
  232. data/src/core/lib/{support → gpr}/time.cc +0 -0
  233. data/src/core/lib/{support → gpr}/time_posix.cc +2 -4
  234. data/src/core/lib/{support → gpr}/time_precise.cc +1 -1
  235. data/src/core/lib/{support → gpr}/time_precise.h +3 -11
  236. data/src/core/lib/{support → gpr}/time_windows.cc +1 -3
  237. data/src/core/lib/{support → gpr}/tls_pthread.cc +0 -0
  238. data/src/core/lib/{support → gpr}/tmpfile.h +3 -11
  239. data/src/core/lib/{support → gpr}/tmpfile_msys.cc +2 -2
  240. data/src/core/lib/{support → gpr}/tmpfile_posix.cc +2 -2
  241. data/src/core/lib/{support → gpr}/tmpfile_windows.cc +2 -2
  242. data/src/core/lib/{support → gpr}/wrap_memcpy.cc +0 -0
  243. data/src/core/lib/http/format_request.cc +1 -1
  244. data/src/core/lib/http/format_request.h +0 -8
  245. data/src/core/lib/http/httpcli.cc +55 -74
  246. data/src/core/lib/http/httpcli.h +13 -22
  247. data/src/core/lib/http/httpcli_security_connector.cc +27 -33
  248. data/src/core/lib/http/parser.h +0 -8
  249. data/src/core/lib/iomgr/block_annotate.h +10 -17
  250. data/src/core/lib/iomgr/call_combiner.cc +14 -17
  251. data/src/core/lib/iomgr/call_combiner.h +16 -34
  252. data/src/core/lib/iomgr/closure.h +24 -37
  253. data/src/core/lib/iomgr/combiner.cc +62 -66
  254. data/src/core/lib/iomgr/combiner.h +6 -16
  255. data/src/core/lib/iomgr/endpoint.cc +15 -21
  256. data/src/core/lib/iomgr/endpoint.h +16 -33
  257. data/src/core/lib/iomgr/endpoint_pair.h +0 -8
  258. data/src/core/lib/iomgr/endpoint_pair_posix.cc +4 -5
  259. data/src/core/lib/iomgr/endpoint_pair_windows.cc +4 -6
  260. data/src/core/lib/iomgr/error.cc +2 -6
  261. data/src/core/lib/iomgr/error.h +4 -9
  262. data/src/core/lib/iomgr/error_internal.h +0 -8
  263. data/src/core/lib/iomgr/ev_epoll1_linux.cc +110 -117
  264. data/src/core/lib/iomgr/ev_epoll1_linux.h +0 -8
  265. data/src/core/lib/iomgr/ev_epollex_linux.cc +111 -141
  266. data/src/core/lib/iomgr/ev_epollex_linux.h +0 -8
  267. data/src/core/lib/iomgr/ev_epollsig_linux.cc +83 -109
  268. data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -10
  269. data/src/core/lib/iomgr/ev_poll_posix.cc +103 -125
  270. data/src/core/lib/iomgr/ev_poll_posix.h +0 -8
  271. data/src/core/lib/iomgr/ev_posix.cc +35 -50
  272. data/src/core/lib/iomgr/ev_posix.h +27 -53
  273. data/src/core/lib/iomgr/exec_ctx.cc +46 -78
  274. data/src/core/lib/iomgr/exec_ctx.h +127 -60
  275. data/src/core/lib/iomgr/executor.cc +34 -38
  276. data/src/core/lib/iomgr/executor.h +3 -11
  277. data/src/core/lib/iomgr/fork_posix.cc +13 -12
  278. data/src/core/lib/iomgr/gethostname.h +0 -8
  279. data/src/core/lib/iomgr/gethostname_sysconf.cc +1 -1
  280. data/src/core/lib/iomgr/iocp_windows.cc +14 -16
  281. data/src/core/lib/iomgr/iocp_windows.h +1 -10
  282. data/src/core/lib/iomgr/iomgr.cc +60 -59
  283. data/src/core/lib/iomgr/iomgr.h +3 -12
  284. data/src/core/lib/iomgr/iomgr_internal.h +0 -8
  285. data/src/core/lib/iomgr/iomgr_uv.cc +2 -3
  286. data/src/core/lib/iomgr/iomgr_uv.h +0 -8
  287. data/src/core/lib/iomgr/is_epollexclusive_available.cc +1 -1
  288. data/src/core/lib/iomgr/load_file.cc +1 -1
  289. data/src/core/lib/iomgr/load_file.h +0 -8
  290. data/src/core/lib/iomgr/lockfree_event.cc +7 -8
  291. data/src/core/lib/iomgr/lockfree_event.h +3 -3
  292. data/src/core/lib/iomgr/polling_entity.cc +6 -10
  293. data/src/core/lib/iomgr/polling_entity.h +2 -11
  294. data/src/core/lib/iomgr/pollset.h +4 -13
  295. data/src/core/lib/iomgr/pollset_set.h +5 -18
  296. data/src/core/lib/iomgr/pollset_set_uv.cc +5 -10
  297. data/src/core/lib/iomgr/pollset_set_windows.cc +5 -10
  298. data/src/core/lib/iomgr/pollset_uv.cc +8 -9
  299. data/src/core/lib/iomgr/pollset_uv.h +0 -8
  300. data/src/core/lib/iomgr/pollset_windows.cc +14 -15
  301. data/src/core/lib/iomgr/pollset_windows.h +0 -8
  302. data/src/core/lib/iomgr/port.h +6 -1
  303. data/src/core/lib/iomgr/resolve_address.h +1 -10
  304. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -12
  305. data/src/core/lib/iomgr/resolve_address_uv.cc +7 -8
  306. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -9
  307. data/src/core/lib/iomgr/resource_quota.cc +77 -107
  308. data/src/core/lib/iomgr/resource_quota.h +8 -25
  309. data/src/core/lib/iomgr/sockaddr_utils.cc +1 -1
  310. data/src/core/lib/iomgr/sockaddr_utils.h +0 -8
  311. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  312. data/src/core/lib/iomgr/socket_factory_posix.h +0 -8
  313. data/src/core/lib/iomgr/socket_mutator.cc +1 -1
  314. data/src/core/lib/iomgr/socket_mutator.h +1 -9
  315. data/src/core/lib/iomgr/socket_utils.h +0 -8
  316. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -1
  317. data/src/core/lib/iomgr/socket_utils_posix.h +0 -8
  318. data/src/core/lib/iomgr/socket_windows.cc +8 -11
  319. data/src/core/lib/iomgr/socket_windows.h +3 -14
  320. data/src/core/lib/iomgr/tcp_client.h +1 -10
  321. data/src/core/lib/iomgr/tcp_client_posix.cc +94 -78
  322. data/src/core/lib/iomgr/tcp_client_posix.h +36 -8
  323. data/src/core/lib/iomgr/tcp_client_uv.cc +16 -23
  324. data/src/core/lib/iomgr/tcp_client_windows.cc +22 -25
  325. data/src/core/lib/iomgr/tcp_posix.cc +131 -153
  326. data/src/core/lib/iomgr/tcp_posix.h +3 -12
  327. data/src/core/lib/iomgr/tcp_server.h +6 -17
  328. data/src/core/lib/iomgr/tcp_server_posix.cc +31 -35
  329. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -8
  330. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
  331. data/src/core/lib/iomgr/tcp_server_uv.cc +23 -34
  332. data/src/core/lib/iomgr/tcp_server_windows.cc +24 -34
  333. data/src/core/lib/iomgr/tcp_uv.cc +42 -56
  334. data/src/core/lib/iomgr/tcp_uv.h +0 -8
  335. data/src/core/lib/iomgr/tcp_windows.cc +43 -50
  336. data/src/core/lib/iomgr/tcp_windows.h +1 -9
  337. data/src/core/lib/iomgr/time_averaged_stats.h +0 -8
  338. data/src/core/lib/iomgr/timer.h +6 -15
  339. data/src/core/lib/iomgr/timer_generic.cc +22 -27
  340. data/src/core/lib/iomgr/timer_heap.h +0 -8
  341. data/src/core/lib/iomgr/timer_manager.cc +17 -19
  342. data/src/core/lib/iomgr/timer_manager.h +0 -8
  343. data/src/core/lib/iomgr/timer_uv.cc +12 -14
  344. data/src/core/lib/iomgr/udp_server.cc +148 -54
  345. data/src/core/lib/iomgr/udp_server.h +16 -21
  346. data/src/core/lib/iomgr/unix_sockets_posix.h +0 -8
  347. data/src/core/lib/iomgr/wakeup_fd_cv.cc +4 -4
  348. data/src/core/lib/iomgr/wakeup_fd_cv.h +12 -20
  349. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
  350. data/src/core/lib/iomgr/wakeup_fd_pipe.h +0 -8
  351. data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -8
  352. data/src/core/lib/json/json.h +0 -8
  353. data/src/core/lib/json/json_reader.h +0 -8
  354. data/src/core/lib/json/json_writer.h +0 -8
  355. data/src/core/lib/profiling/basic_timers.cc +3 -2
  356. data/src/core/lib/profiling/timers.h +0 -8
  357. data/src/core/lib/security/context/security_context.cc +9 -10
  358. data/src/core/lib/security/context/security_context.h +0 -8
  359. data/src/core/lib/security/credentials/composite/composite_credentials.cc +23 -28
  360. data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -8
  361. data/src/core/lib/security/credentials/credentials.cc +33 -42
  362. data/src/core/lib/security/credentials/credentials.h +24 -43
  363. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  364. data/src/core/lib/security/credentials/fake/fake_credentials.cc +16 -22
  365. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -8
  366. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
  367. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +28 -34
  368. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -8
  369. data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -13
  370. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  371. data/src/core/lib/security/credentials/jwt/json_token.h +0 -8
  372. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -20
  373. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -10
  374. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +56 -72
  375. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -17
  376. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +47 -55
  377. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +3 -12
  378. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +23 -28
  379. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -13
  380. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -8
  381. data/src/core/lib/security/transport/auth_filters.h +0 -8
  382. data/src/core/lib/security/transport/client_auth_filter.cc +45 -54
  383. data/src/core/lib/security/transport/lb_targets_info.cc +2 -2
  384. data/src/core/lib/security/transport/lb_targets_info.h +0 -8
  385. data/src/core/lib/security/transport/secure_endpoint.cc +54 -68
  386. data/src/core/lib/security/transport/secure_endpoint.h +0 -8
  387. data/src/core/lib/security/transport/security_connector.cc +62 -86
  388. data/src/core/lib/security/transport/security_connector.h +22 -39
  389. data/src/core/lib/security/transport/security_handshaker.cc +83 -106
  390. data/src/core/lib/security/transport/security_handshaker.h +1 -10
  391. data/src/core/lib/security/transport/server_auth_filter.cc +31 -38
  392. data/src/core/lib/security/transport/tsi_error.h +0 -8
  393. data/src/core/lib/security/util/json_util.h +0 -8
  394. data/src/core/lib/slice/b64.cc +5 -6
  395. data/src/core/lib/slice/b64.h +3 -12
  396. data/src/core/lib/slice/percent_encoding.h +0 -8
  397. data/src/core/lib/slice/slice.cc +8 -9
  398. data/src/core/lib/slice/slice_buffer.cc +11 -16
  399. data/src/core/lib/slice/slice_hash_table.cc +5 -7
  400. data/src/core/lib/slice/slice_hash_table.h +2 -12
  401. data/src/core/lib/slice/slice_intern.cc +4 -5
  402. data/src/core/lib/slice/slice_internal.h +4 -15
  403. data/src/core/lib/slice/slice_string_helpers.cc +1 -1
  404. data/src/core/lib/slice/slice_string_helpers.h +1 -9
  405. data/src/core/lib/surface/alarm.cc +11 -14
  406. data/src/core/lib/surface/alarm_internal.h +0 -8
  407. data/src/core/lib/surface/byte_buffer.cc +2 -3
  408. data/src/core/lib/surface/byte_buffer_reader.cc +7 -9
  409. data/src/core/lib/surface/call.cc +198 -241
  410. data/src/core/lib/surface/call.h +9 -23
  411. data/src/core/lib/surface/call_details.cc +3 -4
  412. data/src/core/lib/surface/call_log_batch.cc +1 -1
  413. data/src/core/lib/surface/call_test_only.h +0 -8
  414. data/src/core/lib/surface/channel.cc +53 -64
  415. data/src/core/lib/surface/channel.h +12 -23
  416. data/src/core/lib/surface/channel_init.cc +2 -3
  417. data/src/core/lib/surface/channel_init.h +2 -12
  418. data/src/core/lib/surface/channel_ping.cc +7 -9
  419. data/src/core/lib/surface/channel_stack_type.h +0 -8
  420. data/src/core/lib/surface/completion_queue.cc +158 -176
  421. data/src/core/lib/surface/completion_queue.h +9 -20
  422. data/src/core/lib/surface/completion_queue_factory.h +0 -8
  423. data/src/core/lib/surface/event_string.cc +1 -1
  424. data/src/core/lib/surface/event_string.h +0 -8
  425. data/src/core/lib/surface/init.cc +27 -25
  426. data/src/core/lib/surface/init.h +0 -8
  427. data/src/core/lib/surface/init_secure.cc +2 -2
  428. data/src/core/lib/surface/lame_client.cc +30 -33
  429. data/src/core/lib/surface/lame_client.h +0 -8
  430. data/src/core/lib/surface/server.cc +151 -203
  431. data/src/core/lib/surface/server.h +7 -16
  432. data/src/core/lib/surface/validate_metadata.h +0 -8
  433. data/src/core/lib/surface/version.cc +2 -2
  434. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  435. data/src/core/lib/transport/bdp_estimator.h +1 -1
  436. data/src/core/lib/transport/byte_stream.cc +24 -38
  437. data/src/core/lib/transport/byte_stream.h +10 -25
  438. data/src/core/lib/transport/connectivity_state.cc +9 -13
  439. data/src/core/lib/transport/connectivity_state.h +4 -14
  440. data/src/core/lib/transport/error_utils.cc +6 -6
  441. data/src/core/lib/transport/error_utils.h +2 -11
  442. data/src/core/lib/transport/metadata.cc +21 -23
  443. data/src/core/lib/transport/metadata.h +8 -20
  444. data/src/core/lib/transport/metadata_batch.cc +34 -45
  445. data/src/core/lib/transport/metadata_batch.h +18 -32
  446. data/src/core/lib/transport/service_config.cc +11 -15
  447. data/src/core/lib/transport/service_config.h +3 -13
  448. data/src/core/lib/transport/static_metadata.cc +1 -1
  449. data/src/core/lib/transport/static_metadata.h +1 -7
  450. data/src/core/lib/transport/status_conversion.cc +2 -3
  451. data/src/core/lib/transport/status_conversion.h +1 -10
  452. data/src/core/lib/transport/timeout_encoding.cc +1 -1
  453. data/src/core/lib/transport/timeout_encoding.h +1 -9
  454. data/src/core/lib/transport/transport.cc +36 -50
  455. data/src/core/lib/transport/transport.h +28 -30
  456. data/src/core/lib/transport/transport_impl.h +12 -23
  457. data/src/core/lib/transport/transport_op_string.cc +2 -2
  458. data/src/core/plugin_registry/grpc_plugin_registry.cc +34 -34
  459. data/src/core/tsi/fake_transport_security.cc +7 -10
  460. data/src/core/tsi/fake_transport_security.h +0 -8
  461. data/src/core/tsi/gts_transport_security.cc +2 -2
  462. data/src/core/tsi/gts_transport_security.h +0 -8
  463. data/src/core/tsi/ssl_transport_security.cc +3 -0
  464. data/src/core/tsi/ssl_transport_security.h +0 -8
  465. data/src/core/tsi/ssl_types.h +0 -8
  466. data/src/core/tsi/transport_security.h +1 -9
  467. data/src/core/tsi/transport_security_adapter.h +0 -8
  468. data/src/core/tsi/transport_security_grpc.cc +11 -18
  469. data/src/core/tsi/transport_security_grpc.h +9 -21
  470. data/src/core/tsi/transport_security_interface.h +0 -8
  471. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -30
  472. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -48
  473. data/src/ruby/lib/grpc/version.rb +1 -1
  474. data/src/ruby/spec/channel_connection_spec.rb +2 -1
  475. data/src/ruby/spec/client_auth_spec.rb +1 -1
  476. data/src/ruby/spec/client_server_spec.rb +2 -2
  477. data/src/ruby/spec/generic/active_call_spec.rb +1 -1
  478. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  479. data/src/ruby/spec/generic/interceptor_registry_spec.rb +1 -1
  480. data/src/ruby/spec/generic/rpc_server_spec.rb +12 -12
  481. data/src/ruby/spec/google_rpc_status_utils_spec.rb +3 -2
  482. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  483. data/src/ruby/spec/server_spec.rb +9 -9
  484. data/src/ruby/spec/support/helpers.rb +35 -1
  485. metadata +68 -66
  486. data/include/grpc/impl/codegen/exec_ctx_fwd.h +0 -26
  487. data/include/grpc/support/histogram.h +0 -64
  488. data/src/core/lib/support/histogram.cc +0 -227
@@ -31,11 +31,11 @@ extern "C" {
31
31
  #include <openssl/pem.h>
32
32
  }
33
33
 
34
+ #include "src/core/lib/gpr/string.h"
34
35
  #include "src/core/lib/http/httpcli.h"
35
36
  #include "src/core/lib/iomgr/polling_entity.h"
36
37
  #include "src/core/lib/slice/b64.h"
37
38
  #include "src/core/lib/slice/slice_internal.h"
38
- #include "src/core/lib/support/string.h"
39
39
  #include "src/core/tsi/ssl_types.h"
40
40
 
41
41
  /* --- Utils. --- */
@@ -74,12 +74,11 @@ static const EVP_MD* evp_md_from_alg(const char* alg) {
74
74
  }
75
75
  }
76
76
 
77
- static grpc_json* parse_json_part_from_jwt(grpc_exec_ctx* exec_ctx,
78
- const char* str, size_t len,
77
+ static grpc_json* parse_json_part_from_jwt(const char* str, size_t len,
79
78
  grpc_slice* buffer) {
80
79
  grpc_json* json;
81
80
 
82
- *buffer = grpc_base64_decode_with_len(exec_ctx, str, len, 1);
81
+ *buffer = grpc_base64_decode_with_len(str, len, 1);
83
82
  if (GRPC_SLICE_IS_EMPTY(*buffer)) {
84
83
  gpr_log(GPR_ERROR, "Invalid base64.");
85
84
  return nullptr;
@@ -87,7 +86,7 @@ static grpc_json* parse_json_part_from_jwt(grpc_exec_ctx* exec_ctx,
87
86
  json = grpc_json_parse_string_with_len((char*)GRPC_SLICE_START_PTR(*buffer),
88
87
  GRPC_SLICE_LENGTH(*buffer));
89
88
  if (json == nullptr) {
90
- grpc_slice_unref_internal(exec_ctx, *buffer);
89
+ grpc_slice_unref_internal(*buffer);
91
90
  gpr_log(GPR_ERROR, "JSON parsing error.");
92
91
  }
93
92
  return json;
@@ -123,14 +122,13 @@ typedef struct {
123
122
  grpc_slice buffer;
124
123
  } jose_header;
125
124
 
126
- static void jose_header_destroy(grpc_exec_ctx* exec_ctx, jose_header* h) {
127
- grpc_slice_unref_internal(exec_ctx, h->buffer);
125
+ static void jose_header_destroy(jose_header* h) {
126
+ grpc_slice_unref_internal(h->buffer);
128
127
  gpr_free(h);
129
128
  }
130
129
 
131
130
  /* Takes ownership of json and buffer. */
132
- static jose_header* jose_header_from_json(grpc_exec_ctx* exec_ctx,
133
- grpc_json* json, grpc_slice buffer) {
131
+ static jose_header* jose_header_from_json(grpc_json* json, grpc_slice buffer) {
134
132
  grpc_json* cur;
135
133
  jose_header* h = (jose_header*)gpr_zalloc(sizeof(jose_header));
136
134
  h->buffer = buffer;
@@ -164,7 +162,7 @@ static jose_header* jose_header_from_json(grpc_exec_ctx* exec_ctx,
164
162
 
165
163
  error:
166
164
  grpc_json_destroy(json);
167
- jose_header_destroy(exec_ctx, h);
165
+ jose_header_destroy(h);
168
166
  return nullptr;
169
167
  }
170
168
 
@@ -184,9 +182,9 @@ struct grpc_jwt_claims {
184
182
  grpc_slice buffer;
185
183
  };
186
184
 
187
- void grpc_jwt_claims_destroy(grpc_exec_ctx* exec_ctx, grpc_jwt_claims* claims) {
185
+ void grpc_jwt_claims_destroy(grpc_jwt_claims* claims) {
188
186
  grpc_json_destroy(claims->json);
189
- grpc_slice_unref_internal(exec_ctx, claims->buffer);
187
+ grpc_slice_unref_internal(claims->buffer);
190
188
  gpr_free(claims);
191
189
  }
192
190
 
@@ -231,8 +229,7 @@ gpr_timespec grpc_jwt_claims_not_before(const grpc_jwt_claims* claims) {
231
229
  }
232
230
 
233
231
  /* Takes ownership of json and buffer even in case of failure. */
234
- grpc_jwt_claims* grpc_jwt_claims_from_json(grpc_exec_ctx* exec_ctx,
235
- grpc_json* json, grpc_slice buffer) {
232
+ grpc_jwt_claims* grpc_jwt_claims_from_json(grpc_json* json, grpc_slice buffer) {
236
233
  grpc_json* cur;
237
234
  grpc_jwt_claims* claims =
238
235
  (grpc_jwt_claims*)gpr_malloc(sizeof(grpc_jwt_claims));
@@ -274,7 +271,7 @@ grpc_jwt_claims* grpc_jwt_claims_from_json(grpc_exec_ctx* exec_ctx,
274
271
  return claims;
275
272
 
276
273
  error:
277
- grpc_jwt_claims_destroy(exec_ctx, claims);
274
+ grpc_jwt_claims_destroy(claims);
278
275
  return nullptr;
279
276
  }
280
277
 
@@ -350,7 +347,7 @@ static verifier_cb_ctx* verifier_cb_ctx_create(
350
347
  grpc_jwt_claims* claims, const char* audience, grpc_slice signature,
351
348
  const char* signed_jwt, size_t signed_jwt_len, void* user_data,
352
349
  grpc_jwt_verification_done_cb cb) {
353
- grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
350
+ grpc_core::ExecCtx exec_ctx;
354
351
  verifier_cb_ctx* ctx = (verifier_cb_ctx*)gpr_zalloc(sizeof(verifier_cb_ctx));
355
352
  ctx->verifier = verifier;
356
353
  ctx->pollent = grpc_polling_entity_create_from_pollset(pollset);
@@ -361,16 +358,16 @@ static verifier_cb_ctx* verifier_cb_ctx_create(
361
358
  ctx->signed_data = grpc_slice_from_copied_buffer(signed_jwt, signed_jwt_len);
362
359
  ctx->user_data = user_data;
363
360
  ctx->user_cb = cb;
364
- grpc_exec_ctx_finish(&exec_ctx);
361
+
365
362
  return ctx;
366
363
  }
367
364
 
368
- void verifier_cb_ctx_destroy(grpc_exec_ctx* exec_ctx, verifier_cb_ctx* ctx) {
365
+ void verifier_cb_ctx_destroy(verifier_cb_ctx* ctx) {
369
366
  if (ctx->audience != nullptr) gpr_free(ctx->audience);
370
- if (ctx->claims != nullptr) grpc_jwt_claims_destroy(exec_ctx, ctx->claims);
371
- grpc_slice_unref_internal(exec_ctx, ctx->signature);
372
- grpc_slice_unref_internal(exec_ctx, ctx->signed_data);
373
- jose_header_destroy(exec_ctx, ctx->header);
367
+ if (ctx->claims != nullptr) grpc_jwt_claims_destroy(ctx->claims);
368
+ grpc_slice_unref_internal(ctx->signature);
369
+ grpc_slice_unref_internal(ctx->signed_data);
370
+ jose_header_destroy(ctx->header);
374
371
  for (size_t i = 0; i < HTTP_RESPONSE_COUNT; i++) {
375
372
  grpc_http_response_destroy(&ctx->responses[i]);
376
373
  }
@@ -450,19 +447,19 @@ end:
450
447
  return result;
451
448
  }
452
449
 
453
- static BIGNUM* bignum_from_base64(grpc_exec_ctx* exec_ctx, const char* b64) {
450
+ static BIGNUM* bignum_from_base64(const char* b64) {
454
451
  BIGNUM* result = nullptr;
455
452
  grpc_slice bin;
456
453
 
457
454
  if (b64 == nullptr) return nullptr;
458
- bin = grpc_base64_decode(exec_ctx, b64, 1);
455
+ bin = grpc_base64_decode(b64, 1);
459
456
  if (GRPC_SLICE_IS_EMPTY(bin)) {
460
457
  gpr_log(GPR_ERROR, "Invalid base64 for big num.");
461
458
  return nullptr;
462
459
  }
463
460
  result = BN_bin2bn(GRPC_SLICE_START_PTR(bin),
464
461
  TSI_SIZE_AS_SIZE(GRPC_SLICE_LENGTH(bin)), nullptr);
465
- grpc_slice_unref_internal(exec_ctx, bin);
462
+ grpc_slice_unref_internal(bin);
466
463
  return result;
467
464
  }
468
465
 
@@ -495,8 +492,7 @@ static int RSA_set0_key(RSA* r, BIGNUM* n, BIGNUM* e, BIGNUM* d) {
495
492
  }
496
493
  #endif // OPENSSL_VERSION_NUMBER < 0x10100000L
497
494
 
498
- static EVP_PKEY* pkey_from_jwk(grpc_exec_ctx* exec_ctx, const grpc_json* json,
499
- const char* kty) {
495
+ static EVP_PKEY* pkey_from_jwk(const grpc_json* json, const char* kty) {
500
496
  const grpc_json* key_prop;
501
497
  RSA* rsa = nullptr;
502
498
  EVP_PKEY* result = nullptr;
@@ -515,12 +511,10 @@ static EVP_PKEY* pkey_from_jwk(grpc_exec_ctx* exec_ctx, const grpc_json* json,
515
511
  }
516
512
  for (key_prop = json->child; key_prop != nullptr; key_prop = key_prop->next) {
517
513
  if (strcmp(key_prop->key, "n") == 0) {
518
- tmp_n =
519
- bignum_from_base64(exec_ctx, validate_string_field(key_prop, "n"));
514
+ tmp_n = bignum_from_base64(validate_string_field(key_prop, "n"));
520
515
  if (tmp_n == nullptr) goto end;
521
516
  } else if (strcmp(key_prop->key, "e") == 0) {
522
- tmp_e =
523
- bignum_from_base64(exec_ctx, validate_string_field(key_prop, "e"));
517
+ tmp_e = bignum_from_base64(validate_string_field(key_prop, "e"));
524
518
  if (tmp_e == nullptr) goto end;
525
519
  }
526
520
  }
@@ -545,8 +539,7 @@ end:
545
539
  return result;
546
540
  }
547
541
 
548
- static EVP_PKEY* find_verification_key(grpc_exec_ctx* exec_ctx,
549
- const grpc_json* json,
542
+ static EVP_PKEY* find_verification_key(const grpc_json* json,
550
543
  const char* header_alg,
551
544
  const char* header_kid) {
552
545
  const grpc_json* jkey;
@@ -591,7 +584,7 @@ static EVP_PKEY* find_verification_key(grpc_exec_ctx* exec_ctx,
591
584
  }
592
585
  if (alg != nullptr && kid != nullptr && kty != nullptr &&
593
586
  strcmp(kid, header_kid) == 0 && strcmp(alg, header_alg) == 0) {
594
- return pkey_from_jwk(exec_ctx, jkey, kty);
587
+ return pkey_from_jwk(jkey, kty);
595
588
  }
596
589
  }
597
590
  gpr_log(GPR_ERROR,
@@ -632,8 +625,7 @@ end:
632
625
  return result;
633
626
  }
634
627
 
635
- static void on_keys_retrieved(grpc_exec_ctx* exec_ctx, void* user_data,
636
- grpc_error* error) {
628
+ static void on_keys_retrieved(void* user_data, grpc_error* error) {
637
629
  verifier_cb_ctx* ctx = (verifier_cb_ctx*)user_data;
638
630
  grpc_json* json = json_from_http(&ctx->responses[HTTP_RESPONSE_KEYS]);
639
631
  EVP_PKEY* verification_key = nullptr;
@@ -645,7 +637,7 @@ static void on_keys_retrieved(grpc_exec_ctx* exec_ctx, void* user_data,
645
637
  goto end;
646
638
  }
647
639
  verification_key =
648
- find_verification_key(exec_ctx, json, ctx->header->alg, ctx->header->kid);
640
+ find_verification_key(json, ctx->header->alg, ctx->header->kid);
649
641
  if (verification_key == nullptr) {
650
642
  gpr_log(GPR_ERROR, "Could not find verification key with kid %s.",
651
643
  ctx->header->kid);
@@ -669,12 +661,11 @@ static void on_keys_retrieved(grpc_exec_ctx* exec_ctx, void* user_data,
669
661
  end:
670
662
  if (json != nullptr) grpc_json_destroy(json);
671
663
  EVP_PKEY_free(verification_key);
672
- ctx->user_cb(exec_ctx, ctx->user_data, status, claims);
673
- verifier_cb_ctx_destroy(exec_ctx, ctx);
664
+ ctx->user_cb(ctx->user_data, status, claims);
665
+ verifier_cb_ctx_destroy(ctx);
674
666
  }
675
667
 
676
- static void on_openid_config_retrieved(grpc_exec_ctx* exec_ctx, void* user_data,
677
- grpc_error* error) {
668
+ static void on_openid_config_retrieved(void* user_data, grpc_error* error) {
678
669
  const grpc_json* cur;
679
670
  verifier_cb_ctx* ctx = (verifier_cb_ctx*)user_data;
680
671
  const grpc_http_response* response = &ctx->responses[HTTP_RESPONSE_OPENID];
@@ -711,20 +702,19 @@ static void on_openid_config_retrieved(grpc_exec_ctx* exec_ctx, void* user_data,
711
702
  extreme memory pressure. */
712
703
  resource_quota = grpc_resource_quota_create("jwt_verifier");
713
704
  grpc_httpcli_get(
714
- exec_ctx, &ctx->verifier->http_ctx, &ctx->pollent, resource_quota, &req,
715
- grpc_exec_ctx_now(exec_ctx) + grpc_jwt_verifier_max_delay,
705
+ &ctx->verifier->http_ctx, &ctx->pollent, resource_quota, &req,
706
+ grpc_core::ExecCtx::Get()->Now() + grpc_jwt_verifier_max_delay,
716
707
  GRPC_CLOSURE_CREATE(on_keys_retrieved, ctx, grpc_schedule_on_exec_ctx),
717
708
  &ctx->responses[HTTP_RESPONSE_KEYS]);
718
- grpc_resource_quota_unref_internal(exec_ctx, resource_quota);
709
+ grpc_resource_quota_unref_internal(resource_quota);
719
710
  grpc_json_destroy(json);
720
711
  gpr_free(req.host);
721
712
  return;
722
713
 
723
714
  error:
724
715
  if (json != nullptr) grpc_json_destroy(json);
725
- ctx->user_cb(exec_ctx, ctx->user_data, GRPC_JWT_VERIFIER_KEY_RETRIEVAL_ERROR,
726
- nullptr);
727
- verifier_cb_ctx_destroy(exec_ctx, ctx);
716
+ ctx->user_cb(ctx->user_data, GRPC_JWT_VERIFIER_KEY_RETRIEVAL_ERROR, nullptr);
717
+ verifier_cb_ctx_destroy(ctx);
728
718
  }
729
719
 
730
720
  static email_key_mapping* verifier_get_mapping(grpc_jwt_verifier* v,
@@ -772,8 +762,7 @@ const char* grpc_jwt_issuer_email_domain(const char* issuer) {
772
762
  }
773
763
 
774
764
  /* Takes ownership of ctx. */
775
- static void retrieve_key_and_verify(grpc_exec_ctx* exec_ctx,
776
- verifier_cb_ctx* ctx) {
765
+ static void retrieve_key_and_verify(verifier_cb_ctx* ctx) {
777
766
  const char* email_domain;
778
767
  grpc_closure* http_cb;
779
768
  char* path_prefix = nullptr;
@@ -840,23 +829,21 @@ static void retrieve_key_and_verify(grpc_exec_ctx* exec_ctx,
840
829
  channel. This would allow us to cancel an authentication query when under
841
830
  extreme memory pressure. */
842
831
  resource_quota = grpc_resource_quota_create("jwt_verifier");
843
- grpc_httpcli_get(exec_ctx, &ctx->verifier->http_ctx, &ctx->pollent,
844
- resource_quota, &req,
845
- grpc_exec_ctx_now(exec_ctx) + grpc_jwt_verifier_max_delay,
846
- http_cb, &ctx->responses[rsp_idx]);
847
- grpc_resource_quota_unref_internal(exec_ctx, resource_quota);
832
+ grpc_httpcli_get(
833
+ &ctx->verifier->http_ctx, &ctx->pollent, resource_quota, &req,
834
+ grpc_core::ExecCtx::Get()->Now() + grpc_jwt_verifier_max_delay, http_cb,
835
+ &ctx->responses[rsp_idx]);
836
+ grpc_resource_quota_unref_internal(resource_quota);
848
837
  gpr_free(req.host);
849
838
  gpr_free(req.http.path);
850
839
  return;
851
840
 
852
841
  error:
853
- ctx->user_cb(exec_ctx, ctx->user_data, GRPC_JWT_VERIFIER_KEY_RETRIEVAL_ERROR,
854
- nullptr);
855
- verifier_cb_ctx_destroy(exec_ctx, ctx);
842
+ ctx->user_cb(ctx->user_data, GRPC_JWT_VERIFIER_KEY_RETRIEVAL_ERROR, nullptr);
843
+ verifier_cb_ctx_destroy(ctx);
856
844
  }
857
845
 
858
- void grpc_jwt_verifier_verify(grpc_exec_ctx* exec_ctx,
859
- grpc_jwt_verifier* verifier,
846
+ void grpc_jwt_verifier_verify(grpc_jwt_verifier* verifier,
860
847
  grpc_pollset* pollset, const char* jwt,
861
848
  const char* audience,
862
849
  grpc_jwt_verification_done_cb cb,
@@ -875,35 +862,32 @@ void grpc_jwt_verifier_verify(grpc_exec_ctx* exec_ctx,
875
862
  cb != nullptr);
876
863
  dot = strchr(cur, '.');
877
864
  if (dot == nullptr) goto error;
878
- json = parse_json_part_from_jwt(exec_ctx, cur, (size_t)(dot - cur),
879
- &header_buffer);
865
+ json = parse_json_part_from_jwt(cur, (size_t)(dot - cur), &header_buffer);
880
866
  if (json == nullptr) goto error;
881
- header = jose_header_from_json(exec_ctx, json, header_buffer);
867
+ header = jose_header_from_json(json, header_buffer);
882
868
  if (header == nullptr) goto error;
883
869
 
884
870
  cur = dot + 1;
885
871
  dot = strchr(cur, '.');
886
872
  if (dot == nullptr) goto error;
887
- json = parse_json_part_from_jwt(exec_ctx, cur, (size_t)(dot - cur),
888
- &claims_buffer);
873
+ json = parse_json_part_from_jwt(cur, (size_t)(dot - cur), &claims_buffer);
889
874
  if (json == nullptr) goto error;
890
- claims = grpc_jwt_claims_from_json(exec_ctx, json, claims_buffer);
875
+ claims = grpc_jwt_claims_from_json(json, claims_buffer);
891
876
  if (claims == nullptr) goto error;
892
877
 
893
878
  signed_jwt_len = (size_t)(dot - jwt);
894
879
  cur = dot + 1;
895
- signature = grpc_base64_decode(exec_ctx, cur, 1);
880
+ signature = grpc_base64_decode(cur, 1);
896
881
  if (GRPC_SLICE_IS_EMPTY(signature)) goto error;
897
882
  retrieve_key_and_verify(
898
- exec_ctx,
899
883
  verifier_cb_ctx_create(verifier, pollset, header, claims, audience,
900
884
  signature, jwt, signed_jwt_len, user_data, cb));
901
885
  return;
902
886
 
903
887
  error:
904
- if (header != nullptr) jose_header_destroy(exec_ctx, header);
905
- if (claims != nullptr) grpc_jwt_claims_destroy(exec_ctx, claims);
906
- cb(exec_ctx, user_data, GRPC_JWT_VERIFIER_BAD_FORMAT, nullptr);
888
+ if (header != nullptr) jose_header_destroy(header);
889
+ if (claims != nullptr) grpc_jwt_claims_destroy(claims);
890
+ cb(user_data, GRPC_JWT_VERIFIER_BAD_FORMAT, nullptr);
907
891
  }
908
892
 
909
893
  grpc_jwt_verifier* grpc_jwt_verifier_create(
@@ -930,10 +914,10 @@ grpc_jwt_verifier* grpc_jwt_verifier_create(
930
914
  return v;
931
915
  }
932
916
 
933
- void grpc_jwt_verifier_destroy(grpc_exec_ctx* exec_ctx, grpc_jwt_verifier* v) {
917
+ void grpc_jwt_verifier_destroy(grpc_jwt_verifier* v) {
934
918
  size_t i;
935
919
  if (v == nullptr) return;
936
- grpc_httpcli_context_destroy(exec_ctx, &v->http_ctx);
920
+ grpc_httpcli_context_destroy(&v->http_ctx);
937
921
  if (v->mappings != nullptr) {
938
922
  for (i = 0; i < v->num_mappings; i++) {
939
923
  gpr_free(v->mappings[i].email_domain);
@@ -32,10 +32,6 @@
32
32
  #define GRPC_GOOGLE_SERVICE_ACCOUNTS_KEY_URL_PREFIX \
33
33
  "www.googleapis.com/robot/v1/metadata/x509"
34
34
 
35
- #ifdef __cplusplus
36
- extern "C" {
37
- #endif
38
-
39
35
  /* --- grpc_jwt_verifier_status. --- */
40
36
 
41
37
  typedef enum {
@@ -55,7 +51,7 @@ const char* grpc_jwt_verifier_status_to_string(grpc_jwt_verifier_status status);
55
51
 
56
52
  typedef struct grpc_jwt_claims grpc_jwt_claims;
57
53
 
58
- void grpc_jwt_claims_destroy(grpc_exec_ctx* exec_ctx, grpc_jwt_claims* claims);
54
+ void grpc_jwt_claims_destroy(grpc_jwt_claims* claims);
59
55
 
60
56
  /* Returns the whole JSON tree of the claims. */
61
57
  const grpc_json* grpc_jwt_claims_json(const grpc_jwt_claims* claims);
@@ -98,21 +94,18 @@ grpc_jwt_verifier* grpc_jwt_verifier_create(
98
94
  size_t num_mappings);
99
95
 
100
96
  /*The verifier must not be destroyed if there are still outstanding callbacks.*/
101
- void grpc_jwt_verifier_destroy(grpc_exec_ctx* exec_ctx,
102
- grpc_jwt_verifier* verifier);
97
+ void grpc_jwt_verifier_destroy(grpc_jwt_verifier* verifier);
103
98
 
104
99
  /* User provided callback that will be called when the verification of the JWT
105
100
  is done (maybe in another thread).
106
101
  It is the responsibility of the callee to call grpc_jwt_claims_destroy on
107
102
  the claims. */
108
- typedef void (*grpc_jwt_verification_done_cb)(grpc_exec_ctx* exec_ctx,
109
- void* user_data,
103
+ typedef void (*grpc_jwt_verification_done_cb)(void* user_data,
110
104
  grpc_jwt_verifier_status status,
111
105
  grpc_jwt_claims* claims);
112
106
 
113
107
  /* Verifies for the JWT for the given expected audience. */
114
- void grpc_jwt_verifier_verify(grpc_exec_ctx* exec_ctx,
115
- grpc_jwt_verifier* verifier,
108
+ void grpc_jwt_verifier_verify(grpc_jwt_verifier* verifier,
116
109
  grpc_pollset* pollset, const char* jwt,
117
110
  const char* audience,
118
111
  grpc_jwt_verification_done_cb cb,
@@ -120,14 +113,9 @@ void grpc_jwt_verifier_verify(grpc_exec_ctx* exec_ctx,
120
113
 
121
114
  /* --- TESTING ONLY exposed functions. --- */
122
115
 
123
- grpc_jwt_claims* grpc_jwt_claims_from_json(grpc_exec_ctx* exec_ctx,
124
- grpc_json* json, grpc_slice buffer);
116
+ grpc_jwt_claims* grpc_jwt_claims_from_json(grpc_json* json, grpc_slice buffer);
125
117
  grpc_jwt_verifier_status grpc_jwt_claims_check(const grpc_jwt_claims* claims,
126
118
  const char* audience);
127
119
  const char* grpc_jwt_issuer_email_domain(const char* issuer);
128
120
 
129
- #ifdef __cplusplus
130
- }
131
- #endif
132
-
133
121
  #endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_JWT_JWT_VERIFIER_H */
@@ -103,21 +103,19 @@ void grpc_auth_refresh_token_destruct(grpc_auth_refresh_token* refresh_token) {
103
103
  // Oauth2 Token Fetcher credentials.
104
104
  //
105
105
 
106
- static void oauth2_token_fetcher_destruct(grpc_exec_ctx* exec_ctx,
107
- grpc_call_credentials* creds) {
106
+ static void oauth2_token_fetcher_destruct(grpc_call_credentials* creds) {
108
107
  grpc_oauth2_token_fetcher_credentials* c =
109
108
  (grpc_oauth2_token_fetcher_credentials*)creds;
110
- GRPC_MDELEM_UNREF(exec_ctx, c->access_token_md);
109
+ GRPC_MDELEM_UNREF(c->access_token_md);
111
110
  gpr_mu_destroy(&c->mu);
112
- grpc_pollset_set_destroy(exec_ctx,
113
- grpc_polling_entity_pollset_set(&c->pollent));
114
- grpc_httpcli_context_destroy(exec_ctx, &c->httpcli_context);
111
+ grpc_pollset_set_destroy(grpc_polling_entity_pollset_set(&c->pollent));
112
+ grpc_httpcli_context_destroy(&c->httpcli_context);
115
113
  }
116
114
 
117
115
  grpc_credentials_status
118
116
  grpc_oauth2_token_fetcher_credentials_parse_server_response(
119
- grpc_exec_ctx* exec_ctx, const grpc_http_response* response,
120
- grpc_mdelem* token_md, grpc_millis* token_lifetime) {
117
+ const grpc_http_response* response, grpc_mdelem* token_md,
118
+ grpc_millis* token_lifetime) {
121
119
  char* null_terminated_body = nullptr;
122
120
  char* new_access_token = nullptr;
123
121
  grpc_credentials_status status = GRPC_CREDENTIALS_OK;
@@ -184,9 +182,8 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
184
182
  gpr_asprintf(&new_access_token, "%s %s", token_type->value,
185
183
  access_token->value);
186
184
  *token_lifetime = strtol(expires_in->value, nullptr, 10) * GPR_MS_PER_SEC;
187
- if (!GRPC_MDISNULL(*token_md)) GRPC_MDELEM_UNREF(exec_ctx, *token_md);
185
+ if (!GRPC_MDISNULL(*token_md)) GRPC_MDELEM_UNREF(*token_md);
188
186
  *token_md = grpc_mdelem_from_slices(
189
- exec_ctx,
190
187
  grpc_slice_from_static_string(GRPC_AUTHORIZATION_METADATA_KEY),
191
188
  grpc_slice_from_copied_string(new_access_token));
192
189
  status = GRPC_CREDENTIALS_OK;
@@ -194,7 +191,7 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
194
191
 
195
192
  end:
196
193
  if (status != GRPC_CREDENTIALS_OK && !GRPC_MDISNULL(*token_md)) {
197
- GRPC_MDELEM_UNREF(exec_ctx, *token_md);
194
+ GRPC_MDELEM_UNREF(*token_md);
198
195
  *token_md = GRPC_MDNULL;
199
196
  }
200
197
  if (null_terminated_body != nullptr) gpr_free(null_terminated_body);
@@ -203,8 +200,7 @@ end:
203
200
  return status;
204
201
  }
205
202
 
206
- static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx* exec_ctx,
207
- void* user_data,
203
+ static void on_oauth2_token_fetcher_http_response(void* user_data,
208
204
  grpc_error* error) {
209
205
  GRPC_LOG_IF_ERROR("oauth_fetch", GRPC_ERROR_REF(error));
210
206
  grpc_credentials_metadata_request* r =
@@ -215,13 +211,13 @@ static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx* exec_ctx,
215
211
  grpc_millis token_lifetime;
216
212
  grpc_credentials_status status =
217
213
  grpc_oauth2_token_fetcher_credentials_parse_server_response(
218
- exec_ctx, &r->response, &access_token_md, &token_lifetime);
214
+ &r->response, &access_token_md, &token_lifetime);
219
215
  // Update cache and grab list of pending requests.
220
216
  gpr_mu_lock(&c->mu);
221
217
  c->token_fetch_pending = false;
222
218
  c->access_token_md = GRPC_MDELEM_REF(access_token_md);
223
219
  c->token_expiration = status == GRPC_CREDENTIALS_OK
224
- ? grpc_exec_ctx_now(exec_ctx) + token_lifetime
220
+ ? grpc_core::ExecCtx::Get()->Now() + token_lifetime
225
221
  : 0;
226
222
  grpc_oauth2_pending_get_request_metadata* pending_request =
227
223
  c->pending_requests;
@@ -236,24 +232,22 @@ static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx* exec_ctx,
236
232
  error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
237
233
  "Error occured when fetching oauth2 token.", &error, 1);
238
234
  }
239
- GRPC_CLOSURE_SCHED(exec_ctx, pending_request->on_request_metadata, error);
235
+ GRPC_CLOSURE_SCHED(pending_request->on_request_metadata, error);
240
236
  grpc_polling_entity_del_from_pollset_set(
241
- exec_ctx, pending_request->pollent,
242
- grpc_polling_entity_pollset_set(&c->pollent));
237
+ pending_request->pollent, grpc_polling_entity_pollset_set(&c->pollent));
243
238
  grpc_oauth2_pending_get_request_metadata* prev = pending_request;
244
239
  pending_request = pending_request->next;
245
240
  gpr_free(prev);
246
241
  }
247
- GRPC_MDELEM_UNREF(exec_ctx, access_token_md);
248
- grpc_call_credentials_unref(exec_ctx, r->creds);
249
- grpc_credentials_metadata_request_destroy(exec_ctx, r);
242
+ GRPC_MDELEM_UNREF(access_token_md);
243
+ grpc_call_credentials_unref(r->creds);
244
+ grpc_credentials_metadata_request_destroy(r);
250
245
  }
251
246
 
252
247
  static bool oauth2_token_fetcher_get_request_metadata(
253
- grpc_exec_ctx* exec_ctx, grpc_call_credentials* creds,
254
- grpc_polling_entity* pollent, grpc_auth_metadata_context context,
255
- grpc_credentials_mdelem_array* md_array, grpc_closure* on_request_metadata,
256
- grpc_error** error) {
248
+ grpc_call_credentials* creds, grpc_polling_entity* pollent,
249
+ grpc_auth_metadata_context context, grpc_credentials_mdelem_array* md_array,
250
+ grpc_closure* on_request_metadata, grpc_error** error) {
257
251
  grpc_oauth2_token_fetcher_credentials* c =
258
252
  (grpc_oauth2_token_fetcher_credentials*)creds;
259
253
  // Check if we can use the cached token.
@@ -262,13 +256,14 @@ static bool oauth2_token_fetcher_get_request_metadata(
262
256
  grpc_mdelem cached_access_token_md = GRPC_MDNULL;
263
257
  gpr_mu_lock(&c->mu);
264
258
  if (!GRPC_MDISNULL(c->access_token_md) &&
265
- (c->token_expiration - grpc_exec_ctx_now(exec_ctx) > refresh_threshold)) {
259
+ (c->token_expiration - grpc_core::ExecCtx::Get()->Now() >
260
+ refresh_threshold)) {
266
261
  cached_access_token_md = GRPC_MDELEM_REF(c->access_token_md);
267
262
  }
268
263
  if (!GRPC_MDISNULL(cached_access_token_md)) {
269
264
  gpr_mu_unlock(&c->mu);
270
265
  grpc_credentials_mdelem_array_add(md_array, cached_access_token_md);
271
- GRPC_MDELEM_UNREF(exec_ctx, cached_access_token_md);
266
+ GRPC_MDELEM_UNREF(cached_access_token_md);
272
267
  return true;
273
268
  }
274
269
  // Couldn't get the token from the cache.
@@ -280,7 +275,7 @@ static bool oauth2_token_fetcher_get_request_metadata(
280
275
  pending_request->on_request_metadata = on_request_metadata;
281
276
  pending_request->pollent = pollent;
282
277
  grpc_polling_entity_add_to_pollset_set(
283
- exec_ctx, pollent, grpc_polling_entity_pollset_set(&c->pollent));
278
+ pollent, grpc_polling_entity_pollset_set(&c->pollent));
284
279
  pending_request->next = c->pending_requests;
285
280
  c->pending_requests = pending_request;
286
281
  bool start_fetch = false;
@@ -291,17 +286,17 @@ static bool oauth2_token_fetcher_get_request_metadata(
291
286
  gpr_mu_unlock(&c->mu);
292
287
  if (start_fetch) {
293
288
  grpc_call_credentials_ref(creds);
294
- c->fetch_func(exec_ctx, grpc_credentials_metadata_request_create(creds),
289
+ c->fetch_func(grpc_credentials_metadata_request_create(creds),
295
290
  &c->httpcli_context, &c->pollent,
296
291
  on_oauth2_token_fetcher_http_response,
297
- grpc_exec_ctx_now(exec_ctx) + refresh_threshold);
292
+ grpc_core::ExecCtx::Get()->Now() + refresh_threshold);
298
293
  }
299
294
  return false;
300
295
  }
301
296
 
302
297
  static void oauth2_token_fetcher_cancel_get_request_metadata(
303
- grpc_exec_ctx* exec_ctx, grpc_call_credentials* creds,
304
- grpc_credentials_mdelem_array* md_array, grpc_error* error) {
298
+ grpc_call_credentials* creds, grpc_credentials_mdelem_array* md_array,
299
+ grpc_error* error) {
305
300
  grpc_oauth2_token_fetcher_credentials* c =
306
301
  (grpc_oauth2_token_fetcher_credentials*)creds;
307
302
  gpr_mu_lock(&c->mu);
@@ -317,7 +312,7 @@ static void oauth2_token_fetcher_cancel_get_request_metadata(
317
312
  c->pending_requests = pending_request->next;
318
313
  }
319
314
  // Invoke the callback immediately with an error.
320
- GRPC_CLOSURE_SCHED(exec_ctx, pending_request->on_request_metadata,
315
+ GRPC_CLOSURE_SCHED(pending_request->on_request_metadata,
321
316
  GRPC_ERROR_REF(error));
322
317
  gpr_free(pending_request);
323
318
  break;
@@ -351,7 +346,7 @@ static grpc_call_credentials_vtable compute_engine_vtable = {
351
346
  oauth2_token_fetcher_cancel_get_request_metadata};
352
347
 
353
348
  static void compute_engine_fetch_oauth2(
354
- grpc_exec_ctx* exec_ctx, grpc_credentials_metadata_request* metadata_req,
349
+ grpc_credentials_metadata_request* metadata_req,
355
350
  grpc_httpcli_context* httpcli_context, grpc_polling_entity* pollent,
356
351
  grpc_iomgr_cb_func response_cb, grpc_millis deadline) {
357
352
  grpc_http_header header = {(char*)"Metadata-Flavor", (char*)"Google"};
@@ -367,10 +362,10 @@ static void compute_engine_fetch_oauth2(
367
362
  grpc_resource_quota* resource_quota =
368
363
  grpc_resource_quota_create("oauth2_credentials");
369
364
  grpc_httpcli_get(
370
- exec_ctx, httpcli_context, pollent, resource_quota, &request, deadline,
365
+ httpcli_context, pollent, resource_quota, &request, deadline,
371
366
  GRPC_CLOSURE_CREATE(response_cb, metadata_req, grpc_schedule_on_exec_ctx),
372
367
  &metadata_req->response);
373
- grpc_resource_quota_unref_internal(exec_ctx, resource_quota);
368
+ grpc_resource_quota_unref_internal(resource_quota);
374
369
  }
375
370
 
376
371
  grpc_call_credentials* grpc_google_compute_engine_credentials_create(
@@ -390,12 +385,11 @@ grpc_call_credentials* grpc_google_compute_engine_credentials_create(
390
385
  // Google Refresh Token credentials.
391
386
  //
392
387
 
393
- static void refresh_token_destruct(grpc_exec_ctx* exec_ctx,
394
- grpc_call_credentials* creds) {
388
+ static void refresh_token_destruct(grpc_call_credentials* creds) {
395
389
  grpc_google_refresh_token_credentials* c =
396
390
  (grpc_google_refresh_token_credentials*)creds;
397
391
  grpc_auth_refresh_token_destruct(&c->refresh_token);
398
- oauth2_token_fetcher_destruct(exec_ctx, &c->base.base);
392
+ oauth2_token_fetcher_destruct(&c->base.base);
399
393
  }
400
394
 
401
395
  static grpc_call_credentials_vtable refresh_token_vtable = {
@@ -403,7 +397,7 @@ static grpc_call_credentials_vtable refresh_token_vtable = {
403
397
  oauth2_token_fetcher_cancel_get_request_metadata};
404
398
 
405
399
  static void refresh_token_fetch_oauth2(
406
- grpc_exec_ctx* exec_ctx, grpc_credentials_metadata_request* metadata_req,
400
+ grpc_credentials_metadata_request* metadata_req,
407
401
  grpc_httpcli_context* httpcli_context, grpc_polling_entity* pollent,
408
402
  grpc_iomgr_cb_func response_cb, grpc_millis deadline) {
409
403
  grpc_google_refresh_token_credentials* c =
@@ -427,11 +421,11 @@ static void refresh_token_fetch_oauth2(
427
421
  grpc_resource_quota* resource_quota =
428
422
  grpc_resource_quota_create("oauth2_credentials_refresh");
429
423
  grpc_httpcli_post(
430
- exec_ctx, httpcli_context, pollent, resource_quota, &request, body,
431
- strlen(body), deadline,
424
+ httpcli_context, pollent, resource_quota, &request, body, strlen(body),
425
+ deadline,
432
426
  GRPC_CLOSURE_CREATE(response_cb, metadata_req, grpc_schedule_on_exec_ctx),
433
427
  &metadata_req->response);
434
- grpc_resource_quota_unref_internal(exec_ctx, resource_quota);
428
+ grpc_resource_quota_unref_internal(resource_quota);
435
429
  gpr_free(body);
436
430
  }
437
431
 
@@ -483,25 +477,23 @@ grpc_call_credentials* grpc_google_refresh_token_credentials_create(
483
477
  // Oauth2 Access Token credentials.
484
478
  //
485
479
 
486
- static void access_token_destruct(grpc_exec_ctx* exec_ctx,
487
- grpc_call_credentials* creds) {
480
+ static void access_token_destruct(grpc_call_credentials* creds) {
488
481
  grpc_access_token_credentials* c = (grpc_access_token_credentials*)creds;
489
- GRPC_MDELEM_UNREF(exec_ctx, c->access_token_md);
482
+ GRPC_MDELEM_UNREF(c->access_token_md);
490
483
  }
491
484
 
492
485
  static bool access_token_get_request_metadata(
493
- grpc_exec_ctx* exec_ctx, grpc_call_credentials* creds,
494
- grpc_polling_entity* pollent, grpc_auth_metadata_context context,
495
- grpc_credentials_mdelem_array* md_array, grpc_closure* on_request_metadata,
496
- grpc_error** error) {
486
+ grpc_call_credentials* creds, grpc_polling_entity* pollent,
487
+ grpc_auth_metadata_context context, grpc_credentials_mdelem_array* md_array,
488
+ grpc_closure* on_request_metadata, grpc_error** error) {
497
489
  grpc_access_token_credentials* c = (grpc_access_token_credentials*)creds;
498
490
  grpc_credentials_mdelem_array_add(md_array, c->access_token_md);
499
491
  return true;
500
492
  }
501
493
 
502
494
  static void access_token_cancel_get_request_metadata(
503
- grpc_exec_ctx* exec_ctx, grpc_call_credentials* c,
504
- grpc_credentials_mdelem_array* md_array, grpc_error* error) {
495
+ grpc_call_credentials* c, grpc_credentials_mdelem_array* md_array,
496
+ grpc_error* error) {
505
497
  GRPC_ERROR_UNREF(error);
506
498
  }
507
499
 
@@ -523,11 +515,11 @@ grpc_call_credentials* grpc_access_token_credentials_create(
523
515
  gpr_ref_init(&c->base.refcount, 1);
524
516
  char* token_md_value;
525
517
  gpr_asprintf(&token_md_value, "Bearer %s", access_token);
526
- grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
518
+ grpc_core::ExecCtx exec_ctx;
527
519
  c->access_token_md = grpc_mdelem_from_slices(
528
- &exec_ctx, grpc_slice_from_static_string(GRPC_AUTHORIZATION_METADATA_KEY),
520
+ grpc_slice_from_static_string(GRPC_AUTHORIZATION_METADATA_KEY),
529
521
  grpc_slice_from_copied_string(token_md_value));
530
- grpc_exec_ctx_finish(&exec_ctx);
522
+
531
523
  gpr_free(token_md_value);
532
524
  return &c->base;
533
525
  }