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
@@ -22,10 +22,6 @@
22
22
  #include "src/core/lib/json/json.h"
23
23
  #include "src/core/lib/security/credentials/credentials.h"
24
24
 
25
- #ifdef __cplusplus
26
- extern "C" {
27
- #endif
28
-
29
25
  // auth_refresh_token parsing.
30
26
  typedef struct {
31
27
  const char* type;
@@ -56,8 +52,7 @@ void grpc_auth_refresh_token_destruct(grpc_auth_refresh_token* refresh_token);
56
52
  // This object is a base for credentials that need to acquire an oauth2 token
57
53
  // from an http service.
58
54
 
59
- typedef void (*grpc_fetch_oauth2_func)(grpc_exec_ctx* exec_ctx,
60
- grpc_credentials_metadata_request* req,
55
+ typedef void (*grpc_fetch_oauth2_func)(grpc_credentials_metadata_request* req,
61
56
  grpc_httpcli_context* http_context,
62
57
  grpc_polling_entity* pollent,
63
58
  grpc_iomgr_cb_func cb,
@@ -103,11 +98,7 @@ grpc_refresh_token_credentials_create_from_auth_refresh_token(
103
98
  // Exposed for testing only.
104
99
  grpc_credentials_status
105
100
  grpc_oauth2_token_fetcher_credentials_parse_server_response(
106
- grpc_exec_ctx* exec_ctx, const struct grpc_http_response* response,
107
- grpc_mdelem* token_md, grpc_millis* token_lifetime);
108
-
109
- #ifdef __cplusplus
110
- }
111
- #endif
101
+ const struct grpc_http_response* response, grpc_mdelem* token_md,
102
+ grpc_millis* token_lifetime);
112
103
 
113
104
  #endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_OAUTH2_OAUTH2_CREDENTIALS_H */
@@ -33,8 +33,7 @@
33
33
 
34
34
  grpc_core::TraceFlag grpc_plugin_credentials_trace(false, "plugin_credentials");
35
35
 
36
- static void plugin_destruct(grpc_exec_ctx* exec_ctx,
37
- grpc_call_credentials* creds) {
36
+ static void plugin_destruct(grpc_call_credentials* creds) {
38
37
  grpc_plugin_credentials* c = (grpc_plugin_credentials*)creds;
39
38
  gpr_mu_destroy(&c->mu);
40
39
  if (c->plugin.state != nullptr && c->plugin.destroy != nullptr) {
@@ -61,18 +60,17 @@ static void pending_request_remove_locked(
61
60
  // When this returns, r->cancelled indicates whether the request was
62
61
  // cancelled before completion.
63
62
  static void pending_request_complete(
64
- grpc_exec_ctx* exec_ctx, grpc_plugin_credentials_pending_request* r) {
63
+ grpc_plugin_credentials_pending_request* r) {
65
64
  gpr_mu_lock(&r->creds->mu);
66
65
  if (!r->cancelled) pending_request_remove_locked(r->creds, r);
67
66
  gpr_mu_unlock(&r->creds->mu);
68
67
  // Ref to credentials not needed anymore.
69
- grpc_call_credentials_unref(exec_ctx, &r->creds->base);
68
+ grpc_call_credentials_unref(&r->creds->base);
70
69
  }
71
70
 
72
71
  static grpc_error* process_plugin_result(
73
- grpc_exec_ctx* exec_ctx, grpc_plugin_credentials_pending_request* r,
74
- const grpc_metadata* md, size_t num_md, grpc_status_code status,
75
- const char* error_details) {
72
+ grpc_plugin_credentials_pending_request* r, const grpc_metadata* md,
73
+ size_t num_md, grpc_status_code status, const char* error_details) {
76
74
  grpc_error* error = GRPC_ERROR_NONE;
77
75
  if (status != GRPC_STATUS_OK) {
78
76
  char* msg;
@@ -100,11 +98,11 @@ static grpc_error* process_plugin_result(
100
98
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Illegal metadata");
101
99
  } else {
102
100
  for (size_t i = 0; i < num_md; ++i) {
103
- grpc_mdelem mdelem = grpc_mdelem_from_slices(
104
- exec_ctx, grpc_slice_ref_internal(md[i].key),
105
- grpc_slice_ref_internal(md[i].value));
101
+ grpc_mdelem mdelem =
102
+ grpc_mdelem_from_slices(grpc_slice_ref_internal(md[i].key),
103
+ grpc_slice_ref_internal(md[i].value));
106
104
  grpc_credentials_mdelem_array_add(r->md_array, mdelem);
107
- GRPC_MDELEM_UNREF(exec_ctx, mdelem);
105
+ GRPC_MDELEM_UNREF(mdelem);
108
106
  }
109
107
  }
110
108
  }
@@ -117,9 +115,8 @@ static void plugin_md_request_metadata_ready(void* request,
117
115
  grpc_status_code status,
118
116
  const char* error_details) {
119
117
  /* called from application code */
120
- grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INITIALIZER(
121
- GRPC_EXEC_CTX_FLAG_IS_FINISHED | GRPC_EXEC_CTX_FLAG_THREAD_RESOURCE_LOOP,
122
- nullptr, nullptr);
118
+ grpc_core::ExecCtx exec_ctx(GRPC_EXEC_CTX_FLAG_IS_FINISHED |
119
+ GRPC_EXEC_CTX_FLAG_THREAD_RESOURCE_LOOP);
123
120
  grpc_plugin_credentials_pending_request* r =
124
121
  (grpc_plugin_credentials_pending_request*)request;
125
122
  if (grpc_plugin_credentials_trace.enabled()) {
@@ -129,12 +126,12 @@ static void plugin_md_request_metadata_ready(void* request,
129
126
  r->creds, r);
130
127
  }
131
128
  // Remove request from pending list if not previously cancelled.
132
- pending_request_complete(&exec_ctx, r);
129
+ pending_request_complete(r);
133
130
  // If it has not been cancelled, process it.
134
131
  if (!r->cancelled) {
135
132
  grpc_error* error =
136
- process_plugin_result(&exec_ctx, r, md, num_md, status, error_details);
137
- GRPC_CLOSURE_SCHED(&exec_ctx, r->on_request_metadata, error);
133
+ process_plugin_result(r, md, num_md, status, error_details);
134
+ GRPC_CLOSURE_SCHED(r->on_request_metadata, error);
138
135
  } else if (grpc_plugin_credentials_trace.enabled()) {
139
136
  gpr_log(GPR_INFO,
140
137
  "plugin_credentials[%p]: request %p: plugin was previously "
@@ -142,11 +139,9 @@ static void plugin_md_request_metadata_ready(void* request,
142
139
  r->creds, r);
143
140
  }
144
141
  gpr_free(r);
145
- grpc_exec_ctx_finish(&exec_ctx);
146
142
  }
147
143
 
148
- static bool plugin_get_request_metadata(grpc_exec_ctx* exec_ctx,
149
- grpc_call_credentials* creds,
144
+ static bool plugin_get_request_metadata(grpc_call_credentials* creds,
150
145
  grpc_polling_entity* pollent,
151
146
  grpc_auth_metadata_context context,
152
147
  grpc_credentials_mdelem_array* md_array,
@@ -194,7 +189,7 @@ static bool plugin_get_request_metadata(grpc_exec_ctx* exec_ctx,
194
189
  }
195
190
  // Returned synchronously.
196
191
  // Remove request from pending list if not previously cancelled.
197
- pending_request_complete(exec_ctx, pending_request);
192
+ pending_request_complete(pending_request);
198
193
  // If the request was cancelled, the error will have been returned
199
194
  // asynchronously by plugin_cancel_get_request_metadata(), so return
200
195
  // false. Otherwise, process the result.
@@ -213,13 +208,13 @@ static bool plugin_get_request_metadata(grpc_exec_ctx* exec_ctx,
213
208
  "synchronously",
214
209
  c, pending_request);
215
210
  }
216
- *error = process_plugin_result(exec_ctx, pending_request, creds_md,
217
- num_creds_md, status, error_details);
211
+ *error = process_plugin_result(pending_request, creds_md, num_creds_md,
212
+ status, error_details);
218
213
  }
219
214
  // Clean up.
220
215
  for (size_t i = 0; i < num_creds_md; ++i) {
221
- grpc_slice_unref_internal(exec_ctx, creds_md[i].key);
222
- grpc_slice_unref_internal(exec_ctx, creds_md[i].value);
216
+ grpc_slice_unref_internal(creds_md[i].key);
217
+ grpc_slice_unref_internal(creds_md[i].value);
223
218
  }
224
219
  gpr_free((void*)error_details);
225
220
  gpr_free(pending_request);
@@ -228,8 +223,8 @@ static bool plugin_get_request_metadata(grpc_exec_ctx* exec_ctx,
228
223
  }
229
224
 
230
225
  static void plugin_cancel_get_request_metadata(
231
- grpc_exec_ctx* exec_ctx, grpc_call_credentials* creds,
232
- grpc_credentials_mdelem_array* md_array, grpc_error* error) {
226
+ grpc_call_credentials* creds, grpc_credentials_mdelem_array* md_array,
227
+ grpc_error* error) {
233
228
  grpc_plugin_credentials* c = (grpc_plugin_credentials*)creds;
234
229
  gpr_mu_lock(&c->mu);
235
230
  for (grpc_plugin_credentials_pending_request* pending_request =
@@ -241,7 +236,7 @@ static void plugin_cancel_get_request_metadata(
241
236
  pending_request);
242
237
  }
243
238
  pending_request->cancelled = true;
244
- GRPC_CLOSURE_SCHED(exec_ctx, pending_request->on_request_metadata,
239
+ GRPC_CLOSURE_SCHED(pending_request->on_request_metadata,
245
240
  GRPC_ERROR_REF(error));
246
241
  pending_request_remove_locked(c, pending_request);
247
242
  break;
@@ -41,18 +41,16 @@ void grpc_tsi_ssl_pem_key_cert_pairs_destroy(tsi_ssl_pem_key_cert_pair* kp,
41
41
  gpr_free(kp);
42
42
  }
43
43
 
44
- static void ssl_destruct(grpc_exec_ctx* exec_ctx,
45
- grpc_channel_credentials* creds) {
44
+ static void ssl_destruct(grpc_channel_credentials* creds) {
46
45
  grpc_ssl_credentials* c = (grpc_ssl_credentials*)creds;
47
46
  gpr_free(c->config.pem_root_certs);
48
47
  grpc_tsi_ssl_pem_key_cert_pairs_destroy(c->config.pem_key_cert_pair, 1);
49
48
  }
50
49
 
51
50
  static grpc_security_status ssl_create_security_connector(
52
- grpc_exec_ctx* exec_ctx, grpc_channel_credentials* creds,
53
- grpc_call_credentials* call_creds, const char* target,
54
- const grpc_channel_args* args, grpc_channel_security_connector** sc,
55
- grpc_channel_args** new_args) {
51
+ grpc_channel_credentials* creds, grpc_call_credentials* call_creds,
52
+ const char* target, const grpc_channel_args* args,
53
+ grpc_channel_security_connector** sc, grpc_channel_args** new_args) {
56
54
  grpc_ssl_credentials* c = (grpc_ssl_credentials*)creds;
57
55
  grpc_security_status status = GRPC_SECURITY_OK;
58
56
  const char* overridden_target_name = nullptr;
@@ -65,8 +63,7 @@ static grpc_security_status ssl_create_security_connector(
65
63
  }
66
64
  }
67
65
  status = grpc_ssl_channel_security_connector_create(
68
- exec_ctx, creds, call_creds, &c->config, target, overridden_target_name,
69
- sc);
66
+ creds, call_creds, &c->config, target, overridden_target_name, sc);
70
67
  if (status != GRPC_SECURITY_OK) {
71
68
  return status;
72
69
  }
@@ -125,8 +122,7 @@ struct grpc_ssl_server_credentials_options {
125
122
  grpc_ssl_server_certificate_config_fetcher* certificate_config_fetcher;
126
123
  };
127
124
 
128
- static void ssl_server_destruct(grpc_exec_ctx* exec_ctx,
129
- grpc_server_credentials* creds) {
125
+ static void ssl_server_destruct(grpc_server_credentials* creds) {
130
126
  grpc_ssl_server_credentials* c = (grpc_ssl_server_credentials*)creds;
131
127
  grpc_tsi_ssl_pem_key_cert_pairs_destroy(c->config.pem_key_cert_pairs,
132
128
  c->config.num_key_cert_pairs);
@@ -134,9 +130,8 @@ static void ssl_server_destruct(grpc_exec_ctx* exec_ctx,
134
130
  }
135
131
 
136
132
  static grpc_security_status ssl_server_create_security_connector(
137
- grpc_exec_ctx* exec_ctx, grpc_server_credentials* creds,
138
- grpc_server_security_connector** sc) {
139
- return grpc_ssl_server_security_connector_create(exec_ctx, creds, sc);
133
+ grpc_server_credentials* creds, grpc_server_security_connector** sc) {
134
+ return grpc_ssl_server_security_connector_create(creds, sc);
140
135
  }
141
136
 
142
137
  static grpc_server_credentials_vtable ssl_server_vtable = {
@@ -20,10 +20,6 @@
20
20
 
21
21
  #include "src/core/lib/security/credentials/credentials.h"
22
22
 
23
- #ifdef __cplusplus
24
- extern "C" {
25
- #endif
26
-
27
23
  typedef struct {
28
24
  grpc_channel_credentials base;
29
25
  grpc_ssl_config config;
@@ -53,8 +49,4 @@ tsi_ssl_pem_key_cert_pair* grpc_convert_grpc_to_tsi_cert_pairs(
53
49
  void grpc_tsi_ssl_pem_key_cert_pairs_destroy(tsi_ssl_pem_key_cert_pair* kp,
54
50
  size_t num_key_cert_pairs);
55
51
 
56
- #ifdef __cplusplus
57
- }
58
- #endif
59
-
60
52
  #endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_SSL_SSL_CREDENTIALS_H */
@@ -22,10 +22,6 @@
22
22
  #include <grpc/grpc_security.h>
23
23
  #include "src/core/lib/channel/channel_stack.h"
24
24
 
25
- #ifdef __cplusplus
26
- extern "C" {
27
- #endif
28
-
29
25
  extern const grpc_channel_filter grpc_client_auth_filter;
30
26
  extern const grpc_channel_filter grpc_server_auth_filter;
31
27
 
@@ -36,8 +32,4 @@ void grpc_auth_metadata_context_build(
36
32
 
37
33
  void grpc_auth_metadata_context_reset(grpc_auth_metadata_context* context);
38
34
 
39
- #ifdef __cplusplus
40
- }
41
- #endif
42
-
43
35
  #endif /* GRPC_CORE_LIB_SECURITY_TRANSPORT_AUTH_FILTERS_H */
@@ -25,20 +25,21 @@
25
25
  #include <grpc/support/string_util.h>
26
26
 
27
27
  #include "src/core/lib/channel/channel_stack.h"
28
+ #include "src/core/lib/gpr/string.h"
28
29
  #include "src/core/lib/profiling/timers.h"
29
30
  #include "src/core/lib/security/context/security_context.h"
30
31
  #include "src/core/lib/security/credentials/credentials.h"
31
32
  #include "src/core/lib/security/transport/security_connector.h"
32
33
  #include "src/core/lib/slice/slice_internal.h"
33
34
  #include "src/core/lib/slice/slice_string_helpers.h"
34
- #include "src/core/lib/support/string.h"
35
35
  #include "src/core/lib/surface/call.h"
36
36
  #include "src/core/lib/transport/static_metadata.h"
37
37
 
38
38
  #define MAX_CREDENTIALS_METADATA_COUNT 4
39
39
 
40
+ namespace {
40
41
  /* We can have a per-call credentials. */
41
- typedef struct {
42
+ struct call_data {
42
43
  grpc_call_stack* owning_call;
43
44
  grpc_call_combiner* call_combiner;
44
45
  grpc_call_credentials* creds;
@@ -57,13 +58,14 @@ typedef struct {
57
58
  grpc_closure async_result_closure;
58
59
  grpc_closure check_call_host_cancel_closure;
59
60
  grpc_closure get_request_metadata_cancel_closure;
60
- } call_data;
61
+ };
61
62
 
62
63
  /* We can have a per-channel credentials. */
63
- typedef struct {
64
+ struct channel_data {
64
65
  grpc_channel_security_connector* security_connector;
65
66
  grpc_auth_context* auth_context;
66
- } channel_data;
67
+ };
68
+ } // namespace
67
69
 
68
70
  void grpc_auth_metadata_context_reset(
69
71
  grpc_auth_metadata_context* auth_md_context) {
@@ -90,8 +92,7 @@ static void add_error(grpc_error** combined, grpc_error* error) {
90
92
  *combined = grpc_error_add_child(*combined, error);
91
93
  }
92
94
 
93
- static void on_credentials_metadata(grpc_exec_ctx* exec_ctx, void* arg,
94
- grpc_error* input_error) {
95
+ static void on_credentials_metadata(void* arg, grpc_error* input_error) {
95
96
  grpc_transport_stream_op_batch* batch = (grpc_transport_stream_op_batch*)arg;
96
97
  grpc_call_element* elem =
97
98
  (grpc_call_element*)batch->handler_private.extra_arg;
@@ -105,16 +106,16 @@ static void on_credentials_metadata(grpc_exec_ctx* exec_ctx, void* arg,
105
106
  batch->payload->send_initial_metadata.send_initial_metadata;
106
107
  for (size_t i = 0; i < calld->md_array.size; ++i) {
107
108
  add_error(&error, grpc_metadata_batch_add_tail(
108
- exec_ctx, mdb, &calld->md_links[i],
109
+ mdb, &calld->md_links[i],
109
110
  GRPC_MDELEM_REF(calld->md_array.md[i])));
110
111
  }
111
112
  }
112
113
  if (error == GRPC_ERROR_NONE) {
113
- grpc_call_next_op(exec_ctx, elem, batch);
114
+ grpc_call_next_op(elem, batch);
114
115
  } else {
115
116
  error = grpc_error_set_int(error, GRPC_ERROR_INT_GRPC_STATUS,
116
- GRPC_STATUS_UNAUTHENTICATED);
117
- grpc_transport_stream_op_batch_finish_with_failure(exec_ctx, batch, error,
117
+ GRPC_STATUS_UNAVAILABLE);
118
+ grpc_transport_stream_op_batch_finish_with_failure(batch, error,
118
119
  calld->call_combiner);
119
120
  }
120
121
  }
@@ -156,20 +157,17 @@ void grpc_auth_metadata_context_build(
156
157
  gpr_free(host_and_port);
157
158
  }
158
159
 
159
- static void cancel_get_request_metadata(grpc_exec_ctx* exec_ctx, void* arg,
160
- grpc_error* error) {
160
+ static void cancel_get_request_metadata(void* arg, grpc_error* error) {
161
161
  grpc_call_element* elem = (grpc_call_element*)arg;
162
162
  call_data* calld = (call_data*)elem->call_data;
163
163
  if (error != GRPC_ERROR_NONE) {
164
164
  grpc_call_credentials_cancel_get_request_metadata(
165
- exec_ctx, calld->creds, &calld->md_array, GRPC_ERROR_REF(error));
165
+ calld->creds, &calld->md_array, GRPC_ERROR_REF(error));
166
166
  }
167
- GRPC_CALL_STACK_UNREF(exec_ctx, calld->owning_call,
168
- "cancel_get_request_metadata");
167
+ GRPC_CALL_STACK_UNREF(calld->owning_call, "cancel_get_request_metadata");
169
168
  }
170
169
 
171
- static void send_security_metadata(grpc_exec_ctx* exec_ctx,
172
- grpc_call_element* elem,
170
+ static void send_security_metadata(grpc_call_element* elem,
173
171
  grpc_transport_stream_op_batch* batch) {
174
172
  call_data* calld = (call_data*)elem->call_data;
175
173
  channel_data* chand = (channel_data*)elem->channel_data;
@@ -183,7 +181,7 @@ static void send_security_metadata(grpc_exec_ctx* exec_ctx,
183
181
 
184
182
  if (channel_call_creds == nullptr && !call_creds_has_md) {
185
183
  /* Skip sending metadata altogether. */
186
- grpc_call_next_op(exec_ctx, elem, batch);
184
+ grpc_call_next_op(elem, batch);
187
185
  return;
188
186
  }
189
187
 
@@ -192,7 +190,7 @@ static void send_security_metadata(grpc_exec_ctx* exec_ctx,
192
190
  ctx->creds, nullptr);
193
191
  if (calld->creds == nullptr) {
194
192
  grpc_transport_stream_op_batch_finish_with_failure(
195
- exec_ctx, batch,
193
+ batch,
196
194
  grpc_error_set_int(
197
195
  GRPC_ERROR_CREATE_FROM_STATIC_STRING(
198
196
  "Incompatible credentials set on channel and call."),
@@ -215,30 +213,29 @@ static void send_security_metadata(grpc_exec_ctx* exec_ctx,
215
213
  batch, grpc_schedule_on_exec_ctx);
216
214
  grpc_error* error = GRPC_ERROR_NONE;
217
215
  if (grpc_call_credentials_get_request_metadata(
218
- exec_ctx, calld->creds, calld->pollent, calld->auth_md_context,
216
+ calld->creds, calld->pollent, calld->auth_md_context,
219
217
  &calld->md_array, &calld->async_result_closure, &error)) {
220
218
  // Synchronous return; invoke on_credentials_metadata() directly.
221
- on_credentials_metadata(exec_ctx, batch, error);
219
+ on_credentials_metadata(batch, error);
222
220
  GRPC_ERROR_UNREF(error);
223
221
  } else {
224
222
  // Async return; register cancellation closure with call combiner.
225
223
  GRPC_CALL_STACK_REF(calld->owning_call, "cancel_get_request_metadata");
226
224
  grpc_call_combiner_set_notify_on_cancel(
227
- exec_ctx, calld->call_combiner,
225
+ calld->call_combiner,
228
226
  GRPC_CLOSURE_INIT(&calld->get_request_metadata_cancel_closure,
229
227
  cancel_get_request_metadata, elem,
230
228
  grpc_schedule_on_exec_ctx));
231
229
  }
232
230
  }
233
231
 
234
- static void on_host_checked(grpc_exec_ctx* exec_ctx, void* arg,
235
- grpc_error* error) {
232
+ static void on_host_checked(void* arg, grpc_error* error) {
236
233
  grpc_transport_stream_op_batch* batch = (grpc_transport_stream_op_batch*)arg;
237
234
  grpc_call_element* elem =
238
235
  (grpc_call_element*)batch->handler_private.extra_arg;
239
236
  call_data* calld = (call_data*)elem->call_data;
240
237
  if (error == GRPC_ERROR_NONE) {
241
- send_security_metadata(exec_ctx, elem, batch);
238
+ send_security_metadata(elem, batch);
242
239
  } else {
243
240
  char* error_msg;
244
241
  char* host = grpc_slice_to_c_string(calld->host);
@@ -246,7 +243,7 @@ static void on_host_checked(grpc_exec_ctx* exec_ctx, void* arg,
246
243
  host);
247
244
  gpr_free(host);
248
245
  grpc_transport_stream_op_batch_finish_with_failure(
249
- exec_ctx, batch,
246
+ batch,
250
247
  grpc_error_set_int(GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg),
251
248
  GRPC_ERROR_INT_GRPC_STATUS,
252
249
  GRPC_STATUS_UNAUTHENTICATED),
@@ -255,22 +252,20 @@ static void on_host_checked(grpc_exec_ctx* exec_ctx, void* arg,
255
252
  }
256
253
  }
257
254
 
258
- static void cancel_check_call_host(grpc_exec_ctx* exec_ctx, void* arg,
259
- grpc_error* error) {
255
+ static void cancel_check_call_host(void* arg, grpc_error* error) {
260
256
  grpc_call_element* elem = (grpc_call_element*)arg;
261
257
  call_data* calld = (call_data*)elem->call_data;
262
258
  channel_data* chand = (channel_data*)elem->channel_data;
263
259
  if (error != GRPC_ERROR_NONE) {
264
260
  grpc_channel_security_connector_cancel_check_call_host(
265
- exec_ctx, chand->security_connector, &calld->async_result_closure,
261
+ chand->security_connector, &calld->async_result_closure,
266
262
  GRPC_ERROR_REF(error));
267
263
  }
268
- GRPC_CALL_STACK_UNREF(exec_ctx, calld->owning_call, "cancel_check_call_host");
264
+ GRPC_CALL_STACK_UNREF(calld->owning_call, "cancel_check_call_host");
269
265
  }
270
266
 
271
267
  static void auth_start_transport_stream_op_batch(
272
- grpc_exec_ctx* exec_ctx, grpc_call_element* elem,
273
- grpc_transport_stream_op_batch* batch) {
268
+ grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
274
269
  GPR_TIMER_BEGIN("auth_start_transport_stream_op_batch", 0);
275
270
 
276
271
  /* grab pointers to our data from the call element */
@@ -303,13 +298,13 @@ static void auth_start_transport_stream_op_batch(
303
298
  */
304
299
  if (grpc_slice_eq(GRPC_MDKEY(md), GRPC_MDSTR_AUTHORITY)) {
305
300
  if (calld->have_host) {
306
- grpc_slice_unref_internal(exec_ctx, calld->host);
301
+ grpc_slice_unref_internal(calld->host);
307
302
  }
308
303
  calld->host = grpc_slice_ref_internal(GRPC_MDVALUE(md));
309
304
  calld->have_host = true;
310
305
  } else if (grpc_slice_eq(GRPC_MDKEY(md), GRPC_MDSTR_PATH)) {
311
306
  if (calld->have_method) {
312
- grpc_slice_unref_internal(exec_ctx, calld->method);
307
+ grpc_slice_unref_internal(calld->method);
313
308
  }
314
309
  calld->method = grpc_slice_ref_internal(GRPC_MDVALUE(md));
315
310
  calld->have_method = true;
@@ -322,16 +317,16 @@ static void auth_start_transport_stream_op_batch(
322
317
  char* call_host = grpc_slice_to_c_string(calld->host);
323
318
  grpc_error* error = GRPC_ERROR_NONE;
324
319
  if (grpc_channel_security_connector_check_call_host(
325
- exec_ctx, chand->security_connector, call_host,
326
- chand->auth_context, &calld->async_result_closure, &error)) {
320
+ chand->security_connector, call_host, chand->auth_context,
321
+ &calld->async_result_closure, &error)) {
327
322
  // Synchronous return; invoke on_host_checked() directly.
328
- on_host_checked(exec_ctx, batch, error);
323
+ on_host_checked(batch, error);
329
324
  GRPC_ERROR_UNREF(error);
330
325
  } else {
331
326
  // Async return; register cancellation closure with call combiner.
332
327
  GRPC_CALL_STACK_REF(calld->owning_call, "cancel_check_call_host");
333
328
  grpc_call_combiner_set_notify_on_cancel(
334
- exec_ctx, calld->call_combiner,
329
+ calld->call_combiner,
335
330
  GRPC_CLOSURE_INIT(&calld->check_call_host_cancel_closure,
336
331
  cancel_check_call_host, elem,
337
332
  grpc_schedule_on_exec_ctx));
@@ -343,13 +338,12 @@ static void auth_start_transport_stream_op_batch(
343
338
  }
344
339
 
345
340
  /* pass control down the stack */
346
- grpc_call_next_op(exec_ctx, elem, batch);
341
+ grpc_call_next_op(elem, batch);
347
342
  GPR_TIMER_END("auth_start_transport_stream_op_batch", 0);
348
343
  }
349
344
 
350
345
  /* Constructor for call_data */
351
- static grpc_error* init_call_elem(grpc_exec_ctx* exec_ctx,
352
- grpc_call_element* elem,
346
+ static grpc_error* init_call_elem(grpc_call_element* elem,
353
347
  const grpc_call_element_args* args) {
354
348
  call_data* calld = (call_data*)elem->call_data;
355
349
  calld->owning_call = args->call_stack;
@@ -357,32 +351,30 @@ static grpc_error* init_call_elem(grpc_exec_ctx* exec_ctx,
357
351
  return GRPC_ERROR_NONE;
358
352
  }
359
353
 
360
- static void set_pollset_or_pollset_set(grpc_exec_ctx* exec_ctx,
361
- grpc_call_element* elem,
354
+ static void set_pollset_or_pollset_set(grpc_call_element* elem,
362
355
  grpc_polling_entity* pollent) {
363
356
  call_data* calld = (call_data*)elem->call_data;
364
357
  calld->pollent = pollent;
365
358
  }
366
359
 
367
360
  /* Destructor for call_data */
368
- static void destroy_call_elem(grpc_exec_ctx* exec_ctx, grpc_call_element* elem,
361
+ static void destroy_call_elem(grpc_call_element* elem,
369
362
  const grpc_call_final_info* final_info,
370
363
  grpc_closure* ignored) {
371
364
  call_data* calld = (call_data*)elem->call_data;
372
- grpc_credentials_mdelem_array_destroy(exec_ctx, &calld->md_array);
373
- grpc_call_credentials_unref(exec_ctx, calld->creds);
365
+ grpc_credentials_mdelem_array_destroy(&calld->md_array);
366
+ grpc_call_credentials_unref(calld->creds);
374
367
  if (calld->have_host) {
375
- grpc_slice_unref_internal(exec_ctx, calld->host);
368
+ grpc_slice_unref_internal(calld->host);
376
369
  }
377
370
  if (calld->have_method) {
378
- grpc_slice_unref_internal(exec_ctx, calld->method);
371
+ grpc_slice_unref_internal(calld->method);
379
372
  }
380
373
  grpc_auth_metadata_context_reset(&calld->auth_md_context);
381
374
  }
382
375
 
383
376
  /* Constructor for channel_data */
384
- static grpc_error* init_channel_elem(grpc_exec_ctx* exec_ctx,
385
- grpc_channel_element* elem,
377
+ static grpc_error* init_channel_elem(grpc_channel_element* elem,
386
378
  grpc_channel_element_args* args) {
387
379
  grpc_security_connector* sc =
388
380
  grpc_security_connector_find_in_args(args->channel_args);
@@ -415,13 +407,12 @@ static grpc_error* init_channel_elem(grpc_exec_ctx* exec_ctx,
415
407
  }
416
408
 
417
409
  /* Destructor for channel data */
418
- static void destroy_channel_elem(grpc_exec_ctx* exec_ctx,
419
- grpc_channel_element* elem) {
410
+ static void destroy_channel_elem(grpc_channel_element* elem) {
420
411
  /* grab pointers to our data from the channel element */
421
412
  channel_data* chand = (channel_data*)elem->channel_data;
422
413
  grpc_channel_security_connector* sc = chand->security_connector;
423
414
  if (sc != nullptr) {
424
- GRPC_SECURITY_CONNECTOR_UNREF(exec_ctx, &sc->base, "client_auth_filter");
415
+ GRPC_SECURITY_CONNECTOR_UNREF(&sc->base, "client_auth_filter");
425
416
  }
426
417
  GRPC_AUTH_CONTEXT_UNREF(chand->auth_context, "client_auth_filter");
427
418
  }