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
@@ -126,7 +126,7 @@ void grpc_chttp2_publish_reads(
126
126
  if (transport_parsing->settings_ack_received) {
127
127
  memcpy(transport_global->settings[GRPC_ACKED_SETTINGS],
128
128
  transport_global->settings[GRPC_SENT_SETTINGS],
129
- GRPC_CHTTP2_NUM_SETTINGS * sizeof(gpr_uint32));
129
+ GRPC_CHTTP2_NUM_SETTINGS * sizeof(uint32_t));
130
130
  transport_parsing->settings_ack_received = 0;
131
131
  transport_global->sent_local_settings = 0;
132
132
  }
@@ -135,7 +135,7 @@ void grpc_chttp2_publish_reads(
135
135
  published later */
136
136
  if (transport_parsing->goaway_received) {
137
137
  grpc_chttp2_add_incoming_goaway(exec_ctx, transport_global,
138
- (gpr_uint32)transport_parsing->goaway_error,
138
+ (uint32_t)transport_parsing->goaway_error,
139
139
  transport_parsing->goaway_text);
140
140
  transport_parsing->goaway_text = gpr_empty_slice();
141
141
  transport_parsing->goaway_received = 0;
@@ -155,8 +155,8 @@ void grpc_chttp2_publish_reads(
155
155
 
156
156
  if (transport_parsing->incoming_window <
157
157
  transport_global->connection_window_target * 3 / 4) {
158
- gpr_int64 announce_bytes = transport_global->connection_window_target -
159
- transport_parsing->incoming_window;
158
+ int64_t announce_bytes = transport_global->connection_window_target -
159
+ transport_parsing->incoming_window;
160
160
  GRPC_CHTTP2_FLOW_CREDIT_TRANSPORT("parsed", transport_global,
161
161
  announce_incoming_window, announce_bytes);
162
162
  GRPC_CHTTP2_FLOW_CREDIT_TRANSPORT("parsed", transport_parsing,
@@ -181,7 +181,7 @@ void grpc_chttp2_publish_reads(
181
181
  grpc_chttp2_list_add_writable_stream(transport_global, stream_global);
182
182
  }
183
183
 
184
- stream_global->max_recv_bytes -= (gpr_uint32)GPR_MIN(
184
+ stream_global->max_recv_bytes -= (uint32_t)GPR_MIN(
185
185
  stream_global->max_recv_bytes, stream_parsing->received_bytes);
186
186
  stream_parsing->received_bytes = 0;
187
187
 
@@ -245,9 +245,9 @@ void grpc_chttp2_publish_reads(
245
245
  int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
246
246
  grpc_chttp2_transport_parsing *transport_parsing,
247
247
  gpr_slice slice) {
248
- gpr_uint8 *beg = GPR_SLICE_START_PTR(slice);
249
- gpr_uint8 *end = GPR_SLICE_END_PTR(slice);
250
- gpr_uint8 *cur = beg;
248
+ uint8_t *beg = GPR_SLICE_START_PTR(slice);
249
+ uint8_t *end = GPR_SLICE_END_PTR(slice);
250
+ uint8_t *cur = beg;
251
251
 
252
252
  if (cur == end) return 1;
253
253
 
@@ -284,7 +284,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
284
284
  "at byte %d",
285
285
  GRPC_CHTTP2_CLIENT_CONNECT_STRING[transport_parsing
286
286
  ->deframe_state],
287
- (int)(gpr_uint8)GRPC_CHTTP2_CLIENT_CONNECT_STRING
287
+ (int)(uint8_t)GRPC_CHTTP2_CLIENT_CONNECT_STRING
288
288
  [transport_parsing->deframe_state],
289
289
  *cur, (int)*cur, transport_parsing->deframe_state);
290
290
  return 0;
@@ -299,7 +299,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
299
299
  dts_fh_0:
300
300
  case GRPC_DTS_FH_0:
301
301
  GPR_ASSERT(cur < end);
302
- transport_parsing->incoming_frame_size = ((gpr_uint32)*cur) << 16;
302
+ transport_parsing->incoming_frame_size = ((uint32_t)*cur) << 16;
303
303
  if (++cur == end) {
304
304
  transport_parsing->deframe_state = GRPC_DTS_FH_1;
305
305
  return 1;
@@ -307,7 +307,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
307
307
  /* fallthrough */
308
308
  case GRPC_DTS_FH_1:
309
309
  GPR_ASSERT(cur < end);
310
- transport_parsing->incoming_frame_size |= ((gpr_uint32)*cur) << 8;
310
+ transport_parsing->incoming_frame_size |= ((uint32_t)*cur) << 8;
311
311
  if (++cur == end) {
312
312
  transport_parsing->deframe_state = GRPC_DTS_FH_2;
313
313
  return 1;
@@ -339,7 +339,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
339
339
  /* fallthrough */
340
340
  case GRPC_DTS_FH_5:
341
341
  GPR_ASSERT(cur < end);
342
- transport_parsing->incoming_stream_id = (((gpr_uint32)*cur) & 0x7f) << 24;
342
+ transport_parsing->incoming_stream_id = (((uint32_t)*cur) & 0x7f) << 24;
343
343
  if (++cur == end) {
344
344
  transport_parsing->deframe_state = GRPC_DTS_FH_6;
345
345
  return 1;
@@ -347,7 +347,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
347
347
  /* fallthrough */
348
348
  case GRPC_DTS_FH_6:
349
349
  GPR_ASSERT(cur < end);
350
- transport_parsing->incoming_stream_id |= ((gpr_uint32)*cur) << 16;
350
+ transport_parsing->incoming_stream_id |= ((uint32_t)*cur) << 16;
351
351
  if (++cur == end) {
352
352
  transport_parsing->deframe_state = GRPC_DTS_FH_7;
353
353
  return 1;
@@ -355,7 +355,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
355
355
  /* fallthrough */
356
356
  case GRPC_DTS_FH_7:
357
357
  GPR_ASSERT(cur < end);
358
- transport_parsing->incoming_stream_id |= ((gpr_uint32)*cur) << 8;
358
+ transport_parsing->incoming_stream_id |= ((uint32_t)*cur) << 8;
359
359
  if (++cur == end) {
360
360
  transport_parsing->deframe_state = GRPC_DTS_FH_8;
361
361
  return 1;
@@ -363,7 +363,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
363
363
  /* fallthrough */
364
364
  case GRPC_DTS_FH_8:
365
365
  GPR_ASSERT(cur < end);
366
- transport_parsing->incoming_stream_id |= ((gpr_uint32)*cur);
366
+ transport_parsing->incoming_stream_id |= ((uint32_t)*cur);
367
367
  transport_parsing->deframe_state = GRPC_DTS_FRAME;
368
368
  if (!init_frame_parser(exec_ctx, transport_parsing)) {
369
369
  return 0;
@@ -390,7 +390,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
390
390
  /* fallthrough */
391
391
  case GRPC_DTS_FRAME:
392
392
  GPR_ASSERT(cur < end);
393
- if ((gpr_uint32)(end - cur) == transport_parsing->incoming_frame_size) {
393
+ if ((uint32_t)(end - cur) == transport_parsing->incoming_frame_size) {
394
394
  if (!parse_frame_slice(exec_ctx, transport_parsing,
395
395
  gpr_slice_sub_no_ref(slice, (size_t)(cur - beg),
396
396
  (size_t)(end - beg)),
@@ -400,7 +400,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
400
400
  transport_parsing->deframe_state = GRPC_DTS_FH_0;
401
401
  transport_parsing->incoming_stream = NULL;
402
402
  return 1;
403
- } else if ((gpr_uint32)(end - cur) >
403
+ } else if ((uint32_t)(end - cur) >
404
404
  transport_parsing->incoming_frame_size) {
405
405
  size_t cur_offset = (size_t)(cur - beg);
406
406
  if (!parse_frame_slice(
@@ -421,7 +421,7 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
421
421
  0)) {
422
422
  return 0;
423
423
  }
424
- transport_parsing->incoming_frame_size -= (gpr_uint32)(end - cur);
424
+ transport_parsing->incoming_frame_size -= (uint32_t)(end - cur);
425
425
  return 1;
426
426
  }
427
427
  GPR_UNREACHABLE_CODE(return 0);
@@ -488,14 +488,14 @@ static int init_skip_frame_parser(
488
488
  grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
489
489
  int is_header) {
490
490
  if (is_header) {
491
- gpr_uint8 is_eoh = transport_parsing->expect_continuation_stream_id != 0;
491
+ uint8_t is_eoh = transport_parsing->expect_continuation_stream_id != 0;
492
492
  transport_parsing->parser = grpc_chttp2_header_parser_parse;
493
493
  transport_parsing->parser_data = &transport_parsing->hpack_parser;
494
494
  transport_parsing->hpack_parser.on_header = skip_header;
495
495
  transport_parsing->hpack_parser.on_header_user_data = NULL;
496
496
  transport_parsing->hpack_parser.is_boundary = is_eoh;
497
497
  transport_parsing->hpack_parser.is_eof =
498
- (gpr_uint8)(is_eoh ? transport_parsing->header_eof : 0);
498
+ (uint8_t)(is_eoh ? transport_parsing->header_eof : 0);
499
499
  } else {
500
500
  transport_parsing->parser = skip_parser;
501
501
  }
@@ -512,7 +512,7 @@ void grpc_chttp2_parsing_become_skip_parser(
512
512
  static grpc_chttp2_parse_error update_incoming_window(
513
513
  grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
514
514
  grpc_chttp2_stream_parsing *stream_parsing) {
515
- gpr_uint32 incoming_frame_size = transport_parsing->incoming_frame_size;
515
+ uint32_t incoming_frame_size = transport_parsing->incoming_frame_size;
516
516
  if (incoming_frame_size > transport_parsing->incoming_window) {
517
517
  gpr_log(GPR_ERROR, "frame of size %d overflows incoming window of %d",
518
518
  transport_parsing->incoming_frame_size,
@@ -652,8 +652,8 @@ static void on_trailing_header(void *tp, grpc_mdelem *md) {
652
652
  static int init_header_frame_parser(
653
653
  grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
654
654
  int is_continuation) {
655
- gpr_uint8 is_eoh = (transport_parsing->incoming_frame_flags &
656
- GRPC_CHTTP2_DATA_FLAG_END_HEADERS) != 0;
655
+ uint8_t is_eoh = (transport_parsing->incoming_frame_flags &
656
+ GRPC_CHTTP2_DATA_FLAG_END_HEADERS) != 0;
657
657
  int via_accept = 0;
658
658
  grpc_chttp2_stream_parsing *stream_parsing;
659
659
 
@@ -738,7 +738,7 @@ static int init_header_frame_parser(
738
738
  transport_parsing->hpack_parser.on_header_user_data = transport_parsing;
739
739
  transport_parsing->hpack_parser.is_boundary = is_eoh;
740
740
  transport_parsing->hpack_parser.is_eof =
741
- (gpr_uint8)(is_eoh ? transport_parsing->header_eof : 0);
741
+ (uint8_t)(is_eoh ? transport_parsing->header_eof : 0);
742
742
  if (!is_continuation && (transport_parsing->incoming_frame_flags &
743
743
  GRPC_CHTTP2_FLAG_HAS_PRIORITY)) {
744
744
  grpc_chttp2_hpack_parser_set_has_priority(&transport_parsing->hpack_parser);
@@ -829,7 +829,7 @@ static int init_settings_frame_parser(
829
829
  }
830
830
 
831
831
  /*
832
- static int is_window_update_legal(gpr_int64 window_update, gpr_int64 window) {
832
+ static int is_window_update_legal(int64_t window_update, int64_t window) {
833
833
  return window + window_update < MAX_WINDOW;
834
834
  }
835
835
  */
@@ -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
@@ -313,12 +313,27 @@ int grpc_chttp2_list_pop_check_read_ops(
313
313
  return r;
314
314
  }
315
315
 
316
- void grpc_chttp2_list_add_stalled_by_transport(
316
+ void grpc_chttp2_list_add_writing_stalled_by_transport(
317
317
  grpc_chttp2_transport_writing *transport_writing,
318
318
  grpc_chttp2_stream_writing *stream_writing) {
319
319
  stream_list_add(TRANSPORT_FROM_WRITING(transport_writing),
320
320
  STREAM_FROM_WRITING(stream_writing),
321
- GRPC_CHTTP2_LIST_STALLED_BY_TRANSPORT);
321
+ GRPC_CHTTP2_LIST_WRITING_STALLED_BY_TRANSPORT);
322
+ }
323
+
324
+ void grpc_chttp2_list_flush_writing_stalled_by_transport(
325
+ grpc_chttp2_transport_writing *transport_writing,
326
+ bool is_window_available) {
327
+ grpc_chttp2_stream *stream;
328
+ grpc_chttp2_transport *transport = TRANSPORT_FROM_WRITING(transport_writing);
329
+ while (stream_list_pop(transport, &stream,
330
+ GRPC_CHTTP2_LIST_WRITING_STALLED_BY_TRANSPORT)) {
331
+ if (is_window_available) {
332
+ grpc_chttp2_list_add_writable_stream(&transport->global, &stream->global);
333
+ } else {
334
+ stream_list_add(transport, stream, GRPC_CHTTP2_LIST_STALLED_BY_TRANSPORT);
335
+ }
336
+ }
322
337
  }
323
338
 
324
339
  int grpc_chttp2_list_pop_stalled_by_transport(
@@ -333,6 +348,14 @@ int grpc_chttp2_list_pop_stalled_by_transport(
333
348
  return r;
334
349
  }
335
350
 
351
+ void grpc_chttp2_list_remove_stalled_by_transport(
352
+ grpc_chttp2_transport_global *transport_global,
353
+ grpc_chttp2_stream_global *stream_global) {
354
+ stream_list_maybe_remove(TRANSPORT_FROM_GLOBAL(transport_global),
355
+ STREAM_FROM_GLOBAL(stream_global),
356
+ GRPC_CHTTP2_LIST_STALLED_BY_TRANSPORT);
357
+ }
358
+
336
359
  void grpc_chttp2_list_add_closed_waiting_for_parsing(
337
360
  grpc_chttp2_transport_global *transport_global,
338
361
  grpc_chttp2_stream_global *stream_global) {
@@ -42,7 +42,7 @@
42
42
  void grpc_chttp2_stream_map_init(grpc_chttp2_stream_map *map,
43
43
  size_t initial_capacity) {
44
44
  GPR_ASSERT(initial_capacity > 1);
45
- map->keys = gpr_malloc(sizeof(gpr_uint32) * initial_capacity);
45
+ map->keys = gpr_malloc(sizeof(uint32_t) * initial_capacity);
46
46
  map->values = gpr_malloc(sizeof(void *) * initial_capacity);
47
47
  map->count = 0;
48
48
  map->free = 0;
@@ -54,7 +54,7 @@ void grpc_chttp2_stream_map_destroy(grpc_chttp2_stream_map *map) {
54
54
  gpr_free(map->values);
55
55
  }
56
56
 
57
- static size_t compact(gpr_uint32 *keys, void **values, size_t count) {
57
+ static size_t compact(uint32_t *keys, void **values, size_t count) {
58
58
  size_t i, out;
59
59
 
60
60
  for (i = 0, out = 0; i < count; i++) {
@@ -68,11 +68,11 @@ static size_t compact(gpr_uint32 *keys, void **values, size_t count) {
68
68
  return out;
69
69
  }
70
70
 
71
- void grpc_chttp2_stream_map_add(grpc_chttp2_stream_map *map, gpr_uint32 key,
71
+ void grpc_chttp2_stream_map_add(grpc_chttp2_stream_map *map, uint32_t key,
72
72
  void *value) {
73
73
  size_t count = map->count;
74
74
  size_t capacity = map->capacity;
75
- gpr_uint32 *keys = map->keys;
75
+ uint32_t *keys = map->keys;
76
76
  void **values = map->values;
77
77
 
78
78
  GPR_ASSERT(count == 0 || keys[count - 1] < key);
@@ -86,7 +86,7 @@ void grpc_chttp2_stream_map_add(grpc_chttp2_stream_map *map, gpr_uint32 key,
86
86
  /* resize when less than 25% of the table is free, because compaction
87
87
  won't help much */
88
88
  map->capacity = capacity = 3 * capacity / 2;
89
- map->keys = keys = gpr_realloc(keys, capacity * sizeof(gpr_uint32));
89
+ map->keys = keys = gpr_realloc(keys, capacity * sizeof(uint32_t));
90
90
  map->values = values = gpr_realloc(values, capacity * sizeof(void *));
91
91
  }
92
92
  }
@@ -119,10 +119,10 @@ void grpc_chttp2_stream_map_move_into(grpc_chttp2_stream_map *src,
119
119
  /* if dst doesn't have capacity, resize */
120
120
  if (dst->count + src->count > dst->capacity) {
121
121
  dst->capacity = GPR_MAX(dst->capacity * 3 / 2, dst->count + src->count);
122
- dst->keys = gpr_realloc(dst->keys, dst->capacity * sizeof(gpr_uint32));
122
+ dst->keys = gpr_realloc(dst->keys, dst->capacity * sizeof(uint32_t));
123
123
  dst->values = gpr_realloc(dst->values, dst->capacity * sizeof(void *));
124
124
  }
125
- memcpy(dst->keys + dst->count, src->keys, src->count * sizeof(gpr_uint32));
125
+ memcpy(dst->keys + dst->count, src->keys, src->count * sizeof(uint32_t));
126
126
  memcpy(dst->values + dst->count, src->values, src->count * sizeof(void *));
127
127
  dst->count += src->count;
128
128
  dst->free += src->free;
@@ -130,13 +130,13 @@ void grpc_chttp2_stream_map_move_into(grpc_chttp2_stream_map *src,
130
130
  src->free = 0;
131
131
  }
132
132
 
133
- static void **find(grpc_chttp2_stream_map *map, gpr_uint32 key) {
133
+ static void **find(grpc_chttp2_stream_map *map, uint32_t key) {
134
134
  size_t min_idx = 0;
135
135
  size_t max_idx = map->count;
136
136
  size_t mid_idx;
137
- gpr_uint32 *keys = map->keys;
137
+ uint32_t *keys = map->keys;
138
138
  void **values = map->values;
139
- gpr_uint32 mid_key;
139
+ uint32_t mid_key;
140
140
 
141
141
  if (max_idx == 0) return NULL;
142
142
 
@@ -158,8 +158,7 @@ static void **find(grpc_chttp2_stream_map *map, gpr_uint32 key) {
158
158
  return NULL;
159
159
  }
160
160
 
161
- void *grpc_chttp2_stream_map_delete(grpc_chttp2_stream_map *map,
162
- gpr_uint32 key) {
161
+ void *grpc_chttp2_stream_map_delete(grpc_chttp2_stream_map *map, uint32_t key) {
163
162
  void **pvalue = find(map, key);
164
163
  void *out = NULL;
165
164
  if (pvalue != NULL) {
@@ -175,7 +174,7 @@ void *grpc_chttp2_stream_map_delete(grpc_chttp2_stream_map *map,
175
174
  return out;
176
175
  }
177
176
 
178
- void *grpc_chttp2_stream_map_find(grpc_chttp2_stream_map *map, gpr_uint32 key) {
177
+ void *grpc_chttp2_stream_map_find(grpc_chttp2_stream_map *map, uint32_t key) {
179
178
  void **pvalue = find(map, key);
180
179
  return pvalue != NULL ? *pvalue : NULL;
181
180
  }
@@ -185,7 +184,7 @@ size_t grpc_chttp2_stream_map_size(grpc_chttp2_stream_map *map) {
185
184
  }
186
185
 
187
186
  void grpc_chttp2_stream_map_for_each(grpc_chttp2_stream_map *map,
188
- void (*f)(void *user_data, gpr_uint32 key,
187
+ void (*f)(void *user_data, uint32_t key,
189
188
  void *value),
190
189
  void *user_data) {
191
190
  size_t i;
@@ -38,14 +38,14 @@
38
38
 
39
39
  #include <stddef.h>
40
40
 
41
- /* Data structure to map a gpr_uint32 to a data object (represented by a void*)
41
+ /* Data structure to map a uint32_t to a data object (represented by a void*)
42
42
 
43
43
  Represented as a sorted array of keys, and a corresponding array of values.
44
44
  Lookups are performed with binary search.
45
45
  Adds are restricted to strictly higher keys than previously seen (this is
46
46
  guaranteed by http2). */
47
47
  typedef struct {
48
- gpr_uint32 *keys;
48
+ uint32_t *keys;
49
49
  void **values;
50
50
  size_t count;
51
51
  size_t free;
@@ -58,27 +58,26 @@ void grpc_chttp2_stream_map_destroy(grpc_chttp2_stream_map *map);
58
58
 
59
59
  /* Add a new key: given http2 semantics, new keys must always be greater than
60
60
  existing keys - this is asserted */
61
- void grpc_chttp2_stream_map_add(grpc_chttp2_stream_map *map, gpr_uint32 key,
61
+ void grpc_chttp2_stream_map_add(grpc_chttp2_stream_map *map, uint32_t key,
62
62
  void *value);
63
63
 
64
64
  /* Delete an existing key - returns the previous value of the key if it existed,
65
65
  or NULL otherwise */
66
- void *grpc_chttp2_stream_map_delete(grpc_chttp2_stream_map *map,
67
- gpr_uint32 key);
66
+ void *grpc_chttp2_stream_map_delete(grpc_chttp2_stream_map *map, uint32_t key);
68
67
 
69
68
  /* Move all elements of src into dst */
70
69
  void grpc_chttp2_stream_map_move_into(grpc_chttp2_stream_map *src,
71
70
  grpc_chttp2_stream_map *dst);
72
71
 
73
72
  /* Return an existing key, or NULL if it does not exist */
74
- void *grpc_chttp2_stream_map_find(grpc_chttp2_stream_map *map, gpr_uint32 key);
73
+ void *grpc_chttp2_stream_map_find(grpc_chttp2_stream_map *map, uint32_t key);
75
74
 
76
75
  /* How many (populated) entries are in the stream map? */
77
76
  size_t grpc_chttp2_stream_map_size(grpc_chttp2_stream_map *map);
78
77
 
79
78
  /* Callback on each stream */
80
79
  void grpc_chttp2_stream_map_for_each(grpc_chttp2_stream_map *map,
81
- void (*f)(void *user_data, gpr_uint32 key,
80
+ void (*f)(void *user_data, uint32_t key,
82
81
  void *value),
83
82
  void *user_data);
84
83
 
@@ -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
@@ -39,12 +39,12 @@
39
39
  #include <grpc/support/port_platform.h>
40
40
  #include "src/core/support/string.h"
41
41
 
42
- static gpr_int64 round_up(gpr_int64 x, gpr_int64 divisor) {
42
+ static int64_t round_up(int64_t x, int64_t divisor) {
43
43
  return (x / divisor + (x % divisor != 0)) * divisor;
44
44
  }
45
45
 
46
46
  /* round an integer up to the next value with three significant figures */
47
- static gpr_int64 round_up_to_three_sig_figs(gpr_int64 x) {
47
+ static int64_t round_up_to_three_sig_figs(int64_t x) {
48
48
  if (x < 1000) return x;
49
49
  if (x < 10000) return round_up(x, 10);
50
50
  if (x < 100000) return round_up(x, 100);
@@ -58,13 +58,13 @@ static gpr_int64 round_up_to_three_sig_figs(gpr_int64 x) {
58
58
  /* encode our minimum viable timeout value */
59
59
  static void enc_tiny(char *buffer) { memcpy(buffer, "1n", 3); }
60
60
 
61
- static void enc_ext(char *buffer, gpr_int64 value, char ext) {
62
- int n = gpr_int64toa(value, buffer);
61
+ static void enc_ext(char *buffer, int64_t value, char ext) {
62
+ int n = int64_ttoa(value, buffer);
63
63
  buffer[n] = ext;
64
64
  buffer[n + 1] = 0;
65
65
  }
66
66
 
67
- static void enc_seconds(char *buffer, gpr_int64 sec) {
67
+ static void enc_seconds(char *buffer, int64_t sec) {
68
68
  if (sec % 3600 == 0) {
69
69
  enc_ext(buffer, sec / 3600, 'H');
70
70
  } else if (sec % 60 == 0) {
@@ -74,7 +74,7 @@ static void enc_seconds(char *buffer, gpr_int64 sec) {
74
74
  }
75
75
  }
76
76
 
77
- static void enc_nanos(char *buffer, gpr_int64 x) {
77
+ static void enc_nanos(char *buffer, int64_t x) {
78
78
  x = round_up_to_three_sig_figs(x);
79
79
  if (x < 100000) {
80
80
  if (x % 1000 == 0) {
@@ -98,7 +98,7 @@ static void enc_nanos(char *buffer, gpr_int64 x) {
98
98
  }
99
99
  }
100
100
 
101
- static void enc_micros(char *buffer, gpr_int64 x) {
101
+ static void enc_micros(char *buffer, int64_t x) {
102
102
  x = round_up_to_three_sig_figs(x);
103
103
  if (x < 100000) {
104
104
  if (x % 1000 == 0) {
@@ -124,7 +124,7 @@ void grpc_chttp2_encode_timeout(gpr_timespec timeout, char *buffer) {
124
124
  enc_nanos(buffer, timeout.tv_nsec);
125
125
  } else if (timeout.tv_sec < 1000 && timeout.tv_nsec != 0) {
126
126
  enc_micros(buffer,
127
- (gpr_int64)(timeout.tv_sec * 1000000) +
127
+ (int64_t)(timeout.tv_sec * 1000000) +
128
128
  (timeout.tv_nsec / 1000 + (timeout.tv_nsec % 1000 != 0)));
129
129
  } else {
130
130
  enc_seconds(buffer, timeout.tv_sec + (timeout.tv_nsec != 0));
@@ -137,21 +137,24 @@ static int is_all_whitespace(const char *p) {
137
137
  }
138
138
 
139
139
  int grpc_chttp2_decode_timeout(const char *buffer, gpr_timespec *timeout) {
140
- gpr_uint32 x = 0;
141
- const gpr_uint8 *p = (const gpr_uint8 *)buffer;
140
+ int32_t x = 0;
141
+ const uint8_t *p = (const uint8_t *)buffer;
142
142
  int have_digit = 0;
143
143
  /* skip whitespace */
144
144
  for (; *p == ' '; p++)
145
145
  ;
146
146
  /* decode numeric part */
147
147
  for (; *p >= '0' && *p <= '9'; p++) {
148
- gpr_uint32 xp = x * 10u + (gpr_uint32)*p - (gpr_uint32)'0';
148
+ int32_t digit = (int32_t)(*p - (uint8_t)'0');
149
149
  have_digit = 1;
150
- if (xp < x) {
151
- *timeout = gpr_inf_future(GPR_CLOCK_REALTIME);
152
- return 1;
150
+ /* spec allows max. 8 digits, but we allow values up to 1,000,000,000 */
151
+ if (x >= (100 * 1000 * 1000)) {
152
+ if (x != (100 * 1000 * 1000) || digit != 0) {
153
+ *timeout = gpr_inf_future(GPR_CLOCK_REALTIME);
154
+ return 1;
155
+ }
153
156
  }
154
- x = xp;
157
+ x = x * 10 + digit;
155
158
  }
156
159
  if (!have_digit) return 0;
157
160
  /* skip whitespace */