grpc 1.7.3 → 1.8.0

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

Potentially problematic release.


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

Files changed (616) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2106 -2116
  3. data/include/grpc/census.h +1 -432
  4. data/include/grpc/compression.h +9 -9
  5. data/include/grpc/grpc.h +115 -98
  6. data/include/grpc/grpc_cronet.h +3 -3
  7. data/include/grpc/grpc_posix.h +4 -4
  8. data/include/grpc/grpc_security.h +160 -88
  9. data/include/grpc/grpc_security_constants.h +7 -0
  10. data/include/grpc/impl/codegen/atm.h +9 -1
  11. data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
  12. data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
  13. data/include/grpc/impl/codegen/atm_windows.h +23 -22
  14. data/include/grpc/impl/codegen/byte_buffer.h +14 -14
  15. data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
  16. data/include/grpc/impl/codegen/connectivity_state.h +0 -2
  17. data/include/grpc/impl/codegen/grpc_types.h +32 -28
  18. data/include/grpc/impl/codegen/port_platform.h +48 -0
  19. data/include/grpc/impl/codegen/slice.h +10 -10
  20. data/include/grpc/impl/codegen/sync_generic.h +9 -3
  21. data/include/grpc/slice.h +16 -17
  22. data/include/grpc/slice_buffer.h +22 -22
  23. data/include/grpc/support/alloc.h +11 -11
  24. data/include/grpc/support/avl.h +28 -20
  25. data/include/grpc/support/cmdline.h +13 -13
  26. data/include/grpc/support/histogram.h +17 -17
  27. data/include/grpc/support/host_port.h +2 -2
  28. data/include/grpc/support/log.h +9 -9
  29. data/include/grpc/support/log_windows.h +1 -1
  30. data/include/grpc/support/string_util.h +2 -2
  31. data/include/grpc/support/subprocess.h +5 -5
  32. data/include/grpc/support/sync.h +43 -27
  33. data/include/grpc/support/thd.h +6 -6
  34. data/include/grpc/support/tls_gcc.h +1 -1
  35. data/include/grpc/support/tls_pthread.h +1 -1
  36. data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
  37. data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
  38. data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
  39. data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
  40. data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
  41. data/src/core/ext/filters/client_channel/client_channel.h +16 -8
  42. data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
  43. data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
  44. data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
  45. data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
  46. data/src/core/ext/filters/client_channel/connector.h +29 -21
  47. data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
  48. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
  49. data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
  50. data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
  51. data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
  52. data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
  53. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
  54. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
  55. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
  56. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
  57. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
  58. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
  59. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
  60. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
  61. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
  62. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
  63. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
  64. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
  65. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
  66. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
  67. data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
  68. data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
  69. data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
  70. data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
  71. data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
  72. data/src/core/ext/filters/client_channel/parse_address.h +14 -6
  73. data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
  74. data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
  75. data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
  76. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
  77. data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
  78. data/src/core/ext/filters/client_channel/resolver.h +33 -27
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_ev_driver_posix.c → grpc_ares_ev_driver_posix.cc} +58 -56
  82. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
  83. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
  84. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
  85. data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
  86. data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
  87. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
  88. data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
  89. data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
  90. data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
  91. data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
  92. data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
  93. data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
  94. data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
  95. data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
  96. data/src/core/ext/filters/client_channel/subchannel.h +68 -60
  97. data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
  98. data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
  99. data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
  100. data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
  101. data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
  102. data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
  103. data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
  104. data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
  105. data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
  106. data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
  107. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
  108. data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
  109. data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
  110. data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
  111. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
  112. data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
  113. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
  114. data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
  115. data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
  116. data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
  117. data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
  118. data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
  119. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
  120. data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
  121. data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
  122. data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
  123. data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
  124. data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
  125. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
  126. data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
  127. data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
  128. data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
  129. data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
  130. data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
  131. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
  132. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
  133. data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
  134. data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
  135. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
  136. data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
  137. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
  138. data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
  139. data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
  140. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
  141. data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
  142. data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
  143. data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
  144. data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
  145. data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
  146. data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
  147. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
  148. data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
  149. data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
  150. data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
  151. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
  152. data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
  153. data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
  154. data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
  155. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
  156. data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
  157. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
  158. data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
  159. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
  160. data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
  161. data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
  162. data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
  163. data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
  164. data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
  165. data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
  166. data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
  167. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
  168. data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
  169. data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
  170. data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
  171. data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
  172. data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
  173. data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
  174. data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
  175. data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
  176. data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
  177. data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
  178. data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
  179. data/src/core/lib/backoff/backoff.cc +80 -0
  180. data/src/core/lib/backoff/backoff.h +83 -0
  181. data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
  182. data/src/core/lib/channel/channel_args.h +45 -37
  183. data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
  184. data/src/core/lib/channel/channel_stack.h +76 -75
  185. data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
  186. data/src/core/lib/channel/channel_stack_builder.h +45 -45
  187. data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
  188. data/src/core/lib/channel/connected_channel.h +12 -4
  189. data/src/core/lib/channel/context.h +2 -2
  190. data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
  191. data/src/core/lib/channel/handshaker.h +9 -1
  192. data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
  193. data/src/core/lib/channel/handshaker_factory.h +18 -10
  194. data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
  195. data/src/core/lib/channel/handshaker_registry.h +8 -0
  196. data/src/core/lib/compression/algorithm_metadata.h +8 -0
  197. data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
  198. data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
  199. data/src/core/lib/compression/message_compress.h +8 -0
  200. data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
  201. data/src/core/lib/compression/stream_compression.h +27 -19
  202. data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
  203. data/src/core/lib/compression/stream_compression_gzip.h +8 -0
  204. data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
  205. data/src/core/lib/compression/stream_compression_identity.h +8 -0
  206. data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
  207. data/src/core/lib/debug/stats.h +17 -9
  208. data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
  209. data/src/core/lib/debug/stats_data.h +58 -19
  210. data/src/core/lib/debug/trace.cc +142 -0
  211. data/src/core/lib/debug/trace.h +74 -14
  212. data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
  213. data/src/core/lib/http/format_request.h +12 -4
  214. data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
  215. data/src/core/lib/http/httpcli.h +41 -33
  216. data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
  217. data/src/core/lib/http/{parser.c → parser.cc} +42 -42
  218. data/src/core/lib/http/parser.h +28 -20
  219. data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
  220. data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
  221. data/src/core/lib/iomgr/call_combiner.h +9 -1
  222. data/src/core/lib/iomgr/closure.h +220 -62
  223. data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
  224. data/src/core/lib/iomgr/combiner.h +16 -8
  225. data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
  226. data/src/core/lib/iomgr/endpoint.h +47 -32
  227. data/src/core/lib/iomgr/endpoint_pair.h +12 -4
  228. data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
  229. data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
  230. data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
  231. data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
  232. data/src/core/lib/iomgr/error.h +32 -27
  233. data/src/core/lib/iomgr/error_internal.h +11 -2
  234. data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
  235. data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
  236. data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
  237. data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
  238. data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
  239. data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
  240. data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
  241. data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
  242. data/src/core/lib/iomgr/ev_posix.cc +288 -0
  243. data/src/core/lib/iomgr/ev_posix.h +75 -67
  244. data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
  245. data/src/core/lib/iomgr/exec_ctx.cc +177 -0
  246. data/src/core/lib/iomgr/exec_ctx.h +35 -13
  247. data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
  248. data/src/core/lib/iomgr/executor.h +12 -4
  249. data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
  250. data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
  251. data/src/core/lib/iomgr/gethostname.h +9 -1
  252. data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
  253. data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
  254. data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
  255. data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
  256. data/src/core/lib/iomgr/iocp_windows.h +17 -3
  257. data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
  258. data/src/core/lib/iomgr/iomgr.h +11 -3
  259. data/src/core/lib/iomgr/iomgr_internal.h +13 -5
  260. data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
  261. data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
  262. data/src/core/lib/iomgr/iomgr_uv.h +8 -0
  263. data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
  264. data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
  265. data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
  266. data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
  267. data/src/core/lib/iomgr/load_file.h +2 -2
  268. data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
  269. data/src/core/lib/iomgr/lockfree_event.h +30 -11
  270. data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
  271. data/src/core/lib/iomgr/network_status_tracker.h +2 -2
  272. data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
  273. data/src/core/lib/iomgr/polling_entity.h +21 -13
  274. data/src/core/lib/iomgr/pollset.h +17 -11
  275. data/src/core/lib/iomgr/pollset_set.h +23 -15
  276. data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
  277. data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
  278. data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
  279. data/src/core/lib/iomgr/pollset_uv.h +8 -0
  280. data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
  281. data/src/core/lib/iomgr/pollset_windows.h +17 -4
  282. data/src/core/lib/iomgr/port.h +10 -0
  283. data/src/core/lib/iomgr/resolve_address.h +18 -10
  284. data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
  285. data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
  286. data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
  287. data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
  288. data/src/core/lib/iomgr/resource_quota.h +45 -37
  289. data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
  290. data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
  291. data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
  292. data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
  293. data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
  294. data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
  295. data/src/core/lib/iomgr/socket_mutator.h +11 -11
  296. data/src/core/lib/iomgr/socket_utils.h +9 -1
  297. data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
  298. data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
  299. data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
  300. data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
  301. data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
  302. data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
  303. data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
  304. data/src/core/lib/iomgr/socket_windows.h +26 -13
  305. data/src/core/lib/iomgr/tcp_client.h +14 -6
  306. data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
  307. data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
  308. data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
  309. data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
  310. data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
  311. data/src/core/lib/iomgr/tcp_posix.h +15 -7
  312. data/src/core/lib/iomgr/tcp_server.h +31 -23
  313. data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
  314. data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
  315. data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
  316. data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
  317. data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
  318. data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
  319. data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
  320. data/src/core/lib/iomgr/tcp_uv.cc +420 -0
  321. data/src/core/lib/iomgr/tcp_uv.h +18 -4
  322. data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
  323. data/src/core/lib/iomgr/tcp_windows.h +17 -4
  324. data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
  325. data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
  326. data/src/core/lib/iomgr/timer.h +16 -9
  327. data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
  328. data/src/core/lib/iomgr/timer_generic.h +4 -4
  329. data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
  330. data/src/core/lib/iomgr/timer_heap.h +16 -8
  331. data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
  332. data/src/core/lib/iomgr/timer_manager.h +8 -0
  333. data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
  334. data/src/core/lib/iomgr/timer_uv.h +2 -2
  335. data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
  336. data/src/core/lib/iomgr/udp_server.h +25 -17
  337. data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
  338. data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
  339. data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
  340. data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
  341. data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
  342. data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
  343. data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
  344. data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
  345. data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
  346. data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
  347. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
  348. data/src/core/lib/json/{json.c → json.cc} +0 -0
  349. data/src/core/lib/json/json.h +8 -0
  350. data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
  351. data/src/core/lib/json/json_reader.h +26 -18
  352. data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
  353. data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
  354. data/src/core/lib/json/json_writer.h +23 -15
  355. data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
  356. data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
  357. data/src/core/lib/profiling/timers.h +6 -6
  358. data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
  359. data/src/core/lib/security/context/security_context.h +27 -29
  360. data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
  361. data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
  362. data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
  363. data/src/core/lib/security/credentials/credentials.h +83 -75
  364. data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
  365. data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
  366. data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
  367. data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
  368. data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
  369. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
  370. data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
  371. data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
  372. data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
  373. data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
  374. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
  375. data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
  376. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
  377. data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
  378. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
  379. data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
  380. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
  381. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
  382. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
  383. data/src/core/lib/security/transport/auth_filters.h +16 -0
  384. data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
  385. data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
  386. data/src/core/lib/security/transport/lb_targets_info.h +11 -3
  387. data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
  388. data/src/core/lib/security/transport/secure_endpoint.h +13 -5
  389. data/src/core/lib/security/transport/security_connector.cc +1121 -0
  390. data/src/core/lib/security/transport/security_connector.h +97 -79
  391. data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
  392. data/src/core/lib/security/transport/security_handshaker.h +11 -3
  393. data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
  394. data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
  395. data/src/core/lib/security/transport/tsi_error.h +9 -1
  396. data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
  397. data/src/core/lib/security/util/json_util.h +12 -4
  398. data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
  399. data/src/core/lib/slice/b64.h +12 -4
  400. data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
  401. data/src/core/lib/slice/percent_encoding.h +11 -3
  402. data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
  403. data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
  404. data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
  405. data/src/core/lib/slice/slice_hash_table.h +19 -11
  406. data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
  407. data/src/core/lib/slice/slice_internal.h +17 -6
  408. data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
  409. data/src/core/lib/slice/slice_string_helpers.h +3 -3
  410. data/src/core/lib/support/abstract.h +29 -0
  411. data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
  412. data/src/core/lib/support/{arena.c → arena.cc} +12 -12
  413. data/src/core/lib/support/arena.h +11 -3
  414. data/src/core/lib/support/{atm.c → atm.cc} +1 -1
  415. data/src/core/lib/support/{avl.c → avl.cc} +71 -70
  416. data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
  417. data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
  418. data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
  419. data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
  420. data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
  421. data/src/core/lib/support/env.h +3 -3
  422. data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
  423. data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
  424. data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
  425. data/src/core/lib/support/{fork.c → fork.cc} +2 -2
  426. data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
  427. data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
  428. data/src/core/lib/support/{log.c → log.cc} +8 -8
  429. data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
  430. data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
  431. data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
  432. data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
  433. data/src/core/lib/support/manual_constructor.h +211 -0
  434. data/src/core/lib/support/memory.h +41 -0
  435. data/src/core/lib/support/mpscq.cc +114 -0
  436. data/src/core/lib/support/mpscq.h +45 -7
  437. data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
  438. data/src/core/lib/support/murmur_hash.h +9 -1
  439. data/src/core/lib/support/spinlock.h +8 -1
  440. data/src/core/lib/support/{string.c → string.cc} +56 -55
  441. data/src/core/lib/support/string.h +21 -21
  442. data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
  443. data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
  444. data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
  445. data/src/core/lib/support/string_windows.h +8 -0
  446. data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
  447. data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
  448. data/src/core/lib/support/{sync.c → sync.cc} +22 -22
  449. data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
  450. data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
  451. data/src/core/lib/support/{thd.c → thd.cc} +0 -0
  452. data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
  453. data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
  454. data/src/core/lib/support/{time.c → time.cc} +0 -0
  455. data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
  456. data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
  457. data/src/core/lib/support/time_precise.h +9 -1
  458. data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
  459. data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
  460. data/src/core/lib/support/tmpfile.h +1 -1
  461. data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
  462. data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
  463. data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
  464. data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
  465. data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
  466. data/src/core/lib/surface/alarm_internal.h +10 -2
  467. data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
  468. data/src/core/lib/surface/api_trace.h +2 -2
  469. data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
  470. data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
  471. data/src/core/lib/surface/{call.c → call.cc} +379 -372
  472. data/src/core/lib/surface/call.h +37 -38
  473. data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
  474. data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
  475. data/src/core/lib/surface/call_test_only.h +5 -5
  476. data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
  477. data/src/core/lib/surface/channel.h +29 -21
  478. data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
  479. data/src/core/lib/surface/channel_init.h +6 -6
  480. data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
  481. data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
  482. data/src/core/lib/surface/channel_stack_type.h +9 -1
  483. data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
  484. data/src/core/lib/surface/completion_queue.h +29 -29
  485. data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
  486. data/src/core/lib/surface/completion_queue_factory.h +8 -0
  487. data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
  488. data/src/core/lib/surface/event_string.h +9 -1
  489. data/src/core/lib/surface/{init.c → init.cc} +16 -39
  490. data/src/core/lib/surface/init.h +8 -0
  491. data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
  492. data/src/core/lib/surface/lame_client.cc +38 -40
  493. data/src/core/lib/surface/lame_client.h +8 -0
  494. data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
  495. data/src/core/lib/surface/{server.c → server.cc} +340 -404
  496. data/src/core/lib/surface/server.h +22 -14
  497. data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
  498. data/src/core/lib/surface/validate_metadata.h +10 -2
  499. data/src/core/lib/surface/{version.c → version.cc} +2 -2
  500. data/src/core/lib/transport/bdp_estimator.cc +84 -0
  501. data/src/core/lib/transport/bdp_estimator.h +67 -42
  502. data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
  503. data/src/core/lib/transport/byte_stream.h +41 -33
  504. data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
  505. data/src/core/lib/transport/connectivity_state.h +29 -21
  506. data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
  507. data/src/core/lib/transport/error_utils.h +18 -6
  508. data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
  509. data/src/core/lib/transport/metadata.h +22 -20
  510. data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
  511. data/src/core/lib/transport/metadata_batch.h +46 -45
  512. data/src/core/lib/transport/pid_controller.cc +48 -0
  513. data/src/core/lib/transport/pid_controller.h +84 -32
  514. data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
  515. data/src/core/lib/transport/service_config.h +11 -2
  516. data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
  517. data/src/core/lib/transport/static_metadata.h +30 -23
  518. data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
  519. data/src/core/lib/transport/status_conversion.h +12 -2
  520. data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
  521. data/src/core/lib/transport/timeout_encoding.h +11 -2
  522. data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
  523. data/src/core/lib/transport/transport.h +78 -80
  524. data/src/core/lib/transport/transport_impl.h +27 -19
  525. data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
  526. data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
  527. data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
  528. data/src/core/tsi/fake_transport_security.h +5 -5
  529. data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
  530. data/src/core/tsi/gts_transport_security.h +11 -3
  531. data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
  532. data/src/core/tsi/ssl_transport_security.h +25 -25
  533. data/src/core/tsi/ssl_types.h +8 -0
  534. data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
  535. data/src/core/tsi/transport_security.h +55 -55
  536. data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
  537. data/src/core/tsi/transport_security_adapter.h +2 -2
  538. data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
  539. data/src/core/tsi/transport_security_grpc.h +19 -19
  540. data/src/core/tsi/transport_security_interface.h +41 -41
  541. data/src/ruby/ext/grpc/extconf.rb +4 -2
  542. data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
  543. data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
  544. data/src/ruby/ext/grpc/rb_call.c +41 -42
  545. data/src/ruby/ext/grpc/rb_call.h +6 -6
  546. data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
  547. data/src/ruby/ext/grpc/rb_channel.c +87 -87
  548. data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
  549. data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
  550. data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
  551. data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
  552. data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
  553. data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
  554. data/src/ruby/ext/grpc/rb_grpc.c +8 -8
  555. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
  556. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
  557. data/src/ruby/ext/grpc/rb_server.c +23 -23
  558. data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
  559. data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
  560. data/src/ruby/lib/grpc/version.rb +1 -1
  561. data/src/ruby/pb/grpc/health/checker.rb +14 -0
  562. data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
  563. data/third_party/cares/config_freebsd/ares_config.h +502 -0
  564. data/third_party/cares/config_openbsd/ares_config.h +502 -0
  565. metadata +302 -328
  566. data/src/core/ext/census/aggregation.h +0 -51
  567. data/src/core/ext/census/base_resources.c +0 -56
  568. data/src/core/ext/census/base_resources.h +0 -24
  569. data/src/core/ext/census/census_interface.h +0 -61
  570. data/src/core/ext/census/census_rpc_stats.h +0 -86
  571. data/src/core/ext/census/context.c +0 -496
  572. data/src/core/ext/census/gen/census.pb.c +0 -161
  573. data/src/core/ext/census/gen/census.pb.h +0 -280
  574. data/src/core/ext/census/gen/trace_context.pb.c +0 -39
  575. data/src/core/ext/census/gen/trace_context.pb.h +0 -78
  576. data/src/core/ext/census/grpc_filter.c +0 -196
  577. data/src/core/ext/census/grpc_plugin.c +0 -70
  578. data/src/core/ext/census/initialize.c +0 -51
  579. data/src/core/ext/census/intrusive_hash_map.c +0 -305
  580. data/src/core/ext/census/intrusive_hash_map.h +0 -152
  581. data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
  582. data/src/core/ext/census/mlog.c +0 -586
  583. data/src/core/ext/census/mlog.h +0 -80
  584. data/src/core/ext/census/operation.c +0 -48
  585. data/src/core/ext/census/placeholders.c +0 -49
  586. data/src/core/ext/census/resource.c +0 -303
  587. data/src/core/ext/census/resource.h +0 -48
  588. data/src/core/ext/census/rpc_metric_id.h +0 -36
  589. data/src/core/ext/census/trace_context.c +0 -71
  590. data/src/core/ext/census/trace_context.h +0 -56
  591. data/src/core/ext/census/trace_label.h +0 -46
  592. data/src/core/ext/census/trace_propagation.h +0 -48
  593. data/src/core/ext/census/trace_status.h +0 -30
  594. data/src/core/ext/census/trace_string.h +0 -35
  595. data/src/core/ext/census/tracing.c +0 -55
  596. data/src/core/ext/census/tracing.h +0 -109
  597. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
  598. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
  599. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
  600. data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
  601. data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
  602. data/src/core/lib/debug/trace.c +0 -146
  603. data/src/core/lib/iomgr/closure.c +0 -219
  604. data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
  605. data/src/core/lib/iomgr/ev_posix.c +0 -266
  606. data/src/core/lib/iomgr/exec_ctx.c +0 -113
  607. data/src/core/lib/iomgr/tcp_uv.c +0 -381
  608. data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
  609. data/src/core/lib/security/transport/security_connector.c +0 -914
  610. data/src/core/lib/support/backoff.c +0 -72
  611. data/src/core/lib/support/backoff.h +0 -56
  612. data/src/core/lib/support/mpscq.c +0 -79
  613. data/src/core/lib/support/stack_lockfree.c +0 -137
  614. data/src/core/lib/support/stack_lockfree.h +0 -38
  615. data/src/core/lib/transport/bdp_estimator.c +0 -110
  616. data/src/core/lib/transport/pid_controller.c +0 -63
@@ -32,6 +32,10 @@
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
+
35
39
  /* --- grpc_jwt_verifier_status. --- */
36
40
 
37
41
  typedef enum {
@@ -45,25 +49,25 @@ typedef enum {
45
49
  GRPC_JWT_VERIFIER_GENERIC_ERROR
46
50
  } grpc_jwt_verifier_status;
47
51
 
48
- const char *grpc_jwt_verifier_status_to_string(grpc_jwt_verifier_status status);
52
+ const char* grpc_jwt_verifier_status_to_string(grpc_jwt_verifier_status status);
49
53
 
50
54
  /* --- grpc_jwt_claims. --- */
51
55
 
52
56
  typedef struct grpc_jwt_claims grpc_jwt_claims;
53
57
 
54
- void grpc_jwt_claims_destroy(grpc_exec_ctx *exec_ctx, grpc_jwt_claims *claims);
58
+ void grpc_jwt_claims_destroy(grpc_exec_ctx* exec_ctx, grpc_jwt_claims* claims);
55
59
 
56
60
  /* Returns the whole JSON tree of the claims. */
57
- const grpc_json *grpc_jwt_claims_json(const grpc_jwt_claims *claims);
61
+ const grpc_json* grpc_jwt_claims_json(const grpc_jwt_claims* claims);
58
62
 
59
63
  /* Access to registered claims in https://tools.ietf.org/html/rfc7519#page-9 */
60
- const char *grpc_jwt_claims_subject(const grpc_jwt_claims *claims);
61
- const char *grpc_jwt_claims_issuer(const grpc_jwt_claims *claims);
62
- const char *grpc_jwt_claims_id(const grpc_jwt_claims *claims);
63
- const char *grpc_jwt_claims_audience(const grpc_jwt_claims *claims);
64
- gpr_timespec grpc_jwt_claims_issued_at(const grpc_jwt_claims *claims);
65
- gpr_timespec grpc_jwt_claims_expires_at(const grpc_jwt_claims *claims);
66
- gpr_timespec grpc_jwt_claims_not_before(const grpc_jwt_claims *claims);
64
+ const char* grpc_jwt_claims_subject(const grpc_jwt_claims* claims);
65
+ const char* grpc_jwt_claims_issuer(const grpc_jwt_claims* claims);
66
+ const char* grpc_jwt_claims_id(const grpc_jwt_claims* claims);
67
+ const char* grpc_jwt_claims_audience(const grpc_jwt_claims* claims);
68
+ gpr_timespec grpc_jwt_claims_issued_at(const grpc_jwt_claims* claims);
69
+ gpr_timespec grpc_jwt_claims_expires_at(const grpc_jwt_claims* claims);
70
+ gpr_timespec grpc_jwt_claims_not_before(const grpc_jwt_claims* claims);
67
71
 
68
72
  /* --- grpc_jwt_verifier. --- */
69
73
 
@@ -71,17 +75,17 @@ typedef struct grpc_jwt_verifier grpc_jwt_verifier;
71
75
 
72
76
  typedef struct {
73
77
  /* The email domain is the part after the @ sign. */
74
- const char *email_domain;
78
+ const char* email_domain;
75
79
 
76
80
  /* The key url prefix will be used to get the public key from the issuer:
77
81
  https://<key_url_prefix>/<issuer_email>
78
82
  Therefore the key_url_prefix must NOT contain https://. */
79
- const char *key_url_prefix;
83
+ const char* key_url_prefix;
80
84
  } grpc_jwt_verifier_email_domain_key_url_mapping;
81
85
 
82
86
  /* Globals to control the verifier. Not thread-safe. */
83
87
  extern gpr_timespec grpc_jwt_verifier_clock_skew;
84
- extern gpr_timespec grpc_jwt_verifier_max_delay;
88
+ extern grpc_millis grpc_jwt_verifier_max_delay;
85
89
 
86
90
  /* The verifier can be created with some custom mappings to help with key
87
91
  discovery in the case where the issuer is an email address.
@@ -89,37 +93,41 @@ extern gpr_timespec grpc_jwt_verifier_max_delay;
89
93
  A verifier object has one built-in mapping (unless overridden):
90
94
  GRPC_GOOGLE_SERVICE_ACCOUNTS_EMAIL_DOMAIN ->
91
95
  GRPC_GOOGLE_SERVICE_ACCOUNTS_KEY_URL_PREFIX.*/
92
- grpc_jwt_verifier *grpc_jwt_verifier_create(
93
- const grpc_jwt_verifier_email_domain_key_url_mapping *mappings,
96
+ grpc_jwt_verifier* grpc_jwt_verifier_create(
97
+ const grpc_jwt_verifier_email_domain_key_url_mapping* mappings,
94
98
  size_t num_mappings);
95
99
 
96
100
  /*The verifier must not be destroyed if there are still outstanding callbacks.*/
97
- void grpc_jwt_verifier_destroy(grpc_exec_ctx *exec_ctx,
98
- grpc_jwt_verifier *verifier);
101
+ void grpc_jwt_verifier_destroy(grpc_exec_ctx* exec_ctx,
102
+ grpc_jwt_verifier* verifier);
99
103
 
100
104
  /* User provided callback that will be called when the verification of the JWT
101
105
  is done (maybe in another thread).
102
106
  It is the responsibility of the callee to call grpc_jwt_claims_destroy on
103
107
  the claims. */
104
- typedef void (*grpc_jwt_verification_done_cb)(grpc_exec_ctx *exec_ctx,
105
- void *user_data,
108
+ typedef void (*grpc_jwt_verification_done_cb)(grpc_exec_ctx* exec_ctx,
109
+ void* user_data,
106
110
  grpc_jwt_verifier_status status,
107
- grpc_jwt_claims *claims);
111
+ grpc_jwt_claims* claims);
108
112
 
109
113
  /* Verifies for the JWT for the given expected audience. */
110
- void grpc_jwt_verifier_verify(grpc_exec_ctx *exec_ctx,
111
- grpc_jwt_verifier *verifier,
112
- grpc_pollset *pollset, const char *jwt,
113
- const char *audience,
114
+ void grpc_jwt_verifier_verify(grpc_exec_ctx* exec_ctx,
115
+ grpc_jwt_verifier* verifier,
116
+ grpc_pollset* pollset, const char* jwt,
117
+ const char* audience,
114
118
  grpc_jwt_verification_done_cb cb,
115
- void *user_data);
119
+ void* user_data);
116
120
 
117
121
  /* --- TESTING ONLY exposed functions. --- */
118
122
 
119
- grpc_jwt_claims *grpc_jwt_claims_from_json(grpc_exec_ctx *exec_ctx,
120
- grpc_json *json, grpc_slice buffer);
121
- grpc_jwt_verifier_status grpc_jwt_claims_check(const grpc_jwt_claims *claims,
122
- const char *audience);
123
- const char *grpc_jwt_issuer_email_domain(const char *issuer);
123
+ grpc_jwt_claims* grpc_jwt_claims_from_json(grpc_exec_ctx* exec_ctx,
124
+ grpc_json* json, grpc_slice buffer);
125
+ grpc_jwt_verifier_status grpc_jwt_claims_check(const grpc_jwt_claims* claims,
126
+ const char* audience);
127
+ const char* grpc_jwt_issuer_email_domain(const char* issuer);
128
+
129
+ #ifdef __cplusplus
130
+ }
131
+ #endif
124
132
 
125
133
  #endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_JWT_JWT_VERIFIER_H */
@@ -32,26 +32,26 @@
32
32
  //
33
33
 
34
34
  int grpc_auth_refresh_token_is_valid(
35
- const grpc_auth_refresh_token *refresh_token) {
36
- return (refresh_token != NULL) &&
35
+ const grpc_auth_refresh_token* refresh_token) {
36
+ return (refresh_token != nullptr) &&
37
37
  strcmp(refresh_token->type, GRPC_AUTH_JSON_TYPE_INVALID);
38
38
  }
39
39
 
40
40
  grpc_auth_refresh_token grpc_auth_refresh_token_create_from_json(
41
- const grpc_json *json) {
41
+ const grpc_json* json) {
42
42
  grpc_auth_refresh_token result;
43
- const char *prop_value;
43
+ const char* prop_value;
44
44
  int success = 0;
45
45
 
46
46
  memset(&result, 0, sizeof(grpc_auth_refresh_token));
47
47
  result.type = GRPC_AUTH_JSON_TYPE_INVALID;
48
- if (json == NULL) {
48
+ if (json == nullptr) {
49
49
  gpr_log(GPR_ERROR, "Invalid json.");
50
50
  goto end;
51
51
  }
52
52
 
53
53
  prop_value = grpc_json_get_string_property(json, "type");
54
- if (prop_value == NULL ||
54
+ if (prop_value == nullptr ||
55
55
  strcmp(prop_value, GRPC_AUTH_JSON_TYPE_AUTHORIZED_USER)) {
56
56
  goto end;
57
57
  }
@@ -72,30 +72,30 @@ end:
72
72
  }
73
73
 
74
74
  grpc_auth_refresh_token grpc_auth_refresh_token_create_from_string(
75
- const char *json_string) {
76
- char *scratchpad = gpr_strdup(json_string);
77
- grpc_json *json = grpc_json_parse_string(scratchpad);
75
+ const char* json_string) {
76
+ char* scratchpad = gpr_strdup(json_string);
77
+ grpc_json* json = grpc_json_parse_string(scratchpad);
78
78
  grpc_auth_refresh_token result =
79
79
  grpc_auth_refresh_token_create_from_json(json);
80
- if (json != NULL) grpc_json_destroy(json);
80
+ if (json != nullptr) grpc_json_destroy(json);
81
81
  gpr_free(scratchpad);
82
82
  return result;
83
83
  }
84
84
 
85
- void grpc_auth_refresh_token_destruct(grpc_auth_refresh_token *refresh_token) {
86
- if (refresh_token == NULL) return;
85
+ void grpc_auth_refresh_token_destruct(grpc_auth_refresh_token* refresh_token) {
86
+ if (refresh_token == nullptr) return;
87
87
  refresh_token->type = GRPC_AUTH_JSON_TYPE_INVALID;
88
- if (refresh_token->client_id != NULL) {
88
+ if (refresh_token->client_id != nullptr) {
89
89
  gpr_free(refresh_token->client_id);
90
- refresh_token->client_id = NULL;
90
+ refresh_token->client_id = nullptr;
91
91
  }
92
- if (refresh_token->client_secret != NULL) {
92
+ if (refresh_token->client_secret != nullptr) {
93
93
  gpr_free(refresh_token->client_secret);
94
- refresh_token->client_secret = NULL;
94
+ refresh_token->client_secret = nullptr;
95
95
  }
96
- if (refresh_token->refresh_token != NULL) {
96
+ if (refresh_token->refresh_token != nullptr) {
97
97
  gpr_free(refresh_token->refresh_token);
98
- refresh_token->refresh_token = NULL;
98
+ refresh_token->refresh_token = nullptr;
99
99
  }
100
100
  }
101
101
 
@@ -103,10 +103,10 @@ 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) {
108
- grpc_oauth2_token_fetcher_credentials *c =
109
- (grpc_oauth2_token_fetcher_credentials *)creds;
106
+ static void oauth2_token_fetcher_destruct(grpc_exec_ctx* exec_ctx,
107
+ grpc_call_credentials* creds) {
108
+ grpc_oauth2_token_fetcher_credentials* c =
109
+ (grpc_oauth2_token_fetcher_credentials*)creds;
110
110
  GRPC_MDELEM_UNREF(exec_ctx, c->access_token_md);
111
111
  gpr_mu_destroy(&c->mu);
112
112
  grpc_pollset_set_destroy(exec_ctx,
@@ -116,21 +116,21 @@ static void oauth2_token_fetcher_destruct(grpc_exec_ctx *exec_ctx,
116
116
 
117
117
  grpc_credentials_status
118
118
  grpc_oauth2_token_fetcher_credentials_parse_server_response(
119
- grpc_exec_ctx *exec_ctx, const grpc_http_response *response,
120
- grpc_mdelem *token_md, gpr_timespec *token_lifetime) {
121
- char *null_terminated_body = NULL;
122
- char *new_access_token = NULL;
119
+ grpc_exec_ctx* exec_ctx, const grpc_http_response* response,
120
+ grpc_mdelem* token_md, grpc_millis* token_lifetime) {
121
+ char* null_terminated_body = nullptr;
122
+ char* new_access_token = nullptr;
123
123
  grpc_credentials_status status = GRPC_CREDENTIALS_OK;
124
- grpc_json *json = NULL;
124
+ grpc_json* json = nullptr;
125
125
 
126
- if (response == NULL) {
126
+ if (response == nullptr) {
127
127
  gpr_log(GPR_ERROR, "Received NULL response.");
128
128
  status = GRPC_CREDENTIALS_ERROR;
129
129
  goto end;
130
130
  }
131
131
 
132
132
  if (response->body_length > 0) {
133
- null_terminated_body = gpr_malloc(response->body_length + 1);
133
+ null_terminated_body = (char*)gpr_malloc(response->body_length + 1);
134
134
  null_terminated_body[response->body_length] = '\0';
135
135
  memcpy(null_terminated_body, response->body, response->body_length);
136
136
  }
@@ -138,16 +138,16 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
138
138
  if (response->status != 200) {
139
139
  gpr_log(GPR_ERROR, "Call to http server ended with error %d [%s].",
140
140
  response->status,
141
- null_terminated_body != NULL ? null_terminated_body : "");
141
+ null_terminated_body != nullptr ? null_terminated_body : "");
142
142
  status = GRPC_CREDENTIALS_ERROR;
143
143
  goto end;
144
144
  } else {
145
- grpc_json *access_token = NULL;
146
- grpc_json *token_type = NULL;
147
- grpc_json *expires_in = NULL;
148
- grpc_json *ptr;
145
+ grpc_json* access_token = nullptr;
146
+ grpc_json* token_type = nullptr;
147
+ grpc_json* expires_in = nullptr;
148
+ grpc_json* ptr;
149
149
  json = grpc_json_parse_string(null_terminated_body);
150
- if (json == NULL) {
150
+ if (json == nullptr) {
151
151
  gpr_log(GPR_ERROR, "Could not parse JSON from %s", null_terminated_body);
152
152
  status = GRPC_CREDENTIALS_ERROR;
153
153
  goto end;
@@ -166,26 +166,24 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
166
166
  expires_in = ptr;
167
167
  }
168
168
  }
169
- if (access_token == NULL || access_token->type != GRPC_JSON_STRING) {
169
+ if (access_token == nullptr || access_token->type != GRPC_JSON_STRING) {
170
170
  gpr_log(GPR_ERROR, "Missing or invalid access_token in JSON.");
171
171
  status = GRPC_CREDENTIALS_ERROR;
172
172
  goto end;
173
173
  }
174
- if (token_type == NULL || token_type->type != GRPC_JSON_STRING) {
174
+ if (token_type == nullptr || token_type->type != GRPC_JSON_STRING) {
175
175
  gpr_log(GPR_ERROR, "Missing or invalid token_type in JSON.");
176
176
  status = GRPC_CREDENTIALS_ERROR;
177
177
  goto end;
178
178
  }
179
- if (expires_in == NULL || expires_in->type != GRPC_JSON_NUMBER) {
179
+ if (expires_in == nullptr || expires_in->type != GRPC_JSON_NUMBER) {
180
180
  gpr_log(GPR_ERROR, "Missing or invalid expires_in in JSON.");
181
181
  status = GRPC_CREDENTIALS_ERROR;
182
182
  goto end;
183
183
  }
184
184
  gpr_asprintf(&new_access_token, "%s %s", token_type->value,
185
185
  access_token->value);
186
- token_lifetime->tv_sec = strtol(expires_in->value, NULL, 10);
187
- token_lifetime->tv_nsec = 0;
188
- token_lifetime->clock_type = GPR_TIMESPAN;
186
+ *token_lifetime = strtol(expires_in->value, nullptr, 10) * GPR_MS_PER_SEC;
189
187
  if (!GRPC_MDISNULL(*token_md)) GRPC_MDELEM_UNREF(exec_ctx, *token_md);
190
188
  *token_md = grpc_mdelem_from_slices(
191
189
  exec_ctx,
@@ -199,22 +197,22 @@ end:
199
197
  GRPC_MDELEM_UNREF(exec_ctx, *token_md);
200
198
  *token_md = GRPC_MDNULL;
201
199
  }
202
- if (null_terminated_body != NULL) gpr_free(null_terminated_body);
203
- if (new_access_token != NULL) gpr_free(new_access_token);
204
- if (json != NULL) grpc_json_destroy(json);
200
+ if (null_terminated_body != nullptr) gpr_free(null_terminated_body);
201
+ if (new_access_token != nullptr) gpr_free(new_access_token);
202
+ if (json != nullptr) grpc_json_destroy(json);
205
203
  return status;
206
204
  }
207
205
 
208
- static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx *exec_ctx,
209
- void *user_data,
210
- grpc_error *error) {
206
+ static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx* exec_ctx,
207
+ void* user_data,
208
+ grpc_error* error) {
211
209
  GRPC_LOG_IF_ERROR("oauth_fetch", GRPC_ERROR_REF(error));
212
- grpc_credentials_metadata_request *r =
213
- (grpc_credentials_metadata_request *)user_data;
214
- grpc_oauth2_token_fetcher_credentials *c =
215
- (grpc_oauth2_token_fetcher_credentials *)r->creds;
210
+ grpc_credentials_metadata_request* r =
211
+ (grpc_credentials_metadata_request*)user_data;
212
+ grpc_oauth2_token_fetcher_credentials* c =
213
+ (grpc_oauth2_token_fetcher_credentials*)r->creds;
216
214
  grpc_mdelem access_token_md = GRPC_MDNULL;
217
- gpr_timespec token_lifetime;
215
+ grpc_millis token_lifetime;
218
216
  grpc_credentials_status status =
219
217
  grpc_oauth2_token_fetcher_credentials_parse_server_response(
220
218
  exec_ctx, &r->response, &access_token_md, &token_lifetime);
@@ -222,16 +220,15 @@ static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx *exec_ctx,
222
220
  gpr_mu_lock(&c->mu);
223
221
  c->token_fetch_pending = false;
224
222
  c->access_token_md = GRPC_MDELEM_REF(access_token_md);
225
- c->token_expiration =
226
- status == GRPC_CREDENTIALS_OK
227
- ? gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), token_lifetime)
228
- : gpr_inf_past(GPR_CLOCK_REALTIME);
229
- grpc_oauth2_pending_get_request_metadata *pending_request =
223
+ c->token_expiration = status == GRPC_CREDENTIALS_OK
224
+ ? grpc_exec_ctx_now(exec_ctx) + token_lifetime
225
+ : 0;
226
+ grpc_oauth2_pending_get_request_metadata* pending_request =
230
227
  c->pending_requests;
231
- c->pending_requests = NULL;
228
+ c->pending_requests = nullptr;
232
229
  gpr_mu_unlock(&c->mu);
233
230
  // Invoke callbacks for all pending requests.
234
- while (pending_request != NULL) {
231
+ while (pending_request != nullptr) {
235
232
  if (status == GRPC_CREDENTIALS_OK) {
236
233
  grpc_credentials_mdelem_array_add(pending_request->md_array,
237
234
  access_token_md);
@@ -243,7 +240,7 @@ static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx *exec_ctx,
243
240
  grpc_polling_entity_del_from_pollset_set(
244
241
  exec_ctx, pending_request->pollent,
245
242
  grpc_polling_entity_pollset_set(&c->pollent));
246
- grpc_oauth2_pending_get_request_metadata *prev = pending_request;
243
+ grpc_oauth2_pending_get_request_metadata* prev = pending_request;
247
244
  pending_request = pending_request->next;
248
245
  gpr_free(prev);
249
246
  }
@@ -253,21 +250,19 @@ static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx *exec_ctx,
253
250
  }
254
251
 
255
252
  static bool oauth2_token_fetcher_get_request_metadata(
256
- grpc_exec_ctx *exec_ctx, grpc_call_credentials *creds,
257
- grpc_polling_entity *pollent, grpc_auth_metadata_context context,
258
- grpc_credentials_mdelem_array *md_array, grpc_closure *on_request_metadata,
259
- grpc_error **error) {
260
- grpc_oauth2_token_fetcher_credentials *c =
261
- (grpc_oauth2_token_fetcher_credentials *)creds;
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) {
257
+ grpc_oauth2_token_fetcher_credentials* c =
258
+ (grpc_oauth2_token_fetcher_credentials*)creds;
262
259
  // Check if we can use the cached token.
263
- gpr_timespec refresh_threshold = gpr_time_from_seconds(
264
- GRPC_SECURE_TOKEN_REFRESH_THRESHOLD_SECS, GPR_TIMESPAN);
260
+ grpc_millis refresh_threshold =
261
+ GRPC_SECURE_TOKEN_REFRESH_THRESHOLD_SECS * GPR_MS_PER_SEC;
265
262
  grpc_mdelem cached_access_token_md = GRPC_MDNULL;
266
263
  gpr_mu_lock(&c->mu);
267
264
  if (!GRPC_MDISNULL(c->access_token_md) &&
268
- (gpr_time_cmp(
269
- gpr_time_sub(c->token_expiration, gpr_now(GPR_CLOCK_REALTIME)),
270
- refresh_threshold) > 0)) {
265
+ (c->token_expiration - grpc_exec_ctx_now(exec_ctx) > refresh_threshold)) {
271
266
  cached_access_token_md = GRPC_MDELEM_REF(c->access_token_md);
272
267
  }
273
268
  if (!GRPC_MDISNULL(cached_access_token_md)) {
@@ -278,8 +273,8 @@ static bool oauth2_token_fetcher_get_request_metadata(
278
273
  }
279
274
  // Couldn't get the token from the cache.
280
275
  // Add request to c->pending_requests and start a new fetch if needed.
281
- grpc_oauth2_pending_get_request_metadata *pending_request =
282
- (grpc_oauth2_pending_get_request_metadata *)gpr_malloc(
276
+ grpc_oauth2_pending_get_request_metadata* pending_request =
277
+ (grpc_oauth2_pending_get_request_metadata*)gpr_malloc(
283
278
  sizeof(*pending_request));
284
279
  pending_request->md_array = md_array;
285
280
  pending_request->on_request_metadata = on_request_metadata;
@@ -296,27 +291,27 @@ static bool oauth2_token_fetcher_get_request_metadata(
296
291
  gpr_mu_unlock(&c->mu);
297
292
  if (start_fetch) {
298
293
  grpc_call_credentials_ref(creds);
299
- c->fetch_func(
300
- exec_ctx, grpc_credentials_metadata_request_create(creds),
301
- &c->httpcli_context, &c->pollent, on_oauth2_token_fetcher_http_response,
302
- gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC), refresh_threshold));
294
+ c->fetch_func(exec_ctx, grpc_credentials_metadata_request_create(creds),
295
+ &c->httpcli_context, &c->pollent,
296
+ on_oauth2_token_fetcher_http_response,
297
+ grpc_exec_ctx_now(exec_ctx) + refresh_threshold);
303
298
  }
304
299
  return false;
305
300
  }
306
301
 
307
302
  static void oauth2_token_fetcher_cancel_get_request_metadata(
308
- grpc_exec_ctx *exec_ctx, grpc_call_credentials *creds,
309
- grpc_credentials_mdelem_array *md_array, grpc_error *error) {
310
- grpc_oauth2_token_fetcher_credentials *c =
311
- (grpc_oauth2_token_fetcher_credentials *)creds;
303
+ grpc_exec_ctx* exec_ctx, grpc_call_credentials* creds,
304
+ grpc_credentials_mdelem_array* md_array, grpc_error* error) {
305
+ grpc_oauth2_token_fetcher_credentials* c =
306
+ (grpc_oauth2_token_fetcher_credentials*)creds;
312
307
  gpr_mu_lock(&c->mu);
313
- grpc_oauth2_pending_get_request_metadata *prev = NULL;
314
- grpc_oauth2_pending_get_request_metadata *pending_request =
308
+ grpc_oauth2_pending_get_request_metadata* prev = nullptr;
309
+ grpc_oauth2_pending_get_request_metadata* pending_request =
315
310
  c->pending_requests;
316
- while (pending_request != NULL) {
311
+ while (pending_request != nullptr) {
317
312
  if (pending_request->md_array == md_array) {
318
313
  // Remove matching pending request from the list.
319
- if (prev != NULL) {
314
+ if (prev != nullptr) {
320
315
  prev->next = pending_request->next;
321
316
  } else {
322
317
  c->pending_requests = pending_request->next;
@@ -334,13 +329,13 @@ static void oauth2_token_fetcher_cancel_get_request_metadata(
334
329
  GRPC_ERROR_UNREF(error);
335
330
  }
336
331
 
337
- static void init_oauth2_token_fetcher(grpc_oauth2_token_fetcher_credentials *c,
332
+ static void init_oauth2_token_fetcher(grpc_oauth2_token_fetcher_credentials* c,
338
333
  grpc_fetch_oauth2_func fetch_func) {
339
334
  memset(c, 0, sizeof(grpc_oauth2_token_fetcher_credentials));
340
335
  c->base.type = GRPC_CALL_CREDENTIALS_TYPE_OAUTH2;
341
336
  gpr_ref_init(&c->base.refcount, 1);
342
337
  gpr_mu_init(&c->mu);
343
- c->token_expiration = gpr_inf_past(GPR_CLOCK_REALTIME);
338
+ c->token_expiration = 0;
344
339
  c->fetch_func = fetch_func;
345
340
  c->pollent =
346
341
  grpc_polling_entity_create_from_pollset_set(grpc_pollset_set_create());
@@ -356,20 +351,20 @@ static grpc_call_credentials_vtable compute_engine_vtable = {
356
351
  oauth2_token_fetcher_cancel_get_request_metadata};
357
352
 
358
353
  static void compute_engine_fetch_oauth2(
359
- grpc_exec_ctx *exec_ctx, grpc_credentials_metadata_request *metadata_req,
360
- grpc_httpcli_context *httpcli_context, grpc_polling_entity *pollent,
361
- grpc_iomgr_cb_func response_cb, gpr_timespec deadline) {
362
- grpc_http_header header = {"Metadata-Flavor", "Google"};
354
+ grpc_exec_ctx* exec_ctx, grpc_credentials_metadata_request* metadata_req,
355
+ grpc_httpcli_context* httpcli_context, grpc_polling_entity* pollent,
356
+ grpc_iomgr_cb_func response_cb, grpc_millis deadline) {
357
+ grpc_http_header header = {(char*)"Metadata-Flavor", (char*)"Google"};
363
358
  grpc_httpcli_request request;
364
359
  memset(&request, 0, sizeof(grpc_httpcli_request));
365
- request.host = GRPC_COMPUTE_ENGINE_METADATA_HOST;
366
- request.http.path = GRPC_COMPUTE_ENGINE_METADATA_TOKEN_PATH;
360
+ request.host = (char*)GRPC_COMPUTE_ENGINE_METADATA_HOST;
361
+ request.http.path = (char*)GRPC_COMPUTE_ENGINE_METADATA_TOKEN_PATH;
367
362
  request.http.hdr_count = 1;
368
363
  request.http.hdrs = &header;
369
364
  /* TODO(ctiller): Carry the resource_quota in ctx and share it with the host
370
365
  channel. This would allow us to cancel an authentication query when under
371
366
  extreme memory pressure. */
372
- grpc_resource_quota *resource_quota =
367
+ grpc_resource_quota* resource_quota =
373
368
  grpc_resource_quota_create("oauth2_credentials");
374
369
  grpc_httpcli_get(
375
370
  exec_ctx, httpcli_context, pollent, resource_quota, &request, deadline,
@@ -378,13 +373,14 @@ static void compute_engine_fetch_oauth2(
378
373
  grpc_resource_quota_unref_internal(exec_ctx, resource_quota);
379
374
  }
380
375
 
381
- grpc_call_credentials *grpc_google_compute_engine_credentials_create(
382
- void *reserved) {
383
- grpc_oauth2_token_fetcher_credentials *c =
384
- gpr_malloc(sizeof(grpc_oauth2_token_fetcher_credentials));
376
+ grpc_call_credentials* grpc_google_compute_engine_credentials_create(
377
+ void* reserved) {
378
+ grpc_oauth2_token_fetcher_credentials* c =
379
+ (grpc_oauth2_token_fetcher_credentials*)gpr_malloc(
380
+ sizeof(grpc_oauth2_token_fetcher_credentials));
385
381
  GRPC_API_TRACE("grpc_compute_engine_credentials_create(reserved=%p)", 1,
386
382
  (reserved));
387
- GPR_ASSERT(reserved == NULL);
383
+ GPR_ASSERT(reserved == nullptr);
388
384
  init_oauth2_token_fetcher(c, compute_engine_fetch_oauth2);
389
385
  c->base.vtable = &compute_engine_vtable;
390
386
  return &c->base;
@@ -394,10 +390,10 @@ grpc_call_credentials *grpc_google_compute_engine_credentials_create(
394
390
  // Google Refresh Token credentials.
395
391
  //
396
392
 
397
- static void refresh_token_destruct(grpc_exec_ctx *exec_ctx,
398
- grpc_call_credentials *creds) {
399
- grpc_google_refresh_token_credentials *c =
400
- (grpc_google_refresh_token_credentials *)creds;
393
+ static void refresh_token_destruct(grpc_exec_ctx* exec_ctx,
394
+ grpc_call_credentials* creds) {
395
+ grpc_google_refresh_token_credentials* c =
396
+ (grpc_google_refresh_token_credentials*)creds;
401
397
  grpc_auth_refresh_token_destruct(&c->refresh_token);
402
398
  oauth2_token_fetcher_destruct(exec_ctx, &c->base.base);
403
399
  }
@@ -407,28 +403,28 @@ static grpc_call_credentials_vtable refresh_token_vtable = {
407
403
  oauth2_token_fetcher_cancel_get_request_metadata};
408
404
 
409
405
  static void refresh_token_fetch_oauth2(
410
- grpc_exec_ctx *exec_ctx, grpc_credentials_metadata_request *metadata_req,
411
- grpc_httpcli_context *httpcli_context, grpc_polling_entity *pollent,
412
- grpc_iomgr_cb_func response_cb, gpr_timespec deadline) {
413
- grpc_google_refresh_token_credentials *c =
414
- (grpc_google_refresh_token_credentials *)metadata_req->creds;
415
- grpc_http_header header = {"Content-Type",
416
- "application/x-www-form-urlencoded"};
406
+ grpc_exec_ctx* exec_ctx, grpc_credentials_metadata_request* metadata_req,
407
+ grpc_httpcli_context* httpcli_context, grpc_polling_entity* pollent,
408
+ grpc_iomgr_cb_func response_cb, grpc_millis deadline) {
409
+ grpc_google_refresh_token_credentials* c =
410
+ (grpc_google_refresh_token_credentials*)metadata_req->creds;
411
+ grpc_http_header header = {(char*)"Content-Type",
412
+ (char*)"application/x-www-form-urlencoded"};
417
413
  grpc_httpcli_request request;
418
- char *body = NULL;
414
+ char* body = nullptr;
419
415
  gpr_asprintf(&body, GRPC_REFRESH_TOKEN_POST_BODY_FORMAT_STRING,
420
416
  c->refresh_token.client_id, c->refresh_token.client_secret,
421
417
  c->refresh_token.refresh_token);
422
418
  memset(&request, 0, sizeof(grpc_httpcli_request));
423
- request.host = GRPC_GOOGLE_OAUTH2_SERVICE_HOST;
424
- request.http.path = GRPC_GOOGLE_OAUTH2_SERVICE_TOKEN_PATH;
419
+ request.host = (char*)GRPC_GOOGLE_OAUTH2_SERVICE_HOST;
420
+ request.http.path = (char*)GRPC_GOOGLE_OAUTH2_SERVICE_TOKEN_PATH;
425
421
  request.http.hdr_count = 1;
426
422
  request.http.hdrs = &header;
427
423
  request.handshaker = &grpc_httpcli_ssl;
428
424
  /* TODO(ctiller): Carry the resource_quota in ctx and share it with the host
429
425
  channel. This would allow us to cancel an authentication query when under
430
426
  extreme memory pressure. */
431
- grpc_resource_quota *resource_quota =
427
+ grpc_resource_quota* resource_quota =
432
428
  grpc_resource_quota_create("oauth2_credentials_refresh");
433
429
  grpc_httpcli_post(
434
430
  exec_ctx, httpcli_context, pollent, resource_quota, &request, body,
@@ -439,26 +435,27 @@ static void refresh_token_fetch_oauth2(
439
435
  gpr_free(body);
440
436
  }
441
437
 
442
- grpc_call_credentials *
438
+ grpc_call_credentials*
443
439
  grpc_refresh_token_credentials_create_from_auth_refresh_token(
444
440
  grpc_auth_refresh_token refresh_token) {
445
- grpc_google_refresh_token_credentials *c;
441
+ grpc_google_refresh_token_credentials* c;
446
442
  if (!grpc_auth_refresh_token_is_valid(&refresh_token)) {
447
443
  gpr_log(GPR_ERROR, "Invalid input for refresh token credentials creation");
448
- return NULL;
444
+ return nullptr;
449
445
  }
450
- c = gpr_zalloc(sizeof(grpc_google_refresh_token_credentials));
446
+ c = (grpc_google_refresh_token_credentials*)gpr_zalloc(
447
+ sizeof(grpc_google_refresh_token_credentials));
451
448
  init_oauth2_token_fetcher(&c->base, refresh_token_fetch_oauth2);
452
449
  c->base.base.vtable = &refresh_token_vtable;
453
450
  c->refresh_token = refresh_token;
454
451
  return &c->base.base;
455
452
  }
456
453
 
457
- static char *create_loggable_refresh_token(grpc_auth_refresh_token *token) {
454
+ static char* create_loggable_refresh_token(grpc_auth_refresh_token* token) {
458
455
  if (strcmp(token->type, GRPC_AUTH_JSON_TYPE_INVALID) == 0) {
459
456
  return gpr_strdup("<Invalid json token>");
460
457
  }
461
- char *loggable_token = NULL;
458
+ char* loggable_token = nullptr;
462
459
  gpr_asprintf(&loggable_token,
463
460
  "{\n type: %s\n client_id: %s\n client_secret: "
464
461
  "<redacted>\n refresh_token: <redacted>\n}",
@@ -466,19 +463,19 @@ static char *create_loggable_refresh_token(grpc_auth_refresh_token *token) {
466
463
  return loggable_token;
467
464
  }
468
465
 
469
- grpc_call_credentials *grpc_google_refresh_token_credentials_create(
470
- const char *json_refresh_token, void *reserved) {
466
+ grpc_call_credentials* grpc_google_refresh_token_credentials_create(
467
+ const char* json_refresh_token, void* reserved) {
471
468
  grpc_auth_refresh_token token =
472
469
  grpc_auth_refresh_token_create_from_string(json_refresh_token);
473
- if (GRPC_TRACER_ON(grpc_api_trace)) {
474
- char *loggable_token = create_loggable_refresh_token(&token);
470
+ if (grpc_api_trace.enabled()) {
471
+ char* loggable_token = create_loggable_refresh_token(&token);
475
472
  gpr_log(GPR_INFO,
476
473
  "grpc_refresh_token_credentials_create(json_refresh_token=%s, "
477
474
  "reserved=%p)",
478
475
  loggable_token, reserved);
479
476
  gpr_free(loggable_token);
480
477
  }
481
- GPR_ASSERT(reserved == NULL);
478
+ GPR_ASSERT(reserved == nullptr);
482
479
  return grpc_refresh_token_credentials_create_from_auth_refresh_token(token);
483
480
  }
484
481
 
@@ -486,25 +483,25 @@ grpc_call_credentials *grpc_google_refresh_token_credentials_create(
486
483
  // Oauth2 Access Token credentials.
487
484
  //
488
485
 
489
- static void access_token_destruct(grpc_exec_ctx *exec_ctx,
490
- grpc_call_credentials *creds) {
491
- grpc_access_token_credentials *c = (grpc_access_token_credentials *)creds;
486
+ static void access_token_destruct(grpc_exec_ctx* exec_ctx,
487
+ grpc_call_credentials* creds) {
488
+ grpc_access_token_credentials* c = (grpc_access_token_credentials*)creds;
492
489
  GRPC_MDELEM_UNREF(exec_ctx, c->access_token_md);
493
490
  }
494
491
 
495
492
  static bool access_token_get_request_metadata(
496
- grpc_exec_ctx *exec_ctx, grpc_call_credentials *creds,
497
- grpc_polling_entity *pollent, grpc_auth_metadata_context context,
498
- grpc_credentials_mdelem_array *md_array, grpc_closure *on_request_metadata,
499
- grpc_error **error) {
500
- grpc_access_token_credentials *c = (grpc_access_token_credentials *)creds;
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) {
497
+ grpc_access_token_credentials* c = (grpc_access_token_credentials*)creds;
501
498
  grpc_credentials_mdelem_array_add(md_array, c->access_token_md);
502
499
  return true;
503
500
  }
504
501
 
505
502
  static void access_token_cancel_get_request_metadata(
506
- grpc_exec_ctx *exec_ctx, grpc_call_credentials *c,
507
- grpc_credentials_mdelem_array *md_array, grpc_error *error) {
503
+ grpc_exec_ctx* exec_ctx, grpc_call_credentials* c,
504
+ grpc_credentials_mdelem_array* md_array, grpc_error* error) {
508
505
  GRPC_ERROR_UNREF(error);
509
506
  }
510
507
 
@@ -512,19 +509,19 @@ static grpc_call_credentials_vtable access_token_vtable = {
512
509
  access_token_destruct, access_token_get_request_metadata,
513
510
  access_token_cancel_get_request_metadata};
514
511
 
515
- grpc_call_credentials *grpc_access_token_credentials_create(
516
- const char *access_token, void *reserved) {
517
- grpc_access_token_credentials *c =
518
- gpr_zalloc(sizeof(grpc_access_token_credentials));
512
+ grpc_call_credentials* grpc_access_token_credentials_create(
513
+ const char* access_token, void* reserved) {
514
+ grpc_access_token_credentials* c = (grpc_access_token_credentials*)gpr_zalloc(
515
+ sizeof(grpc_access_token_credentials));
519
516
  GRPC_API_TRACE(
520
517
  "grpc_access_token_credentials_create(access_token=<redacted>, "
521
518
  "reserved=%p)",
522
519
  1, (reserved));
523
- GPR_ASSERT(reserved == NULL);
520
+ GPR_ASSERT(reserved == nullptr);
524
521
  c->base.type = GRPC_CALL_CREDENTIALS_TYPE_OAUTH2;
525
522
  c->base.vtable = &access_token_vtable;
526
523
  gpr_ref_init(&c->base.refcount, 1);
527
- char *token_md_value;
524
+ char* token_md_value;
528
525
  gpr_asprintf(&token_md_value, "Bearer %s", access_token);
529
526
  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
530
527
  c->access_token_md = grpc_mdelem_from_slices(