grpc 1.10.0 → 1.11.0.pre2

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 (762) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2098 -501
  3. data/include/grpc/byte_buffer.h +2 -0
  4. data/include/grpc/byte_buffer_reader.h +2 -0
  5. data/include/grpc/census.h +2 -0
  6. data/include/grpc/fork.h +2 -0
  7. data/include/grpc/grpc.h +10 -0
  8. data/include/grpc/grpc_cronet.h +2 -0
  9. data/include/grpc/grpc_posix.h +2 -1
  10. data/include/grpc/grpc_security.h +21 -0
  11. data/include/grpc/grpc_security_constants.h +1 -0
  12. data/include/grpc/impl/codegen/byte_buffer.h +2 -0
  13. data/include/grpc/impl/codegen/grpc_types.h +24 -0
  14. data/include/grpc/impl/codegen/slice.h +1 -1
  15. data/include/grpc/impl/codegen/sync.h +1 -0
  16. data/include/grpc/impl/codegen/sync_custom.h +2 -0
  17. data/include/grpc/impl/codegen/sync_generic.h +2 -0
  18. data/include/grpc/impl/codegen/sync_posix.h +2 -0
  19. data/include/grpc/impl/codegen/sync_windows.h +2 -0
  20. data/include/grpc/slice.h +2 -0
  21. data/include/grpc/slice_buffer.h +2 -0
  22. data/include/grpc/status.h +2 -0
  23. data/include/grpc/support/alloc.h +2 -2
  24. data/include/grpc/support/atm.h +2 -0
  25. data/include/grpc/support/atm_gcc_atomic.h +2 -0
  26. data/include/grpc/support/atm_gcc_sync.h +2 -0
  27. data/include/grpc/support/atm_windows.h +2 -0
  28. data/include/grpc/support/log.h +1 -1
  29. data/include/grpc/support/sync.h +2 -0
  30. data/include/grpc/support/sync_custom.h +2 -0
  31. data/include/grpc/support/sync_generic.h +2 -0
  32. data/include/grpc/support/sync_posix.h +2 -0
  33. data/include/grpc/support/sync_windows.h +2 -0
  34. data/include/grpc/support/time.h +2 -0
  35. data/src/boringssl/err_data.c +444 -438
  36. data/src/core/ext/census/grpc_context.cc +2 -0
  37. data/src/core/ext/filters/client_channel/backup_poller.cc +13 -8
  38. data/src/core/ext/filters/client_channel/backup_poller.h +3 -2
  39. data/src/core/ext/filters/client_channel/channel_connectivity.cc +2 -0
  40. data/src/core/ext/filters/client_channel/client_channel.cc +1988 -433
  41. data/src/core/ext/filters/client_channel/client_channel.h +2 -0
  42. data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -0
  43. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -0
  44. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +2 -27
  45. data/src/core/ext/filters/client_channel/connector.cc +2 -0
  46. data/src/core/ext/filters/client_channel/connector.h +2 -0
  47. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +2 -0
  48. data/src/core/ext/filters/client_channel/http_proxy.cc +2 -0
  49. data/src/core/ext/filters/client_channel/lb_policy.cc +2 -0
  50. data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
  51. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +2 -0
  52. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +2 -0
  53. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +96 -78
  54. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +9 -17
  55. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +70 -62
  56. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +2 -0
  57. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -0
  58. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -0
  59. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +2 -0
  60. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +4 -2
  61. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -2
  62. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +2 -0
  63. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +2 -0
  64. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +3 -1
  65. data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -1
  66. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +2 -0
  67. data/src/core/ext/filters/client_channel/lb_policy_registry.h +2 -1
  68. data/src/core/ext/filters/client_channel/method_params.cc +178 -0
  69. data/src/core/ext/filters/client_channel/method_params.h +74 -0
  70. data/src/core/ext/filters/client_channel/parse_address.cc +17 -13
  71. data/src/core/ext/filters/client_channel/parse_address.h +2 -0
  72. data/src/core/ext/filters/client_channel/proxy_mapper.cc +2 -0
  73. data/src/core/ext/filters/client_channel/proxy_mapper.h +2 -0
  74. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -0
  75. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -0
  76. data/src/core/ext/filters/client_channel/resolver.cc +2 -0
  77. data/src/core/ext/filters/client_channel/resolver.h +6 -0
  78. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -5
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -1
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -0
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +55 -1
  82. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +8 -1
  83. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +1 -0
  84. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +30 -3
  85. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -0
  86. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -1
  87. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -0
  88. data/src/core/ext/filters/client_channel/resolver_registry.cc +2 -0
  89. data/src/core/ext/filters/client_channel/resolver_registry.h +2 -0
  90. data/src/core/ext/filters/client_channel/retry_throttle.cc +102 -120
  91. data/src/core/ext/filters/client_channel/retry_throttle.h +52 -25
  92. data/src/core/ext/filters/client_channel/subchannel.cc +14 -4
  93. data/src/core/ext/filters/client_channel/subchannel.h +10 -1
  94. data/src/core/ext/filters/client_channel/subchannel_index.cc +2 -0
  95. data/src/core/ext/filters/client_channel/subchannel_index.h +2 -0
  96. data/src/core/ext/filters/client_channel/uri_parser.cc +2 -1
  97. data/src/core/ext/filters/client_channel/uri_parser.h +2 -1
  98. data/src/core/ext/filters/deadline/deadline_filter.cc +2 -1
  99. data/src/core/ext/filters/deadline/deadline_filter.h +2 -0
  100. data/src/core/ext/filters/http/client/http_client_filter.cc +27 -25
  101. data/src/core/ext/filters/http/client/http_client_filter.h +2 -0
  102. data/src/core/ext/filters/http/client_authority_filter.cc +156 -0
  103. data/src/core/ext/filters/http/client_authority_filter.h +34 -0
  104. data/src/core/ext/filters/http/http_filters_plugin.cc +2 -0
  105. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +21 -22
  106. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +2 -0
  107. data/src/core/ext/filters/http/server/http_server_filter.cc +11 -8
  108. data/src/core/ext/filters/http/server/http_server_filter.h +2 -0
  109. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +2 -0
  110. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +2 -0
  111. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +2 -0
  112. data/src/core/ext/filters/max_age/max_age_filter.cc +2 -0
  113. data/src/core/ext/filters/max_age/max_age_filter.h +2 -0
  114. data/src/core/ext/filters/message_size/message_size_filter.cc +52 -49
  115. data/src/core/ext/filters/message_size/message_size_filter.h +2 -0
  116. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +5 -1
  117. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +2 -0
  118. data/src/core/ext/filters/workarounds/workaround_utils.cc +2 -0
  119. data/src/core/ext/filters/workarounds/workaround_utils.h +2 -0
  120. data/src/core/ext/transport/chttp2/alpn/alpn.cc +3 -1
  121. data/src/core/ext/transport/chttp2/alpn/alpn.h +2 -0
  122. data/src/core/ext/transport/chttp2/client/authority.cc +42 -0
  123. data/src/core/ext/transport/chttp2/client/authority.h +36 -0
  124. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -0
  125. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -0
  126. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +10 -3
  127. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +2 -2
  128. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +37 -25
  129. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +2 -0
  130. data/src/core/ext/transport/chttp2/server/chttp2_server.h +3 -1
  131. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -1
  132. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -1
  133. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +2 -0
  134. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -1
  135. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -0
  136. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +2 -0
  137. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +2 -0
  138. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +2 -0
  139. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +152 -182
  140. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +2 -0
  141. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -0
  142. data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
  143. data/src/core/ext/transport/chttp2/transport/frame.h +2 -1
  144. data/src/core/ext/transport/chttp2/transport/frame_data.cc +15 -19
  145. data/src/core/ext/transport/chttp2/transport/frame_data.h +7 -5
  146. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -0
  147. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -2
  148. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -0
  149. data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -1
  150. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -0
  151. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -1
  152. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -0
  153. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -2
  154. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +2 -0
  155. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -1
  156. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -0
  157. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -1
  158. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -1
  159. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -2
  160. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +2 -0
  161. data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -1
  162. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -0
  163. data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -0
  164. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +2 -0
  165. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +3 -2
  166. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -0
  167. data/src/core/ext/transport/chttp2/transport/internal.h +60 -24
  168. data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
  169. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
  170. data/src/core/ext/transport/chttp2/transport/stream_map.cc +2 -0
  171. data/src/core/ext/transport/chttp2/transport/varint.cc +2 -0
  172. data/src/core/ext/transport/chttp2/transport/writing.cc +10 -6
  173. data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -0
  174. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -23
  175. data/src/core/ext/transport/inproc/inproc_transport.h +2 -0
  176. data/src/core/lib/avl/avl.cc +2 -0
  177. data/src/core/lib/avl/avl.h +2 -0
  178. data/src/core/lib/backoff/backoff.cc +2 -0
  179. data/src/core/lib/backoff/backoff.h +2 -0
  180. data/src/core/lib/channel/channel_args.h +2 -0
  181. data/src/core/lib/channel/channel_stack.cc +3 -1
  182. data/src/core/lib/channel/channel_stack.h +2 -0
  183. data/src/core/lib/channel/channel_stack_builder.cc +2 -0
  184. data/src/core/lib/channel/channel_stack_builder.h +2 -0
  185. data/src/core/lib/channel/channel_trace.cc +239 -0
  186. data/src/core/lib/channel/channel_trace.h +133 -0
  187. data/src/core/lib/channel/channel_trace_registry.cc +80 -0
  188. data/src/core/lib/channel/channel_trace_registry.h +43 -0
  189. data/src/core/lib/channel/connected_channel.cc +2 -0
  190. data/src/core/lib/channel/connected_channel.h +2 -0
  191. data/src/core/lib/channel/handshaker.cc +2 -0
  192. data/src/core/lib/channel/handshaker.h +2 -0
  193. data/src/core/lib/channel/handshaker_factory.cc +2 -0
  194. data/src/core/lib/channel/handshaker_factory.h +2 -1
  195. data/src/core/lib/channel/handshaker_registry.cc +2 -0
  196. data/src/core/lib/channel/handshaker_registry.h +2 -1
  197. data/src/core/lib/channel/status_util.cc +100 -0
  198. data/src/core/lib/channel/status_util.h +58 -0
  199. data/src/core/lib/compression/algorithm_metadata.h +2 -0
  200. data/src/core/lib/compression/compression.cc +2 -0
  201. data/src/core/lib/compression/compression_internal.cc +2 -0
  202. data/src/core/lib/compression/compression_internal.h +2 -0
  203. data/src/core/lib/compression/message_compress.cc +2 -0
  204. data/src/core/lib/compression/message_compress.h +2 -0
  205. data/src/core/lib/compression/stream_compression.cc +2 -0
  206. data/src/core/lib/compression/stream_compression.h +2 -0
  207. data/src/core/lib/compression/stream_compression_gzip.cc +2 -0
  208. data/src/core/lib/compression/stream_compression_gzip.h +2 -0
  209. data/src/core/lib/compression/stream_compression_identity.cc +2 -1
  210. data/src/core/lib/compression/stream_compression_identity.h +2 -0
  211. data/src/core/lib/debug/stats.cc +2 -0
  212. data/src/core/lib/debug/stats.h +2 -0
  213. data/src/core/lib/debug/stats_data.cc +3 -1
  214. data/src/core/lib/debug/stats_data.h +2 -0
  215. data/src/core/lib/debug/trace.cc +2 -0
  216. data/src/core/lib/debug/trace.h +2 -1
  217. data/src/core/lib/gpr/alloc.cc +2 -1
  218. data/src/core/lib/gpr/arena.cc +47 -0
  219. data/src/core/lib/gpr/arena.h +2 -0
  220. data/src/core/lib/gpr/atm.cc +2 -0
  221. data/src/core/lib/gpr/cpu_linux.cc +5 -1
  222. data/src/core/lib/gpr/cpu_posix.cc +1 -1
  223. data/src/core/lib/gpr/env.h +2 -0
  224. data/src/core/lib/gpr/fork.cc +2 -0
  225. data/src/core/lib/gpr/host_port.cc +2 -0
  226. data/src/core/lib/gpr/log.cc +2 -1
  227. data/src/core/lib/gpr/log_linux.cc +1 -0
  228. data/src/core/lib/gpr/mpscq.cc +2 -0
  229. data/src/core/lib/gpr/mpscq.h +2 -0
  230. data/src/core/lib/gpr/murmur_hash.cc +2 -0
  231. data/src/core/lib/gpr/spinlock.h +2 -0
  232. data/src/core/lib/gpr/string.cc +2 -1
  233. data/src/core/lib/gpr/string.h +2 -2
  234. data/src/core/lib/gpr/sync.cc +2 -0
  235. data/src/core/lib/gpr/time.cc +2 -0
  236. data/src/core/lib/gpr/time_posix.cc +1 -0
  237. data/src/core/lib/gpr/time_precise.cc +2 -0
  238. data/src/core/lib/gpr/time_precise.h +2 -0
  239. data/src/core/lib/gpr/tls_gcc.h +2 -0
  240. data/src/core/lib/gpr/tls_msvc.h +2 -0
  241. data/src/core/lib/gpr/tls_pthread.h +2 -0
  242. data/src/core/lib/gpr/tmpfile.h +2 -0
  243. data/src/core/lib/gprpp/atomic_with_atm.h +2 -0
  244. data/src/core/lib/gprpp/atomic_with_std.h +2 -0
  245. data/src/core/lib/gprpp/inlined_vector.h +2 -0
  246. data/src/core/lib/gprpp/manual_constructor.h +3 -1
  247. data/src/core/lib/gprpp/memory.h +5 -3
  248. data/src/core/lib/gprpp/orphanable.h +3 -0
  249. data/src/core/lib/gprpp/ref_counted.h +4 -0
  250. data/src/core/lib/gprpp/ref_counted_ptr.h +3 -0
  251. data/src/core/lib/gprpp/thd.h +135 -0
  252. data/src/core/lib/gprpp/thd_posix.cc +209 -0
  253. data/src/core/lib/gprpp/thd_windows.cc +162 -0
  254. data/src/core/lib/http/format_request.cc +2 -0
  255. data/src/core/lib/http/format_request.h +2 -0
  256. data/src/core/lib/http/httpcli.cc +2 -0
  257. data/src/core/lib/http/httpcli.h +2 -0
  258. data/src/core/lib/http/httpcli_security_connector.cc +16 -7
  259. data/src/core/lib/http/parser.cc +2 -0
  260. data/src/core/lib/http/parser.h +2 -1
  261. data/src/core/lib/iomgr/call_combiner.cc +2 -0
  262. data/src/core/lib/iomgr/call_combiner.h +2 -1
  263. data/src/core/lib/iomgr/combiner.cc +2 -0
  264. data/src/core/lib/iomgr/combiner.h +2 -0
  265. data/src/core/lib/iomgr/endpoint.cc +4 -0
  266. data/src/core/lib/iomgr/endpoint.h +2 -0
  267. data/src/core/lib/iomgr/endpoint_pair.h +2 -0
  268. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -0
  269. data/src/core/lib/iomgr/endpoint_pair_uv.cc +2 -0
  270. data/src/core/lib/iomgr/endpoint_pair_windows.cc +7 -4
  271. data/src/core/lib/iomgr/error.h +2 -0
  272. data/src/core/lib/iomgr/error_internal.h +2 -0
  273. data/src/core/lib/iomgr/ev_epoll1_linux.cc +2 -0
  274. data/src/core/lib/iomgr/ev_epoll1_linux.h +2 -0
  275. data/src/core/lib/iomgr/ev_epollex_linux.cc +4 -18
  276. data/src/core/lib/iomgr/ev_epollex_linux.h +2 -0
  277. data/src/core/lib/iomgr/ev_epollsig_linux.cc +2 -0
  278. data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -0
  279. data/src/core/lib/iomgr/ev_poll_posix.cc +61 -31
  280. data/src/core/lib/iomgr/ev_poll_posix.h +2 -0
  281. data/src/core/lib/iomgr/ev_posix.cc +35 -19
  282. data/src/core/lib/iomgr/ev_posix.h +2 -0
  283. data/src/core/lib/iomgr/ev_windows.cc +2 -0
  284. data/src/core/lib/iomgr/exec_ctx.cc +3 -1
  285. data/src/core/lib/iomgr/exec_ctx.h +21 -9
  286. data/src/core/lib/iomgr/executor.cc +13 -11
  287. data/src/core/lib/iomgr/executor.h +2 -0
  288. data/src/core/lib/iomgr/fork_posix.cc +4 -2
  289. data/src/core/lib/iomgr/fork_windows.cc +2 -0
  290. data/src/core/lib/iomgr/gethostname_fallback.cc +2 -0
  291. data/src/core/lib/iomgr/gethostname_host_name_max.cc +2 -0
  292. data/src/core/lib/iomgr/gethostname_sysconf.cc +2 -0
  293. data/src/core/lib/iomgr/iocp_windows.cc +3 -1
  294. data/src/core/lib/iomgr/iocp_windows.h +3 -0
  295. data/src/core/lib/iomgr/iomgr.cc +2 -1
  296. data/src/core/lib/iomgr/iomgr.h +2 -0
  297. data/src/core/lib/iomgr/iomgr_custom.cc +63 -0
  298. data/src/core/lib/iomgr/iomgr_custom.h +47 -0
  299. data/src/core/lib/iomgr/iomgr_internal.cc +43 -0
  300. data/src/core/lib/iomgr/iomgr_internal.h +14 -0
  301. data/src/core/lib/iomgr/iomgr_posix.cc +30 -3
  302. data/src/core/lib/iomgr/iomgr_posix.h +2 -0
  303. data/src/core/lib/iomgr/iomgr_uv.cc +17 -20
  304. data/src/core/lib/iomgr/iomgr_windows.cc +29 -3
  305. data/src/core/lib/iomgr/is_epollexclusive_available.cc +2 -0
  306. data/src/core/lib/iomgr/is_epollexclusive_available.h +2 -0
  307. data/src/core/lib/iomgr/load_file.cc +2 -0
  308. data/src/core/lib/iomgr/load_file.h +2 -0
  309. data/src/core/lib/iomgr/lockfree_event.cc +2 -0
  310. data/src/core/lib/iomgr/lockfree_event.h +14 -1
  311. data/src/core/lib/iomgr/nameser.h +2 -0
  312. data/src/core/lib/iomgr/network_status_tracker.cc +3 -1
  313. data/src/core/lib/iomgr/network_status_tracker.h +2 -0
  314. data/src/core/lib/iomgr/polling_entity.cc +2 -0
  315. data/src/core/lib/iomgr/polling_entity.h +2 -0
  316. data/src/core/lib/iomgr/pollset.cc +56 -0
  317. data/src/core/lib/iomgr/pollset.h +19 -0
  318. data/src/core/lib/iomgr/pollset_custom.cc +106 -0
  319. data/src/core/lib/iomgr/{timer_generic.h → pollset_custom.h} +15 -17
  320. data/src/core/lib/iomgr/pollset_set.cc +55 -0
  321. data/src/core/lib/iomgr/pollset_set.h +13 -0
  322. data/src/core/lib/iomgr/pollset_set_custom.cc +48 -0
  323. data/src/core/lib/iomgr/{pollset_uv.h → pollset_set_custom.h} +6 -7
  324. data/src/core/lib/iomgr/pollset_set_windows.cc +17 -10
  325. data/src/core/lib/iomgr/pollset_set_windows.h +2 -0
  326. data/src/core/lib/iomgr/pollset_uv.cc +42 -105
  327. data/src/core/lib/iomgr/pollset_windows.cc +20 -12
  328. data/src/core/lib/iomgr/pollset_windows.h +2 -0
  329. data/src/core/lib/iomgr/port.h +10 -19
  330. data/src/core/lib/iomgr/resolve_address.cc +50 -0
  331. data/src/core/lib/iomgr/resolve_address.h +39 -10
  332. data/src/core/lib/iomgr/resolve_address_custom.cc +187 -0
  333. data/src/core/lib/iomgr/resolve_address_custom.h +43 -0
  334. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -22
  335. data/src/core/lib/iomgr/resolve_address_windows.cc +10 -22
  336. data/src/core/lib/iomgr/resource_quota.cc +2 -0
  337. data/src/core/lib/iomgr/resource_quota.h +3 -5
  338. data/src/core/lib/iomgr/sockaddr.h +3 -11
  339. data/src/core/lib/iomgr/sockaddr_custom.h +54 -0
  340. data/src/core/lib/iomgr/sockaddr_posix.h +26 -0
  341. data/src/core/lib/iomgr/sockaddr_utils.cc +91 -71
  342. data/src/core/lib/iomgr/sockaddr_utils.h +4 -0
  343. data/src/core/lib/iomgr/sockaddr_windows.h +21 -0
  344. data/src/core/lib/iomgr/socket_factory_posix.cc +2 -0
  345. data/src/core/lib/iomgr/socket_factory_posix.h +2 -0
  346. data/src/core/lib/iomgr/socket_mutator.cc +2 -0
  347. data/src/core/lib/iomgr/socket_mutator.h +2 -0
  348. data/src/core/lib/iomgr/socket_utils.h +11 -0
  349. data/src/core/lib/iomgr/socket_utils_common_posix.cc +15 -6
  350. data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
  351. data/src/core/lib/iomgr/socket_utils_posix.cc +3 -2
  352. data/src/core/lib/iomgr/socket_utils_posix.h +2 -0
  353. data/src/core/lib/iomgr/socket_utils_uv.cc +13 -2
  354. data/src/core/lib/iomgr/socket_utils_windows.cc +10 -0
  355. data/src/core/lib/iomgr/socket_windows.cc +2 -0
  356. data/src/core/lib/iomgr/socket_windows.h +2 -1
  357. data/src/core/lib/iomgr/sys_epoll_wrapper.h +2 -0
  358. data/src/core/lib/iomgr/tcp_client.cc +36 -0
  359. data/src/core/lib/iomgr/tcp_client.h +13 -0
  360. data/src/core/lib/iomgr/tcp_client_custom.cc +151 -0
  361. data/src/core/lib/iomgr/tcp_client_posix.cc +11 -24
  362. data/src/core/lib/iomgr/tcp_client_posix.h +2 -0
  363. data/src/core/lib/iomgr/tcp_client_windows.cc +10 -23
  364. data/src/core/lib/iomgr/tcp_custom.cc +365 -0
  365. data/src/core/lib/iomgr/tcp_custom.h +81 -0
  366. data/src/core/lib/iomgr/tcp_posix.cc +3 -1
  367. data/src/core/lib/iomgr/tcp_posix.h +2 -0
  368. data/src/core/lib/iomgr/tcp_server.cc +73 -0
  369. data/src/core/lib/iomgr/tcp_server.h +24 -0
  370. data/src/core/lib/iomgr/tcp_server_custom.cc +472 -0
  371. data/src/core/lib/iomgr/tcp_server_posix.cc +41 -23
  372. data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -0
  373. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -7
  374. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -6
  375. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +2 -0
  376. data/src/core/lib/iomgr/tcp_server_windows.cc +43 -21
  377. data/src/core/lib/iomgr/tcp_uv.cc +308 -314
  378. data/src/core/lib/iomgr/tcp_windows.cc +3 -1
  379. data/src/core/lib/iomgr/tcp_windows.h +2 -0
  380. data/src/core/lib/iomgr/time_averaged_stats.cc +2 -0
  381. data/src/core/lib/iomgr/timer.cc +45 -0
  382. data/src/core/lib/iomgr/timer.h +36 -15
  383. data/src/core/lib/iomgr/timer_custom.cc +93 -0
  384. data/src/core/lib/iomgr/timer_custom.h +43 -0
  385. data/src/core/lib/iomgr/timer_generic.cc +12 -10
  386. data/src/core/lib/iomgr/timer_heap.cc +2 -4
  387. data/src/core/lib/iomgr/timer_heap.h +2 -0
  388. data/src/core/lib/iomgr/timer_manager.cc +12 -20
  389. data/src/core/lib/iomgr/timer_manager.h +2 -0
  390. data/src/core/lib/iomgr/timer_uv.cc +15 -49
  391. data/src/core/lib/iomgr/udp_server.cc +271 -230
  392. data/src/core/lib/iomgr/udp_server.h +44 -20
  393. data/src/core/lib/iomgr/unix_sockets_posix.cc +10 -7
  394. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -0
  395. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -0
  396. data/src/core/lib/iomgr/wakeup_fd_cv.cc +3 -1
  397. data/src/core/lib/iomgr/wakeup_fd_cv.h +2 -0
  398. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +2 -0
  399. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +2 -0
  400. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -0
  401. data/src/core/lib/iomgr/wakeup_fd_pipe.h +2 -0
  402. data/src/core/lib/iomgr/wakeup_fd_posix.cc +2 -0
  403. data/src/core/lib/iomgr/wakeup_fd_posix.h +2 -0
  404. data/src/core/lib/json/json.cc +38 -0
  405. data/src/core/lib/json/json.h +22 -1
  406. data/src/core/lib/json/json_reader.cc +2 -2
  407. data/src/core/lib/json/json_reader.h +1 -0
  408. data/src/core/lib/json/json_string.cc +2 -0
  409. data/src/core/lib/json/json_writer.cc +2 -2
  410. data/src/core/lib/json/json_writer.h +2 -0
  411. data/src/core/lib/profiling/basic_timers.cc +11 -9
  412. data/src/core/lib/profiling/timers.h +6 -3
  413. data/src/core/lib/security/context/security_context.cc +2 -0
  414. data/src/core/lib/security/context/security_context.h +2 -0
  415. data/src/core/lib/security/credentials/alts/alts_credentials.cc +119 -0
  416. data/src/core/lib/security/credentials/alts/alts_credentials.h +102 -0
  417. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +72 -0
  418. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +57 -0
  419. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +67 -0
  420. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +33 -0
  421. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +114 -0
  422. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +126 -0
  423. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +46 -0
  424. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +112 -0
  425. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +58 -0
  426. data/src/core/lib/security/credentials/composite/composite_credentials.cc +2 -0
  427. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -0
  428. data/src/core/lib/security/credentials/credentials.cc +2 -0
  429. data/src/core/lib/security/credentials/credentials.h +2 -0
  430. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -0
  431. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -3
  432. data/src/core/lib/security/credentials/fake/fake_credentials.h +5 -0
  433. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +2 -0
  434. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +2 -0
  435. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -0
  436. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -0
  437. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -0
  438. data/src/core/lib/security/credentials/jwt/json_token.h +2 -0
  439. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -0
  440. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +2 -0
  441. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -0
  442. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +2 -0
  443. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +2 -0
  444. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -0
  445. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
  446. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +11 -2
  447. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +2 -0
  448. data/src/core/lib/security/security_connector/alts_security_connector.cc +287 -0
  449. data/src/core/lib/security/security_connector/alts_security_connector.h +69 -0
  450. data/src/core/lib/security/security_connector/security_connector.cc +174 -74
  451. data/src/core/lib/security/security_connector/security_connector.h +41 -7
  452. data/src/core/lib/security/transport/auth_filters.h +2 -0
  453. data/src/core/lib/security/transport/client_auth_filter.cc +14 -28
  454. data/src/core/lib/security/transport/secure_endpoint.cc +2 -0
  455. data/src/core/lib/security/transport/secure_endpoint.h +2 -0
  456. data/src/core/lib/security/transport/security_handshaker.cc +2 -0
  457. data/src/core/lib/security/transport/security_handshaker.h +2 -1
  458. data/src/core/lib/security/transport/server_auth_filter.cc +2 -0
  459. data/src/core/lib/security/transport/target_authority_table.cc +75 -0
  460. data/src/core/lib/security/transport/{lb_targets_info.h → target_authority_table.h} +16 -8
  461. data/src/core/lib/security/transport/tsi_error.cc +2 -0
  462. data/src/core/lib/security/transport/tsi_error.h +2 -0
  463. data/src/core/lib/security/util/json_util.cc +2 -0
  464. data/src/core/lib/security/util/json_util.h +2 -0
  465. data/src/core/lib/slice/b64.cc +2 -0
  466. data/src/core/lib/slice/b64.h +2 -0
  467. data/src/core/lib/slice/percent_encoding.cc +2 -0
  468. data/src/core/lib/slice/percent_encoding.h +2 -0
  469. data/src/core/lib/slice/slice.cc +2 -0
  470. data/src/core/lib/slice/slice_buffer.cc +3 -1
  471. data/src/core/lib/slice/slice_hash_table.h +178 -45
  472. data/src/core/lib/slice/slice_intern.cc +2 -0
  473. data/src/core/lib/slice/slice_internal.h +2 -2
  474. data/src/core/lib/slice/slice_string_helpers.cc +2 -0
  475. data/src/core/lib/slice/slice_string_helpers.h +2 -1
  476. data/src/core/lib/slice/slice_weak_hash_table.h +105 -0
  477. data/src/core/lib/surface/api_trace.cc +3 -1
  478. data/src/core/lib/surface/api_trace.h +2 -0
  479. data/src/core/lib/surface/byte_buffer.cc +3 -0
  480. data/src/core/lib/surface/byte_buffer_reader.cc +3 -0
  481. data/src/core/lib/surface/call.cc +46 -80
  482. data/src/core/lib/surface/call.h +2 -0
  483. data/src/core/lib/surface/call_details.cc +2 -0
  484. data/src/core/lib/surface/call_log_batch.cc +2 -0
  485. data/src/core/lib/surface/call_test_only.h +2 -0
  486. data/src/core/lib/surface/channel.cc +72 -41
  487. data/src/core/lib/surface/channel.h +2 -0
  488. data/src/core/lib/surface/channel_init.cc +2 -0
  489. data/src/core/lib/surface/channel_init.h +2 -0
  490. data/src/core/lib/surface/channel_ping.cc +2 -0
  491. data/src/core/lib/surface/channel_stack_type.cc +3 -2
  492. data/src/core/lib/surface/channel_stack_type.h +2 -0
  493. data/src/core/lib/surface/completion_queue.h +2 -0
  494. data/src/core/lib/surface/completion_queue_factory.cc +3 -1
  495. data/src/core/lib/surface/completion_queue_factory.h +2 -0
  496. data/src/core/lib/surface/event_string.cc +2 -0
  497. data/src/core/lib/surface/event_string.h +2 -0
  498. data/src/core/lib/surface/init.cc +5 -2
  499. data/src/core/lib/surface/init_secure.cc +5 -2
  500. data/src/core/lib/surface/lame_client.cc +7 -5
  501. data/src/core/lib/surface/lame_client.h +2 -0
  502. data/src/core/lib/surface/metadata_array.cc +2 -0
  503. data/src/core/lib/surface/server.cc +2 -0
  504. data/src/core/lib/surface/server.h +2 -0
  505. data/src/core/lib/surface/validate_metadata.cc +2 -1
  506. data/src/core/lib/surface/validate_metadata.h +2 -0
  507. data/src/core/lib/surface/version.cc +4 -2
  508. data/src/core/lib/transport/bdp_estimator.cc +2 -0
  509. data/src/core/lib/transport/byte_stream.cc +94 -116
  510. data/src/core/lib/transport/byte_stream.h +111 -78
  511. data/src/core/lib/transport/connectivity_state.cc +2 -0
  512. data/src/core/lib/transport/connectivity_state.h +3 -1
  513. data/src/core/lib/transport/error_utils.cc +2 -0
  514. data/src/core/lib/transport/error_utils.h +2 -0
  515. data/src/core/lib/transport/metadata.cc +2 -0
  516. data/src/core/lib/transport/metadata.h +3 -1
  517. data/src/core/lib/transport/metadata_batch.cc +26 -0
  518. data/src/core/lib/transport/metadata_batch.h +12 -1
  519. data/src/core/lib/transport/pid_controller.cc +2 -0
  520. data/src/core/lib/transport/pid_controller.h +2 -0
  521. data/src/core/lib/transport/service_config.cc +21 -175
  522. data/src/core/lib/transport/service_config.h +223 -35
  523. data/src/core/lib/transport/static_metadata.cc +310 -294
  524. data/src/core/lib/transport/static_metadata.h +96 -82
  525. data/src/core/lib/transport/status_conversion.cc +2 -0
  526. data/src/core/lib/transport/status_conversion.h +3 -0
  527. data/src/core/lib/transport/status_metadata.cc +54 -0
  528. data/src/core/lib/{iomgr/timer_uv.h → transport/status_metadata.h} +10 -12
  529. data/src/core/lib/transport/timeout_encoding.cc +2 -1
  530. data/src/core/lib/transport/timeout_encoding.h +2 -0
  531. data/src/core/lib/transport/transport.cc +3 -1
  532. data/src/core/lib/transport/transport.h +33 -7
  533. data/src/core/lib/transport/transport_impl.h +2 -0
  534. data/src/core/lib/transport/transport_op_string.cc +10 -3
  535. data/src/core/plugin_registry/grpc_plugin_registry.cc +10 -4
  536. data/src/core/tsi/alts/crypt/aes_gcm.cc +687 -0
  537. data/src/core/tsi/alts/crypt/gsec.cc +189 -0
  538. data/src/core/tsi/alts/crypt/gsec.h +454 -0
  539. data/src/core/tsi/alts/frame_protector/alts_counter.cc +118 -0
  540. data/src/core/tsi/alts/frame_protector/alts_counter.h +98 -0
  541. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +66 -0
  542. data/src/core/tsi/alts/frame_protector/alts_crypter.h +255 -0
  543. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +407 -0
  544. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +55 -0
  545. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +114 -0
  546. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +114 -0
  547. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +105 -0
  548. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +103 -0
  549. data/src/core/tsi/alts/frame_protector/frame_handler.cc +218 -0
  550. data/src/core/tsi/alts/frame_protector/frame_handler.h +236 -0
  551. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +316 -0
  552. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +137 -0
  553. data/src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc +520 -0
  554. data/src/core/tsi/alts/handshaker/alts_handshaker_service_api.h +323 -0
  555. data/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc +143 -0
  556. data/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h +149 -0
  557. data/src/core/tsi/alts/handshaker/alts_tsi_event.cc +73 -0
  558. data/src/core/tsi/alts/handshaker/alts_tsi_event.h +93 -0
  559. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +483 -0
  560. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +83 -0
  561. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +52 -0
  562. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +58 -0
  563. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +52 -0
  564. data/src/core/tsi/alts/handshaker/altscontext.pb.c +48 -0
  565. data/src/core/tsi/alts/handshaker/altscontext.pb.h +64 -0
  566. data/src/core/tsi/alts/handshaker/handshaker.pb.c +123 -0
  567. data/src/core/tsi/alts/handshaker/handshaker.pb.h +255 -0
  568. data/src/core/tsi/alts/handshaker/transport_security_common.pb.c +50 -0
  569. data/src/core/tsi/alts/handshaker/transport_security_common.pb.h +78 -0
  570. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +196 -0
  571. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +163 -0
  572. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +180 -0
  573. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +52 -0
  574. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +144 -0
  575. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +49 -0
  576. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +91 -0
  577. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +174 -0
  578. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +100 -0
  579. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +476 -0
  580. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +199 -0
  581. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +296 -0
  582. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +52 -0
  583. data/src/core/tsi/alts_transport_security.cc +3 -1
  584. data/src/core/tsi/alts_transport_security.h +4 -2
  585. data/src/core/tsi/fake_transport_security.cc +2 -1
  586. data/src/core/tsi/fake_transport_security.h +2 -0
  587. data/src/core/tsi/ssl/session_cache/ssl_session.h +73 -0
  588. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +58 -0
  589. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +211 -0
  590. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +93 -0
  591. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +76 -0
  592. data/src/core/tsi/ssl_transport_security.cc +266 -62
  593. data/src/core/tsi/ssl_transport_security.h +128 -6
  594. data/src/core/tsi/ssl_types.h +2 -0
  595. data/src/core/tsi/transport_security.cc +2 -0
  596. data/src/core/tsi/transport_security.h +2 -0
  597. data/src/core/tsi/transport_security_adapter.cc +2 -0
  598. data/src/core/tsi/transport_security_adapter.h +2 -0
  599. data/src/core/tsi/transport_security_grpc.cc +2 -0
  600. data/src/core/tsi/transport_security_grpc.h +2 -0
  601. data/src/core/tsi/transport_security_interface.h +2 -0
  602. data/src/ruby/ext/grpc/extconf.rb +1 -2
  603. data/src/ruby/ext/grpc/rb_call.c +1 -13
  604. data/src/ruby/ext/grpc/rb_channel.c +6 -6
  605. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  606. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -0
  607. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +15 -0
  608. data/src/ruby/lib/grpc/core/time_consts.rb +1 -1
  609. data/src/ruby/lib/grpc/generic/bidi_call.rb +19 -8
  610. data/src/ruby/lib/grpc/generic/client_stub.rb +6 -10
  611. data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
  612. data/src/ruby/lib/grpc/generic/rpc_server.rb +2 -2
  613. data/src/ruby/lib/grpc/version.rb +1 -1
  614. data/src/ruby/spec/generic/client_stub_spec.rb +133 -0
  615. data/src/ruby/spec/pb/package_with_underscore/checker_spec.rb +54 -0
  616. data/src/ruby/spec/pb/package_with_underscore/data.proto +23 -0
  617. data/src/ruby/spec/pb/package_with_underscore/service.proto +23 -0
  618. data/third_party/address_sorting/address_sorting.c +369 -0
  619. data/third_party/address_sorting/address_sorting_internal.h +70 -0
  620. data/third_party/address_sorting/address_sorting_posix.c +97 -0
  621. data/third_party/address_sorting/address_sorting_windows.c +55 -0
  622. data/third_party/address_sorting/include/address_sorting/address_sorting.h +110 -0
  623. data/third_party/boringssl/crypto/asn1/a_enum.c +20 -9
  624. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +3 -0
  625. data/third_party/boringssl/crypto/asn1/a_int.c +19 -8
  626. data/third_party/boringssl/crypto/asn1/a_object.c +0 -128
  627. data/third_party/boringssl/crypto/asn1/asn1_locl.h +3 -0
  628. data/third_party/boringssl/crypto/asn1/tasn_fre.c +2 -4
  629. data/third_party/boringssl/crypto/asn1/tasn_new.c +3 -2
  630. data/third_party/boringssl/crypto/bn_extra/bn_asn1.c +0 -16
  631. data/third_party/boringssl/crypto/buf/buf.c +14 -0
  632. data/third_party/boringssl/crypto/bytestring/cbb.c +93 -0
  633. data/third_party/boringssl/crypto/conf/conf.c +2 -2
  634. data/third_party/boringssl/crypto/cpu-intel.c +17 -17
  635. data/third_party/boringssl/crypto/crypto.c +16 -4
  636. data/third_party/boringssl/crypto/curve25519/spake25519.c +11 -11
  637. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +1 -1
  638. data/third_party/boringssl/crypto/dsa/dsa.c +9 -21
  639. data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +2 -2
  640. data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +1 -8
  641. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +2 -23
  642. data/third_party/boringssl/crypto/ex_data.c +0 -1
  643. data/third_party/boringssl/crypto/fipsmodule/bn/add.c +7 -11
  644. data/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.c +19 -16
  645. data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +15 -0
  646. data/third_party/boringssl/crypto/fipsmodule/bn/div.c +53 -46
  647. data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +242 -85
  648. data/third_party/boringssl/crypto/fipsmodule/bn/generic.c +42 -47
  649. data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +176 -34
  650. data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +118 -65
  651. data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +94 -61
  652. data/third_party/boringssl/crypto/fipsmodule/bn/random.c +79 -63
  653. data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +26 -28
  654. data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +2 -0
  655. data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +250 -149
  656. data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +0 -27
  657. data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +54 -20
  658. data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +3 -3
  659. data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +7 -41
  660. data/third_party/boringssl/crypto/fipsmodule/ec/p256-64.c +6 -40
  661. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +17 -122
  662. data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +3 -64
  663. data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +27 -9
  664. data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +203 -205
  665. data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +14 -15
  666. data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +12 -8
  667. data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +4 -3
  668. data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +25 -36
  669. data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +10 -0
  670. data/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +0 -4
  671. data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +2 -0
  672. data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +9 -19
  673. data/third_party/boringssl/crypto/lhash/lhash.c +19 -0
  674. data/third_party/boringssl/crypto/obj/obj.c +29 -69
  675. data/third_party/boringssl/crypto/pem/pem_lib.c +2 -2
  676. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +4 -55
  677. data/third_party/boringssl/crypto/rsa_extra/rsa_asn1.c +3 -22
  678. data/third_party/boringssl/crypto/x509/by_dir.c +1 -3
  679. data/third_party/boringssl/crypto/x509/by_file.c +0 -1
  680. data/third_party/boringssl/crypto/x509/x509_lu.c +0 -1
  681. data/third_party/boringssl/crypto/x509/x509_obj.c +1 -3
  682. data/third_party/boringssl/crypto/x509/x509_txt.c +0 -6
  683. data/third_party/boringssl/crypto/x509/x509_vfy.c +0 -1
  684. data/third_party/boringssl/crypto/x509/x509_vpm.c +0 -1
  685. data/third_party/boringssl/crypto/x509/x_algor.c +2 -2
  686. data/third_party/boringssl/crypto/x509v3/v3_alt.c +3 -4
  687. data/third_party/boringssl/crypto/x509v3/v3_genn.c +1 -0
  688. data/third_party/boringssl/crypto/x509v3/v3_info.c +1 -2
  689. data/third_party/boringssl/crypto/x509v3/v3_lib.c +15 -7
  690. data/third_party/boringssl/crypto/x509v3/v3_utl.c +41 -2
  691. data/third_party/boringssl/include/openssl/asn1.h +0 -1
  692. data/third_party/boringssl/include/openssl/base.h +1 -1
  693. data/third_party/boringssl/include/openssl/bio.h +5 -2
  694. data/third_party/boringssl/include/openssl/bn.h +2 -17
  695. data/third_party/boringssl/include/openssl/buf.h +4 -0
  696. data/third_party/boringssl/include/openssl/bytestring.h +11 -0
  697. data/third_party/boringssl/include/openssl/chacha.h +5 -1
  698. data/third_party/boringssl/include/openssl/cipher.h +10 -0
  699. data/third_party/boringssl/include/openssl/conf.h +4 -8
  700. data/third_party/boringssl/include/openssl/dsa.h +2 -18
  701. data/third_party/boringssl/include/openssl/ec.h +5 -5
  702. data/third_party/boringssl/include/openssl/ecdsa.h +10 -28
  703. data/third_party/boringssl/include/openssl/evp.h +0 -4
  704. data/third_party/boringssl/include/openssl/lhash.h +1 -18
  705. data/third_party/boringssl/include/openssl/obj.h +1 -0
  706. data/third_party/boringssl/include/openssl/rsa.h +3 -4
  707. data/third_party/boringssl/include/openssl/ssl.h +35 -54
  708. data/third_party/boringssl/include/openssl/ssl3.h +2 -0
  709. data/third_party/boringssl/include/openssl/stack.h +1 -1
  710. data/third_party/boringssl/include/openssl/tls1.h +1 -16
  711. data/third_party/boringssl/include/openssl/x509.h +3 -2
  712. data/third_party/boringssl/include/openssl/x509_vfy.h +0 -2
  713. data/third_party/boringssl/include/openssl/x509v3.h +1 -0
  714. data/third_party/boringssl/ssl/custom_extensions.cc +1 -1
  715. data/third_party/boringssl/ssl/d1_both.cc +120 -129
  716. data/third_party/boringssl/ssl/d1_lib.cc +23 -21
  717. data/third_party/boringssl/ssl/d1_pkt.cc +39 -143
  718. data/third_party/boringssl/ssl/dtls_method.cc +16 -23
  719. data/third_party/boringssl/ssl/dtls_record.cc +11 -4
  720. data/third_party/boringssl/ssl/handshake.cc +109 -40
  721. data/third_party/boringssl/ssl/handshake_client.cc +104 -96
  722. data/third_party/boringssl/ssl/handshake_server.cc +62 -72
  723. data/third_party/boringssl/ssl/internal.h +397 -318
  724. data/third_party/boringssl/ssl/s3_both.cc +173 -191
  725. data/third_party/boringssl/ssl/s3_lib.cc +26 -34
  726. data/third_party/boringssl/ssl/s3_pkt.cc +105 -247
  727. data/third_party/boringssl/ssl/ssl_asn1.cc +22 -22
  728. data/third_party/boringssl/ssl/ssl_buffer.cc +98 -108
  729. data/third_party/boringssl/ssl/ssl_cert.cc +12 -1
  730. data/third_party/boringssl/ssl/ssl_cipher.cc +23 -28
  731. data/third_party/boringssl/ssl/ssl_key_share.cc +11 -6
  732. data/third_party/boringssl/ssl/ssl_lib.cc +190 -113
  733. data/third_party/boringssl/ssl/ssl_privkey.cc +76 -106
  734. data/third_party/boringssl/ssl/ssl_session.cc +3 -3
  735. data/third_party/boringssl/ssl/ssl_stat.cc +3 -3
  736. data/third_party/boringssl/ssl/ssl_transcript.cc +38 -22
  737. data/third_party/boringssl/ssl/ssl_versions.cc +64 -31
  738. data/third_party/boringssl/ssl/t1_enc.cc +137 -154
  739. data/third_party/boringssl/ssl/t1_lib.cc +463 -478
  740. data/third_party/boringssl/ssl/tls13_both.cc +57 -58
  741. data/third_party/boringssl/ssl/tls13_client.cc +256 -121
  742. data/third_party/boringssl/ssl/tls13_enc.cc +187 -72
  743. data/third_party/boringssl/ssl/tls13_server.cc +187 -86
  744. data/third_party/boringssl/ssl/tls_method.cc +20 -30
  745. data/third_party/boringssl/ssl/tls_record.cc +77 -40
  746. data/third_party/boringssl/third_party/fiat/curve25519.c +5062 -0
  747. data/third_party/boringssl/{crypto/curve25519 → third_party/fiat}/internal.h +40 -27
  748. data/third_party/nanopb/pb.h +1 -1
  749. metadata +147 -45
  750. data/src/core/lib/gpr/thd.cc +0 -49
  751. data/src/core/lib/gpr/thd.h +0 -71
  752. data/src/core/lib/gpr/thd_posix.cc +0 -154
  753. data/src/core/lib/gpr/thd_windows.cc +0 -107
  754. data/src/core/lib/iomgr/iomgr_uv.h +0 -37
  755. data/src/core/lib/iomgr/pollset_set_uv.cc +0 -43
  756. data/src/core/lib/iomgr/resolve_address_uv.cc +0 -284
  757. data/src/core/lib/iomgr/tcp_client_uv.cc +0 -175
  758. data/src/core/lib/iomgr/tcp_server_uv.cc +0 -471
  759. data/src/core/lib/iomgr/tcp_uv.h +0 -51
  760. data/src/core/lib/security/transport/lb_targets_info.cc +0 -59
  761. data/src/core/lib/slice/slice_hash_table.cc +0 -145
  762. data/third_party/boringssl/crypto/curve25519/curve25519.c +0 -4938
@@ -27,9 +27,11 @@
27
27
  #ifndef GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H
28
28
  #define GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H
29
29
 
30
+ #include <grpc/support/port_platform.h>
31
+
30
32
  #include "src/core/lib/transport/metadata.h"
31
33
 
32
- #define GRPC_STATIC_MDSTR_COUNT 101
34
+ #define GRPC_STATIC_MDSTR_COUNT 105
33
35
  extern const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT];
34
36
  /* ":path" */
35
37
  #define GRPC_MDSTR_PATH (grpc_static_slice_table[0])
@@ -76,168 +78,176 @@ extern const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT];
76
78
  #define GRPC_MDSTR_HOST (grpc_static_slice_table[20])
77
79
  /* "lb-token" */
78
80
  #define GRPC_MDSTR_LB_TOKEN (grpc_static_slice_table[21])
81
+ /* "grpc-previous-rpc-attempts" */
82
+ #define GRPC_MDSTR_GRPC_PREVIOUS_RPC_ATTEMPTS (grpc_static_slice_table[22])
83
+ /* "grpc-retry-pushback-ms" */
84
+ #define GRPC_MDSTR_GRPC_RETRY_PUSHBACK_MS (grpc_static_slice_table[23])
79
85
  /* "grpc-timeout" */
80
- #define GRPC_MDSTR_GRPC_TIMEOUT (grpc_static_slice_table[22])
86
+ #define GRPC_MDSTR_GRPC_TIMEOUT (grpc_static_slice_table[24])
87
+ /* "1" */
88
+ #define GRPC_MDSTR_1 (grpc_static_slice_table[25])
89
+ /* "2" */
90
+ #define GRPC_MDSTR_2 (grpc_static_slice_table[26])
91
+ /* "3" */
92
+ #define GRPC_MDSTR_3 (grpc_static_slice_table[27])
93
+ /* "4" */
94
+ #define GRPC_MDSTR_4 (grpc_static_slice_table[28])
81
95
  /* "" */
82
- #define GRPC_MDSTR_EMPTY (grpc_static_slice_table[23])
96
+ #define GRPC_MDSTR_EMPTY (grpc_static_slice_table[29])
83
97
  /* "grpc.wait_for_ready" */
84
- #define GRPC_MDSTR_GRPC_DOT_WAIT_FOR_READY (grpc_static_slice_table[24])
98
+ #define GRPC_MDSTR_GRPC_DOT_WAIT_FOR_READY (grpc_static_slice_table[30])
85
99
  /* "grpc.timeout" */
86
- #define GRPC_MDSTR_GRPC_DOT_TIMEOUT (grpc_static_slice_table[25])
100
+ #define GRPC_MDSTR_GRPC_DOT_TIMEOUT (grpc_static_slice_table[31])
87
101
  /* "grpc.max_request_message_bytes" */
88
102
  #define GRPC_MDSTR_GRPC_DOT_MAX_REQUEST_MESSAGE_BYTES \
89
- (grpc_static_slice_table[26])
103
+ (grpc_static_slice_table[32])
90
104
  /* "grpc.max_response_message_bytes" */
91
105
  #define GRPC_MDSTR_GRPC_DOT_MAX_RESPONSE_MESSAGE_BYTES \
92
- (grpc_static_slice_table[27])
106
+ (grpc_static_slice_table[33])
93
107
  /* "/grpc.lb.v1.LoadBalancer/BalanceLoad" */
94
108
  #define GRPC_MDSTR_SLASH_GRPC_DOT_LB_DOT_V1_DOT_LOADBALANCER_SLASH_BALANCELOAD \
95
- (grpc_static_slice_table[28])
109
+ (grpc_static_slice_table[34])
96
110
  /* "deflate" */
97
- #define GRPC_MDSTR_DEFLATE (grpc_static_slice_table[29])
111
+ #define GRPC_MDSTR_DEFLATE (grpc_static_slice_table[35])
98
112
  /* "gzip" */
99
- #define GRPC_MDSTR_GZIP (grpc_static_slice_table[30])
113
+ #define GRPC_MDSTR_GZIP (grpc_static_slice_table[36])
100
114
  /* "stream/gzip" */
101
- #define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table[31])
115
+ #define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table[37])
102
116
  /* "0" */
103
- #define GRPC_MDSTR_0 (grpc_static_slice_table[32])
104
- /* "1" */
105
- #define GRPC_MDSTR_1 (grpc_static_slice_table[33])
106
- /* "2" */
107
- #define GRPC_MDSTR_2 (grpc_static_slice_table[34])
117
+ #define GRPC_MDSTR_0 (grpc_static_slice_table[38])
108
118
  /* "identity" */
109
- #define GRPC_MDSTR_IDENTITY (grpc_static_slice_table[35])
119
+ #define GRPC_MDSTR_IDENTITY (grpc_static_slice_table[39])
110
120
  /* "trailers" */
111
- #define GRPC_MDSTR_TRAILERS (grpc_static_slice_table[36])
121
+ #define GRPC_MDSTR_TRAILERS (grpc_static_slice_table[40])
112
122
  /* "application/grpc" */
113
- #define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table[37])
123
+ #define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table[41])
114
124
  /* "POST" */
115
- #define GRPC_MDSTR_POST (grpc_static_slice_table[38])
125
+ #define GRPC_MDSTR_POST (grpc_static_slice_table[42])
116
126
  /* "200" */
117
- #define GRPC_MDSTR_200 (grpc_static_slice_table[39])
127
+ #define GRPC_MDSTR_200 (grpc_static_slice_table[43])
118
128
  /* "404" */
119
- #define GRPC_MDSTR_404 (grpc_static_slice_table[40])
129
+ #define GRPC_MDSTR_404 (grpc_static_slice_table[44])
120
130
  /* "http" */
121
- #define GRPC_MDSTR_HTTP (grpc_static_slice_table[41])
131
+ #define GRPC_MDSTR_HTTP (grpc_static_slice_table[45])
122
132
  /* "https" */
123
- #define GRPC_MDSTR_HTTPS (grpc_static_slice_table[42])
133
+ #define GRPC_MDSTR_HTTPS (grpc_static_slice_table[46])
124
134
  /* "grpc" */
125
- #define GRPC_MDSTR_GRPC (grpc_static_slice_table[43])
135
+ #define GRPC_MDSTR_GRPC (grpc_static_slice_table[47])
126
136
  /* "GET" */
127
- #define GRPC_MDSTR_GET (grpc_static_slice_table[44])
137
+ #define GRPC_MDSTR_GET (grpc_static_slice_table[48])
128
138
  /* "PUT" */
129
- #define GRPC_MDSTR_PUT (grpc_static_slice_table[45])
139
+ #define GRPC_MDSTR_PUT (grpc_static_slice_table[49])
130
140
  /* "/" */
131
- #define GRPC_MDSTR_SLASH (grpc_static_slice_table[46])
141
+ #define GRPC_MDSTR_SLASH (grpc_static_slice_table[50])
132
142
  /* "/index.html" */
133
- #define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table[47])
143
+ #define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table[51])
134
144
  /* "204" */
135
- #define GRPC_MDSTR_204 (grpc_static_slice_table[48])
145
+ #define GRPC_MDSTR_204 (grpc_static_slice_table[52])
136
146
  /* "206" */
137
- #define GRPC_MDSTR_206 (grpc_static_slice_table[49])
147
+ #define GRPC_MDSTR_206 (grpc_static_slice_table[53])
138
148
  /* "304" */
139
- #define GRPC_MDSTR_304 (grpc_static_slice_table[50])
149
+ #define GRPC_MDSTR_304 (grpc_static_slice_table[54])
140
150
  /* "400" */
141
- #define GRPC_MDSTR_400 (grpc_static_slice_table[51])
151
+ #define GRPC_MDSTR_400 (grpc_static_slice_table[55])
142
152
  /* "500" */
143
- #define GRPC_MDSTR_500 (grpc_static_slice_table[52])
153
+ #define GRPC_MDSTR_500 (grpc_static_slice_table[56])
144
154
  /* "accept-charset" */
145
- #define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table[53])
155
+ #define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table[57])
146
156
  /* "gzip, deflate" */
147
- #define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table[54])
157
+ #define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table[58])
148
158
  /* "accept-language" */
149
- #define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table[55])
159
+ #define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table[59])
150
160
  /* "accept-ranges" */
151
- #define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table[56])
161
+ #define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table[60])
152
162
  /* "accept" */
153
- #define GRPC_MDSTR_ACCEPT (grpc_static_slice_table[57])
163
+ #define GRPC_MDSTR_ACCEPT (grpc_static_slice_table[61])
154
164
  /* "access-control-allow-origin" */
155
- #define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table[58])
165
+ #define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table[62])
156
166
  /* "age" */
157
- #define GRPC_MDSTR_AGE (grpc_static_slice_table[59])
167
+ #define GRPC_MDSTR_AGE (grpc_static_slice_table[63])
158
168
  /* "allow" */
159
- #define GRPC_MDSTR_ALLOW (grpc_static_slice_table[60])
169
+ #define GRPC_MDSTR_ALLOW (grpc_static_slice_table[64])
160
170
  /* "authorization" */
161
- #define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table[61])
171
+ #define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table[65])
162
172
  /* "cache-control" */
163
- #define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table[62])
173
+ #define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table[66])
164
174
  /* "content-disposition" */
165
- #define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table[63])
175
+ #define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table[67])
166
176
  /* "content-language" */
167
- #define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table[64])
177
+ #define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table[68])
168
178
  /* "content-length" */
169
- #define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table[65])
179
+ #define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table[69])
170
180
  /* "content-location" */
171
- #define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table[66])
181
+ #define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table[70])
172
182
  /* "content-range" */
173
- #define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table[67])
183
+ #define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table[71])
174
184
  /* "cookie" */
175
- #define GRPC_MDSTR_COOKIE (grpc_static_slice_table[68])
185
+ #define GRPC_MDSTR_COOKIE (grpc_static_slice_table[72])
176
186
  /* "date" */
177
- #define GRPC_MDSTR_DATE (grpc_static_slice_table[69])
187
+ #define GRPC_MDSTR_DATE (grpc_static_slice_table[73])
178
188
  /* "etag" */
179
- #define GRPC_MDSTR_ETAG (grpc_static_slice_table[70])
189
+ #define GRPC_MDSTR_ETAG (grpc_static_slice_table[74])
180
190
  /* "expect" */
181
- #define GRPC_MDSTR_EXPECT (grpc_static_slice_table[71])
191
+ #define GRPC_MDSTR_EXPECT (grpc_static_slice_table[75])
182
192
  /* "expires" */
183
- #define GRPC_MDSTR_EXPIRES (grpc_static_slice_table[72])
193
+ #define GRPC_MDSTR_EXPIRES (grpc_static_slice_table[76])
184
194
  /* "from" */
185
- #define GRPC_MDSTR_FROM (grpc_static_slice_table[73])
195
+ #define GRPC_MDSTR_FROM (grpc_static_slice_table[77])
186
196
  /* "if-match" */
187
- #define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table[74])
197
+ #define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table[78])
188
198
  /* "if-modified-since" */
189
- #define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table[75])
199
+ #define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table[79])
190
200
  /* "if-none-match" */
191
- #define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table[76])
201
+ #define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table[80])
192
202
  /* "if-range" */
193
- #define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table[77])
203
+ #define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table[81])
194
204
  /* "if-unmodified-since" */
195
- #define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table[78])
205
+ #define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table[82])
196
206
  /* "last-modified" */
197
- #define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table[79])
207
+ #define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table[83])
198
208
  /* "lb-cost-bin" */
199
- #define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table[80])
209
+ #define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table[84])
200
210
  /* "link" */
201
- #define GRPC_MDSTR_LINK (grpc_static_slice_table[81])
211
+ #define GRPC_MDSTR_LINK (grpc_static_slice_table[85])
202
212
  /* "location" */
203
- #define GRPC_MDSTR_LOCATION (grpc_static_slice_table[82])
213
+ #define GRPC_MDSTR_LOCATION (grpc_static_slice_table[86])
204
214
  /* "max-forwards" */
205
- #define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table[83])
215
+ #define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table[87])
206
216
  /* "proxy-authenticate" */
207
- #define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table[84])
217
+ #define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table[88])
208
218
  /* "proxy-authorization" */
209
- #define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table[85])
219
+ #define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table[89])
210
220
  /* "range" */
211
- #define GRPC_MDSTR_RANGE (grpc_static_slice_table[86])
221
+ #define GRPC_MDSTR_RANGE (grpc_static_slice_table[90])
212
222
  /* "referer" */
213
- #define GRPC_MDSTR_REFERER (grpc_static_slice_table[87])
223
+ #define GRPC_MDSTR_REFERER (grpc_static_slice_table[91])
214
224
  /* "refresh" */
215
- #define GRPC_MDSTR_REFRESH (grpc_static_slice_table[88])
225
+ #define GRPC_MDSTR_REFRESH (grpc_static_slice_table[92])
216
226
  /* "retry-after" */
217
- #define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table[89])
227
+ #define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table[93])
218
228
  /* "server" */
219
- #define GRPC_MDSTR_SERVER (grpc_static_slice_table[90])
229
+ #define GRPC_MDSTR_SERVER (grpc_static_slice_table[94])
220
230
  /* "set-cookie" */
221
- #define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table[91])
231
+ #define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table[95])
222
232
  /* "strict-transport-security" */
223
- #define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table[92])
233
+ #define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table[96])
224
234
  /* "transfer-encoding" */
225
- #define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table[93])
235
+ #define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table[97])
226
236
  /* "vary" */
227
- #define GRPC_MDSTR_VARY (grpc_static_slice_table[94])
237
+ #define GRPC_MDSTR_VARY (grpc_static_slice_table[98])
228
238
  /* "via" */
229
- #define GRPC_MDSTR_VIA (grpc_static_slice_table[95])
239
+ #define GRPC_MDSTR_VIA (grpc_static_slice_table[99])
230
240
  /* "www-authenticate" */
231
- #define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table[96])
241
+ #define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table[100])
232
242
  /* "identity,deflate" */
233
- #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table[97])
243
+ #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table[101])
234
244
  /* "identity,gzip" */
235
- #define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table[98])
245
+ #define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table[102])
236
246
  /* "deflate,gzip" */
237
- #define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table[99])
247
+ #define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table[103])
238
248
  /* "identity,deflate,gzip" */
239
249
  #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
240
- (grpc_static_slice_table[100])
250
+ (grpc_static_slice_table[104])
241
251
 
242
252
  extern const grpc_slice_refcount_vtable grpc_static_metadata_vtable;
243
253
  extern grpc_slice_refcount
@@ -535,6 +545,8 @@ typedef enum {
535
545
  GRPC_BATCH_USER_AGENT,
536
546
  GRPC_BATCH_HOST,
537
547
  GRPC_BATCH_LB_TOKEN,
548
+ GRPC_BATCH_GRPC_PREVIOUS_RPC_ATTEMPTS,
549
+ GRPC_BATCH_GRPC_RETRY_PUSHBACK_MS,
538
550
  GRPC_BATCH_CALLOUTS_COUNT
539
551
  } grpc_metadata_batch_callouts_index;
540
552
 
@@ -563,6 +575,8 @@ typedef union {
563
575
  struct grpc_linked_mdelem* user_agent;
564
576
  struct grpc_linked_mdelem* host;
565
577
  struct grpc_linked_mdelem* lb_token;
578
+ struct grpc_linked_mdelem* grpc_previous_rpc_attempts;
579
+ struct grpc_linked_mdelem* grpc_retry_pushback_ms;
566
580
  } named;
567
581
  } grpc_metadata_batch_callouts;
568
582
 
@@ -16,6 +16,8 @@
16
16
  *
17
17
  */
18
18
 
19
+ #include <grpc/support/port_platform.h>
20
+
19
21
  #include "src/core/lib/transport/status_conversion.h"
20
22
 
21
23
  grpc_http2_error_code grpc_status_to_http2_error(grpc_status_code status) {
@@ -19,7 +19,10 @@
19
19
  #ifndef GRPC_CORE_LIB_TRANSPORT_STATUS_CONVERSION_H
20
20
  #define GRPC_CORE_LIB_TRANSPORT_STATUS_CONVERSION_H
21
21
 
22
+ #include <grpc/support/port_platform.h>
23
+
22
24
  #include <grpc/grpc.h>
25
+
23
26
  #include "src/core/lib/iomgr/exec_ctx.h"
24
27
  #include "src/core/lib/transport/http2_errors.h"
25
28
 
@@ -0,0 +1,54 @@
1
+ /*
2
+ *
3
+ * Copyright 2017 gRPC authors.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ *
17
+ */
18
+
19
+ #include <grpc/support/port_platform.h>
20
+
21
+ #include "src/core/lib/transport/status_metadata.h"
22
+
23
+ #include "src/core/lib/slice/slice_string_helpers.h"
24
+ #include "src/core/lib/transport/static_metadata.h"
25
+
26
+ /* we offset status by a small amount when storing it into transport metadata
27
+ as metadata cannot store a 0 value (which is used as OK for grpc_status_codes
28
+ */
29
+ #define STATUS_OFFSET 1
30
+
31
+ static void destroy_status(void* ignored) {}
32
+
33
+ grpc_status_code grpc_get_status_code_from_metadata(grpc_mdelem md) {
34
+ if (grpc_mdelem_eq(md, GRPC_MDELEM_GRPC_STATUS_0)) {
35
+ return GRPC_STATUS_OK;
36
+ }
37
+ if (grpc_mdelem_eq(md, GRPC_MDELEM_GRPC_STATUS_1)) {
38
+ return GRPC_STATUS_CANCELLED;
39
+ }
40
+ if (grpc_mdelem_eq(md, GRPC_MDELEM_GRPC_STATUS_2)) {
41
+ return GRPC_STATUS_UNKNOWN;
42
+ }
43
+ void* user_data = grpc_mdelem_get_user_data(md, destroy_status);
44
+ if (user_data != nullptr) {
45
+ return static_cast<grpc_status_code>((intptr_t)user_data - STATUS_OFFSET);
46
+ }
47
+ uint32_t status;
48
+ if (!grpc_parse_slice_to_uint32(GRPC_MDVALUE(md), &status)) {
49
+ status = GRPC_STATUS_UNKNOWN; /* could not parse status code */
50
+ }
51
+ grpc_mdelem_set_user_data(
52
+ md, destroy_status, (void*)static_cast<intptr_t>(status + STATUS_OFFSET));
53
+ return static_cast<grpc_status_code>(status);
54
+ }
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2016 gRPC authors.
3
+ * Copyright 2017 gRPC authors.
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
@@ -16,17 +16,15 @@
16
16
  *
17
17
  */
18
18
 
19
- #ifndef GRPC_CORE_LIB_IOMGR_TIMER_UV_H
20
- #define GRPC_CORE_LIB_IOMGR_TIMER_UV_H
19
+ #ifndef GRPC_CORE_LIB_TRANSPORT_STATUS_METADATA_H
20
+ #define GRPC_CORE_LIB_TRANSPORT_STATUS_METADATA_H
21
21
 
22
- #include "src/core/lib/iomgr/exec_ctx.h"
22
+ #include <grpc/support/port_platform.h>
23
23
 
24
- struct grpc_timer {
25
- grpc_closure* closure;
26
- /* This is actually a uv_timer_t*, but we want to keep platform-specific
27
- types out of headers */
28
- void* uv_timer;
29
- int pending;
30
- };
24
+ #include <grpc/status.h>
31
25
 
32
- #endif /* GRPC_CORE_LIB_IOMGR_TIMER_UV_H */
26
+ #include "src/core/lib/transport/metadata.h"
27
+
28
+ grpc_status_code grpc_get_status_code_from_metadata(grpc_mdelem md);
29
+
30
+ #endif /* GRPC_CORE_LIB_TRANSPORT_STATUS_METADATA_H */
@@ -16,12 +16,13 @@
16
16
  *
17
17
  */
18
18
 
19
+ #include <grpc/support/port_platform.h>
20
+
19
21
  #include "src/core/lib/transport/timeout_encoding.h"
20
22
 
21
23
  #include <stdio.h>
22
24
  #include <string.h>
23
25
 
24
- #include <grpc/support/port_platform.h>
25
26
  #include "src/core/lib/gpr/string.h"
26
27
 
27
28
  static int64_t round_up(int64_t x, int64_t divisor) {
@@ -19,6 +19,8 @@
19
19
  #ifndef GRPC_CORE_LIB_TRANSPORT_TIMEOUT_ENCODING_H
20
20
  #define GRPC_CORE_LIB_TRANSPORT_TIMEOUT_ENCODING_H
21
21
 
22
+ #include <grpc/support/port_platform.h>
23
+
22
24
  #include <grpc/slice.h>
23
25
  #include <grpc/support/time.h>
24
26
 
@@ -16,6 +16,8 @@
16
16
  *
17
17
  */
18
18
 
19
+ #include <grpc/support/port_platform.h>
20
+
19
21
  #include "src/core/lib/transport/transport.h"
20
22
 
21
23
  #include <string.h>
@@ -207,7 +209,7 @@ void grpc_transport_stream_op_batch_finish_with_failure(
207
209
  grpc_transport_stream_op_batch* batch, grpc_error* error,
208
210
  grpc_call_combiner* call_combiner) {
209
211
  if (batch->send_message) {
210
- grpc_byte_stream_destroy(batch->payload->send_message.send_message);
212
+ batch->payload->send_message.send_message.reset();
211
213
  }
212
214
  if (batch->recv_message) {
213
215
  GRPC_CALL_COMBINER_START(
@@ -19,6 +19,8 @@
19
19
  #ifndef GRPC_CORE_LIB_TRANSPORT_TRANSPORT_H
20
20
  #define GRPC_CORE_LIB_TRANSPORT_TRANSPORT_H
21
21
 
22
+ #include <grpc/support/port_platform.h>
23
+
22
24
  #include <stddef.h>
23
25
 
24
26
  #include "src/core/lib/channel/context.h"
@@ -96,6 +98,19 @@ void grpc_transport_move_one_way_stats(grpc_transport_one_way_stats* from,
96
98
  void grpc_transport_move_stats(grpc_transport_stream_stats* from,
97
99
  grpc_transport_stream_stats* to);
98
100
 
101
+ // This struct (which is present in both grpc_transport_stream_op_batch
102
+ // and grpc_transport_op_batch) is a convenience to allow filters or
103
+ // transports to schedule a closure related to a particular batch without
104
+ // having to allocate memory. The general pattern is to initialize the
105
+ // closure with the callback arg set to the batch and extra_arg set to
106
+ // whatever state is associated with the handler (e.g., the call element
107
+ // or the transport stream object).
108
+ //
109
+ // Note that this can only be used by the current handler of a given
110
+ // batch on the way down the stack (i.e., whichever filter or transport is
111
+ // currently handling the batch). Once a filter or transport passes control
112
+ // of the batch to the next handler, it cannot depend on the contents of
113
+ // this struct anymore, because the next handler may reuse it.
99
114
  typedef struct {
100
115
  void* extra_arg;
101
116
  grpc_closure closure;
@@ -155,6 +170,11 @@ struct grpc_transport_stream_op_batch_payload {
155
170
  uint32_t send_initial_metadata_flags;
156
171
  // If non-NULL, will be set by the transport to the peer string
157
172
  // (a char*, which the caller takes ownership of).
173
+ // Note: This pointer may be used by the transport after the
174
+ // send_initial_metadata op is completed. It must remain valid
175
+ // until the call is destroyed.
176
+ // Note: When a transport sets this, it must free the previous
177
+ // value, if any.
158
178
  gpr_atm* peer_string;
159
179
  } send_initial_metadata;
160
180
 
@@ -164,15 +184,17 @@ struct grpc_transport_stream_op_batch_payload {
164
184
 
165
185
  struct {
166
186
  // The transport (or a filter that decides to return a failure before
167
- // the op gets down to the transport) is responsible for calling
168
- // grpc_byte_stream_destroy() on this.
187
+ // the op gets down to the transport) takes ownership.
169
188
  // The batch's on_complete will not be called until after the byte
170
- // stream is destroyed.
171
- grpc_byte_stream* send_message;
189
+ // stream is orphaned.
190
+ grpc_core::OrphanablePtr<grpc_core::ByteStream> send_message;
172
191
  } send_message;
173
192
 
174
193
  struct {
175
194
  grpc_metadata_batch* recv_initial_metadata;
195
+ // Flags are used only on the server side. If non-null, will be set to
196
+ // a bitfield of the GRPC_INITIAL_METADATA_xxx macros (e.g., to
197
+ // indicate if the call is idempotent).
176
198
  uint32_t* recv_flags;
177
199
  /** Should be enqueued when initial metadata is ready to be processed. */
178
200
  grpc_closure* recv_initial_metadata_ready;
@@ -182,15 +204,19 @@ struct grpc_transport_stream_op_batch_payload {
182
204
  bool* trailing_metadata_available;
183
205
  // If non-NULL, will be set by the transport to the peer string
184
206
  // (a char*, which the caller takes ownership of).
207
+ // Note: This pointer may be used by the transport after the
208
+ // recv_initial_metadata op is completed. It must remain valid
209
+ // until the call is destroyed.
210
+ // Note: When a transport sets this, it must free the previous
211
+ // value, if any.
185
212
  gpr_atm* peer_string;
186
213
  } recv_initial_metadata;
187
214
 
188
215
  struct {
189
216
  // Will be set by the transport to point to the byte stream
190
217
  // containing a received message.
191
- // The caller is responsible for calling grpc_byte_stream_destroy()
192
- // on this byte stream.
193
- grpc_byte_stream** recv_message;
218
+ // Will be NULL if trailing metadata is received instead of a message.
219
+ grpc_core::OrphanablePtr<grpc_core::ByteStream>* recv_message;
194
220
  /** Should be enqueued when one message is ready to be processed. */
195
221
  grpc_closure* recv_message_ready;
196
222
  } recv_message;