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
@@ -23,8 +23,8 @@
23
23
 
24
24
  #include <grpc/support/alloc.h>
25
25
  #include <grpc/support/log.h>
26
- #include <grpc/support/useful.h>
27
26
 
27
+ #include "src/core/lib/gpr/useful.h"
28
28
  #include "src/core/lib/slice/slice_internal.h"
29
29
 
30
30
  /* grow a buffer; requires GRPC_SLICE_BUFFER_INLINE_ELEMENTS > 1 */
@@ -32,7 +32,7 @@
32
32
 
33
33
  static void maybe_embiggen(grpc_slice_buffer* sb) {
34
34
  /* How far away from sb->base_slices is sb->slices pointer */
35
- size_t slice_offset = (size_t)(sb->slices - sb->base_slices);
35
+ size_t slice_offset = static_cast<size_t>(sb->slices - sb->base_slices);
36
36
  size_t slice_count = sb->count + slice_offset;
37
37
 
38
38
  if (slice_count == sb->capacity) {
@@ -45,12 +45,12 @@ static void maybe_embiggen(grpc_slice_buffer* sb) {
45
45
  sb->capacity = GROW(sb->capacity);
46
46
  GPR_ASSERT(sb->capacity > slice_count);
47
47
  if (sb->base_slices == sb->inlined) {
48
- sb->base_slices =
49
- (grpc_slice*)gpr_malloc(sb->capacity * sizeof(grpc_slice));
48
+ sb->base_slices = static_cast<grpc_slice*>(
49
+ gpr_malloc(sb->capacity * sizeof(grpc_slice)));
50
50
  memcpy(sb->base_slices, sb->inlined, slice_count * sizeof(grpc_slice));
51
51
  } else {
52
- sb->base_slices = (grpc_slice*)gpr_realloc(
53
- sb->base_slices, sb->capacity * sizeof(grpc_slice));
52
+ sb->base_slices = static_cast<grpc_slice*>(
53
+ gpr_realloc(sb->base_slices, sb->capacity * sizeof(grpc_slice)));
54
54
  }
55
55
 
56
56
  sb->slices = sb->base_slices + slice_offset;
@@ -89,7 +89,8 @@ uint8_t* grpc_slice_buffer_tiny_add(grpc_slice_buffer* sb, size_t n) {
89
89
  if ((back->data.inlined.length + n) > sizeof(back->data.inlined.bytes))
90
90
  goto add_new;
91
91
  out = back->data.inlined.bytes + back->data.inlined.length;
92
- back->data.inlined.length = (uint8_t)(back->data.inlined.length + n);
92
+ back->data.inlined.length =
93
+ static_cast<uint8_t>(back->data.inlined.length + n);
93
94
  return out;
94
95
 
95
96
  add_new:
@@ -97,7 +98,7 @@ add_new:
97
98
  back = &sb->slices[sb->count];
98
99
  sb->count++;
99
100
  back->refcount = nullptr;
100
- back->data.inlined.length = (uint8_t)n;
101
+ back->data.inlined.length = static_cast<uint8_t>(n);
101
102
  return back->data.inlined.bytes;
102
103
  }
103
104
 
@@ -125,8 +126,8 @@ void grpc_slice_buffer_add(grpc_slice_buffer* sb, grpc_slice s) {
125
126
  GRPC_SLICE_INLINED_SIZE) {
126
127
  memcpy(back->data.inlined.bytes + back->data.inlined.length,
127
128
  s.data.inlined.bytes, s.data.inlined.length);
128
- back->data.inlined.length =
129
- (uint8_t)(back->data.inlined.length + s.data.inlined.length);
129
+ back->data.inlined.length = static_cast<uint8_t>(
130
+ back->data.inlined.length + s.data.inlined.length);
130
131
  } else {
131
132
  size_t cp1 = GRPC_SLICE_INLINED_SIZE - back->data.inlined.length;
132
133
  memcpy(back->data.inlined.bytes + back->data.inlined.length,
@@ -136,7 +137,8 @@ void grpc_slice_buffer_add(grpc_slice_buffer* sb, grpc_slice s) {
136
137
  back = &sb->slices[n];
137
138
  sb->count = n + 1;
138
139
  back->refcount = nullptr;
139
- back->data.inlined.length = (uint8_t)(s.data.inlined.length - cp1);
140
+ back->data.inlined.length =
141
+ static_cast<uint8_t>(s.data.inlined.length - cp1);
140
142
  memcpy(back->data.inlined.bytes, s.data.inlined.bytes + cp1,
141
143
  s.data.inlined.length - cp1);
142
144
  }
@@ -177,8 +179,8 @@ void grpc_slice_buffer_reset_and_unref(grpc_slice_buffer* sb) {
177
179
  }
178
180
 
179
181
  void grpc_slice_buffer_swap(grpc_slice_buffer* a, grpc_slice_buffer* b) {
180
- size_t a_offset = (size_t)(a->slices - a->base_slices);
181
- size_t b_offset = (size_t)(b->slices - b->base_slices);
182
+ size_t a_offset = static_cast<size_t>(a->slices - a->base_slices);
183
+ size_t b_offset = static_cast<size_t>(b->slices - b->base_slices);
182
184
 
183
185
  size_t a_count = a->count + a_offset;
184
186
  size_t b_count = b->count + b_offset;
@@ -287,7 +289,7 @@ void grpc_slice_buffer_move_first_no_ref(grpc_slice_buffer* src, size_t n,
287
289
 
288
290
  void grpc_slice_buffer_move_first_into_buffer(grpc_slice_buffer* src, size_t n,
289
291
  void* dst) {
290
- char* dstp = (char*)dst;
292
+ char* dstp = static_cast<char*>(dst);
291
293
  GPR_ASSERT(src->length >= n);
292
294
 
293
295
  while (n > 0) {
@@ -60,14 +60,15 @@ grpc_slice_hash_table* grpc_slice_hash_table_create(
60
60
  size_t num_entries, grpc_slice_hash_table_entry* entries,
61
61
  void (*destroy_value)(void* value), int (*value_cmp)(void* a, void* b)) {
62
62
  grpc_slice_hash_table* table =
63
- (grpc_slice_hash_table*)gpr_zalloc(sizeof(*table));
63
+ static_cast<grpc_slice_hash_table*>(gpr_zalloc(sizeof(*table)));
64
64
  gpr_ref_init(&table->refs, 1);
65
65
  table->destroy_value = destroy_value;
66
66
  table->value_cmp = value_cmp;
67
67
  // Keep load factor low to improve performance of lookups.
68
68
  table->size = num_entries * 2;
69
69
  const size_t entry_size = sizeof(grpc_slice_hash_table_entry) * table->size;
70
- table->entries = (grpc_slice_hash_table_entry*)gpr_zalloc(entry_size);
70
+ table->entries =
71
+ static_cast<grpc_slice_hash_table_entry*>(gpr_zalloc(entry_size));
71
72
  for (size_t i = 0; i < num_entries; ++i) {
72
73
  grpc_slice_hash_table_entry* entry = &entries[i];
73
74
  grpc_slice_hash_table_add(table, entry->key, entry->value);
@@ -70,7 +70,7 @@ static uint32_t max_static_metadata_hash_probe;
70
70
  static uint32_t static_metadata_hash_values[GRPC_STATIC_MDSTR_COUNT];
71
71
 
72
72
  static void interned_slice_ref(void* p) {
73
- interned_slice_refcount* s = (interned_slice_refcount*)p;
73
+ interned_slice_refcount* s = static_cast<interned_slice_refcount*>(p);
74
74
  GPR_ASSERT(gpr_atm_no_barrier_fetch_add(&s->refcnt, 1) > 0);
75
75
  }
76
76
 
@@ -91,22 +91,25 @@ static void interned_slice_destroy(interned_slice_refcount* s) {
91
91
  }
92
92
 
93
93
  static void interned_slice_unref(void* p) {
94
- interned_slice_refcount* s = (interned_slice_refcount*)p;
94
+ interned_slice_refcount* s = static_cast<interned_slice_refcount*>(p);
95
95
  if (1 == gpr_atm_full_fetch_add(&s->refcnt, -1)) {
96
96
  interned_slice_destroy(s);
97
97
  }
98
98
  }
99
99
 
100
100
  static void interned_slice_sub_ref(void* p) {
101
- interned_slice_ref(((char*)p) - offsetof(interned_slice_refcount, sub));
101
+ interned_slice_ref((static_cast<char*>(p)) -
102
+ offsetof(interned_slice_refcount, sub));
102
103
  }
103
104
 
104
105
  static void interned_slice_sub_unref(void* p) {
105
- interned_slice_unref(((char*)p) - offsetof(interned_slice_refcount, sub));
106
+ interned_slice_unref((static_cast<char*>(p)) -
107
+ offsetof(interned_slice_refcount, sub));
106
108
  }
107
109
 
108
110
  static uint32_t interned_slice_hash(grpc_slice slice) {
109
- interned_slice_refcount* s = (interned_slice_refcount*)slice.refcount;
111
+ interned_slice_refcount* s =
112
+ reinterpret_cast<interned_slice_refcount*>(slice.refcount);
110
113
  return s->hash;
111
114
  }
112
115
 
@@ -122,15 +125,15 @@ static const grpc_slice_refcount_vtable interned_slice_sub_vtable = {
122
125
  grpc_slice_default_eq_impl, grpc_slice_default_hash_impl};
123
126
 
124
127
  static void grow_shard(slice_shard* shard) {
128
+ GPR_TIMER_SCOPE("grow_strtab", 0);
129
+
125
130
  size_t capacity = shard->capacity * 2;
126
131
  size_t i;
127
132
  interned_slice_refcount** strtab;
128
133
  interned_slice_refcount *s, *next;
129
134
 
130
- GPR_TIMER_BEGIN("grow_strtab", 0);
131
-
132
- strtab = (interned_slice_refcount**)gpr_zalloc(
133
- sizeof(interned_slice_refcount*) * capacity);
135
+ strtab = static_cast<interned_slice_refcount**>(
136
+ gpr_zalloc(sizeof(interned_slice_refcount*) * capacity));
134
137
 
135
138
  for (i = 0; i < shard->capacity; i++) {
136
139
  for (s = shard->strs[i]; s; s = next) {
@@ -140,18 +143,15 @@ static void grow_shard(slice_shard* shard) {
140
143
  strtab[idx] = s;
141
144
  }
142
145
  }
143
-
144
146
  gpr_free(shard->strs);
145
147
  shard->strs = strtab;
146
148
  shard->capacity = capacity;
147
-
148
- GPR_TIMER_END("grow_strtab", 0);
149
149
  }
150
150
 
151
151
  static grpc_slice materialize(interned_slice_refcount* s) {
152
152
  grpc_slice slice;
153
153
  slice.refcount = &s->base;
154
- slice.data.refcounted.bytes = (uint8_t*)(s + 1);
154
+ slice.data.refcounted.bytes = reinterpret_cast<uint8_t*>(s + 1);
155
155
  slice.data.refcounted.length = s->length;
156
156
  return slice;
157
157
  }
@@ -200,9 +200,8 @@ bool grpc_slice_is_interned(grpc_slice slice) {
200
200
  }
201
201
 
202
202
  grpc_slice grpc_slice_intern(grpc_slice slice) {
203
- GPR_TIMER_BEGIN("grpc_slice_intern", 0);
203
+ GPR_TIMER_SCOPE("grpc_slice_intern", 0);
204
204
  if (GRPC_IS_STATIC_METADATA_STRING(slice)) {
205
- GPR_TIMER_END("grpc_slice_intern", 0);
206
205
  return slice;
207
206
  }
208
207
 
@@ -212,7 +211,6 @@ grpc_slice grpc_slice_intern(grpc_slice slice) {
212
211
  static_metadata_hash[(hash + i) % GPR_ARRAY_SIZE(static_metadata_hash)];
213
212
  if (ent.hash == hash && ent.idx < GRPC_STATIC_MDSTR_COUNT &&
214
213
  grpc_slice_eq(grpc_static_slice_table[ent.idx], slice)) {
215
- GPR_TIMER_END("grpc_slice_intern", 0);
216
214
  return grpc_static_slice_table[ent.idx];
217
215
  }
218
216
  }
@@ -235,7 +233,6 @@ grpc_slice grpc_slice_intern(grpc_slice slice) {
235
233
  /* and treat this as if we were never here... sshhh */
236
234
  } else {
237
235
  gpr_mu_unlock(&shard->mu);
238
- GPR_TIMER_END("grpc_slice_intern", 0);
239
236
  return materialize(s);
240
237
  }
241
238
  }
@@ -243,8 +240,8 @@ grpc_slice grpc_slice_intern(grpc_slice slice) {
243
240
 
244
241
  /* not found: create a new string */
245
242
  /* string data goes after the internal_string header */
246
- s = (interned_slice_refcount*)gpr_malloc(sizeof(*s) +
247
- GRPC_SLICE_LENGTH(slice));
243
+ s = static_cast<interned_slice_refcount*>(
244
+ gpr_malloc(sizeof(*s) + GRPC_SLICE_LENGTH(slice)));
248
245
  gpr_atm_rel_store(&s->refcnt, 1);
249
246
  s->length = GRPC_SLICE_LENGTH(slice);
250
247
  s->hash = hash;
@@ -264,7 +261,6 @@ grpc_slice grpc_slice_intern(grpc_slice slice) {
264
261
 
265
262
  gpr_mu_unlock(&shard->mu);
266
263
 
267
- GPR_TIMER_END("grpc_slice_intern", 0);
268
264
  return materialize(s);
269
265
  }
270
266
 
@@ -275,15 +271,15 @@ void grpc_test_only_set_slice_hash_seed(uint32_t seed) {
275
271
 
276
272
  void grpc_slice_intern_init(void) {
277
273
  if (!g_forced_hash_seed) {
278
- g_hash_seed = (uint32_t)gpr_now(GPR_CLOCK_REALTIME).tv_nsec;
274
+ g_hash_seed = static_cast<uint32_t>(gpr_now(GPR_CLOCK_REALTIME).tv_nsec);
279
275
  }
280
276
  for (size_t i = 0; i < SHARD_COUNT; i++) {
281
277
  slice_shard* shard = &g_shards[i];
282
278
  gpr_mu_init(&shard->mu);
283
279
  shard->count = 0;
284
280
  shard->capacity = INITIAL_SHARD_CAPACITY;
285
- shard->strs = (interned_slice_refcount**)gpr_zalloc(sizeof(*shard->strs) *
286
- shard->capacity);
281
+ shard->strs = static_cast<interned_slice_refcount**>(
282
+ gpr_zalloc(sizeof(*shard->strs) * shard->capacity));
287
283
  }
288
284
  for (size_t i = 0; i < GPR_ARRAY_SIZE(static_metadata_hash); i++) {
289
285
  static_metadata_hash[i].hash = 0;
@@ -298,9 +294,9 @@ void grpc_slice_intern_init(void) {
298
294
  GPR_ARRAY_SIZE(static_metadata_hash);
299
295
  if (static_metadata_hash[slot].idx == GRPC_STATIC_MDSTR_COUNT) {
300
296
  static_metadata_hash[slot].hash = static_metadata_hash_values[i];
301
- static_metadata_hash[slot].idx = (uint32_t)i;
297
+ static_metadata_hash[slot].idx = static_cast<uint32_t>(i);
302
298
  if (j > max_static_metadata_hash_probe) {
303
- max_static_metadata_hash_probe = (uint32_t)j;
299
+ max_static_metadata_hash_probe = static_cast<uint32_t>(j);
304
300
  }
305
301
  break;
306
302
  }
@@ -26,8 +26,8 @@
26
26
  #include "src/core/lib/slice/slice_internal.h"
27
27
 
28
28
  char* grpc_dump_slice(grpc_slice s, uint32_t flags) {
29
- return gpr_dump((const char*)GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s),
30
- flags);
29
+ return gpr_dump(reinterpret_cast<const char*> GRPC_SLICE_START_PTR(s),
30
+ GRPC_SLICE_LENGTH(s), flags);
31
31
  }
32
32
 
33
33
  /** Finds the initial (\a begin) and final (\a end) offsets of the next
@@ -56,25 +56,61 @@ static int slice_find_separator_offset(const grpc_slice str, const char* sep,
56
56
  return 0;
57
57
  }
58
58
 
59
- void grpc_slice_split(grpc_slice str, const char* sep, grpc_slice_buffer* dst) {
59
+ static void skip_leading_trailing_spaces(const uint8_t* str_buffer,
60
+ size_t* begin, size_t* end) {
61
+ while (*begin < *end && str_buffer[*begin] == ' ') {
62
+ (*begin)++;
63
+ }
64
+ while (*begin < *end && str_buffer[*end - 1] == ' ') {
65
+ (*end)--;
66
+ }
67
+ }
68
+
69
+ static void grpc_slice_split_inner(grpc_slice str, const char* sep,
70
+ grpc_slice_buffer* dst, bool no_space) {
60
71
  const size_t sep_len = strlen(sep);
61
72
  size_t begin, end;
73
+ const uint8_t* str_buffer = GRPC_SLICE_START_PTR(str);
74
+ size_t sep_pos;
62
75
 
63
76
  GPR_ASSERT(sep_len > 0);
64
77
 
65
78
  if (slice_find_separator_offset(str, sep, 0, &begin, &end) != 0) {
66
79
  do {
80
+ sep_pos = end;
81
+ if (no_space) {
82
+ skip_leading_trailing_spaces(str_buffer, &begin, &end);
83
+ }
67
84
  grpc_slice_buffer_add_indexed(dst, grpc_slice_sub(str, begin, end));
68
- } while (slice_find_separator_offset(str, sep, end + sep_len, &begin,
85
+ } while (slice_find_separator_offset(str, sep, sep_pos + sep_len, &begin,
69
86
  &end) != 0);
70
- grpc_slice_buffer_add_indexed(
71
- dst, grpc_slice_sub(str, end + sep_len, GRPC_SLICE_LENGTH(str)));
87
+ begin = sep_pos + sep_len;
88
+ end = GRPC_SLICE_LENGTH(str);
89
+ if (no_space) {
90
+ skip_leading_trailing_spaces(str_buffer, &begin, &end);
91
+ }
92
+ grpc_slice_buffer_add_indexed(dst, grpc_slice_sub(str, begin, end));
72
93
  } else { /* no sep found, add whole input */
73
- grpc_slice_buffer_add_indexed(dst, grpc_slice_ref_internal(str));
94
+ begin = 0;
95
+ end = GRPC_SLICE_LENGTH(str);
96
+ if (no_space) {
97
+ skip_leading_trailing_spaces(str_buffer, &begin, &end);
98
+ }
99
+ grpc_slice_buffer_add_indexed(dst, grpc_slice_sub(str, begin, end));
74
100
  }
75
101
  }
76
102
 
103
+ void grpc_slice_split(grpc_slice str, const char* sep, grpc_slice_buffer* dst) {
104
+ grpc_slice_split_inner(str, sep, dst, false);
105
+ }
106
+
107
+ void grpc_slice_split_without_space(grpc_slice str, const char* sep,
108
+ grpc_slice_buffer* dst) {
109
+ grpc_slice_split_inner(str, sep, dst, true);
110
+ }
111
+
77
112
  bool grpc_parse_slice_to_uint32(grpc_slice str, uint32_t* result) {
78
- return gpr_parse_bytes_to_uint32((const char*)GRPC_SLICE_START_PTR(str),
79
- GRPC_SLICE_LENGTH(str), result) != 0;
113
+ return gpr_parse_bytes_to_uint32(
114
+ reinterpret_cast<const char*> GRPC_SLICE_START_PTR(str),
115
+ GRPC_SLICE_LENGTH(str), result) != 0;
80
116
  }
@@ -35,6 +35,12 @@ char* grpc_dump_slice(grpc_slice slice, uint32_t flags);
35
35
  * should be a properly initialized instance. */
36
36
  void grpc_slice_split(grpc_slice str, const char* sep, grpc_slice_buffer* dst);
37
37
 
38
+ /** Split \a str by the separator \a sep and remove the leading and trailing
39
+ * spaces of each resulting token. Results are stored in \a dst, which should be
40
+ * a properly initialized instance. */
41
+ void grpc_slice_split_without_space(grpc_slice str, const char* sep,
42
+ grpc_slice_buffer* dst);
43
+
38
44
  bool grpc_parse_slice_to_uint32(grpc_slice str, uint32_t* result);
39
45
 
40
46
  #endif /* GRPC_CORE_LIB_SLICE_SLICE_STRING_HELPERS_H */
@@ -33,7 +33,7 @@ grpc_byte_buffer* grpc_raw_compressed_byte_buffer_create(
33
33
  grpc_compression_algorithm compression) {
34
34
  size_t i;
35
35
  grpc_byte_buffer* bb =
36
- (grpc_byte_buffer*)gpr_malloc(sizeof(grpc_byte_buffer));
36
+ static_cast<grpc_byte_buffer*>(gpr_malloc(sizeof(grpc_byte_buffer)));
37
37
  bb->type = GRPC_BB_RAW;
38
38
  bb->data.raw.compression = compression;
39
39
  grpc_slice_buffer_init(&bb->data.raw.slice_buffer);
@@ -47,7 +47,7 @@ grpc_byte_buffer* grpc_raw_compressed_byte_buffer_create(
47
47
  grpc_byte_buffer* grpc_raw_byte_buffer_from_reader(
48
48
  grpc_byte_buffer_reader* reader) {
49
49
  grpc_byte_buffer* bb =
50
- (grpc_byte_buffer*)gpr_malloc(sizeof(grpc_byte_buffer));
50
+ static_cast<grpc_byte_buffer*>(gpr_malloc(sizeof(grpc_byte_buffer)));
51
51
  grpc_slice slice;
52
52
  bb->type = GRPC_BB_RAW;
53
53
  bb->data.raw.compression = GRPC_COMPRESS_NONE;
@@ -49,9 +49,12 @@ int grpc_byte_buffer_reader_init(grpc_byte_buffer_reader* reader,
49
49
  case GRPC_BB_RAW:
50
50
  grpc_slice_buffer_init(&decompressed_slices_buffer);
51
51
  if (is_compressed(reader->buffer_in)) {
52
- if (grpc_msg_decompress(reader->buffer_in->data.raw.compression,
53
- &reader->buffer_in->data.raw.slice_buffer,
54
- &decompressed_slices_buffer) == 0) {
52
+ if (grpc_msg_decompress(
53
+
54
+ grpc_compression_algorithm_to_message_compression_algorithm(
55
+ reader->buffer_in->data.raw.compression),
56
+ &reader->buffer_in->data.raw.slice_buffer,
57
+ &decompressed_slices_buffer) == 0) {
55
58
  gpr_log(GPR_ERROR,
56
59
  "Unexpected error decompressing data for algorithm with enum "
57
60
  "value '%d'.",
@@ -28,13 +28,13 @@
28
28
  #include <grpc/support/alloc.h>
29
29
  #include <grpc/support/log.h>
30
30
  #include <grpc/support/string_util.h>
31
- #include <grpc/support/useful.h>
32
31
 
33
32
  #include "src/core/lib/channel/channel_stack.h"
34
33
  #include "src/core/lib/compression/algorithm_metadata.h"
35
34
  #include "src/core/lib/debug/stats.h"
36
35
  #include "src/core/lib/gpr/arena.h"
37
36
  #include "src/core/lib/gpr/string.h"
37
+ #include "src/core/lib/gpr/useful.h"
38
38
  #include "src/core/lib/iomgr/timer.h"
39
39
  #include "src/core/lib/profiling/timers.h"
40
40
  #include "src/core/lib/slice/slice_internal.h"
@@ -97,7 +97,7 @@ static received_status unpack_received_status(gpr_atm atm) {
97
97
  if ((atm & 1) == 0) {
98
98
  return {false, GRPC_ERROR_NONE};
99
99
  } else {
100
- return {true, (grpc_error*)(atm & ~(gpr_atm)1)};
100
+ return {true, (grpc_error*)(atm & ~static_cast<gpr_atm>(1))};
101
101
  }
102
102
  }
103
103
 
@@ -201,7 +201,7 @@ struct grpc_call {
201
201
  grpc_call_final_info final_info;
202
202
 
203
203
  /* Compression algorithm for *incoming* data */
204
- grpc_compression_algorithm incoming_compression_algorithm;
204
+ grpc_message_compression_algorithm incoming_message_compression_algorithm;
205
205
  /* Stream compression algorithm for *incoming* data */
206
206
  grpc_stream_compression_algorithm incoming_stream_compression_algorithm;
207
207
  /* Supported encodings (compression algorithms), a bitset */
@@ -304,7 +304,7 @@ void* grpc_call_arena_alloc(grpc_call* call, size_t size) {
304
304
  static parent_call* get_or_create_parent_call(grpc_call* call) {
305
305
  parent_call* p = (parent_call*)gpr_atm_acq_load(&call->parent_call_atm);
306
306
  if (p == nullptr) {
307
- p = (parent_call*)gpr_arena_alloc(call->arena, sizeof(*p));
307
+ p = static_cast<parent_call*>(gpr_arena_alloc(call->arena, sizeof(*p)));
308
308
  gpr_mu_init(&p->child_list_mu);
309
309
  if (!gpr_atm_rel_cas(&call->parent_call_atm, (gpr_atm) nullptr,
310
310
  (gpr_atm)p)) {
@@ -321,17 +321,17 @@ static parent_call* get_parent_call(grpc_call* call) {
321
321
 
322
322
  grpc_error* grpc_call_create(const grpc_call_create_args* args,
323
323
  grpc_call** out_call) {
324
+ GPR_TIMER_SCOPE("grpc_call_create", 0);
324
325
  size_t i, j;
325
326
  grpc_error* error = GRPC_ERROR_NONE;
326
327
  grpc_channel_stack* channel_stack =
327
328
  grpc_channel_get_channel_stack(args->channel);
328
329
  grpc_call* call;
329
- GPR_TIMER_BEGIN("grpc_call_create", 0);
330
330
  size_t initial_size = grpc_channel_get_call_size_estimate(args->channel);
331
331
  GRPC_STATS_INC_CALL_INITIAL_SIZE(initial_size);
332
332
  gpr_arena* arena = gpr_arena_create(initial_size);
333
- call = (grpc_call*)gpr_arena_alloc(
334
- arena, sizeof(grpc_call) + channel_stack->call_stack_size);
333
+ call = static_cast<grpc_call*>(gpr_arena_alloc(
334
+ arena, sizeof(grpc_call) + channel_stack->call_stack_size));
335
335
  gpr_ref_init(&call->ext_ref, 1);
336
336
  call->arena = arena;
337
337
  grpc_call_combiner_init(&call->call_combiner);
@@ -340,7 +340,7 @@ grpc_error* grpc_call_create(const grpc_call_create_args* args,
340
340
  call->cq = args->cq;
341
341
  call->start_time = gpr_now(GPR_CLOCK_MONOTONIC);
342
342
  /* Always support no compression */
343
- GPR_BITSET(&call->encodings_accepted_by_peer, GRPC_COMPRESS_NONE);
343
+ GPR_BITSET(&call->encodings_accepted_by_peer, GRPC_MESSAGE_COMPRESS_NONE);
344
344
  call->is_client = args->server_transport_data == nullptr;
345
345
  if (call->is_client) {
346
346
  GRPC_STATS_INC_CLIENT_CALLS_CREATED();
@@ -360,7 +360,8 @@ grpc_error* grpc_call_create(const grpc_call_create_args* args,
360
360
  GRPC_MDVALUE(args->add_initial_metadata[i]));
361
361
  }
362
362
  }
363
- call->send_extra_metadata_count = (int)args->add_initial_metadata_count;
363
+ call->send_extra_metadata_count =
364
+ static_cast<int>(args->add_initial_metadata_count);
364
365
  } else {
365
366
  GPR_ASSERT(args->add_initial_metadata_count == 0);
366
367
  call->send_extra_metadata_count = 0;
@@ -376,7 +377,7 @@ grpc_error* grpc_call_create(const grpc_call_create_args* args,
376
377
 
377
378
  if (args->parent != nullptr) {
378
379
  child_call* cc = call->child =
379
- (child_call*)gpr_arena_alloc(arena, sizeof(child_call));
380
+ static_cast<child_call*>(gpr_arena_alloc(arena, sizeof(child_call)));
380
381
  call->child->parent = args->parent;
381
382
 
382
383
  GRPC_CALL_INTERNAL_REF(args->parent, "child");
@@ -449,9 +450,9 @@ grpc_error* grpc_call_create(const grpc_call_create_args* args,
449
450
  cancel_with_error(call, STATUS_FROM_API_OVERRIDE, GRPC_ERROR_CANCELLED);
450
451
  }
451
452
  if (args->cq != nullptr) {
452
- GPR_ASSERT(
453
- args->pollset_set_alternative == nullptr &&
454
- "Only one of 'cq' and 'pollset_set_alternative' should be non-NULL.");
453
+ GPR_ASSERT(args->pollset_set_alternative == nullptr &&
454
+ "Only one of 'cq' and 'pollset_set_alternative' should be "
455
+ "non-nullptr.");
455
456
  GRPC_CQ_INTERNAL_REF(args->cq, "bind");
456
457
  call->pollent =
457
458
  grpc_polling_entity_create_from_pollset(grpc_cq_pollset(args->cq));
@@ -467,7 +468,6 @@ grpc_error* grpc_call_create(const grpc_call_create_args* args,
467
468
 
468
469
  grpc_slice_unref_internal(path);
469
470
 
470
- GPR_TIMER_END("grpc_call_create", 0);
471
471
  return error;
472
472
  }
473
473
 
@@ -501,7 +501,7 @@ void grpc_call_internal_unref(grpc_call* c REF_ARG) {
501
501
  }
502
502
 
503
503
  static void release_call(void* call, grpc_error* error) {
504
- grpc_call* c = (grpc_call*)call;
504
+ grpc_call* c = static_cast<grpc_call*>(call);
505
505
  grpc_channel* channel = c->channel;
506
506
  grpc_call_combiner_destroy(&c->call_combiner);
507
507
  gpr_free((char*)c->peer_string);
@@ -511,10 +511,10 @@ static void release_call(void* call, grpc_error* error) {
511
511
 
512
512
  static void set_status_value_directly(grpc_status_code status, void* dest);
513
513
  static void destroy_call(void* call, grpc_error* error) {
514
+ GPR_TIMER_SCOPE("destroy_call", 0);
514
515
  size_t i;
515
516
  int ii;
516
- grpc_call* c = (grpc_call*)call;
517
- GPR_TIMER_BEGIN("destroy_call", 0);
517
+ grpc_call* c = static_cast<grpc_call*>(call);
518
518
  for (i = 0; i < 2; i++) {
519
519
  grpc_metadata_batch_destroy(
520
520
  &c->metadata_batch[1 /* is_receiving */][i /* is_initial */]);
@@ -551,7 +551,6 @@ static void destroy_call(void* call, grpc_error* error) {
551
551
  grpc_call_stack_destroy(CALL_STACK_FROM_CALL(c), &c->final_info,
552
552
  GRPC_CLOSURE_INIT(&c->release_call, release_call, c,
553
553
  grpc_schedule_on_exec_ctx));
554
- GPR_TIMER_END("destroy_call", 0);
555
554
  }
556
555
 
557
556
  void grpc_call_ref(grpc_call* c) { gpr_ref(&c->ext_ref); }
@@ -559,10 +558,11 @@ void grpc_call_ref(grpc_call* c) { gpr_ref(&c->ext_ref); }
559
558
  void grpc_call_unref(grpc_call* c) {
560
559
  if (!gpr_unref(&c->ext_ref)) return;
561
560
 
561
+ GPR_TIMER_SCOPE("grpc_call_unref", 0);
562
+
562
563
  child_call* cc = c->child;
563
564
  grpc_core::ExecCtx exec_ctx;
564
565
 
565
- GPR_TIMER_BEGIN("grpc_call_unref", 0);
566
566
  GRPC_API_TRACE("grpc_call_unref(c=%p)", 1, (c));
567
567
 
568
568
  if (cc) {
@@ -594,8 +594,6 @@ void grpc_call_unref(grpc_call* c) {
594
594
  grpc_call_combiner_set_notify_on_cancel(&c->call_combiner, nullptr);
595
595
  }
596
596
  GRPC_CALL_INTERNAL_UNREF(c, "destroy");
597
-
598
- GPR_TIMER_END("grpc_call_unref", 0);
599
597
  }
600
598
 
601
599
  grpc_call_error grpc_call_cancel(grpc_call* call, void* reserved) {
@@ -610,13 +608,13 @@ grpc_call_error grpc_call_cancel(grpc_call* call, void* reserved) {
610
608
  // This is called via the call combiner to start sending a batch down
611
609
  // the filter stack.
612
610
  static void execute_batch_in_call_combiner(void* arg, grpc_error* ignored) {
613
- grpc_transport_stream_op_batch* batch = (grpc_transport_stream_op_batch*)arg;
614
- grpc_call* call = (grpc_call*)batch->handler_private.extra_arg;
615
- GPR_TIMER_BEGIN("execute_batch", 0);
611
+ GPR_TIMER_SCOPE("execute_batch", 0);
612
+ grpc_transport_stream_op_batch* batch =
613
+ static_cast<grpc_transport_stream_op_batch*>(arg);
614
+ grpc_call* call = static_cast<grpc_call*>(batch->handler_private.extra_arg);
616
615
  grpc_call_element* elem = CALL_ELEM_FROM_CALL(call, 0);
617
616
  GRPC_CALL_LOG_OP(GPR_INFO, elem, batch);
618
617
  elem->filter->start_transport_stream_op_batch(elem, batch);
619
- GPR_TIMER_END("execute_batch", 0);
620
618
  }
621
619
 
622
620
  // start_batch_closure points to a caller-allocated closure to be used
@@ -671,7 +669,7 @@ typedef struct {
671
669
  // The on_complete callback used when sending a cancel_stream batch down
672
670
  // the filter stack. Yields the call combiner when the batch is done.
673
671
  static void done_termination(void* arg, grpc_error* error) {
674
- cancel_state* state = (cancel_state*)arg;
672
+ cancel_state* state = static_cast<cancel_state*>(arg);
675
673
  GRPC_CALL_COMBINER_STOP(&state->call->call_combiner,
676
674
  "on_complete for cancel_stream op");
677
675
  GRPC_CALL_INTERNAL_UNREF(state->call, "termination");
@@ -687,7 +685,7 @@ static void cancel_with_error(grpc_call* c, status_source source,
687
685
  // down the filter stack in a timely manner.
688
686
  grpc_call_combiner_cancel(&c->call_combiner, GRPC_ERROR_REF(error));
689
687
  set_status_from_error(c, source, GRPC_ERROR_REF(error));
690
- cancel_state* state = (cancel_state*)gpr_malloc(sizeof(*state));
688
+ cancel_state* state = static_cast<cancel_state*>(gpr_malloc(sizeof(*state)));
691
689
  state->call = c;
692
690
  GRPC_CLOSURE_INIT(&state->finish_batch, done_termination, state,
693
691
  grpc_schedule_on_exec_ctx);
@@ -801,10 +799,10 @@ static void set_status_from_error(grpc_call* call, status_source source,
801
799
  * COMPRESSION
802
800
  */
803
801
 
804
- static void set_incoming_compression_algorithm(
805
- grpc_call* call, grpc_compression_algorithm algo) {
806
- GPR_ASSERT(algo < GRPC_COMPRESS_ALGORITHMS_COUNT);
807
- call->incoming_compression_algorithm = algo;
802
+ static void set_incoming_message_compression_algorithm(
803
+ grpc_call* call, grpc_message_compression_algorithm algo) {
804
+ GPR_ASSERT(algo < GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT);
805
+ call->incoming_message_compression_algorithm = algo;
808
806
  }
809
807
 
810
808
  static void set_incoming_stream_compression_algorithm(
@@ -815,8 +813,10 @@ static void set_incoming_stream_compression_algorithm(
815
813
 
816
814
  grpc_compression_algorithm grpc_call_test_only_get_compression_algorithm(
817
815
  grpc_call* call) {
818
- grpc_compression_algorithm algorithm;
819
- algorithm = call->incoming_compression_algorithm;
816
+ grpc_compression_algorithm algorithm = GRPC_COMPRESS_NONE;
817
+ grpc_compression_algorithm_from_message_stream_compression_algorithm(
818
+ &algorithm, call->incoming_message_compression_algorithm,
819
+ call->incoming_stream_compression_algorithm);
820
820
  return algorithm;
821
821
  }
822
822
 
@@ -826,13 +826,6 @@ static grpc_compression_algorithm compression_algorithm_for_level_locked(
826
826
  call->encodings_accepted_by_peer);
827
827
  }
828
828
 
829
- static grpc_stream_compression_algorithm
830
- stream_compression_algorithm_for_level_locked(
831
- grpc_call* call, grpc_stream_compression_level level) {
832
- return grpc_stream_compression_algorithm_for_level(
833
- level, call->stream_encodings_accepted_by_peer);
834
- }
835
-
836
829
  uint32_t grpc_call_test_only_get_message_flags(grpc_call* call) {
837
830
  uint32_t flags;
838
831
  flags = call->test_only_last_message_flags;
@@ -841,9 +834,11 @@ uint32_t grpc_call_test_only_get_message_flags(grpc_call* call) {
841
834
 
842
835
  static void destroy_encodings_accepted_by_peer(void* p) { return; }
843
836
 
844
- static void set_encodings_accepted_by_peer(grpc_call* call, grpc_mdelem mdel) {
837
+ static void set_encodings_accepted_by_peer(grpc_call* call, grpc_mdelem mdel,
838
+ uint32_t* encodings_accepted_by_peer,
839
+ bool stream_encoding) {
845
840
  size_t i;
846
- grpc_compression_algorithm algorithm;
841
+ uint32_t algorithm;
847
842
  grpc_slice_buffer accept_encoding_parts;
848
843
  grpc_slice accept_encoding_slice;
849
844
  void* accepted_user_data;
@@ -851,69 +846,33 @@ static void set_encodings_accepted_by_peer(grpc_call* call, grpc_mdelem mdel) {
851
846
  accepted_user_data =
852
847
  grpc_mdelem_get_user_data(mdel, destroy_encodings_accepted_by_peer);
853
848
  if (accepted_user_data != nullptr) {
854
- call->encodings_accepted_by_peer =
855
- (uint32_t)(((uintptr_t)accepted_user_data) - 1);
849
+ *encodings_accepted_by_peer =
850
+ static_cast<uint32_t>(((uintptr_t)accepted_user_data) - 1);
856
851
  return;
857
852
  }
858
853
 
854
+ *encodings_accepted_by_peer = 0;
855
+
859
856
  accept_encoding_slice = GRPC_MDVALUE(mdel);
860
857
  grpc_slice_buffer_init(&accept_encoding_parts);
861
- grpc_slice_split(accept_encoding_slice, ",", &accept_encoding_parts);
858
+ grpc_slice_split_without_space(accept_encoding_slice, ",",
859
+ &accept_encoding_parts);
862
860
 
863
- /* No need to zero call->encodings_accepted_by_peer: grpc_call_create already
864
- * zeroes the whole grpc_call */
865
- /* Always support no compression */
866
- GPR_BITSET(&call->encodings_accepted_by_peer, GRPC_COMPRESS_NONE);
861
+ GPR_BITSET(encodings_accepted_by_peer, GRPC_COMPRESS_NONE);
867
862
  for (i = 0; i < accept_encoding_parts.count; i++) {
863
+ int r;
868
864
  grpc_slice accept_encoding_entry_slice = accept_encoding_parts.slices[i];
869
- if (grpc_compression_algorithm_parse(accept_encoding_entry_slice,
870
- &algorithm)) {
871
- GPR_BITSET(&call->encodings_accepted_by_peer, algorithm);
865
+ if (!stream_encoding) {
866
+ r = grpc_message_compression_algorithm_parse(
867
+ accept_encoding_entry_slice,
868
+ reinterpret_cast<grpc_message_compression_algorithm*>(&algorithm));
872
869
  } else {
873
- char* accept_encoding_entry_str =
874
- grpc_slice_to_c_string(accept_encoding_entry_slice);
875
- gpr_log(GPR_ERROR,
876
- "Invalid entry in accept encoding metadata: '%s'. Ignoring.",
877
- accept_encoding_entry_str);
878
- gpr_free(accept_encoding_entry_str);
870
+ r = grpc_stream_compression_algorithm_parse(
871
+ accept_encoding_entry_slice,
872
+ reinterpret_cast<grpc_stream_compression_algorithm*>(&algorithm));
879
873
  }
880
- }
881
-
882
- grpc_slice_buffer_destroy_internal(&accept_encoding_parts);
883
-
884
- grpc_mdelem_set_user_data(
885
- mdel, destroy_encodings_accepted_by_peer,
886
- (void*)(((uintptr_t)call->encodings_accepted_by_peer) + 1));
887
- }
888
-
889
- static void set_stream_encodings_accepted_by_peer(grpc_call* call,
890
- grpc_mdelem mdel) {
891
- size_t i;
892
- grpc_stream_compression_algorithm algorithm;
893
- grpc_slice_buffer accept_encoding_parts;
894
- grpc_slice accept_encoding_slice;
895
- void* accepted_user_data;
896
-
897
- accepted_user_data =
898
- grpc_mdelem_get_user_data(mdel, destroy_encodings_accepted_by_peer);
899
- if (accepted_user_data != nullptr) {
900
- call->stream_encodings_accepted_by_peer =
901
- (uint32_t)(((uintptr_t)accepted_user_data) - 1);
902
- return;
903
- }
904
-
905
- accept_encoding_slice = GRPC_MDVALUE(mdel);
906
- grpc_slice_buffer_init(&accept_encoding_parts);
907
- grpc_slice_split(accept_encoding_slice, ",", &accept_encoding_parts);
908
-
909
- /* Always support no compression */
910
- GPR_BITSET(&call->stream_encodings_accepted_by_peer,
911
- GRPC_STREAM_COMPRESS_NONE);
912
- for (i = 0; i < accept_encoding_parts.count; i++) {
913
- grpc_slice accept_encoding_entry_slice = accept_encoding_parts.slices[i];
914
- if (grpc_stream_compression_algorithm_parse(accept_encoding_entry_slice,
915
- &algorithm)) {
916
- GPR_BITSET(&call->stream_encodings_accepted_by_peer, algorithm);
874
+ if (r) {
875
+ GPR_BITSET(encodings_accepted_by_peer, algorithm);
917
876
  } else {
918
877
  char* accept_encoding_entry_str =
919
878
  grpc_slice_to_c_string(accept_encoding_entry_slice);
@@ -928,7 +887,7 @@ static void set_stream_encodings_accepted_by_peer(grpc_call* call,
928
887
 
929
888
  grpc_mdelem_set_user_data(
930
889
  mdel, destroy_encodings_accepted_by_peer,
931
- (void*)(((uintptr_t)call->stream_encodings_accepted_by_peer) + 1));
890
+ (void*)((static_cast<uintptr_t>(*encodings_accepted_by_peer)) + 1));
932
891
  }
933
892
 
934
893
  uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call* call) {
@@ -937,13 +896,6 @@ uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call* call) {
937
896
  return encodings_accepted_by_peer;
938
897
  }
939
898
 
940
- uint32_t grpc_call_test_only_get_stream_encodings_accepted_by_peer(
941
- grpc_call* call) {
942
- uint32_t stream_encodings_accepted_by_peer;
943
- stream_encodings_accepted_by_peer = call->stream_encodings_accepted_by_peer;
944
- return stream_encodings_accepted_by_peer;
945
- }
946
-
947
899
  grpc_stream_compression_algorithm
948
900
  grpc_call_test_only_get_incoming_stream_encodings(grpc_call* call) {
949
901
  return call->incoming_stream_compression_algorithm;
@@ -986,7 +938,7 @@ static int prepare_application_metadata(grpc_call* call, int count,
986
938
  grpc_validate_header_nonbin_value_is_legal(md->value))) {
987
939
  break;
988
940
  }
989
- l->md = grpc_mdelem_from_grpc_metadata((grpc_metadata*)md);
941
+ l->md = grpc_mdelem_from_grpc_metadata(const_cast<grpc_metadata*>(md));
990
942
  }
991
943
  if (i != total_count) {
992
944
  for (int j = 0; j < i; j++) {
@@ -1036,28 +988,30 @@ static uint32_t decode_status(grpc_mdelem md) {
1036
988
  if (grpc_mdelem_eq(md, GRPC_MDELEM_GRPC_STATUS_2)) return 2;
1037
989
  user_data = grpc_mdelem_get_user_data(md, destroy_status);
1038
990
  if (user_data != nullptr) {
1039
- status = ((uint32_t)(intptr_t)user_data) - STATUS_OFFSET;
991
+ status = (static_cast<uint32_t>((intptr_t)user_data)) - STATUS_OFFSET;
1040
992
  } else {
1041
993
  if (!grpc_parse_slice_to_uint32(GRPC_MDVALUE(md), &status)) {
1042
994
  status = GRPC_STATUS_UNKNOWN; /* could not parse status code */
1043
995
  }
1044
- grpc_mdelem_set_user_data(md, destroy_status,
1045
- (void*)(intptr_t)(status + STATUS_OFFSET));
996
+ grpc_mdelem_set_user_data(
997
+ md, destroy_status,
998
+ (void*)static_cast<intptr_t>(status + STATUS_OFFSET));
1046
999
  }
1047
1000
  return status;
1048
1001
  }
1049
1002
 
1050
- static grpc_compression_algorithm decode_compression(grpc_mdelem md) {
1051
- grpc_compression_algorithm algorithm =
1052
- grpc_compression_algorithm_from_slice(GRPC_MDVALUE(md));
1053
- if (algorithm == GRPC_COMPRESS_ALGORITHMS_COUNT) {
1003
+ static grpc_message_compression_algorithm decode_message_compression(
1004
+ grpc_mdelem md) {
1005
+ grpc_message_compression_algorithm algorithm =
1006
+ grpc_message_compression_algorithm_from_slice(GRPC_MDVALUE(md));
1007
+ if (algorithm == GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT) {
1054
1008
  char* md_c_str = grpc_slice_to_c_string(GRPC_MDVALUE(md));
1055
1009
  gpr_log(GPR_ERROR,
1056
- "Invalid incoming compression algorithm: '%s'. Interpreting "
1057
- "incoming data as uncompressed.",
1010
+ "Invalid incoming message compression algorithm: '%s'. "
1011
+ "Interpreting incoming data as uncompressed.",
1058
1012
  md_c_str);
1059
1013
  gpr_free(md_c_str);
1060
- return GRPC_COMPRESS_NONE;
1014
+ return GRPC_MESSAGE_COMPRESS_NONE;
1061
1015
  }
1062
1016
  return algorithm;
1063
1017
  }
@@ -1082,15 +1036,15 @@ static void publish_app_metadata(grpc_call* call, grpc_metadata_batch* b,
1082
1036
  int is_trailing) {
1083
1037
  if (b->list.count == 0) return;
1084
1038
  if (is_trailing && call->buffered_metadata[1] == nullptr) return;
1085
- GPR_TIMER_BEGIN("publish_app_metadata", 0);
1039
+ GPR_TIMER_SCOPE("publish_app_metadata", 0);
1086
1040
  grpc_metadata_array* dest;
1087
1041
  grpc_metadata* mdusr;
1088
1042
  dest = call->buffered_metadata[is_trailing];
1089
1043
  if (dest->count + b->list.count > dest->capacity) {
1090
1044
  dest->capacity =
1091
1045
  GPR_MAX(dest->capacity + b->list.count, dest->capacity * 3 / 2);
1092
- dest->metadata = (grpc_metadata*)gpr_realloc(
1093
- dest->metadata, sizeof(grpc_metadata) * dest->capacity);
1046
+ dest->metadata = static_cast<grpc_metadata*>(
1047
+ gpr_realloc(dest->metadata, sizeof(grpc_metadata) * dest->capacity));
1094
1048
  }
1095
1049
  for (grpc_linked_mdelem* l = b->list.head; l != nullptr; l = l->next) {
1096
1050
  mdusr = &dest->metadata[dest->count++];
@@ -1098,47 +1052,44 @@ static void publish_app_metadata(grpc_call* call, grpc_metadata_batch* b,
1098
1052
  mdusr->key = GRPC_MDKEY(l->md);
1099
1053
  mdusr->value = GRPC_MDVALUE(l->md);
1100
1054
  }
1101
- GPR_TIMER_END("publish_app_metadata", 0);
1102
1055
  }
1103
1056
 
1104
1057
  static void recv_initial_filter(grpc_call* call, grpc_metadata_batch* b) {
1105
1058
  if (b->idx.named.content_encoding != nullptr) {
1106
- if (b->idx.named.grpc_encoding != nullptr) {
1107
- gpr_log(GPR_ERROR,
1108
- "Received both content-encoding and grpc-encoding header. "
1109
- "Ignoring grpc-encoding.");
1110
- grpc_metadata_batch_remove(b, b->idx.named.grpc_encoding);
1111
- }
1112
- GPR_TIMER_BEGIN("incoming_stream_compression_algorithm", 0);
1059
+ GPR_TIMER_SCOPE("incoming_stream_compression_algorithm", 0);
1113
1060
  set_incoming_stream_compression_algorithm(
1114
1061
  call, decode_stream_compression(b->idx.named.content_encoding->md));
1115
- GPR_TIMER_END("incoming_stream_compression_algorithm", 0);
1116
1062
  grpc_metadata_batch_remove(b, b->idx.named.content_encoding);
1117
- } else if (b->idx.named.grpc_encoding != nullptr) {
1118
- GPR_TIMER_BEGIN("incoming_compression_algorithm", 0);
1119
- set_incoming_compression_algorithm(
1120
- call, decode_compression(b->idx.named.grpc_encoding->md));
1121
- GPR_TIMER_END("incoming_compression_algorithm", 0);
1063
+ }
1064
+ if (b->idx.named.grpc_encoding != nullptr) {
1065
+ GPR_TIMER_SCOPE("incoming_message_compression_algorithm", 0);
1066
+ set_incoming_message_compression_algorithm(
1067
+ call, decode_message_compression(b->idx.named.grpc_encoding->md));
1122
1068
  grpc_metadata_batch_remove(b, b->idx.named.grpc_encoding);
1123
1069
  }
1070
+ uint32_t message_encodings_accepted_by_peer = 1u;
1071
+ uint32_t stream_encodings_accepted_by_peer = 1u;
1124
1072
  if (b->idx.named.grpc_accept_encoding != nullptr) {
1125
- GPR_TIMER_BEGIN("encodings_accepted_by_peer", 0);
1126
- set_encodings_accepted_by_peer(call, b->idx.named.grpc_accept_encoding->md);
1073
+ GPR_TIMER_SCOPE("encodings_accepted_by_peer", 0);
1074
+ set_encodings_accepted_by_peer(call, b->idx.named.grpc_accept_encoding->md,
1075
+ &message_encodings_accepted_by_peer, false);
1127
1076
  grpc_metadata_batch_remove(b, b->idx.named.grpc_accept_encoding);
1128
- GPR_TIMER_END("encodings_accepted_by_peer", 0);
1129
1077
  }
1130
1078
  if (b->idx.named.accept_encoding != nullptr) {
1131
- GPR_TIMER_BEGIN("stream_encodings_accepted_by_peer", 0);
1132
- set_stream_encodings_accepted_by_peer(call,
1133
- b->idx.named.accept_encoding->md);
1079
+ GPR_TIMER_SCOPE("stream_encodings_accepted_by_peer", 0);
1080
+ set_encodings_accepted_by_peer(call, b->idx.named.accept_encoding->md,
1081
+ &stream_encodings_accepted_by_peer, true);
1134
1082
  grpc_metadata_batch_remove(b, b->idx.named.accept_encoding);
1135
- GPR_TIMER_END("stream_encodings_accepted_by_peer", 0);
1136
1083
  }
1084
+ call->encodings_accepted_by_peer =
1085
+ grpc_compression_bitset_from_message_stream_compression_bitset(
1086
+ message_encodings_accepted_by_peer,
1087
+ stream_encodings_accepted_by_peer);
1137
1088
  publish_app_metadata(call, b, false);
1138
1089
  }
1139
1090
 
1140
1091
  static void recv_trailing_filter(void* args, grpc_metadata_batch* b) {
1141
- grpc_call* call = (grpc_call*)args;
1092
+ grpc_call* call = static_cast<grpc_call*>(args);
1142
1093
  if (b->idx.named.grpc_status != nullptr) {
1143
1094
  uint32_t status_code = decode_status(b->idx.named.grpc_status->md);
1144
1095
  grpc_error* error =
@@ -1147,7 +1098,7 @@ static void recv_trailing_filter(void* args, grpc_metadata_batch* b) {
1147
1098
  : grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
1148
1099
  "Error received from peer"),
1149
1100
  GRPC_ERROR_INT_GRPC_STATUS,
1150
- (intptr_t)status_code);
1101
+ static_cast<intptr_t>(status_code));
1151
1102
  if (b->idx.named.grpc_message != nullptr) {
1152
1103
  error = grpc_error_set_str(
1153
1104
  error, GRPC_ERROR_STR_GRPC_MESSAGE,
@@ -1172,11 +1123,11 @@ grpc_call_stack* grpc_call_get_call_stack(grpc_call* call) {
1172
1123
  */
1173
1124
 
1174
1125
  static void set_status_value_directly(grpc_status_code status, void* dest) {
1175
- *(grpc_status_code*)dest = status;
1126
+ *static_cast<grpc_status_code*>(dest) = status;
1176
1127
  }
1177
1128
 
1178
1129
  static void set_cancelled_value(grpc_status_code status, void* dest) {
1179
- *(int*)dest = (status != GRPC_STATUS_OK);
1130
+ *static_cast<int*>(dest) = (status != GRPC_STATUS_OK);
1180
1131
  }
1181
1132
 
1182
1133
  static bool are_write_flags_valid(uint32_t flags) {
@@ -1222,8 +1173,8 @@ static batch_control* allocate_batch_control(grpc_call* call,
1222
1173
  int slot = batch_slot_for_op(ops[0].op);
1223
1174
  batch_control** pslot = &call->active_batches[slot];
1224
1175
  if (*pslot == nullptr) {
1225
- *pslot =
1226
- (batch_control*)gpr_arena_alloc(call->arena, sizeof(batch_control));
1176
+ *pslot = static_cast<batch_control*>(
1177
+ gpr_arena_alloc(call->arena, sizeof(batch_control)));
1227
1178
  }
1228
1179
  batch_control* bctl = *pslot;
1229
1180
  if (bctl->call != nullptr) {
@@ -1237,14 +1188,14 @@ static batch_control* allocate_batch_control(grpc_call* call,
1237
1188
 
1238
1189
  static void finish_batch_completion(void* user_data,
1239
1190
  grpc_cq_completion* storage) {
1240
- batch_control* bctl = (batch_control*)user_data;
1191
+ batch_control* bctl = static_cast<batch_control*>(user_data);
1241
1192
  grpc_call* call = bctl->call;
1242
1193
  bctl->call = nullptr;
1243
1194
  GRPC_CALL_INTERNAL_UNREF(call, "completion");
1244
1195
  }
1245
1196
 
1246
1197
  static grpc_error* consolidate_batch_errors(batch_control* bctl) {
1247
- size_t n = (size_t)gpr_atm_acq_load(&bctl->num_errors);
1198
+ size_t n = static_cast<size_t>(gpr_atm_acq_load(&bctl->num_errors));
1248
1199
  if (n == 0) {
1249
1200
  return GRPC_ERROR_NONE;
1250
1201
  } else if (n == 1) {
@@ -1271,6 +1222,7 @@ static void post_batch_completion(batch_control* bctl) {
1271
1222
 
1272
1223
  if (bctl->op.send_initial_metadata) {
1273
1224
  grpc_metadata_batch_destroy(
1225
+
1274
1226
  &call->metadata_batch[0 /* is_receiving */][0 /* is_trailing */]);
1275
1227
  }
1276
1228
  if (bctl->op.send_message) {
@@ -1278,6 +1230,7 @@ static void post_batch_completion(batch_control* bctl) {
1278
1230
  }
1279
1231
  if (bctl->op.send_trailing_metadata) {
1280
1232
  grpc_metadata_batch_destroy(
1233
+
1281
1234
  &call->metadata_batch[0 /* is_receiving */][1 /* is_trailing */]);
1282
1235
  }
1283
1236
  if (bctl->op.recv_trailing_metadata) {
@@ -1382,7 +1335,7 @@ static void continue_receiving_slices(batch_control* bctl) {
1382
1335
  }
1383
1336
 
1384
1337
  static void receiving_slice_ready(void* bctlp, grpc_error* error) {
1385
- batch_control* bctl = (batch_control*)bctlp;
1338
+ batch_control* bctl = static_cast<batch_control*>(bctlp);
1386
1339
  grpc_call* call = bctl->call;
1387
1340
  grpc_byte_stream* bs = call->receiving_stream;
1388
1341
  bool release_error = false;
@@ -1426,9 +1379,15 @@ static void process_data_after_md(batch_control* bctl) {
1426
1379
  } else {
1427
1380
  call->test_only_last_message_flags = call->receiving_stream->flags;
1428
1381
  if ((call->receiving_stream->flags & GRPC_WRITE_INTERNAL_COMPRESS) &&
1429
- (call->incoming_compression_algorithm > GRPC_COMPRESS_NONE)) {
1430
- *call->receiving_buffer = grpc_raw_compressed_byte_buffer_create(
1431
- nullptr, 0, call->incoming_compression_algorithm);
1382
+ (call->incoming_message_compression_algorithm >
1383
+ GRPC_MESSAGE_COMPRESS_NONE)) {
1384
+ grpc_compression_algorithm algo;
1385
+ GPR_ASSERT(
1386
+ grpc_compression_algorithm_from_message_stream_compression_algorithm(
1387
+ &algo, call->incoming_message_compression_algorithm,
1388
+ (grpc_stream_compression_algorithm)0));
1389
+ *call->receiving_buffer =
1390
+ grpc_raw_compressed_byte_buffer_create(nullptr, 0, algo);
1432
1391
  } else {
1433
1392
  *call->receiving_buffer = grpc_raw_byte_buffer_create(nullptr, 0);
1434
1393
  }
@@ -1439,7 +1398,7 @@ static void process_data_after_md(batch_control* bctl) {
1439
1398
  }
1440
1399
 
1441
1400
  static void receiving_stream_ready(void* bctlp, grpc_error* error) {
1442
- batch_control* bctl = (batch_control*)bctlp;
1401
+ batch_control* bctl = static_cast<batch_control*>(bctlp);
1443
1402
  grpc_call* call = bctl->call;
1444
1403
  if (error != GRPC_ERROR_NONE) {
1445
1404
  if (call->receiving_stream != nullptr) {
@@ -1463,95 +1422,73 @@ static void receiving_stream_ready(void* bctlp, grpc_error* error) {
1463
1422
  // before processing the received message.
1464
1423
  static void receiving_stream_ready_in_call_combiner(void* bctlp,
1465
1424
  grpc_error* error) {
1466
- batch_control* bctl = (batch_control*)bctlp;
1425
+ batch_control* bctl = static_cast<batch_control*>(bctlp);
1467
1426
  grpc_call* call = bctl->call;
1468
1427
  GRPC_CALL_COMBINER_STOP(&call->call_combiner, "recv_message_ready");
1469
1428
  receiving_stream_ready(bctlp, error);
1470
1429
  }
1471
1430
 
1472
1431
  static void validate_filtered_metadata(batch_control* bctl) {
1432
+ grpc_compression_algorithm compression_algorithm;
1473
1433
  grpc_call* call = bctl->call;
1474
- /* validate compression algorithms */
1475
1434
  if (call->incoming_stream_compression_algorithm !=
1476
- GRPC_STREAM_COMPRESS_NONE) {
1477
- const grpc_stream_compression_algorithm algo =
1478
- call->incoming_stream_compression_algorithm;
1435
+ GRPC_STREAM_COMPRESS_NONE &&
1436
+ call->incoming_message_compression_algorithm !=
1437
+ GRPC_MESSAGE_COMPRESS_NONE) {
1479
1438
  char* error_msg = nullptr;
1480
- const grpc_compression_options compression_options =
1481
- grpc_channel_compression_options(call->channel);
1482
- if (algo >= GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) {
1483
- gpr_asprintf(&error_msg,
1484
- "Invalid stream compression algorithm value '%d'.", algo);
1485
- gpr_log(GPR_ERROR, "%s", error_msg);
1486
- cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_UNIMPLEMENTED,
1487
- error_msg);
1488
- } else if (grpc_compression_options_is_stream_compression_algorithm_enabled(
1489
- &compression_options, algo) == 0) {
1490
- /* check if algorithm is supported by current channel config */
1491
- const char* algo_name = nullptr;
1492
- grpc_stream_compression_algorithm_name(algo, &algo_name);
1493
- gpr_asprintf(&error_msg, "Stream compression algorithm '%s' is disabled.",
1494
- algo_name);
1495
- gpr_log(GPR_ERROR, "%s", error_msg);
1496
- cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_UNIMPLEMENTED,
1497
- error_msg);
1498
- }
1439
+ gpr_asprintf(&error_msg,
1440
+ "Incoming stream has both stream compression (%d) and message "
1441
+ "compression (%d).",
1442
+ call->incoming_stream_compression_algorithm,
1443
+ call->incoming_message_compression_algorithm);
1444
+ gpr_log(GPR_ERROR, "%s", error_msg);
1445
+ cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_INTERNAL,
1446
+ error_msg);
1499
1447
  gpr_free(error_msg);
1500
-
1501
- GPR_ASSERT(call->stream_encodings_accepted_by_peer != 0);
1502
- if (!GPR_BITGET(call->stream_encodings_accepted_by_peer,
1503
- call->incoming_stream_compression_algorithm)) {
1504
- if (grpc_compression_trace.enabled()) {
1505
- const char* algo_name = nullptr;
1506
- grpc_stream_compression_algorithm_name(
1507
- call->incoming_stream_compression_algorithm, &algo_name);
1508
- gpr_log(
1509
- GPR_ERROR,
1510
- "Stream compression algorithm (content-encoding = '%s') not "
1511
- "present in the bitset of accepted encodings (accept-encodings: "
1512
- "'0x%x')",
1513
- algo_name, call->stream_encodings_accepted_by_peer);
1514
- }
1515
- }
1516
- } else if (call->incoming_compression_algorithm != GRPC_COMPRESS_NONE) {
1517
- const grpc_compression_algorithm algo =
1518
- call->incoming_compression_algorithm;
1448
+ } else if (
1449
+ grpc_compression_algorithm_from_message_stream_compression_algorithm(
1450
+ &compression_algorithm, call->incoming_message_compression_algorithm,
1451
+ call->incoming_stream_compression_algorithm) == 0) {
1452
+ char* error_msg = nullptr;
1453
+ gpr_asprintf(&error_msg,
1454
+ "Error in incoming message compression (%d) or stream "
1455
+ "compression (%d).",
1456
+ call->incoming_stream_compression_algorithm,
1457
+ call->incoming_message_compression_algorithm);
1458
+ cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_INTERNAL,
1459
+ error_msg);
1460
+ gpr_free(error_msg);
1461
+ } else {
1519
1462
  char* error_msg = nullptr;
1520
1463
  const grpc_compression_options compression_options =
1521
1464
  grpc_channel_compression_options(call->channel);
1522
- /* check if algorithm is known */
1523
- if (algo >= GRPC_COMPRESS_ALGORITHMS_COUNT) {
1465
+ if (compression_algorithm >= GRPC_COMPRESS_ALGORITHMS_COUNT) {
1524
1466
  gpr_asprintf(&error_msg, "Invalid compression algorithm value '%d'.",
1525
- algo);
1467
+ compression_algorithm);
1526
1468
  gpr_log(GPR_ERROR, "%s", error_msg);
1527
1469
  cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_UNIMPLEMENTED,
1528
1470
  error_msg);
1529
1471
  } else if (grpc_compression_options_is_algorithm_enabled(
1530
- &compression_options, algo) == 0) {
1472
+ &compression_options, compression_algorithm) == 0) {
1531
1473
  /* check if algorithm is supported by current channel config */
1532
1474
  const char* algo_name = nullptr;
1533
- grpc_compression_algorithm_name(algo, &algo_name);
1475
+ grpc_compression_algorithm_name(compression_algorithm, &algo_name);
1534
1476
  gpr_asprintf(&error_msg, "Compression algorithm '%s' is disabled.",
1535
1477
  algo_name);
1536
1478
  gpr_log(GPR_ERROR, "%s", error_msg);
1537
1479
  cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_UNIMPLEMENTED,
1538
1480
  error_msg);
1539
- } else {
1540
- call->incoming_compression_algorithm = algo;
1541
1481
  }
1542
1482
  gpr_free(error_msg);
1543
1483
 
1544
1484
  GPR_ASSERT(call->encodings_accepted_by_peer != 0);
1545
- if (!GPR_BITGET(call->encodings_accepted_by_peer,
1546
- call->incoming_compression_algorithm)) {
1485
+ if (!GPR_BITGET(call->encodings_accepted_by_peer, compression_algorithm)) {
1547
1486
  if (grpc_compression_trace.enabled()) {
1548
1487
  const char* algo_name = nullptr;
1549
- grpc_compression_algorithm_name(call->incoming_compression_algorithm,
1550
- &algo_name);
1488
+ grpc_compression_algorithm_name(compression_algorithm, &algo_name);
1551
1489
  gpr_log(GPR_ERROR,
1552
- "Compression algorithm (grpc-encoding = '%s') not present in "
1553
- "the bitset of accepted encodings (grpc-accept-encodings: "
1554
- "'0x%x')",
1490
+ "Compression algorithm ('%s') not present in the bitset of "
1491
+ "accepted encodings ('0x%x')",
1555
1492
  algo_name, call->encodings_accepted_by_peer);
1556
1493
  }
1557
1494
  }
@@ -1561,7 +1498,7 @@ static void validate_filtered_metadata(batch_control* bctl) {
1561
1498
  static void add_batch_error(batch_control* bctl, grpc_error* error,
1562
1499
  bool has_cancelled) {
1563
1500
  if (error == GRPC_ERROR_NONE) return;
1564
- int idx = (int)gpr_atm_full_fetch_add(&bctl->num_errors, 1);
1501
+ int idx = static_cast<int>(gpr_atm_full_fetch_add(&bctl->num_errors, 1));
1565
1502
  if (idx == 0 && !has_cancelled) {
1566
1503
  cancel_with_error(bctl->call, STATUS_FROM_CORE, GRPC_ERROR_REF(error));
1567
1504
  }
@@ -1569,7 +1506,7 @@ static void add_batch_error(batch_control* bctl, grpc_error* error,
1569
1506
  }
1570
1507
 
1571
1508
  static void receiving_initial_metadata_ready(void* bctlp, grpc_error* error) {
1572
- batch_control* bctl = (batch_control*)bctlp;
1509
+ batch_control* bctl = static_cast<batch_control*>(bctlp);
1573
1510
  grpc_call* call = bctl->call;
1574
1511
 
1575
1512
  GRPC_CALL_COMBINER_STOP(&call->call_combiner, "recv_initial_metadata_ready");
@@ -1581,9 +1518,8 @@ static void receiving_initial_metadata_ready(void* bctlp, grpc_error* error) {
1581
1518
  recv_initial_filter(call, md);
1582
1519
 
1583
1520
  /* TODO(ctiller): this could be moved into recv_initial_filter now */
1584
- GPR_TIMER_BEGIN("validate_filtered_metadata", 0);
1521
+ GPR_TIMER_SCOPE("validate_filtered_metadata", 0);
1585
1522
  validate_filtered_metadata(bctl);
1586
- GPR_TIMER_END("validate_filtered_metadata", 0);
1587
1523
 
1588
1524
  if (md->deadline != GRPC_MILLIS_INF_FUTURE && !call->is_client) {
1589
1525
  call->send_deadline = md->deadline;
@@ -1622,7 +1558,7 @@ static void receiving_initial_metadata_ready(void* bctlp, grpc_error* error) {
1622
1558
  }
1623
1559
 
1624
1560
  static void finish_batch(void* bctlp, grpc_error* error) {
1625
- batch_control* bctl = (batch_control*)bctlp;
1561
+ batch_control* bctl = static_cast<batch_control*>(bctlp);
1626
1562
  grpc_call* call = bctl->call;
1627
1563
  GRPC_CALL_COMBINER_STOP(&call->call_combiner, "on_complete");
1628
1564
  add_batch_error(bctl, GRPC_ERROR_REF(error), false);
@@ -1636,6 +1572,8 @@ static void free_no_op_completion(void* p, grpc_cq_completion* completion) {
1636
1572
  static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1637
1573
  size_t nops, void* notify_tag,
1638
1574
  int is_notify_tag_closure) {
1575
+ GPR_TIMER_SCOPE("grpc_call_start_batch", 0);
1576
+
1639
1577
  size_t i;
1640
1578
  const grpc_op* op;
1641
1579
  batch_control* bctl;
@@ -1644,15 +1582,15 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1644
1582
  grpc_transport_stream_op_batch* stream_op;
1645
1583
  grpc_transport_stream_op_batch_payload* stream_op_payload;
1646
1584
 
1647
- GPR_TIMER_BEGIN("grpc_call_start_batch", 0);
1648
1585
  GRPC_CALL_LOG_BATCH(GPR_INFO, call, ops, nops, notify_tag);
1649
1586
 
1650
1587
  if (nops == 0) {
1651
1588
  if (!is_notify_tag_closure) {
1652
1589
  GPR_ASSERT(grpc_cq_begin_op(call->cq, notify_tag));
1653
- grpc_cq_end_op(
1654
- call->cq, notify_tag, GRPC_ERROR_NONE, free_no_op_completion, nullptr,
1655
- (grpc_cq_completion*)gpr_malloc(sizeof(grpc_cq_completion)));
1590
+ grpc_cq_end_op(call->cq, notify_tag, GRPC_ERROR_NONE,
1591
+ free_no_op_completion, nullptr,
1592
+ static_cast<grpc_cq_completion*>(
1593
+ gpr_malloc(sizeof(grpc_cq_completion))));
1656
1594
  } else {
1657
1595
  GRPC_CLOSURE_SCHED((grpc_closure*)notify_tag, GRPC_ERROR_NONE);
1658
1596
  }
@@ -1666,7 +1604,7 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1666
1604
  }
1667
1605
  bctl->completion_data.notify_tag.tag = notify_tag;
1668
1606
  bctl->completion_data.notify_tag.is_closure =
1669
- (uint8_t)(is_notify_tag_closure != 0);
1607
+ static_cast<uint8_t>(is_notify_tag_closure != 0);
1670
1608
 
1671
1609
  stream_op = &bctl->op;
1672
1610
  stream_op_payload = &call->stream_op_payload;
@@ -1694,56 +1632,28 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1694
1632
  size_t additional_metadata_count = 0;
1695
1633
  grpc_compression_level effective_compression_level =
1696
1634
  GRPC_COMPRESS_LEVEL_NONE;
1697
- grpc_stream_compression_level effective_stream_compression_level =
1698
- GRPC_STREAM_COMPRESS_LEVEL_NONE;
1699
1635
  bool level_set = false;
1700
- bool stream_compression = false;
1701
- if (op->data.send_initial_metadata.maybe_stream_compression_level
1702
- .is_set) {
1703
- effective_stream_compression_level =
1704
- op->data.send_initial_metadata.maybe_stream_compression_level
1705
- .level;
1706
- level_set = true;
1707
- stream_compression = true;
1708
- } else if (op->data.send_initial_metadata.maybe_compression_level
1709
- .is_set) {
1636
+ if (op->data.send_initial_metadata.maybe_compression_level.is_set) {
1710
1637
  effective_compression_level =
1711
1638
  op->data.send_initial_metadata.maybe_compression_level.level;
1712
1639
  level_set = true;
1713
1640
  } else {
1714
1641
  const grpc_compression_options copts =
1715
1642
  grpc_channel_compression_options(call->channel);
1716
- if (copts.default_stream_compression_level.is_set) {
1717
- level_set = true;
1718
- effective_stream_compression_level =
1719
- copts.default_stream_compression_level.level;
1720
- stream_compression = true;
1721
- } else if (copts.default_level.is_set) {
1643
+ if (copts.default_level.is_set) {
1722
1644
  level_set = true;
1723
1645
  effective_compression_level = copts.default_level.level;
1724
1646
  }
1725
1647
  }
1726
1648
  if (level_set && !call->is_client) {
1727
- if (stream_compression) {
1728
- const grpc_stream_compression_algorithm calgo =
1729
- stream_compression_algorithm_for_level_locked(
1730
- call, effective_stream_compression_level);
1731
- call->compression_md.key =
1732
- GRPC_MDSTR_GRPC_INTERNAL_STREAM_ENCODING_REQUEST;
1733
- call->compression_md.value =
1734
- grpc_stream_compression_algorithm_slice(calgo);
1735
- } else {
1736
- const grpc_compression_algorithm calgo =
1737
- compression_algorithm_for_level_locked(
1738
- call, effective_compression_level);
1739
- /* the following will be picked up by the compress filter and used
1740
- * as the call's compression algorithm. */
1741
- call->compression_md.key =
1742
- GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST;
1743
- call->compression_md.value =
1744
- grpc_compression_algorithm_slice(calgo);
1745
- additional_metadata_count++;
1746
- }
1649
+ const grpc_compression_algorithm calgo =
1650
+ compression_algorithm_for_level_locked(
1651
+ call, effective_compression_level);
1652
+ /* the following will be picked up by the compress filter and used
1653
+ * as the call's compression algorithm. */
1654
+ call->compression_md.key = GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST;
1655
+ call->compression_md.value = grpc_compression_algorithm_slice(calgo);
1656
+ additional_metadata_count++;
1747
1657
  }
1748
1658
 
1749
1659
  if (op->data.send_initial_metadata.count + additional_metadata_count >
@@ -1754,9 +1664,10 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1754
1664
  stream_op->send_initial_metadata = true;
1755
1665
  call->sent_initial_metadata = true;
1756
1666
  if (!prepare_application_metadata(
1757
- call, (int)op->data.send_initial_metadata.count,
1667
+ call, static_cast<int>(op->data.send_initial_metadata.count),
1758
1668
  op->data.send_initial_metadata.metadata, 0, call->is_client,
1759
- &call->compression_md, (int)additional_metadata_count)) {
1669
+ &call->compression_md,
1670
+ static_cast<int>(additional_metadata_count))) {
1760
1671
  error = GRPC_CALL_ERROR_INVALID_METADATA;
1761
1672
  goto done_with_error;
1762
1673
  }
@@ -1873,7 +1784,8 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1873
1784
  }
1874
1785
  if (!prepare_application_metadata(
1875
1786
  call,
1876
- (int)op->data.send_status_from_server.trailing_metadata_count,
1787
+ static_cast<int>(
1788
+ op->data.send_status_from_server.trailing_metadata_count),
1877
1789
  op->data.send_status_from_server.trailing_metadata, 1, 1,
1878
1790
  nullptr, 0)) {
1879
1791
  for (int n = 0; n < call->send_extra_metadata_count; n++) {
@@ -2009,7 +1921,6 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
2009
1921
  execute_batch(call, stream_op, &bctl->start_batch);
2010
1922
 
2011
1923
  done:
2012
- GPR_TIMER_END("grpc_call_start_batch", 0);
2013
1924
  return error;
2014
1925
 
2015
1926
  done_with_error: