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
@@ -16,31 +16,27 @@
16
16
  *
17
17
  */
18
18
 
19
- #ifndef GRPC_SUPPORT_AVL_H
20
- #define GRPC_SUPPORT_AVL_H
19
+ #ifndef GRPC_CORE_LIB_AVL_AVL_H
20
+ #define GRPC_CORE_LIB_AVL_AVL_H
21
21
 
22
22
  #include <grpc/support/sync.h>
23
23
 
24
- #ifdef __cplusplus
25
- extern "C" {
26
- #endif
27
-
28
24
  /** internal node of an AVL tree */
29
- typedef struct gpr_avl_node {
25
+ typedef struct grpc_avl_node {
30
26
  gpr_refcount refs;
31
27
  void* key;
32
28
  void* value;
33
- struct gpr_avl_node* left;
34
- struct gpr_avl_node* right;
29
+ struct grpc_avl_node* left;
30
+ struct grpc_avl_node* right;
35
31
  long height;
36
- } gpr_avl_node;
32
+ } grpc_avl_node;
37
33
 
38
34
  /** vtable for the AVL tree
39
- * The optional user_data is propagated from the top level gpr_avl_XXX API.
35
+ * The optional user_data is propagated from the top level grpc_avl_XXX API.
40
36
  * From the same API call, multiple vtable functions may be called multiple
41
37
  * times.
42
38
  */
43
- typedef struct gpr_avl_vtable {
39
+ typedef struct grpc_avl_vtable {
44
40
  /** destroy a key */
45
41
  void (*destroy_key)(void* key, void* user_data);
46
42
  /** copy a key, returning new value */
@@ -52,51 +48,45 @@ typedef struct gpr_avl_vtable {
52
48
  void (*destroy_value)(void* value, void* user_data);
53
49
  /** copy a value */
54
50
  void* (*copy_value)(void* value, void* user_data);
55
- } gpr_avl_vtable;
51
+ } grpc_avl_vtable;
56
52
 
57
53
  /** "pointer" to an AVL tree - this is a reference
58
- counted object - use gpr_avl_ref to add a reference,
59
- gpr_avl_unref when done with a reference */
60
- typedef struct gpr_avl {
61
- const gpr_avl_vtable* vtable;
62
- gpr_avl_node* root;
63
- } gpr_avl;
54
+ counted object - use grpc_avl_ref to add a reference,
55
+ grpc_avl_unref when done with a reference */
56
+ typedef struct grpc_avl {
57
+ const grpc_avl_vtable* vtable;
58
+ grpc_avl_node* root;
59
+ } grpc_avl;
64
60
 
65
61
  /** Create an immutable AVL tree. */
66
- GPRAPI gpr_avl gpr_avl_create(const gpr_avl_vtable* vtable);
62
+ grpc_avl grpc_avl_create(const grpc_avl_vtable* vtable);
67
63
  /** Add a reference to an existing tree - returns
68
64
  the tree as a convenience. The optional user_data will be passed to vtable
69
65
  functions. */
70
- GPRAPI gpr_avl gpr_avl_ref(gpr_avl avl, void* user_data);
66
+ grpc_avl grpc_avl_ref(grpc_avl avl, void* user_data);
71
67
  /** Remove a reference to a tree - destroying it if there
72
68
  are no references left. The optional user_data will be passed to vtable
73
69
  functions. */
74
- GPRAPI void gpr_avl_unref(gpr_avl avl, void* user_data);
70
+ void grpc_avl_unref(grpc_avl avl, void* user_data);
75
71
  /** Return a new tree with (key, value) added to avl.
76
72
  implicitly unrefs avl to allow easy chaining.
77
73
  if key exists in avl, the new tree's key entry updated
78
74
  (i.e. a duplicate is not created). The optional user_data will be passed to
79
75
  vtable functions. */
80
- GPRAPI gpr_avl gpr_avl_add(gpr_avl avl, void* key, void* value,
81
- void* user_data);
76
+ grpc_avl grpc_avl_add(grpc_avl avl, void* key, void* value, void* user_data);
82
77
  /** Return a new tree with key deleted
83
78
  implicitly unrefs avl to allow easy chaining. The optional user_data will be
84
79
  passed to vtable functions. */
85
- GPRAPI gpr_avl gpr_avl_remove(gpr_avl avl, void* key, void* user_data);
80
+ grpc_avl grpc_avl_remove(grpc_avl avl, void* key, void* user_data);
86
81
  /** Lookup key, and return the associated value.
87
82
  Does not mutate avl.
88
83
  Returns NULL if key is not found. The optional user_data will be passed to
89
84
  vtable functions.*/
90
- GPRAPI void* gpr_avl_get(gpr_avl avl, void* key, void* user_data);
85
+ void* grpc_avl_get(grpc_avl avl, void* key, void* user_data);
91
86
  /** Return 1 if avl contains key, 0 otherwise; if it has the key, sets *value to
92
- its value. THe optional user_data will be passed to vtable functions. */
93
- GPRAPI int gpr_avl_maybe_get(gpr_avl avl, void* key, void** value,
94
- void* user_data);
87
+ its value. The optional user_data will be passed to vtable functions. */
88
+ int grpc_avl_maybe_get(grpc_avl avl, void* key, void** value, void* user_data);
95
89
  /** Return 1 if avl is empty, 0 otherwise */
96
- GPRAPI int gpr_avl_is_empty(gpr_avl avl);
97
-
98
- #ifdef __cplusplus
99
- }
100
- #endif
90
+ int grpc_avl_is_empty(grpc_avl avl);
101
91
 
102
- #endif /* GRPC_SUPPORT_AVL_H */
92
+ #endif /* GRPC_CORE_LIB_AVL_AVL_H */
@@ -20,7 +20,7 @@
20
20
 
21
21
  #include <algorithm>
22
22
 
23
- #include <grpc/support/useful.h>
23
+ #include "src/core/lib/gpr/useful.h"
24
24
 
25
25
  namespace grpc_core {
26
26
 
@@ -55,13 +55,14 @@ grpc_millis BackOff::NextAttemptTime() {
55
55
  initial_ = false;
56
56
  return current_backoff_ + grpc_core::ExecCtx::Get()->Now();
57
57
  }
58
- current_backoff_ =
59
- (grpc_millis)(std::min(current_backoff_ * options_.multiplier(),
60
- (double)options_.max_backoff()));
58
+ current_backoff_ = static_cast<grpc_millis>(
59
+ std::min(current_backoff_ * options_.multiplier(),
60
+ static_cast<double>(options_.max_backoff())));
61
61
  const double jitter = generate_uniform_random_number_between(
62
62
  &rng_state_, -options_.jitter() * current_backoff_,
63
63
  options_.jitter() * current_backoff_);
64
- const grpc_millis next_timeout = (grpc_millis)(current_backoff_ + jitter);
64
+ const grpc_millis next_timeout =
65
+ static_cast<grpc_millis>(current_backoff_ + jitter);
65
66
  return next_timeout + grpc_core::ExecCtx::Get()->Now();
66
67
  }
67
68
 
@@ -26,10 +26,10 @@
26
26
  #include <grpc/support/alloc.h>
27
27
  #include <grpc/support/log.h>
28
28
  #include <grpc/support/string_util.h>
29
- #include <grpc/support/useful.h>
30
29
 
31
30
  #include "src/core/lib/channel/channel_args.h"
32
31
  #include "src/core/lib/gpr/string.h"
32
+ #include "src/core/lib/gpr/useful.h"
33
33
 
34
34
  static grpc_arg copy_arg(const grpc_arg* src) {
35
35
  grpc_arg dst;
@@ -87,13 +87,14 @@ grpc_channel_args* grpc_channel_args_copy_and_add_and_remove(
87
87
  }
88
88
  // Create result.
89
89
  grpc_channel_args* dst =
90
- (grpc_channel_args*)gpr_malloc(sizeof(grpc_channel_args));
90
+ static_cast<grpc_channel_args*>(gpr_malloc(sizeof(grpc_channel_args)));
91
91
  dst->num_args = num_args_to_copy + num_to_add;
92
92
  if (dst->num_args == 0) {
93
93
  dst->args = nullptr;
94
94
  return dst;
95
95
  }
96
- dst->args = (grpc_arg*)gpr_malloc(sizeof(grpc_arg) * dst->num_args);
96
+ dst->args =
97
+ static_cast<grpc_arg*>(gpr_malloc(sizeof(grpc_arg) * dst->num_args));
97
98
  // Copy args from src that are not being removed.
98
99
  size_t dst_idx = 0;
99
100
  if (src != nullptr) {
@@ -118,7 +119,8 @@ grpc_channel_args* grpc_channel_args_copy(const grpc_channel_args* src) {
118
119
  grpc_channel_args* grpc_channel_args_union(const grpc_channel_args* a,
119
120
  const grpc_channel_args* b) {
120
121
  const size_t max_out = (a->num_args + b->num_args);
121
- grpc_arg* uniques = (grpc_arg*)gpr_malloc(sizeof(*uniques) * max_out);
122
+ grpc_arg* uniques =
123
+ static_cast<grpc_arg*>(gpr_malloc(sizeof(*uniques) * max_out));
122
124
  for (size_t i = 0; i < a->num_args; ++i) uniques[i] = a->args[i];
123
125
 
124
126
  size_t uniques_idx = a->num_args;
@@ -161,15 +163,16 @@ static int cmp_arg(const grpc_arg* a, const grpc_arg* b) {
161
163
  /* stabilizing comparison function: since channel_args ordering matters for
162
164
  * keys with the same name, we need to preserve that ordering */
163
165
  static int cmp_key_stable(const void* ap, const void* bp) {
164
- const grpc_arg* const* a = (const grpc_arg* const*)ap;
165
- const grpc_arg* const* b = (const grpc_arg* const*)bp;
166
+ const grpc_arg* const* a = static_cast<const grpc_arg* const*>(ap);
167
+ const grpc_arg* const* b = static_cast<const grpc_arg* const*>(bp);
166
168
  int c = strcmp((*a)->key, (*b)->key);
167
169
  if (c == 0) c = GPR_ICMP(*a, *b);
168
170
  return c;
169
171
  }
170
172
 
171
173
  grpc_channel_args* grpc_channel_args_normalize(const grpc_channel_args* a) {
172
- grpc_arg** args = (grpc_arg**)gpr_malloc(sizeof(grpc_arg*) * a->num_args);
174
+ grpc_arg** args =
175
+ static_cast<grpc_arg**>(gpr_malloc(sizeof(grpc_arg*) * a->num_args));
173
176
  for (size_t i = 0; i < a->num_args; i++) {
174
177
  args[i] = &a->args[i];
175
178
  }
@@ -177,9 +180,9 @@ grpc_channel_args* grpc_channel_args_normalize(const grpc_channel_args* a) {
177
180
  qsort(args, a->num_args, sizeof(grpc_arg*), cmp_key_stable);
178
181
 
179
182
  grpc_channel_args* b =
180
- (grpc_channel_args*)gpr_malloc(sizeof(grpc_channel_args));
183
+ static_cast<grpc_channel_args*>(gpr_malloc(sizeof(grpc_channel_args)));
181
184
  b->num_args = a->num_args;
182
- b->args = (grpc_arg*)gpr_malloc(sizeof(grpc_arg) * b->num_args);
185
+ b->args = static_cast<grpc_arg*>(gpr_malloc(sizeof(grpc_arg) * b->num_args));
183
186
  for (size_t i = 0; i < a->num_args; i++) {
184
187
  b->args[i] = copy_arg(args[i]);
185
188
  }
@@ -215,28 +218,13 @@ grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
215
218
  for (i = 0; i < a->num_args; ++i) {
216
219
  if (a->args[i].type == GRPC_ARG_INTEGER &&
217
220
  !strcmp(GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM, a->args[i].key)) {
218
- return (grpc_compression_algorithm)a->args[i].value.integer;
221
+ return static_cast<grpc_compression_algorithm>(a->args[i].value.integer);
219
222
  break;
220
223
  }
221
224
  }
222
225
  return GRPC_COMPRESS_NONE;
223
226
  }
224
227
 
225
- grpc_stream_compression_algorithm
226
- grpc_channel_args_get_stream_compression_algorithm(const grpc_channel_args* a) {
227
- size_t i;
228
- if (a == nullptr) return GRPC_STREAM_COMPRESS_NONE;
229
- for (i = 0; i < a->num_args; ++i) {
230
- if (a->args[i].type == GRPC_ARG_INTEGER &&
231
- !strcmp(GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM,
232
- a->args[i].key)) {
233
- return (grpc_stream_compression_algorithm)a->args[i].value.integer;
234
- break;
235
- }
236
- }
237
- return GRPC_STREAM_COMPRESS_NONE;
238
- }
239
-
240
228
  grpc_channel_args* grpc_channel_args_set_compression_algorithm(
241
229
  grpc_channel_args* a, grpc_compression_algorithm algorithm) {
242
230
  GPR_ASSERT(algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT);
@@ -247,16 +235,6 @@ grpc_channel_args* grpc_channel_args_set_compression_algorithm(
247
235
  return grpc_channel_args_copy_and_add(a, &tmp, 1);
248
236
  }
249
237
 
250
- grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
251
- grpc_channel_args* a, grpc_stream_compression_algorithm algorithm) {
252
- GPR_ASSERT(algorithm < GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT);
253
- grpc_arg tmp;
254
- tmp.type = GRPC_ARG_INTEGER;
255
- tmp.key = (char*)GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM;
256
- tmp.value.integer = algorithm;
257
- return grpc_channel_args_copy_and_add(a, &tmp, 1);
258
- }
259
-
260
238
  /** Returns 1 if the argument for compression algorithm's enabled states bitset
261
239
  * was found in \a a, returning the arg's value in \a states. Otherwise, returns
262
240
  * 0. */
@@ -277,26 +255,6 @@ static int find_compression_algorithm_states_bitset(const grpc_channel_args* a,
277
255
  return 0; /* GPR_FALSE */
278
256
  }
279
257
 
280
- /** Returns 1 if the argument for compression algorithm's enabled states bitset
281
- * was found in \a a, returning the arg's value in \a states. Otherwise, returns
282
- * 0. */
283
- static int find_stream_compression_algorithm_states_bitset(
284
- const grpc_channel_args* a, int** states_arg) {
285
- if (a != nullptr) {
286
- size_t i;
287
- for (i = 0; i < a->num_args; ++i) {
288
- if (a->args[i].type == GRPC_ARG_INTEGER &&
289
- !strcmp(GRPC_STREAM_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
290
- a->args[i].key)) {
291
- *states_arg = &a->args[i].value.integer;
292
- **states_arg |= 0x1; /* forcefully enable support for no compression */
293
- return 1;
294
- }
295
- }
296
- }
297
- return 0; /* GPR_FALSE */
298
- }
299
-
300
258
  grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
301
259
  grpc_channel_args** a, grpc_compression_algorithm algorithm, int state) {
302
260
  int* states_arg = nullptr;
@@ -337,69 +295,16 @@ grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
337
295
  return result;
338
296
  }
339
297
 
340
- grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
341
- grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
342
- int state) {
343
- int* states_arg = nullptr;
344
- grpc_channel_args* result = *a;
345
- const int states_arg_found =
346
- find_stream_compression_algorithm_states_bitset(*a, &states_arg);
347
-
348
- if (grpc_channel_args_get_stream_compression_algorithm(*a) == algorithm &&
349
- state == 0) {
350
- const char* algo_name = nullptr;
351
- GPR_ASSERT(grpc_stream_compression_algorithm_name(algorithm, &algo_name) !=
352
- 0);
353
- gpr_log(GPR_ERROR,
354
- "Tried to disable default stream compression algorithm '%s'. The "
355
- "operation has been ignored.",
356
- algo_name);
357
- } else if (states_arg_found) {
358
- if (state != 0) {
359
- GPR_BITSET((unsigned*)states_arg, algorithm);
360
- } else if (algorithm != GRPC_STREAM_COMPRESS_NONE) {
361
- GPR_BITCLEAR((unsigned*)states_arg, algorithm);
362
- }
363
- } else {
364
- /* create a new arg */
365
- grpc_arg tmp;
366
- tmp.type = GRPC_ARG_INTEGER;
367
- tmp.key = (char*)GRPC_STREAM_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET;
368
- /* all enabled by default */
369
- tmp.value.integer = (1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 1;
370
- if (state != 0) {
371
- GPR_BITSET((unsigned*)&tmp.value.integer, algorithm);
372
- } else if (algorithm != GRPC_STREAM_COMPRESS_NONE) {
373
- GPR_BITCLEAR((unsigned*)&tmp.value.integer, algorithm);
374
- }
375
- result = grpc_channel_args_copy_and_add(*a, &tmp, 1);
376
- grpc_channel_args_destroy(*a);
377
- *a = result;
378
- }
379
- return result;
380
- }
381
-
382
298
  uint32_t grpc_channel_args_compression_algorithm_get_states(
383
299
  const grpc_channel_args* a) {
384
300
  int* states_arg;
385
301
  if (find_compression_algorithm_states_bitset(a, &states_arg)) {
386
- return (uint32_t)*states_arg;
302
+ return static_cast<uint32_t>(*states_arg);
387
303
  } else {
388
304
  return (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1; /* All algs. enabled */
389
305
  }
390
306
  }
391
307
 
392
- uint32_t grpc_channel_args_stream_compression_algorithm_get_states(
393
- const grpc_channel_args* a) {
394
- int* states_arg;
395
- if (find_stream_compression_algorithm_states_bitset(a, &states_arg)) {
396
- return (uint32_t)*states_arg;
397
- } else {
398
- return (1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) -
399
- 1; /* All algs. enabled */
400
- }
401
- }
402
-
403
308
  grpc_channel_args* grpc_channel_args_set_socket_mutator(
404
309
  grpc_channel_args* a, grpc_socket_mutator* mutator) {
405
310
  grpc_arg tmp = grpc_socket_mutator_to_arg(mutator);
@@ -449,6 +354,15 @@ int grpc_channel_arg_get_integer(const grpc_arg* arg,
449
354
  return arg->value.integer;
450
355
  }
451
356
 
357
+ char* grpc_channel_arg_get_string(const grpc_arg* arg) {
358
+ if (arg == nullptr) return nullptr;
359
+ if (arg->type != GRPC_ARG_STRING) {
360
+ gpr_log(GPR_ERROR, "%s ignored: it must be an string", arg->key);
361
+ return nullptr;
362
+ }
363
+ return arg->value.string;
364
+ }
365
+
452
366
  bool grpc_channel_arg_get_bool(const grpc_arg* arg, bool default_value) {
453
367
  if (arg == nullptr) return default_value;
454
368
  if (arg->type != GRPC_ARG_INTEGER) {
@@ -59,24 +59,12 @@ void grpc_channel_args_destroy(grpc_channel_args* a);
59
59
  grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
60
60
  const grpc_channel_args* a);
61
61
 
62
- /** Returns the stream compression algorithm set in \a a. */
63
- grpc_stream_compression_algorithm
64
- grpc_channel_args_get_stream_compression_algorithm(const grpc_channel_args* a);
65
-
66
62
  /** Returns a channel arg instance with compression enabled. If \a a is
67
63
  * non-NULL, its args are copied. N.B. GRPC_COMPRESS_NONE disables compression
68
64
  * for the channel. */
69
65
  grpc_channel_args* grpc_channel_args_set_compression_algorithm(
70
66
  grpc_channel_args* a, grpc_compression_algorithm algorithm);
71
67
 
72
- /** Returns a channel arg instance with stream compression enabled. If \a a is
73
- * non-NULL, its args are copied. N.B. GRPC_STREAM_COMPRESS_NONE disables
74
- * stream compression for the channel. If a value other than
75
- * GRPC_STREAM_COMPRESS_NONE is set, it takes precedence over message-wise
76
- * compression algorithms. */
77
- grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
78
- grpc_channel_args* a, grpc_stream_compression_algorithm algorithm);
79
-
80
68
  /** Sets the support for the given compression algorithm. By default, all
81
69
  * compression algorithms are enabled. It's an error to disable an algorithm set
82
70
  * by grpc_channel_args_set_compression_algorithm.
@@ -87,17 +75,6 @@ grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
87
75
  grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
88
76
  grpc_channel_args** a, grpc_compression_algorithm algorithm, int enabled);
89
77
 
90
- /** Sets the support for the given stream compression algorithm. By default, all
91
- * stream compression algorithms are enabled. It's an error to disable an
92
- * algorithm set by grpc_channel_args_set_stream_compression_algorithm.
93
- *
94
- * Returns an instance with the updated algorithm states. The \a a pointer is
95
- * modified to point to the returned instance (which may be different from the
96
- * input value of \a a). */
97
- grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
98
- grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
99
- int enabled);
100
-
101
78
  /** Returns the bitset representing the support state (true for enabled, false
102
79
  * for disabled) for compression algorithms.
103
80
  *
@@ -106,14 +83,6 @@ grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
106
83
  uint32_t grpc_channel_args_compression_algorithm_get_states(
107
84
  const grpc_channel_args* a);
108
85
 
109
- /** Returns the bitset representing the support state (true for enabled, false
110
- * for disabled) for stream compression algorithms.
111
- *
112
- * The i-th bit of the returned bitset corresponds to the i-th entry in the
113
- * grpc_stream_compression_algorithm enum. */
114
- uint32_t grpc_channel_args_stream_compression_algorithm_get_states(
115
- const grpc_channel_args* a);
116
-
117
86
  int grpc_channel_args_compare(const grpc_channel_args* a,
118
87
  const grpc_channel_args* b);
119
88
 
@@ -140,6 +109,11 @@ typedef struct grpc_integer_options {
140
109
  int grpc_channel_arg_get_integer(const grpc_arg* arg,
141
110
  const grpc_integer_options options);
142
111
 
112
+ /** Returns the value of \a arg if \a arg is of type GRPC_ARG_STRING.
113
+ Otherwise, emits a warning log, and returns nullptr.
114
+ If arg is nullptr, returns nullptr, and does not emit a warning. */
115
+ char* grpc_channel_arg_get_string(const grpc_arg* arg);
116
+
143
117
  bool grpc_channel_arg_get_bool(const grpc_arg* arg, bool default_value);
144
118
 
145
119
  // Helpers for creating channel args.
@@ -104,8 +104,9 @@ grpc_error* grpc_channel_stack_init(
104
104
  GRPC_STREAM_REF_INIT(&stack->refcount, initial_refs, destroy, destroy_arg,
105
105
  name);
106
106
  elems = CHANNEL_ELEMS_FROM_STACK(stack);
107
- user_data = ((char*)elems) + ROUND_UP_TO_ALIGNMENT_SIZE(
108
- filter_count * sizeof(grpc_channel_element));
107
+ user_data =
108
+ (reinterpret_cast<char*>(elems)) +
109
+ ROUND_UP_TO_ALIGNMENT_SIZE(filter_count * sizeof(grpc_channel_element));
109
110
 
110
111
  /* init per-filter data */
111
112
  grpc_error* first_error = GRPC_ERROR_NONE;
@@ -162,7 +163,7 @@ grpc_error* grpc_call_stack_init(grpc_channel_stack* channel_stack,
162
163
  GRPC_STREAM_REF_INIT(&elem_args->call_stack->refcount, initial_refs, destroy,
163
164
  destroy_arg, "CALL_STACK");
164
165
  call_elems = CALL_ELEMS_FROM_STACK(elem_args->call_stack);
165
- user_data = ((char*)call_elems) +
166
+ user_data = (reinterpret_cast<char*>(call_elems)) +
166
167
  ROUND_UP_TO_ALIGNMENT_SIZE(count * sizeof(grpc_call_element));
167
168
 
168
169
  /* init per-filter data */
@@ -194,7 +195,7 @@ void grpc_call_stack_set_pollset_or_pollset_set(grpc_call_stack* call_stack,
194
195
  size_t i;
195
196
 
196
197
  call_elems = CALL_ELEMS_FROM_STACK(call_stack);
197
- user_data = ((char*)call_elems) +
198
+ user_data = (reinterpret_cast<char*>(call_elems)) +
198
199
  ROUND_UP_TO_ALIGNMENT_SIZE(count * sizeof(grpc_call_element));
199
200
 
200
201
  /* init per-filter data */
@@ -243,11 +244,13 @@ void grpc_channel_next_op(grpc_channel_element* elem, grpc_transport_op* op) {
243
244
 
244
245
  grpc_channel_stack* grpc_channel_stack_from_top_element(
245
246
  grpc_channel_element* elem) {
246
- return (grpc_channel_stack*)((char*)(elem)-ROUND_UP_TO_ALIGNMENT_SIZE(
247
- sizeof(grpc_channel_stack)));
247
+ return reinterpret_cast<grpc_channel_stack*>(
248
+ reinterpret_cast<char*>(elem) -
249
+ ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(grpc_channel_stack)));
248
250
  }
249
251
 
250
252
  grpc_call_stack* grpc_call_stack_from_top_element(grpc_call_element* elem) {
251
- return (grpc_call_stack*)((char*)(elem)-ROUND_UP_TO_ALIGNMENT_SIZE(
252
- sizeof(grpc_call_stack)));
253
+ return reinterpret_cast<grpc_call_stack*>(
254
+ reinterpret_cast<char*>(elem) -
255
+ ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(grpc_call_stack)));
253
256
  }