grpc 1.9.1 → 1.10.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (637) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2654 -953
  3. data/etc/roots.pem +282 -683
  4. data/include/grpc/compression.h +9 -26
  5. data/include/grpc/grpc.h +10 -24
  6. data/include/grpc/grpc_security.h +7 -1
  7. data/include/grpc/impl/codegen/compression_types.h +5 -62
  8. data/include/grpc/impl/codegen/grpc_types.h +10 -6
  9. data/include/grpc/module.modulemap +1 -10
  10. data/include/grpc/support/alloc.h +3 -2
  11. data/include/grpc/support/log.h +1 -2
  12. data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
  13. data/src/boringssl/err_data.c +550 -496
  14. data/src/core/ext/census/grpc_context.cc +2 -1
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
  17. data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
  20. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
  21. data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
  22. data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
  23. data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
  31. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
  32. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
  34. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
  35. data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
  36. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
  37. data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
  38. data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
  39. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver.cc +6 -52
  41. data/src/core/ext/filters/client_channel/resolver.h +98 -55
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
  46. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
  48. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
  49. data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
  50. data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
  51. data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
  52. data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
  53. data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
  54. data/src/core/ext/filters/client_channel/subchannel.h +38 -45
  55. data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
  56. data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
  58. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
  59. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
  60. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
  61. data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
  62. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
  63. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
  64. data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
  65. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
  66. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
  67. data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
  68. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  69. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
  70. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
  71. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
  72. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
  73. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
  74. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
  75. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
  76. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
  77. data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
  78. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
  79. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
  81. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
  82. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
  83. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  84. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
  86. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
  88. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  91. data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
  92. data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
  93. data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
  96. data/src/core/lib/{gpr → avl}/avl.cc +61 -57
  97. data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
  98. data/src/core/lib/backoff/backoff.cc +6 -5
  99. data/src/core/lib/channel/channel_args.cc +23 -109
  100. data/src/core/lib/channel/channel_args.h +5 -31
  101. data/src/core/lib/channel/channel_stack.cc +11 -8
  102. data/src/core/lib/channel/channel_stack_builder.cc +10 -7
  103. data/src/core/lib/channel/connected_channel.cc +18 -17
  104. data/src/core/lib/channel/handshaker.cc +8 -8
  105. data/src/core/lib/channel/handshaker_registry.cc +3 -2
  106. data/src/core/lib/compression/algorithm_metadata.h +13 -6
  107. data/src/core/lib/compression/compression.cc +72 -183
  108. data/src/core/lib/compression/compression_internal.cc +274 -0
  109. data/src/core/lib/compression/compression_internal.h +86 -0
  110. data/src/core/lib/compression/message_compress.cc +15 -15
  111. data/src/core/lib/compression/message_compress.h +4 -3
  112. data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
  113. data/src/core/lib/compression/stream_compression_identity.cc +1 -1
  114. data/src/core/lib/debug/stats.cc +10 -8
  115. data/src/core/lib/debug/stats_data.cc +2 -1
  116. data/src/core/lib/debug/trace.cc +3 -3
  117. data/src/core/lib/gpr/alloc.cc +7 -11
  118. data/src/core/lib/gpr/arena.cc +34 -12
  119. data/src/core/lib/gpr/atm.cc +2 -1
  120. data/src/core/lib/gpr/cpu_linux.cc +3 -3
  121. data/src/core/lib/gpr/cpu_posix.cc +2 -1
  122. data/src/core/lib/gpr/env.h +1 -1
  123. data/src/core/lib/gpr/env_linux.cc +1 -1
  124. data/src/core/lib/gpr/env_windows.cc +4 -4
  125. data/src/core/lib/gpr/fork.cc +16 -2
  126. data/src/core/lib/gpr/host_port.cc +5 -4
  127. data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
  128. data/src/core/lib/gpr/log.cc +5 -4
  129. data/src/core/lib/gpr/log_linux.cc +1 -1
  130. data/src/core/lib/gpr/mpscq.cc +1 -0
  131. data/src/core/lib/gpr/murmur_hash.cc +4 -4
  132. data/src/core/lib/gpr/string.cc +19 -16
  133. data/src/core/lib/gpr/string_posix.cc +3 -3
  134. data/src/core/lib/gpr/sync_posix.cc +5 -9
  135. data/src/core/lib/gpr/thd.cc +3 -3
  136. data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
  137. data/src/core/lib/gpr/thd_posix.cc +6 -4
  138. data/src/core/lib/gpr/thd_windows.cc +3 -1
  139. data/src/core/lib/gpr/time.cc +6 -4
  140. data/src/core/lib/gpr/time_posix.cc +2 -2
  141. data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
  142. data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
  143. data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
  144. data/src/core/lib/gpr/tls_pthread.cc +1 -1
  145. data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
  146. data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
  147. data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
  148. data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
  149. data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
  150. data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
  151. data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
  152. data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
  153. data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
  154. data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
  155. data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
  156. data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
  157. data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
  158. data/src/core/lib/http/format_request.cc +3 -3
  159. data/src/core/lib/http/httpcli.cc +6 -7
  160. data/src/core/lib/http/httpcli_security_connector.cc +10 -10
  161. data/src/core/lib/http/parser.cc +16 -12
  162. data/src/core/lib/iomgr/call_combiner.cc +12 -13
  163. data/src/core/lib/iomgr/closure.h +4 -6
  164. data/src/core/lib/iomgr/combiner.cc +10 -21
  165. data/src/core/lib/iomgr/error.cc +50 -55
  166. data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
  167. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
  168. data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
  169. data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
  170. data/src/core/lib/iomgr/ev_posix.cc +47 -6
  171. data/src/core/lib/iomgr/exec_ctx.cc +10 -10
  172. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  173. data/src/core/lib/iomgr/executor.cc +16 -13
  174. data/src/core/lib/iomgr/fork_posix.cc +1 -3
  175. data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
  176. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  177. data/src/core/lib/iomgr/iomgr.cc +2 -2
  178. data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
  179. data/src/core/lib/iomgr/iomgr_uv.h +1 -1
  180. data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
  181. data/src/core/lib/iomgr/load_file.cc +3 -3
  182. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  183. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
  184. data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
  185. data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
  186. data/src/core/lib/iomgr/resource_quota.cc +36 -34
  187. data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
  188. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  189. data/src/core/lib/iomgr/socket_mutator.cc +7 -7
  190. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
  191. data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
  192. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
  193. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  194. data/src/core/lib/iomgr/tcp_posix.cc +47 -55
  195. data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
  196. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
  197. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
  198. data/src/core/lib/iomgr/tcp_windows.cc +1 -1
  199. data/src/core/lib/iomgr/timer_generic.cc +16 -14
  200. data/src/core/lib/iomgr/timer_heap.cc +8 -7
  201. data/src/core/lib/iomgr/timer_manager.cc +4 -3
  202. data/src/core/lib/iomgr/udp_server.cc +24 -16
  203. data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
  204. data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
  205. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
  206. data/src/core/lib/json/json.cc +1 -1
  207. data/src/core/lib/json/json_reader.cc +8 -6
  208. data/src/core/lib/json/json_string.cc +19 -18
  209. data/src/core/lib/json/json_writer.cc +10 -8
  210. data/src/core/lib/profiling/basic_timers.cc +1 -1
  211. data/src/core/lib/profiling/timers.h +3 -20
  212. data/src/core/lib/security/context/security_context.cc +16 -14
  213. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
  214. data/src/core/lib/security/credentials/credentials.cc +9 -8
  215. data/src/core/lib/security/credentials/credentials.h +1 -1
  216. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  217. data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
  218. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
  219. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
  220. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
  221. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
  222. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
  223. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
  224. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
  225. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
  226. data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
  227. data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
  228. data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
  229. data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
  230. data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
  231. data/src/core/lib/security/transport/security_handshaker.cc +19 -18
  232. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  233. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  234. data/src/core/lib/slice/b64.cc +19 -16
  235. data/src/core/lib/slice/percent_encoding.cc +5 -5
  236. data/src/core/lib/slice/slice.cc +35 -33
  237. data/src/core/lib/slice/slice_buffer.cc +16 -14
  238. data/src/core/lib/slice/slice_hash_table.cc +3 -2
  239. data/src/core/lib/slice/slice_intern.cc +21 -25
  240. data/src/core/lib/slice/slice_string_helpers.cc +45 -9
  241. data/src/core/lib/slice/slice_string_helpers.h +6 -0
  242. data/src/core/lib/surface/byte_buffer.cc +2 -2
  243. data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
  244. data/src/core/lib/surface/call.cc +171 -260
  245. data/src/core/lib/surface/call_test_only.h +1 -13
  246. data/src/core/lib/surface/channel.cc +20 -43
  247. data/src/core/lib/surface/channel_init.cc +7 -7
  248. data/src/core/lib/surface/channel_ping.cc +2 -2
  249. data/src/core/lib/surface/completion_queue.cc +69 -75
  250. data/src/core/lib/surface/init.cc +4 -5
  251. data/src/core/lib/surface/init_secure.cc +1 -1
  252. data/src/core/lib/surface/lame_client.cc +1 -1
  253. data/src/core/lib/surface/server.cc +64 -59
  254. data/src/core/lib/surface/version.cc +2 -2
  255. data/src/core/lib/transport/bdp_estimator.cc +6 -5
  256. data/src/core/lib/transport/byte_stream.cc +23 -14
  257. data/src/core/lib/transport/byte_stream.h +1 -1
  258. data/src/core/lib/transport/connectivity_state.cc +9 -13
  259. data/src/core/lib/transport/error_utils.cc +10 -7
  260. data/src/core/lib/transport/metadata.cc +27 -26
  261. data/src/core/lib/transport/metadata.h +1 -1
  262. data/src/core/lib/transport/pid_controller.cc +2 -1
  263. data/src/core/lib/transport/service_config.cc +5 -5
  264. data/src/core/lib/transport/static_metadata.cc +225 -222
  265. data/src/core/lib/transport/static_metadata.h +77 -76
  266. data/src/core/lib/transport/timeout_encoding.cc +3 -2
  267. data/src/core/lib/transport/transport.cc +6 -5
  268. data/src/core/lib/transport/transport_op_string.cc +0 -1
  269. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  270. data/src/core/tsi/alts_transport_security.cc +61 -0
  271. data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
  272. data/src/core/tsi/fake_transport_security.cc +59 -43
  273. data/src/core/tsi/ssl_transport_security.cc +122 -107
  274. data/src/core/tsi/transport_security.cc +3 -3
  275. data/src/core/tsi/transport_security_adapter.cc +16 -10
  276. data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
  277. data/src/ruby/ext/grpc/rb_channel.c +3 -4
  278. data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
  279. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
  280. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
  281. data/src/ruby/ext/grpc/rb_server.c +52 -28
  282. data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
  283. data/src/ruby/lib/grpc/version.rb +1 -1
  284. data/src/ruby/pb/test/client.rb +1 -1
  285. data/src/ruby/pb/test/server.rb +1 -1
  286. data/src/ruby/spec/client_server_spec.rb +4 -2
  287. data/src/ruby/spec/generic/active_call_spec.rb +2 -1
  288. data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
  289. data/src/ruby/spec/server_spec.rb +26 -7
  290. data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
  291. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
  292. data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
  293. data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
  294. data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
  295. data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
  296. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
  297. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
  298. data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
  299. data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
  300. data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
  301. data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
  302. data/third_party/boringssl/crypto/base64/base64.c +65 -43
  303. data/third_party/boringssl/crypto/bio/bio.c +134 -110
  304. data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
  305. data/third_party/boringssl/crypto/bio/connect.c +17 -17
  306. data/third_party/boringssl/crypto/bio/fd.c +2 -1
  307. data/third_party/boringssl/crypto/bio/file.c +14 -14
  308. data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
  309. data/third_party/boringssl/crypto/bio/internal.h +14 -14
  310. data/third_party/boringssl/crypto/bio/pair.c +45 -45
  311. data/third_party/boringssl/crypto/bio/printf.c +6 -10
  312. data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
  313. data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
  314. data/third_party/boringssl/crypto/buf/buf.c +20 -44
  315. data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
  316. data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
  317. data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
  318. data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
  319. data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
  320. data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
  321. data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
  322. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
  323. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
  324. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
  325. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
  326. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
  327. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
  328. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
  329. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
  330. data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
  331. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
  332. data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
  333. data/third_party/boringssl/crypto/conf/conf.c +32 -20
  334. data/third_party/boringssl/crypto/conf/internal.h +3 -3
  335. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
  336. data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
  337. data/third_party/boringssl/crypto/cpu-intel.c +68 -43
  338. data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
  339. data/third_party/boringssl/crypto/crypto.c +54 -32
  340. data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
  341. data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
  342. data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
  343. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
  344. data/third_party/boringssl/crypto/dh/check.c +33 -34
  345. data/third_party/boringssl/crypto/dh/dh.c +72 -36
  346. data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
  347. data/third_party/boringssl/crypto/dh/params.c +1 -161
  348. data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
  349. data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
  350. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
  351. data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
  352. data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
  353. data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
  354. data/third_party/boringssl/crypto/engine/engine.c +6 -6
  355. data/third_party/boringssl/crypto/err/err.c +197 -106
  356. data/third_party/boringssl/crypto/err/internal.h +58 -0
  357. data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
  358. data/third_party/boringssl/crypto/evp/evp.c +6 -11
  359. data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
  360. data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
  361. data/third_party/boringssl/crypto/evp/internal.h +66 -51
  362. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
  363. data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
  364. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
  365. data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
  366. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
  367. data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
  368. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
  369. data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
  370. data/third_party/boringssl/crypto/evp/print.c +5 -36
  371. data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
  372. data/third_party/boringssl/crypto/ex_data.c +15 -45
  373. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
  374. data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
  375. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
  376. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
  377. data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
  378. data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
  379. data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
  380. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
  381. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
  382. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
  383. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
  384. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
  385. data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
  386. data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
  387. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
  388. data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
  389. data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
  390. data/third_party/boringssl/crypto/internal.h +301 -233
  391. data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
  392. data/third_party/boringssl/crypto/mem.c +76 -33
  393. data/third_party/boringssl/crypto/obj/obj.c +44 -28
  394. data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
  395. data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
  396. data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
  397. data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
  398. data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
  399. data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
  400. data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
  401. data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
  402. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
  403. data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
  404. data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
  405. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
  406. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
  407. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
  408. data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
  409. data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
  410. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
  411. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
  412. data/third_party/boringssl/crypto/pool/internal.h +2 -2
  413. data/third_party/boringssl/crypto/pool/pool.c +15 -15
  414. data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
  415. data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
  416. data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
  417. data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
  418. data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
  419. data/third_party/boringssl/crypto/refcount_c11.c +2 -2
  420. data/third_party/boringssl/crypto/refcount_lock.c +1 -1
  421. data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
  422. data/third_party/boringssl/crypto/stack/stack.c +13 -13
  423. data/third_party/boringssl/crypto/thread_none.c +1 -1
  424. data/third_party/boringssl/crypto/thread_pthread.c +1 -1
  425. data/third_party/boringssl/crypto/thread_win.c +40 -40
  426. data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
  427. data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
  428. data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
  429. data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
  430. data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
  431. data/third_party/boringssl/crypto/x509/by_file.c +2 -2
  432. data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
  433. data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
  434. data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
  435. data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
  436. data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
  437. data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
  438. data/third_party/boringssl/crypto/x509/x_name.c +13 -16
  439. data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
  440. data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
  441. data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
  442. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  443. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
  444. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
  445. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
  446. data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
  447. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
  448. data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
  449. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
  450. data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
  451. data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
  452. data/third_party/boringssl/include/openssl/aead.h +280 -191
  453. data/third_party/boringssl/include/openssl/aes.h +50 -50
  454. data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
  455. data/third_party/boringssl/include/openssl/asn1.h +14 -77
  456. data/third_party/boringssl/include/openssl/asn1t.h +11 -15
  457. data/third_party/boringssl/include/openssl/base.h +78 -51
  458. data/third_party/boringssl/include/openssl/base64.h +68 -68
  459. data/third_party/boringssl/include/openssl/bio.h +472 -406
  460. data/third_party/boringssl/include/openssl/blowfish.h +1 -1
  461. data/third_party/boringssl/include/openssl/bn.h +454 -435
  462. data/third_party/boringssl/include/openssl/buf.h +27 -27
  463. data/third_party/boringssl/include/openssl/bytestring.h +282 -267
  464. data/third_party/boringssl/include/openssl/cast.h +2 -2
  465. data/third_party/boringssl/include/openssl/chacha.h +5 -5
  466. data/third_party/boringssl/include/openssl/cipher.h +209 -200
  467. data/third_party/boringssl/include/openssl/cmac.h +27 -27
  468. data/third_party/boringssl/include/openssl/conf.h +49 -46
  469. data/third_party/boringssl/include/openssl/cpu.h +60 -45
  470. data/third_party/boringssl/include/openssl/crypto.h +59 -35
  471. data/third_party/boringssl/include/openssl/curve25519.h +97 -92
  472. data/third_party/boringssl/include/openssl/des.h +25 -25
  473. data/third_party/boringssl/include/openssl/dh.h +98 -97
  474. data/third_party/boringssl/include/openssl/digest.h +143 -114
  475. data/third_party/boringssl/include/openssl/dsa.h +217 -202
  476. data/third_party/boringssl/include/openssl/ec.h +132 -131
  477. data/third_party/boringssl/include/openssl/ec_key.h +132 -128
  478. data/third_party/boringssl/include/openssl/ecdh.h +9 -9
  479. data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
  480. data/third_party/boringssl/include/openssl/engine.h +38 -38
  481. data/third_party/boringssl/include/openssl/err.h +189 -219
  482. data/third_party/boringssl/include/openssl/evp.h +473 -397
  483. data/third_party/boringssl/include/openssl/ex_data.h +46 -56
  484. data/third_party/boringssl/include/openssl/hkdf.h +17 -17
  485. data/third_party/boringssl/include/openssl/hmac.h +55 -43
  486. data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  487. data/third_party/boringssl/include/openssl/lhash.h +67 -67
  488. data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
  489. data/third_party/boringssl/include/openssl/md4.h +14 -14
  490. data/third_party/boringssl/include/openssl/md5.h +14 -14
  491. data/third_party/boringssl/include/openssl/mem.h +39 -33
  492. data/third_party/boringssl/include/openssl/nid.h +43 -0
  493. data/third_party/boringssl/include/openssl/obj.h +93 -87
  494. data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
  495. data/third_party/boringssl/include/openssl/pem.h +2 -122
  496. data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
  497. data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
  498. data/third_party/boringssl/include/openssl/poly1305.h +11 -11
  499. data/third_party/boringssl/include/openssl/pool.h +29 -25
  500. data/third_party/boringssl/include/openssl/rand.h +48 -45
  501. data/third_party/boringssl/include/openssl/rc4.h +9 -9
  502. data/third_party/boringssl/include/openssl/ripemd.h +13 -13
  503. data/third_party/boringssl/include/openssl/rsa.h +371 -340
  504. data/third_party/boringssl/include/openssl/sha.h +71 -71
  505. data/third_party/boringssl/include/openssl/span.h +191 -0
  506. data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
  507. data/third_party/boringssl/include/openssl/ssl3.h +39 -122
  508. data/third_party/boringssl/include/openssl/stack.h +355 -164
  509. data/third_party/boringssl/include/openssl/thread.h +43 -43
  510. data/third_party/boringssl/include/openssl/tls1.h +60 -63
  511. data/third_party/boringssl/include/openssl/type_check.h +10 -14
  512. data/third_party/boringssl/include/openssl/x509.h +41 -116
  513. data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
  514. data/third_party/boringssl/include/openssl/x509v3.h +27 -21
  515. data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
  516. data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
  517. data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
  518. data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
  519. data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
  520. data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
  521. data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
  522. data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
  523. data/third_party/boringssl/ssl/handshake.cc +547 -0
  524. data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
  525. data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
  526. data/third_party/boringssl/ssl/internal.h +2027 -1280
  527. data/third_party/boringssl/ssl/s3_both.cc +603 -0
  528. data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
  529. data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
  530. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
  531. data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
  532. data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
  533. data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
  534. data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
  535. data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
  536. data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
  537. data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
  538. data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
  539. data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
  540. data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
  541. data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
  542. data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
  543. data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
  544. data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
  545. data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
  546. data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
  547. data/third_party/boringssl/ssl/tls13_client.cc +842 -0
  548. data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
  549. data/third_party/boringssl/ssl/tls13_server.cc +967 -0
  550. data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
  551. data/third_party/boringssl/ssl/tls_record.cc +675 -0
  552. metadata +117 -168
  553. data/include/grpc/support/cmdline.h +0 -88
  554. data/include/grpc/support/subprocess.h +0 -44
  555. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
  556. data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
  557. data/src/core/lib/gpr/cmdline.cc +0 -330
  558. data/src/core/lib/gpr/subprocess_posix.cc +0 -99
  559. data/src/core/lib/gpr/subprocess_windows.cc +0 -126
  560. data/src/core/lib/surface/alarm.cc +0 -137
  561. data/src/core/lib/surface/alarm_internal.h +0 -40
  562. data/src/core/tsi/gts_transport_security.cc +0 -40
  563. data/third_party/boringssl/crypto/aes/aes.c +0 -1142
  564. data/third_party/boringssl/crypto/aes/internal.h +0 -87
  565. data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
  566. data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
  567. data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
  568. data/third_party/boringssl/crypto/bn/add.c +0 -377
  569. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
  570. data/third_party/boringssl/crypto/bn/bn.c +0 -365
  571. data/third_party/boringssl/crypto/bn/cmp.c +0 -239
  572. data/third_party/boringssl/crypto/bn/ctx.c +0 -313
  573. data/third_party/boringssl/crypto/bn/div.c +0 -728
  574. data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
  575. data/third_party/boringssl/crypto/bn/gcd.c +0 -635
  576. data/third_party/boringssl/crypto/bn/generic.c +0 -707
  577. data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
  578. data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
  579. data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
  580. data/third_party/boringssl/crypto/bn/mul.c +0 -871
  581. data/third_party/boringssl/crypto/bn/prime.c +0 -861
  582. data/third_party/boringssl/crypto/bn/random.c +0 -343
  583. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
  584. data/third_party/boringssl/crypto/bn/shift.c +0 -307
  585. data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
  586. data/third_party/boringssl/crypto/cipher/aead.c +0 -156
  587. data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
  588. data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
  589. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
  590. data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
  591. data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
  592. data/third_party/boringssl/crypto/des/des.c +0 -771
  593. data/third_party/boringssl/crypto/digest/digest.c +0 -251
  594. data/third_party/boringssl/crypto/digest/digests.c +0 -358
  595. data/third_party/boringssl/crypto/ec/ec.c +0 -847
  596. data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
  597. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
  598. data/third_party/boringssl/crypto/ec/oct.c +0 -416
  599. data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
  600. data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
  601. data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
  602. data/third_party/boringssl/crypto/ec/simple.c +0 -1118
  603. data/third_party/boringssl/crypto/ec/util-64.c +0 -109
  604. data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
  605. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
  606. data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
  607. data/third_party/boringssl/crypto/md4/md4.c +0 -236
  608. data/third_party/boringssl/crypto/md5/md5.c +0 -285
  609. data/third_party/boringssl/crypto/modes/cbc.c +0 -212
  610. data/third_party/boringssl/crypto/modes/cfb.c +0 -230
  611. data/third_party/boringssl/crypto/modes/ctr.c +0 -219
  612. data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
  613. data/third_party/boringssl/crypto/modes/ofb.c +0 -95
  614. data/third_party/boringssl/crypto/modes/polyval.c +0 -94
  615. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
  616. data/third_party/boringssl/crypto/rand/rand.c +0 -244
  617. data/third_party/boringssl/crypto/rand/urandom.c +0 -335
  618. data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
  619. data/third_party/boringssl/crypto/rsa/padding.c +0 -708
  620. data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
  621. data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
  622. data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
  623. data/third_party/boringssl/crypto/sha/sha1.c +0 -355
  624. data/third_party/boringssl/crypto/sha/sha256.c +0 -329
  625. data/third_party/boringssl/crypto/sha/sha512.c +0 -609
  626. data/third_party/boringssl/crypto/x509/x509type.c +0 -126
  627. data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
  628. data/third_party/boringssl/ssl/handshake_client.c +0 -1883
  629. data/third_party/boringssl/ssl/handshake_server.c +0 -1950
  630. data/third_party/boringssl/ssl/s3_both.c +0 -895
  631. data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
  632. data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
  633. data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
  634. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
  635. data/third_party/boringssl/ssl/tls13_client.c +0 -712
  636. data/third_party/boringssl/ssl/tls13_server.c +0 -680
  637. data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -16,13 +16,14 @@
16
16
  *
17
17
  */
18
18
 
19
- #include <grpc/support/host_port.h>
19
+ #include "src/core/lib/gpr/host_port.h"
20
20
 
21
21
  #include <string.h>
22
22
 
23
23
  #include <grpc/support/alloc.h>
24
24
  #include <grpc/support/log.h>
25
25
  #include <grpc/support/string_util.h>
26
+
26
27
  #include "src/core/lib/gpr/string.h"
27
28
 
28
29
  int gpr_join_host_port(char** out, const char* host, int port) {
@@ -61,7 +62,7 @@ int gpr_split_host_port(const char* name, char** host, char** port) {
61
62
  return 0;
62
63
  }
63
64
  host_start = name + 1;
64
- host_len = (size_t)(rbracket - host_start);
65
+ host_len = static_cast<size_t>(rbracket - host_start);
65
66
  if (memchr(host_start, ':', host_len) == nullptr) {
66
67
  /* Require all bracketed hosts to contain a colon, because a hostname or
67
68
  IPv4 address should never use brackets. */
@@ -72,7 +73,7 @@ int gpr_split_host_port(const char* name, char** host, char** port) {
72
73
  if (colon != nullptr && strchr(colon + 1, ':') == nullptr) {
73
74
  /* Exactly 1 colon. Split into host:port. */
74
75
  host_start = name;
75
- host_len = (size_t)(colon - name);
76
+ host_len = static_cast<size_t>(colon - name);
76
77
  port_start = colon + 1;
77
78
  } else {
78
79
  /* 0 or 2+ colons. Bare hostname or IPv6 litearal. */
@@ -83,7 +84,7 @@ int gpr_split_host_port(const char* name, char** host, char** port) {
83
84
  }
84
85
 
85
86
  /* Allocate return values. */
86
- *host = (char*)gpr_malloc(host_len + 1);
87
+ *host = static_cast<char*>(gpr_malloc(host_len + 1));
87
88
  memcpy(*host, host_start, host_len);
88
89
  (*host)[host_len] = '\0';
89
90
 
@@ -16,15 +16,11 @@
16
16
  *
17
17
  */
18
18
 
19
- #ifndef GRPC_SUPPORT_HOST_PORT_H
20
- #define GRPC_SUPPORT_HOST_PORT_H
19
+ #ifndef GRPC_CORE_LIB_GPR_HOST_PORT_H
20
+ #define GRPC_CORE_LIB_GPR_HOST_PORT_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #ifdef __cplusplus
25
- extern "C" {
26
- #endif
27
-
28
24
  /** Given a host and port, creates a newly-allocated string of the form
29
25
  "host:port" or "[ho:st]:port", depending on whether the host contains colons
30
26
  like an IPv6 literal. If the host is already bracketed, then additional
@@ -35,17 +31,13 @@ extern "C" {
35
31
  destroyed using gpr_free().
36
32
 
37
33
  In the unlikely event of an error, returns -1 and sets *out to NULL. */
38
- GPRAPI int gpr_join_host_port(char** out, const char* host, int port);
34
+ int gpr_join_host_port(char** out, const char* host, int port);
39
35
 
40
36
  /** Given a name in the form "host:port" or "[ho:st]:port", split into hostname
41
37
  and port number, into newly allocated strings, which must later be
42
38
  destroyed using gpr_free().
43
39
  Return 1 on success, 0 on failure. Guarantees *host and *port == NULL on
44
40
  failure. */
45
- GPRAPI int gpr_split_host_port(const char* name, char** host, char** port);
46
-
47
- #ifdef __cplusplus
48
- }
49
- #endif
41
+ int gpr_split_host_port(const char* name, char** host, char** port);
50
42
 
51
- #endif /* GRPC_SUPPORT_HOST_PORT_H */
43
+ #endif /* GRPC_CORE_LIB_GPR_HOST_PORT_H */
@@ -45,7 +45,8 @@ const char* gpr_log_severity_string(gpr_log_severity severity) {
45
45
 
46
46
  void gpr_log_message(const char* file, int line, gpr_log_severity severity,
47
47
  const char* message) {
48
- if ((gpr_atm)severity < gpr_atm_no_barrier_load(&g_min_severity_to_print)) {
48
+ if (static_cast<gpr_atm>(severity) <
49
+ gpr_atm_no_barrier_load(&g_min_severity_to_print)) {
49
50
  return;
50
51
  }
51
52
 
@@ -70,11 +71,11 @@ void gpr_log_verbosity_init() {
70
71
  gpr_atm min_severity_to_print = GPR_LOG_SEVERITY_ERROR;
71
72
  if (verbosity != nullptr) {
72
73
  if (gpr_stricmp(verbosity, "DEBUG") == 0) {
73
- min_severity_to_print = (gpr_atm)GPR_LOG_SEVERITY_DEBUG;
74
+ min_severity_to_print = static_cast<gpr_atm>(GPR_LOG_SEVERITY_DEBUG);
74
75
  } else if (gpr_stricmp(verbosity, "INFO") == 0) {
75
- min_severity_to_print = (gpr_atm)GPR_LOG_SEVERITY_INFO;
76
+ min_severity_to_print = static_cast<gpr_atm>(GPR_LOG_SEVERITY_INFO);
76
77
  } else if (gpr_stricmp(verbosity, "ERROR") == 0) {
77
- min_severity_to_print = (gpr_atm)GPR_LOG_SEVERITY_ERROR;
78
+ min_severity_to_print = static_cast<gpr_atm>(GPR_LOG_SEVERITY_ERROR);
78
79
  }
79
80
  gpr_free(verbosity);
80
81
  }
@@ -67,7 +67,7 @@ void gpr_default_log(gpr_log_func_args* args) {
67
67
  static __thread long tid = 0;
68
68
  if (tid == 0) tid = gettid();
69
69
 
70
- timer = (time_t)now.tv_sec;
70
+ timer = static_cast<time_t>(now.tv_sec);
71
71
  final_slash = strrchr(args->file, '/');
72
72
  if (final_slash == nullptr)
73
73
  display_file = args->file;
@@ -71,6 +71,7 @@ gpr_mpscq_node* gpr_mpscq_pop_and_check_end(gpr_mpscq* q, bool* empty) {
71
71
  gpr_mpscq_push(q, &q->stub);
72
72
  next = (gpr_mpscq_node*)gpr_atm_acq_load(&tail->next);
73
73
  if (next != nullptr) {
74
+ *empty = false;
74
75
  q->tail = next;
75
76
  return tail;
76
77
  }
@@ -36,7 +36,7 @@ uint32_t gpr_murmur_hash3(const void* key, size_t len, uint32_t seed) {
36
36
  const uint32_t c1 = 0xcc9e2d51;
37
37
  const uint32_t c2 = 0x1b873593;
38
38
 
39
- const uint8_t* keyptr = (const uint8_t*)key;
39
+ const uint8_t* keyptr = static_cast<const uint8_t*>(key);
40
40
  const size_t bsize = sizeof(k1);
41
41
  const size_t nblocks = len / bsize;
42
42
 
@@ -58,10 +58,10 @@ uint32_t gpr_murmur_hash3(const void* key, size_t len, uint32_t seed) {
58
58
  /* tail */
59
59
  switch (len & 3) {
60
60
  case 3:
61
- k1 ^= ((uint32_t)keyptr[2]) << 16;
61
+ k1 ^= (static_cast<uint32_t>(keyptr[2])) << 16;
62
62
  /* fallthrough */
63
63
  case 2:
64
- k1 ^= ((uint32_t)keyptr[1]) << 8;
64
+ k1 ^= (static_cast<uint32_t>(keyptr[1])) << 8;
65
65
  /* fallthrough */
66
66
  case 1:
67
67
  k1 ^= keyptr[0];
@@ -72,7 +72,7 @@ uint32_t gpr_murmur_hash3(const void* key, size_t len, uint32_t seed) {
72
72
  };
73
73
 
74
74
  /* finalization */
75
- h1 ^= (uint32_t)len;
75
+ h1 ^= static_cast<uint32_t>(len);
76
76
  FMIX32(h1);
77
77
  return h1;
78
78
  }
@@ -28,7 +28,8 @@
28
28
  #include <grpc/support/log.h>
29
29
  #include <grpc/support/port_platform.h>
30
30
  #include <grpc/support/string_util.h>
31
- #include <grpc/support/useful.h>
31
+
32
+ #include "src/core/lib/gpr/useful.h"
32
33
 
33
34
  char* gpr_strdup(const char* src) {
34
35
  char* dst;
@@ -39,7 +40,7 @@ char* gpr_strdup(const char* src) {
39
40
  }
40
41
 
41
42
  len = strlen(src) + 1;
42
- dst = (char*)gpr_malloc(len);
43
+ dst = static_cast<char*>(gpr_malloc(len));
43
44
 
44
45
  memcpy(dst, src, len);
45
46
 
@@ -60,7 +61,7 @@ static dump_out dump_out_create(void) {
60
61
  static void dump_out_append(dump_out* out, char c) {
61
62
  if (out->length == out->capacity) {
62
63
  out->capacity = GPR_MAX(8, 2 * out->capacity);
63
- out->data = (char*)gpr_realloc(out->data, out->capacity);
64
+ out->data = static_cast<char*>(gpr_realloc(out->data, out->capacity));
64
65
  }
65
66
  out->data[out->length++] = c;
66
67
  }
@@ -68,7 +69,7 @@ static void dump_out_append(dump_out* out, char c) {
68
69
  static void hexdump(dump_out* out, const char* buf, size_t len) {
69
70
  static const char* hex = "0123456789abcdef";
70
71
 
71
- const uint8_t* const beg = (const uint8_t*)buf;
72
+ const uint8_t* const beg = reinterpret_cast<const uint8_t*>(buf);
72
73
  const uint8_t* const end = beg + len;
73
74
  const uint8_t* cur;
74
75
 
@@ -80,7 +81,7 @@ static void hexdump(dump_out* out, const char* buf, size_t len) {
80
81
  }
81
82
 
82
83
  static void asciidump(dump_out* out, const char* buf, size_t len) {
83
- const uint8_t* const beg = (const uint8_t*)buf;
84
+ const uint8_t* const beg = reinterpret_cast<const uint8_t*>(buf);
84
85
  const uint8_t* const end = beg + len;
85
86
  const uint8_t* cur;
86
87
  int out_was_empty = (out->length == 0);
@@ -89,7 +90,7 @@ static void asciidump(dump_out* out, const char* buf, size_t len) {
89
90
  dump_out_append(out, '\'');
90
91
  }
91
92
  for (cur = beg; cur != end; ++cur) {
92
- dump_out_append(out, (char)(isprint(*cur) ? *(char*)cur : '.'));
93
+ dump_out_append(out, (isprint(*cur) ? *(char*)cur : '.'));
93
94
  }
94
95
  if (!out_was_empty) {
95
96
  dump_out_append(out, '\'');
@@ -117,7 +118,7 @@ int gpr_parse_bytes_to_uint32(const char* buf, size_t len, uint32_t* result) {
117
118
 
118
119
  for (i = 0; i < len; i++) {
119
120
  if (buf[i] < '0' || buf[i] > '9') return 0; /* bad char */
120
- new_val = 10 * out + (uint32_t)(buf[i] - '0');
121
+ new_val = 10 * out + static_cast<uint32_t>(buf[i] - '0');
121
122
  if (new_val < out) return 0; /* overflow */
122
123
  out = new_val;
123
124
  }
@@ -147,7 +148,7 @@ int gpr_ltoa(long value, char* string) {
147
148
 
148
149
  sign = value < 0 ? -1 : 1;
149
150
  while (value) {
150
- string[i++] = (char)('0' + sign * (value % 10));
151
+ string[i++] = static_cast<char>('0' + sign * (value % 10));
151
152
  value /= 10;
152
153
  }
153
154
  if (sign < 0) string[i++] = '-';
@@ -168,7 +169,7 @@ int int64_ttoa(int64_t value, char* string) {
168
169
 
169
170
  sign = value < 0 ? -1 : 1;
170
171
  while (value) {
171
- string[i++] = (char)('0' + sign * (value % 10));
172
+ string[i++] = static_cast<char>('0' + sign * (value % 10));
172
173
  value /= 10;
173
174
  }
174
175
  if (sign < 0) string[i++] = '-';
@@ -181,13 +182,13 @@ int gpr_parse_nonnegative_int(const char* value) {
181
182
  char* end;
182
183
  long result = strtol(value, &end, 0);
183
184
  if (*end != '\0' || result < 0 || result > INT_MAX) return -1;
184
- return (int)result;
185
+ return static_cast<int>(result);
185
186
  }
186
187
 
187
188
  char* gpr_leftpad(const char* str, char flag, size_t length) {
188
189
  const size_t str_length = strlen(str);
189
190
  const size_t out_length = str_length > length ? str_length : length;
190
- char* out = (char*)gpr_malloc(out_length + 1);
191
+ char* out = static_cast<char*>(gpr_malloc(out_length + 1));
191
192
  memset(out, flag, out_length - str_length);
192
193
  memcpy(out + out_length - str_length, str, str_length);
193
194
  out[out_length] = 0;
@@ -211,7 +212,7 @@ char* gpr_strjoin_sep(const char** strs, size_t nstrs, const char* sep,
211
212
  if (nstrs > 0) {
212
213
  out_length += sep_len * (nstrs - 1); /* separators */
213
214
  }
214
- out = (char*)gpr_malloc(out_length);
215
+ out = static_cast<char*>(gpr_malloc(out_length));
215
216
  out_length = 0;
216
217
  for (i = 0; i < nstrs; i++) {
217
218
  const size_t slen = strlen(strs[i]);
@@ -242,7 +243,8 @@ void gpr_strvec_destroy(gpr_strvec* sv) {
242
243
  void gpr_strvec_add(gpr_strvec* sv, char* str) {
243
244
  if (sv->count == sv->capacity) {
244
245
  sv->capacity = GPR_MAX(sv->capacity + 8, sv->capacity * 2);
245
- sv->strs = (char**)gpr_realloc(sv->strs, sizeof(char*) * sv->capacity);
246
+ sv->strs = static_cast<char**>(
247
+ gpr_realloc(sv->strs, sizeof(char*) * sv->capacity));
246
248
  }
247
249
  sv->strs[sv->count++] = str;
248
250
  }
@@ -264,12 +266,13 @@ int gpr_stricmp(const char* a, const char* b) {
264
266
 
265
267
  static void add_string_to_split(const char* beg, const char* end, char*** strs,
266
268
  size_t* nstrs, size_t* capstrs) {
267
- char* out = (char*)gpr_malloc((size_t)(end - beg) + 1);
268
- memcpy(out, beg, (size_t)(end - beg));
269
+ char* out =
270
+ static_cast<char*>(gpr_malloc(static_cast<size_t>(end - beg) + 1));
271
+ memcpy(out, beg, static_cast<size_t>(end - beg));
269
272
  out[end - beg] = 0;
270
273
  if (*nstrs == *capstrs) {
271
274
  *capstrs = GPR_MAX(8, 2 * *capstrs);
272
- *strs = (char**)gpr_realloc(*strs, sizeof(*strs) * *capstrs);
275
+ *strs = static_cast<char**>(gpr_realloc(*strs, sizeof(*strs) * *capstrs));
273
276
  }
274
277
  (*strs)[*nstrs] = out;
275
278
  ++*nstrs;
@@ -43,8 +43,8 @@ int gpr_asprintf(char** strp, const char* format, ...) {
43
43
  }
44
44
 
45
45
  /* Allocate a new buffer, with space for the NUL terminator. */
46
- strp_buflen = (size_t)ret + 1;
47
- if ((*strp = (char*)gpr_malloc(strp_buflen)) == nullptr) {
46
+ strp_buflen = static_cast<size_t>(ret) + 1;
47
+ if ((*strp = static_cast<char*>(gpr_malloc(strp_buflen))) == nullptr) {
48
48
  /* This shouldn't happen, because gpr_malloc() calls abort(). */
49
49
  return -1;
50
50
  }
@@ -59,7 +59,7 @@ int gpr_asprintf(char** strp, const char* format, ...) {
59
59
  va_start(args, format);
60
60
  ret = vsnprintf(*strp, strp_buflen, format, args);
61
61
  va_end(args);
62
- if ((size_t)ret == strp_buflen - 1) {
62
+ if (static_cast<size_t>(ret) == strp_buflen - 1) {
63
63
  return ret;
64
64
  }
65
65
 
@@ -43,23 +43,19 @@ void gpr_mu_lock(gpr_mu* mu) {
43
43
  #ifdef GPR_LOW_LEVEL_COUNTERS
44
44
  GPR_ATM_INC_COUNTER(gpr_mu_locks);
45
45
  #endif
46
- GPR_TIMER_BEGIN("gpr_mu_lock", 0);
46
+ GPR_TIMER_SCOPE("gpr_mu_lock", 0);
47
47
  GPR_ASSERT(pthread_mutex_lock(mu) == 0);
48
- GPR_TIMER_END("gpr_mu_lock", 0);
49
48
  }
50
49
 
51
50
  void gpr_mu_unlock(gpr_mu* mu) {
52
- GPR_TIMER_BEGIN("gpr_mu_unlock", 0);
51
+ GPR_TIMER_SCOPE("gpr_mu_unlock", 0);
53
52
  GPR_ASSERT(pthread_mutex_unlock(mu) == 0);
54
- GPR_TIMER_END("gpr_mu_unlock", 0);
55
53
  }
56
54
 
57
55
  int gpr_mu_trylock(gpr_mu* mu) {
58
- int err;
59
- GPR_TIMER_BEGIN("gpr_mu_trylock", 0);
60
- err = pthread_mutex_trylock(mu);
56
+ GPR_TIMER_SCOPE("gpr_mu_trylock", 0);
57
+ int err = pthread_mutex_trylock(mu);
61
58
  GPR_ASSERT(err == 0 || err == EBUSY);
62
- GPR_TIMER_END("gpr_mu_trylock", 0);
63
59
  return err == 0;
64
60
  }
65
61
 
@@ -88,7 +84,7 @@ int gpr_cv_wait(gpr_cv* cv, gpr_mu* mu, gpr_timespec abs_deadline) {
88
84
  #else
89
85
  abs_deadline = gpr_convert_clock_type(abs_deadline, GPR_CLOCK_REALTIME);
90
86
  #endif // GPR_LINUX
91
- abs_deadline_ts.tv_sec = (time_t)abs_deadline.tv_sec;
87
+ abs_deadline_ts.tv_sec = static_cast<time_t>(abs_deadline.tv_sec);
92
88
  abs_deadline_ts.tv_nsec = abs_deadline.tv_nsec;
93
89
  err = pthread_cond_timedwait(cv, mu, &abs_deadline_ts);
94
90
  }
@@ -16,11 +16,11 @@
16
16
  *
17
17
  */
18
18
 
19
- /* Posix implementation for gpr threads. */
19
+ /* Platform-independent features for gpr threads. */
20
20
 
21
- #include <string.h>
21
+ #include "src/core/lib/gpr/thd.h"
22
22
 
23
- #include <grpc/support/thd.h>
23
+ #include <string.h>
24
24
 
25
25
  enum { GPR_THD_JOINABLE = 1 };
26
26
 
@@ -16,24 +16,17 @@
16
16
  *
17
17
  */
18
18
 
19
- #ifndef GRPC_SUPPORT_THD_H
20
- #define GRPC_SUPPORT_THD_H
21
- /** Thread interface for GPR.
19
+ #ifndef GRPC_CORE_LIB_GPR_THD_H
20
+ #define GRPC_CORE_LIB_GPR_THD_H
21
+ /** Internal thread interface for GPR.
22
22
 
23
23
  Types
24
- gpr_thd_id a thread identifier.
25
- (Currently no calls take a thread identifier.
26
- It exists for future extensibility.)
27
24
  gpr_thd_options options used when creating a thread
28
25
  */
29
26
 
30
27
  #include <grpc/support/port_platform.h>
31
-
32
- #ifdef __cplusplus
33
- extern "C" {
34
- #endif
35
-
36
- typedef uintptr_t gpr_thd_id;
28
+ #include <grpc/support/thd_id.h>
29
+ #include <grpc/support/time.h>
37
30
 
38
31
  /** Thread creation options. */
39
32
  typedef struct {
@@ -46,34 +39,33 @@ typedef struct {
46
39
  that support thread naming.
47
40
  If options==NULL, default options are used.
48
41
  The thread is immediately runnable, and exits when (*thd_body)() returns. */
49
- GPRAPI int gpr_thd_new(gpr_thd_id* t, const char* thd_name,
50
- void (*thd_body)(void* arg), void* arg,
51
- const gpr_thd_options* options);
42
+ int gpr_thd_new(gpr_thd_id* t, const char* thd_name,
43
+ void (*thd_body)(void* arg), void* arg,
44
+ const gpr_thd_options* options);
52
45
 
53
46
  /** Return a gpr_thd_options struct with all fields set to defaults. */
54
- GPRAPI gpr_thd_options gpr_thd_options_default(void);
47
+ gpr_thd_options gpr_thd_options_default(void);
55
48
 
56
49
  /** Set the thread to become detached on startup - this is the default. */
57
- GPRAPI void gpr_thd_options_set_detached(gpr_thd_options* options);
50
+ void gpr_thd_options_set_detached(gpr_thd_options* options);
58
51
 
59
52
  /** Set the thread to become joinable - mutually exclusive with detached. */
60
- GPRAPI void gpr_thd_options_set_joinable(gpr_thd_options* options);
53
+ void gpr_thd_options_set_joinable(gpr_thd_options* options);
61
54
 
62
55
  /** Returns non-zero if the option detached is set. */
63
- GPRAPI int gpr_thd_options_is_detached(const gpr_thd_options* options);
56
+ int gpr_thd_options_is_detached(const gpr_thd_options* options);
64
57
 
65
58
  /** Returns non-zero if the option joinable is set. */
66
- GPRAPI int gpr_thd_options_is_joinable(const gpr_thd_options* options);
67
-
68
- /** Returns the identifier of the current thread. */
69
- GPRAPI gpr_thd_id gpr_thd_currentid(void);
59
+ int gpr_thd_options_is_joinable(const gpr_thd_options* options);
70
60
 
71
61
  /** Blocks until the specified thread properly terminates.
72
62
  Calling this on a detached thread has unpredictable results. */
73
- GPRAPI void gpr_thd_join(gpr_thd_id t);
63
+ void gpr_thd_join(gpr_thd_id t);
64
+
65
+ /* Internal interfaces between modules within the gpr support library. */
66
+ void gpr_thd_init();
74
67
 
75
- #ifdef __cplusplus
76
- }
77
- #endif
68
+ /* Wait for all outstanding threads to finish, up to deadline */
69
+ int gpr_await_threads(gpr_timespec deadline);
78
70
 
79
- #endif /* GRPC_SUPPORT_THD_H */
71
+ #endif /* GRPC_CORE_LIB_GPR_THD_H */
@@ -22,16 +22,18 @@
22
22
 
23
23
  #ifdef GPR_POSIX_SYNC
24
24
 
25
+ #include "src/core/lib/gpr/thd.h"
26
+
25
27
  #include <grpc/support/alloc.h>
26
28
  #include <grpc/support/log.h>
27
29
  #include <grpc/support/sync.h>
28
- #include <grpc/support/thd.h>
29
- #include <grpc/support/useful.h>
30
+ #include <grpc/support/thd_id.h>
30
31
  #include <pthread.h>
31
32
  #include <stdlib.h>
32
33
  #include <string.h>
33
34
 
34
35
  #include "src/core/lib/gpr/fork.h"
36
+ #include "src/core/lib/gpr/useful.h"
35
37
 
36
38
  static gpr_mu g_mu;
37
39
  static gpr_cv g_cv;
@@ -49,7 +51,7 @@ static void dec_thd_count();
49
51
 
50
52
  /* Body of every thread started via gpr_thd_new. */
51
53
  static void* thread_body(void* v) {
52
- struct thd_arg a = *(struct thd_arg*)v;
54
+ struct thd_arg a = *static_cast<struct thd_arg*>(v);
53
55
  free(v);
54
56
  if (a.name != nullptr) {
55
57
  #if GPR_APPLE_PTHREAD_NAME
@@ -77,7 +79,7 @@ int gpr_thd_new(gpr_thd_id* t, const char* thd_name,
77
79
  pthread_t p;
78
80
  /* don't use gpr_malloc as we may cause an infinite recursion with
79
81
  * the profiling code */
80
- struct thd_arg* a = (struct thd_arg*)malloc(sizeof(*a));
82
+ struct thd_arg* a = static_cast<struct thd_arg*>(malloc(sizeof(*a)));
81
83
  GPR_ASSERT(a != nullptr);
82
84
  a->body = thd_body;
83
85
  a->arg = arg;