grpc 0.12.0 → 0.13.0.pre1.1

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 (673) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +5707 -22222
  3. data/include/grpc/byte_buffer.h +2 -83
  4. data/include/grpc/census.h +191 -121
  5. data/include/grpc/compression.h +14 -38
  6. data/include/grpc/grpc.h +88 -434
  7. data/include/grpc/grpc_security.h +76 -46
  8. data/include/grpc/grpc_zookeeper.h +1 -1
  9. data/include/grpc/impl/codegen/alloc.h +74 -0
  10. data/include/grpc/impl/codegen/atm.h +92 -0
  11. data/include/grpc/impl/codegen/atm_gcc_atomic.h +72 -0
  12. data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
  13. data/include/grpc/impl/codegen/atm_win32.h +125 -0
  14. data/include/grpc/impl/codegen/byte_buffer.h +121 -0
  15. data/include/grpc/impl/codegen/compression_types.h +73 -0
  16. data/include/grpc/impl/codegen/connectivity_state.h +59 -0
  17. data/include/grpc/impl/codegen/grpc_types.h +373 -0
  18. data/include/grpc/impl/codegen/log.h +110 -0
  19. data/include/grpc/impl/codegen/port_platform.h +362 -0
  20. data/include/grpc/impl/codegen/propagation_bits.h +67 -0
  21. data/include/grpc/impl/codegen/slice.h +182 -0
  22. data/include/grpc/impl/codegen/slice_buffer.h +105 -0
  23. data/include/grpc/impl/codegen/status.h +163 -0
  24. data/include/grpc/impl/codegen/sync.h +316 -0
  25. data/include/grpc/impl/codegen/sync_generic.h +55 -0
  26. data/{src/core/census/context.h → include/grpc/impl/codegen/sync_posix.h} +11 -11
  27. data/include/grpc/impl/codegen/sync_win32.h +49 -0
  28. data/include/grpc/impl/codegen/time.h +132 -0
  29. data/include/grpc/status.h +2 -126
  30. data/include/grpc/support/alloc.h +2 -35
  31. data/include/grpc/support/atm.h +2 -55
  32. data/include/grpc/support/atm_gcc_atomic.h +5 -38
  33. data/include/grpc/support/atm_gcc_sync.h +2 -50
  34. data/include/grpc/support/atm_win32.h +2 -88
  35. data/include/grpc/support/avl.h +7 -7
  36. data/include/grpc/support/cmdline.h +15 -13
  37. data/include/grpc/support/cpu.h +5 -3
  38. data/include/grpc/support/histogram.h +23 -20
  39. data/include/grpc/support/host_port.h +5 -3
  40. data/include/grpc/support/log.h +2 -71
  41. data/include/grpc/support/log_win32.h +2 -2
  42. data/include/grpc/support/port_platform.h +2 -319
  43. data/include/grpc/support/slice.h +2 -145
  44. data/include/grpc/support/slice_buffer.h +2 -65
  45. data/include/grpc/support/string_util.h +3 -3
  46. data/include/grpc/support/subprocess.h +8 -6
  47. data/include/grpc/support/sync.h +2 -278
  48. data/include/grpc/support/sync_generic.h +2 -18
  49. data/include/grpc/support/sync_posix.h +2 -10
  50. data/include/grpc/support/sync_win32.h +2 -12
  51. data/include/grpc/support/thd.h +11 -11
  52. data/include/grpc/support/time.h +2 -91
  53. data/include/grpc/support/tls.h +1 -1
  54. data/include/grpc/support/tls_gcc.h +1 -1
  55. data/include/grpc/support/tls_msvc.h +1 -1
  56. data/include/grpc/support/tls_pthread.h +2 -2
  57. data/src/boringssl/err_data.c +1252 -0
  58. data/src/core/census/context.c +492 -8
  59. data/src/core/census/grpc_filter.c +3 -3
  60. data/src/core/census/initialize.c +4 -7
  61. data/src/core/census/operation.c +2 -2
  62. data/src/core/census/placeholders.c +109 -0
  63. data/src/core/census/rpc_metric_id.h +6 -6
  64. data/src/core/census/tracing.c +1 -1
  65. data/src/core/channel/channel_args.c +4 -3
  66. data/src/core/channel/channel_stack.c +1 -1
  67. data/src/core/channel/client_channel.c +18 -14
  68. data/src/core/channel/client_uchannel.c +3 -3
  69. data/src/core/channel/compress_filter.c +8 -8
  70. data/src/core/channel/http_client_filter.c +2 -2
  71. data/src/core/channel/http_server_filter.c +9 -9
  72. data/src/core/channel/subchannel_call_holder.c +12 -10
  73. data/src/core/client_config/lb_policies/pick_first.c +49 -31
  74. data/src/core/client_config/lb_policies/round_robin.c +7 -7
  75. data/src/core/client_config/resolvers/dns_resolver.c +3 -3
  76. data/src/core/client_config/resolvers/sockaddr_resolver.c +5 -5
  77. data/src/core/client_config/subchannel.c +36 -25
  78. data/src/core/compression/algorithm.c +3 -3
  79. data/src/core/httpcli/format_request.c +1 -1
  80. data/src/core/httpcli/httpcli.c +5 -5
  81. data/src/core/httpcli/httpcli_security_connector.c +2 -3
  82. data/src/core/httpcli/parser.c +7 -7
  83. data/src/core/httpcli/parser.h +1 -1
  84. data/src/core/iomgr/closure.c +7 -7
  85. data/src/core/iomgr/closure.h +6 -5
  86. data/src/core/iomgr/exec_ctx.c +12 -8
  87. data/src/core/iomgr/exec_ctx.h +12 -5
  88. data/src/core/iomgr/executor.c +4 -4
  89. data/src/core/iomgr/executor.h +2 -2
  90. data/src/core/iomgr/fd_posix.c +28 -17
  91. data/src/core/iomgr/fd_posix.h +7 -4
  92. data/src/core/iomgr/iocp_windows.c +6 -8
  93. data/src/core/iomgr/pollset_multipoller_with_epoll.c +70 -5
  94. data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +4 -2
  95. data/src/core/iomgr/pollset_posix.c +15 -15
  96. data/src/core/iomgr/pollset_posix.h +4 -2
  97. data/src/core/iomgr/pollset_windows.c +3 -12
  98. data/src/core/iomgr/resolve_address_posix.c +2 -2
  99. data/src/core/iomgr/resolve_address_windows.c +2 -2
  100. data/src/core/iomgr/sockaddr_utils.c +6 -6
  101. data/src/core/iomgr/sockaddr_win32.h +1 -6
  102. data/src/core/iomgr/tcp_client_posix.c +7 -7
  103. data/src/core/iomgr/tcp_client_windows.c +4 -4
  104. data/src/core/iomgr/tcp_posix.c +14 -8
  105. data/src/core/iomgr/tcp_posix.h +7 -1
  106. data/src/core/iomgr/tcp_server.h +40 -20
  107. data/src/core/iomgr/tcp_server_posix.c +106 -49
  108. data/src/core/iomgr/tcp_server_windows.c +98 -49
  109. data/src/core/iomgr/tcp_windows.c +11 -15
  110. data/src/core/iomgr/timer.c +8 -8
  111. data/src/core/iomgr/timer.h +1 -1
  112. data/src/core/iomgr/timer_heap.c +10 -10
  113. data/src/core/iomgr/timer_heap.h +2 -2
  114. data/src/core/iomgr/udp_server.c +2 -12
  115. data/src/core/iomgr/udp_server.h +1 -9
  116. data/src/core/iomgr/workqueue.h +2 -4
  117. data/src/core/iomgr/workqueue_posix.c +3 -3
  118. data/src/core/json/json_reader.c +11 -12
  119. data/src/core/json/json_reader.h +4 -4
  120. data/src/core/json/json_string.c +19 -19
  121. data/src/core/json/json_writer.c +7 -9
  122. data/src/core/profiling/basic_timers.c +1 -1
  123. data/src/core/security/base64.c +9 -9
  124. data/src/core/security/client_auth_filter.c +4 -4
  125. data/src/core/security/credentials.c +5 -5
  126. data/src/core/security/google_default_credentials.c +3 -3
  127. data/src/core/security/handshake.c +6 -5
  128. data/src/core/security/json_token.c +13 -7
  129. data/src/core/security/jwt_verifier.c +3 -2
  130. data/src/core/security/secure_endpoint.c +16 -16
  131. data/src/core/security/security_connector.c +47 -17
  132. data/src/core/security/security_connector.h +5 -5
  133. data/src/core/security/server_auth_filter.c +3 -3
  134. data/src/core/security/server_secure_chttp2.c +30 -31
  135. data/src/core/statistics/census_interface.h +2 -2
  136. data/src/core/statistics/census_rpc_stats.h +3 -3
  137. data/src/core/support/alloc.c +1 -1
  138. data/src/core/support/cpu_posix.c +2 -2
  139. data/src/core/support/env_linux.c +12 -2
  140. data/src/core/support/env_win32.c +15 -7
  141. data/src/core/support/histogram.c +5 -5
  142. data/src/core/support/log_posix.c +1 -1
  143. data/src/core/support/log_win32.c +4 -3
  144. data/src/core/support/murmur_hash.c +11 -11
  145. data/src/core/support/murmur_hash.h +1 -1
  146. data/src/core/support/slice.c +11 -11
  147. data/src/core/support/slice_buffer.c +6 -6
  148. data/src/core/support/stack_lockfree.c +20 -10
  149. data/src/core/support/string.c +15 -15
  150. data/src/core/support/string.h +5 -5
  151. data/src/core/support/string_win32.c +5 -5
  152. data/src/core/support/subprocess_windows.c +141 -0
  153. data/src/core/support/sync.c +4 -4
  154. data/src/core/support/sync_posix.c +2 -2
  155. data/src/core/support/sync_win32.c +10 -5
  156. data/src/core/support/time.c +29 -29
  157. data/src/core/support/time_posix.c +15 -6
  158. data/src/core/support/time_precise.c +2 -2
  159. data/src/core/support/time_win32.c +18 -9
  160. data/src/core/support/tls_pthread.c +1 -1
  161. data/src/core/support/wrap_memcpy.c +53 -0
  162. data/src/core/surface/alarm.c +83 -0
  163. data/src/core/surface/byte_buffer_reader.c +1 -1
  164. data/src/core/surface/call.c +78 -69
  165. data/src/core/surface/call.h +2 -2
  166. data/src/core/surface/call_test_only.h +2 -2
  167. data/src/core/surface/channel.c +9 -9
  168. data/src/core/surface/channel.h +1 -1
  169. data/src/core/surface/channel_connectivity.c +3 -3
  170. data/src/core/surface/channel_create.c +3 -3
  171. data/src/core/surface/channel_ping.c +2 -2
  172. data/src/core/surface/completion_queue.c +11 -12
  173. data/src/core/surface/completion_queue.h +1 -1
  174. data/src/core/surface/init.c +7 -5
  175. data/src/core/surface/lame_client.c +3 -3
  176. data/src/core/surface/secure_channel_create.c +3 -3
  177. data/src/core/surface/server.c +28 -28
  178. data/src/core/surface/server_chttp2.c +8 -8
  179. data/src/core/surface/server_create.c +1 -4
  180. data/src/core/surface/validate_metadata.c +3 -3
  181. data/src/core/surface/version.c +2 -2
  182. data/src/core/transport/byte_stream.c +8 -6
  183. data/src/core/transport/byte_stream.h +6 -5
  184. data/src/core/transport/chttp2/bin_encoder.c +29 -29
  185. data/src/core/transport/chttp2/frame_data.c +29 -26
  186. data/src/core/transport/chttp2/frame_data.h +6 -6
  187. data/src/core/transport/chttp2/frame_goaway.c +30 -30
  188. data/src/core/transport/chttp2/frame_goaway.h +6 -6
  189. data/src/core/transport/chttp2/frame_ping.c +6 -6
  190. data/src/core/transport/chttp2/frame_ping.h +5 -5
  191. data/src/core/transport/chttp2/frame_rst_stream.c +18 -19
  192. data/src/core/transport/chttp2/frame_rst_stream.h +4 -4
  193. data/src/core/transport/chttp2/frame_settings.c +30 -30
  194. data/src/core/transport/chttp2/frame_settings.h +13 -13
  195. data/src/core/transport/chttp2/frame_window_update.c +17 -18
  196. data/src/core/transport/chttp2/frame_window_update.h +5 -7
  197. data/src/core/transport/chttp2/hpack_encoder.c +69 -73
  198. data/src/core/transport/chttp2/hpack_encoder.h +16 -16
  199. data/src/core/transport/chttp2/hpack_parser.c +167 -167
  200. data/src/core/transport/chttp2/hpack_parser.h +16 -16
  201. data/src/core/transport/chttp2/hpack_table.c +13 -13
  202. data/src/core/transport/chttp2/hpack_table.h +11 -11
  203. data/src/core/transport/chttp2/internal.h +97 -86
  204. data/src/core/transport/chttp2/parsing.c +25 -25
  205. data/src/core/transport/chttp2/stream_lists.c +26 -3
  206. data/src/core/transport/chttp2/stream_map.c +13 -14
  207. data/src/core/transport/chttp2/stream_map.h +6 -7
  208. data/src/core/transport/chttp2/timeout_encoding.c +19 -16
  209. data/src/core/transport/chttp2/varint.c +8 -9
  210. data/src/core/transport/chttp2/varint.h +7 -8
  211. data/src/core/transport/chttp2/writing.c +26 -23
  212. data/src/core/transport/chttp2_transport.c +133 -92
  213. data/src/core/transport/connectivity_state.c +6 -6
  214. data/src/core/transport/metadata.c +18 -18
  215. data/src/core/transport/metadata.h +5 -5
  216. data/src/core/transport/static_metadata.c +15 -16
  217. data/src/core/transport/static_metadata.h +5 -5
  218. data/src/core/transport/transport.c +5 -5
  219. data/src/core/transport/transport.h +14 -1
  220. data/src/core/tsi/fake_transport_security.c +7 -7
  221. data/src/core/tsi/ssl_transport_security.c +6 -4
  222. data/src/core/tsi/ssl_types.h +55 -0
  223. data/src/ruby/ext/grpc/extconf.rb +51 -14
  224. data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
  225. data/src/ruby/ext/grpc/rb_call.c +6 -3
  226. data/src/ruby/ext/grpc/rb_call_credentials.c +4 -0
  227. data/src/ruby/ext/grpc/rb_channel.c +4 -2
  228. data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
  229. data/src/ruby/ext/grpc/rb_channel_credentials.c +3 -1
  230. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -1
  231. data/src/ruby/ext/grpc/rb_event_thread.c +5 -0
  232. data/src/ruby/ext/grpc/rb_grpc.c +11 -3
  233. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +560 -0
  234. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +843 -0
  235. data/src/ruby/ext/grpc/rb_loader.c +72 -0
  236. data/src/ruby/ext/grpc/rb_loader.h +40 -0
  237. data/src/ruby/ext/grpc/rb_server.c +3 -1
  238. data/src/ruby/ext/grpc/rb_server_credentials.c +4 -2
  239. data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
  240. data/src/ruby/lib/grpc/generic/rpc_desc.rb +1 -1
  241. data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
  242. data/src/ruby/lib/grpc/grpc.rb +34 -0
  243. data/src/ruby/lib/grpc/version.rb +1 -1
  244. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  245. data/third_party/boringssl/crypto/aes/aes.c +1142 -0
  246. data/third_party/boringssl/crypto/aes/internal.h +87 -0
  247. data/third_party/boringssl/crypto/aes/mode_wrappers.c +108 -0
  248. data/third_party/boringssl/crypto/asn1/a_bitstr.c +255 -0
  249. data/third_party/boringssl/crypto/asn1/a_bool.c +112 -0
  250. data/third_party/boringssl/crypto/asn1/a_bytes.c +317 -0
  251. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +286 -0
  252. data/third_party/boringssl/crypto/asn1/a_dup.c +103 -0
  253. data/third_party/boringssl/crypto/asn1/a_enum.c +183 -0
  254. data/third_party/boringssl/crypto/asn1/a_gentm.c +255 -0
  255. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +154 -0
  256. data/third_party/boringssl/crypto/asn1/a_int.c +456 -0
  257. data/third_party/boringssl/crypto/asn1/a_mbstr.c +390 -0
  258. data/third_party/boringssl/crypto/asn1/a_object.c +412 -0
  259. data/third_party/boringssl/crypto/asn1/a_octet.c +70 -0
  260. data/third_party/boringssl/crypto/asn1/a_print.c +119 -0
  261. data/third_party/boringssl/crypto/asn1/a_strnid.c +286 -0
  262. data/third_party/boringssl/crypto/asn1/a_time.c +221 -0
  263. data/third_party/boringssl/crypto/asn1/a_type.c +160 -0
  264. data/third_party/boringssl/crypto/asn1/a_utctm.c +342 -0
  265. data/third_party/boringssl/crypto/asn1/a_utf8.c +210 -0
  266. data/third_party/boringssl/crypto/asn1/asn1_lib.c +510 -0
  267. data/third_party/boringssl/crypto/asn1/asn1_locl.h +73 -0
  268. data/third_party/boringssl/crypto/asn1/asn1_par.c +444 -0
  269. data/third_party/boringssl/crypto/asn1/asn_pack.c +104 -0
  270. data/third_party/boringssl/crypto/asn1/bio_asn1.c +496 -0
  271. data/third_party/boringssl/crypto/asn1/bio_ndef.c +254 -0
  272. data/third_party/boringssl/crypto/asn1/f_enum.c +206 -0
  273. data/third_party/boringssl/crypto/asn1/f_int.c +210 -0
  274. data/third_party/boringssl/crypto/asn1/f_string.c +204 -0
  275. data/third_party/boringssl/crypto/asn1/t_bitst.c +102 -0
  276. data/third_party/boringssl/crypto/asn1/t_pkey.c +112 -0
  277. data/third_party/boringssl/crypto/asn1/tasn_dec.c +1342 -0
  278. data/third_party/boringssl/crypto/asn1/tasn_enc.c +695 -0
  279. data/third_party/boringssl/crypto/asn1/tasn_fre.c +264 -0
  280. data/third_party/boringssl/crypto/asn1/tasn_new.c +398 -0
  281. data/third_party/boringssl/crypto/asn1/tasn_prn.c +642 -0
  282. data/third_party/boringssl/crypto/asn1/tasn_typ.c +137 -0
  283. data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
  284. data/third_party/boringssl/crypto/asn1/x_bignum.c +143 -0
  285. data/third_party/boringssl/crypto/asn1/x_long.c +182 -0
  286. data/third_party/boringssl/crypto/base64/base64.c +478 -0
  287. data/third_party/boringssl/crypto/bio/bio.c +608 -0
  288. data/third_party/boringssl/crypto/bio/bio_mem.c +327 -0
  289. data/third_party/boringssl/crypto/bio/buffer.c +496 -0
  290. data/third_party/boringssl/crypto/bio/connect.c +544 -0
  291. data/third_party/boringssl/crypto/bio/fd.c +270 -0
  292. data/third_party/boringssl/crypto/bio/file.c +349 -0
  293. data/third_party/boringssl/crypto/bio/hexdump.c +192 -0
  294. data/third_party/boringssl/crypto/bio/internal.h +108 -0
  295. data/third_party/boringssl/crypto/bio/pair.c +803 -0
  296. data/third_party/boringssl/crypto/bio/printf.c +119 -0
  297. data/third_party/boringssl/crypto/bio/socket.c +195 -0
  298. data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
  299. data/third_party/boringssl/crypto/bn/add.c +377 -0
  300. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +599 -0
  301. data/third_party/boringssl/crypto/bn/bn.c +341 -0
  302. data/third_party/boringssl/crypto/bn/bn_asn1.c +93 -0
  303. data/third_party/boringssl/crypto/bn/cmp.c +200 -0
  304. data/third_party/boringssl/crypto/bn/convert.c +597 -0
  305. data/third_party/boringssl/crypto/bn/ctx.c +311 -0
  306. data/third_party/boringssl/crypto/bn/div.c +625 -0
  307. data/third_party/boringssl/crypto/bn/exponentiation.c +1544 -0
  308. data/third_party/boringssl/crypto/bn/gcd.c +711 -0
  309. data/third_party/boringssl/crypto/bn/generic.c +1019 -0
  310. data/third_party/boringssl/crypto/bn/internal.h +294 -0
  311. data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
  312. data/third_party/boringssl/crypto/bn/montgomery.c +561 -0
  313. data/third_party/boringssl/crypto/bn/mul.c +888 -0
  314. data/third_party/boringssl/crypto/bn/prime.c +845 -0
  315. data/third_party/boringssl/crypto/bn/random.c +326 -0
  316. data/third_party/boringssl/crypto/bn/rsaz_exp.c +326 -0
  317. data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
  318. data/third_party/boringssl/crypto/bn/shift.c +299 -0
  319. data/third_party/boringssl/crypto/bn/sqrt.c +505 -0
  320. data/third_party/boringssl/crypto/buf/buf.c +235 -0
  321. data/third_party/boringssl/crypto/bytestring/ber.c +221 -0
  322. data/third_party/boringssl/crypto/bytestring/cbb.c +411 -0
  323. data/third_party/boringssl/crypto/bytestring/cbs.c +415 -0
  324. data/third_party/boringssl/crypto/bytestring/internal.h +46 -0
  325. data/third_party/boringssl/crypto/chacha/chacha_generic.c +140 -0
  326. data/third_party/boringssl/crypto/chacha/chacha_vec.c +323 -0
  327. data/third_party/boringssl/crypto/cipher/aead.c +167 -0
  328. data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
  329. data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
  330. data/third_party/boringssl/crypto/cipher/e_aes.c +1767 -0
  331. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +311 -0
  332. data/third_party/boringssl/crypto/cipher/e_des.c +207 -0
  333. data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
  334. data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
  335. data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
  336. data/third_party/boringssl/crypto/cipher/e_ssl3.c +463 -0
  337. data/third_party/boringssl/crypto/cipher/e_tls.c +673 -0
  338. data/third_party/boringssl/crypto/cipher/internal.h +164 -0
  339. data/third_party/boringssl/crypto/cipher/tls_cbc.c +495 -0
  340. data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
  341. data/third_party/boringssl/crypto/conf/conf.c +778 -0
  342. data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
  343. data/third_party/boringssl/crypto/conf/internal.h +31 -0
  344. data/third_party/boringssl/crypto/cpu-arm.c +199 -0
  345. data/third_party/boringssl/crypto/cpu-intel.c +261 -0
  346. data/third_party/boringssl/crypto/crypto.c +140 -0
  347. data/third_party/boringssl/crypto/curve25519/curve25519.c +4897 -0
  348. data/third_party/boringssl/crypto/des/des.c +771 -0
  349. data/third_party/boringssl/crypto/des/internal.h +212 -0
  350. data/third_party/boringssl/crypto/dh/check.c +180 -0
  351. data/third_party/boringssl/crypto/dh/dh.c +463 -0
  352. data/third_party/boringssl/crypto/dh/dh_asn1.c +84 -0
  353. data/third_party/boringssl/crypto/dh/internal.h +80 -0
  354. data/third_party/boringssl/crypto/dh/params.c +301 -0
  355. data/third_party/boringssl/crypto/digest/digest.c +248 -0
  356. data/third_party/boringssl/crypto/digest/digests.c +321 -0
  357. data/third_party/boringssl/crypto/digest/internal.h +112 -0
  358. data/third_party/boringssl/crypto/digest/md32_common.h +322 -0
  359. data/third_party/boringssl/crypto/directory.h +66 -0
  360. data/third_party/boringssl/crypto/directory_posix.c +108 -0
  361. data/third_party/boringssl/crypto/directory_win.c +144 -0
  362. data/third_party/boringssl/crypto/dsa/dsa.c +908 -0
  363. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +150 -0
  364. data/third_party/boringssl/crypto/dsa/internal.h +78 -0
  365. data/third_party/boringssl/crypto/ec/ec.c +889 -0
  366. data/third_party/boringssl/crypto/ec/ec_asn1.c +586 -0
  367. data/third_party/boringssl/crypto/ec/ec_key.c +482 -0
  368. data/third_party/boringssl/crypto/ec/ec_montgomery.c +280 -0
  369. data/third_party/boringssl/crypto/ec/internal.h +318 -0
  370. data/third_party/boringssl/crypto/ec/oct.c +416 -0
  371. data/third_party/boringssl/crypto/ec/p224-64.c +1305 -0
  372. data/third_party/boringssl/crypto/ec/p256-64.c +1878 -0
  373. data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9548 -0
  374. data/third_party/boringssl/crypto/ec/p256-x86_64.c +596 -0
  375. data/third_party/boringssl/crypto/ec/simple.c +1313 -0
  376. data/third_party/boringssl/crypto/ec/util-64.c +183 -0
  377. data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
  378. data/third_party/boringssl/crypto/ecdh/ecdh.c +153 -0
  379. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +496 -0
  380. data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +240 -0
  381. data/third_party/boringssl/crypto/engine/engine.c +96 -0
  382. data/third_party/boringssl/crypto/err/err.c +756 -0
  383. data/third_party/boringssl/crypto/evp/algorithm.c +153 -0
  384. data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
  385. data/third_party/boringssl/crypto/evp/evp.c +411 -0
  386. data/third_party/boringssl/crypto/evp/evp_asn1.c +179 -0
  387. data/third_party/boringssl/crypto/evp/evp_ctx.c +477 -0
  388. data/third_party/boringssl/crypto/evp/internal.h +278 -0
  389. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +588 -0
  390. data/third_party/boringssl/crypto/evp/p_ec.c +283 -0
  391. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +562 -0
  392. data/third_party/boringssl/crypto/evp/p_rsa.c +596 -0
  393. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +737 -0
  394. data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
  395. data/third_party/boringssl/crypto/evp/sign.c +151 -0
  396. data/third_party/boringssl/crypto/ex_data.c +294 -0
  397. data/third_party/boringssl/crypto/hkdf/hkdf.c +89 -0
  398. data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
  399. data/third_party/boringssl/crypto/internal.h +532 -0
  400. data/third_party/boringssl/crypto/lhash/lhash.c +346 -0
  401. data/third_party/boringssl/crypto/md4/md4.c +225 -0
  402. data/third_party/boringssl/crypto/md5/md5.c +275 -0
  403. data/third_party/boringssl/crypto/mem.c +200 -0
  404. data/third_party/boringssl/crypto/modes/cbc.c +216 -0
  405. data/third_party/boringssl/crypto/modes/cfb.c +231 -0
  406. data/third_party/boringssl/crypto/modes/ctr.c +226 -0
  407. data/third_party/boringssl/crypto/modes/gcm.c +1252 -0
  408. data/third_party/boringssl/crypto/modes/internal.h +370 -0
  409. data/third_party/boringssl/crypto/modes/ofb.c +108 -0
  410. data/third_party/boringssl/crypto/obj/obj.c +664 -0
  411. data/third_party/boringssl/crypto/obj/obj_dat.h +5257 -0
  412. data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
  413. data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
  414. data/third_party/boringssl/crypto/pem/pem_all.c +281 -0
  415. data/third_party/boringssl/crypto/pem/pem_info.c +404 -0
  416. data/third_party/boringssl/crypto/pem/pem_lib.c +835 -0
  417. data/third_party/boringssl/crypto/pem/pem_oth.c +89 -0
  418. data/third_party/boringssl/crypto/pem/pem_pk8.c +244 -0
  419. data/third_party/boringssl/crypto/pem/pem_pkey.c +312 -0
  420. data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
  421. data/third_party/boringssl/crypto/pem/pem_xaux.c +66 -0
  422. data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
  423. data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +150 -0
  424. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +440 -0
  425. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
  426. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1217 -0
  427. data/third_party/boringssl/crypto/poly1305/poly1305.c +331 -0
  428. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +301 -0
  429. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +892 -0
  430. data/third_party/boringssl/crypto/rand/internal.h +32 -0
  431. data/third_party/boringssl/crypto/rand/rand.c +239 -0
  432. data/third_party/boringssl/crypto/rand/urandom.c +223 -0
  433. data/third_party/boringssl/crypto/rand/windows.c +56 -0
  434. data/third_party/boringssl/crypto/rc4/rc4.c +283 -0
  435. data/third_party/boringssl/crypto/refcount_c11.c +67 -0
  436. data/third_party/boringssl/crypto/refcount_lock.c +53 -0
  437. data/third_party/boringssl/crypto/rsa/blinding.c +462 -0
  438. data/third_party/boringssl/crypto/rsa/internal.h +164 -0
  439. data/third_party/boringssl/crypto/rsa/padding.c +711 -0
  440. data/third_party/boringssl/crypto/rsa/rsa.c +808 -0
  441. data/third_party/boringssl/crypto/rsa/rsa_asn1.c +473 -0
  442. data/third_party/boringssl/crypto/rsa/rsa_impl.c +1138 -0
  443. data/third_party/boringssl/crypto/sha/sha1.c +337 -0
  444. data/third_party/boringssl/crypto/sha/sha256.c +327 -0
  445. data/third_party/boringssl/crypto/sha/sha512.c +607 -0
  446. data/third_party/boringssl/crypto/stack/stack.c +386 -0
  447. data/third_party/boringssl/crypto/test/scoped_types.h +137 -0
  448. data/third_party/boringssl/crypto/test/test_util.h +35 -0
  449. data/third_party/boringssl/crypto/thread.c +101 -0
  450. data/third_party/boringssl/crypto/thread_none.c +55 -0
  451. data/third_party/boringssl/crypto/thread_pthread.c +167 -0
  452. data/third_party/boringssl/crypto/thread_win.c +282 -0
  453. data/third_party/boringssl/crypto/time_support.c +212 -0
  454. data/third_party/boringssl/crypto/x509/a_digest.c +97 -0
  455. data/third_party/boringssl/crypto/x509/a_sign.c +136 -0
  456. data/third_party/boringssl/crypto/x509/a_strex.c +564 -0
  457. data/third_party/boringssl/crypto/x509/a_verify.c +133 -0
  458. data/third_party/boringssl/crypto/x509/asn1_gen.c +873 -0
  459. data/third_party/boringssl/crypto/x509/by_dir.c +491 -0
  460. data/third_party/boringssl/crypto/x509/by_file.c +295 -0
  461. data/third_party/boringssl/crypto/x509/charmap.h +15 -0
  462. data/third_party/boringssl/crypto/x509/i2d_pr.c +84 -0
  463. data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
  464. data/third_party/boringssl/crypto/x509/t_crl.c +129 -0
  465. data/third_party/boringssl/crypto/x509/t_req.c +246 -0
  466. data/third_party/boringssl/crypto/x509/t_x509.c +500 -0
  467. data/third_party/boringssl/crypto/x509/t_x509a.c +109 -0
  468. data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
  469. data/third_party/boringssl/crypto/x509/x509.c +152 -0
  470. data/third_party/boringssl/crypto/x509/x509_att.c +353 -0
  471. data/third_party/boringssl/crypto/x509/x509_cmp.c +490 -0
  472. data/third_party/boringssl/crypto/x509/x509_d2.c +105 -0
  473. data/third_party/boringssl/crypto/x509/x509_def.c +88 -0
  474. data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
  475. data/third_party/boringssl/crypto/x509/x509_lu.c +738 -0
  476. data/third_party/boringssl/crypto/x509/x509_obj.c +191 -0
  477. data/third_party/boringssl/crypto/x509/x509_r2x.c +113 -0
  478. data/third_party/boringssl/crypto/x509/x509_req.c +315 -0
  479. data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
  480. data/third_party/boringssl/crypto/x509/x509_trs.c +304 -0
  481. data/third_party/boringssl/crypto/x509/x509_txt.c +209 -0
  482. data/third_party/boringssl/crypto/x509/x509_v3.c +271 -0
  483. data/third_party/boringssl/crypto/x509/x509_vfy.c +2456 -0
  484. data/third_party/boringssl/crypto/x509/x509_vpm.c +672 -0
  485. data/third_party/boringssl/crypto/x509/x509cset.c +172 -0
  486. data/third_party/boringssl/crypto/x509/x509name.c +381 -0
  487. data/third_party/boringssl/crypto/x509/x509rset.c +80 -0
  488. data/third_party/boringssl/crypto/x509/x509spki.c +135 -0
  489. data/third_party/boringssl/crypto/x509/x509type.c +128 -0
  490. data/third_party/boringssl/crypto/x509/x_algor.c +154 -0
  491. data/third_party/boringssl/crypto/x509/x_all.c +547 -0
  492. data/third_party/boringssl/crypto/x509/x_attrib.c +117 -0
  493. data/third_party/boringssl/crypto/x509/x_crl.c +560 -0
  494. data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
  495. data/third_party/boringssl/crypto/x509/x_info.c +95 -0
  496. data/third_party/boringssl/crypto/x509/x_name.c +538 -0
  497. data/third_party/boringssl/crypto/x509/x_pkey.c +100 -0
  498. data/third_party/boringssl/crypto/x509/x_pubkey.c +384 -0
  499. data/third_party/boringssl/crypto/x509/x_req.c +112 -0
  500. data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
  501. data/third_party/boringssl/crypto/x509/x_spki.c +78 -0
  502. data/third_party/boringssl/crypto/x509/x_val.c +69 -0
  503. data/third_party/boringssl/crypto/x509/x_x509.c +227 -0
  504. data/third_party/boringssl/crypto/x509/x_x509a.c +197 -0
  505. data/third_party/boringssl/crypto/x509v3/ext_dat.h +129 -0
  506. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +299 -0
  507. data/third_party/boringssl/crypto/x509v3/pcy_data.c +137 -0
  508. data/third_party/boringssl/crypto/x509v3/pcy_int.h +212 -0
  509. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +165 -0
  510. data/third_party/boringssl/crypto/x509v3/pcy_map.c +133 -0
  511. data/third_party/boringssl/crypto/x509v3/pcy_node.c +197 -0
  512. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +876 -0
  513. data/third_party/boringssl/crypto/x509v3/v3_akey.c +212 -0
  514. data/third_party/boringssl/crypto/x509v3/v3_akeya.c +71 -0
  515. data/third_party/boringssl/crypto/x509v3/v3_alt.c +622 -0
  516. data/third_party/boringssl/crypto/x509v3/v3_bcons.c +126 -0
  517. data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
  518. data/third_party/boringssl/crypto/x509v3/v3_conf.c +459 -0
  519. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +475 -0
  520. data/third_party/boringssl/crypto/x509v3/v3_crld.c +616 -0
  521. data/third_party/boringssl/crypto/x509v3/v3_enum.c +98 -0
  522. data/third_party/boringssl/crypto/x509v3/v3_extku.c +145 -0
  523. data/third_party/boringssl/crypto/x509v3/v3_genn.c +252 -0
  524. data/third_party/boringssl/crypto/x509v3/v3_ia5.c +117 -0
  525. data/third_party/boringssl/crypto/x509v3/v3_info.c +200 -0
  526. data/third_party/boringssl/crypto/x509v3/v3_int.c +87 -0
  527. data/third_party/boringssl/crypto/x509v3/v3_lib.c +335 -0
  528. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +510 -0
  529. data/third_party/boringssl/crypto/x509v3/v3_pci.c +335 -0
  530. data/third_party/boringssl/crypto/x509v3/v3_pcia.c +56 -0
  531. data/third_party/boringssl/crypto/x509v3/v3_pcons.c +142 -0
  532. data/third_party/boringssl/crypto/x509v3/v3_pku.c +109 -0
  533. data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +156 -0
  534. data/third_party/boringssl/crypto/x509v3/v3_prn.c +207 -0
  535. data/third_party/boringssl/crypto/x509v3/v3_purp.c +805 -0
  536. data/third_party/boringssl/crypto/x509v3/v3_skey.c +148 -0
  537. data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +266 -0
  538. data/third_party/boringssl/crypto/x509v3/v3_utl.c +1322 -0
  539. data/third_party/boringssl/include/openssl/aead.h +346 -0
  540. data/third_party/boringssl/include/openssl/aes.h +158 -0
  541. data/third_party/boringssl/include/openssl/arm_arch.h +127 -0
  542. data/third_party/boringssl/include/openssl/asn1.h +1168 -0
  543. data/third_party/boringssl/include/openssl/asn1_mac.h +75 -0
  544. data/third_party/boringssl/include/openssl/asn1t.h +906 -0
  545. data/third_party/boringssl/include/openssl/base.h +261 -0
  546. data/third_party/boringssl/include/openssl/base64.h +184 -0
  547. data/third_party/boringssl/include/openssl/bio.h +902 -0
  548. data/third_party/boringssl/include/openssl/blowfish.h +93 -0
  549. data/third_party/boringssl/include/openssl/bn.h +885 -0
  550. data/third_party/boringssl/include/openssl/buf.h +118 -0
  551. data/third_party/boringssl/include/openssl/buffer.h +18 -0
  552. data/third_party/boringssl/include/openssl/bytestring.h +360 -0
  553. data/third_party/boringssl/include/openssl/cast.h +96 -0
  554. data/third_party/boringssl/include/openssl/chacha.h +37 -0
  555. data/third_party/boringssl/include/openssl/cipher.h +571 -0
  556. data/third_party/boringssl/include/openssl/cmac.h +76 -0
  557. data/third_party/boringssl/include/openssl/conf.h +145 -0
  558. data/third_party/boringssl/include/openssl/cpu.h +184 -0
  559. data/third_party/boringssl/include/openssl/crypto.h +68 -0
  560. data/third_party/boringssl/include/openssl/curve25519.h +88 -0
  561. data/third_party/boringssl/include/openssl/des.h +177 -0
  562. data/third_party/boringssl/include/openssl/dh.h +238 -0
  563. data/third_party/boringssl/include/openssl/digest.h +258 -0
  564. data/third_party/boringssl/include/openssl/dsa.h +343 -0
  565. data/third_party/boringssl/include/openssl/dtls1.h +16 -0
  566. data/third_party/boringssl/include/openssl/ec.h +355 -0
  567. data/third_party/boringssl/include/openssl/ec_key.h +280 -0
  568. data/third_party/boringssl/include/openssl/ecdh.h +102 -0
  569. data/third_party/boringssl/include/openssl/ecdsa.h +206 -0
  570. data/third_party/boringssl/include/openssl/engine.h +98 -0
  571. data/third_party/boringssl/include/openssl/err.h +487 -0
  572. data/third_party/boringssl/include/openssl/evp.h +750 -0
  573. data/third_party/boringssl/include/openssl/ex_data.h +213 -0
  574. data/third_party/boringssl/include/openssl/hkdf.h +44 -0
  575. data/third_party/boringssl/include/openssl/hmac.h +160 -0
  576. data/third_party/boringssl/include/openssl/lhash.h +192 -0
  577. data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
  578. data/third_party/boringssl/include/openssl/md4.h +102 -0
  579. data/third_party/boringssl/include/openssl/md5.h +107 -0
  580. data/third_party/boringssl/include/openssl/mem.h +140 -0
  581. data/third_party/boringssl/include/openssl/obj.h +198 -0
  582. data/third_party/boringssl/include/openssl/obj_mac.h +4140 -0
  583. data/third_party/boringssl/include/openssl/objects.h +18 -0
  584. data/third_party/boringssl/include/openssl/opensslfeatures.h +60 -0
  585. data/third_party/boringssl/include/openssl/opensslv.h +18 -0
  586. data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  587. data/third_party/boringssl/include/openssl/pem.h +521 -0
  588. data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  589. data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
  590. data/third_party/boringssl/include/openssl/pkcs8.h +220 -0
  591. data/third_party/boringssl/include/openssl/poly1305.h +51 -0
  592. data/third_party/boringssl/include/openssl/pqueue.h +146 -0
  593. data/third_party/boringssl/include/openssl/rand.h +113 -0
  594. data/third_party/boringssl/include/openssl/rc4.h +90 -0
  595. data/third_party/boringssl/include/openssl/rsa.h +637 -0
  596. data/third_party/boringssl/include/openssl/safestack.h +16 -0
  597. data/third_party/boringssl/include/openssl/sha.h +256 -0
  598. data/third_party/boringssl/include/openssl/srtp.h +18 -0
  599. data/third_party/boringssl/include/openssl/ssl.h +4466 -0
  600. data/third_party/boringssl/include/openssl/ssl3.h +441 -0
  601. data/third_party/boringssl/include/openssl/stack.h +298 -0
  602. data/third_party/boringssl/include/openssl/stack_macros.h +4190 -0
  603. data/third_party/boringssl/include/openssl/thread.h +173 -0
  604. data/third_party/boringssl/include/openssl/time_support.h +90 -0
  605. data/third_party/boringssl/include/openssl/tls1.h +653 -0
  606. data/third_party/boringssl/include/openssl/type_check.h +91 -0
  607. data/third_party/boringssl/include/openssl/x509.h +1258 -0
  608. data/third_party/boringssl/include/openssl/x509_vfy.h +611 -0
  609. data/third_party/boringssl/include/openssl/x509v3.h +798 -0
  610. data/third_party/boringssl/ssl/custom_extensions.c +257 -0
  611. data/third_party/boringssl/ssl/d1_both.c +880 -0
  612. data/third_party/boringssl/ssl/d1_clnt.c +566 -0
  613. data/third_party/boringssl/ssl/d1_lib.c +340 -0
  614. data/third_party/boringssl/ssl/d1_meth.c +130 -0
  615. data/third_party/boringssl/ssl/d1_pkt.c +578 -0
  616. data/third_party/boringssl/ssl/d1_srtp.c +234 -0
  617. data/third_party/boringssl/ssl/d1_srvr.c +485 -0
  618. data/third_party/boringssl/ssl/dtls_record.c +308 -0
  619. data/third_party/boringssl/ssl/internal.h +1276 -0
  620. data/third_party/boringssl/ssl/pqueue/pqueue.c +197 -0
  621. data/third_party/boringssl/ssl/s3_both.c +571 -0
  622. data/third_party/boringssl/ssl/s3_clnt.c +2241 -0
  623. data/third_party/boringssl/ssl/s3_enc.c +494 -0
  624. data/third_party/boringssl/ssl/s3_lib.c +587 -0
  625. data/third_party/boringssl/ssl/s3_meth.c +166 -0
  626. data/third_party/boringssl/ssl/s3_pkt.c +732 -0
  627. data/third_party/boringssl/ssl/s3_srvr.c +2536 -0
  628. data/third_party/boringssl/ssl/ssl_aead_ctx.c +300 -0
  629. data/third_party/boringssl/ssl/ssl_asn1.c +718 -0
  630. data/third_party/boringssl/ssl/ssl_buffer.c +319 -0
  631. data/third_party/boringssl/ssl/ssl_cert.c +539 -0
  632. data/third_party/boringssl/ssl/ssl_cipher.c +2003 -0
  633. data/third_party/boringssl/ssl/ssl_file.c +633 -0
  634. data/third_party/boringssl/ssl/ssl_lib.c +2653 -0
  635. data/third_party/boringssl/ssl/ssl_rsa.c +423 -0
  636. data/third_party/boringssl/ssl/ssl_session.c +764 -0
  637. data/third_party/boringssl/ssl/ssl_stat.c +591 -0
  638. data/third_party/boringssl/ssl/t1_enc.c +708 -0
  639. data/third_party/boringssl/ssl/t1_lib.c +2905 -0
  640. data/third_party/boringssl/ssl/test/async_bio.h +45 -0
  641. data/third_party/boringssl/ssl/test/packeted_bio.h +44 -0
  642. data/third_party/boringssl/ssl/test/scoped_types.h +28 -0
  643. data/third_party/boringssl/ssl/test/test_config.h +108 -0
  644. data/third_party/boringssl/ssl/tls_record.c +342 -0
  645. data/third_party/zlib/adler32.c +179 -0
  646. data/third_party/zlib/compress.c +80 -0
  647. data/third_party/zlib/crc32.c +425 -0
  648. data/third_party/zlib/crc32.h +441 -0
  649. data/third_party/zlib/deflate.c +1967 -0
  650. data/third_party/zlib/deflate.h +346 -0
  651. data/third_party/zlib/gzclose.c +25 -0
  652. data/third_party/zlib/gzguts.h +209 -0
  653. data/third_party/zlib/gzlib.c +634 -0
  654. data/third_party/zlib/gzread.c +594 -0
  655. data/third_party/zlib/gzwrite.c +577 -0
  656. data/third_party/zlib/infback.c +640 -0
  657. data/third_party/zlib/inffast.c +340 -0
  658. data/third_party/zlib/inffast.h +11 -0
  659. data/third_party/zlib/inffixed.h +94 -0
  660. data/third_party/zlib/inflate.c +1512 -0
  661. data/third_party/zlib/inflate.h +122 -0
  662. data/third_party/zlib/inftrees.c +306 -0
  663. data/third_party/zlib/inftrees.h +62 -0
  664. data/third_party/zlib/trees.c +1226 -0
  665. data/third_party/zlib/trees.h +128 -0
  666. data/third_party/zlib/uncompr.c +59 -0
  667. data/third_party/zlib/zconf.h +511 -0
  668. data/third_party/zlib/zlib.h +1768 -0
  669. data/third_party/zlib/zutil.c +324 -0
  670. data/third_party/zlib/zutil.h +253 -0
  671. metadata +492 -25
  672. data/Rakefile +0 -63
  673. data/src/ruby/lib/grpc/grpc.so +0 -0
@@ -45,13 +45,13 @@
45
45
  typedef struct grpc_chttp2_hpack_parser grpc_chttp2_hpack_parser;
46
46
 
47
47
  typedef int (*grpc_chttp2_hpack_parser_state)(grpc_chttp2_hpack_parser *p,
48
- const gpr_uint8 *beg,
49
- const gpr_uint8 *end);
48
+ const uint8_t *beg,
49
+ const uint8_t *end);
50
50
 
51
51
  typedef struct {
52
52
  char *str;
53
- gpr_uint32 length;
54
- gpr_uint32 capacity;
53
+ uint32_t length;
54
+ uint32_t capacity;
55
55
  } grpc_chttp2_hpack_parser_string;
56
56
 
57
57
  struct grpc_chttp2_hpack_parser {
@@ -67,31 +67,31 @@ struct grpc_chttp2_hpack_parser {
67
67
  grpc_chttp2_hpack_parser_state after_prioritization;
68
68
  /* the value we're currently parsing */
69
69
  union {
70
- gpr_uint32 *value;
70
+ uint32_t *value;
71
71
  grpc_chttp2_hpack_parser_string *str;
72
72
  } parsing;
73
73
  /* string parameters for each chunk */
74
74
  grpc_chttp2_hpack_parser_string key;
75
75
  grpc_chttp2_hpack_parser_string value;
76
76
  /* parsed index */
77
- gpr_uint32 index;
77
+ uint32_t index;
78
78
  /* length of source bytes for the currently parsing string */
79
- gpr_uint32 strlen;
79
+ uint32_t strlen;
80
80
  /* number of source bytes read for the currently parsing string */
81
- gpr_uint32 strgot;
81
+ uint32_t strgot;
82
82
  /* huffman decoding state */
83
- gpr_int16 huff_state;
83
+ int16_t huff_state;
84
84
  /* is the string being decoded binary? */
85
- gpr_uint8 binary;
85
+ uint8_t binary;
86
86
  /* is the current string huffman encoded? */
87
- gpr_uint8 huff;
87
+ uint8_t huff;
88
88
  /* is a dynamic table update allowed? */
89
- gpr_uint8 dynamic_table_update_allowed;
89
+ uint8_t dynamic_table_update_allowed;
90
90
  /* set by higher layers, used by grpc_chttp2_header_parser_parse to signal
91
91
  it should append a metadata boundary at the end of frame */
92
- gpr_uint8 is_boundary;
93
- gpr_uint8 is_eof;
94
- gpr_uint32 base64_buffer;
92
+ uint8_t is_boundary;
93
+ uint8_t is_eof;
94
+ uint32_t base64_buffer;
95
95
 
96
96
  /* hpack table */
97
97
  grpc_chttp2_hptbl table;
@@ -104,7 +104,7 @@ void grpc_chttp2_hpack_parser_set_has_priority(grpc_chttp2_hpack_parser *p);
104
104
 
105
105
  /* returns 1 on success, 0 on error */
106
106
  int grpc_chttp2_hpack_parser_parse(grpc_chttp2_hpack_parser *p,
107
- const gpr_uint8 *beg, const gpr_uint8 *end);
107
+ const uint8_t *beg, const uint8_t *end);
108
108
 
109
109
  /* wraps grpc_chttp2_hpack_parser_parse to provide a frame level parser for
110
110
  the transport */
@@ -171,7 +171,7 @@ static struct {
171
171
  {"www-authenticate", ""},
172
172
  };
173
173
 
174
- static gpr_uint32 entries_for_bytes(gpr_uint32 bytes) {
174
+ static uint32_t entries_for_bytes(uint32_t bytes) {
175
175
  return (bytes + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD - 1) /
176
176
  GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD;
177
177
  }
@@ -204,7 +204,7 @@ void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl) {
204
204
  }
205
205
 
206
206
  grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl,
207
- gpr_uint32 tbl_index) {
207
+ uint32_t tbl_index) {
208
208
  /* Static table comes first, just return an entry from it */
209
209
  if (tbl_index <= GRPC_CHTTP2_LAST_STATIC_ENTRY) {
210
210
  return tbl->static_ents[tbl_index - 1];
@@ -212,7 +212,7 @@ grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl,
212
212
  /* Otherwise, find the value in the list of valid entries */
213
213
  tbl_index -= (GRPC_CHTTP2_LAST_STATIC_ENTRY + 1);
214
214
  if (tbl_index < tbl->num_ents) {
215
- gpr_uint32 offset =
215
+ uint32_t offset =
216
216
  (tbl->num_ents - 1u - tbl_index + tbl->first_ent) % tbl->cap_entries;
217
217
  return tbl->ents[offset];
218
218
  }
@@ -227,15 +227,15 @@ static void evict1(grpc_chttp2_hptbl *tbl) {
227
227
  GPR_SLICE_LENGTH(first_ent->value->slice) +
228
228
  GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD;
229
229
  GPR_ASSERT(elem_bytes <= tbl->mem_used);
230
- tbl->mem_used -= (gpr_uint32)elem_bytes;
230
+ tbl->mem_used -= (uint32_t)elem_bytes;
231
231
  tbl->first_ent = ((tbl->first_ent + 1) % tbl->cap_entries);
232
232
  tbl->num_ents--;
233
233
  GRPC_MDELEM_UNREF(first_ent);
234
234
  }
235
235
 
236
- static void rebuild_ents(grpc_chttp2_hptbl *tbl, gpr_uint32 new_cap) {
236
+ static void rebuild_ents(grpc_chttp2_hptbl *tbl, uint32_t new_cap) {
237
237
  grpc_mdelem **ents = gpr_malloc(sizeof(*ents) * new_cap);
238
- gpr_uint32 i;
238
+ uint32_t i;
239
239
 
240
240
  for (i = 0; i < tbl->num_ents; i++) {
241
241
  ents[i] = tbl->ents[(tbl->first_ent + i) % tbl->cap_entries];
@@ -247,7 +247,7 @@ static void rebuild_ents(grpc_chttp2_hptbl *tbl, gpr_uint32 new_cap) {
247
247
  }
248
248
 
249
249
  void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl,
250
- gpr_uint32 max_bytes) {
250
+ uint32_t max_bytes) {
251
251
  if (tbl->max_bytes == max_bytes) {
252
252
  return;
253
253
  }
@@ -259,7 +259,7 @@ void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl,
259
259
  }
260
260
 
261
261
  int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl,
262
- gpr_uint32 bytes) {
262
+ uint32_t bytes) {
263
263
  if (tbl->current_table_bytes == bytes) {
264
264
  return 1;
265
265
  }
@@ -278,7 +278,7 @@ int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl,
278
278
  if (tbl->max_entries > tbl->cap_entries) {
279
279
  rebuild_ents(tbl, GPR_MAX(tbl->max_entries, 2 * tbl->cap_entries));
280
280
  } else if (tbl->max_entries < tbl->cap_entries / 3) {
281
- gpr_uint32 new_cap = GPR_MAX(tbl->max_entries, 16u);
281
+ uint32_t new_cap = GPR_MAX(tbl->max_entries, 16u);
282
282
  if (new_cap != tbl->cap_entries) {
283
283
  rebuild_ents(tbl, new_cap);
284
284
  }
@@ -328,14 +328,14 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) {
328
328
 
329
329
  /* update accounting values */
330
330
  tbl->num_ents++;
331
- tbl->mem_used += (gpr_uint32)elem_bytes;
331
+ tbl->mem_used += (uint32_t)elem_bytes;
332
332
  return 1;
333
333
  }
334
334
 
335
335
  grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(
336
336
  const grpc_chttp2_hptbl *tbl, grpc_mdelem *md) {
337
337
  grpc_chttp2_hptbl_find_result r = {0, 0};
338
- gpr_uint32 i;
338
+ uint32_t i;
339
339
 
340
340
  /* See if the string is in the static table */
341
341
  for (i = 0; i < GRPC_CHTTP2_LAST_STATIC_ENTRY; i++) {
@@ -348,8 +348,8 @@ grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(
348
348
 
349
349
  /* Scan the dynamic table */
350
350
  for (i = 0; i < tbl->num_ents; i++) {
351
- gpr_uint32 idx =
352
- (gpr_uint32)(tbl->num_ents - i + GRPC_CHTTP2_LAST_STATIC_ENTRY);
351
+ uint32_t idx =
352
+ (uint32_t)(tbl->num_ents - i + GRPC_CHTTP2_LAST_STATIC_ENTRY);
353
353
  grpc_mdelem *ent = tbl->ents[(tbl->first_ent + i) % tbl->cap_entries];
354
354
  if (md->key != ent->key) continue;
355
355
  r.index = idx;
@@ -60,21 +60,21 @@
60
60
  /* hpack decoder table */
61
61
  typedef struct {
62
62
  /* the first used entry in ents */
63
- gpr_uint32 first_ent;
63
+ uint32_t first_ent;
64
64
  /* how many entries are in the table */
65
- gpr_uint32 num_ents;
65
+ uint32_t num_ents;
66
66
  /* the amount of memory used by the table, according to the hpack algorithm */
67
- gpr_uint32 mem_used;
67
+ uint32_t mem_used;
68
68
  /* the max memory allowed to be used by the table, according to the hpack
69
69
  algorithm */
70
- gpr_uint32 max_bytes;
70
+ uint32_t max_bytes;
71
71
  /* the currently agreed size of the table, according to the hpack algorithm */
72
- gpr_uint32 current_table_bytes;
72
+ uint32_t current_table_bytes;
73
73
  /* Maximum number of entries we could possibly fit in the table, given defined
74
74
  overheads */
75
- gpr_uint32 max_entries;
75
+ uint32_t max_entries;
76
76
  /* Number of entries allocated in ents */
77
- gpr_uint32 cap_entries;
77
+ uint32_t cap_entries;
78
78
  /* a circular buffer of headers - this is stored in the opposite order to
79
79
  what hpack specifies, in order to simplify table management a little...
80
80
  meaning lookups need to SUBTRACT from the end position */
@@ -86,20 +86,20 @@ typedef struct {
86
86
  void grpc_chttp2_hptbl_init(grpc_chttp2_hptbl *tbl);
87
87
  void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl);
88
88
  void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl,
89
- gpr_uint32 max_bytes);
89
+ uint32_t max_bytes);
90
90
  int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl,
91
- gpr_uint32 bytes);
91
+ uint32_t bytes);
92
92
 
93
93
  /* lookup a table entry based on its hpack index */
94
94
  grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl,
95
- gpr_uint32 index);
95
+ uint32_t index);
96
96
  /* add a table entry to the index */
97
97
  int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl,
98
98
  grpc_mdelem *md) GRPC_MUST_USE_RESULT;
99
99
  /* Find a key/value pair in the table... returns the index in the table of the
100
100
  most similar entry, or 0 if the value was not found */
101
101
  typedef struct {
102
- gpr_uint32 index;
102
+ uint32_t index;
103
103
  int has_value;
104
104
  } grpc_chttp2_hptbl_find_result;
105
105
  grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -35,6 +35,7 @@
35
35
  #define GRPC_INTERNAL_CORE_CHTTP2_INTERNAL_H
36
36
 
37
37
  #include <assert.h>
38
+ #include <stdbool.h>
38
39
 
39
40
  #include "src/core/iomgr/endpoint.h"
40
41
  #include "src/core/transport/chttp2/frame.h"
@@ -67,6 +68,9 @@ typedef enum {
67
68
  GRPC_CHTTP2_LIST_CLOSED_WAITING_FOR_PARSING,
68
69
  GRPC_CHTTP2_LIST_CLOSED_WAITING_FOR_WRITING,
69
70
  GRPC_CHTTP2_LIST_STALLED_BY_TRANSPORT,
71
+ /* streams waiting for the outgoing window in the writing path, they will be
72
+ * merged to the stalled list or writable list under transport lock. */
73
+ GRPC_CHTTP2_LIST_WRITING_STALLED_BY_TRANSPORT,
70
74
  /** streams that are waiting to start because there are too many concurrent
71
75
  streams on the connection */
72
76
  GRPC_CHTTP2_LIST_WAITING_FOR_CONCURRENCY,
@@ -141,7 +145,7 @@ typedef enum {
141
145
 
142
146
  /* Outstanding ping request data */
143
147
  typedef struct grpc_chttp2_outstanding_ping {
144
- gpr_uint8 id[8];
148
+ uint8_t id[8];
145
149
  grpc_closure *on_recv;
146
150
  struct grpc_chttp2_outstanding_ping *next;
147
151
  struct grpc_chttp2_outstanding_ping *prev;
@@ -152,6 +156,7 @@ struct grpc_chttp2_incoming_byte_stream {
152
156
  grpc_byte_stream base;
153
157
  gpr_refcount refs;
154
158
  struct grpc_chttp2_incoming_byte_stream *next_message;
159
+ int failed;
155
160
 
156
161
  grpc_chttp2_transport *transport;
157
162
  grpc_chttp2_stream *stream;
@@ -166,46 +171,46 @@ typedef struct {
166
171
  gpr_slice_buffer qbuf;
167
172
 
168
173
  /** window available for us to send to peer */
169
- gpr_int64 outgoing_window;
174
+ int64_t outgoing_window;
170
175
  /** window available to announce to peer */
171
- gpr_int64 announce_incoming_window;
176
+ int64_t announce_incoming_window;
172
177
  /** how much window would we like to have for incoming_window */
173
- gpr_uint32 connection_window_target;
178
+ uint32_t connection_window_target;
174
179
 
175
180
  /** have we seen a goaway */
176
- gpr_uint8 seen_goaway;
181
+ uint8_t seen_goaway;
177
182
  /** have we sent a goaway */
178
- gpr_uint8 sent_goaway;
183
+ uint8_t sent_goaway;
179
184
 
180
185
  /** is this transport a client? */
181
- gpr_uint8 is_client;
186
+ uint8_t is_client;
182
187
  /** are the local settings dirty and need to be sent? */
183
- gpr_uint8 dirtied_local_settings;
188
+ uint8_t dirtied_local_settings;
184
189
  /** have local settings been sent? */
185
- gpr_uint8 sent_local_settings;
190
+ uint8_t sent_local_settings;
186
191
  /** bitmask of setting indexes to send out */
187
- gpr_uint32 force_send_settings;
192
+ uint32_t force_send_settings;
188
193
  /** settings values */
189
- gpr_uint32 settings[GRPC_NUM_SETTING_SETS][GRPC_CHTTP2_NUM_SETTINGS];
194
+ uint32_t settings[GRPC_NUM_SETTING_SETS][GRPC_CHTTP2_NUM_SETTINGS];
190
195
 
191
196
  /** what is the next stream id to be allocated by this peer?
192
197
  copied to next_stream_id in parsing when parsing commences */
193
- gpr_uint32 next_stream_id;
198
+ uint32_t next_stream_id;
194
199
 
195
200
  /** how far to lookahead in a stream? */
196
- gpr_uint32 stream_lookahead;
201
+ uint32_t stream_lookahead;
197
202
 
198
203
  /** last received stream id */
199
- gpr_uint32 last_incoming_stream_id;
204
+ uint32_t last_incoming_stream_id;
200
205
 
201
206
  /** pings awaiting responses */
202
207
  grpc_chttp2_outstanding_ping pings;
203
208
  /** next payload for an outgoing ping */
204
- gpr_uint64 ping_counter;
209
+ uint64_t ping_counter;
205
210
 
206
211
  /** concurrent stream count: updated when not parsing,
207
212
  so this is a strict over-estimation on the client */
208
- gpr_uint32 concurrent_stream_count;
213
+ uint32_t concurrent_stream_count;
209
214
  } grpc_chttp2_transport_global;
210
215
 
211
216
  typedef struct {
@@ -213,29 +218,29 @@ typedef struct {
213
218
  gpr_slice_buffer outbuf;
214
219
  /** hpack encoding */
215
220
  grpc_chttp2_hpack_compressor hpack_compressor;
216
- gpr_int64 outgoing_window;
221
+ int64_t outgoing_window;
217
222
  /** is this a client? */
218
- gpr_uint8 is_client;
223
+ uint8_t is_client;
219
224
  /** callback for when writing is done */
220
225
  grpc_closure done_cb;
221
226
  } grpc_chttp2_transport_writing;
222
227
 
223
228
  struct grpc_chttp2_transport_parsing {
224
229
  /** is this transport a client? (boolean) */
225
- gpr_uint8 is_client;
230
+ uint8_t is_client;
226
231
 
227
232
  /** were settings updated? */
228
- gpr_uint8 settings_updated;
233
+ uint8_t settings_updated;
229
234
  /** was a settings ack received? */
230
- gpr_uint8 settings_ack_received;
235
+ uint8_t settings_ack_received;
231
236
  /** was a goaway frame received? */
232
- gpr_uint8 goaway_received;
237
+ uint8_t goaway_received;
233
238
 
234
239
  /** the last sent max_table_size setting */
235
- gpr_uint32 last_sent_max_table_size;
240
+ uint32_t last_sent_max_table_size;
236
241
 
237
242
  /** initial window change */
238
- gpr_int64 initial_window_update;
243
+ int64_t initial_window_update;
239
244
 
240
245
  /** data to write later - after parsing */
241
246
  gpr_slice_buffer qbuf;
@@ -252,20 +257,20 @@ struct grpc_chttp2_transport_parsing {
252
257
  grpc_chttp2_goaway_parser goaway_parser;
253
258
 
254
259
  /** window available for peer to send to us */
255
- gpr_int64 incoming_window;
260
+ int64_t incoming_window;
256
261
 
257
262
  /** next stream id available at the time of beginning parsing */
258
- gpr_uint32 next_stream_id;
259
- gpr_uint32 last_incoming_stream_id;
263
+ uint32_t next_stream_id;
264
+ uint32_t last_incoming_stream_id;
260
265
 
261
266
  /* deframing */
262
267
  grpc_chttp2_deframe_transport_state deframe_state;
263
- gpr_uint8 incoming_frame_type;
264
- gpr_uint8 incoming_frame_flags;
265
- gpr_uint8 header_eof;
266
- gpr_uint32 expect_continuation_stream_id;
267
- gpr_uint32 incoming_frame_size;
268
- gpr_uint32 incoming_stream_id;
268
+ uint8_t incoming_frame_type;
269
+ uint8_t incoming_frame_flags;
270
+ uint8_t header_eof;
271
+ uint32_t expect_continuation_stream_id;
272
+ uint32_t incoming_frame_size;
273
+ uint32_t incoming_stream_id;
269
274
 
270
275
  /* active parser */
271
276
  void *parser_data;
@@ -276,14 +281,14 @@ struct grpc_chttp2_transport_parsing {
276
281
  grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
277
282
 
278
283
  /* received settings */
279
- gpr_uint32 settings[GRPC_CHTTP2_NUM_SETTINGS];
284
+ uint32_t settings[GRPC_CHTTP2_NUM_SETTINGS];
280
285
 
281
286
  /* goaway data */
282
287
  grpc_status_code goaway_error;
283
- gpr_uint32 goaway_last_stream_index;
288
+ uint32_t goaway_last_stream_index;
284
289
  gpr_slice goaway_text;
285
290
 
286
- gpr_int64 outgoing_window;
291
+ int64_t outgoing_window;
287
292
  };
288
293
 
289
294
  struct grpc_chttp2_transport {
@@ -298,17 +303,17 @@ struct grpc_chttp2_transport {
298
303
  gpr_mu mu;
299
304
 
300
305
  /** is the transport destroying itself? */
301
- gpr_uint8 destroying;
306
+ uint8_t destroying;
302
307
  /** has the upper layer closed the transport? */
303
- gpr_uint8 closed;
308
+ uint8_t closed;
304
309
 
305
310
  /** is a thread currently writing */
306
- gpr_uint8 writing_active;
311
+ uint8_t writing_active;
307
312
  /** is a thread currently parsing */
308
- gpr_uint8 parsing_active;
313
+ uint8_t parsing_active;
309
314
 
310
315
  /** is there a read request to the endpoint outstanding? */
311
- gpr_uint8 endpoint_reading;
316
+ uint8_t endpoint_reading;
312
317
 
313
318
  /** various lists of streams */
314
319
  grpc_chttp2_stream_list lists[STREAM_LIST_COUNT];
@@ -357,20 +362,20 @@ struct grpc_chttp2_transport {
357
362
 
358
363
  typedef struct {
359
364
  /** HTTP2 stream id for this stream, or zero if one has not been assigned */
360
- gpr_uint32 id;
365
+ uint32_t id;
361
366
 
362
367
  /** window available for us to send to peer */
363
- gpr_int64 outgoing_window;
368
+ int64_t outgoing_window;
364
369
  /** The number of bytes the upper layers have offered to receive.
365
370
  As the upper layer offers more bytes, this value increases.
366
371
  As bytes are read, this value decreases. */
367
- gpr_uint32 max_recv_bytes;
372
+ uint32_t max_recv_bytes;
368
373
  /** The number of bytes the upper layer has offered to read but we have
369
374
  not yet announced to HTTP2 flow control.
370
375
  As the upper layers offer to read more bytes, this value increases.
371
376
  As we advertise incoming flow control window, this value decreases. */
372
- gpr_uint32 unannounced_incoming_window_for_parse;
373
- gpr_uint32 unannounced_incoming_window_for_writing;
377
+ uint32_t unannounced_incoming_window_for_parse;
378
+ uint32_t unannounced_incoming_window_for_writing;
374
379
  /** things the upper layers would like to send */
375
380
  grpc_metadata_batch *send_initial_metadata;
376
381
  grpc_closure *send_initial_metadata_finished;
@@ -389,18 +394,18 @@ typedef struct {
389
394
  /** when the application requests writes be closed, the write_closed is
390
395
  'queued'; when the close is flow controlled into the send path, we are
391
396
  'sending' it; when the write has been performed it is 'sent' */
392
- gpr_uint8 write_closed;
397
+ uint8_t write_closed;
393
398
  /** is this stream reading half-closed (boolean) */
394
- gpr_uint8 read_closed;
399
+ uint8_t read_closed;
395
400
  /** is this stream in the stream map? (boolean) */
396
- gpr_uint8 in_stream_map;
401
+ uint8_t in_stream_map;
397
402
  /** has this stream seen an error? if 1, then pending incoming frames
398
403
  can be thrown away */
399
- gpr_uint8 seen_error;
404
+ uint8_t seen_error;
400
405
 
401
- gpr_uint8 published_initial_metadata;
402
- gpr_uint8 published_trailing_metadata;
403
- gpr_uint8 faked_trailing_metadata;
406
+ uint8_t published_initial_metadata;
407
+ uint8_t published_trailing_metadata;
408
+ uint8_t faked_trailing_metadata;
404
409
 
405
410
  grpc_chttp2_incoming_metadata_buffer received_initial_metadata;
406
411
  grpc_chttp2_incoming_metadata_buffer received_trailing_metadata;
@@ -410,19 +415,19 @@ typedef struct {
410
415
 
411
416
  typedef struct {
412
417
  /** HTTP2 stream id for this stream, or zero if one has not been assigned */
413
- gpr_uint32 id;
414
- gpr_uint8 fetching;
415
- gpr_uint8 sent_initial_metadata;
416
- gpr_uint8 sent_message;
417
- gpr_uint8 sent_trailing_metadata;
418
- gpr_uint8 read_closed;
418
+ uint32_t id;
419
+ uint8_t fetching;
420
+ uint8_t sent_initial_metadata;
421
+ uint8_t sent_message;
422
+ uint8_t sent_trailing_metadata;
423
+ uint8_t read_closed;
419
424
  /** send this initial metadata */
420
425
  grpc_metadata_batch *send_initial_metadata;
421
426
  grpc_byte_stream *send_message;
422
427
  grpc_metadata_batch *send_trailing_metadata;
423
- gpr_int64 outgoing_window;
428
+ int64_t outgoing_window;
424
429
  /** how much window should we announce? */
425
- gpr_uint32 announce_window;
430
+ uint32_t announce_window;
426
431
  gpr_slice_buffer flow_controlled_buffer;
427
432
  gpr_slice fetching_slice;
428
433
  size_t stream_fetched;
@@ -431,27 +436,27 @@ typedef struct {
431
436
 
432
437
  struct grpc_chttp2_stream_parsing {
433
438
  /** HTTP2 stream id for this stream, or zero if one has not been assigned */
434
- gpr_uint32 id;
439
+ uint32_t id;
435
440
  /** has this stream received a close */
436
- gpr_uint8 received_close;
441
+ uint8_t received_close;
437
442
  /** saw a rst_stream */
438
- gpr_uint8 saw_rst_stream;
443
+ uint8_t saw_rst_stream;
439
444
  /** how many header frames have we received? */
440
- gpr_uint8 header_frames_received;
445
+ uint8_t header_frames_received;
441
446
  /** which metadata did we get (on this parse) */
442
- gpr_uint8 got_metadata_on_parse[2];
447
+ uint8_t got_metadata_on_parse[2];
443
448
  /** should we raise the seen_error flag in transport_global */
444
- gpr_uint8 seen_error;
449
+ uint8_t seen_error;
445
450
  /** window available for peer to send to us */
446
- gpr_int64 incoming_window;
451
+ int64_t incoming_window;
447
452
  /** parsing state for data frames */
448
453
  grpc_chttp2_data_parser data_parser;
449
454
  /** reason give to rst_stream */
450
- gpr_uint32 rst_stream_reason;
455
+ uint32_t rst_stream_reason;
451
456
  /** amount of window given */
452
- gpr_int64 outgoing_window;
457
+ int64_t outgoing_window;
453
458
  /** number of bytes received - reset at end of parse thread execution */
454
- gpr_int64 received_bytes;
459
+ int64_t received_bytes;
455
460
 
456
461
  /** incoming metadata */
457
462
  grpc_chttp2_incoming_metadata_buffer metadata_buffer[2];
@@ -464,7 +469,7 @@ struct grpc_chttp2_stream {
464
469
  grpc_chttp2_stream_parsing parsing;
465
470
 
466
471
  grpc_chttp2_stream_link links[STREAM_LIST_COUNT];
467
- gpr_uint8 included[STREAM_LIST_COUNT];
472
+ uint8_t included[STREAM_LIST_COUNT];
468
473
  };
469
474
 
470
475
  /** Transport writing call flow:
@@ -487,7 +492,7 @@ void grpc_chttp2_perform_writes(
487
492
  grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_writing *transport_writing,
488
493
  grpc_endpoint *endpoint);
489
494
  void grpc_chttp2_terminate_writing(grpc_exec_ctx *exec_ctx,
490
- void *transport_writing, int success);
495
+ void *transport_writing, bool success);
491
496
  void grpc_chttp2_cleanup_writing(grpc_exec_ctx *exec_ctx,
492
497
  grpc_chttp2_transport_global *global,
493
498
  grpc_chttp2_transport_writing *writing);
@@ -503,11 +508,11 @@ void grpc_chttp2_publish_reads(grpc_exec_ctx *exec_ctx,
503
508
  grpc_chttp2_transport_global *global,
504
509
  grpc_chttp2_transport_parsing *parsing);
505
510
 
506
- /** Get a writable stream
507
- returns non-zero if there was a stream available */
508
511
  void grpc_chttp2_list_add_writable_stream(
509
512
  grpc_chttp2_transport_global *transport_global,
510
513
  grpc_chttp2_stream_global *stream_global);
514
+ /** Get a writable stream
515
+ returns non-zero if there was a stream available */
511
516
  int grpc_chttp2_list_pop_writable_stream(
512
517
  grpc_chttp2_transport_global *transport_global,
513
518
  grpc_chttp2_transport_writing *transport_writing,
@@ -559,12 +564,18 @@ int grpc_chttp2_list_pop_check_read_ops(
559
564
  grpc_chttp2_transport_global *transport_global,
560
565
  grpc_chttp2_stream_global **stream_global);
561
566
 
562
- void grpc_chttp2_list_add_stalled_by_transport(
567
+ void grpc_chttp2_list_add_writing_stalled_by_transport(
563
568
  grpc_chttp2_transport_writing *transport_writing,
564
569
  grpc_chttp2_stream_writing *stream_writing);
570
+ void grpc_chttp2_list_flush_writing_stalled_by_transport(
571
+ grpc_chttp2_transport_writing *transport_writing, bool is_window_available);
572
+
565
573
  int grpc_chttp2_list_pop_stalled_by_transport(
566
574
  grpc_chttp2_transport_global *transport_global,
567
575
  grpc_chttp2_stream_global **stream_global);
576
+ void grpc_chttp2_list_remove_stalled_by_transport(
577
+ grpc_chttp2_transport_global *transport_global,
578
+ grpc_chttp2_stream_global *stream_global);
568
579
 
569
580
  void grpc_chttp2_list_add_unannounced_incoming_window_available(
570
581
  grpc_chttp2_transport_global *transport_global,
@@ -593,14 +604,14 @@ int grpc_chttp2_list_pop_closed_waiting_for_writing(
593
604
  grpc_chttp2_stream_global **stream_global);
594
605
 
595
606
  grpc_chttp2_stream_parsing *grpc_chttp2_parsing_lookup_stream(
596
- grpc_chttp2_transport_parsing *transport_parsing, gpr_uint32 id);
607
+ grpc_chttp2_transport_parsing *transport_parsing, uint32_t id);
597
608
  grpc_chttp2_stream_parsing *grpc_chttp2_parsing_accept_stream(
598
609
  grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
599
- gpr_uint32 id);
610
+ uint32_t id);
600
611
 
601
612
  void grpc_chttp2_add_incoming_goaway(
602
613
  grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global,
603
- gpr_uint32 goaway_error, gpr_slice goaway_text);
614
+ uint32_t goaway_error, gpr_slice goaway_text);
604
615
 
605
616
  void grpc_chttp2_register_stream(grpc_chttp2_transport *t,
606
617
  grpc_chttp2_stream *s);
@@ -706,8 +717,7 @@ void grpc_chttp2_flowctl_trace(const char *file, int line, const char *phase,
706
717
  grpc_chttp2_flowctl_op op, const char *context1,
707
718
  const char *var1, const char *context2,
708
719
  const char *var2, int is_client,
709
- gpr_uint32 stream_id, gpr_int64 val1,
710
- gpr_int64 val2);
720
+ uint32_t stream_id, int64_t val1, int64_t val2);
711
721
 
712
722
  void grpc_chttp2_fake_status(grpc_exec_ctx *exec_ctx,
713
723
  grpc_chttp2_transport_global *transport_global,
@@ -742,16 +752,17 @@ void grpc_chttp2_stream_unref(grpc_exec_ctx *exec_ctx,
742
752
 
743
753
  grpc_chttp2_incoming_byte_stream *grpc_chttp2_incoming_byte_stream_create(
744
754
  grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
745
- grpc_chttp2_stream_parsing *stream_parsing, gpr_uint32 frame_size,
746
- gpr_uint32 flags, grpc_chttp2_incoming_frame_queue *add_to_queue);
755
+ grpc_chttp2_stream_parsing *stream_parsing, uint32_t frame_size,
756
+ uint32_t flags, grpc_chttp2_incoming_frame_queue *add_to_queue);
747
757
  void grpc_chttp2_incoming_byte_stream_push(grpc_exec_ctx *exec_ctx,
748
758
  grpc_chttp2_incoming_byte_stream *bs,
749
759
  gpr_slice slice);
750
760
  void grpc_chttp2_incoming_byte_stream_finished(
751
- grpc_exec_ctx *exec_ctx, grpc_chttp2_incoming_byte_stream *bs);
761
+ grpc_exec_ctx *exec_ctx, grpc_chttp2_incoming_byte_stream *bs, int success,
762
+ int from_parsing_thread);
752
763
 
753
764
  void grpc_chttp2_ack_ping(grpc_exec_ctx *exec_ctx,
754
765
  grpc_chttp2_transport_parsing *parsing,
755
- const gpr_uint8 *opaque_8bytes);
766
+ const uint8_t *opaque_8bytes);
756
767
 
757
768
  #endif