awesome-grpc-that-works 0.12.2 → 0.14.0.dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (724) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/Makefile +5783 -22121
  4. data/include/grpc/byte_buffer.h +2 -83
  5. data/include/grpc/census.h +173 -121
  6. data/include/grpc/compression.h +14 -38
  7. data/include/grpc/grpc.h +85 -434
  8. data/include/grpc/grpc_security.h +76 -46
  9. data/include/grpc/grpc_zookeeper.h +1 -1
  10. data/include/grpc/impl/codegen/alloc.h +74 -0
  11. data/include/grpc/impl/codegen/atm.h +92 -0
  12. data/include/grpc/impl/codegen/atm_gcc_atomic.h +72 -0
  13. data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
  14. data/include/grpc/impl/codegen/atm_win32.h +125 -0
  15. data/include/grpc/impl/codegen/byte_buffer.h +121 -0
  16. data/include/grpc/impl/codegen/compression_types.h +73 -0
  17. data/include/grpc/impl/codegen/connectivity_state.h +59 -0
  18. data/include/grpc/impl/codegen/grpc_types.h +378 -0
  19. data/include/grpc/impl/codegen/log.h +110 -0
  20. data/include/grpc/impl/codegen/port_platform.h +370 -0
  21. data/include/grpc/impl/codegen/propagation_bits.h +67 -0
  22. data/include/grpc/impl/codegen/slice.h +182 -0
  23. data/include/grpc/impl/codegen/slice_buffer.h +105 -0
  24. data/include/grpc/impl/codegen/status.h +163 -0
  25. data/include/grpc/impl/codegen/sync.h +316 -0
  26. data/include/grpc/impl/codegen/sync_generic.h +55 -0
  27. data/{src/core/census/context.h → include/grpc/impl/codegen/sync_posix.h} +11 -11
  28. data/include/grpc/impl/codegen/sync_win32.h +49 -0
  29. data/include/grpc/impl/codegen/time.h +130 -0
  30. data/include/grpc/status.h +2 -126
  31. data/include/grpc/support/alloc.h +2 -35
  32. data/include/grpc/support/atm.h +2 -55
  33. data/include/grpc/support/atm_gcc_atomic.h +5 -38
  34. data/include/grpc/support/atm_gcc_sync.h +2 -50
  35. data/include/grpc/support/atm_win32.h +2 -88
  36. data/include/grpc/support/avl.h +10 -9
  37. data/include/grpc/support/cmdline.h +15 -13
  38. data/include/grpc/support/cpu.h +5 -3
  39. data/include/grpc/support/histogram.h +23 -20
  40. data/include/grpc/support/host_port.h +5 -3
  41. data/include/grpc/support/log.h +2 -71
  42. data/include/grpc/support/log_win32.h +2 -2
  43. data/include/grpc/support/port_platform.h +2 -319
  44. data/include/grpc/support/slice.h +2 -145
  45. data/include/grpc/support/slice_buffer.h +2 -65
  46. data/include/grpc/support/string_util.h +3 -3
  47. data/include/grpc/support/subprocess.h +8 -6
  48. data/include/grpc/support/sync.h +2 -278
  49. data/include/grpc/support/sync_generic.h +2 -18
  50. data/include/grpc/support/sync_posix.h +2 -10
  51. data/include/grpc/support/sync_win32.h +2 -12
  52. data/include/grpc/support/thd.h +11 -11
  53. data/include/grpc/support/time.h +2 -91
  54. data/include/grpc/support/tls.h +1 -1
  55. data/include/grpc/support/tls_gcc.h +1 -1
  56. data/include/grpc/support/tls_msvc.h +1 -1
  57. data/include/grpc/support/tls_pthread.h +2 -2
  58. data/include/grpc/support/useful.h +3 -1
  59. data/src/boringssl/err_data.c +1252 -0
  60. data/src/core/census/context.c +471 -8
  61. data/src/core/census/grpc_filter.c +5 -5
  62. data/src/core/census/initialize.c +4 -7
  63. data/src/core/census/mlog.c +600 -0
  64. data/src/core/census/mlog.h +95 -0
  65. data/src/core/census/operation.c +2 -2
  66. data/src/core/census/placeholders.c +109 -0
  67. data/src/core/census/rpc_metric_id.h +6 -6
  68. data/src/core/census/tracing.c +1 -1
  69. data/src/core/channel/channel_args.c +71 -9
  70. data/src/core/channel/channel_args.h +7 -1
  71. data/src/core/channel/channel_stack.c +1 -1
  72. data/src/core/channel/client_channel.c +33 -30
  73. data/src/core/channel/client_uchannel.c +3 -3
  74. data/src/core/channel/compress_filter.c +8 -8
  75. data/src/core/channel/http_client_filter.c +4 -4
  76. data/src/core/channel/http_server_filter.c +11 -11
  77. data/src/core/channel/subchannel_call_holder.c +11 -11
  78. data/src/core/client_config/connector.c +3 -2
  79. data/src/core/client_config/connector.h +2 -2
  80. data/src/core/client_config/lb_policies/load_balancer_api.c +163 -0
  81. data/src/core/client_config/lb_policies/load_balancer_api.h +85 -0
  82. data/src/core/client_config/lb_policies/pick_first.c +57 -40
  83. data/src/core/client_config/lb_policies/round_robin.c +14 -15
  84. data/src/core/client_config/lb_policy.c +3 -3
  85. data/src/core/client_config/lb_policy.h +3 -2
  86. data/src/core/client_config/resolvers/dns_resolver.c +3 -3
  87. data/src/core/client_config/resolvers/sockaddr_resolver.c +5 -5
  88. data/src/core/client_config/subchannel.c +84 -39
  89. data/src/core/client_config/subchannel.h +15 -6
  90. data/src/core/client_config/subchannel_index.c +261 -0
  91. data/src/core/client_config/subchannel_index.h +77 -0
  92. data/src/core/compression/{algorithm.c → compression_algorithm.c} +3 -3
  93. data/src/core/httpcli/format_request.c +1 -1
  94. data/src/core/httpcli/httpcli.c +18 -16
  95. data/src/core/httpcli/httpcli.h +3 -2
  96. data/src/core/httpcli/httpcli_security_connector.c +9 -10
  97. data/src/core/httpcli/parser.c +7 -7
  98. data/src/core/httpcli/parser.h +1 -1
  99. data/src/core/iomgr/closure.c +7 -7
  100. data/src/core/iomgr/closure.h +6 -5
  101. data/src/core/iomgr/exec_ctx.c +12 -8
  102. data/src/core/iomgr/exec_ctx.h +12 -5
  103. data/src/core/iomgr/executor.c +4 -4
  104. data/src/core/iomgr/executor.h +2 -2
  105. data/src/core/iomgr/fd_posix.c +32 -19
  106. data/src/core/iomgr/fd_posix.h +7 -4
  107. data/src/core/iomgr/iocp_windows.c +7 -9
  108. data/src/core/iomgr/iomgr.c +2 -2
  109. data/src/core/iomgr/pollset.h +9 -10
  110. data/src/core/iomgr/pollset_multipoller_with_epoll.c +71 -5
  111. data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +9 -5
  112. data/src/core/iomgr/pollset_posix.c +44 -49
  113. data/src/core/iomgr/pollset_posix.h +14 -8
  114. data/src/core/iomgr/pollset_set.h +3 -9
  115. data/src/core/iomgr/pollset_set_posix.c +23 -3
  116. data/src/core/iomgr/pollset_set_posix.h +2 -18
  117. data/src/core/iomgr/pollset_set_windows.c +3 -3
  118. data/src/core/iomgr/pollset_set_windows.h +2 -2
  119. data/src/core/iomgr/pollset_windows.c +29 -37
  120. data/src/core/iomgr/pollset_windows.h +1 -5
  121. data/src/core/iomgr/resolve_address_posix.c +2 -2
  122. data/src/core/iomgr/resolve_address_windows.c +2 -2
  123. data/src/core/iomgr/sockaddr_utils.c +6 -6
  124. data/src/core/iomgr/sockaddr_win32.h +1 -6
  125. data/src/core/iomgr/tcp_client_posix.c +14 -12
  126. data/src/core/iomgr/tcp_client_windows.c +4 -4
  127. data/src/core/iomgr/tcp_posix.c +18 -10
  128. data/src/core/iomgr/tcp_posix.h +7 -1
  129. data/src/core/iomgr/tcp_server.h +40 -20
  130. data/src/core/iomgr/tcp_server_posix.c +106 -49
  131. data/src/core/iomgr/tcp_server_windows.c +98 -49
  132. data/src/core/iomgr/tcp_windows.c +11 -15
  133. data/src/core/iomgr/timer.c +10 -11
  134. data/src/core/iomgr/timer.h +22 -2
  135. data/src/core/iomgr/timer_heap.c +10 -10
  136. data/src/core/iomgr/timer_heap.h +2 -2
  137. data/src/core/iomgr/udp_server.c +7 -16
  138. data/src/core/iomgr/udp_server.h +2 -9
  139. data/src/core/iomgr/workqueue.h +2 -4
  140. data/src/core/iomgr/workqueue_posix.c +4 -3
  141. data/src/core/iomgr/workqueue_posix.h +3 -1
  142. data/src/core/json/json_reader.c +11 -12
  143. data/src/core/json/json_reader.h +4 -4
  144. data/src/core/json/json_string.c +19 -19
  145. data/src/core/json/json_writer.c +7 -9
  146. data/src/core/profiling/basic_timers.c +1 -1
  147. data/src/core/proto/grpc/lb/v0/load_balancer.pb.c +119 -0
  148. data/src/core/proto/grpc/lb/v0/load_balancer.pb.h +182 -0
  149. data/src/core/security/{base64.c → b64.c} +10 -10
  150. data/src/core/security/{base64.h → b64.h} +1 -1
  151. data/src/core/security/client_auth_filter.c +4 -5
  152. data/src/core/security/credentials.c +17 -10
  153. data/src/core/security/credentials.h +3 -3
  154. data/src/core/security/google_default_credentials.c +27 -22
  155. data/src/core/security/handshake.c +21 -12
  156. data/src/core/security/handshake.h +2 -1
  157. data/src/core/security/json_token.c +14 -8
  158. data/src/core/security/jwt_verifier.c +4 -3
  159. data/src/core/security/secure_endpoint.c +16 -16
  160. data/src/core/security/security_connector.c +131 -81
  161. data/src/core/security/security_connector.h +47 -27
  162. data/src/core/security/security_context.c +8 -3
  163. data/src/core/security/server_auth_filter.c +5 -5
  164. data/src/core/security/server_secure_chttp2.c +36 -37
  165. data/src/core/statistics/census_interface.h +2 -2
  166. data/src/core/statistics/census_rpc_stats.h +3 -3
  167. data/src/core/support/alloc.c +1 -1
  168. data/src/core/support/avl.c +2 -2
  169. data/src/core/support/cpu_posix.c +2 -2
  170. data/src/core/support/env_linux.c +28 -1
  171. data/src/core/support/env_win32.c +15 -7
  172. data/src/core/support/histogram.c +5 -5
  173. data/src/core/support/{file.c → load_file.c} +2 -2
  174. data/src/core/support/{file.h → load_file.h} +4 -12
  175. data/src/core/support/log_posix.c +1 -1
  176. data/src/core/support/log_win32.c +4 -3
  177. data/src/core/support/murmur_hash.c +11 -11
  178. data/src/core/support/murmur_hash.h +1 -1
  179. data/src/core/support/slice.c +11 -11
  180. data/src/core/support/slice_buffer.c +6 -6
  181. data/src/core/support/stack_lockfree.c +20 -10
  182. data/src/core/support/string.c +15 -15
  183. data/src/core/support/string.h +5 -5
  184. data/src/core/support/string_win32.c +5 -5
  185. data/src/core/support/subprocess_windows.c +141 -0
  186. data/src/core/support/sync.c +4 -4
  187. data/src/core/support/sync_posix.c +2 -2
  188. data/src/core/support/sync_win32.c +10 -5
  189. data/src/core/support/time.c +29 -29
  190. data/src/core/support/time_posix.c +15 -6
  191. data/src/core/support/time_precise.c +2 -2
  192. data/src/core/support/time_win32.c +18 -9
  193. data/src/core/support/tls_pthread.c +1 -1
  194. data/src/core/support/tmpfile.h +55 -0
  195. data/src/core/support/{file_posix.c → tmpfile_posix.c} +2 -2
  196. data/src/core/support/{file_win32.c → tmpfile_win32.c} +2 -2
  197. data/src/core/support/wrap_memcpy.c +53 -0
  198. data/src/core/surface/alarm.c +84 -0
  199. data/src/core/surface/byte_buffer_reader.c +1 -1
  200. data/src/core/surface/call.c +175 -116
  201. data/src/core/surface/call.h +2 -2
  202. data/src/core/surface/call_test_only.h +2 -2
  203. data/src/core/surface/channel.c +9 -9
  204. data/src/core/surface/channel.h +1 -1
  205. data/src/core/surface/channel_connectivity.c +3 -3
  206. data/src/core/surface/channel_create.c +4 -4
  207. data/src/core/surface/channel_ping.c +2 -2
  208. data/src/core/surface/completion_queue.c +84 -53
  209. data/src/core/surface/completion_queue.h +1 -1
  210. data/src/core/surface/init.c +11 -5
  211. data/src/core/surface/lame_client.c +2 -3
  212. data/src/core/surface/secure_channel_create.c +9 -10
  213. data/src/core/surface/server.c +30 -30
  214. data/src/core/surface/server_chttp2.c +8 -8
  215. data/src/core/surface/server_create.c +1 -4
  216. data/src/core/surface/validate_metadata.c +4 -4
  217. data/src/core/surface/version.c +2 -2
  218. data/src/core/transport/byte_stream.c +8 -6
  219. data/src/core/transport/byte_stream.h +6 -5
  220. data/src/core/transport/chttp2/bin_encoder.c +29 -29
  221. data/src/core/transport/chttp2/frame_data.c +29 -26
  222. data/src/core/transport/chttp2/frame_data.h +6 -6
  223. data/src/core/transport/chttp2/frame_goaway.c +30 -30
  224. data/src/core/transport/chttp2/frame_goaway.h +6 -6
  225. data/src/core/transport/chttp2/frame_ping.c +6 -6
  226. data/src/core/transport/chttp2/frame_ping.h +5 -5
  227. data/src/core/transport/chttp2/frame_rst_stream.c +18 -19
  228. data/src/core/transport/chttp2/frame_rst_stream.h +4 -4
  229. data/src/core/transport/chttp2/frame_settings.c +30 -30
  230. data/src/core/transport/chttp2/frame_settings.h +13 -13
  231. data/src/core/transport/chttp2/frame_window_update.c +17 -18
  232. data/src/core/transport/chttp2/frame_window_update.h +5 -7
  233. data/src/core/transport/chttp2/hpack_encoder.c +69 -73
  234. data/src/core/transport/chttp2/hpack_encoder.h +16 -16
  235. data/src/core/transport/chttp2/hpack_parser.c +167 -167
  236. data/src/core/transport/chttp2/hpack_parser.h +16 -16
  237. data/src/core/transport/chttp2/hpack_table.c +13 -13
  238. data/src/core/transport/chttp2/hpack_table.h +11 -11
  239. data/src/core/transport/chttp2/internal.h +103 -87
  240. data/src/core/transport/chttp2/parsing.c +25 -25
  241. data/src/core/transport/chttp2/stream_lists.c +38 -1
  242. data/src/core/transport/chttp2/stream_map.c +13 -14
  243. data/src/core/transport/chttp2/stream_map.h +6 -7
  244. data/src/core/transport/chttp2/timeout_encoding.c +19 -16
  245. data/src/core/transport/chttp2/varint.c +8 -9
  246. data/src/core/transport/chttp2/varint.h +7 -8
  247. data/src/core/transport/chttp2/writing.c +25 -22
  248. data/src/core/transport/chttp2_transport.c +147 -100
  249. data/src/core/transport/connectivity_state.c +6 -6
  250. data/src/core/transport/metadata.c +18 -18
  251. data/src/core/transport/metadata.h +5 -5
  252. data/src/core/transport/static_metadata.c +32 -33
  253. data/src/core/transport/static_metadata.h +8 -8
  254. data/src/core/transport/transport.c +6 -5
  255. data/src/core/transport/transport.h +17 -1
  256. data/src/core/tsi/fake_transport_security.c +7 -7
  257. data/src/core/tsi/ssl_transport_security.c +6 -4
  258. data/src/core/{iomgr/timer_internal.h → tsi/ssl_types.h} +19 -25
  259. data/src/ruby/ext/grpc/extconf.rb +52 -14
  260. data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
  261. data/src/ruby/ext/grpc/rb_call.c +7 -3
  262. data/src/ruby/ext/grpc/rb_call_credentials.c +4 -0
  263. data/src/ruby/ext/grpc/rb_channel.c +4 -2
  264. data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
  265. data/src/ruby/ext/grpc/rb_channel_credentials.c +3 -1
  266. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -1
  267. data/src/ruby/ext/grpc/rb_event_thread.c +5 -0
  268. data/src/ruby/ext/grpc/rb_grpc.c +28 -19
  269. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +562 -0
  270. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +846 -0
  271. data/src/ruby/ext/grpc/rb_loader.c +72 -0
  272. data/src/ruby/ext/grpc/rb_loader.h +40 -0
  273. data/src/ruby/ext/grpc/rb_server.c +3 -1
  274. data/src/ruby/ext/grpc/rb_server_credentials.c +4 -2
  275. data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
  276. data/src/ruby/lib/grpc/errors.rb +2 -2
  277. data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
  278. data/src/ruby/lib/grpc/generic/rpc_desc.rb +1 -1
  279. data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
  280. data/src/ruby/lib/grpc/grpc.rb +34 -0
  281. data/src/ruby/lib/grpc/version.rb +1 -1
  282. data/src/ruby/pb/README.md +2 -2
  283. data/src/ruby/pb/generate_proto_ruby.sh +2 -2
  284. data/src/ruby/pb/grpc/health/checker.rb +11 -11
  285. data/src/ruby/pb/grpc/health/v1/health.rb +28 -0
  286. data/src/ruby/pb/grpc/health/{v1alpha → v1}/health_services.rb +4 -4
  287. data/src/ruby/spec/client_server_spec.rb +2 -1
  288. data/src/ruby/spec/pb/health/checker_spec.rb +23 -37
  289. data/third_party/boringssl/crypto/aes/aes.c +1142 -0
  290. data/third_party/boringssl/crypto/aes/internal.h +87 -0
  291. data/third_party/boringssl/crypto/aes/mode_wrappers.c +108 -0
  292. data/third_party/boringssl/crypto/asn1/a_bitstr.c +255 -0
  293. data/third_party/boringssl/crypto/asn1/a_bool.c +112 -0
  294. data/third_party/boringssl/crypto/asn1/a_bytes.c +317 -0
  295. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +286 -0
  296. data/third_party/boringssl/crypto/asn1/a_dup.c +103 -0
  297. data/third_party/boringssl/crypto/asn1/a_enum.c +183 -0
  298. data/third_party/boringssl/crypto/asn1/a_gentm.c +255 -0
  299. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +154 -0
  300. data/third_party/boringssl/crypto/asn1/a_int.c +456 -0
  301. data/third_party/boringssl/crypto/asn1/a_mbstr.c +390 -0
  302. data/third_party/boringssl/crypto/asn1/a_object.c +412 -0
  303. data/third_party/boringssl/crypto/asn1/a_octet.c +70 -0
  304. data/third_party/boringssl/crypto/asn1/a_print.c +119 -0
  305. data/third_party/boringssl/crypto/asn1/a_strnid.c +286 -0
  306. data/third_party/boringssl/crypto/asn1/a_time.c +221 -0
  307. data/third_party/boringssl/crypto/asn1/a_type.c +160 -0
  308. data/third_party/boringssl/crypto/asn1/a_utctm.c +342 -0
  309. data/third_party/boringssl/crypto/asn1/a_utf8.c +210 -0
  310. data/third_party/boringssl/crypto/asn1/asn1_lib.c +510 -0
  311. data/third_party/boringssl/crypto/asn1/asn1_locl.h +73 -0
  312. data/third_party/boringssl/crypto/asn1/asn1_par.c +444 -0
  313. data/third_party/boringssl/crypto/asn1/asn_pack.c +104 -0
  314. data/third_party/boringssl/crypto/asn1/bio_asn1.c +496 -0
  315. data/third_party/boringssl/crypto/asn1/bio_ndef.c +254 -0
  316. data/third_party/boringssl/crypto/asn1/f_enum.c +206 -0
  317. data/third_party/boringssl/crypto/asn1/f_int.c +210 -0
  318. data/third_party/boringssl/crypto/asn1/f_string.c +204 -0
  319. data/third_party/boringssl/crypto/asn1/t_bitst.c +102 -0
  320. data/third_party/boringssl/crypto/asn1/t_pkey.c +112 -0
  321. data/third_party/boringssl/crypto/asn1/tasn_dec.c +1342 -0
  322. data/third_party/boringssl/crypto/asn1/tasn_enc.c +695 -0
  323. data/third_party/boringssl/crypto/asn1/tasn_fre.c +264 -0
  324. data/third_party/boringssl/crypto/asn1/tasn_new.c +398 -0
  325. data/third_party/boringssl/crypto/asn1/tasn_prn.c +642 -0
  326. data/third_party/boringssl/crypto/asn1/tasn_typ.c +137 -0
  327. data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
  328. data/third_party/boringssl/crypto/asn1/x_bignum.c +143 -0
  329. data/third_party/boringssl/crypto/asn1/x_long.c +182 -0
  330. data/third_party/boringssl/crypto/base64/base64.c +478 -0
  331. data/third_party/boringssl/crypto/bio/bio.c +608 -0
  332. data/third_party/boringssl/crypto/bio/bio_mem.c +327 -0
  333. data/third_party/boringssl/crypto/bio/buffer.c +496 -0
  334. data/third_party/boringssl/crypto/bio/connect.c +544 -0
  335. data/third_party/boringssl/crypto/bio/fd.c +270 -0
  336. data/third_party/boringssl/crypto/bio/file.c +349 -0
  337. data/third_party/boringssl/crypto/bio/hexdump.c +192 -0
  338. data/third_party/boringssl/crypto/bio/internal.h +108 -0
  339. data/third_party/boringssl/crypto/bio/pair.c +803 -0
  340. data/third_party/boringssl/crypto/bio/printf.c +119 -0
  341. data/third_party/boringssl/crypto/bio/socket.c +195 -0
  342. data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
  343. data/third_party/boringssl/crypto/bn/add.c +377 -0
  344. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +599 -0
  345. data/third_party/boringssl/crypto/bn/bn.c +341 -0
  346. data/third_party/boringssl/crypto/bn/bn_asn1.c +93 -0
  347. data/third_party/boringssl/crypto/bn/cmp.c +200 -0
  348. data/third_party/boringssl/crypto/bn/convert.c +597 -0
  349. data/third_party/boringssl/crypto/bn/ctx.c +311 -0
  350. data/third_party/boringssl/crypto/bn/div.c +625 -0
  351. data/third_party/boringssl/crypto/bn/exponentiation.c +1544 -0
  352. data/third_party/boringssl/crypto/bn/gcd.c +711 -0
  353. data/third_party/boringssl/crypto/bn/generic.c +1019 -0
  354. data/third_party/boringssl/crypto/bn/internal.h +294 -0
  355. data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
  356. data/third_party/boringssl/crypto/bn/montgomery.c +561 -0
  357. data/third_party/boringssl/crypto/bn/mul.c +888 -0
  358. data/third_party/boringssl/crypto/bn/prime.c +845 -0
  359. data/third_party/boringssl/crypto/bn/random.c +326 -0
  360. data/third_party/boringssl/crypto/bn/rsaz_exp.c +326 -0
  361. data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
  362. data/third_party/boringssl/crypto/bn/shift.c +299 -0
  363. data/third_party/boringssl/crypto/bn/sqrt.c +505 -0
  364. data/third_party/boringssl/crypto/buf/buf.c +235 -0
  365. data/third_party/boringssl/crypto/bytestring/ber.c +221 -0
  366. data/third_party/boringssl/crypto/bytestring/cbb.c +411 -0
  367. data/third_party/boringssl/crypto/bytestring/cbs.c +415 -0
  368. data/third_party/boringssl/crypto/bytestring/internal.h +46 -0
  369. data/third_party/boringssl/crypto/chacha/chacha_generic.c +140 -0
  370. data/third_party/boringssl/crypto/chacha/chacha_vec.c +323 -0
  371. data/third_party/boringssl/crypto/cipher/aead.c +167 -0
  372. data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
  373. data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
  374. data/third_party/boringssl/crypto/cipher/e_aes.c +1767 -0
  375. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +311 -0
  376. data/third_party/boringssl/crypto/cipher/e_des.c +207 -0
  377. data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
  378. data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
  379. data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
  380. data/third_party/boringssl/crypto/cipher/e_ssl3.c +463 -0
  381. data/third_party/boringssl/crypto/cipher/e_tls.c +673 -0
  382. data/third_party/boringssl/crypto/cipher/internal.h +164 -0
  383. data/third_party/boringssl/crypto/cipher/tls_cbc.c +495 -0
  384. data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
  385. data/third_party/boringssl/crypto/conf/conf.c +778 -0
  386. data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
  387. data/third_party/boringssl/crypto/conf/internal.h +31 -0
  388. data/third_party/boringssl/crypto/cpu-arm.c +199 -0
  389. data/third_party/boringssl/crypto/cpu-intel.c +261 -0
  390. data/third_party/boringssl/crypto/crypto.c +140 -0
  391. data/third_party/boringssl/crypto/curve25519/curve25519.c +4897 -0
  392. data/third_party/boringssl/crypto/des/des.c +771 -0
  393. data/third_party/boringssl/crypto/des/internal.h +212 -0
  394. data/third_party/boringssl/crypto/dh/check.c +180 -0
  395. data/third_party/boringssl/crypto/dh/dh.c +463 -0
  396. data/third_party/boringssl/crypto/dh/dh_asn1.c +84 -0
  397. data/third_party/boringssl/crypto/dh/internal.h +80 -0
  398. data/third_party/boringssl/crypto/dh/params.c +301 -0
  399. data/third_party/boringssl/crypto/digest/digest.c +248 -0
  400. data/third_party/boringssl/crypto/digest/digests.c +321 -0
  401. data/third_party/boringssl/crypto/digest/internal.h +112 -0
  402. data/third_party/boringssl/crypto/digest/md32_common.h +322 -0
  403. data/third_party/boringssl/crypto/directory.h +66 -0
  404. data/third_party/boringssl/crypto/directory_posix.c +108 -0
  405. data/third_party/boringssl/crypto/directory_win.c +144 -0
  406. data/third_party/boringssl/crypto/dsa/dsa.c +908 -0
  407. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +150 -0
  408. data/third_party/boringssl/crypto/dsa/internal.h +78 -0
  409. data/third_party/boringssl/crypto/ec/ec.c +889 -0
  410. data/third_party/boringssl/crypto/ec/ec_asn1.c +586 -0
  411. data/third_party/boringssl/crypto/ec/ec_key.c +482 -0
  412. data/third_party/boringssl/crypto/ec/ec_montgomery.c +280 -0
  413. data/third_party/boringssl/crypto/ec/internal.h +318 -0
  414. data/third_party/boringssl/crypto/ec/oct.c +416 -0
  415. data/third_party/boringssl/crypto/ec/p224-64.c +1305 -0
  416. data/third_party/boringssl/crypto/ec/p256-64.c +1878 -0
  417. data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9548 -0
  418. data/third_party/boringssl/crypto/ec/p256-x86_64.c +596 -0
  419. data/third_party/boringssl/crypto/ec/simple.c +1313 -0
  420. data/third_party/boringssl/crypto/ec/util-64.c +183 -0
  421. data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
  422. data/third_party/boringssl/crypto/ecdh/ecdh.c +153 -0
  423. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +496 -0
  424. data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +240 -0
  425. data/third_party/boringssl/crypto/engine/engine.c +96 -0
  426. data/third_party/boringssl/crypto/err/err.c +756 -0
  427. data/third_party/boringssl/crypto/evp/algorithm.c +153 -0
  428. data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
  429. data/third_party/boringssl/crypto/evp/evp.c +411 -0
  430. data/third_party/boringssl/crypto/evp/evp_asn1.c +179 -0
  431. data/third_party/boringssl/crypto/evp/evp_ctx.c +477 -0
  432. data/third_party/boringssl/crypto/evp/internal.h +278 -0
  433. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +588 -0
  434. data/third_party/boringssl/crypto/evp/p_ec.c +283 -0
  435. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +562 -0
  436. data/third_party/boringssl/crypto/evp/p_rsa.c +596 -0
  437. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +737 -0
  438. data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
  439. data/third_party/boringssl/crypto/evp/sign.c +151 -0
  440. data/third_party/boringssl/crypto/ex_data.c +294 -0
  441. data/third_party/boringssl/crypto/hkdf/hkdf.c +89 -0
  442. data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
  443. data/third_party/boringssl/crypto/internal.h +532 -0
  444. data/third_party/boringssl/crypto/lhash/lhash.c +346 -0
  445. data/third_party/boringssl/crypto/md4/md4.c +225 -0
  446. data/third_party/boringssl/crypto/md5/md5.c +275 -0
  447. data/third_party/boringssl/crypto/mem.c +200 -0
  448. data/third_party/boringssl/crypto/modes/cbc.c +216 -0
  449. data/third_party/boringssl/crypto/modes/cfb.c +231 -0
  450. data/third_party/boringssl/crypto/modes/ctr.c +226 -0
  451. data/third_party/boringssl/crypto/modes/gcm.c +1252 -0
  452. data/third_party/boringssl/crypto/modes/internal.h +370 -0
  453. data/third_party/boringssl/crypto/modes/ofb.c +108 -0
  454. data/third_party/boringssl/crypto/obj/obj.c +664 -0
  455. data/third_party/boringssl/crypto/obj/obj_dat.h +5257 -0
  456. data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
  457. data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
  458. data/third_party/boringssl/crypto/pem/pem_all.c +281 -0
  459. data/third_party/boringssl/crypto/pem/pem_info.c +404 -0
  460. data/third_party/boringssl/crypto/pem/pem_lib.c +835 -0
  461. data/third_party/boringssl/crypto/pem/pem_oth.c +89 -0
  462. data/third_party/boringssl/crypto/pem/pem_pk8.c +244 -0
  463. data/third_party/boringssl/crypto/pem/pem_pkey.c +312 -0
  464. data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
  465. data/third_party/boringssl/crypto/pem/pem_xaux.c +66 -0
  466. data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
  467. data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +150 -0
  468. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +440 -0
  469. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
  470. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1217 -0
  471. data/third_party/boringssl/crypto/poly1305/poly1305.c +331 -0
  472. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +301 -0
  473. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +892 -0
  474. data/third_party/boringssl/crypto/rand/internal.h +32 -0
  475. data/third_party/boringssl/crypto/rand/rand.c +239 -0
  476. data/third_party/boringssl/crypto/rand/urandom.c +223 -0
  477. data/third_party/boringssl/crypto/rand/windows.c +56 -0
  478. data/third_party/boringssl/crypto/rc4/rc4.c +283 -0
  479. data/third_party/boringssl/crypto/refcount_c11.c +67 -0
  480. data/third_party/boringssl/crypto/refcount_lock.c +53 -0
  481. data/third_party/boringssl/crypto/rsa/blinding.c +462 -0
  482. data/third_party/boringssl/crypto/rsa/internal.h +164 -0
  483. data/third_party/boringssl/crypto/rsa/padding.c +711 -0
  484. data/third_party/boringssl/crypto/rsa/rsa.c +808 -0
  485. data/third_party/boringssl/crypto/rsa/rsa_asn1.c +473 -0
  486. data/third_party/boringssl/crypto/rsa/rsa_impl.c +1138 -0
  487. data/third_party/boringssl/crypto/sha/sha1.c +337 -0
  488. data/third_party/boringssl/crypto/sha/sha256.c +327 -0
  489. data/third_party/boringssl/crypto/sha/sha512.c +607 -0
  490. data/third_party/boringssl/crypto/stack/stack.c +386 -0
  491. data/third_party/boringssl/crypto/test/scoped_types.h +137 -0
  492. data/third_party/boringssl/crypto/test/test_util.h +35 -0
  493. data/third_party/boringssl/crypto/thread.c +101 -0
  494. data/third_party/boringssl/crypto/thread_none.c +55 -0
  495. data/third_party/boringssl/crypto/thread_pthread.c +167 -0
  496. data/third_party/boringssl/crypto/thread_win.c +282 -0
  497. data/third_party/boringssl/crypto/time_support.c +212 -0
  498. data/third_party/boringssl/crypto/x509/a_digest.c +97 -0
  499. data/third_party/boringssl/crypto/x509/a_sign.c +136 -0
  500. data/third_party/boringssl/crypto/x509/a_strex.c +564 -0
  501. data/third_party/boringssl/crypto/x509/a_verify.c +133 -0
  502. data/third_party/boringssl/crypto/x509/asn1_gen.c +873 -0
  503. data/third_party/boringssl/crypto/x509/by_dir.c +491 -0
  504. data/third_party/boringssl/crypto/x509/by_file.c +295 -0
  505. data/third_party/boringssl/crypto/x509/charmap.h +15 -0
  506. data/third_party/boringssl/crypto/x509/i2d_pr.c +84 -0
  507. data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
  508. data/third_party/boringssl/crypto/x509/t_crl.c +129 -0
  509. data/third_party/boringssl/crypto/x509/t_req.c +246 -0
  510. data/third_party/boringssl/crypto/x509/t_x509.c +500 -0
  511. data/third_party/boringssl/crypto/x509/t_x509a.c +109 -0
  512. data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
  513. data/third_party/boringssl/crypto/x509/x509.c +152 -0
  514. data/third_party/boringssl/crypto/x509/x509_att.c +353 -0
  515. data/third_party/boringssl/crypto/x509/x509_cmp.c +490 -0
  516. data/third_party/boringssl/crypto/x509/x509_d2.c +105 -0
  517. data/third_party/boringssl/crypto/x509/x509_def.c +88 -0
  518. data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
  519. data/third_party/boringssl/crypto/x509/x509_lu.c +738 -0
  520. data/third_party/boringssl/crypto/x509/x509_obj.c +191 -0
  521. data/third_party/boringssl/crypto/x509/x509_r2x.c +113 -0
  522. data/third_party/boringssl/crypto/x509/x509_req.c +315 -0
  523. data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
  524. data/third_party/boringssl/crypto/x509/x509_trs.c +304 -0
  525. data/third_party/boringssl/crypto/x509/x509_txt.c +209 -0
  526. data/third_party/boringssl/crypto/x509/x509_v3.c +271 -0
  527. data/third_party/boringssl/crypto/x509/x509_vfy.c +2456 -0
  528. data/third_party/boringssl/crypto/x509/x509_vpm.c +672 -0
  529. data/third_party/boringssl/crypto/x509/x509cset.c +172 -0
  530. data/third_party/boringssl/crypto/x509/x509name.c +381 -0
  531. data/third_party/boringssl/crypto/x509/x509rset.c +80 -0
  532. data/third_party/boringssl/crypto/x509/x509spki.c +135 -0
  533. data/third_party/boringssl/crypto/x509/x509type.c +128 -0
  534. data/third_party/boringssl/crypto/x509/x_algor.c +154 -0
  535. data/third_party/boringssl/crypto/x509/x_all.c +547 -0
  536. data/third_party/boringssl/crypto/x509/x_attrib.c +117 -0
  537. data/third_party/boringssl/crypto/x509/x_crl.c +560 -0
  538. data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
  539. data/third_party/boringssl/crypto/x509/x_info.c +95 -0
  540. data/third_party/boringssl/crypto/x509/x_name.c +538 -0
  541. data/third_party/boringssl/crypto/x509/x_pkey.c +100 -0
  542. data/third_party/boringssl/crypto/x509/x_pubkey.c +384 -0
  543. data/third_party/boringssl/crypto/x509/x_req.c +112 -0
  544. data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
  545. data/third_party/boringssl/crypto/x509/x_spki.c +78 -0
  546. data/third_party/boringssl/crypto/x509/x_val.c +69 -0
  547. data/third_party/boringssl/crypto/x509/x_x509.c +227 -0
  548. data/third_party/boringssl/crypto/x509/x_x509a.c +197 -0
  549. data/third_party/boringssl/crypto/x509v3/ext_dat.h +129 -0
  550. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +299 -0
  551. data/third_party/boringssl/crypto/x509v3/pcy_data.c +137 -0
  552. data/third_party/boringssl/crypto/x509v3/pcy_int.h +212 -0
  553. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +165 -0
  554. data/third_party/boringssl/crypto/x509v3/pcy_map.c +133 -0
  555. data/third_party/boringssl/crypto/x509v3/pcy_node.c +197 -0
  556. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +876 -0
  557. data/third_party/boringssl/crypto/x509v3/v3_akey.c +212 -0
  558. data/third_party/boringssl/crypto/x509v3/v3_akeya.c +71 -0
  559. data/third_party/boringssl/crypto/x509v3/v3_alt.c +622 -0
  560. data/third_party/boringssl/crypto/x509v3/v3_bcons.c +126 -0
  561. data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
  562. data/third_party/boringssl/crypto/x509v3/v3_conf.c +459 -0
  563. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +475 -0
  564. data/third_party/boringssl/crypto/x509v3/v3_crld.c +616 -0
  565. data/third_party/boringssl/crypto/x509v3/v3_enum.c +98 -0
  566. data/third_party/boringssl/crypto/x509v3/v3_extku.c +145 -0
  567. data/third_party/boringssl/crypto/x509v3/v3_genn.c +252 -0
  568. data/third_party/boringssl/crypto/x509v3/v3_ia5.c +117 -0
  569. data/third_party/boringssl/crypto/x509v3/v3_info.c +200 -0
  570. data/third_party/boringssl/crypto/x509v3/v3_int.c +87 -0
  571. data/third_party/boringssl/crypto/x509v3/v3_lib.c +335 -0
  572. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +510 -0
  573. data/third_party/boringssl/crypto/x509v3/v3_pci.c +335 -0
  574. data/third_party/boringssl/crypto/x509v3/v3_pcia.c +56 -0
  575. data/third_party/boringssl/crypto/x509v3/v3_pcons.c +142 -0
  576. data/third_party/boringssl/crypto/x509v3/v3_pku.c +109 -0
  577. data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +156 -0
  578. data/third_party/boringssl/crypto/x509v3/v3_prn.c +207 -0
  579. data/third_party/boringssl/crypto/x509v3/v3_purp.c +805 -0
  580. data/third_party/boringssl/crypto/x509v3/v3_skey.c +148 -0
  581. data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +266 -0
  582. data/third_party/boringssl/crypto/x509v3/v3_utl.c +1322 -0
  583. data/third_party/boringssl/include/openssl/aead.h +346 -0
  584. data/third_party/boringssl/include/openssl/aes.h +158 -0
  585. data/third_party/boringssl/include/openssl/arm_arch.h +127 -0
  586. data/third_party/boringssl/include/openssl/asn1.h +1168 -0
  587. data/third_party/boringssl/include/openssl/asn1_mac.h +75 -0
  588. data/third_party/boringssl/include/openssl/asn1t.h +906 -0
  589. data/third_party/boringssl/include/openssl/base.h +261 -0
  590. data/third_party/boringssl/include/openssl/base64.h +184 -0
  591. data/third_party/boringssl/include/openssl/bio.h +902 -0
  592. data/third_party/boringssl/include/openssl/blowfish.h +93 -0
  593. data/third_party/boringssl/include/openssl/bn.h +885 -0
  594. data/third_party/boringssl/include/openssl/buf.h +118 -0
  595. data/third_party/boringssl/include/openssl/buffer.h +18 -0
  596. data/third_party/boringssl/include/openssl/bytestring.h +360 -0
  597. data/third_party/boringssl/include/openssl/cast.h +96 -0
  598. data/third_party/boringssl/include/openssl/chacha.h +37 -0
  599. data/third_party/boringssl/include/openssl/cipher.h +571 -0
  600. data/third_party/boringssl/include/openssl/cmac.h +76 -0
  601. data/third_party/boringssl/include/openssl/conf.h +145 -0
  602. data/third_party/boringssl/include/openssl/cpu.h +184 -0
  603. data/third_party/boringssl/include/openssl/crypto.h +68 -0
  604. data/third_party/boringssl/include/openssl/curve25519.h +88 -0
  605. data/third_party/boringssl/include/openssl/des.h +177 -0
  606. data/third_party/boringssl/include/openssl/dh.h +238 -0
  607. data/third_party/boringssl/include/openssl/digest.h +258 -0
  608. data/third_party/boringssl/include/openssl/dsa.h +343 -0
  609. data/third_party/boringssl/include/openssl/dtls1.h +16 -0
  610. data/third_party/boringssl/include/openssl/ec.h +355 -0
  611. data/third_party/boringssl/include/openssl/ec_key.h +280 -0
  612. data/third_party/boringssl/include/openssl/ecdh.h +102 -0
  613. data/third_party/boringssl/include/openssl/ecdsa.h +206 -0
  614. data/third_party/boringssl/include/openssl/engine.h +98 -0
  615. data/third_party/boringssl/include/openssl/err.h +487 -0
  616. data/third_party/boringssl/include/openssl/evp.h +750 -0
  617. data/third_party/boringssl/include/openssl/ex_data.h +213 -0
  618. data/third_party/boringssl/include/openssl/hkdf.h +44 -0
  619. data/third_party/boringssl/include/openssl/hmac.h +160 -0
  620. data/third_party/boringssl/include/openssl/lhash.h +192 -0
  621. data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
  622. data/third_party/boringssl/include/openssl/md4.h +102 -0
  623. data/third_party/boringssl/include/openssl/md5.h +107 -0
  624. data/third_party/boringssl/include/openssl/mem.h +140 -0
  625. data/third_party/boringssl/include/openssl/obj.h +198 -0
  626. data/third_party/boringssl/include/openssl/obj_mac.h +4140 -0
  627. data/third_party/boringssl/include/openssl/objects.h +18 -0
  628. data/third_party/boringssl/include/openssl/opensslfeatures.h +60 -0
  629. data/third_party/boringssl/include/openssl/opensslv.h +18 -0
  630. data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  631. data/third_party/boringssl/include/openssl/pem.h +521 -0
  632. data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  633. data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
  634. data/third_party/boringssl/include/openssl/pkcs8.h +220 -0
  635. data/third_party/boringssl/include/openssl/poly1305.h +51 -0
  636. data/third_party/boringssl/include/openssl/pqueue.h +146 -0
  637. data/third_party/boringssl/include/openssl/rand.h +113 -0
  638. data/third_party/boringssl/include/openssl/rc4.h +90 -0
  639. data/third_party/boringssl/include/openssl/rsa.h +637 -0
  640. data/third_party/boringssl/include/openssl/safestack.h +16 -0
  641. data/third_party/boringssl/include/openssl/sha.h +256 -0
  642. data/third_party/boringssl/include/openssl/srtp.h +18 -0
  643. data/third_party/boringssl/include/openssl/ssl.h +4466 -0
  644. data/third_party/boringssl/include/openssl/ssl3.h +441 -0
  645. data/third_party/boringssl/include/openssl/stack.h +298 -0
  646. data/third_party/boringssl/include/openssl/stack_macros.h +4190 -0
  647. data/third_party/boringssl/include/openssl/thread.h +173 -0
  648. data/third_party/boringssl/include/openssl/time_support.h +90 -0
  649. data/third_party/boringssl/include/openssl/tls1.h +653 -0
  650. data/third_party/boringssl/include/openssl/type_check.h +91 -0
  651. data/third_party/boringssl/include/openssl/x509.h +1258 -0
  652. data/third_party/boringssl/include/openssl/x509_vfy.h +611 -0
  653. data/third_party/boringssl/include/openssl/x509v3.h +798 -0
  654. data/third_party/boringssl/ssl/custom_extensions.c +257 -0
  655. data/third_party/boringssl/ssl/d1_both.c +880 -0
  656. data/third_party/boringssl/ssl/d1_clnt.c +566 -0
  657. data/third_party/boringssl/ssl/d1_lib.c +340 -0
  658. data/third_party/boringssl/ssl/d1_meth.c +130 -0
  659. data/third_party/boringssl/ssl/d1_pkt.c +578 -0
  660. data/third_party/boringssl/ssl/d1_srtp.c +234 -0
  661. data/third_party/boringssl/ssl/d1_srvr.c +485 -0
  662. data/third_party/boringssl/ssl/dtls_record.c +308 -0
  663. data/third_party/boringssl/ssl/internal.h +1276 -0
  664. data/third_party/boringssl/ssl/pqueue/pqueue.c +197 -0
  665. data/third_party/boringssl/ssl/s3_both.c +571 -0
  666. data/third_party/boringssl/ssl/s3_clnt.c +2241 -0
  667. data/third_party/boringssl/ssl/s3_enc.c +494 -0
  668. data/third_party/boringssl/ssl/s3_lib.c +587 -0
  669. data/third_party/boringssl/ssl/s3_meth.c +166 -0
  670. data/third_party/boringssl/ssl/s3_pkt.c +732 -0
  671. data/third_party/boringssl/ssl/s3_srvr.c +2536 -0
  672. data/third_party/boringssl/ssl/ssl_aead_ctx.c +300 -0
  673. data/third_party/boringssl/ssl/ssl_asn1.c +718 -0
  674. data/third_party/boringssl/ssl/ssl_buffer.c +319 -0
  675. data/third_party/boringssl/ssl/ssl_cert.c +539 -0
  676. data/third_party/boringssl/ssl/ssl_cipher.c +2003 -0
  677. data/third_party/boringssl/ssl/ssl_file.c +633 -0
  678. data/third_party/boringssl/ssl/ssl_lib.c +2653 -0
  679. data/third_party/boringssl/ssl/ssl_rsa.c +423 -0
  680. data/third_party/boringssl/ssl/ssl_session.c +764 -0
  681. data/third_party/boringssl/ssl/ssl_stat.c +591 -0
  682. data/third_party/boringssl/ssl/t1_enc.c +708 -0
  683. data/third_party/boringssl/ssl/t1_lib.c +2905 -0
  684. data/third_party/boringssl/ssl/test/async_bio.h +45 -0
  685. data/third_party/boringssl/ssl/test/packeted_bio.h +44 -0
  686. data/third_party/boringssl/ssl/test/scoped_types.h +28 -0
  687. data/third_party/boringssl/ssl/test/test_config.h +108 -0
  688. data/third_party/boringssl/ssl/tls_record.c +342 -0
  689. data/third_party/nanopb/pb.h +547 -0
  690. data/third_party/nanopb/pb_common.c +97 -0
  691. data/third_party/nanopb/pb_common.h +42 -0
  692. data/third_party/nanopb/pb_decode.c +1319 -0
  693. data/third_party/nanopb/pb_decode.h +149 -0
  694. data/third_party/nanopb/pb_encode.c +690 -0
  695. data/third_party/nanopb/pb_encode.h +154 -0
  696. data/third_party/zlib/adler32.c +179 -0
  697. data/third_party/zlib/compress.c +80 -0
  698. data/third_party/zlib/crc32.c +425 -0
  699. data/third_party/zlib/crc32.h +441 -0
  700. data/third_party/zlib/deflate.c +1967 -0
  701. data/third_party/zlib/deflate.h +346 -0
  702. data/third_party/zlib/gzclose.c +25 -0
  703. data/third_party/zlib/gzguts.h +209 -0
  704. data/third_party/zlib/gzlib.c +634 -0
  705. data/third_party/zlib/gzread.c +594 -0
  706. data/third_party/zlib/gzwrite.c +577 -0
  707. data/third_party/zlib/infback.c +640 -0
  708. data/third_party/zlib/inffast.c +340 -0
  709. data/third_party/zlib/inffast.h +11 -0
  710. data/third_party/zlib/inffixed.h +94 -0
  711. data/third_party/zlib/inflate.c +1512 -0
  712. data/third_party/zlib/inflate.h +122 -0
  713. data/third_party/zlib/inftrees.c +306 -0
  714. data/third_party/zlib/inftrees.h +62 -0
  715. data/third_party/zlib/trees.c +1226 -0
  716. data/third_party/zlib/trees.h +128 -0
  717. data/third_party/zlib/uncompr.c +59 -0
  718. data/third_party/zlib/zconf.h +511 -0
  719. data/third_party/zlib/zlib.h +1768 -0
  720. data/third_party/zlib/zutil.c +324 -0
  721. data/third_party/zlib/zutil.h +253 -0
  722. metadata +504 -20
  723. data/Rakefile +0 -63
  724. data/src/ruby/pb/grpc/health/v1alpha/health.rb +0 -29
@@ -0,0 +1,547 @@
1
+ /* Common parts of the nanopb library. Most of these are quite low-level
2
+ * stuff. For the high-level interface, see pb_encode.h and pb_decode.h.
3
+ */
4
+
5
+ #ifndef PB_H_INCLUDED
6
+ #define PB_H_INCLUDED
7
+
8
+ /*****************************************************************
9
+ * Nanopb compilation time options. You can change these here by *
10
+ * uncommenting the lines, or on the compiler command line. *
11
+ *****************************************************************/
12
+
13
+ /* Enable support for dynamically allocated fields */
14
+ /* #define PB_ENABLE_MALLOC 1 */
15
+
16
+ /* Define this if your CPU architecture is big endian, i.e. it
17
+ * stores the most-significant byte first. */
18
+ /* #define __BIG_ENDIAN__ 1 */
19
+
20
+ /* Define this if your CPU / compiler combination does not support
21
+ * unaligned memory access to packed structures. */
22
+ /* #define PB_NO_PACKED_STRUCTS 1 */
23
+
24
+ /* Increase the number of required fields that are tracked.
25
+ * A compiler warning will tell if you need this. */
26
+ /* #define PB_MAX_REQUIRED_FIELDS 256 */
27
+
28
+ /* Add support for tag numbers > 255 and fields larger than 255 bytes. */
29
+ /* #define PB_FIELD_16BIT 1 */
30
+
31
+ /* Add support for tag numbers > 65536 and fields larger than 65536 bytes. */
32
+ /* #define PB_FIELD_32BIT 1 */
33
+
34
+ /* Disable support for error messages in order to save some code space. */
35
+ /* #define PB_NO_ERRMSG 1 */
36
+
37
+ /* Disable support for custom streams (support only memory buffers). */
38
+ /* #define PB_BUFFER_ONLY 1 */
39
+
40
+ /* Switch back to the old-style callback function signature.
41
+ * This was the default until nanopb-0.2.1. */
42
+ /* #define PB_OLD_CALLBACK_STYLE */
43
+
44
+
45
+ /******************************************************************
46
+ * You usually don't need to change anything below this line. *
47
+ * Feel free to look around and use the defined macros, though. *
48
+ ******************************************************************/
49
+
50
+
51
+ /* Version of the nanopb library. Just in case you want to check it in
52
+ * your own program. */
53
+ #define NANOPB_VERSION nanopb-0.3.5-dev
54
+
55
+ /* Include all the system headers needed by nanopb. You will need the
56
+ * definitions of the following:
57
+ * - strlen, memcpy, memset functions
58
+ * - [u]int8_t, [u]int16_t, [u]int32_t, [u]int64_t
59
+ * - size_t
60
+ * - bool
61
+ *
62
+ * If you don't have the standard header files, you can instead provide
63
+ * a custom header that defines or includes all this. In that case,
64
+ * define PB_SYSTEM_HEADER to the path of this file.
65
+ */
66
+ #ifdef PB_SYSTEM_HEADER
67
+ #include PB_SYSTEM_HEADER
68
+ #else
69
+ #include <stdint.h>
70
+ #include <stddef.h>
71
+ #include <stdbool.h>
72
+ #include <string.h>
73
+
74
+ #ifdef PB_ENABLE_MALLOC
75
+ #include <stdlib.h>
76
+ #endif
77
+ #endif
78
+
79
+ /* Macro for defining packed structures (compiler dependent).
80
+ * This just reduces memory requirements, but is not required.
81
+ */
82
+ #if defined(PB_NO_PACKED_STRUCTS)
83
+ /* Disable struct packing */
84
+ # define PB_PACKED_STRUCT_START
85
+ # define PB_PACKED_STRUCT_END
86
+ # define pb_packed
87
+ #elif defined(__GNUC__) || defined(__clang__)
88
+ /* For GCC and clang */
89
+ # define PB_PACKED_STRUCT_START
90
+ # define PB_PACKED_STRUCT_END
91
+ # define pb_packed __attribute__((packed))
92
+ #elif defined(__ICCARM__) || defined(__CC_ARM)
93
+ /* For IAR ARM and Keil MDK-ARM compilers */
94
+ # define PB_PACKED_STRUCT_START _Pragma("pack(push, 1)")
95
+ # define PB_PACKED_STRUCT_END _Pragma("pack(pop)")
96
+ # define pb_packed
97
+ #elif defined(_MSC_VER) && (_MSC_VER >= 1500)
98
+ /* For Microsoft Visual C++ */
99
+ # define PB_PACKED_STRUCT_START __pragma(pack(push, 1))
100
+ # define PB_PACKED_STRUCT_END __pragma(pack(pop))
101
+ # define pb_packed
102
+ #else
103
+ /* Unknown compiler */
104
+ # define PB_PACKED_STRUCT_START
105
+ # define PB_PACKED_STRUCT_END
106
+ # define pb_packed
107
+ #endif
108
+
109
+ /* Handly macro for suppressing unreferenced-parameter compiler warnings. */
110
+ #ifndef PB_UNUSED
111
+ #define PB_UNUSED(x) (void)(x)
112
+ #endif
113
+
114
+ /* Compile-time assertion, used for checking compatible compilation options.
115
+ * If this does not work properly on your compiler, use
116
+ * #define PB_NO_STATIC_ASSERT to disable it.
117
+ *
118
+ * But before doing that, check carefully the error message / place where it
119
+ * comes from to see if the error has a real cause. Unfortunately the error
120
+ * message is not always very clear to read, but you can see the reason better
121
+ * in the place where the PB_STATIC_ASSERT macro was called.
122
+ */
123
+ #ifndef PB_NO_STATIC_ASSERT
124
+ #ifndef PB_STATIC_ASSERT
125
+ #define PB_STATIC_ASSERT(COND,MSG) typedef char PB_STATIC_ASSERT_MSG(MSG, __LINE__, __COUNTER__)[(COND)?1:-1];
126
+ #define PB_STATIC_ASSERT_MSG(MSG, LINE, COUNTER) PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER)
127
+ #define PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) pb_static_assertion_##MSG##LINE##COUNTER
128
+ #endif
129
+ #else
130
+ #define PB_STATIC_ASSERT(COND,MSG)
131
+ #endif
132
+
133
+ /* Number of required fields to keep track of. */
134
+ #ifndef PB_MAX_REQUIRED_FIELDS
135
+ #define PB_MAX_REQUIRED_FIELDS 64
136
+ #endif
137
+
138
+ #if PB_MAX_REQUIRED_FIELDS < 64
139
+ #error You should not lower PB_MAX_REQUIRED_FIELDS from the default value (64).
140
+ #endif
141
+
142
+ /* List of possible field types. These are used in the autogenerated code.
143
+ * Least-significant 4 bits tell the scalar type
144
+ * Most-significant 4 bits specify repeated/required/packed etc.
145
+ */
146
+
147
+ typedef uint8_t pb_type_t;
148
+
149
+ /**** Field data types ****/
150
+
151
+ /* Numeric types */
152
+ #define PB_LTYPE_VARINT 0x00 /* int32, int64, enum, bool */
153
+ #define PB_LTYPE_UVARINT 0x01 /* uint32, uint64 */
154
+ #define PB_LTYPE_SVARINT 0x02 /* sint32, sint64 */
155
+ #define PB_LTYPE_FIXED32 0x03 /* fixed32, sfixed32, float */
156
+ #define PB_LTYPE_FIXED64 0x04 /* fixed64, sfixed64, double */
157
+
158
+ /* Marker for last packable field type. */
159
+ #define PB_LTYPE_LAST_PACKABLE 0x04
160
+
161
+ /* Byte array with pre-allocated buffer.
162
+ * data_size is the length of the allocated PB_BYTES_ARRAY structure. */
163
+ #define PB_LTYPE_BYTES 0x05
164
+
165
+ /* String with pre-allocated buffer.
166
+ * data_size is the maximum length. */
167
+ #define PB_LTYPE_STRING 0x06
168
+
169
+ /* Submessage
170
+ * submsg_fields is pointer to field descriptions */
171
+ #define PB_LTYPE_SUBMESSAGE 0x07
172
+
173
+ /* Extension pseudo-field
174
+ * The field contains a pointer to pb_extension_t */
175
+ #define PB_LTYPE_EXTENSION 0x08
176
+
177
+ /* Number of declared LTYPES */
178
+ #define PB_LTYPES_COUNT 9
179
+ #define PB_LTYPE_MASK 0x0F
180
+
181
+ /**** Field repetition rules ****/
182
+
183
+ #define PB_HTYPE_REQUIRED 0x00
184
+ #define PB_HTYPE_OPTIONAL 0x10
185
+ #define PB_HTYPE_REPEATED 0x20
186
+ #define PB_HTYPE_ONEOF 0x30
187
+ #define PB_HTYPE_MASK 0x30
188
+
189
+ /**** Field allocation types ****/
190
+
191
+ #define PB_ATYPE_STATIC 0x00
192
+ #define PB_ATYPE_POINTER 0x80
193
+ #define PB_ATYPE_CALLBACK 0x40
194
+ #define PB_ATYPE_MASK 0xC0
195
+
196
+ #define PB_ATYPE(x) ((x) & PB_ATYPE_MASK)
197
+ #define PB_HTYPE(x) ((x) & PB_HTYPE_MASK)
198
+ #define PB_LTYPE(x) ((x) & PB_LTYPE_MASK)
199
+
200
+ /* Data type used for storing sizes of struct fields
201
+ * and array counts.
202
+ */
203
+ #if defined(PB_FIELD_32BIT)
204
+ #define PB_SIZE_MAX ((uint32_t)-1)
205
+ typedef uint32_t pb_size_t;
206
+ typedef int32_t pb_ssize_t;
207
+ #elif defined(PB_FIELD_16BIT)
208
+ #define PB_SIZE_MAX ((uint16_t)-1)
209
+ typedef uint16_t pb_size_t;
210
+ typedef int16_t pb_ssize_t;
211
+ #else
212
+ #define PB_SIZE_MAX ((uint8_t)-1)
213
+ typedef uint8_t pb_size_t;
214
+ typedef int8_t pb_ssize_t;
215
+ #endif
216
+
217
+ /* This structure is used in auto-generated constants
218
+ * to specify struct fields.
219
+ * You can change field sizes if you need structures
220
+ * larger than 256 bytes or field tags larger than 256.
221
+ * The compiler should complain if your .proto has such
222
+ * structures. Fix that by defining PB_FIELD_16BIT or
223
+ * PB_FIELD_32BIT.
224
+ */
225
+ PB_PACKED_STRUCT_START
226
+ typedef struct pb_field_s pb_field_t;
227
+ struct pb_field_s {
228
+ pb_size_t tag;
229
+ pb_type_t type;
230
+ pb_size_t data_offset; /* Offset of field data, relative to previous field. */
231
+ pb_ssize_t size_offset; /* Offset of array size or has-boolean, relative to data */
232
+ pb_size_t data_size; /* Data size in bytes for a single item */
233
+ pb_size_t array_size; /* Maximum number of entries in array */
234
+
235
+ /* Field definitions for submessage
236
+ * OR default value for all other non-array, non-callback types
237
+ * If null, then field will zeroed. */
238
+ const void *ptr;
239
+ } pb_packed;
240
+ PB_PACKED_STRUCT_END
241
+
242
+ /* Make sure that the standard integer types are of the expected sizes.
243
+ * All kinds of things may break otherwise.. atleast all fixed* types.
244
+ *
245
+ * If you get errors here, it probably means that your stdint.h is not
246
+ * correct for your platform.
247
+ */
248
+ PB_STATIC_ASSERT(sizeof(int8_t) == 1, INT8_T_WRONG_SIZE)
249
+ PB_STATIC_ASSERT(sizeof(uint8_t) == 1, UINT8_T_WRONG_SIZE)
250
+ PB_STATIC_ASSERT(sizeof(int16_t) == 2, INT16_T_WRONG_SIZE)
251
+ PB_STATIC_ASSERT(sizeof(uint16_t) == 2, UINT16_T_WRONG_SIZE)
252
+ PB_STATIC_ASSERT(sizeof(int32_t) == 4, INT32_T_WRONG_SIZE)
253
+ PB_STATIC_ASSERT(sizeof(uint32_t) == 4, UINT32_T_WRONG_SIZE)
254
+ PB_STATIC_ASSERT(sizeof(int64_t) == 8, INT64_T_WRONG_SIZE)
255
+ PB_STATIC_ASSERT(sizeof(uint64_t) == 8, UINT64_T_WRONG_SIZE)
256
+
257
+ /* This structure is used for 'bytes' arrays.
258
+ * It has the number of bytes in the beginning, and after that an array.
259
+ * Note that actual structs used will have a different length of bytes array.
260
+ */
261
+ #define PB_BYTES_ARRAY_T(n) struct { pb_size_t size; uint8_t bytes[n]; }
262
+ #define PB_BYTES_ARRAY_T_ALLOCSIZE(n) ((size_t)n + offsetof(pb_bytes_array_t, bytes))
263
+
264
+ struct pb_bytes_array_s {
265
+ pb_size_t size;
266
+ uint8_t bytes[1];
267
+ };
268
+ typedef struct pb_bytes_array_s pb_bytes_array_t;
269
+
270
+ /* This structure is used for giving the callback function.
271
+ * It is stored in the message structure and filled in by the method that
272
+ * calls pb_decode.
273
+ *
274
+ * The decoding callback will be given a limited-length stream
275
+ * If the wire type was string, the length is the length of the string.
276
+ * If the wire type was a varint/fixed32/fixed64, the length is the length
277
+ * of the actual value.
278
+ * The function may be called multiple times (especially for repeated types,
279
+ * but also otherwise if the message happens to contain the field multiple
280
+ * times.)
281
+ *
282
+ * The encoding callback will receive the actual output stream.
283
+ * It should write all the data in one call, including the field tag and
284
+ * wire type. It can write multiple fields.
285
+ *
286
+ * The callback can be null if you want to skip a field.
287
+ */
288
+ typedef struct pb_istream_s pb_istream_t;
289
+ typedef struct pb_ostream_s pb_ostream_t;
290
+ typedef struct pb_callback_s pb_callback_t;
291
+ struct pb_callback_s {
292
+ #ifdef PB_OLD_CALLBACK_STYLE
293
+ /* Deprecated since nanopb-0.2.1 */
294
+ union {
295
+ bool (*decode)(pb_istream_t *stream, const pb_field_t *field, void *arg);
296
+ bool (*encode)(pb_ostream_t *stream, const pb_field_t *field, const void *arg);
297
+ } funcs;
298
+ #else
299
+ /* New function signature, which allows modifying arg contents in callback. */
300
+ union {
301
+ bool (*decode)(pb_istream_t *stream, const pb_field_t *field, void **arg);
302
+ bool (*encode)(pb_ostream_t *stream, const pb_field_t *field, void * const *arg);
303
+ } funcs;
304
+ #endif
305
+
306
+ /* Free arg for use by callback */
307
+ void *arg;
308
+ };
309
+
310
+ /* Wire types. Library user needs these only in encoder callbacks. */
311
+ typedef enum {
312
+ PB_WT_VARINT = 0,
313
+ PB_WT_64BIT = 1,
314
+ PB_WT_STRING = 2,
315
+ PB_WT_32BIT = 5
316
+ } pb_wire_type_t;
317
+
318
+ /* Structure for defining the handling of unknown/extension fields.
319
+ * Usually the pb_extension_type_t structure is automatically generated,
320
+ * while the pb_extension_t structure is created by the user. However,
321
+ * if you want to catch all unknown fields, you can also create a custom
322
+ * pb_extension_type_t with your own callback.
323
+ */
324
+ typedef struct pb_extension_type_s pb_extension_type_t;
325
+ typedef struct pb_extension_s pb_extension_t;
326
+ struct pb_extension_type_s {
327
+ /* Called for each unknown field in the message.
328
+ * If you handle the field, read off all of its data and return true.
329
+ * If you do not handle the field, do not read anything and return true.
330
+ * If you run into an error, return false.
331
+ * Set to NULL for default handler.
332
+ */
333
+ bool (*decode)(pb_istream_t *stream, pb_extension_t *extension,
334
+ uint32_t tag, pb_wire_type_t wire_type);
335
+
336
+ /* Called once after all regular fields have been encoded.
337
+ * If you have something to write, do so and return true.
338
+ * If you do not have anything to write, just return true.
339
+ * If you run into an error, return false.
340
+ * Set to NULL for default handler.
341
+ */
342
+ bool (*encode)(pb_ostream_t *stream, const pb_extension_t *extension);
343
+
344
+ /* Free field for use by the callback. */
345
+ const void *arg;
346
+ };
347
+
348
+ struct pb_extension_s {
349
+ /* Type describing the extension field. Usually you'll initialize
350
+ * this to a pointer to the automatically generated structure. */
351
+ const pb_extension_type_t *type;
352
+
353
+ /* Destination for the decoded data. This must match the datatype
354
+ * of the extension field. */
355
+ void *dest;
356
+
357
+ /* Pointer to the next extension handler, or NULL.
358
+ * If this extension does not match a field, the next handler is
359
+ * automatically called. */
360
+ pb_extension_t *next;
361
+
362
+ /* The decoder sets this to true if the extension was found.
363
+ * Ignored for encoding. */
364
+ bool found;
365
+ };
366
+
367
+ /* Memory allocation functions to use. You can define pb_realloc and
368
+ * pb_free to custom functions if you want. */
369
+ #ifdef PB_ENABLE_MALLOC
370
+ # ifndef pb_realloc
371
+ # define pb_realloc(ptr, size) realloc(ptr, size)
372
+ # endif
373
+ # ifndef pb_free
374
+ # define pb_free(ptr) free(ptr)
375
+ # endif
376
+ #endif
377
+
378
+ /* This is used to inform about need to regenerate .pb.h/.pb.c files. */
379
+ #define PB_PROTO_HEADER_VERSION 30
380
+
381
+ /* These macros are used to declare pb_field_t's in the constant array. */
382
+ /* Size of a structure member, in bytes. */
383
+ #define pb_membersize(st, m) (sizeof ((st*)0)->m)
384
+ /* Number of entries in an array. */
385
+ #define pb_arraysize(st, m) (pb_membersize(st, m) / pb_membersize(st, m[0]))
386
+ /* Delta from start of one member to the start of another member. */
387
+ #define pb_delta(st, m1, m2) ((int)offsetof(st, m1) - (int)offsetof(st, m2))
388
+ /* Marks the end of the field list */
389
+ #define PB_LAST_FIELD {0,(pb_type_t) 0,0,0,0,0,0}
390
+
391
+ /* Macros for filling in the data_offset field */
392
+ /* data_offset for first field in a message */
393
+ #define PB_DATAOFFSET_FIRST(st, m1, m2) (offsetof(st, m1))
394
+ /* data_offset for subsequent fields */
395
+ #define PB_DATAOFFSET_OTHER(st, m1, m2) (offsetof(st, m1) - offsetof(st, m2) - pb_membersize(st, m2))
396
+ /* Choose first/other based on m1 == m2 (deprecated, remains for backwards compatibility) */
397
+ #define PB_DATAOFFSET_CHOOSE(st, m1, m2) (int)(offsetof(st, m1) == offsetof(st, m2) \
398
+ ? PB_DATAOFFSET_FIRST(st, m1, m2) \
399
+ : PB_DATAOFFSET_OTHER(st, m1, m2))
400
+
401
+ /* Required fields are the simplest. They just have delta (padding) from
402
+ * previous field end, and the size of the field. Pointer is used for
403
+ * submessages and default values.
404
+ */
405
+ #define PB_REQUIRED_STATIC(tag, st, m, fd, ltype, ptr) \
406
+ {tag, PB_ATYPE_STATIC | PB_HTYPE_REQUIRED | ltype, \
407
+ fd, 0, pb_membersize(st, m), 0, ptr}
408
+
409
+ /* Optional fields add the delta to the has_ variable. */
410
+ #define PB_OPTIONAL_STATIC(tag, st, m, fd, ltype, ptr) \
411
+ {tag, PB_ATYPE_STATIC | PB_HTYPE_OPTIONAL | ltype, \
412
+ fd, \
413
+ pb_delta(st, has_ ## m, m), \
414
+ pb_membersize(st, m), 0, ptr}
415
+
416
+ /* Repeated fields have a _count field and also the maximum number of entries. */
417
+ #define PB_REPEATED_STATIC(tag, st, m, fd, ltype, ptr) \
418
+ {tag, PB_ATYPE_STATIC | PB_HTYPE_REPEATED | ltype, \
419
+ fd, \
420
+ pb_delta(st, m ## _count, m), \
421
+ pb_membersize(st, m[0]), \
422
+ pb_arraysize(st, m), ptr}
423
+
424
+ /* Allocated fields carry the size of the actual data, not the pointer */
425
+ #define PB_REQUIRED_POINTER(tag, st, m, fd, ltype, ptr) \
426
+ {tag, PB_ATYPE_POINTER | PB_HTYPE_REQUIRED | ltype, \
427
+ fd, 0, pb_membersize(st, m[0]), 0, ptr}
428
+
429
+ /* Optional fields don't need a has_ variable, as information would be redundant */
430
+ #define PB_OPTIONAL_POINTER(tag, st, m, fd, ltype, ptr) \
431
+ {tag, PB_ATYPE_POINTER | PB_HTYPE_OPTIONAL | ltype, \
432
+ fd, 0, pb_membersize(st, m[0]), 0, ptr}
433
+
434
+ /* Repeated fields have a _count field and a pointer to array of pointers */
435
+ #define PB_REPEATED_POINTER(tag, st, m, fd, ltype, ptr) \
436
+ {tag, PB_ATYPE_POINTER | PB_HTYPE_REPEATED | ltype, \
437
+ fd, pb_delta(st, m ## _count, m), \
438
+ pb_membersize(st, m[0]), 0, ptr}
439
+
440
+ /* Callbacks are much like required fields except with special datatype. */
441
+ #define PB_REQUIRED_CALLBACK(tag, st, m, fd, ltype, ptr) \
442
+ {tag, PB_ATYPE_CALLBACK | PB_HTYPE_REQUIRED | ltype, \
443
+ fd, 0, pb_membersize(st, m), 0, ptr}
444
+
445
+ #define PB_OPTIONAL_CALLBACK(tag, st, m, fd, ltype, ptr) \
446
+ {tag, PB_ATYPE_CALLBACK | PB_HTYPE_OPTIONAL | ltype, \
447
+ fd, 0, pb_membersize(st, m), 0, ptr}
448
+
449
+ #define PB_REPEATED_CALLBACK(tag, st, m, fd, ltype, ptr) \
450
+ {tag, PB_ATYPE_CALLBACK | PB_HTYPE_REPEATED | ltype, \
451
+ fd, 0, pb_membersize(st, m), 0, ptr}
452
+
453
+ /* Optional extensions don't have the has_ field, as that would be redundant. */
454
+ #define PB_OPTEXT_STATIC(tag, st, m, fd, ltype, ptr) \
455
+ {tag, PB_ATYPE_STATIC | PB_HTYPE_OPTIONAL | ltype, \
456
+ 0, \
457
+ 0, \
458
+ pb_membersize(st, m), 0, ptr}
459
+
460
+ #define PB_OPTEXT_POINTER(tag, st, m, fd, ltype, ptr) \
461
+ PB_OPTIONAL_POINTER(tag, st, m, fd, ltype, ptr)
462
+
463
+ #define PB_OPTEXT_CALLBACK(tag, st, m, fd, ltype, ptr) \
464
+ PB_OPTIONAL_CALLBACK(tag, st, m, fd, ltype, ptr)
465
+
466
+ /* The mapping from protobuf types to LTYPEs is done using these macros. */
467
+ #define PB_LTYPE_MAP_BOOL PB_LTYPE_VARINT
468
+ #define PB_LTYPE_MAP_BYTES PB_LTYPE_BYTES
469
+ #define PB_LTYPE_MAP_DOUBLE PB_LTYPE_FIXED64
470
+ #define PB_LTYPE_MAP_ENUM PB_LTYPE_VARINT
471
+ #define PB_LTYPE_MAP_UENUM PB_LTYPE_UVARINT
472
+ #define PB_LTYPE_MAP_FIXED32 PB_LTYPE_FIXED32
473
+ #define PB_LTYPE_MAP_FIXED64 PB_LTYPE_FIXED64
474
+ #define PB_LTYPE_MAP_FLOAT PB_LTYPE_FIXED32
475
+ #define PB_LTYPE_MAP_INT32 PB_LTYPE_VARINT
476
+ #define PB_LTYPE_MAP_INT64 PB_LTYPE_VARINT
477
+ #define PB_LTYPE_MAP_MESSAGE PB_LTYPE_SUBMESSAGE
478
+ #define PB_LTYPE_MAP_SFIXED32 PB_LTYPE_FIXED32
479
+ #define PB_LTYPE_MAP_SFIXED64 PB_LTYPE_FIXED64
480
+ #define PB_LTYPE_MAP_SINT32 PB_LTYPE_SVARINT
481
+ #define PB_LTYPE_MAP_SINT64 PB_LTYPE_SVARINT
482
+ #define PB_LTYPE_MAP_STRING PB_LTYPE_STRING
483
+ #define PB_LTYPE_MAP_UINT32 PB_LTYPE_UVARINT
484
+ #define PB_LTYPE_MAP_UINT64 PB_LTYPE_UVARINT
485
+ #define PB_LTYPE_MAP_EXTENSION PB_LTYPE_EXTENSION
486
+
487
+ /* This is the actual macro used in field descriptions.
488
+ * It takes these arguments:
489
+ * - Field tag number
490
+ * - Field type: BOOL, BYTES, DOUBLE, ENUM, UENUM, FIXED32, FIXED64,
491
+ * FLOAT, INT32, INT64, MESSAGE, SFIXED32, SFIXED64
492
+ * SINT32, SINT64, STRING, UINT32, UINT64 or EXTENSION
493
+ * - Field rules: REQUIRED, OPTIONAL or REPEATED
494
+ * - Allocation: STATIC or CALLBACK
495
+ * - Placement: FIRST or OTHER, depending on if this is the first field in structure.
496
+ * - Message name
497
+ * - Field name
498
+ * - Previous field name (or field name again for first field)
499
+ * - Pointer to default value or submsg fields.
500
+ */
501
+
502
+ #define PB_FIELD(tag, type, rules, allocation, placement, message, field, prevfield, ptr) \
503
+ PB_ ## rules ## _ ## allocation(tag, message, field, \
504
+ PB_DATAOFFSET_ ## placement(message, field, prevfield), \
505
+ PB_LTYPE_MAP_ ## type, ptr)
506
+
507
+ /* Field description for oneof fields. This requires taking into account the
508
+ * union name also, that's why a separate set of macros is needed.
509
+ */
510
+ #define PB_ONEOF_STATIC(u, tag, st, m, fd, ltype, ptr) \
511
+ {tag, PB_ATYPE_STATIC | PB_HTYPE_ONEOF | ltype, \
512
+ fd, pb_delta(st, which_ ## u, u.m), \
513
+ pb_membersize(st, u.m), 0, ptr}
514
+
515
+ #define PB_ONEOF_POINTER(u, tag, st, m, fd, ltype, ptr) \
516
+ {tag, PB_ATYPE_POINTER | PB_HTYPE_ONEOF | ltype, \
517
+ fd, pb_delta(st, which_ ## u, u.m), \
518
+ pb_membersize(st, u.m[0]), 0, ptr}
519
+
520
+ #define PB_ONEOF_FIELD(union_name, tag, type, rules, allocation, placement, message, field, prevfield, ptr) \
521
+ PB_ ## rules ## _ ## allocation(union_name, tag, message, field, \
522
+ PB_DATAOFFSET_ ## placement(message, union_name.field, prevfield), \
523
+ PB_LTYPE_MAP_ ## type, ptr)
524
+
525
+ /* These macros are used for giving out error messages.
526
+ * They are mostly a debugging aid; the main error information
527
+ * is the true/false return value from functions.
528
+ * Some code space can be saved by disabling the error
529
+ * messages if not used.
530
+ *
531
+ * PB_SET_ERROR() sets the error message if none has been set yet.
532
+ * msg must be a constant string literal.
533
+ * PB_GET_ERROR() always returns a pointer to a string.
534
+ * PB_RETURN_ERROR() sets the error and returns false from current
535
+ * function.
536
+ */
537
+ #ifdef PB_NO_ERRMSG
538
+ #define PB_SET_ERROR(stream, msg) PB_UNUSED(stream)
539
+ #define PB_GET_ERROR(stream) "(errmsg disabled)"
540
+ #else
541
+ #define PB_SET_ERROR(stream, msg) (stream->errmsg = (stream)->errmsg ? (stream)->errmsg : (msg))
542
+ #define PB_GET_ERROR(stream) ((stream)->errmsg ? (stream)->errmsg : "(none)")
543
+ #endif
544
+
545
+ #define PB_RETURN_ERROR(stream, msg) return PB_SET_ERROR(stream, msg), false
546
+
547
+ #endif