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
@@ -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
@@ -36,67 +36,43 @@
36
36
 
37
37
  #include <stdlib.h>
38
38
 
39
- #include <grpc/support/port_platform.h>
39
+ #include <grpc/impl/codegen/port_platform.h>
40
+ #include <grpc/impl/codegen/compression_types.h>
40
41
 
41
42
  #ifdef __cplusplus
42
43
  extern "C" {
43
44
  #endif
44
45
 
45
- /** To be used in channel arguments */
46
- #define GRPC_COMPRESSION_ALGORITHM_ARG "grpc.compression_algorithm"
47
- #define GRPC_COMPRESSION_ALGORITHM_STATE_ARG "grpc.compression_algorithm_state"
48
-
49
- /* The various compression algorithms supported by GRPC */
50
- typedef enum {
51
- GRPC_COMPRESS_NONE = 0,
52
- GRPC_COMPRESS_DEFLATE,
53
- GRPC_COMPRESS_GZIP,
54
- /* TODO(ctiller): snappy */
55
- GRPC_COMPRESS_ALGORITHMS_COUNT
56
- } grpc_compression_algorithm;
57
-
58
- typedef enum {
59
- GRPC_COMPRESS_LEVEL_NONE = 0,
60
- GRPC_COMPRESS_LEVEL_LOW,
61
- GRPC_COMPRESS_LEVEL_MED,
62
- GRPC_COMPRESS_LEVEL_HIGH,
63
- GRPC_COMPRESS_LEVEL_COUNT
64
- } grpc_compression_level;
65
-
66
- typedef struct grpc_compression_options {
67
- gpr_uint32 enabled_algorithms_bitset; /**< All algs are enabled by default */
68
- grpc_compression_algorithm default_compression_algorithm; /**< for channel */
69
- } grpc_compression_options;
70
-
71
46
  /** Parses the first \a name_length bytes of \a name as a
72
47
  * grpc_compression_algorithm instance, updating \a algorithm. Returns 1 upon
73
48
  * success, 0 otherwise. */
74
- int grpc_compression_algorithm_parse(const char *name, size_t name_length,
75
- grpc_compression_algorithm *algorithm);
49
+ GRPC_API int grpc_compression_algorithm_parse(
50
+ const char *name, size_t name_length,
51
+ grpc_compression_algorithm *algorithm);
76
52
 
77
53
  /** Updates \a name with the encoding name corresponding to a valid \a
78
54
  * algorithm. Returns 1 upon success, 0 otherwise. */
79
- int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
80
- char **name);
55
+ GRPC_API int grpc_compression_algorithm_name(
56
+ grpc_compression_algorithm algorithm, char **name);
81
57
 
82
58
  /** Returns the compression algorithm corresponding to \a level.
83
59
  *
84
60
  * It abort()s for unknown levels . */
85
- grpc_compression_algorithm grpc_compression_algorithm_for_level(
86
- grpc_compression_level level);
61
+ GRPC_API grpc_compression_algorithm
62
+ grpc_compression_algorithm_for_level(grpc_compression_level level);
87
63
 
88
- void grpc_compression_options_init(grpc_compression_options *opts);
64
+ GRPC_API void grpc_compression_options_init(grpc_compression_options *opts);
89
65
 
90
66
  /** Mark \a algorithm as enabled in \a opts. */
91
- void grpc_compression_options_enable_algorithm(
67
+ GRPC_API void grpc_compression_options_enable_algorithm(
92
68
  grpc_compression_options *opts, grpc_compression_algorithm algorithm);
93
69
 
94
70
  /** Mark \a algorithm as disabled in \a opts. */
95
- void grpc_compression_options_disable_algorithm(
71
+ GRPC_API void grpc_compression_options_disable_algorithm(
96
72
  grpc_compression_options *opts, grpc_compression_algorithm algorithm);
97
73
 
98
74
  /** Returns true if \a algorithm is marked as enabled in \a opts. */
99
- int grpc_compression_options_is_algorithm_enabled(
75
+ GRPC_API int grpc_compression_options_is_algorithm_enabled(
100
76
  const grpc_compression_options *opts, grpc_compression_algorithm algorithm);
101
77
 
102
78
  #ifdef __cplusplus
@@ -40,6 +40,9 @@
40
40
  #include <grpc/byte_buffer.h>
41
41
  #include <grpc/support/slice.h>
42
42
  #include <grpc/support/time.h>
43
+ #include <grpc/impl/codegen/connectivity_state.h>
44
+ #include <grpc/impl/codegen/propagation_bits.h>
45
+ #include <grpc/impl/codegen/grpc_types.h>
43
46
 
44
47
  #ifdef __cplusplus
45
48
  extern "C" {
@@ -52,348 +55,11 @@ extern "C" {
52
55
  * functionality lives in grpc_security.h.
53
56
  */
54
57
 
55
- /** Completion Queues enable notification of the completion of asynchronous
56
- actions. */
57
- typedef struct grpc_completion_queue grpc_completion_queue;
58
-
59
- /** An alarm associated with a completion queue. */
60
- typedef struct grpc_alarm grpc_alarm;
61
-
62
- /** The Channel interface allows creation of Call objects. */
63
- typedef struct grpc_channel grpc_channel;
64
-
65
- /** A server listens to some port and responds to request calls */
66
- typedef struct grpc_server grpc_server;
67
-
68
- /** A Call represents an RPC. When created, it is in a configuration state
69
- allowing properties to be set until it is invoked. After invoke, the Call
70
- can have messages written to it and read from it. */
71
- typedef struct grpc_call grpc_call;
72
-
73
- /** Type specifier for grpc_arg */
74
- typedef enum {
75
- GRPC_ARG_STRING,
76
- GRPC_ARG_INTEGER,
77
- GRPC_ARG_POINTER
78
- } grpc_arg_type;
79
-
80
- /** A single argument... each argument has a key and a value
81
-
82
- A note on naming keys:
83
- Keys are namespaced into groups, usually grouped by library, and are
84
- keys for module XYZ are named XYZ.key1, XYZ.key2, etc. Module names must
85
- be restricted to the regex [A-Za-z][_A-Za-z0-9]{,15}.
86
- Key names must be restricted to the regex [A-Za-z][_A-Za-z0-9]{,47}.
87
-
88
- GRPC core library keys are prefixed by grpc.
89
-
90
- Library authors are strongly encouraged to \#define symbolic constants for
91
- their keys so that it's possible to change them in the future. */
92
- typedef struct {
93
- grpc_arg_type type;
94
- char *key;
95
- union {
96
- char *string;
97
- int integer;
98
- struct {
99
- void *p;
100
- void *(*copy)(void *p);
101
- void (*destroy)(void *p);
102
- } pointer;
103
- } value;
104
- } grpc_arg;
105
-
106
- /** An array of arguments that can be passed around.
107
-
108
- Used to set optional channel-level configuration.
109
- These configuration options are modelled as key-value pairs as defined
110
- by grpc_arg; keys are strings to allow easy backwards-compatible extension
111
- by arbitrary parties.
112
- All evaluation is performed at channel creation time (i.e. the values in
113
- this structure need only live through the creation invocation). */
114
- typedef struct {
115
- size_t num_args;
116
- grpc_arg *args;
117
- } grpc_channel_args;
118
-
119
- /* Channel argument keys: */
120
- /** Enable census for tracing and stats collection */
121
- #define GRPC_ARG_ENABLE_CENSUS "grpc.census"
122
- /** Maximum number of concurrent incoming streams to allow on a http2
123
- connection */
124
- #define GRPC_ARG_MAX_CONCURRENT_STREAMS "grpc.max_concurrent_streams"
125
- /** Maximum message length that the channel can receive */
126
- #define GRPC_ARG_MAX_MESSAGE_LENGTH "grpc.max_message_length"
127
- /** Initial sequence number for http2 transports */
128
- #define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER \
129
- "grpc.http2.initial_sequence_number"
130
- /** Amount to read ahead on individual streams. Defaults to 64kb, larger
131
- values can help throughput on high-latency connections.
132
- NOTE: at some point we'd like to auto-tune this, and this parameter
133
- will become a no-op. */
134
- #define GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES "grpc.http2.lookahead_bytes"
135
- /** How much memory to use for hpack decoding */
136
- #define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER \
137
- "grpc.http2.hpack_table_size.decoder"
138
- /** How much memory to use for hpack encoding */
139
- #define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER \
140
- "grpc.http2.hpack_table_size.encoder"
141
- /** Default authority to pass if none specified on call construction */
142
- #define GRPC_ARG_DEFAULT_AUTHORITY "grpc.default_authority"
143
- /** Primary user agent: goes at the start of the user-agent metadata
144
- sent on each request */
145
- #define GRPC_ARG_PRIMARY_USER_AGENT_STRING "grpc.primary_user_agent"
146
- /** Secondary user agent: goes at the end of the user-agent metadata
147
- sent on each request */
148
- #define GRPC_ARG_SECONDARY_USER_AGENT_STRING "grpc.secondary_user_agent"
149
- /* The caller of the secure_channel_create functions may override the target
150
- name used for SSL host name checking using this channel argument which is of
151
- type GRPC_ARG_STRING. This *should* be used for testing only.
152
- If this argument is not specified, the name used for SSL host name checking
153
- will be the target parameter (assuming that the secure channel is an SSL
154
- channel). If this parameter is specified and the underlying is not an SSL
155
- channel, it will just be ignored. */
156
- #define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG "grpc.ssl_target_name_override"
157
-
158
- /** Connectivity state of a channel. */
159
- typedef enum {
160
- /** channel is idle */
161
- GRPC_CHANNEL_IDLE,
162
- /** channel is connecting */
163
- GRPC_CHANNEL_CONNECTING,
164
- /** channel is ready for work */
165
- GRPC_CHANNEL_READY,
166
- /** channel has seen a failure but expects to recover */
167
- GRPC_CHANNEL_TRANSIENT_FAILURE,
168
- /** channel has seen a failure that it cannot recover from */
169
- GRPC_CHANNEL_FATAL_FAILURE
170
- } grpc_connectivity_state;
171
-
172
- /** Result of a grpc call. If the caller satisfies the prerequisites of a
173
- particular operation, the grpc_call_error returned will be GRPC_CALL_OK.
174
- Receiving any other value listed here is an indication of a bug in the
175
- caller. */
176
- typedef enum grpc_call_error {
177
- /** everything went ok */
178
- GRPC_CALL_OK = 0,
179
- /** something failed, we don't know what */
180
- GRPC_CALL_ERROR,
181
- /** this method is not available on the server */
182
- GRPC_CALL_ERROR_NOT_ON_SERVER,
183
- /** this method is not available on the client */
184
- GRPC_CALL_ERROR_NOT_ON_CLIENT,
185
- /** this method must be called before server_accept */
186
- GRPC_CALL_ERROR_ALREADY_ACCEPTED,
187
- /** this method must be called before invoke */
188
- GRPC_CALL_ERROR_ALREADY_INVOKED,
189
- /** this method must be called after invoke */
190
- GRPC_CALL_ERROR_NOT_INVOKED,
191
- /** this call is already finished
192
- (writes_done or write_status has already been called) */
193
- GRPC_CALL_ERROR_ALREADY_FINISHED,
194
- /** there is already an outstanding read/write operation on the call */
195
- GRPC_CALL_ERROR_TOO_MANY_OPERATIONS,
196
- /** the flags value was illegal for this call */
197
- GRPC_CALL_ERROR_INVALID_FLAGS,
198
- /** invalid metadata was passed to this call */
199
- GRPC_CALL_ERROR_INVALID_METADATA,
200
- /** invalid message was passed to this call */
201
- GRPC_CALL_ERROR_INVALID_MESSAGE,
202
- /** completion queue for notification has not been registered with the
203
- server */
204
- GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE,
205
- /** this batch of operations leads to more operations than allowed */
206
- GRPC_CALL_ERROR_BATCH_TOO_BIG
207
- } grpc_call_error;
208
-
209
- /* Write Flags: */
210
- /** Hint that the write may be buffered and need not go out on the wire
211
- immediately. GRPC is free to buffer the message until the next non-buffered
212
- write, or until writes_done, but it need not buffer completely or at all. */
213
- #define GRPC_WRITE_BUFFER_HINT (0x00000001u)
214
- /** Force compression to be disabled for a particular write
215
- (start_write/add_metadata). Illegal on invoke/accept. */
216
- #define GRPC_WRITE_NO_COMPRESS (0x00000002u)
217
- /** Mask of all valid flags. */
218
- #define GRPC_WRITE_USED_MASK (GRPC_WRITE_BUFFER_HINT | GRPC_WRITE_NO_COMPRESS)
219
-
220
- /** A single metadata element */
221
- typedef struct grpc_metadata {
222
- const char *key;
223
- const char *value;
224
- size_t value_length;
225
- gpr_uint32 flags;
226
-
227
- /** The following fields are reserved for grpc internal use.
228
- There is no need to initialize them, and they will be set to garbage
229
- during calls to grpc. */
230
- struct {
231
- void *obfuscated[4];
232
- } internal_data;
233
- } grpc_metadata;
234
-
235
- /** The type of completion (for grpc_event) */
236
- typedef enum grpc_completion_type {
237
- /** Shutting down */
238
- GRPC_QUEUE_SHUTDOWN,
239
- /** No event before timeout */
240
- GRPC_QUEUE_TIMEOUT,
241
- /** Operation completion */
242
- GRPC_OP_COMPLETE
243
- } grpc_completion_type;
244
-
245
- /** The result of an operation.
246
-
247
- Returned by a completion queue when the operation started with tag. */
248
- typedef struct grpc_event {
249
- /** The type of the completion. */
250
- grpc_completion_type type;
251
- /** non-zero if the operation was successful, 0 upon failure.
252
- Only GRPC_OP_COMPLETE can succeed or fail. */
253
- int success;
254
- /** The tag passed to grpc_call_start_batch etc to start this operation.
255
- Only GRPC_OP_COMPLETE has a tag. */
256
- void *tag;
257
- } grpc_event;
258
-
259
- typedef struct {
260
- size_t count;
261
- size_t capacity;
262
- grpc_metadata *metadata;
263
- } grpc_metadata_array;
264
-
265
- void grpc_metadata_array_init(grpc_metadata_array *array);
266
- void grpc_metadata_array_destroy(grpc_metadata_array *array);
267
-
268
- typedef struct {
269
- char *method;
270
- size_t method_capacity;
271
- char *host;
272
- size_t host_capacity;
273
- gpr_timespec deadline;
274
- void *reserved;
275
- } grpc_call_details;
276
-
277
- void grpc_call_details_init(grpc_call_details *details);
278
- void grpc_call_details_destroy(grpc_call_details *details);
279
-
280
- typedef enum {
281
- /** Send initial metadata: one and only one instance MUST be sent for each
282
- call, unless the call was cancelled - in which case this can be skipped.
283
- This op completes after all bytes of metadata have been accepted by
284
- outgoing flow control. */
285
- GRPC_OP_SEND_INITIAL_METADATA = 0,
286
- /** Send a message: 0 or more of these operations can occur for each call.
287
- This op completes after all bytes for the message have been accepted by
288
- outgoing flow control. */
289
- GRPC_OP_SEND_MESSAGE,
290
- /** Send a close from the client: one and only one instance MUST be sent from
291
- the client, unless the call was cancelled - in which case this can be
292
- skipped.
293
- This op completes after all bytes for the call (including the close)
294
- have passed outgoing flow control. */
295
- GRPC_OP_SEND_CLOSE_FROM_CLIENT,
296
- /** Send status from the server: one and only one instance MUST be sent from
297
- the server unless the call was cancelled - in which case this can be
298
- skipped.
299
- This op completes after all bytes for the call (including the status)
300
- have passed outgoing flow control. */
301
- GRPC_OP_SEND_STATUS_FROM_SERVER,
302
- /** Receive initial metadata: one and only one MUST be made on the client,
303
- must not be made on the server.
304
- This op completes after all initial metadata has been read from the
305
- peer. */
306
- GRPC_OP_RECV_INITIAL_METADATA,
307
- /** Receive a message: 0 or more of these operations can occur for each call.
308
- This op completes after all bytes of the received message have been
309
- read, or after a half-close has been received on this call. */
310
- GRPC_OP_RECV_MESSAGE,
311
- /** Receive status on the client: one and only one must be made on the client.
312
- This operation always succeeds, meaning ops paired with this operation
313
- will also appear to succeed, even though they may not have. In that case
314
- the status will indicate some failure.
315
- This op completes after all activity on the call has completed. */
316
- GRPC_OP_RECV_STATUS_ON_CLIENT,
317
- /** Receive close on the server: one and only one must be made on the
318
- server.
319
- This op completes after the close has been received by the server. */
320
- GRPC_OP_RECV_CLOSE_ON_SERVER
321
- } grpc_op_type;
322
-
323
- /** Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT
324
- which has no arguments) */
325
- typedef struct grpc_op {
326
- /** Operation type, as defined by grpc_op_type */
327
- grpc_op_type op;
328
- /** Write flags bitset for grpc_begin_messages */
329
- gpr_uint32 flags;
330
- /** Reserved for future usage */
331
- void *reserved;
332
- union {
333
- /** Reserved for future usage */
334
- struct {
335
- void *reserved[8];
336
- } reserved;
337
- struct {
338
- size_t count;
339
- grpc_metadata *metadata;
340
- } send_initial_metadata;
341
- grpc_byte_buffer *send_message;
342
- struct {
343
- size_t trailing_metadata_count;
344
- grpc_metadata *trailing_metadata;
345
- grpc_status_code status;
346
- const char *status_details;
347
- } send_status_from_server;
348
- /** ownership of the array is with the caller, but ownership of the elements
349
- stays with the call object (ie key, value members are owned by the call
350
- object, recv_initial_metadata->array is owned by the caller).
351
- After the operation completes, call grpc_metadata_array_destroy on this
352
- value, or reuse it in a future op. */
353
- grpc_metadata_array *recv_initial_metadata;
354
- /** ownership of the byte buffer is moved to the caller; the caller must
355
- call grpc_byte_buffer_destroy on this value, or reuse it in a future op.
356
- */
357
- grpc_byte_buffer **recv_message;
358
- struct {
359
- /** ownership of the array is with the caller, but ownership of the
360
- elements stays with the call object (ie key, value members are owned
361
- by the call object, trailing_metadata->array is owned by the caller).
362
- After the operation completes, call grpc_metadata_array_destroy on
363
- this
364
- value, or reuse it in a future op. */
365
- grpc_metadata_array *trailing_metadata;
366
- grpc_status_code *status;
367
- /** status_details is a buffer owned by the application before the op
368
- completes and after the op has completed. During the operation
369
- status_details may be reallocated to a size larger than
370
- *status_details_capacity, in which case *status_details_capacity will
371
- be updated with the new array capacity.
372
-
373
- Pre-allocating space:
374
- size_t my_capacity = 8;
375
- char *my_details = gpr_malloc(my_capacity);
376
- x.status_details = &my_details;
377
- x.status_details_capacity = &my_capacity;
378
-
379
- Not pre-allocating space:
380
- size_t my_capacity = 0;
381
- char *my_details = NULL;
382
- x.status_details = &my_details;
383
- x.status_details_capacity = &my_capacity;
384
-
385
- After the call:
386
- gpr_free(my_details); */
387
- char **status_details;
388
- size_t *status_details_capacity;
389
- } recv_status_on_client;
390
- struct {
391
- /** out argument, set to 1 if the call failed in any way (seen as a
392
- cancellation on the server), or 0 if the call succeeded */
393
- int *cancelled;
394
- } recv_close_on_server;
395
- } data;
396
- } grpc_op;
58
+ GRPC_API void grpc_metadata_array_init(grpc_metadata_array *array);
59
+ GRPC_API void grpc_metadata_array_destroy(grpc_metadata_array *array);
60
+
61
+ GRPC_API void grpc_call_details_init(grpc_call_details *details);
62
+ GRPC_API void grpc_call_details_destroy(grpc_call_details *details);
397
63
 
398
64
  /** Registers a plugin to be initialized and destroyed with the library.
399
65
 
@@ -403,27 +69,7 @@ typedef struct grpc_op {
403
69
  (and hence so will \a init and \a destroy).
404
70
  It is safe to pass NULL to either argument. Plugins are destroyed in
405
71
  the reverse order they were initialized. */
406
- void grpc_register_plugin(void (*init)(void), void (*destroy)(void));
407
-
408
- /* Propagation bits: this can be bitwise or-ed to form propagation_mask for
409
- * grpc_call */
410
- /** Propagate deadline */
411
- #define GRPC_PROPAGATE_DEADLINE ((gpr_uint32)1)
412
- /** Propagate census context */
413
- #define GRPC_PROPAGATE_CENSUS_STATS_CONTEXT ((gpr_uint32)2)
414
- #define GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT ((gpr_uint32)4)
415
- /** Propagate cancellation */
416
- #define GRPC_PROPAGATE_CANCELLATION ((gpr_uint32)8)
417
-
418
- /* Default propagation mask: clients of the core API are encouraged to encode
419
- deltas from this in their implementations... ie write:
420
- GRPC_PROPAGATE_DEFAULTS & ~GRPC_PROPAGATE_DEADLINE to disable deadline
421
- propagation. Doing so gives flexibility in the future to define new
422
- propagation types that are default inherited or not. */
423
- #define GRPC_PROPAGATE_DEFAULTS \
424
- ((gpr_uint32)(( \
425
- 0xffff | GRPC_PROPAGATE_DEADLINE | GRPC_PROPAGATE_CENSUS_STATS_CONTEXT | \
426
- GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT | GRPC_PROPAGATE_CANCELLATION)))
72
+ GRPC_API void grpc_register_plugin(void (*init)(void), void (*destroy)(void));
427
73
 
428
74
  /** Initialize the grpc library.
429
75
 
@@ -431,7 +77,7 @@ void grpc_register_plugin(void (*init)(void), void (*destroy)(void));
431
77
  (To avoid overhead, little checking is done, and some things may work. We
432
78
  do not warrant that they will continue to do so in future revisions of this
433
79
  library). */
434
- void grpc_init(void);
80
+ GRPC_API void grpc_init(void);
435
81
 
436
82
  /** Shut down the grpc library.
437
83
 
@@ -439,13 +85,13 @@ void grpc_init(void);
439
85
  executing within the grpc library.
440
86
  Prior to calling, all application owned grpc objects must have been
441
87
  destroyed. */
442
- void grpc_shutdown(void);
88
+ GRPC_API void grpc_shutdown(void);
443
89
 
444
90
  /** Return a string representing the current version of grpc */
445
- const char *grpc_version_string(void);
91
+ GRPC_API const char *grpc_version_string(void);
446
92
 
447
93
  /** Create a completion queue */
448
- grpc_completion_queue *grpc_completion_queue_create(void *reserved);
94
+ GRPC_API grpc_completion_queue *grpc_completion_queue_create(void *reserved);
449
95
 
450
96
  /** Blocks until an event is available, the completion queue is being shut down,
451
97
  or deadline is reached.
@@ -455,8 +101,9 @@ grpc_completion_queue *grpc_completion_queue_create(void *reserved);
455
101
 
456
102
  Callers must not call grpc_completion_queue_next and
457
103
  grpc_completion_queue_pluck simultaneously on the same completion queue. */
458
- grpc_event grpc_completion_queue_next(grpc_completion_queue *cq,
459
- gpr_timespec deadline, void *reserved);
104
+ GRPC_API grpc_event grpc_completion_queue_next(grpc_completion_queue *cq,
105
+ gpr_timespec deadline,
106
+ void *reserved);
460
107
 
461
108
  /** Blocks until an event with tag 'tag' is available, the completion queue is
462
109
  being shutdown or deadline is reached.
@@ -469,8 +116,9 @@ grpc_event grpc_completion_queue_next(grpc_completion_queue *cq,
469
116
 
470
117
  Completion queues support a maximum of GRPC_MAX_COMPLETION_QUEUE_PLUCKERS
471
118
  concurrently executing plucks at any time. */
472
- grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cq, void *tag,
473
- gpr_timespec deadline, void *reserved);
119
+ GRPC_API grpc_event
120
+ grpc_completion_queue_pluck(grpc_completion_queue *cq, void *tag,
121
+ gpr_timespec deadline, void *reserved);
474
122
 
475
123
  /** Maximum number of outstanding grpc_completion_queue_pluck executions per
476
124
  completion queue */
@@ -483,11 +131,11 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cq, void *tag,
483
131
 
484
132
  After calling this function applications should ensure that no
485
133
  NEW work is added to be published on this completion queue. */
486
- void grpc_completion_queue_shutdown(grpc_completion_queue *cq);
134
+ GRPC_API void grpc_completion_queue_shutdown(grpc_completion_queue *cq);
487
135
 
488
136
  /** Destroy a completion queue. The caller must ensure that the queue is
489
137
  drained and no threads are executing grpc_completion_queue_next */
490
- void grpc_completion_queue_destroy(grpc_completion_queue *cq);
138
+ GRPC_API void grpc_completion_queue_destroy(grpc_completion_queue *cq);
491
139
 
492
140
  /** Create a completion queue alarm instance associated to \a cq.
493
141
  *
@@ -495,26 +143,27 @@ void grpc_completion_queue_destroy(grpc_completion_queue *cq);
495
143
  * grpc_alarm_cancel), an event with tag \a tag will be added to \a cq. If the
496
144
  * alarm expired, the event's success bit will be true, false otherwise (ie,
497
145
  * upon cancellation). */
498
- grpc_alarm *grpc_alarm_create(grpc_completion_queue *cq, gpr_timespec deadline,
499
- void *tag);
146
+ GRPC_API grpc_alarm *grpc_alarm_create(grpc_completion_queue *cq,
147
+ gpr_timespec deadline, void *tag);
500
148
 
501
149
  /** Cancel a completion queue alarm. Calling this function over an alarm that
502
150
  * has already fired has no effect. */
503
- void grpc_alarm_cancel(grpc_alarm *alarm);
151
+ GRPC_API void grpc_alarm_cancel(grpc_alarm *alarm);
504
152
 
505
153
  /** Destroy the given completion queue alarm, cancelling it in the process. */
506
- void grpc_alarm_destroy(grpc_alarm *alarm);
154
+ GRPC_API void grpc_alarm_destroy(grpc_alarm *alarm);
507
155
 
508
156
  /** Check the connectivity state of a channel. */
509
- grpc_connectivity_state grpc_channel_check_connectivity_state(
510
- grpc_channel *channel, int try_to_connect);
157
+ GRPC_API grpc_connectivity_state
158
+ grpc_channel_check_connectivity_state(grpc_channel *channel,
159
+ int try_to_connect);
511
160
 
512
161
  /** Watch for a change in connectivity state.
513
162
  Once the channel connectivity state is different from last_observed_state,
514
163
  tag will be enqueued on cq with success=1.
515
164
  If deadline expires BEFORE the state is changed, tag will be enqueued on cq
516
165
  with success=0. */
517
- void grpc_channel_watch_connectivity_state(
166
+ GRPC_API void grpc_channel_watch_connectivity_state(
518
167
  grpc_channel *channel, grpc_connectivity_state last_observed_state,
519
168
  gpr_timespec deadline, grpc_completion_queue *cq, void *tag);
520
169
 
@@ -524,25 +173,25 @@ void grpc_channel_watch_connectivity_state(
524
173
  If parent_call is non-NULL, it must be a server-side call. It will be used
525
174
  to propagate properties from the server call to this new client call.
526
175
  */
527
- grpc_call *grpc_channel_create_call(grpc_channel *channel,
528
- grpc_call *parent_call,
529
- gpr_uint32 propagation_mask,
530
- grpc_completion_queue *completion_queue,
531
- const char *method, const char *host,
532
- gpr_timespec deadline, void *reserved);
176
+ GRPC_API grpc_call *grpc_channel_create_call(
177
+ grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask,
178
+ grpc_completion_queue *completion_queue, const char *method,
179
+ const char *host, gpr_timespec deadline, void *reserved);
533
180
 
534
181
  /** Ping the channels peer (load balanced channels will select one sub-channel
535
182
  to ping); if the channel is not connected, posts a failed. */
536
- void grpc_channel_ping(grpc_channel *channel, grpc_completion_queue *cq,
537
- void *tag, void *reserved);
183
+ GRPC_API void grpc_channel_ping(grpc_channel *channel,
184
+ grpc_completion_queue *cq, void *tag,
185
+ void *reserved);
538
186
 
539
187
  /** Pre-register a method/host pair on a channel. */
540
- void *grpc_channel_register_call(grpc_channel *channel, const char *method,
541
- const char *host, void *reserved);
188
+ GRPC_API void *grpc_channel_register_call(grpc_channel *channel,
189
+ const char *method, const char *host,
190
+ void *reserved);
542
191
 
543
192
  /** Create a call given a handle returned from grpc_channel_register_call */
544
- grpc_call *grpc_channel_create_registered_call(
545
- grpc_channel *channel, grpc_call *parent_call, gpr_uint32 propagation_mask,
193
+ GRPC_API grpc_call *grpc_channel_create_registered_call(
194
+ grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask,
546
195
  grpc_completion_queue *completion_queue, void *registered_call_handle,
547
196
  gpr_timespec deadline, void *reserved);
548
197
 
@@ -557,8 +206,9 @@ grpc_call *grpc_channel_create_registered_call(
557
206
  needs to be synchronized. As an optimization, you may synchronize batches
558
207
  containing just send operations independently from batches containing just
559
208
  receive operations. */
560
- grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
561
- size_t nops, void *tag, void *reserved);
209
+ GRPC_API grpc_call_error grpc_call_start_batch(grpc_call *call,
210
+ const grpc_op *ops, size_t nops,
211
+ void *tag, void *reserved);
562
212
 
563
213
  /** Returns a newly allocated string representing the endpoint to which this
564
214
  call is communicating with. The string is in the uri format accepted by
@@ -568,38 +218,36 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
568
218
  WARNING: this value is never authenticated or subject to any security
569
219
  related code. It must not be used for any authentication related
570
220
  functionality. Instead, use grpc_auth_context. */
571
- char *grpc_call_get_peer(grpc_call *call);
221
+ GRPC_API char *grpc_call_get_peer(grpc_call *call);
572
222
 
573
223
  struct census_context;
574
224
 
575
225
  /* Set census context for a call; Must be called before first call to
576
226
  grpc_call_start_batch(). */
577
- void grpc_census_call_set_context(grpc_call *call,
578
- struct census_context *context);
227
+ GRPC_API void grpc_census_call_set_context(grpc_call *call,
228
+ struct census_context *context);
579
229
 
580
230
  /* Retrieve the calls current census context. */
581
- struct census_context *grpc_census_call_get_context(grpc_call *call);
231
+ GRPC_API struct census_context *grpc_census_call_get_context(grpc_call *call);
582
232
 
583
233
  /** Return a newly allocated string representing the target a channel was
584
234
  created for. */
585
- char *grpc_channel_get_target(grpc_channel *channel);
235
+ GRPC_API char *grpc_channel_get_target(grpc_channel *channel);
586
236
 
587
237
  /** Create a client channel to 'target'. Additional channel level configuration
588
238
  MAY be provided by grpc_channel_args, though the expectation is that most
589
239
  clients will want to simply pass NULL. See grpc_channel_args definition for
590
240
  more on this. The data in 'args' need only live through the invocation of
591
241
  this function. */
592
- grpc_channel *grpc_insecure_channel_create(const char *target,
593
- const grpc_channel_args *args,
594
- void *reserved);
242
+ GRPC_API grpc_channel *grpc_insecure_channel_create(
243
+ const char *target, const grpc_channel_args *args, void *reserved);
595
244
 
596
245
  /** Create a lame client: this client fails every operation attempted on it. */
597
- grpc_channel *grpc_lame_client_channel_create(const char *target,
598
- grpc_status_code error_code,
599
- const char *error_message);
246
+ GRPC_API grpc_channel *grpc_lame_client_channel_create(
247
+ const char *target, grpc_status_code error_code, const char *error_message);
600
248
 
601
249
  /** Close and destroy a grpc channel */
602
- void grpc_channel_destroy(grpc_channel *channel);
250
+ GRPC_API void grpc_channel_destroy(grpc_channel *channel);
603
251
 
604
252
  /* Error handling for grpc_call
605
253
  Most grpc_call functions return a grpc_error. If the error is not GRPC_OK
@@ -612,7 +260,7 @@ void grpc_channel_destroy(grpc_channel *channel);
612
260
  THREAD-SAFETY grpc_call_cancel and grpc_call_cancel_with_status
613
261
  are thread-safe, and can be called at any point before grpc_call_destroy
614
262
  is called.*/
615
- grpc_call_error grpc_call_cancel(grpc_call *call, void *reserved);
263
+ GRPC_API grpc_call_error grpc_call_cancel(grpc_call *call, void *reserved);
616
264
 
617
265
  /** Called by clients to cancel an RPC on the server.
618
266
  Can be called multiple times, from any thread.
@@ -620,14 +268,13 @@ grpc_call_error grpc_call_cancel(grpc_call *call, void *reserved);
620
268
  and description passed in.
621
269
  Importantly, this function does not send status nor description to the
622
270
  remote endpoint. */
623
- grpc_call_error grpc_call_cancel_with_status(grpc_call *call,
624
- grpc_status_code status,
625
- const char *description,
626
- void *reserved);
271
+ GRPC_API grpc_call_error
272
+ grpc_call_cancel_with_status(grpc_call *call, grpc_status_code status,
273
+ const char *description, void *reserved);
627
274
 
628
275
  /** Destroy a call.
629
276
  THREAD SAFETY: grpc_call_destroy is thread-compatible */
630
- void grpc_call_destroy(grpc_call *call);
277
+ GRPC_API void grpc_call_destroy(grpc_call *call);
631
278
 
632
279
  /** Request notification of a new call.
633
280
  Once a call is received, a notification tagged with \a tag_new is added to
@@ -637,11 +284,13 @@ void grpc_call_destroy(grpc_call *call);
637
284
  to \a cq_bound_to_call.
638
285
  Note that \a cq_for_notification must have been registered to the server via
639
286
  \a grpc_server_register_completion_queue. */
640
- grpc_call_error grpc_server_request_call(
641
- grpc_server *server, grpc_call **call, grpc_call_details *details,
642
- grpc_metadata_array *request_metadata,
643
- grpc_completion_queue *cq_bound_to_call,
644
- grpc_completion_queue *cq_for_notification, void *tag_new);
287
+ GRPC_API grpc_call_error
288
+ grpc_server_request_call(grpc_server *server, grpc_call **call,
289
+ grpc_call_details *details,
290
+ grpc_metadata_array *request_metadata,
291
+ grpc_completion_queue *cq_bound_to_call,
292
+ grpc_completion_queue *cq_for_notification,
293
+ void *tag_new);
645
294
 
646
295
  /** Registers a method in the server.
647
296
  Methods to this (host, method) pair will not be reported by
@@ -650,13 +299,14 @@ grpc_call_error grpc_server_request_call(
650
299
  registered_method (as returned by this function).
651
300
  Must be called before grpc_server_start.
652
301
  Returns NULL on failure. */
653
- void *grpc_server_register_method(grpc_server *server, const char *method,
654
- const char *host);
302
+ GRPC_API void *grpc_server_register_method(grpc_server *server,
303
+ const char *method,
304
+ const char *host);
655
305
 
656
306
  /** Request notification of a new pre-registered call. 'cq_for_notification'
657
307
  must have been registered to the server via
658
308
  grpc_server_register_completion_queue. */
659
- grpc_call_error grpc_server_request_registered_call(
309
+ GRPC_API grpc_call_error grpc_server_request_registered_call(
660
310
  grpc_server *server, void *registered_method, grpc_call **call,
661
311
  gpr_timespec *deadline, grpc_metadata_array *request_metadata,
662
312
  grpc_byte_buffer **optional_payload,
@@ -667,23 +317,25 @@ grpc_call_error grpc_server_request_registered_call(
667
317
  be specified with args. If no additional configuration is needed, args can
668
318
  be NULL. See grpc_channel_args for more. The data in 'args' need only live
669
319
  through the invocation of this function. */
670
- grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved);
320
+ GRPC_API grpc_server *grpc_server_create(const grpc_channel_args *args,
321
+ void *reserved);
671
322
 
672
323
  /** Register a completion queue with the server. Must be done for any
673
324
  notification completion queue that is passed to grpc_server_request_*_call
674
325
  and to grpc_server_shutdown_and_notify. Must be performed prior to
675
326
  grpc_server_start. */
676
- void grpc_server_register_completion_queue(grpc_server *server,
677
- grpc_completion_queue *cq,
678
- void *reserved);
327
+ GRPC_API void grpc_server_register_completion_queue(grpc_server *server,
328
+ grpc_completion_queue *cq,
329
+ void *reserved);
679
330
 
680
331
  /** Add a HTTP2 over plaintext over tcp listener.
681
332
  Returns bound port number on success, 0 on failure.
682
333
  REQUIRES: server not started */
683
- int grpc_server_add_insecure_http2_port(grpc_server *server, const char *addr);
334
+ GRPC_API int grpc_server_add_insecure_http2_port(grpc_server *server,
335
+ const char *addr);
684
336
 
685
337
  /** Start a server - tells all listeners to start listening */
686
- void grpc_server_start(grpc_server *server);
338
+ GRPC_API void grpc_server_start(grpc_server *server);
687
339
 
688
340
  /** Begin shutting down a server.
689
341
  After completion, no new calls or connections will be admitted.
@@ -692,18 +344,19 @@ void grpc_server_start(grpc_server *server);
692
344
  Shutdown is idempotent, and all tags will be notified at once if multiple
693
345
  grpc_server_shutdown_and_notify calls are made. 'cq' must have been
694
346
  registered to this server via grpc_server_register_completion_queue. */
695
- void grpc_server_shutdown_and_notify(grpc_server *server,
696
- grpc_completion_queue *cq, void *tag);
347
+ GRPC_API void grpc_server_shutdown_and_notify(grpc_server *server,
348
+ grpc_completion_queue *cq,
349
+ void *tag);
697
350
 
698
351
  /** Cancel all in-progress calls.
699
352
  Only usable after shutdown. */
700
- void grpc_server_cancel_all_calls(grpc_server *server);
353
+ GRPC_API void grpc_server_cancel_all_calls(grpc_server *server);
701
354
 
702
355
  /** Destroy a server.
703
356
  Shutdown must have completed beforehand (i.e. all tags generated by
704
357
  grpc_server_shutdown_and_notify must have been received, and at least
705
358
  one call to grpc_server_shutdown_and_notify must have been made). */
706
- void grpc_server_destroy(grpc_server *server);
359
+ GRPC_API void grpc_server_destroy(grpc_server *server);
707
360
 
708
361
  /** Enable or disable a tracer.
709
362
 
@@ -713,17 +366,18 @@ void grpc_server_destroy(grpc_server *server);
713
366
 
714
367
  Use of this function is not strictly thread-safe, but the
715
368
  thread-safety issues raised by it should not be of concern. */
716
- int grpc_tracer_set_enabled(const char *name, int enabled);
369
+ GRPC_API int grpc_tracer_set_enabled(const char *name, int enabled);
717
370
 
718
371
  /** Check whether a metadata key is legal (will be accepted by core) */
719
- int grpc_header_key_is_legal(const char *key, size_t length);
372
+ GRPC_API int grpc_header_key_is_legal(const char *key, size_t length);
720
373
 
721
374
  /** Check whether a non-binary metadata value is legal (will be accepted by
722
375
  core) */
723
- int grpc_header_nonbin_value_is_legal(const char *value, size_t length);
376
+ GRPC_API int grpc_header_nonbin_value_is_legal(const char *value,
377
+ size_t length);
724
378
 
725
379
  /** Check whether a metadata key corresponds to a binary value */
726
- int grpc_is_binary_header(const char *key, size_t length);
380
+ GRPC_API int grpc_is_binary_header(const char *key, size_t length);
727
381
 
728
382
  #ifdef __cplusplus
729
383
  }