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
@@ -31,38 +31,38 @@
31
31
  #include "src/core/lib/transport/status_conversion.h"
32
32
  #include "src/core/lib/transport/timeout_encoding.h"
33
33
 
34
- static grpc_error *init_frame_parser(grpc_exec_ctx *exec_ctx,
35
- grpc_chttp2_transport *t);
36
- static grpc_error *init_header_frame_parser(grpc_exec_ctx *exec_ctx,
37
- grpc_chttp2_transport *t,
34
+ static grpc_error* init_frame_parser(grpc_exec_ctx* exec_ctx,
35
+ grpc_chttp2_transport* t);
36
+ static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
37
+ grpc_chttp2_transport* t,
38
38
  int is_continuation);
39
- static grpc_error *init_data_frame_parser(grpc_exec_ctx *exec_ctx,
40
- grpc_chttp2_transport *t);
41
- static grpc_error *init_rst_stream_parser(grpc_exec_ctx *exec_ctx,
42
- grpc_chttp2_transport *t);
43
- static grpc_error *init_settings_frame_parser(grpc_exec_ctx *exec_ctx,
44
- grpc_chttp2_transport *t);
45
- static grpc_error *init_window_update_frame_parser(grpc_exec_ctx *exec_ctx,
46
- grpc_chttp2_transport *t);
47
- static grpc_error *init_ping_parser(grpc_exec_ctx *exec_ctx,
48
- grpc_chttp2_transport *t);
49
- static grpc_error *init_goaway_parser(grpc_exec_ctx *exec_ctx,
50
- grpc_chttp2_transport *t);
51
- static grpc_error *init_skip_frame_parser(grpc_exec_ctx *exec_ctx,
52
- grpc_chttp2_transport *t,
39
+ static grpc_error* init_data_frame_parser(grpc_exec_ctx* exec_ctx,
40
+ grpc_chttp2_transport* t);
41
+ static grpc_error* init_rst_stream_parser(grpc_exec_ctx* exec_ctx,
42
+ grpc_chttp2_transport* t);
43
+ static grpc_error* init_settings_frame_parser(grpc_exec_ctx* exec_ctx,
44
+ grpc_chttp2_transport* t);
45
+ static grpc_error* init_window_update_frame_parser(grpc_exec_ctx* exec_ctx,
46
+ grpc_chttp2_transport* t);
47
+ static grpc_error* init_ping_parser(grpc_exec_ctx* exec_ctx,
48
+ grpc_chttp2_transport* t);
49
+ static grpc_error* init_goaway_parser(grpc_exec_ctx* exec_ctx,
50
+ grpc_chttp2_transport* t);
51
+ static grpc_error* init_skip_frame_parser(grpc_exec_ctx* exec_ctx,
52
+ grpc_chttp2_transport* t,
53
53
  int is_header);
54
54
 
55
- static grpc_error *parse_frame_slice(grpc_exec_ctx *exec_ctx,
56
- grpc_chttp2_transport *t, grpc_slice slice,
55
+ static grpc_error* parse_frame_slice(grpc_exec_ctx* exec_ctx,
56
+ grpc_chttp2_transport* t, grpc_slice slice,
57
57
  int is_last);
58
58
 
59
- grpc_error *grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
60
- grpc_chttp2_transport *t,
59
+ grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
60
+ grpc_chttp2_transport* t,
61
61
  grpc_slice slice) {
62
- uint8_t *beg = GRPC_SLICE_START_PTR(slice);
63
- uint8_t *end = GRPC_SLICE_END_PTR(slice);
64
- uint8_t *cur = beg;
65
- grpc_error *err;
62
+ uint8_t* beg = GRPC_SLICE_START_PTR(slice);
63
+ uint8_t* end = GRPC_SLICE_END_PTR(slice);
64
+ uint8_t* cur = beg;
65
+ grpc_error* err;
66
66
 
67
67
  if (cur == end) return GRPC_ERROR_NONE;
68
68
 
@@ -93,7 +93,7 @@ grpc_error *grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
93
93
  case GRPC_DTS_CLIENT_PREFIX_23:
94
94
  while (cur != end && t->deframe_state != GRPC_DTS_FH_0) {
95
95
  if (*cur != GRPC_CHTTP2_CLIENT_CONNECT_STRING[t->deframe_state]) {
96
- char *msg;
96
+ char* msg;
97
97
  gpr_asprintf(
98
98
  &msg,
99
99
  "Connect string mismatch: expected '%c' (%d) got '%c' (%d) "
@@ -191,7 +191,7 @@ grpc_error *grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
191
191
  if (err != GRPC_ERROR_NONE) {
192
192
  return err;
193
193
  }
194
- t->incoming_stream = NULL;
194
+ t->incoming_stream = nullptr;
195
195
  if (++cur == end) {
196
196
  t->deframe_state = GRPC_DTS_FH_0;
197
197
  return GRPC_ERROR_NONE;
@@ -200,7 +200,7 @@ grpc_error *grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
200
200
  } else if (t->incoming_frame_size >
201
201
  t->settings[GRPC_ACKED_SETTINGS]
202
202
  [GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE]) {
203
- char *msg;
203
+ char* msg;
204
204
  gpr_asprintf(&msg, "Frame size %d is larger than max frame size %d",
205
205
  t->incoming_frame_size,
206
206
  t->settings[GRPC_ACKED_SETTINGS]
@@ -216,15 +216,16 @@ grpc_error *grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
216
216
  case GRPC_DTS_FRAME:
217
217
  GPR_ASSERT(cur < end);
218
218
  if ((uint32_t)(end - cur) == t->incoming_frame_size) {
219
- err = parse_frame_slice(
220
- exec_ctx, t, grpc_slice_sub_no_ref(slice, (size_t)(cur - beg),
221
- (size_t)(end - beg)),
222
- 1);
219
+ err =
220
+ parse_frame_slice(exec_ctx, t,
221
+ grpc_slice_sub_no_ref(slice, (size_t)(cur - beg),
222
+ (size_t)(end - beg)),
223
+ 1);
223
224
  if (err != GRPC_ERROR_NONE) {
224
225
  return err;
225
226
  }
226
227
  t->deframe_state = GRPC_DTS_FH_0;
227
- t->incoming_stream = NULL;
228
+ t->incoming_stream = nullptr;
228
229
  return GRPC_ERROR_NONE;
229
230
  } else if ((uint32_t)(end - cur) > t->incoming_frame_size) {
230
231
  size_t cur_offset = (size_t)(cur - beg);
@@ -237,55 +238,56 @@ grpc_error *grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
237
238
  return err;
238
239
  }
239
240
  cur += t->incoming_frame_size;
240
- t->incoming_stream = NULL;
241
+ t->incoming_stream = nullptr;
241
242
  goto dts_fh_0; /* loop */
242
243
  } else {
243
- err = parse_frame_slice(
244
- exec_ctx, t, grpc_slice_sub_no_ref(slice, (size_t)(cur - beg),
245
- (size_t)(end - beg)),
246
- 0);
244
+ err =
245
+ parse_frame_slice(exec_ctx, t,
246
+ grpc_slice_sub_no_ref(slice, (size_t)(cur - beg),
247
+ (size_t)(end - beg)),
248
+ 0);
247
249
  if (err != GRPC_ERROR_NONE) {
248
250
  return err;
249
251
  }
250
252
  t->incoming_frame_size -= (uint32_t)(end - cur);
251
253
  return GRPC_ERROR_NONE;
252
254
  }
253
- GPR_UNREACHABLE_CODE(return 0);
255
+ GPR_UNREACHABLE_CODE(return nullptr);
254
256
  }
255
257
 
256
- GPR_UNREACHABLE_CODE(return 0);
258
+ GPR_UNREACHABLE_CODE(return nullptr);
257
259
  }
258
260
 
259
- static grpc_error *init_frame_parser(grpc_exec_ctx *exec_ctx,
260
- grpc_chttp2_transport *t) {
261
+ static grpc_error* init_frame_parser(grpc_exec_ctx* exec_ctx,
262
+ grpc_chttp2_transport* t) {
261
263
  if (t->is_first_frame &&
262
264
  t->incoming_frame_type != GRPC_CHTTP2_FRAME_SETTINGS) {
263
- char *msg;
265
+ char* msg;
264
266
  gpr_asprintf(
265
267
  &msg, "Expected SETTINGS frame as the first frame, got frame type %d",
266
268
  t->incoming_frame_type);
267
- grpc_error *err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
269
+ grpc_error* err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
268
270
  gpr_free(msg);
269
271
  return err;
270
272
  }
271
273
  t->is_first_frame = false;
272
274
  if (t->expect_continuation_stream_id != 0) {
273
275
  if (t->incoming_frame_type != GRPC_CHTTP2_FRAME_CONTINUATION) {
274
- char *msg;
276
+ char* msg;
275
277
  gpr_asprintf(&msg, "Expected CONTINUATION frame, got frame type %02x",
276
278
  t->incoming_frame_type);
277
- grpc_error *err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
279
+ grpc_error* err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
278
280
  gpr_free(msg);
279
281
  return err;
280
282
  }
281
283
  if (t->expect_continuation_stream_id != t->incoming_stream_id) {
282
- char *msg;
284
+ char* msg;
283
285
  gpr_asprintf(
284
286
  &msg,
285
287
  "Expected CONTINUATION frame for grpc_chttp2_stream %08x, got "
286
288
  "grpc_chttp2_stream %08x",
287
289
  t->expect_continuation_stream_id, t->incoming_stream_id);
288
- grpc_error *err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
290
+ grpc_error* err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
289
291
  gpr_free(msg);
290
292
  return err;
291
293
  }
@@ -310,32 +312,32 @@ static grpc_error *init_frame_parser(grpc_exec_ctx *exec_ctx,
310
312
  case GRPC_CHTTP2_FRAME_GOAWAY:
311
313
  return init_goaway_parser(exec_ctx, t);
312
314
  default:
313
- if (GRPC_TRACER_ON(grpc_http_trace)) {
315
+ if (grpc_http_trace.enabled()) {
314
316
  gpr_log(GPR_ERROR, "Unknown frame type %02x", t->incoming_frame_type);
315
317
  }
316
318
  return init_skip_frame_parser(exec_ctx, t, 0);
317
319
  }
318
320
  }
319
321
 
320
- static grpc_error *skip_parser(grpc_exec_ctx *exec_ctx, void *parser,
321
- grpc_chttp2_transport *t, grpc_chttp2_stream *s,
322
+ static grpc_error* skip_parser(grpc_exec_ctx* exec_ctx, void* parser,
323
+ grpc_chttp2_transport* t, grpc_chttp2_stream* s,
322
324
  grpc_slice slice, int is_last) {
323
325
  return GRPC_ERROR_NONE;
324
326
  }
325
327
 
326
- static void skip_header(grpc_exec_ctx *exec_ctx, void *tp, grpc_mdelem md) {
328
+ static void skip_header(grpc_exec_ctx* exec_ctx, void* tp, grpc_mdelem md) {
327
329
  GRPC_MDELEM_UNREF(exec_ctx, md);
328
330
  }
329
331
 
330
- static grpc_error *init_skip_frame_parser(grpc_exec_ctx *exec_ctx,
331
- grpc_chttp2_transport *t,
332
+ static grpc_error* init_skip_frame_parser(grpc_exec_ctx* exec_ctx,
333
+ grpc_chttp2_transport* t,
332
334
  int is_header) {
333
335
  if (is_header) {
334
336
  uint8_t is_eoh = t->expect_continuation_stream_id != 0;
335
337
  t->parser = grpc_chttp2_header_parser_parse;
336
338
  t->parser_data = &t->hpack_parser;
337
339
  t->hpack_parser.on_header = skip_header;
338
- t->hpack_parser.on_header_user_data = NULL;
340
+ t->hpack_parser.on_header_user_data = nullptr;
339
341
  t->hpack_parser.is_boundary = is_eoh;
340
342
  t->hpack_parser.is_eof = (uint8_t)(is_eoh ? t->header_eof : 0);
341
343
  } else {
@@ -344,28 +346,30 @@ static grpc_error *init_skip_frame_parser(grpc_exec_ctx *exec_ctx,
344
346
  return GRPC_ERROR_NONE;
345
347
  }
346
348
 
347
- void grpc_chttp2_parsing_become_skip_parser(grpc_exec_ctx *exec_ctx,
348
- grpc_chttp2_transport *t) {
349
+ void grpc_chttp2_parsing_become_skip_parser(grpc_exec_ctx* exec_ctx,
350
+ grpc_chttp2_transport* t) {
349
351
  init_skip_frame_parser(exec_ctx, t,
350
352
  t->parser == grpc_chttp2_header_parser_parse);
351
353
  }
352
354
 
353
- static grpc_error *init_data_frame_parser(grpc_exec_ctx *exec_ctx,
354
- grpc_chttp2_transport *t) {
355
- grpc_chttp2_stream *s =
355
+ static grpc_error* init_data_frame_parser(grpc_exec_ctx* exec_ctx,
356
+ grpc_chttp2_transport* t) {
357
+ grpc_chttp2_stream* s =
356
358
  grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
357
- grpc_error *err = GRPC_ERROR_NONE;
358
- err = grpc_chttp2_flowctl_recv_data(&t->flow_control,
359
- s == NULL ? NULL : &s->flow_control,
360
- t->incoming_frame_size);
361
- grpc_chttp2_act_on_flowctl_action(
362
- exec_ctx, grpc_chttp2_flowctl_get_action(
363
- &t->flow_control, s == NULL ? NULL : &s->flow_control),
364
- t, s);
359
+ grpc_error* err = GRPC_ERROR_NONE;
360
+ grpc_core::chttp2::FlowControlAction action;
361
+ if (s == nullptr) {
362
+ err = t->flow_control->RecvData(t->incoming_frame_size);
363
+ action = t->flow_control->MakeAction();
364
+ } else {
365
+ err = s->flow_control->RecvData(t->incoming_frame_size);
366
+ action = s->flow_control->MakeAction();
367
+ }
368
+ grpc_chttp2_act_on_flowctl_action(exec_ctx, action, t, s);
365
369
  if (err != GRPC_ERROR_NONE) {
366
370
  goto error_handler;
367
371
  }
368
- if (s == NULL) {
372
+ if (s == nullptr) {
369
373
  return init_skip_frame_parser(exec_ctx, t, 0);
370
374
  }
371
375
  s->received_bytes += t->incoming_frame_size;
@@ -385,11 +389,11 @@ error_handler:
385
389
  t->parser_data = &s->data_parser;
386
390
  t->ping_state.pings_before_data_required =
387
391
  t->ping_policy.max_pings_without_data;
388
- t->ping_state.last_ping_sent_time = gpr_inf_past(GPR_CLOCK_MONOTONIC);
392
+ t->ping_state.last_ping_sent_time = GRPC_MILLIS_INF_PAST;
389
393
  return GRPC_ERROR_NONE;
390
- } else if (grpc_error_get_int(err, GRPC_ERROR_INT_STREAM_ID, NULL)) {
394
+ } else if (grpc_error_get_int(err, GRPC_ERROR_INT_STREAM_ID, nullptr)) {
391
395
  /* handle stream errors by closing the stream */
392
- if (s != NULL) {
396
+ if (s != nullptr) {
393
397
  grpc_chttp2_mark_stream_closed(exec_ctx, t, s, true, false, err);
394
398
  }
395
399
  grpc_slice_buffer_add(
@@ -402,20 +406,20 @@ error_handler:
402
406
  }
403
407
  }
404
408
 
405
- static void free_timeout(void *p) { gpr_free(p); }
409
+ static void free_timeout(void* p) { gpr_free(p); }
406
410
 
407
- static void on_initial_header(grpc_exec_ctx *exec_ctx, void *tp,
411
+ static void on_initial_header(grpc_exec_ctx* exec_ctx, void* tp,
408
412
  grpc_mdelem md) {
409
- grpc_chttp2_transport *t = (grpc_chttp2_transport *)tp;
410
- grpc_chttp2_stream *s = t->incoming_stream;
413
+ grpc_chttp2_transport* t = (grpc_chttp2_transport*)tp;
414
+ grpc_chttp2_stream* s = t->incoming_stream;
411
415
 
412
416
  GPR_TIMER_BEGIN("on_initial_header", 0);
413
417
 
414
- GPR_ASSERT(s != NULL);
418
+ GPR_ASSERT(s != nullptr);
415
419
 
416
- if (GRPC_TRACER_ON(grpc_http_trace)) {
417
- char *key = grpc_slice_to_c_string(GRPC_MDKEY(md));
418
- char *value =
420
+ if (grpc_http_trace.enabled()) {
421
+ char* key = grpc_slice_to_c_string(GRPC_MDKEY(md));
422
+ char* value =
419
423
  grpc_dump_slice(GRPC_MDVALUE(md), GPR_DUMP_HEX | GPR_DUMP_ASCII);
420
424
  gpr_log(GPR_INFO, "HTTP:%d:HDR:%s: %s: %s", s->id,
421
425
  t->is_client ? "CLI" : "SVR", key, value);
@@ -430,26 +434,29 @@ static void on_initial_header(grpc_exec_ctx *exec_ctx, void *tp,
430
434
  }
431
435
 
432
436
  if (grpc_slice_eq(GRPC_MDKEY(md), GRPC_MDSTR_GRPC_TIMEOUT)) {
433
- gpr_timespec *cached_timeout =
434
- (gpr_timespec *)grpc_mdelem_get_user_data(md, free_timeout);
435
- gpr_timespec timeout;
436
- if (cached_timeout == NULL) {
437
- /* not already parsed: parse it now, and store the result away */
438
- cached_timeout = (gpr_timespec *)gpr_malloc(sizeof(gpr_timespec));
439
- if (!grpc_http2_decode_timeout(GRPC_MDVALUE(md), cached_timeout)) {
440
- char *val = grpc_slice_to_c_string(GRPC_MDVALUE(md));
437
+ grpc_millis* cached_timeout =
438
+ static_cast<grpc_millis*>(grpc_mdelem_get_user_data(md, free_timeout));
439
+ grpc_millis timeout;
440
+ if (cached_timeout != nullptr) {
441
+ timeout = *cached_timeout;
442
+ } else {
443
+ if (!grpc_http2_decode_timeout(GRPC_MDVALUE(md), &timeout)) {
444
+ char* val = grpc_slice_to_c_string(GRPC_MDVALUE(md));
441
445
  gpr_log(GPR_ERROR, "Ignoring bad timeout value '%s'", val);
442
446
  gpr_free(val);
443
- *cached_timeout = gpr_inf_future(GPR_TIMESPAN);
447
+ timeout = GRPC_MILLIS_INF_FUTURE;
444
448
  }
445
- timeout = *cached_timeout;
446
- grpc_mdelem_set_user_data(md, free_timeout, cached_timeout);
447
- } else {
448
- timeout = *cached_timeout;
449
+ if (GRPC_MDELEM_IS_INTERNED(md)) {
450
+ /* store the result */
451
+ cached_timeout = (grpc_millis*)gpr_malloc(sizeof(grpc_millis));
452
+ *cached_timeout = timeout;
453
+ grpc_mdelem_set_user_data(md, free_timeout, cached_timeout);
454
+ }
455
+ }
456
+ if (timeout != GRPC_MILLIS_INF_FUTURE) {
457
+ grpc_chttp2_incoming_metadata_buffer_set_deadline(
458
+ &s->metadata_buffer[0], grpc_exec_ctx_now(exec_ctx) + timeout);
449
459
  }
450
- grpc_chttp2_incoming_metadata_buffer_set_deadline(
451
- &s->metadata_buffer[0],
452
- gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC), timeout));
453
460
  GRPC_MDELEM_UNREF(exec_ctx, md);
454
461
  } else {
455
462
  const size_t new_size = s->metadata_buffer[0].size + GRPC_MDELEM_LENGTH(md);
@@ -471,7 +478,7 @@ static void on_initial_header(grpc_exec_ctx *exec_ctx, void *tp,
471
478
  s->seen_error = true;
472
479
  GRPC_MDELEM_UNREF(exec_ctx, md);
473
480
  } else {
474
- grpc_error *error = grpc_chttp2_incoming_metadata_buffer_add(
481
+ grpc_error* error = grpc_chttp2_incoming_metadata_buffer_add(
475
482
  exec_ctx, &s->metadata_buffer[0], md);
476
483
  if (error != GRPC_ERROR_NONE) {
477
484
  grpc_chttp2_cancel_stream(exec_ctx, t, s, error);
@@ -485,18 +492,18 @@ static void on_initial_header(grpc_exec_ctx *exec_ctx, void *tp,
485
492
  GPR_TIMER_END("on_initial_header", 0);
486
493
  }
487
494
 
488
- static void on_trailing_header(grpc_exec_ctx *exec_ctx, void *tp,
495
+ static void on_trailing_header(grpc_exec_ctx* exec_ctx, void* tp,
489
496
  grpc_mdelem md) {
490
- grpc_chttp2_transport *t = (grpc_chttp2_transport *)tp;
491
- grpc_chttp2_stream *s = t->incoming_stream;
497
+ grpc_chttp2_transport* t = (grpc_chttp2_transport*)tp;
498
+ grpc_chttp2_stream* s = t->incoming_stream;
492
499
 
493
500
  GPR_TIMER_BEGIN("on_trailing_header", 0);
494
501
 
495
- GPR_ASSERT(s != NULL);
502
+ GPR_ASSERT(s != nullptr);
496
503
 
497
- if (GRPC_TRACER_ON(grpc_http_trace)) {
498
- char *key = grpc_slice_to_c_string(GRPC_MDKEY(md));
499
- char *value =
504
+ if (grpc_http_trace.enabled()) {
505
+ char* key = grpc_slice_to_c_string(GRPC_MDKEY(md));
506
+ char* value =
500
507
  grpc_dump_slice(GRPC_MDVALUE(md), GPR_DUMP_HEX | GPR_DUMP_ASCII);
501
508
  gpr_log(GPR_INFO, "HTTP:%d:TRL:%s: %s: %s", s->id,
502
509
  t->is_client ? "CLI" : "SVR", key, value);
@@ -529,7 +536,7 @@ static void on_trailing_header(grpc_exec_ctx *exec_ctx, void *tp,
529
536
  s->seen_error = true;
530
537
  GRPC_MDELEM_UNREF(exec_ctx, md);
531
538
  } else {
532
- grpc_error *error = grpc_chttp2_incoming_metadata_buffer_add(
539
+ grpc_error* error = grpc_chttp2_incoming_metadata_buffer_add(
533
540
  exec_ctx, &s->metadata_buffer[1], md);
534
541
  if (error != GRPC_ERROR_NONE) {
535
542
  grpc_chttp2_cancel_stream(exec_ctx, t, s, error);
@@ -542,12 +549,12 @@ static void on_trailing_header(grpc_exec_ctx *exec_ctx, void *tp,
542
549
  GPR_TIMER_END("on_trailing_header", 0);
543
550
  }
544
551
 
545
- static grpc_error *init_header_frame_parser(grpc_exec_ctx *exec_ctx,
546
- grpc_chttp2_transport *t,
552
+ static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
553
+ grpc_chttp2_transport* t,
547
554
  int is_continuation) {
548
555
  uint8_t is_eoh =
549
556
  (t->incoming_frame_flags & GRPC_CHTTP2_DATA_FLAG_END_HEADERS) != 0;
550
- grpc_chttp2_stream *s;
557
+ grpc_chttp2_stream* s;
551
558
 
552
559
  /* TODO(ctiller): when to increment header_frames_received? */
553
560
 
@@ -564,11 +571,11 @@ static grpc_error *init_header_frame_parser(grpc_exec_ctx *exec_ctx,
564
571
 
565
572
  t->ping_state.pings_before_data_required =
566
573
  t->ping_policy.max_pings_without_data;
567
- t->ping_state.last_ping_sent_time = gpr_inf_past(GPR_CLOCK_MONOTONIC);
574
+ t->ping_state.last_ping_sent_time = GRPC_MILLIS_INF_PAST;
568
575
 
569
576
  /* could be a new grpc_chttp2_stream or an existing grpc_chttp2_stream */
570
577
  s = grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
571
- if (s == NULL) {
578
+ if (s == nullptr) {
572
579
  if (is_continuation) {
573
580
  GRPC_CHTTP2_IF_TRACING(
574
581
  gpr_log(GPR_ERROR,
@@ -583,7 +590,11 @@ static grpc_error *init_header_frame_parser(grpc_exec_ctx *exec_ctx,
583
590
  GRPC_CHTTP2_IF_TRACING(gpr_log(
584
591
  GPR_ERROR, "ignoring new grpc_chttp2_stream creation on client"));
585
592
  }
586
- return init_skip_frame_parser(exec_ctx, t, 1);
593
+ grpc_error* err = init_skip_frame_parser(exec_ctx, t, 1);
594
+ if (t->incoming_frame_flags & GRPC_CHTTP2_FLAG_HAS_PRIORITY) {
595
+ grpc_chttp2_hpack_parser_set_has_priority(&t->hpack_parser);
596
+ }
597
+ return err;
587
598
  } else if (t->last_new_stream_id >= t->incoming_stream_id) {
588
599
  GRPC_CHTTP2_IF_TRACING(gpr_log(
589
600
  GPR_ERROR,
@@ -606,7 +617,7 @@ static grpc_error *init_header_frame_parser(grpc_exec_ctx *exec_ctx,
606
617
  t->last_new_stream_id = t->incoming_stream_id;
607
618
  s = t->incoming_stream =
608
619
  grpc_chttp2_parsing_accept_stream(exec_ctx, t, t->incoming_stream_id);
609
- if (s == NULL) {
620
+ if (s == nullptr) {
610
621
  GRPC_CHTTP2_IF_TRACING(
611
622
  gpr_log(GPR_ERROR, "grpc_chttp2_stream not accepted"));
612
623
  return init_skip_frame_parser(exec_ctx, t, 1);
@@ -614,12 +625,12 @@ static grpc_error *init_header_frame_parser(grpc_exec_ctx *exec_ctx,
614
625
  } else {
615
626
  t->incoming_stream = s;
616
627
  }
617
- GPR_ASSERT(s != NULL);
628
+ GPR_ASSERT(s != nullptr);
618
629
  s->stats.incoming.framing_bytes += 9;
619
630
  if (s->read_closed) {
620
631
  GRPC_CHTTP2_IF_TRACING(gpr_log(
621
632
  GPR_ERROR, "skipping already closed grpc_chttp2_stream header"));
622
- t->incoming_stream = NULL;
633
+ t->incoming_stream = nullptr;
623
634
  return init_skip_frame_parser(exec_ctx, t, 1);
624
635
  }
625
636
  t->parser = grpc_chttp2_header_parser_parse;
@@ -628,7 +639,7 @@ static grpc_error *init_header_frame_parser(grpc_exec_ctx *exec_ctx,
628
639
  case 0:
629
640
  if (t->is_client && t->header_eof) {
630
641
  GRPC_CHTTP2_IF_TRACING(gpr_log(GPR_INFO, "parsing Trailers-Only"));
631
- if (s->trailing_metadata_available != NULL) {
642
+ if (s->trailing_metadata_available != nullptr) {
632
643
  *s->trailing_metadata_available = true;
633
644
  }
634
645
  t->hpack_parser.on_header = on_trailing_header;
@@ -657,16 +668,16 @@ static grpc_error *init_header_frame_parser(grpc_exec_ctx *exec_ctx,
657
668
  return GRPC_ERROR_NONE;
658
669
  }
659
670
 
660
- static grpc_error *init_window_update_frame_parser(grpc_exec_ctx *exec_ctx,
661
- grpc_chttp2_transport *t) {
662
- grpc_error *err = grpc_chttp2_window_update_parser_begin_frame(
671
+ static grpc_error* init_window_update_frame_parser(grpc_exec_ctx* exec_ctx,
672
+ grpc_chttp2_transport* t) {
673
+ grpc_error* err = grpc_chttp2_window_update_parser_begin_frame(
663
674
  &t->simple.window_update, t->incoming_frame_size,
664
675
  t->incoming_frame_flags);
665
676
  if (err != GRPC_ERROR_NONE) return err;
666
677
  if (t->incoming_stream_id != 0) {
667
- grpc_chttp2_stream *s = t->incoming_stream =
678
+ grpc_chttp2_stream* s = t->incoming_stream =
668
679
  grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
669
- if (s == NULL) {
680
+ if (s == nullptr) {
670
681
  return init_skip_frame_parser(exec_ctx, t, 0);
671
682
  }
672
683
  s->stats.incoming.framing_bytes += 9;
@@ -676,9 +687,9 @@ static grpc_error *init_window_update_frame_parser(grpc_exec_ctx *exec_ctx,
676
687
  return GRPC_ERROR_NONE;
677
688
  }
678
689
 
679
- static grpc_error *init_ping_parser(grpc_exec_ctx *exec_ctx,
680
- grpc_chttp2_transport *t) {
681
- grpc_error *err = grpc_chttp2_ping_parser_begin_frame(
690
+ static grpc_error* init_ping_parser(grpc_exec_ctx* exec_ctx,
691
+ grpc_chttp2_transport* t) {
692
+ grpc_error* err = grpc_chttp2_ping_parser_begin_frame(
682
693
  &t->simple.ping, t->incoming_frame_size, t->incoming_frame_flags);
683
694
  if (err != GRPC_ERROR_NONE) return err;
684
695
  t->parser = grpc_chttp2_ping_parser_parse;
@@ -686,12 +697,12 @@ static grpc_error *init_ping_parser(grpc_exec_ctx *exec_ctx,
686
697
  return GRPC_ERROR_NONE;
687
698
  }
688
699
 
689
- static grpc_error *init_rst_stream_parser(grpc_exec_ctx *exec_ctx,
690
- grpc_chttp2_transport *t) {
691
- grpc_error *err = grpc_chttp2_rst_stream_parser_begin_frame(
700
+ static grpc_error* init_rst_stream_parser(grpc_exec_ctx* exec_ctx,
701
+ grpc_chttp2_transport* t) {
702
+ grpc_error* err = grpc_chttp2_rst_stream_parser_begin_frame(
692
703
  &t->simple.rst_stream, t->incoming_frame_size, t->incoming_frame_flags);
693
704
  if (err != GRPC_ERROR_NONE) return err;
694
- grpc_chttp2_stream *s = t->incoming_stream =
705
+ grpc_chttp2_stream* s = t->incoming_stream =
695
706
  grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
696
707
  if (!t->incoming_stream) {
697
708
  return init_skip_frame_parser(exec_ctx, t, 0);
@@ -702,9 +713,9 @@ static grpc_error *init_rst_stream_parser(grpc_exec_ctx *exec_ctx,
702
713
  return GRPC_ERROR_NONE;
703
714
  }
704
715
 
705
- static grpc_error *init_goaway_parser(grpc_exec_ctx *exec_ctx,
706
- grpc_chttp2_transport *t) {
707
- grpc_error *err = grpc_chttp2_goaway_parser_begin_frame(
716
+ static grpc_error* init_goaway_parser(grpc_exec_ctx* exec_ctx,
717
+ grpc_chttp2_transport* t) {
718
+ grpc_error* err = grpc_chttp2_goaway_parser_begin_frame(
708
719
  &t->goaway_parser, t->incoming_frame_size, t->incoming_frame_flags);
709
720
  if (err != GRPC_ERROR_NONE) return err;
710
721
  t->parser = grpc_chttp2_goaway_parser_parse;
@@ -712,14 +723,14 @@ static grpc_error *init_goaway_parser(grpc_exec_ctx *exec_ctx,
712
723
  return GRPC_ERROR_NONE;
713
724
  }
714
725
 
715
- static grpc_error *init_settings_frame_parser(grpc_exec_ctx *exec_ctx,
716
- grpc_chttp2_transport *t) {
726
+ static grpc_error* init_settings_frame_parser(grpc_exec_ctx* exec_ctx,
727
+ grpc_chttp2_transport* t) {
717
728
  if (t->incoming_stream_id != 0) {
718
729
  return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
719
730
  "Settings frame received for grpc_chttp2_stream");
720
731
  }
721
732
 
722
- grpc_error *err = grpc_chttp2_settings_parser_begin_frame(
733
+ grpc_error* err = grpc_chttp2_settings_parser_begin_frame(
723
734
  &t->simple.settings, t->incoming_frame_size, t->incoming_frame_flags,
724
735
  t->settings[GRPC_PEER_SETTINGS]);
725
736
  if (err != GRPC_ERROR_NONE) {
@@ -739,16 +750,16 @@ static grpc_error *init_settings_frame_parser(grpc_exec_ctx *exec_ctx,
739
750
  return GRPC_ERROR_NONE;
740
751
  }
741
752
 
742
- static grpc_error *parse_frame_slice(grpc_exec_ctx *exec_ctx,
743
- grpc_chttp2_transport *t, grpc_slice slice,
753
+ static grpc_error* parse_frame_slice(grpc_exec_ctx* exec_ctx,
754
+ grpc_chttp2_transport* t, grpc_slice slice,
744
755
  int is_last) {
745
- grpc_chttp2_stream *s = t->incoming_stream;
746
- grpc_error *err = t->parser(exec_ctx, t->parser_data, t, s, slice, is_last);
756
+ grpc_chttp2_stream* s = t->incoming_stream;
757
+ grpc_error* err = t->parser(exec_ctx, t->parser_data, t, s, slice, is_last);
747
758
  if (err == GRPC_ERROR_NONE) {
748
759
  return err;
749
- } else if (grpc_error_get_int(err, GRPC_ERROR_INT_STREAM_ID, NULL)) {
750
- if (GRPC_TRACER_ON(grpc_http_trace)) {
751
- const char *msg = grpc_error_string(err);
760
+ } else if (grpc_error_get_int(err, GRPC_ERROR_INT_STREAM_ID, nullptr)) {
761
+ if (grpc_http_trace.enabled()) {
762
+ const char* msg = grpc_error_string(err);
752
763
  gpr_log(GPR_ERROR, "%s", msg);
753
764
  }
754
765
  grpc_chttp2_parsing_become_skip_parser(exec_ctx, t);