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
@@ -25,13 +25,13 @@
25
25
  #include "src/core/lib/support/env.h"
26
26
  #include "src/core/lib/support/string.h"
27
27
 
28
- char *grpc_get_well_known_google_credentials_file_path_impl(void) {
29
- char *result = NULL;
30
- char *base = gpr_getenv(GRPC_GOOGLE_CREDENTIALS_PATH_ENV_VAR);
31
- if (base == NULL) {
28
+ char* grpc_get_well_known_google_credentials_file_path_impl(void) {
29
+ char* result = nullptr;
30
+ char* base = gpr_getenv(GRPC_GOOGLE_CREDENTIALS_PATH_ENV_VAR);
31
+ if (base == nullptr) {
32
32
  gpr_log(GPR_ERROR, "Could not get " GRPC_GOOGLE_CREDENTIALS_ENV_VAR
33
33
  " environment variable.");
34
- return NULL;
34
+ return nullptr;
35
35
  }
36
36
  gpr_asprintf(&result, "%s/%s", base, GRPC_GOOGLE_CREDENTIALS_PATH_SUFFIX);
37
37
  gpr_free(base);
@@ -28,6 +28,7 @@
28
28
  #include "src/core/lib/http/parser.h"
29
29
  #include "src/core/lib/iomgr/load_file.h"
30
30
  #include "src/core/lib/iomgr/polling_entity.h"
31
+ #include "src/core/lib/security/credentials/google_default/google_default_credentials.h"
31
32
  #include "src/core/lib/security/credentials/jwt/jwt_credentials.h"
32
33
  #include "src/core/lib/security/credentials/oauth2/oauth2_credentials.h"
33
34
  #include "src/core/lib/slice/slice_internal.h"
@@ -42,10 +43,10 @@
42
43
 
43
44
  /* -- Default credentials. -- */
44
45
 
45
- static grpc_channel_credentials *default_credentials = NULL;
46
+ static grpc_channel_credentials* default_credentials = nullptr;
46
47
  static int compute_engine_detection_done = 0;
47
48
  static gpr_mu g_state_mu;
48
- static gpr_mu *g_polling_mu;
49
+ static gpr_mu* g_polling_mu;
49
50
  static gpr_once g_once = GPR_ONCE_INIT;
50
51
 
51
52
  static void init_default_credentials(void) { gpr_mu_init(&g_state_mu); }
@@ -57,17 +58,17 @@ typedef struct {
57
58
  grpc_http_response response;
58
59
  } compute_engine_detector;
59
60
 
60
- static void on_compute_engine_detection_http_response(grpc_exec_ctx *exec_ctx,
61
- void *user_data,
62
- grpc_error *error) {
63
- compute_engine_detector *detector = (compute_engine_detector *)user_data;
61
+ static void on_compute_engine_detection_http_response(grpc_exec_ctx* exec_ctx,
62
+ void* user_data,
63
+ grpc_error* error) {
64
+ compute_engine_detector* detector = (compute_engine_detector*)user_data;
64
65
  if (error == GRPC_ERROR_NONE && detector->response.status == 200 &&
65
66
  detector->response.hdr_count > 0) {
66
67
  /* Internet providers can return a generic response to all requests, so
67
68
  it is necessary to check that metadata header is present also. */
68
69
  size_t i;
69
70
  for (i = 0; i < detector->response.hdr_count; i++) {
70
- grpc_http_header *header = &detector->response.hdrs[i];
71
+ grpc_http_header* header = &detector->response.hdrs[i];
71
72
  if (strcmp(header->key, "Metadata-Flavor") == 0 &&
72
73
  strcmp(header->value, "Google") == 0) {
73
74
  detector->success = 1;
@@ -79,16 +80,16 @@ static void on_compute_engine_detection_http_response(grpc_exec_ctx *exec_ctx,
79
80
  detector->is_done = 1;
80
81
  GRPC_LOG_IF_ERROR(
81
82
  "Pollset kick",
82
- grpc_pollset_kick(exec_ctx,
83
- grpc_polling_entity_pollset(&detector->pollent), NULL));
83
+ grpc_pollset_kick(
84
+ exec_ctx, grpc_polling_entity_pollset(&detector->pollent), nullptr));
84
85
  gpr_mu_unlock(g_polling_mu);
85
86
  }
86
87
 
87
- static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p, grpc_error *e) {
88
- grpc_pollset_destroy(exec_ctx, p);
88
+ static void destroy_pollset(grpc_exec_ctx* exec_ctx, void* p, grpc_error* e) {
89
+ grpc_pollset_destroy(exec_ctx, (grpc_pollset*)p);
89
90
  }
90
91
 
91
- static int is_stack_running_on_compute_engine(grpc_exec_ctx *exec_ctx) {
92
+ static int is_stack_running_on_compute_engine(grpc_exec_ctx* exec_ctx) {
92
93
  compute_engine_detector detector;
93
94
  grpc_httpcli_request request;
94
95
  grpc_httpcli_context context;
@@ -96,9 +97,9 @@ static int is_stack_running_on_compute_engine(grpc_exec_ctx *exec_ctx) {
96
97
 
97
98
  /* The http call is local. If it takes more than one sec, it is for sure not
98
99
  on compute engine. */
99
- gpr_timespec max_detection_delay = gpr_time_from_seconds(1, GPR_TIMESPAN);
100
+ grpc_millis max_detection_delay = GPR_MS_PER_SEC;
100
101
 
101
- grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
102
+ grpc_pollset* pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size());
102
103
  grpc_pollset_init(pollset, &g_polling_mu);
103
104
  detector.pollent = grpc_polling_entity_create_from_pollset(pollset);
104
105
  detector.is_done = 0;
@@ -106,16 +107,16 @@ static int is_stack_running_on_compute_engine(grpc_exec_ctx *exec_ctx) {
106
107
 
107
108
  memset(&detector.response, 0, sizeof(detector.response));
108
109
  memset(&request, 0, sizeof(grpc_httpcli_request));
109
- request.host = GRPC_COMPUTE_ENGINE_DETECTION_HOST;
110
- request.http.path = "/";
110
+ request.host = (char*)GRPC_COMPUTE_ENGINE_DETECTION_HOST;
111
+ request.http.path = (char*)"/";
111
112
 
112
113
  grpc_httpcli_context_init(&context);
113
114
 
114
- grpc_resource_quota *resource_quota =
115
+ grpc_resource_quota* resource_quota =
115
116
  grpc_resource_quota_create("google_default_credentials");
116
117
  grpc_httpcli_get(
117
118
  exec_ctx, &context, &detector.pollent, resource_quota, &request,
118
- gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), max_detection_delay),
119
+ grpc_exec_ctx_now(exec_ctx) + max_detection_delay,
119
120
  GRPC_CLOSURE_CREATE(on_compute_engine_detection_http_response, &detector,
120
121
  grpc_schedule_on_exec_ctx),
121
122
  &detector.response);
@@ -127,13 +128,12 @@ static int is_stack_running_on_compute_engine(grpc_exec_ctx *exec_ctx) {
127
128
  called once for the lifetime of the process by the default credentials. */
128
129
  gpr_mu_lock(g_polling_mu);
129
130
  while (!detector.is_done) {
130
- grpc_pollset_worker *worker = NULL;
131
+ grpc_pollset_worker* worker = nullptr;
131
132
  if (!GRPC_LOG_IF_ERROR(
132
133
  "pollset_work",
133
134
  grpc_pollset_work(exec_ctx,
134
135
  grpc_polling_entity_pollset(&detector.pollent),
135
- &worker, gpr_now(GPR_CLOCK_MONOTONIC),
136
- gpr_inf_future(GPR_CLOCK_MONOTONIC)))) {
136
+ &worker, GRPC_MILLIS_INF_FUTURE))) {
137
137
  detector.is_done = 1;
138
138
  detector.success = 0;
139
139
  }
@@ -147,7 +147,7 @@ static int is_stack_running_on_compute_engine(grpc_exec_ctx *exec_ctx) {
147
147
  grpc_pollset_shutdown(exec_ctx,
148
148
  grpc_polling_entity_pollset(&detector.pollent),
149
149
  &destroy_closure);
150
- g_polling_mu = NULL;
150
+ g_polling_mu = nullptr;
151
151
  grpc_exec_ctx_flush(exec_ctx);
152
152
 
153
153
  gpr_free(grpc_polling_entity_pollset(&detector.pollent));
@@ -157,15 +157,15 @@ static int is_stack_running_on_compute_engine(grpc_exec_ctx *exec_ctx) {
157
157
  }
158
158
 
159
159
  /* Takes ownership of creds_path if not NULL. */
160
- static grpc_error *create_default_creds_from_path(
161
- grpc_exec_ctx *exec_ctx, char *creds_path, grpc_call_credentials **creds) {
162
- grpc_json *json = NULL;
160
+ static grpc_error* create_default_creds_from_path(
161
+ grpc_exec_ctx* exec_ctx, char* creds_path, grpc_call_credentials** creds) {
162
+ grpc_json* json = nullptr;
163
163
  grpc_auth_json_key key;
164
164
  grpc_auth_refresh_token token;
165
- grpc_call_credentials *result = NULL;
165
+ grpc_call_credentials* result = nullptr;
166
166
  grpc_slice creds_data = grpc_empty_slice();
167
- grpc_error *error = GRPC_ERROR_NONE;
168
- if (creds_path == NULL) {
167
+ grpc_error* error = GRPC_ERROR_NONE;
168
+ if (creds_path == nullptr) {
169
169
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("creds_path unset");
170
170
  goto end;
171
171
  }
@@ -174,8 +174,8 @@ static grpc_error *create_default_creds_from_path(
174
174
  goto end;
175
175
  }
176
176
  json = grpc_json_parse_string_with_len(
177
- (char *)GRPC_SLICE_START_PTR(creds_data), GRPC_SLICE_LENGTH(creds_data));
178
- if (json == NULL) {
177
+ (char*)GRPC_SLICE_START_PTR(creds_data), GRPC_SLICE_LENGTH(creds_data));
178
+ if (json == nullptr) {
179
179
  error = grpc_error_set_str(
180
180
  GRPC_ERROR_CREATE_FROM_STATIC_STRING("Failed to parse JSON"),
181
181
  GRPC_ERROR_STR_RAW_BYTES, grpc_slice_ref_internal(creds_data));
@@ -188,7 +188,7 @@ static grpc_error *create_default_creds_from_path(
188
188
  result =
189
189
  grpc_service_account_jwt_access_credentials_create_from_auth_json_key(
190
190
  exec_ctx, key, grpc_max_auth_token_lifetime());
191
- if (result == NULL) {
191
+ if (result == nullptr) {
192
192
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
193
193
  "grpc_service_account_jwt_access_credentials_create_from_auth_json_"
194
194
  "key failed");
@@ -201,7 +201,7 @@ static grpc_error *create_default_creds_from_path(
201
201
  if (grpc_auth_refresh_token_is_valid(&token)) {
202
202
  result =
203
203
  grpc_refresh_token_credentials_create_from_auth_refresh_token(token);
204
- if (result == NULL) {
204
+ if (result == nullptr) {
205
205
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
206
206
  "grpc_refresh_token_credentials_create_from_auth_refresh_token "
207
207
  "failed");
@@ -210,20 +210,20 @@ static grpc_error *create_default_creds_from_path(
210
210
  }
211
211
 
212
212
  end:
213
- GPR_ASSERT((result == NULL) + (error == GRPC_ERROR_NONE) == 1);
214
- if (creds_path != NULL) gpr_free(creds_path);
213
+ GPR_ASSERT((result == nullptr) + (error == GRPC_ERROR_NONE) == 1);
214
+ if (creds_path != nullptr) gpr_free(creds_path);
215
215
  grpc_slice_unref_internal(exec_ctx, creds_data);
216
- if (json != NULL) grpc_json_destroy(json);
216
+ if (json != nullptr) grpc_json_destroy(json);
217
217
  *creds = result;
218
218
  return error;
219
219
  }
220
220
 
221
- grpc_channel_credentials *grpc_google_default_credentials_create(void) {
222
- grpc_channel_credentials *result = NULL;
223
- grpc_call_credentials *call_creds = NULL;
224
- grpc_error *error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
221
+ grpc_channel_credentials* grpc_google_default_credentials_create(void) {
222
+ grpc_channel_credentials* result = nullptr;
223
+ grpc_call_credentials* call_creds = nullptr;
224
+ grpc_error* error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
225
225
  "Failed to create Google credentials");
226
- grpc_error *err;
226
+ grpc_error* err;
227
227
  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
228
228
 
229
229
  GRPC_API_TRACE("grpc_google_default_credentials_create(void)", 0, ());
@@ -232,7 +232,7 @@ grpc_channel_credentials *grpc_google_default_credentials_create(void) {
232
232
 
233
233
  gpr_mu_lock(&g_state_mu);
234
234
 
235
- if (default_credentials != NULL) {
235
+ if (default_credentials != nullptr) {
236
236
  result = grpc_channel_credentials_ref(default_credentials);
237
237
  goto end;
238
238
  }
@@ -257,8 +257,8 @@ grpc_channel_credentials *grpc_google_default_credentials_create(void) {
257
257
  is_stack_running_on_compute_engine(&exec_ctx);
258
258
  compute_engine_detection_done = 1;
259
259
  if (need_compute_engine_creds) {
260
- call_creds = grpc_google_compute_engine_credentials_create(NULL);
261
- if (call_creds == NULL) {
260
+ call_creds = grpc_google_compute_engine_credentials_create(nullptr);
261
+ if (call_creds == nullptr) {
262
262
  error = grpc_error_add_child(
263
263
  error, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
264
264
  "Failed to get credentials from network"));
@@ -267,17 +267,17 @@ grpc_channel_credentials *grpc_google_default_credentials_create(void) {
267
267
  }
268
268
 
269
269
  end:
270
- if (result == NULL) {
271
- if (call_creds != NULL) {
270
+ if (result == nullptr) {
271
+ if (call_creds != nullptr) {
272
272
  /* Blend with default ssl credentials and add a global reference so that
273
273
  it
274
274
  can be cached and re-served. */
275
- grpc_channel_credentials *ssl_creds =
276
- grpc_ssl_credentials_create(NULL, NULL, NULL);
275
+ grpc_channel_credentials* ssl_creds =
276
+ grpc_ssl_credentials_create(nullptr, nullptr, nullptr);
277
277
  default_credentials = grpc_channel_credentials_ref(
278
278
  grpc_composite_channel_credentials_create(ssl_creds, call_creds,
279
- NULL));
280
- GPR_ASSERT(default_credentials != NULL);
279
+ nullptr));
280
+ GPR_ASSERT(default_credentials != nullptr);
281
281
  grpc_channel_credentials_unref(&exec_ctx, ssl_creds);
282
282
  grpc_call_credentials_unref(&exec_ctx, call_creds);
283
283
  result = default_credentials;
@@ -286,7 +286,7 @@ end:
286
286
  }
287
287
  }
288
288
  gpr_mu_unlock(&g_state_mu);
289
- if (result == NULL) {
289
+ if (result == nullptr) {
290
290
  GRPC_LOG_IF_ERROR("grpc_google_default_credentials_create", error);
291
291
  } else {
292
292
  GRPC_ERROR_UNREF(error);
@@ -299,9 +299,9 @@ void grpc_flush_cached_google_default_credentials(void) {
299
299
  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
300
300
  gpr_once_init(&g_once, init_default_credentials);
301
301
  gpr_mu_lock(&g_state_mu);
302
- if (default_credentials != NULL) {
302
+ if (default_credentials != nullptr) {
303
303
  grpc_channel_credentials_unref(&exec_ctx, default_credentials);
304
- default_credentials = NULL;
304
+ default_credentials = nullptr;
305
305
  }
306
306
  compute_engine_detection_done = 0;
307
307
  gpr_mu_unlock(&g_state_mu);
@@ -310,10 +310,10 @@ void grpc_flush_cached_google_default_credentials(void) {
310
310
 
311
311
  /* -- Well known credentials path. -- */
312
312
 
313
- static grpc_well_known_credentials_path_getter creds_path_getter = NULL;
313
+ static grpc_well_known_credentials_path_getter creds_path_getter = nullptr;
314
314
 
315
- char *grpc_get_well_known_google_credentials_file_path(void) {
316
- if (creds_path_getter != NULL) return creds_path_getter();
315
+ char* grpc_get_well_known_google_credentials_file_path(void) {
316
+ if (creds_path_getter != nullptr) return creds_path_getter();
317
317
  return grpc_get_well_known_google_credentials_file_path_impl();
318
318
  }
319
319
 
@@ -23,6 +23,10 @@
23
23
 
24
24
  #include "src/core/lib/security/credentials/credentials.h"
25
25
 
26
+ #ifdef __cplusplus
27
+ extern "C" {
28
+ #endif
29
+
26
30
  #define GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY "gcloud"
27
31
  #define GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE \
28
32
  "application_default_credentials.json"
@@ -41,5 +45,9 @@
41
45
 
42
46
  void grpc_flush_cached_google_default_credentials(void);
43
47
 
48
+ #ifdef __cplusplus
49
+ }
50
+ #endif
51
+
44
52
  #endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_GOOGLE_DEFAULT_GOOGLE_DEFAULT_CREDENTIALS_H \
45
- */
53
+ */
@@ -27,44 +27,45 @@
27
27
  #include <grpc/support/string_util.h>
28
28
  #include <grpc/support/sync.h>
29
29
 
30
- static void iam_destruct(grpc_exec_ctx *exec_ctx,
31
- grpc_call_credentials *creds) {
32
- grpc_google_iam_credentials *c = (grpc_google_iam_credentials *)creds;
30
+ static void iam_destruct(grpc_exec_ctx* exec_ctx,
31
+ grpc_call_credentials* creds) {
32
+ grpc_google_iam_credentials* c = (grpc_google_iam_credentials*)creds;
33
33
  grpc_credentials_mdelem_array_destroy(exec_ctx, &c->md_array);
34
34
  }
35
35
 
36
- static bool iam_get_request_metadata(grpc_exec_ctx *exec_ctx,
37
- grpc_call_credentials *creds,
38
- grpc_polling_entity *pollent,
36
+ static bool iam_get_request_metadata(grpc_exec_ctx* exec_ctx,
37
+ grpc_call_credentials* creds,
38
+ grpc_polling_entity* pollent,
39
39
  grpc_auth_metadata_context context,
40
- grpc_credentials_mdelem_array *md_array,
41
- grpc_closure *on_request_metadata,
42
- grpc_error **error) {
43
- grpc_google_iam_credentials *c = (grpc_google_iam_credentials *)creds;
40
+ grpc_credentials_mdelem_array* md_array,
41
+ grpc_closure* on_request_metadata,
42
+ grpc_error** error) {
43
+ grpc_google_iam_credentials* c = (grpc_google_iam_credentials*)creds;
44
44
  grpc_credentials_mdelem_array_append(md_array, &c->md_array);
45
45
  return true;
46
46
  }
47
47
 
48
48
  static void iam_cancel_get_request_metadata(
49
- grpc_exec_ctx *exec_ctx, grpc_call_credentials *c,
50
- grpc_credentials_mdelem_array *md_array, grpc_error *error) {
49
+ grpc_exec_ctx* exec_ctx, grpc_call_credentials* c,
50
+ grpc_credentials_mdelem_array* md_array, grpc_error* error) {
51
51
  GRPC_ERROR_UNREF(error);
52
52
  }
53
53
 
54
54
  static grpc_call_credentials_vtable iam_vtable = {
55
55
  iam_destruct, iam_get_request_metadata, iam_cancel_get_request_metadata};
56
56
 
57
- grpc_call_credentials *grpc_google_iam_credentials_create(
58
- const char *token, const char *authority_selector, void *reserved) {
57
+ grpc_call_credentials* grpc_google_iam_credentials_create(
58
+ const char* token, const char* authority_selector, void* reserved) {
59
59
  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
60
60
  GRPC_API_TRACE(
61
61
  "grpc_iam_credentials_create(token=%s, authority_selector=%s, "
62
62
  "reserved=%p)",
63
63
  3, (token, authority_selector, reserved));
64
- GPR_ASSERT(reserved == NULL);
65
- GPR_ASSERT(token != NULL);
66
- GPR_ASSERT(authority_selector != NULL);
67
- grpc_google_iam_credentials *c = gpr_zalloc(sizeof(*c));
64
+ GPR_ASSERT(reserved == nullptr);
65
+ GPR_ASSERT(token != nullptr);
66
+ GPR_ASSERT(authority_selector != nullptr);
67
+ grpc_google_iam_credentials* c =
68
+ (grpc_google_iam_credentials*)gpr_zalloc(sizeof(*c));
68
69
  c->base.type = GRPC_CALL_CREDENTIALS_TYPE_IAM;
69
70
  c->base.vtable = &iam_vtable;
70
71
  gpr_ref_init(&c->base.refcount, 1);
@@ -20,6 +20,7 @@
20
20
 
21
21
  #include <string.h>
22
22
 
23
+ #include <grpc/grpc_security.h>
23
24
  #include <grpc/support/alloc.h>
24
25
  #include <grpc/support/log.h>
25
26
  #include <grpc/support/string_util.h>
@@ -29,9 +30,11 @@
29
30
  #include "src/core/lib/slice/b64.h"
30
31
  #include "src/core/lib/support/string.h"
31
32
 
33
+ extern "C" {
32
34
  #include <openssl/bio.h>
33
35
  #include <openssl/evp.h>
34
36
  #include <openssl/pem.h>
37
+ }
35
38
 
36
39
  /* --- Constants. --- */
37
40
 
@@ -49,30 +52,31 @@ gpr_timespec grpc_max_auth_token_lifetime() {
49
52
 
50
53
  /* --- Override for testing. --- */
51
54
 
52
- static grpc_jwt_encode_and_sign_override g_jwt_encode_and_sign_override = NULL;
55
+ static grpc_jwt_encode_and_sign_override g_jwt_encode_and_sign_override =
56
+ nullptr;
53
57
 
54
58
  /* --- grpc_auth_json_key. --- */
55
59
 
56
- int grpc_auth_json_key_is_valid(const grpc_auth_json_key *json_key) {
57
- return (json_key != NULL) &&
60
+ int grpc_auth_json_key_is_valid(const grpc_auth_json_key* json_key) {
61
+ return (json_key != nullptr) &&
58
62
  strcmp(json_key->type, GRPC_AUTH_JSON_TYPE_INVALID);
59
63
  }
60
64
 
61
- grpc_auth_json_key grpc_auth_json_key_create_from_json(const grpc_json *json) {
65
+ grpc_auth_json_key grpc_auth_json_key_create_from_json(const grpc_json* json) {
62
66
  grpc_auth_json_key result;
63
- BIO *bio = NULL;
64
- const char *prop_value;
67
+ BIO* bio = nullptr;
68
+ const char* prop_value;
65
69
  int success = 0;
66
70
 
67
71
  memset(&result, 0, sizeof(grpc_auth_json_key));
68
72
  result.type = GRPC_AUTH_JSON_TYPE_INVALID;
69
- if (json == NULL) {
73
+ if (json == nullptr) {
70
74
  gpr_log(GPR_ERROR, "Invalid json.");
71
75
  goto end;
72
76
  }
73
77
 
74
78
  prop_value = grpc_json_get_string_property(json, "type");
75
- if (prop_value == NULL ||
79
+ if (prop_value == nullptr ||
76
80
  strcmp(prop_value, GRPC_AUTH_JSON_TYPE_SERVICE_ACCOUNT)) {
77
81
  goto end;
78
82
  }
@@ -87,7 +91,7 @@ grpc_auth_json_key grpc_auth_json_key_create_from_json(const grpc_json *json) {
87
91
  }
88
92
 
89
93
  prop_value = grpc_json_get_string_property(json, "private_key");
90
- if (prop_value == NULL) {
94
+ if (prop_value == nullptr) {
91
95
  goto end;
92
96
  }
93
97
  bio = BIO_new(BIO_s_mem());
@@ -96,56 +100,57 @@ grpc_auth_json_key grpc_auth_json_key_create_from_json(const grpc_json *json) {
96
100
  gpr_log(GPR_ERROR, "Could not write into openssl BIO.");
97
101
  goto end;
98
102
  }
99
- result.private_key = PEM_read_bio_RSAPrivateKey(bio, NULL, NULL, "");
100
- if (result.private_key == NULL) {
103
+ result.private_key =
104
+ PEM_read_bio_RSAPrivateKey(bio, nullptr, nullptr, (void*)"");
105
+ if (result.private_key == nullptr) {
101
106
  gpr_log(GPR_ERROR, "Could not deserialize private key.");
102
107
  goto end;
103
108
  }
104
109
  success = 1;
105
110
 
106
111
  end:
107
- if (bio != NULL) BIO_free(bio);
112
+ if (bio != nullptr) BIO_free(bio);
108
113
  if (!success) grpc_auth_json_key_destruct(&result);
109
114
  return result;
110
115
  }
111
116
 
112
117
  grpc_auth_json_key grpc_auth_json_key_create_from_string(
113
- const char *json_string) {
114
- char *scratchpad = gpr_strdup(json_string);
115
- grpc_json *json = grpc_json_parse_string(scratchpad);
118
+ const char* json_string) {
119
+ char* scratchpad = gpr_strdup(json_string);
120
+ grpc_json* json = grpc_json_parse_string(scratchpad);
116
121
  grpc_auth_json_key result = grpc_auth_json_key_create_from_json(json);
117
- if (json != NULL) grpc_json_destroy(json);
122
+ if (json != nullptr) grpc_json_destroy(json);
118
123
  gpr_free(scratchpad);
119
124
  return result;
120
125
  }
121
126
 
122
- void grpc_auth_json_key_destruct(grpc_auth_json_key *json_key) {
123
- if (json_key == NULL) return;
127
+ void grpc_auth_json_key_destruct(grpc_auth_json_key* json_key) {
128
+ if (json_key == nullptr) return;
124
129
  json_key->type = GRPC_AUTH_JSON_TYPE_INVALID;
125
- if (json_key->client_id != NULL) {
130
+ if (json_key->client_id != nullptr) {
126
131
  gpr_free(json_key->client_id);
127
- json_key->client_id = NULL;
132
+ json_key->client_id = nullptr;
128
133
  }
129
- if (json_key->private_key_id != NULL) {
134
+ if (json_key->private_key_id != nullptr) {
130
135
  gpr_free(json_key->private_key_id);
131
- json_key->private_key_id = NULL;
136
+ json_key->private_key_id = nullptr;
132
137
  }
133
- if (json_key->client_email != NULL) {
138
+ if (json_key->client_email != nullptr) {
134
139
  gpr_free(json_key->client_email);
135
- json_key->client_email = NULL;
140
+ json_key->client_email = nullptr;
136
141
  }
137
- if (json_key->private_key != NULL) {
142
+ if (json_key->private_key != nullptr) {
138
143
  RSA_free(json_key->private_key);
139
- json_key->private_key = NULL;
144
+ json_key->private_key = nullptr;
140
145
  }
141
146
  }
142
147
 
143
148
  /* --- jwt encoding and signature. --- */
144
149
 
145
- static grpc_json *create_child(grpc_json *brother, grpc_json *parent,
146
- const char *key, const char *value,
150
+ static grpc_json* create_child(grpc_json* brother, grpc_json* parent,
151
+ const char* key, const char* value,
147
152
  grpc_json_type type) {
148
- grpc_json *child = grpc_json_create(type);
153
+ grpc_json* child = grpc_json_create(type);
149
154
  if (brother) brother->next = child;
150
155
  if (!parent->child) parent->child = child;
151
156
  child->parent = parent;
@@ -154,13 +159,13 @@ static grpc_json *create_child(grpc_json *brother, grpc_json *parent,
154
159
  return child;
155
160
  }
156
161
 
157
- static char *encoded_jwt_header(const char *key_id, const char *algorithm) {
158
- grpc_json *json = grpc_json_create(GRPC_JSON_OBJECT);
159
- grpc_json *child = NULL;
160
- char *json_str = NULL;
161
- char *result = NULL;
162
+ static char* encoded_jwt_header(const char* key_id, const char* algorithm) {
163
+ grpc_json* json = grpc_json_create(GRPC_JSON_OBJECT);
164
+ grpc_json* child = nullptr;
165
+ char* json_str = nullptr;
166
+ char* result = nullptr;
162
167
 
163
- child = create_child(NULL, json, "alg", algorithm, GRPC_JSON_STRING);
168
+ child = create_child(nullptr, json, "alg", algorithm, GRPC_JSON_STRING);
164
169
  child = create_child(child, json, "typ", GRPC_JWT_TYPE, GRPC_JSON_STRING);
165
170
  create_child(child, json, "kid", key_id, GRPC_JSON_STRING);
166
171
 
@@ -171,13 +176,13 @@ static char *encoded_jwt_header(const char *key_id, const char *algorithm) {
171
176
  return result;
172
177
  }
173
178
 
174
- static char *encoded_jwt_claim(const grpc_auth_json_key *json_key,
175
- const char *audience,
176
- gpr_timespec token_lifetime, const char *scope) {
177
- grpc_json *json = grpc_json_create(GRPC_JSON_OBJECT);
178
- grpc_json *child = NULL;
179
- char *json_str = NULL;
180
- char *result = NULL;
179
+ static char* encoded_jwt_claim(const grpc_auth_json_key* json_key,
180
+ const char* audience,
181
+ gpr_timespec token_lifetime, const char* scope) {
182
+ grpc_json* json = grpc_json_create(GRPC_JSON_OBJECT);
183
+ grpc_json* child = nullptr;
184
+ char* json_str = nullptr;
185
+ char* result = nullptr;
181
186
  gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
182
187
  gpr_timespec expiration = gpr_time_add(now, token_lifetime);
183
188
  char now_str[GPR_LTOA_MIN_BUFSIZE];
@@ -189,9 +194,9 @@ static char *encoded_jwt_claim(const grpc_auth_json_key *json_key,
189
194
  int64_ttoa(now.tv_sec, now_str);
190
195
  int64_ttoa(expiration.tv_sec, expiration_str);
191
196
 
192
- child =
193
- create_child(NULL, json, "iss", json_key->client_email, GRPC_JSON_STRING);
194
- if (scope != NULL) {
197
+ child = create_child(nullptr, json, "iss", json_key->client_email,
198
+ GRPC_JSON_STRING);
199
+ if (scope != nullptr) {
195
200
  child = create_child(child, json, "scope", scope, GRPC_JSON_STRING);
196
201
  } else {
197
202
  /* Unscoped JWTs need a sub field. */
@@ -210,12 +215,12 @@ static char *encoded_jwt_claim(const grpc_auth_json_key *json_key,
210
215
  return result;
211
216
  }
212
217
 
213
- static char *dot_concat_and_free_strings(char *str1, char *str2) {
218
+ static char* dot_concat_and_free_strings(char* str1, char* str2) {
214
219
  size_t str1_len = strlen(str1);
215
220
  size_t str2_len = strlen(str2);
216
221
  size_t result_len = str1_len + 1 /* dot */ + str2_len;
217
- char *result = gpr_malloc(result_len + 1 /* NULL terminated */);
218
- char *current = result;
222
+ char* result = (char*)gpr_malloc(result_len + 1 /* NULL terminated */);
223
+ char* current = result;
219
224
  memcpy(current, str1, str1_len);
220
225
  current += str1_len;
221
226
  *(current++) = '.';
@@ -229,32 +234,32 @@ static char *dot_concat_and_free_strings(char *str1, char *str2) {
229
234
  return result;
230
235
  }
231
236
 
232
- const EVP_MD *openssl_digest_from_algorithm(const char *algorithm) {
237
+ const EVP_MD* openssl_digest_from_algorithm(const char* algorithm) {
233
238
  if (strcmp(algorithm, GRPC_JWT_RSA_SHA256_ALGORITHM) == 0) {
234
239
  return EVP_sha256();
235
240
  } else {
236
241
  gpr_log(GPR_ERROR, "Unknown algorithm %s.", algorithm);
237
- return NULL;
242
+ return nullptr;
238
243
  }
239
244
  }
240
245
 
241
- char *compute_and_encode_signature(const grpc_auth_json_key *json_key,
242
- const char *signature_algorithm,
243
- const char *to_sign) {
244
- const EVP_MD *md = openssl_digest_from_algorithm(signature_algorithm);
245
- EVP_MD_CTX *md_ctx = NULL;
246
- EVP_PKEY *key = EVP_PKEY_new();
246
+ char* compute_and_encode_signature(const grpc_auth_json_key* json_key,
247
+ const char* signature_algorithm,
248
+ const char* to_sign) {
249
+ const EVP_MD* md = openssl_digest_from_algorithm(signature_algorithm);
250
+ EVP_MD_CTX* md_ctx = nullptr;
251
+ EVP_PKEY* key = EVP_PKEY_new();
247
252
  size_t sig_len = 0;
248
- unsigned char *sig = NULL;
249
- char *result = NULL;
250
- if (md == NULL) return NULL;
253
+ unsigned char* sig = nullptr;
254
+ char* result = nullptr;
255
+ if (md == nullptr) return nullptr;
251
256
  md_ctx = EVP_MD_CTX_create();
252
- if (md_ctx == NULL) {
257
+ if (md_ctx == nullptr) {
253
258
  gpr_log(GPR_ERROR, "Could not create MD_CTX");
254
259
  goto end;
255
260
  }
256
261
  EVP_PKEY_set1_RSA(key, json_key->private_key);
257
- if (EVP_DigestSignInit(md_ctx, NULL, md, NULL, key) != 1) {
262
+ if (EVP_DigestSignInit(md_ctx, nullptr, md, nullptr, key) != 1) {
258
263
  gpr_log(GPR_ERROR, "DigestInit failed.");
259
264
  goto end;
260
265
  }
@@ -262,11 +267,11 @@ char *compute_and_encode_signature(const grpc_auth_json_key *json_key,
262
267
  gpr_log(GPR_ERROR, "DigestUpdate failed.");
263
268
  goto end;
264
269
  }
265
- if (EVP_DigestSignFinal(md_ctx, NULL, &sig_len) != 1) {
270
+ if (EVP_DigestSignFinal(md_ctx, nullptr, &sig_len) != 1) {
266
271
  gpr_log(GPR_ERROR, "DigestFinal (get signature length) failed.");
267
272
  goto end;
268
273
  }
269
- sig = gpr_malloc(sig_len);
274
+ sig = (unsigned char*)gpr_malloc(sig_len);
270
275
  if (EVP_DigestSignFinal(md_ctx, sig, &sig_len) != 1) {
271
276
  gpr_log(GPR_ERROR, "DigestFinal (signature compute) failed.");
272
277
  goto end;
@@ -274,27 +279,27 @@ char *compute_and_encode_signature(const grpc_auth_json_key *json_key,
274
279
  result = grpc_base64_encode(sig, sig_len, 1, 0);
275
280
 
276
281
  end:
277
- if (key != NULL) EVP_PKEY_free(key);
278
- if (md_ctx != NULL) EVP_MD_CTX_destroy(md_ctx);
279
- if (sig != NULL) gpr_free(sig);
282
+ if (key != nullptr) EVP_PKEY_free(key);
283
+ if (md_ctx != nullptr) EVP_MD_CTX_destroy(md_ctx);
284
+ if (sig != nullptr) gpr_free(sig);
280
285
  return result;
281
286
  }
282
287
 
283
- char *grpc_jwt_encode_and_sign(const grpc_auth_json_key *json_key,
284
- const char *audience,
285
- gpr_timespec token_lifetime, const char *scope) {
286
- if (g_jwt_encode_and_sign_override != NULL) {
288
+ char* grpc_jwt_encode_and_sign(const grpc_auth_json_key* json_key,
289
+ const char* audience,
290
+ gpr_timespec token_lifetime, const char* scope) {
291
+ if (g_jwt_encode_and_sign_override != nullptr) {
287
292
  return g_jwt_encode_and_sign_override(json_key, audience, token_lifetime,
288
293
  scope);
289
294
  } else {
290
- const char *sig_algo = GRPC_JWT_RSA_SHA256_ALGORITHM;
291
- char *to_sign = dot_concat_and_free_strings(
295
+ const char* sig_algo = GRPC_JWT_RSA_SHA256_ALGORITHM;
296
+ char* to_sign = dot_concat_and_free_strings(
292
297
  encoded_jwt_header(json_key->private_key_id, sig_algo),
293
298
  encoded_jwt_claim(json_key, audience, token_lifetime, scope));
294
- char *sig = compute_and_encode_signature(json_key, sig_algo, to_sign);
295
- if (sig == NULL) {
299
+ char* sig = compute_and_encode_signature(json_key, sig_algo, to_sign);
300
+ if (sig == nullptr) {
296
301
  gpr_free(to_sign);
297
- return NULL;
302
+ return nullptr;
298
303
  }
299
304
  return dot_concat_and_free_strings(to_sign, sig);
300
305
  }