grpc 1.9.1 → 1.10.0.pre1

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 (637) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2654 -953
  3. data/etc/roots.pem +282 -683
  4. data/include/grpc/compression.h +9 -26
  5. data/include/grpc/grpc.h +10 -24
  6. data/include/grpc/grpc_security.h +7 -1
  7. data/include/grpc/impl/codegen/compression_types.h +5 -62
  8. data/include/grpc/impl/codegen/grpc_types.h +10 -6
  9. data/include/grpc/module.modulemap +1 -10
  10. data/include/grpc/support/alloc.h +3 -2
  11. data/include/grpc/support/log.h +1 -2
  12. data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
  13. data/src/boringssl/err_data.c +550 -496
  14. data/src/core/ext/census/grpc_context.cc +2 -1
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
  17. data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
  20. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
  21. data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
  22. data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
  23. data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
  31. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
  32. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
  34. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
  35. data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
  36. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
  37. data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
  38. data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
  39. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver.cc +6 -52
  41. data/src/core/ext/filters/client_channel/resolver.h +98 -55
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
  46. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
  48. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
  49. data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
  50. data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
  51. data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
  52. data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
  53. data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
  54. data/src/core/ext/filters/client_channel/subchannel.h +38 -45
  55. data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
  56. data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
  58. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
  59. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
  60. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
  61. data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
  62. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
  63. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
  64. data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
  65. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
  66. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
  67. data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
  68. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  69. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
  70. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
  71. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
  72. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
  73. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
  74. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
  75. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
  76. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
  77. data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
  78. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
  79. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
  81. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
  82. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
  83. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  84. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
  86. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
  88. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  91. data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
  92. data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
  93. data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
  96. data/src/core/lib/{gpr → avl}/avl.cc +61 -57
  97. data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
  98. data/src/core/lib/backoff/backoff.cc +6 -5
  99. data/src/core/lib/channel/channel_args.cc +23 -109
  100. data/src/core/lib/channel/channel_args.h +5 -31
  101. data/src/core/lib/channel/channel_stack.cc +11 -8
  102. data/src/core/lib/channel/channel_stack_builder.cc +10 -7
  103. data/src/core/lib/channel/connected_channel.cc +18 -17
  104. data/src/core/lib/channel/handshaker.cc +8 -8
  105. data/src/core/lib/channel/handshaker_registry.cc +3 -2
  106. data/src/core/lib/compression/algorithm_metadata.h +13 -6
  107. data/src/core/lib/compression/compression.cc +72 -183
  108. data/src/core/lib/compression/compression_internal.cc +274 -0
  109. data/src/core/lib/compression/compression_internal.h +86 -0
  110. data/src/core/lib/compression/message_compress.cc +15 -15
  111. data/src/core/lib/compression/message_compress.h +4 -3
  112. data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
  113. data/src/core/lib/compression/stream_compression_identity.cc +1 -1
  114. data/src/core/lib/debug/stats.cc +10 -8
  115. data/src/core/lib/debug/stats_data.cc +2 -1
  116. data/src/core/lib/debug/trace.cc +3 -3
  117. data/src/core/lib/gpr/alloc.cc +7 -11
  118. data/src/core/lib/gpr/arena.cc +34 -12
  119. data/src/core/lib/gpr/atm.cc +2 -1
  120. data/src/core/lib/gpr/cpu_linux.cc +3 -3
  121. data/src/core/lib/gpr/cpu_posix.cc +2 -1
  122. data/src/core/lib/gpr/env.h +1 -1
  123. data/src/core/lib/gpr/env_linux.cc +1 -1
  124. data/src/core/lib/gpr/env_windows.cc +4 -4
  125. data/src/core/lib/gpr/fork.cc +16 -2
  126. data/src/core/lib/gpr/host_port.cc +5 -4
  127. data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
  128. data/src/core/lib/gpr/log.cc +5 -4
  129. data/src/core/lib/gpr/log_linux.cc +1 -1
  130. data/src/core/lib/gpr/mpscq.cc +1 -0
  131. data/src/core/lib/gpr/murmur_hash.cc +4 -4
  132. data/src/core/lib/gpr/string.cc +19 -16
  133. data/src/core/lib/gpr/string_posix.cc +3 -3
  134. data/src/core/lib/gpr/sync_posix.cc +5 -9
  135. data/src/core/lib/gpr/thd.cc +3 -3
  136. data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
  137. data/src/core/lib/gpr/thd_posix.cc +6 -4
  138. data/src/core/lib/gpr/thd_windows.cc +3 -1
  139. data/src/core/lib/gpr/time.cc +6 -4
  140. data/src/core/lib/gpr/time_posix.cc +2 -2
  141. data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
  142. data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
  143. data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
  144. data/src/core/lib/gpr/tls_pthread.cc +1 -1
  145. data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
  146. data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
  147. data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
  148. data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
  149. data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
  150. data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
  151. data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
  152. data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
  153. data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
  154. data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
  155. data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
  156. data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
  157. data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
  158. data/src/core/lib/http/format_request.cc +3 -3
  159. data/src/core/lib/http/httpcli.cc +6 -7
  160. data/src/core/lib/http/httpcli_security_connector.cc +10 -10
  161. data/src/core/lib/http/parser.cc +16 -12
  162. data/src/core/lib/iomgr/call_combiner.cc +12 -13
  163. data/src/core/lib/iomgr/closure.h +4 -6
  164. data/src/core/lib/iomgr/combiner.cc +10 -21
  165. data/src/core/lib/iomgr/error.cc +50 -55
  166. data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
  167. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
  168. data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
  169. data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
  170. data/src/core/lib/iomgr/ev_posix.cc +47 -6
  171. data/src/core/lib/iomgr/exec_ctx.cc +10 -10
  172. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  173. data/src/core/lib/iomgr/executor.cc +16 -13
  174. data/src/core/lib/iomgr/fork_posix.cc +1 -3
  175. data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
  176. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  177. data/src/core/lib/iomgr/iomgr.cc +2 -2
  178. data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
  179. data/src/core/lib/iomgr/iomgr_uv.h +1 -1
  180. data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
  181. data/src/core/lib/iomgr/load_file.cc +3 -3
  182. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  183. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
  184. data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
  185. data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
  186. data/src/core/lib/iomgr/resource_quota.cc +36 -34
  187. data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
  188. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  189. data/src/core/lib/iomgr/socket_mutator.cc +7 -7
  190. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
  191. data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
  192. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
  193. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  194. data/src/core/lib/iomgr/tcp_posix.cc +47 -55
  195. data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
  196. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
  197. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
  198. data/src/core/lib/iomgr/tcp_windows.cc +1 -1
  199. data/src/core/lib/iomgr/timer_generic.cc +16 -14
  200. data/src/core/lib/iomgr/timer_heap.cc +8 -7
  201. data/src/core/lib/iomgr/timer_manager.cc +4 -3
  202. data/src/core/lib/iomgr/udp_server.cc +24 -16
  203. data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
  204. data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
  205. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
  206. data/src/core/lib/json/json.cc +1 -1
  207. data/src/core/lib/json/json_reader.cc +8 -6
  208. data/src/core/lib/json/json_string.cc +19 -18
  209. data/src/core/lib/json/json_writer.cc +10 -8
  210. data/src/core/lib/profiling/basic_timers.cc +1 -1
  211. data/src/core/lib/profiling/timers.h +3 -20
  212. data/src/core/lib/security/context/security_context.cc +16 -14
  213. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
  214. data/src/core/lib/security/credentials/credentials.cc +9 -8
  215. data/src/core/lib/security/credentials/credentials.h +1 -1
  216. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  217. data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
  218. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
  219. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
  220. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
  221. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
  222. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
  223. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
  224. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
  225. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
  226. data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
  227. data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
  228. data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
  229. data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
  230. data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
  231. data/src/core/lib/security/transport/security_handshaker.cc +19 -18
  232. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  233. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  234. data/src/core/lib/slice/b64.cc +19 -16
  235. data/src/core/lib/slice/percent_encoding.cc +5 -5
  236. data/src/core/lib/slice/slice.cc +35 -33
  237. data/src/core/lib/slice/slice_buffer.cc +16 -14
  238. data/src/core/lib/slice/slice_hash_table.cc +3 -2
  239. data/src/core/lib/slice/slice_intern.cc +21 -25
  240. data/src/core/lib/slice/slice_string_helpers.cc +45 -9
  241. data/src/core/lib/slice/slice_string_helpers.h +6 -0
  242. data/src/core/lib/surface/byte_buffer.cc +2 -2
  243. data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
  244. data/src/core/lib/surface/call.cc +171 -260
  245. data/src/core/lib/surface/call_test_only.h +1 -13
  246. data/src/core/lib/surface/channel.cc +20 -43
  247. data/src/core/lib/surface/channel_init.cc +7 -7
  248. data/src/core/lib/surface/channel_ping.cc +2 -2
  249. data/src/core/lib/surface/completion_queue.cc +69 -75
  250. data/src/core/lib/surface/init.cc +4 -5
  251. data/src/core/lib/surface/init_secure.cc +1 -1
  252. data/src/core/lib/surface/lame_client.cc +1 -1
  253. data/src/core/lib/surface/server.cc +64 -59
  254. data/src/core/lib/surface/version.cc +2 -2
  255. data/src/core/lib/transport/bdp_estimator.cc +6 -5
  256. data/src/core/lib/transport/byte_stream.cc +23 -14
  257. data/src/core/lib/transport/byte_stream.h +1 -1
  258. data/src/core/lib/transport/connectivity_state.cc +9 -13
  259. data/src/core/lib/transport/error_utils.cc +10 -7
  260. data/src/core/lib/transport/metadata.cc +27 -26
  261. data/src/core/lib/transport/metadata.h +1 -1
  262. data/src/core/lib/transport/pid_controller.cc +2 -1
  263. data/src/core/lib/transport/service_config.cc +5 -5
  264. data/src/core/lib/transport/static_metadata.cc +225 -222
  265. data/src/core/lib/transport/static_metadata.h +77 -76
  266. data/src/core/lib/transport/timeout_encoding.cc +3 -2
  267. data/src/core/lib/transport/transport.cc +6 -5
  268. data/src/core/lib/transport/transport_op_string.cc +0 -1
  269. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  270. data/src/core/tsi/alts_transport_security.cc +61 -0
  271. data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
  272. data/src/core/tsi/fake_transport_security.cc +59 -43
  273. data/src/core/tsi/ssl_transport_security.cc +122 -107
  274. data/src/core/tsi/transport_security.cc +3 -3
  275. data/src/core/tsi/transport_security_adapter.cc +16 -10
  276. data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
  277. data/src/ruby/ext/grpc/rb_channel.c +3 -4
  278. data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
  279. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
  280. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
  281. data/src/ruby/ext/grpc/rb_server.c +52 -28
  282. data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
  283. data/src/ruby/lib/grpc/version.rb +1 -1
  284. data/src/ruby/pb/test/client.rb +1 -1
  285. data/src/ruby/pb/test/server.rb +1 -1
  286. data/src/ruby/spec/client_server_spec.rb +4 -2
  287. data/src/ruby/spec/generic/active_call_spec.rb +2 -1
  288. data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
  289. data/src/ruby/spec/server_spec.rb +26 -7
  290. data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
  291. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
  292. data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
  293. data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
  294. data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
  295. data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
  296. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
  297. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
  298. data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
  299. data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
  300. data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
  301. data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
  302. data/third_party/boringssl/crypto/base64/base64.c +65 -43
  303. data/third_party/boringssl/crypto/bio/bio.c +134 -110
  304. data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
  305. data/third_party/boringssl/crypto/bio/connect.c +17 -17
  306. data/third_party/boringssl/crypto/bio/fd.c +2 -1
  307. data/third_party/boringssl/crypto/bio/file.c +14 -14
  308. data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
  309. data/third_party/boringssl/crypto/bio/internal.h +14 -14
  310. data/third_party/boringssl/crypto/bio/pair.c +45 -45
  311. data/third_party/boringssl/crypto/bio/printf.c +6 -10
  312. data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
  313. data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
  314. data/third_party/boringssl/crypto/buf/buf.c +20 -44
  315. data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
  316. data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
  317. data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
  318. data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
  319. data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
  320. data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
  321. data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
  322. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
  323. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
  324. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
  325. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
  326. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
  327. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
  328. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
  329. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
  330. data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
  331. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
  332. data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
  333. data/third_party/boringssl/crypto/conf/conf.c +32 -20
  334. data/third_party/boringssl/crypto/conf/internal.h +3 -3
  335. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
  336. data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
  337. data/third_party/boringssl/crypto/cpu-intel.c +68 -43
  338. data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
  339. data/third_party/boringssl/crypto/crypto.c +54 -32
  340. data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
  341. data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
  342. data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
  343. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
  344. data/third_party/boringssl/crypto/dh/check.c +33 -34
  345. data/third_party/boringssl/crypto/dh/dh.c +72 -36
  346. data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
  347. data/third_party/boringssl/crypto/dh/params.c +1 -161
  348. data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
  349. data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
  350. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
  351. data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
  352. data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
  353. data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
  354. data/third_party/boringssl/crypto/engine/engine.c +6 -6
  355. data/third_party/boringssl/crypto/err/err.c +197 -106
  356. data/third_party/boringssl/crypto/err/internal.h +58 -0
  357. data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
  358. data/third_party/boringssl/crypto/evp/evp.c +6 -11
  359. data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
  360. data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
  361. data/third_party/boringssl/crypto/evp/internal.h +66 -51
  362. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
  363. data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
  364. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
  365. data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
  366. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
  367. data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
  368. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
  369. data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
  370. data/third_party/boringssl/crypto/evp/print.c +5 -36
  371. data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
  372. data/third_party/boringssl/crypto/ex_data.c +15 -45
  373. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
  374. data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
  375. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
  376. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
  377. data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
  378. data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
  379. data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
  380. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
  381. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
  382. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
  383. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
  384. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
  385. data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
  386. data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
  387. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
  388. data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
  389. data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
  390. data/third_party/boringssl/crypto/internal.h +301 -233
  391. data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
  392. data/third_party/boringssl/crypto/mem.c +76 -33
  393. data/third_party/boringssl/crypto/obj/obj.c +44 -28
  394. data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
  395. data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
  396. data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
  397. data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
  398. data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
  399. data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
  400. data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
  401. data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
  402. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
  403. data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
  404. data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
  405. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
  406. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
  407. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
  408. data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
  409. data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
  410. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
  411. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
  412. data/third_party/boringssl/crypto/pool/internal.h +2 -2
  413. data/third_party/boringssl/crypto/pool/pool.c +15 -15
  414. data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
  415. data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
  416. data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
  417. data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
  418. data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
  419. data/third_party/boringssl/crypto/refcount_c11.c +2 -2
  420. data/third_party/boringssl/crypto/refcount_lock.c +1 -1
  421. data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
  422. data/third_party/boringssl/crypto/stack/stack.c +13 -13
  423. data/third_party/boringssl/crypto/thread_none.c +1 -1
  424. data/third_party/boringssl/crypto/thread_pthread.c +1 -1
  425. data/third_party/boringssl/crypto/thread_win.c +40 -40
  426. data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
  427. data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
  428. data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
  429. data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
  430. data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
  431. data/third_party/boringssl/crypto/x509/by_file.c +2 -2
  432. data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
  433. data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
  434. data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
  435. data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
  436. data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
  437. data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
  438. data/third_party/boringssl/crypto/x509/x_name.c +13 -16
  439. data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
  440. data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
  441. data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
  442. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  443. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
  444. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
  445. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
  446. data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
  447. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
  448. data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
  449. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
  450. data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
  451. data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
  452. data/third_party/boringssl/include/openssl/aead.h +280 -191
  453. data/third_party/boringssl/include/openssl/aes.h +50 -50
  454. data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
  455. data/third_party/boringssl/include/openssl/asn1.h +14 -77
  456. data/third_party/boringssl/include/openssl/asn1t.h +11 -15
  457. data/third_party/boringssl/include/openssl/base.h +78 -51
  458. data/third_party/boringssl/include/openssl/base64.h +68 -68
  459. data/third_party/boringssl/include/openssl/bio.h +472 -406
  460. data/third_party/boringssl/include/openssl/blowfish.h +1 -1
  461. data/third_party/boringssl/include/openssl/bn.h +454 -435
  462. data/third_party/boringssl/include/openssl/buf.h +27 -27
  463. data/third_party/boringssl/include/openssl/bytestring.h +282 -267
  464. data/third_party/boringssl/include/openssl/cast.h +2 -2
  465. data/third_party/boringssl/include/openssl/chacha.h +5 -5
  466. data/third_party/boringssl/include/openssl/cipher.h +209 -200
  467. data/third_party/boringssl/include/openssl/cmac.h +27 -27
  468. data/third_party/boringssl/include/openssl/conf.h +49 -46
  469. data/third_party/boringssl/include/openssl/cpu.h +60 -45
  470. data/third_party/boringssl/include/openssl/crypto.h +59 -35
  471. data/third_party/boringssl/include/openssl/curve25519.h +97 -92
  472. data/third_party/boringssl/include/openssl/des.h +25 -25
  473. data/third_party/boringssl/include/openssl/dh.h +98 -97
  474. data/third_party/boringssl/include/openssl/digest.h +143 -114
  475. data/third_party/boringssl/include/openssl/dsa.h +217 -202
  476. data/third_party/boringssl/include/openssl/ec.h +132 -131
  477. data/third_party/boringssl/include/openssl/ec_key.h +132 -128
  478. data/third_party/boringssl/include/openssl/ecdh.h +9 -9
  479. data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
  480. data/third_party/boringssl/include/openssl/engine.h +38 -38
  481. data/third_party/boringssl/include/openssl/err.h +189 -219
  482. data/third_party/boringssl/include/openssl/evp.h +473 -397
  483. data/third_party/boringssl/include/openssl/ex_data.h +46 -56
  484. data/third_party/boringssl/include/openssl/hkdf.h +17 -17
  485. data/third_party/boringssl/include/openssl/hmac.h +55 -43
  486. data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  487. data/third_party/boringssl/include/openssl/lhash.h +67 -67
  488. data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
  489. data/third_party/boringssl/include/openssl/md4.h +14 -14
  490. data/third_party/boringssl/include/openssl/md5.h +14 -14
  491. data/third_party/boringssl/include/openssl/mem.h +39 -33
  492. data/third_party/boringssl/include/openssl/nid.h +43 -0
  493. data/third_party/boringssl/include/openssl/obj.h +93 -87
  494. data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
  495. data/third_party/boringssl/include/openssl/pem.h +2 -122
  496. data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
  497. data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
  498. data/third_party/boringssl/include/openssl/poly1305.h +11 -11
  499. data/third_party/boringssl/include/openssl/pool.h +29 -25
  500. data/third_party/boringssl/include/openssl/rand.h +48 -45
  501. data/third_party/boringssl/include/openssl/rc4.h +9 -9
  502. data/third_party/boringssl/include/openssl/ripemd.h +13 -13
  503. data/third_party/boringssl/include/openssl/rsa.h +371 -340
  504. data/third_party/boringssl/include/openssl/sha.h +71 -71
  505. data/third_party/boringssl/include/openssl/span.h +191 -0
  506. data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
  507. data/third_party/boringssl/include/openssl/ssl3.h +39 -122
  508. data/third_party/boringssl/include/openssl/stack.h +355 -164
  509. data/third_party/boringssl/include/openssl/thread.h +43 -43
  510. data/third_party/boringssl/include/openssl/tls1.h +60 -63
  511. data/third_party/boringssl/include/openssl/type_check.h +10 -14
  512. data/third_party/boringssl/include/openssl/x509.h +41 -116
  513. data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
  514. data/third_party/boringssl/include/openssl/x509v3.h +27 -21
  515. data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
  516. data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
  517. data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
  518. data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
  519. data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
  520. data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
  521. data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
  522. data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
  523. data/third_party/boringssl/ssl/handshake.cc +547 -0
  524. data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
  525. data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
  526. data/third_party/boringssl/ssl/internal.h +2027 -1280
  527. data/third_party/boringssl/ssl/s3_both.cc +603 -0
  528. data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
  529. data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
  530. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
  531. data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
  532. data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
  533. data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
  534. data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
  535. data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
  536. data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
  537. data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
  538. data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
  539. data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
  540. data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
  541. data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
  542. data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
  543. data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
  544. data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
  545. data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
  546. data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
  547. data/third_party/boringssl/ssl/tls13_client.cc +842 -0
  548. data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
  549. data/third_party/boringssl/ssl/tls13_server.cc +967 -0
  550. data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
  551. data/third_party/boringssl/ssl/tls_record.cc +675 -0
  552. metadata +117 -168
  553. data/include/grpc/support/cmdline.h +0 -88
  554. data/include/grpc/support/subprocess.h +0 -44
  555. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
  556. data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
  557. data/src/core/lib/gpr/cmdline.cc +0 -330
  558. data/src/core/lib/gpr/subprocess_posix.cc +0 -99
  559. data/src/core/lib/gpr/subprocess_windows.cc +0 -126
  560. data/src/core/lib/surface/alarm.cc +0 -137
  561. data/src/core/lib/surface/alarm_internal.h +0 -40
  562. data/src/core/tsi/gts_transport_security.cc +0 -40
  563. data/third_party/boringssl/crypto/aes/aes.c +0 -1142
  564. data/third_party/boringssl/crypto/aes/internal.h +0 -87
  565. data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
  566. data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
  567. data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
  568. data/third_party/boringssl/crypto/bn/add.c +0 -377
  569. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
  570. data/third_party/boringssl/crypto/bn/bn.c +0 -365
  571. data/third_party/boringssl/crypto/bn/cmp.c +0 -239
  572. data/third_party/boringssl/crypto/bn/ctx.c +0 -313
  573. data/third_party/boringssl/crypto/bn/div.c +0 -728
  574. data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
  575. data/third_party/boringssl/crypto/bn/gcd.c +0 -635
  576. data/third_party/boringssl/crypto/bn/generic.c +0 -707
  577. data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
  578. data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
  579. data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
  580. data/third_party/boringssl/crypto/bn/mul.c +0 -871
  581. data/third_party/boringssl/crypto/bn/prime.c +0 -861
  582. data/third_party/boringssl/crypto/bn/random.c +0 -343
  583. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
  584. data/third_party/boringssl/crypto/bn/shift.c +0 -307
  585. data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
  586. data/third_party/boringssl/crypto/cipher/aead.c +0 -156
  587. data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
  588. data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
  589. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
  590. data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
  591. data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
  592. data/third_party/boringssl/crypto/des/des.c +0 -771
  593. data/third_party/boringssl/crypto/digest/digest.c +0 -251
  594. data/third_party/boringssl/crypto/digest/digests.c +0 -358
  595. data/third_party/boringssl/crypto/ec/ec.c +0 -847
  596. data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
  597. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
  598. data/third_party/boringssl/crypto/ec/oct.c +0 -416
  599. data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
  600. data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
  601. data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
  602. data/third_party/boringssl/crypto/ec/simple.c +0 -1118
  603. data/third_party/boringssl/crypto/ec/util-64.c +0 -109
  604. data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
  605. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
  606. data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
  607. data/third_party/boringssl/crypto/md4/md4.c +0 -236
  608. data/third_party/boringssl/crypto/md5/md5.c +0 -285
  609. data/third_party/boringssl/crypto/modes/cbc.c +0 -212
  610. data/third_party/boringssl/crypto/modes/cfb.c +0 -230
  611. data/third_party/boringssl/crypto/modes/ctr.c +0 -219
  612. data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
  613. data/third_party/boringssl/crypto/modes/ofb.c +0 -95
  614. data/third_party/boringssl/crypto/modes/polyval.c +0 -94
  615. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
  616. data/third_party/boringssl/crypto/rand/rand.c +0 -244
  617. data/third_party/boringssl/crypto/rand/urandom.c +0 -335
  618. data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
  619. data/third_party/boringssl/crypto/rsa/padding.c +0 -708
  620. data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
  621. data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
  622. data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
  623. data/third_party/boringssl/crypto/sha/sha1.c +0 -355
  624. data/third_party/boringssl/crypto/sha/sha256.c +0 -329
  625. data/third_party/boringssl/crypto/sha/sha512.c +0 -609
  626. data/third_party/boringssl/crypto/x509/x509type.c +0 -126
  627. data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
  628. data/third_party/boringssl/ssl/handshake_client.c +0 -1883
  629. data/third_party/boringssl/ssl/handshake_server.c +0 -1950
  630. data/third_party/boringssl/ssl/s3_both.c +0 -895
  631. data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
  632. data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
  633. data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
  634. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
  635. data/third_party/boringssl/ssl/tls13_client.c +0 -712
  636. data/third_party/boringssl/ssl/tls13_server.c +0 -680
  637. data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -52,7 +52,7 @@ struct grpc_channel_stack_builder_iterator {
52
52
 
53
53
  grpc_channel_stack_builder* grpc_channel_stack_builder_create(void) {
54
54
  grpc_channel_stack_builder* b =
55
- (grpc_channel_stack_builder*)gpr_zalloc(sizeof(*b));
55
+ static_cast<grpc_channel_stack_builder*>(gpr_zalloc(sizeof(*b)));
56
56
 
57
57
  b->begin.filter = nullptr;
58
58
  b->end.filter = nullptr;
@@ -78,7 +78,8 @@ const char* grpc_channel_stack_builder_get_target(
78
78
  static grpc_channel_stack_builder_iterator* create_iterator_at_filter_node(
79
79
  grpc_channel_stack_builder* builder, filter_node* node) {
80
80
  grpc_channel_stack_builder_iterator* it =
81
- (grpc_channel_stack_builder_iterator*)gpr_malloc(sizeof(*it));
81
+ static_cast<grpc_channel_stack_builder_iterator*>(
82
+ gpr_malloc(sizeof(*it)));
82
83
  it->builder = builder;
83
84
  it->node = node;
84
85
  return it;
@@ -213,7 +214,8 @@ bool grpc_channel_stack_builder_prepend_filter(
213
214
  static void add_after(filter_node* before, const grpc_channel_filter* filter,
214
215
  grpc_post_filter_create_init_func post_init_func,
215
216
  void* user_data) {
216
- filter_node* new_node = (filter_node*)gpr_malloc(sizeof(*new_node));
217
+ filter_node* new_node =
218
+ static_cast<filter_node*>(gpr_malloc(sizeof(*new_node)));
217
219
  new_node->next = before->next;
218
220
  new_node->prev = before;
219
221
  new_node->next->prev = new_node->prev->next = new_node;
@@ -265,7 +267,8 @@ grpc_error* grpc_channel_stack_builder_finish(
265
267
 
266
268
  // create an array of filters
267
269
  const grpc_channel_filter** filters =
268
- (const grpc_channel_filter**)gpr_malloc(sizeof(*filters) * num_filters);
270
+ static_cast<const grpc_channel_filter**>(
271
+ gpr_malloc(sizeof(*filters) * num_filters));
269
272
  size_t i = 0;
270
273
  for (filter_node* p = builder->begin.next; p != &builder->end; p = p->next) {
271
274
  filters[i++] = p->filter;
@@ -277,8 +280,8 @@ grpc_error* grpc_channel_stack_builder_finish(
277
280
  // allocate memory, with prefix_bytes followed by channel_stack_size
278
281
  *result = gpr_zalloc(prefix_bytes + channel_stack_size);
279
282
  // fetch a pointer to the channel stack
280
- grpc_channel_stack* channel_stack =
281
- (grpc_channel_stack*)((char*)(*result) + prefix_bytes);
283
+ grpc_channel_stack* channel_stack = reinterpret_cast<grpc_channel_stack*>(
284
+ static_cast<char*>(*result) + prefix_bytes);
282
285
  // and initialize it
283
286
  grpc_error* error = grpc_channel_stack_init(
284
287
  initial_refs, destroy, destroy_arg == nullptr ? *result : destroy_arg,
@@ -303,7 +306,7 @@ grpc_error* grpc_channel_stack_builder_finish(
303
306
  }
304
307
 
305
308
  grpc_channel_stack_builder_destroy(builder);
306
- gpr_free((grpc_channel_filter**)filters);
309
+ gpr_free(const_cast<grpc_channel_filter**>(filters));
307
310
 
308
311
  return error;
309
312
  }
@@ -52,7 +52,7 @@ typedef struct connected_channel_call_data {
52
52
  } call_data;
53
53
 
54
54
  static void run_in_call_combiner(void* arg, grpc_error* error) {
55
- callback_state* state = (callback_state*)arg;
55
+ callback_state* state = static_cast<callback_state*>(arg);
56
56
  GRPC_CALL_COMBINER_START(state->call_combiner, state->original_closure,
57
57
  GRPC_ERROR_REF(error), state->reason);
58
58
  }
@@ -96,8 +96,8 @@ static callback_state* get_state_for_batch(
96
96
  into transport stream operations */
97
97
  static void con_start_transport_stream_op_batch(
98
98
  grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
99
- call_data* calld = (call_data*)elem->call_data;
100
- channel_data* chand = (channel_data*)elem->channel_data;
99
+ call_data* calld = static_cast<call_data*>(elem->call_data);
100
+ channel_data* chand = static_cast<channel_data*>(elem->channel_data);
101
101
  if (batch->recv_initial_metadata) {
102
102
  callback_state* state = &calld->recv_initial_metadata_ready;
103
103
  intercept_callback(
@@ -115,7 +115,8 @@ static void con_start_transport_stream_op_batch(
115
115
  // calld->on_complete like we can for the other ops. However,
116
116
  // cancellation isn't in the fast path, so we just allocate a new
117
117
  // closure for each one.
118
- callback_state* state = (callback_state*)gpr_malloc(sizeof(*state));
118
+ callback_state* state =
119
+ static_cast<callback_state*>(gpr_malloc(sizeof(*state)));
119
120
  intercept_callback(calld, state, true, "on_complete (cancel_stream)",
120
121
  &batch->on_complete);
121
122
  } else {
@@ -129,15 +130,15 @@ static void con_start_transport_stream_op_batch(
129
130
 
130
131
  static void con_start_transport_op(grpc_channel_element* elem,
131
132
  grpc_transport_op* op) {
132
- channel_data* chand = (channel_data*)elem->channel_data;
133
+ channel_data* chand = static_cast<channel_data*>(elem->channel_data);
133
134
  grpc_transport_perform_op(chand->transport, op);
134
135
  }
135
136
 
136
137
  /* Constructor for call_data */
137
138
  static grpc_error* init_call_elem(grpc_call_element* elem,
138
139
  const grpc_call_element_args* args) {
139
- call_data* calld = (call_data*)elem->call_data;
140
- channel_data* chand = (channel_data*)elem->channel_data;
140
+ call_data* calld = static_cast<call_data*>(elem->call_data);
141
+ channel_data* chand = static_cast<channel_data*>(elem->channel_data);
141
142
  calld->call_combiner = args->call_combiner;
142
143
  int r = grpc_transport_init_stream(
143
144
  chand->transport, TRANSPORT_STREAM_FROM_CALL_DATA(calld),
@@ -149,8 +150,8 @@ static grpc_error* init_call_elem(grpc_call_element* elem,
149
150
 
150
151
  static void set_pollset_or_pollset_set(grpc_call_element* elem,
151
152
  grpc_polling_entity* pollent) {
152
- call_data* calld = (call_data*)elem->call_data;
153
- channel_data* chand = (channel_data*)elem->channel_data;
153
+ call_data* calld = static_cast<call_data*>(elem->call_data);
154
+ channel_data* chand = static_cast<channel_data*>(elem->channel_data);
154
155
  grpc_transport_set_pops(chand->transport,
155
156
  TRANSPORT_STREAM_FROM_CALL_DATA(calld), pollent);
156
157
  }
@@ -159,8 +160,8 @@ static void set_pollset_or_pollset_set(grpc_call_element* elem,
159
160
  static void destroy_call_elem(grpc_call_element* elem,
160
161
  const grpc_call_final_info* final_info,
161
162
  grpc_closure* then_schedule_closure) {
162
- call_data* calld = (call_data*)elem->call_data;
163
- channel_data* chand = (channel_data*)elem->channel_data;
163
+ call_data* calld = static_cast<call_data*>(elem->call_data);
164
+ channel_data* chand = static_cast<channel_data*>(elem->channel_data);
164
165
  grpc_transport_destroy_stream(chand->transport,
165
166
  TRANSPORT_STREAM_FROM_CALL_DATA(calld),
166
167
  then_schedule_closure);
@@ -169,7 +170,7 @@ static void destroy_call_elem(grpc_call_element* elem,
169
170
  /* Constructor for channel_data */
170
171
  static grpc_error* init_channel_elem(grpc_channel_element* elem,
171
172
  grpc_channel_element_args* args) {
172
- channel_data* cd = (channel_data*)elem->channel_data;
173
+ channel_data* cd = static_cast<channel_data*>(elem->channel_data);
173
174
  GPR_ASSERT(args->is_last);
174
175
  cd->transport = nullptr;
175
176
  return GRPC_ERROR_NONE;
@@ -177,7 +178,7 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem,
177
178
 
178
179
  /* Destructor for channel_data */
179
180
  static void destroy_channel_elem(grpc_channel_element* elem) {
180
- channel_data* cd = (channel_data*)elem->channel_data;
181
+ channel_data* cd = static_cast<channel_data*>(elem->channel_data);
181
182
  if (cd->transport) {
182
183
  grpc_transport_destroy(cd->transport);
183
184
  }
@@ -203,10 +204,10 @@ const grpc_channel_filter grpc_connected_filter = {
203
204
 
204
205
  static void bind_transport(grpc_channel_stack* channel_stack,
205
206
  grpc_channel_element* elem, void* t) {
206
- channel_data* cd = (channel_data*)elem->channel_data;
207
+ channel_data* cd = static_cast<channel_data*>(elem->channel_data);
207
208
  GPR_ASSERT(elem->filter == &grpc_connected_filter);
208
209
  GPR_ASSERT(cd->transport == nullptr);
209
- cd->transport = (grpc_transport*)t;
210
+ cd->transport = static_cast<grpc_transport*>(t);
210
211
 
211
212
  /* HACK(ctiller): increase call stack size for the channel to make space
212
213
  for channel data. We need a cleaner (but performant) way to do this,
@@ -215,7 +216,7 @@ static void bind_transport(grpc_channel_stack* channel_stack,
215
216
  the last call element, and the last call element MUST be the connected
216
217
  channel. */
217
218
  channel_stack->call_stack_size +=
218
- grpc_transport_stream_size((grpc_transport*)t);
219
+ grpc_transport_stream_size(static_cast<grpc_transport*>(t));
219
220
  }
220
221
 
221
222
  bool grpc_add_connected_filter(grpc_channel_stack_builder* builder,
@@ -228,6 +229,6 @@ bool grpc_add_connected_filter(grpc_channel_stack_builder* builder,
228
229
  }
229
230
 
230
231
  grpc_stream* grpc_connected_channel_get_stream(grpc_call_element* elem) {
231
- call_data* calld = (call_data*)elem->call_data;
232
+ call_data* calld = static_cast<call_data*>(elem->call_data);
232
233
  return TRANSPORT_STREAM_FROM_CALL_DATA(calld);
233
234
  }
@@ -81,8 +81,8 @@ struct grpc_handshake_manager {
81
81
  };
82
82
 
83
83
  grpc_handshake_manager* grpc_handshake_manager_create() {
84
- grpc_handshake_manager* mgr =
85
- (grpc_handshake_manager*)gpr_zalloc(sizeof(grpc_handshake_manager));
84
+ grpc_handshake_manager* mgr = static_cast<grpc_handshake_manager*>(
85
+ gpr_zalloc(sizeof(grpc_handshake_manager)));
86
86
  gpr_mu_init(&mgr->mu);
87
87
  gpr_ref_init(&mgr->refs, 1);
88
88
  return mgr;
@@ -135,8 +135,8 @@ void grpc_handshake_manager_add(grpc_handshake_manager* mgr,
135
135
  realloc_count = mgr->count * 2;
136
136
  }
137
137
  if (realloc_count > 0) {
138
- mgr->handshakers = (grpc_handshaker**)gpr_realloc(
139
- mgr->handshakers, realloc_count * sizeof(grpc_handshaker*));
138
+ mgr->handshakers = static_cast<grpc_handshaker**>(gpr_realloc(
139
+ mgr->handshakers, realloc_count * sizeof(grpc_handshaker*)));
140
140
  }
141
141
  mgr->handshakers[mgr->count++] = handshaker;
142
142
  gpr_mu_unlock(&mgr->mu);
@@ -197,7 +197,7 @@ static bool call_next_handshaker_locked(grpc_handshake_manager* mgr,
197
197
  // A function used as the handshaker-done callback when chaining
198
198
  // handshakers together.
199
199
  static void call_next_handshaker(void* arg, grpc_error* error) {
200
- grpc_handshake_manager* mgr = (grpc_handshake_manager*)arg;
200
+ grpc_handshake_manager* mgr = static_cast<grpc_handshake_manager*>(arg);
201
201
  gpr_mu_lock(&mgr->mu);
202
202
  bool done = call_next_handshaker_locked(mgr, GRPC_ERROR_REF(error));
203
203
  gpr_mu_unlock(&mgr->mu);
@@ -211,7 +211,7 @@ static void call_next_handshaker(void* arg, grpc_error* error) {
211
211
 
212
212
  // Callback invoked when deadline is exceeded.
213
213
  static void on_timeout(void* arg, grpc_error* error) {
214
- grpc_handshake_manager* mgr = (grpc_handshake_manager*)arg;
214
+ grpc_handshake_manager* mgr = static_cast<grpc_handshake_manager*>(arg);
215
215
  if (error == GRPC_ERROR_NONE) { // Timer fired, rather than being cancelled.
216
216
  grpc_handshake_manager_shutdown(
217
217
  mgr, GRPC_ERROR_CREATE_FROM_STATIC_STRING("Handshake timed out"));
@@ -233,8 +233,8 @@ void grpc_handshake_manager_do_handshake(
233
233
  mgr->args.endpoint = endpoint;
234
234
  mgr->args.args = grpc_channel_args_copy(channel_args);
235
235
  mgr->args.user_data = user_data;
236
- mgr->args.read_buffer =
237
- (grpc_slice_buffer*)gpr_malloc(sizeof(*mgr->args.read_buffer));
236
+ mgr->args.read_buffer = static_cast<grpc_slice_buffer*>(
237
+ gpr_malloc(sizeof(*mgr->args.read_buffer)));
238
238
  grpc_slice_buffer_init(mgr->args.read_buffer);
239
239
  // Initialize state needed for calling handshakers.
240
240
  mgr->acceptor = acceptor;
@@ -34,8 +34,9 @@ typedef struct {
34
34
  static void grpc_handshaker_factory_list_register(
35
35
  grpc_handshaker_factory_list* list, bool at_start,
36
36
  grpc_handshaker_factory* factory) {
37
- list->list = (grpc_handshaker_factory**)gpr_realloc(
38
- list->list, (list->num_factories + 1) * sizeof(grpc_handshaker_factory*));
37
+ list->list = static_cast<grpc_handshaker_factory**>(gpr_realloc(
38
+ list->list,
39
+ (list->num_factories + 1) * sizeof(grpc_handshaker_factory*)));
39
40
  if (at_start) {
40
41
  memmove(list->list + 1, list->list,
41
42
  sizeof(grpc_handshaker_factory*) * list->num_factories);
@@ -20,20 +20,27 @@
20
20
  #define GRPC_CORE_LIB_COMPRESSION_ALGORITHM_METADATA_H
21
21
 
22
22
  #include <grpc/compression.h>
23
+ #include "src/core/lib/compression/compression_internal.h"
23
24
  #include "src/core/lib/transport/metadata.h"
24
25
 
25
26
  /** Return compression algorithm based metadata value */
26
27
  grpc_slice grpc_compression_algorithm_slice(
27
28
  grpc_compression_algorithm algorithm);
28
29
 
29
- /** Return stream compression algorithm based metadata value */
30
- grpc_slice grpc_stream_compression_algorithm_slice(
31
- grpc_stream_compression_algorithm algorithm);
30
+ /** Find compression algorithm based on passed in mdstr - returns
31
+ * GRPC_COMPRESS_ALGORITHM_COUNT on failure */
32
+ grpc_compression_algorithm grpc_compression_algorithm_from_slice(
33
+ grpc_slice str);
32
34
 
33
- /** Return compression algorithm based metadata element (grpc-encoding: xxx) */
35
+ /** Return compression algorithm based metadata element */
34
36
  grpc_mdelem grpc_compression_encoding_mdelem(
35
37
  grpc_compression_algorithm algorithm);
36
38
 
39
+ /** Return message compression algorithm based metadata element (grpc-encoding:
40
+ * xxx) */
41
+ grpc_mdelem grpc_message_compression_encoding_mdelem(
42
+ grpc_message_compression_algorithm algorithm);
43
+
37
44
  /** Return stream compression algorithm based metadata element
38
45
  * (content-encoding: xxx) */
39
46
  grpc_mdelem grpc_stream_compression_encoding_mdelem(
@@ -41,8 +48,8 @@ grpc_mdelem grpc_stream_compression_encoding_mdelem(
41
48
 
42
49
  /** Find compression algorithm based on passed in mdstr - returns
43
50
  * GRPC_COMPRESS_ALGORITHM_COUNT on failure */
44
- grpc_compression_algorithm grpc_compression_algorithm_from_slice(
45
- grpc_slice str);
51
+ grpc_message_compression_algorithm
52
+ grpc_message_compression_algorithm_from_slice(grpc_slice str);
46
53
 
47
54
  /** Find stream compression algorithm based on passed in mdstr - returns
48
55
  * GRPC_STREAM_COMPRESS_ALGORITHM_COUNT on failure */
@@ -20,43 +20,42 @@
20
20
  #include <string.h>
21
21
 
22
22
  #include <grpc/compression.h>
23
- #include <grpc/support/useful.h>
24
23
 
25
24
  #include "src/core/lib/compression/algorithm_metadata.h"
25
+ #include "src/core/lib/compression/compression_internal.h"
26
+ #include "src/core/lib/gpr/useful.h"
26
27
  #include "src/core/lib/surface/api_trace.h"
27
28
  #include "src/core/lib/transport/static_metadata.h"
28
29
 
30
+ int grpc_compression_algorithm_is_message(
31
+ grpc_compression_algorithm algorithm) {
32
+ return (algorithm >= GRPC_COMPRESS_DEFLATE && algorithm <= GRPC_COMPRESS_GZIP)
33
+ ? 1
34
+ : 0;
35
+ }
36
+
37
+ int grpc_compression_algorithm_is_stream(grpc_compression_algorithm algorithm) {
38
+ return (algorithm == GRPC_COMPRESS_STREAM_GZIP) ? 1 : 0;
39
+ }
40
+
29
41
  int grpc_compression_algorithm_parse(grpc_slice name,
30
42
  grpc_compression_algorithm* algorithm) {
31
- /* we use strncmp not only because it's safer (even though in this case it
32
- * doesn't matter, given that we are comparing against string literals, but
33
- * because this way we needn't have "name" nil-terminated (useful for slice
34
- * data, for example) */
35
43
  if (grpc_slice_eq(name, GRPC_MDSTR_IDENTITY)) {
36
44
  *algorithm = GRPC_COMPRESS_NONE;
37
45
  return 1;
38
- } else if (grpc_slice_eq(name, GRPC_MDSTR_GZIP)) {
39
- *algorithm = GRPC_COMPRESS_GZIP;
40
- return 1;
41
46
  } else if (grpc_slice_eq(name, GRPC_MDSTR_DEFLATE)) {
42
47
  *algorithm = GRPC_COMPRESS_DEFLATE;
43
48
  return 1;
44
- } else {
45
- return 0;
46
- }
47
- }
48
-
49
- int grpc_stream_compression_algorithm_parse(
50
- grpc_slice name, grpc_stream_compression_algorithm* algorithm) {
51
- if (grpc_slice_eq(name, GRPC_MDSTR_IDENTITY)) {
52
- *algorithm = GRPC_STREAM_COMPRESS_NONE;
53
- return 1;
54
49
  } else if (grpc_slice_eq(name, GRPC_MDSTR_GZIP)) {
55
- *algorithm = GRPC_STREAM_COMPRESS_GZIP;
50
+ *algorithm = GRPC_COMPRESS_GZIP;
51
+ return 1;
52
+ } else if (grpc_slice_eq(name, GRPC_MDSTR_STREAM_SLASH_GZIP)) {
53
+ *algorithm = GRPC_COMPRESS_STREAM_GZIP;
56
54
  return 1;
57
55
  } else {
58
56
  return 0;
59
57
  }
58
+ return 0;
60
59
  }
61
60
 
62
61
  int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
@@ -73,43 +72,59 @@ int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
73
72
  case GRPC_COMPRESS_GZIP:
74
73
  *name = "gzip";
75
74
  return 1;
75
+ case GRPC_COMPRESS_STREAM_GZIP:
76
+ *name = "stream/gzip";
77
+ return 1;
76
78
  case GRPC_COMPRESS_ALGORITHMS_COUNT:
77
79
  return 0;
78
80
  }
79
81
  return 0;
80
82
  }
81
83
 
82
- int grpc_stream_compression_algorithm_name(
83
- grpc_stream_compression_algorithm algorithm, const char** name) {
84
- GRPC_API_TRACE(
85
- "grpc_stream_compression_algorithm_parse(algorithm=%d, name=%p)", 2,
86
- ((int)algorithm, name));
87
- switch (algorithm) {
88
- case GRPC_STREAM_COMPRESS_NONE:
89
- *name = "identity";
90
- return 1;
91
- case GRPC_STREAM_COMPRESS_GZIP:
92
- *name = "gzip";
93
- return 1;
94
- case GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT:
95
- return 0;
84
+ grpc_compression_algorithm grpc_compression_algorithm_for_level(
85
+ grpc_compression_level level, uint32_t accepted_encodings) {
86
+ grpc_compression_algorithm algo;
87
+ if (level == GRPC_COMPRESS_LEVEL_NONE) {
88
+ return GRPC_COMPRESS_NONE;
89
+ } else if (level <= GRPC_COMPRESS_LEVEL_HIGH) {
90
+ // TODO(mxyan): Design algorithm to select from all algorithms, including
91
+ // stream compression algorithm
92
+ if (!grpc_compression_algorithm_from_message_stream_compression_algorithm(
93
+ &algo,
94
+ grpc_message_compression_algorithm_for_level(
95
+ level,
96
+ grpc_compression_bitset_to_message_bitset(accepted_encodings)),
97
+ static_cast<grpc_stream_compression_algorithm>(0))) {
98
+ gpr_log(GPR_ERROR, "Parse compression level error");
99
+ return GRPC_COMPRESS_NONE;
100
+ }
101
+ return algo;
102
+ } else {
103
+ gpr_log(GPR_ERROR, "Unknown compression level: %d", level);
104
+ return GRPC_COMPRESS_NONE;
96
105
  }
97
- return 0;
98
106
  }
99
107
 
100
- grpc_compression_algorithm grpc_compression_algorithm_from_slice(
101
- grpc_slice str) {
102
- if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_COMPRESS_NONE;
103
- if (grpc_slice_eq(str, GRPC_MDSTR_DEFLATE)) return GRPC_COMPRESS_DEFLATE;
104
- if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_COMPRESS_GZIP;
105
- return GRPC_COMPRESS_ALGORITHMS_COUNT;
108
+ void grpc_compression_options_init(grpc_compression_options* opts) {
109
+ memset(opts, 0, sizeof(*opts));
110
+ /* all enabled by default */
111
+ opts->enabled_algorithms_bitset = (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1;
106
112
  }
107
113
 
108
- grpc_stream_compression_algorithm grpc_stream_compression_algorithm_from_slice(
109
- grpc_slice str) {
110
- if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_STREAM_COMPRESS_NONE;
111
- if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_STREAM_COMPRESS_GZIP;
112
- return GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT;
114
+ void grpc_compression_options_enable_algorithm(
115
+ grpc_compression_options* opts, grpc_compression_algorithm algorithm) {
116
+ GPR_BITSET(&opts->enabled_algorithms_bitset, algorithm);
117
+ }
118
+
119
+ void grpc_compression_options_disable_algorithm(
120
+ grpc_compression_options* opts, grpc_compression_algorithm algorithm) {
121
+ GPR_BITCLEAR(&opts->enabled_algorithms_bitset, algorithm);
122
+ }
123
+
124
+ int grpc_compression_options_is_algorithm_enabled(
125
+ const grpc_compression_options* opts,
126
+ grpc_compression_algorithm algorithm) {
127
+ return GPR_BITGET(opts->enabled_algorithms_bitset, algorithm);
113
128
  }
114
129
 
115
130
  grpc_slice grpc_compression_algorithm_slice(
@@ -121,23 +136,22 @@ grpc_slice grpc_compression_algorithm_slice(
121
136
  return GRPC_MDSTR_DEFLATE;
122
137
  case GRPC_COMPRESS_GZIP:
123
138
  return GRPC_MDSTR_GZIP;
139
+ case GRPC_COMPRESS_STREAM_GZIP:
140
+ return GRPC_MDSTR_STREAM_SLASH_GZIP;
124
141
  case GRPC_COMPRESS_ALGORITHMS_COUNT:
125
142
  return grpc_empty_slice();
126
143
  }
127
144
  return grpc_empty_slice();
128
145
  }
129
146
 
130
- grpc_slice grpc_stream_compression_algorithm_slice(
131
- grpc_stream_compression_algorithm algorithm) {
132
- switch (algorithm) {
133
- case GRPC_STREAM_COMPRESS_NONE:
134
- return GRPC_MDSTR_IDENTITY;
135
- case GRPC_STREAM_COMPRESS_GZIP:
136
- return GRPC_MDSTR_GZIP;
137
- case GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT:
138
- return grpc_empty_slice();
139
- }
140
- return grpc_empty_slice();
147
+ grpc_compression_algorithm grpc_compression_algorithm_from_slice(
148
+ grpc_slice str) {
149
+ if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_COMPRESS_NONE;
150
+ if (grpc_slice_eq(str, GRPC_MDSTR_DEFLATE)) return GRPC_COMPRESS_DEFLATE;
151
+ if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_COMPRESS_GZIP;
152
+ if (grpc_slice_eq(str, GRPC_MDSTR_STREAM_SLASH_GZIP))
153
+ return GRPC_COMPRESS_STREAM_GZIP;
154
+ return GRPC_COMPRESS_ALGORITHMS_COUNT;
141
155
  }
142
156
 
143
157
  grpc_mdelem grpc_compression_encoding_mdelem(
@@ -149,135 +163,10 @@ grpc_mdelem grpc_compression_encoding_mdelem(
149
163
  return GRPC_MDELEM_GRPC_ENCODING_DEFLATE;
150
164
  case GRPC_COMPRESS_GZIP:
151
165
  return GRPC_MDELEM_GRPC_ENCODING_GZIP;
166
+ case GRPC_COMPRESS_STREAM_GZIP:
167
+ return GRPC_MDELEM_GRPC_ENCODING_GZIP;
152
168
  default:
153
169
  break;
154
170
  }
155
171
  return GRPC_MDNULL;
156
172
  }
157
-
158
- grpc_mdelem grpc_stream_compression_encoding_mdelem(
159
- grpc_stream_compression_algorithm algorithm) {
160
- switch (algorithm) {
161
- case GRPC_STREAM_COMPRESS_NONE:
162
- return GRPC_MDELEM_CONTENT_ENCODING_IDENTITY;
163
- case GRPC_STREAM_COMPRESS_GZIP:
164
- return GRPC_MDELEM_CONTENT_ENCODING_GZIP;
165
- default:
166
- break;
167
- }
168
- return GRPC_MDNULL;
169
- }
170
-
171
- void grpc_compression_options_init(grpc_compression_options* opts) {
172
- memset(opts, 0, sizeof(*opts));
173
- /* all enabled by default */
174
- opts->enabled_algorithms_bitset = (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1;
175
- opts->enabled_stream_compression_algorithms_bitset =
176
- (1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 1;
177
- }
178
-
179
- void grpc_compression_options_enable_algorithm(
180
- grpc_compression_options* opts, grpc_compression_algorithm algorithm) {
181
- GPR_BITSET(&opts->enabled_algorithms_bitset, algorithm);
182
- }
183
-
184
- void grpc_compression_options_disable_algorithm(
185
- grpc_compression_options* opts, grpc_compression_algorithm algorithm) {
186
- GPR_BITCLEAR(&opts->enabled_algorithms_bitset, algorithm);
187
- }
188
-
189
- int grpc_compression_options_is_algorithm_enabled(
190
- const grpc_compression_options* opts,
191
- grpc_compression_algorithm algorithm) {
192
- return GPR_BITGET(opts->enabled_algorithms_bitset, algorithm);
193
- }
194
-
195
- int grpc_compression_options_is_stream_compression_algorithm_enabled(
196
- const grpc_compression_options* opts,
197
- grpc_stream_compression_algorithm algorithm) {
198
- return GPR_BITGET(opts->enabled_stream_compression_algorithms_bitset,
199
- algorithm);
200
- }
201
-
202
- /* TODO(dgq): Add the ability to specify parameters to the individual
203
- * compression algorithms */
204
- grpc_compression_algorithm grpc_compression_algorithm_for_level(
205
- grpc_compression_level level, uint32_t accepted_encodings) {
206
- GRPC_API_TRACE("grpc_compression_algorithm_for_level(level=%d)", 1,
207
- ((int)level));
208
- if (level > GRPC_COMPRESS_LEVEL_HIGH) {
209
- gpr_log(GPR_ERROR, "Unknown compression level %d.", (int)level);
210
- abort();
211
- }
212
-
213
- const size_t num_supported =
214
- GPR_BITCOUNT(accepted_encodings) - 1; /* discard NONE */
215
- if (level == GRPC_COMPRESS_LEVEL_NONE || num_supported == 0) {
216
- return GRPC_COMPRESS_NONE;
217
- }
218
-
219
- GPR_ASSERT(level > 0);
220
-
221
- /* Establish a "ranking" or compression algorithms in increasing order of
222
- * compression.
223
- * This is simplistic and we will probably want to introduce other dimensions
224
- * in the future (cpu/memory cost, etc). */
225
- const grpc_compression_algorithm algos_ranking[] = {GRPC_COMPRESS_GZIP,
226
- GRPC_COMPRESS_DEFLATE};
227
-
228
- /* intersect algos_ranking with the supported ones keeping the ranked order */
229
- grpc_compression_algorithm
230
- sorted_supported_algos[GRPC_COMPRESS_ALGORITHMS_COUNT];
231
- size_t algos_supported_idx = 0;
232
- for (size_t i = 0; i < GPR_ARRAY_SIZE(algos_ranking); i++) {
233
- const grpc_compression_algorithm alg = algos_ranking[i];
234
- for (size_t j = 0; j < num_supported; j++) {
235
- if (GPR_BITGET(accepted_encodings, alg) == 1) {
236
- /* if \a alg in supported */
237
- sorted_supported_algos[algos_supported_idx++] = alg;
238
- break;
239
- }
240
- }
241
- if (algos_supported_idx == num_supported) break;
242
- }
243
-
244
- switch (level) {
245
- case GRPC_COMPRESS_LEVEL_NONE:
246
- abort(); /* should have been handled already */
247
- case GRPC_COMPRESS_LEVEL_LOW:
248
- return sorted_supported_algos[0];
249
- case GRPC_COMPRESS_LEVEL_MED:
250
- return sorted_supported_algos[num_supported / 2];
251
- case GRPC_COMPRESS_LEVEL_HIGH:
252
- return sorted_supported_algos[num_supported - 1];
253
- default:
254
- abort();
255
- };
256
- }
257
-
258
- GRPCAPI grpc_stream_compression_algorithm
259
- grpc_stream_compression_algorithm_for_level(
260
- grpc_stream_compression_level level, uint32_t accepted_stream_encodings) {
261
- GRPC_API_TRACE("grpc_stream_compression_algorithm_for_level(level=%d)", 1,
262
- ((int)level));
263
- if (level > GRPC_STREAM_COMPRESS_LEVEL_HIGH) {
264
- gpr_log(GPR_ERROR, "Unknown compression level %d.", (int)level);
265
- abort();
266
- }
267
-
268
- switch (level) {
269
- case GRPC_STREAM_COMPRESS_LEVEL_NONE:
270
- return GRPC_STREAM_COMPRESS_NONE;
271
- case GRPC_STREAM_COMPRESS_LEVEL_LOW:
272
- case GRPC_STREAM_COMPRESS_LEVEL_MED:
273
- case GRPC_STREAM_COMPRESS_LEVEL_HIGH:
274
- if (GPR_BITGET(accepted_stream_encodings, GRPC_STREAM_COMPRESS_GZIP) ==
275
- 1) {
276
- return GRPC_STREAM_COMPRESS_GZIP;
277
- } else {
278
- return GRPC_STREAM_COMPRESS_NONE;
279
- }
280
- default:
281
- abort();
282
- }
283
- }