grpc 1.64.3 → 1.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (632) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +57 -58
  3. data/include/grpc/event_engine/event_engine.h +13 -6
  4. data/include/grpc/impl/channel_arg_names.h +7 -3
  5. data/include/grpc/module.modulemap +1 -0
  6. data/include/grpc/passive_listener.h +62 -0
  7. data/include/grpc/support/log.h +7 -17
  8. data/include/grpc/support/port_platform.h +3 -0
  9. data/src/core/channelz/channel_trace.cc +1 -1
  10. data/src/core/channelz/channel_trace.h +1 -1
  11. data/src/core/channelz/channelz.cc +3 -3
  12. data/src/core/channelz/channelz.h +7 -7
  13. data/src/core/channelz/channelz_registry.cc +4 -3
  14. data/src/core/client_channel/backup_poller.cc +4 -5
  15. data/src/core/client_channel/client_channel.cc +1324 -0
  16. data/src/core/client_channel/client_channel.h +243 -0
  17. data/src/core/client_channel/client_channel_filter.cc +266 -709
  18. data/src/core/client_channel/client_channel_filter.h +11 -64
  19. data/src/core/client_channel/client_channel_internal.h +16 -5
  20. data/src/core/client_channel/client_channel_plugin.cc +1 -14
  21. data/src/core/client_channel/client_channel_service_config.h +3 -3
  22. data/src/core/client_channel/config_selector.cc +1 -1
  23. data/src/core/client_channel/config_selector.h +1 -1
  24. data/src/core/client_channel/dynamic_filters.cc +3 -3
  25. data/src/core/client_channel/dynamic_filters.h +1 -3
  26. data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
  27. data/src/core/client_channel/load_balanced_call_destination.h +49 -0
  28. data/src/core/client_channel/retry_filter.cc +2 -9
  29. data/src/core/client_channel/retry_filter.h +2 -7
  30. data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
  31. data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
  32. data/src/core/client_channel/retry_service_config.cc +4 -5
  33. data/src/core/client_channel/retry_service_config.h +3 -3
  34. data/src/core/client_channel/subchannel.cc +220 -112
  35. data/src/core/client_channel/subchannel.h +31 -18
  36. data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
  37. data/src/core/client_channel/subchannel_pool_interface.h +2 -4
  38. data/src/core/client_channel/subchannel_stream_client.cc +36 -49
  39. data/src/core/client_channel/subchannel_stream_client.h +2 -4
  40. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
  41. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
  42. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
  43. data/src/core/ext/filters/census/grpc_context.cc +2 -4
  44. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
  45. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
  46. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
  47. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
  48. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
  49. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
  50. data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
  51. data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
  52. data/src/core/ext/filters/http/client_authority_filter.h +1 -0
  53. data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
  54. data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
  55. data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
  56. data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
  57. data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
  58. data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
  59. data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
  60. data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
  61. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
  62. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  63. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
  64. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
  65. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
  66. data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
  67. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
  68. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
  69. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
  70. data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
  71. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
  72. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
  73. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
  74. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
  75. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
  76. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
  77. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
  78. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
  79. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
  80. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
  81. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
  82. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
  83. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
  84. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
  85. data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
  86. data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
  87. data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
  88. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
  89. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
  90. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
  91. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
  92. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
  93. data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
  94. data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
  95. data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
  96. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
  97. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
  98. data/src/core/handshaker/handshaker.cc +6 -14
  99. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
  100. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
  101. data/src/core/handshaker/security/secure_endpoint.cc +38 -32
  102. data/src/core/handshaker/security/secure_endpoint.h +0 -2
  103. data/src/core/handshaker/security/security_handshaker.cc +25 -37
  104. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
  105. data/src/core/lib/address_utils/parse_address.cc +27 -39
  106. data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
  107. data/src/core/lib/avl/avl.h +1 -1
  108. data/src/core/lib/channel/channel_args.cc +13 -17
  109. data/src/core/lib/channel/channel_args.h +19 -8
  110. data/src/core/lib/channel/channel_stack.cc +5 -63
  111. data/src/core/lib/channel/channel_stack.h +13 -37
  112. data/src/core/lib/channel/channel_stack_builder.h +0 -5
  113. data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
  114. data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
  115. data/src/core/lib/channel/connected_channel.cc +37 -676
  116. data/src/core/lib/channel/promise_based_filter.cc +41 -47
  117. data/src/core/lib/channel/promise_based_filter.h +124 -477
  118. data/src/core/lib/channel/status_util.cc +1 -1
  119. data/src/core/lib/compression/compression.cc +1 -1
  120. data/src/core/lib/compression/message_compress.cc +6 -6
  121. data/src/core/lib/config/config_vars.cc +3 -8
  122. data/src/core/lib/config/config_vars.h +1 -5
  123. data/src/core/lib/debug/event_log.h +1 -1
  124. data/src/core/lib/debug/trace.cc +43 -59
  125. data/src/core/lib/debug/trace.h +2 -97
  126. data/src/core/lib/debug/trace_flags.cc +255 -0
  127. data/src/core/lib/debug/trace_flags.h +133 -0
  128. data/src/core/lib/debug/trace_impl.h +115 -0
  129. data/src/core/lib/event_engine/ares_resolver.cc +5 -7
  130. data/src/core/lib/event_engine/ares_resolver.h +1 -3
  131. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
  132. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
  133. data/src/core/lib/event_engine/event_engine.cc +29 -4
  134. data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
  135. data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
  136. data/src/core/lib/event_engine/forkable.cc +4 -5
  137. data/src/core/lib/event_engine/forkable.h +0 -11
  138. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
  139. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
  140. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
  141. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
  142. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
  143. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
  144. data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
  145. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
  146. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
  147. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
  148. data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
  149. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
  150. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
  151. data/src/core/lib/event_engine/shim.cc +1 -1
  152. data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
  153. data/src/core/lib/event_engine/thread_local.h +1 -1
  154. data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
  155. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
  156. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
  157. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
  158. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
  159. data/src/core/lib/event_engine/trace.h +6 -17
  160. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  161. data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
  162. data/src/core/lib/event_engine/windows/win_socket.h +4 -5
  163. data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
  164. data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
  165. data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
  166. data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
  167. data/src/core/lib/experiments/experiments.cc +35 -151
  168. data/src/core/lib/experiments/experiments.h +12 -45
  169. data/src/core/lib/gprpp/bitset.h +1 -1
  170. data/src/core/lib/gprpp/crash.cc +2 -3
  171. data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
  172. data/src/core/lib/gprpp/dump_args.cc +54 -0
  173. data/src/core/lib/gprpp/dump_args.h +69 -0
  174. data/src/core/lib/gprpp/glob.cc +70 -0
  175. data/src/core/lib/gprpp/glob.h +29 -0
  176. data/src/core/lib/gprpp/per_cpu.cc +1 -1
  177. data/src/core/lib/gprpp/posix/stat.cc +3 -4
  178. data/src/core/lib/gprpp/posix/thd.cc +8 -9
  179. data/src/core/lib/gprpp/ref_counted.h +30 -22
  180. data/src/core/lib/gprpp/single_set_ptr.h +5 -3
  181. data/src/core/lib/gprpp/status_helper.cc +11 -30
  182. data/src/core/lib/gprpp/status_helper.h +3 -31
  183. data/src/core/lib/gprpp/time.cc +3 -4
  184. data/src/core/lib/gprpp/time.h +3 -2
  185. data/src/core/lib/gprpp/unique_type_name.h +1 -1
  186. data/src/core/lib/gprpp/validation_errors.cc +10 -1
  187. data/src/core/lib/gprpp/validation_errors.h +11 -0
  188. data/src/core/lib/gprpp/windows/stat.cc +3 -4
  189. data/src/core/lib/gprpp/windows/thd.cc +3 -2
  190. data/src/core/lib/gprpp/work_serializer.cc +48 -57
  191. data/src/core/lib/iomgr/buffer_list.cc +4 -2
  192. data/src/core/lib/iomgr/call_combiner.cc +18 -27
  193. data/src/core/lib/iomgr/call_combiner.h +1 -3
  194. data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
  195. data/src/core/lib/iomgr/closure.h +2 -4
  196. data/src/core/lib/iomgr/combiner.cc +6 -8
  197. data/src/core/lib/iomgr/combiner.h +0 -2
  198. data/src/core/lib/iomgr/endpoint.cc +0 -6
  199. data/src/core/lib/iomgr/endpoint.h +0 -2
  200. data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
  201. data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
  202. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
  203. data/src/core/lib/iomgr/error.cc +13 -21
  204. data/src/core/lib/iomgr/error.h +1 -1
  205. data/src/core/lib/iomgr/ev_apple.cc +3 -5
  206. data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
  207. data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
  208. data/src/core/lib/iomgr/ev_posix.cc +8 -9
  209. data/src/core/lib/iomgr/ev_posix.h +10 -7
  210. data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
  211. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
  212. data/src/core/lib/iomgr/exec_ctx.cc +2 -2
  213. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  214. data/src/core/lib/iomgr/executor.cc +6 -15
  215. data/src/core/lib/iomgr/executor.h +1 -1
  216. data/src/core/lib/iomgr/fork_posix.cc +8 -10
  217. data/src/core/lib/iomgr/fork_windows.cc +3 -1
  218. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
  219. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
  220. data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
  221. data/src/core/lib/iomgr/iocp_windows.cc +4 -3
  222. data/src/core/lib/iomgr/iomgr.cc +13 -17
  223. data/src/core/lib/iomgr/lockfree_event.cc +3 -5
  224. data/src/core/lib/iomgr/pollset.h +0 -2
  225. data/src/core/lib/iomgr/pollset_windows.cc +0 -2
  226. data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
  227. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  228. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  229. data/src/core/lib/iomgr/socket_mutator.cc +1 -1
  230. data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
  231. data/src/core/lib/iomgr/socket_windows.cc +4 -6
  232. data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
  233. data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
  234. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
  235. data/src/core/lib/iomgr/tcp_posix.cc +57 -84
  236. data/src/core/lib/iomgr/tcp_posix.h +0 -2
  237. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
  238. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
  239. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
  240. data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
  241. data/src/core/lib/iomgr/tcp_windows.cc +25 -41
  242. data/src/core/lib/iomgr/timer_generic.cc +17 -20
  243. data/src/core/lib/iomgr/timer_heap.cc +1 -1
  244. data/src/core/lib/iomgr/timer_manager.cc +17 -30
  245. data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
  246. data/src/core/lib/iomgr/vsock.cc +1 -1
  247. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
  248. data/src/core/lib/promise/activity.h +27 -4
  249. data/src/core/lib/promise/cancel_callback.h +24 -0
  250. data/src/core/lib/promise/context.h +11 -0
  251. data/src/core/lib/promise/detail/basic_seq.h +1 -2
  252. data/src/core/lib/promise/detail/join_state.h +354 -398
  253. data/src/core/lib/promise/detail/promise_like.h +6 -5
  254. data/src/core/lib/promise/detail/seq_state.h +1178 -1178
  255. data/src/core/lib/promise/for_each.h +6 -6
  256. data/src/core/lib/promise/interceptor_list.h +6 -7
  257. data/src/core/lib/promise/latch.h +9 -9
  258. data/src/core/lib/promise/map.h +17 -0
  259. data/src/core/lib/promise/observable.h +182 -0
  260. data/src/core/lib/promise/party.cc +7 -8
  261. data/src/core/lib/promise/party.h +10 -8
  262. data/src/core/lib/promise/pipe.h +16 -35
  263. data/src/core/lib/promise/promise.h +1 -0
  264. data/src/core/lib/promise/status_flag.h +2 -0
  265. data/src/core/lib/resource_quota/arena.cc +56 -79
  266. data/src/core/lib/resource_quota/arena.h +118 -209
  267. data/src/core/lib/resource_quota/memory_quota.cc +12 -13
  268. data/src/core/lib/resource_quota/memory_quota.h +2 -3
  269. data/src/core/lib/resource_quota/periodic_update.cc +1 -1
  270. data/src/core/lib/resource_quota/resource_quota.h +1 -1
  271. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  272. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
  273. data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
  274. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
  275. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
  276. data/src/core/lib/security/authorization/matchers.cc +3 -3
  277. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
  278. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
  279. data/src/core/lib/security/context/security_context.cc +12 -13
  280. data/src/core/lib/security/context/security_context.h +31 -8
  281. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  282. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
  283. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
  284. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
  285. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
  286. data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
  287. data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
  288. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
  289. data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
  290. data/src/core/lib/security/credentials/credentials.cc +6 -6
  291. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
  292. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
  293. data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
  294. data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
  295. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
  296. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
  297. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
  298. data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
  299. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
  300. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
  301. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
  302. data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
  303. data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
  304. data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
  305. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
  306. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
  307. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
  308. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
  309. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  310. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
  311. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
  312. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
  313. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
  314. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
  315. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  316. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
  317. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
  318. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
  319. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
  320. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
  321. data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
  322. data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
  323. data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
  324. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
  325. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
  326. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
  327. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
  328. data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
  329. data/src/core/lib/security/security_connector/security_connector.cc +1 -4
  330. data/src/core/lib/security/security_connector/security_connector.h +1 -3
  331. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
  332. data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
  333. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
  334. data/src/core/lib/security/transport/auth_filters.h +1 -0
  335. data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
  336. data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
  337. data/src/core/lib/security/util/json_util.h +1 -1
  338. data/src/core/lib/slice/slice.h +1 -1
  339. data/src/core/lib/slice/slice_refcount.h +2 -4
  340. data/src/core/lib/slice/slice_string_helpers.cc +1 -1
  341. data/src/core/lib/surface/api_trace.h +1 -3
  342. data/src/core/lib/surface/call.cc +64 -3738
  343. data/src/core/lib/surface/call.h +41 -143
  344. data/src/core/lib/surface/call_log_batch.cc +1 -1
  345. data/src/core/lib/surface/call_utils.cc +276 -0
  346. data/src/core/lib/surface/call_utils.h +449 -0
  347. data/src/core/lib/surface/channel.cc +8 -3
  348. data/src/core/lib/surface/channel.h +10 -7
  349. data/src/core/lib/surface/channel_create.cc +14 -6
  350. data/src/core/lib/surface/channel_create.h +3 -2
  351. data/src/core/lib/surface/channel_init.cc +21 -77
  352. data/src/core/lib/surface/channel_init.h +19 -97
  353. data/src/core/lib/surface/client_call.cc +419 -0
  354. data/src/core/lib/surface/client_call.h +180 -0
  355. data/src/core/lib/surface/completion_queue.cc +28 -33
  356. data/src/core/lib/surface/completion_queue.h +0 -8
  357. data/src/core/lib/surface/filter_stack_call.cc +1157 -0
  358. data/src/core/lib/surface/filter_stack_call.h +369 -0
  359. data/src/core/lib/surface/init.cc +7 -6
  360. data/src/core/lib/surface/lame_client.cc +1 -1
  361. data/src/core/lib/surface/legacy_channel.cc +40 -27
  362. data/src/core/lib/surface/legacy_channel.h +9 -18
  363. data/src/core/lib/surface/server_call.cc +222 -0
  364. data/src/core/lib/surface/server_call.h +167 -0
  365. data/src/core/lib/surface/version.cc +2 -2
  366. data/src/core/lib/transport/bdp_estimator.cc +3 -5
  367. data/src/core/lib/transport/bdp_estimator.h +2 -4
  368. data/src/core/lib/transport/call_arena_allocator.h +9 -7
  369. data/src/core/lib/transport/call_destination.h +76 -0
  370. data/src/core/lib/transport/call_filters.cc +28 -10
  371. data/src/core/lib/transport/call_filters.h +128 -22
  372. data/src/core/lib/transport/call_spine.cc +5 -6
  373. data/src/core/lib/transport/call_spine.h +159 -334
  374. data/src/core/lib/transport/connectivity_state.cc +8 -10
  375. data/src/core/lib/transport/connectivity_state.h +0 -2
  376. data/src/core/lib/transport/interception_chain.cc +155 -0
  377. data/src/core/lib/transport/interception_chain.h +236 -0
  378. data/src/core/lib/transport/metadata_batch.h +10 -1
  379. data/src/core/lib/transport/metadata_info.h +1 -1
  380. data/src/core/lib/transport/transport.cc +3 -6
  381. data/src/core/lib/transport/transport.h +43 -40
  382. data/src/core/load_balancing/child_policy_handler.cc +8 -8
  383. data/src/core/load_balancing/endpoint_list.cc +5 -5
  384. data/src/core/load_balancing/endpoint_list.h +1 -1
  385. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
  386. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
  387. data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
  388. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
  389. data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
  390. data/src/core/load_balancing/health_check_client.cc +10 -13
  391. data/src/core/load_balancing/lb_policy.cc +5 -8
  392. data/src/core/load_balancing/lb_policy.h +19 -3
  393. data/src/core/load_balancing/lb_policy_factory.h +1 -1
  394. data/src/core/load_balancing/lb_policy_registry.cc +2 -3
  395. data/src/core/load_balancing/lb_policy_registry.h +1 -1
  396. data/src/core/load_balancing/oob_backend_metric.cc +2 -4
  397. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
  398. data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
  399. data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
  400. data/src/core/load_balancing/priority/priority.cc +26 -28
  401. data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
  402. data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
  403. data/src/core/load_balancing/rls/rls.cc +82 -82
  404. data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
  405. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
  406. data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
  407. data/src/core/load_balancing/xds/cds.cc +14 -16
  408. data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
  409. data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
  410. data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
  411. data/src/core/load_balancing/xds/xds_override_host.h +3 -3
  412. data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
  413. data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
  414. data/src/core/resolver/binder/binder_resolver.cc +3 -2
  415. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
  416. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
  417. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
  418. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
  419. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  420. data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
  421. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
  422. data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
  423. data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
  424. data/src/core/resolver/endpoint_addresses.cc +1 -1
  425. data/src/core/resolver/fake/fake_resolver.cc +1 -1
  426. data/src/core/resolver/fake/fake_resolver.h +1 -1
  427. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
  428. data/src/core/resolver/polling_resolver.cc +30 -35
  429. data/src/core/resolver/resolver.cc +2 -6
  430. data/src/core/resolver/resolver.h +0 -2
  431. data/src/core/resolver/resolver_registry.cc +6 -8
  432. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
  433. data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
  434. data/src/core/resolver/xds/xds_resolver.cc +13 -15
  435. data/src/core/server/server.cc +269 -389
  436. data/src/core/server/server.h +37 -19
  437. data/src/core/server/server_call_tracer_filter.cc +7 -14
  438. data/src/core/server/server_config_selector.h +1 -1
  439. data/src/core/server/server_config_selector_filter.cc +3 -3
  440. data/src/core/server/server_interface.h +2 -0
  441. data/src/core/server/xds_channel_stack_modifier.cc +1 -1
  442. data/src/core/server/xds_channel_stack_modifier.h +1 -1
  443. data/src/core/server/xds_server_config_fetcher.cc +1 -4
  444. data/src/core/service_config/service_config.h +1 -1
  445. data/src/core/service_config/service_config_call_data.h +13 -11
  446. data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
  447. data/src/core/service_config/service_config_impl.cc +5 -5
  448. data/src/core/service_config/service_config_impl.h +1 -1
  449. data/src/core/service_config/service_config_parser.cc +3 -6
  450. data/src/core/service_config/service_config_parser.h +1 -1
  451. data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
  452. data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
  453. data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
  454. data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
  455. data/src/core/telemetry/metrics.cc +178 -0
  456. data/src/core/telemetry/metrics.h +562 -0
  457. data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
  458. data/src/core/{lib/debug → telemetry}/stats.h +5 -5
  459. data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
  460. data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
  461. data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
  462. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
  463. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
  464. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
  465. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
  466. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
  467. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
  468. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
  469. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  470. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
  471. data/src/core/tsi/fake_transport_security.cc +14 -17
  472. data/src/core/tsi/local_transport_security.cc +6 -5
  473. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
  474. data/src/core/tsi/ssl_transport_security.cc +76 -81
  475. data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
  476. data/src/core/tsi/ssl_transport_security_utils.h +11 -0
  477. data/src/core/tsi/transport_security.cc +0 -4
  478. data/src/core/tsi/transport_security.h +0 -2
  479. data/src/core/tsi/transport_security_interface.h +0 -4
  480. data/src/core/{lib/gpr → util}/alloc.h +3 -3
  481. data/src/core/{lib/gpr → util}/android/log.cc +0 -19
  482. data/src/core/{lib/gpr → util}/atm.cc +1 -1
  483. data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
  484. data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
  485. data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
  486. data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
  487. data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
  488. data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
  489. data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
  490. data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
  491. data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
  492. data/src/core/{lib/http → util/http_client}/parser.h +5 -6
  493. data/src/core/{lib → util}/json/json.h +5 -4
  494. data/src/core/{lib → util}/json/json_args.h +5 -5
  495. data/src/core/{lib → util}/json/json_channel_args.h +6 -6
  496. data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
  497. data/src/core/{lib → util}/json/json_object_loader.h +7 -7
  498. data/src/core/{lib → util}/json/json_reader.cc +3 -2
  499. data/src/core/{lib → util}/json/json_reader.h +6 -6
  500. data/src/core/{lib → util}/json/json_util.cc +4 -4
  501. data/src/core/{lib → util}/json/json_util.h +6 -6
  502. data/src/core/{lib → util}/json/json_writer.cc +3 -3
  503. data/src/core/{lib → util}/json/json_writer.h +6 -6
  504. data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
  505. data/src/core/util/log.cc +165 -0
  506. data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
  507. data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
  508. data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
  509. data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
  510. data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
  511. data/src/core/{lib/gpr → util}/spinlock.h +3 -3
  512. data/src/core/{lib/gpr → util}/string.cc +2 -2
  513. data/src/core/{lib/gpr → util}/string.h +3 -3
  514. data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
  515. data/src/core/{lib/gpr → util}/time_precise.h +3 -3
  516. data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
  517. data/src/core/{lib/gpr → util}/useful.h +3 -3
  518. data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
  519. data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
  520. data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
  521. data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
  522. data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
  523. data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
  524. data/src/core/xds/grpc/certificate_provider_store.h +4 -4
  525. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  526. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
  527. data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
  528. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
  529. data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
  530. data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
  531. data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
  532. data/src/core/xds/grpc/xds_client_grpc.h +2 -2
  533. data/src/core/xds/grpc/xds_cluster.cc +4 -5
  534. data/src/core/xds/grpc/xds_cluster.h +1 -1
  535. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
  536. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
  537. data/src/core/xds/grpc/xds_common_types.cc +1 -1
  538. data/src/core/xds/grpc/xds_common_types.h +1 -1
  539. data/src/core/xds/grpc/xds_endpoint.cc +4 -5
  540. data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
  541. data/src/core/xds/grpc/xds_http_filters.h +2 -2
  542. data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
  543. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
  544. data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
  545. data/src/core/xds/grpc/xds_listener.cc +4 -6
  546. data/src/core/xds/grpc/xds_route_config.cc +7 -8
  547. data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
  548. data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
  549. data/src/core/xds/xds_client/xds_api.cc +5 -9
  550. data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
  551. data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
  552. data/src/core/xds/xds_client/xds_client.cc +39 -45
  553. data/src/core/xds/xds_client/xds_client.h +0 -3
  554. data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
  555. data/src/core/xds/xds_client/xds_client_stats.h +2 -2
  556. data/src/ruby/bin/math_pb.rb +1 -22
  557. data/src/ruby/ext/grpc/rb_call.c +8 -1
  558. data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
  559. data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
  560. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
  561. data/src/ruby/ext/grpc/rb_server.c +39 -22
  562. data/src/ruby/lib/grpc/version.rb +1 -1
  563. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
  564. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
  565. data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
  566. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
  567. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
  568. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
  569. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
  570. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
  571. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
  572. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
  573. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
  574. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
  575. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
  576. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
  577. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
  578. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
  579. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
  580. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
  581. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
  582. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
  583. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
  584. data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
  585. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
  586. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
  587. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
  588. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
  589. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
  590. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
  591. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
  592. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
  593. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
  594. data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
  595. metadata +103 -93
  596. data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
  597. data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
  598. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  599. data/src/core/handshaker/security/tsi_error.cc +0 -31
  600. data/src/core/handshaker/security/tsi_error.h +0 -30
  601. data/src/core/lib/channel/channel_stack_trace.cc +0 -19
  602. data/src/core/lib/channel/channel_stack_trace.h +0 -24
  603. data/src/core/lib/channel/context.h +0 -105
  604. data/src/core/lib/channel/metrics.cc +0 -334
  605. data/src/core/lib/channel/metrics.h +0 -365
  606. data/src/core/lib/event_engine/trace.cc +0 -25
  607. data/src/core/lib/gpr/log.cc +0 -166
  608. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  609. data/src/core/lib/promise/trace.cc +0 -20
  610. data/src/core/lib/promise/trace.h +0 -24
  611. data/src/core/lib/resource_quota/trace.cc +0 -19
  612. data/src/core/lib/resource_quota/trace.h +0 -24
  613. data/src/core/lib/slice/slice_refcount.cc +0 -20
  614. data/src/core/lib/surface/api_trace.cc +0 -25
  615. data/src/core/lib/surface/call_trace.h +0 -24
  616. data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
  617. data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
  618. data/src/core/lib/transport/batch_builder.cc +0 -172
  619. data/src/core/lib/transport/batch_builder.h +0 -474
  620. data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
  621. data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
  622. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
  623. /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
  624. /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
  625. /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
  626. /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
  627. /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
  628. /data/src/core/{lib/gpr → util}/sync.cc +0 -0
  629. /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
  630. /data/src/core/{lib/gpr → util}/time.cc +0 -0
  631. /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
  632. /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
@@ -18,12 +18,19 @@
18
18
 
19
19
  #include "src/core/tsi/ssl_transport_security_utils.h"
20
20
 
21
+ #include <openssl/bio.h>
21
22
  #include <openssl/crypto.h>
23
+ #include <openssl/ec.h>
22
24
  #include <openssl/err.h>
25
+ #include <openssl/evp.h>
26
+ #include <openssl/pem.h>
27
+ #include <openssl/rsa.h>
23
28
  #include <openssl/ssl.h>
29
+ #include <openssl/x509.h>
24
30
  #include <openssl/x509v3.h>
25
31
 
26
32
  #include "absl/log/check.h"
33
+ #include "absl/log/log.h"
27
34
  #include "absl/status/status.h"
28
35
  #include "absl/status/statusor.h"
29
36
 
@@ -63,7 +70,7 @@ void LogSslErrorStack(void) {
63
70
  while ((err = ERR_get_error()) != 0) {
64
71
  char details[256];
65
72
  ERR_error_string_n(static_cast<uint32_t>(err), details, sizeof(details));
66
- gpr_log(GPR_ERROR, "%s", details);
73
+ LOG(ERROR) << details;
67
74
  }
68
75
  }
69
76
 
@@ -76,12 +83,12 @@ tsi_result DoSslWrite(SSL* ssl, unsigned char* unprotected_bytes,
76
83
  if (ssl_write_result < 0) {
77
84
  ssl_write_result = SSL_get_error(ssl, ssl_write_result);
78
85
  if (ssl_write_result == SSL_ERROR_WANT_READ) {
79
- gpr_log(GPR_ERROR,
80
- "Peer tried to renegotiate SSL connection. This is unsupported.");
86
+ LOG(ERROR)
87
+ << "Peer tried to renegotiate SSL connection. This is unsupported.";
81
88
  return TSI_UNIMPLEMENTED;
82
89
  } else {
83
- gpr_log(GPR_ERROR, "SSL_write failed with error %s.",
84
- SslErrorString(ssl_write_result));
90
+ LOG(ERROR) << "SSL_write failed with error "
91
+ << SslErrorString(ssl_write_result);
85
92
  return TSI_INTERNAL_ERROR;
86
93
  }
87
94
  }
@@ -107,12 +114,12 @@ tsi_result DoSslRead(SSL* ssl, unsigned char* unprotected_bytes,
107
114
  "Peer tried to renegotiate SSL connection. This is unsupported.");
108
115
  return TSI_UNIMPLEMENTED;
109
116
  case SSL_ERROR_SSL:
110
- gpr_log(GPR_ERROR, "Corruption detected.");
117
+ LOG(ERROR) << "Corruption detected.";
111
118
  LogSslErrorStack();
112
119
  return TSI_DATA_CORRUPTED;
113
120
  default:
114
- gpr_log(GPR_ERROR, "SSL_read failed with error %s.",
115
- SslErrorString(read_from_ssl));
121
+ LOG(ERROR) << "SSL_read failed with error "
122
+ << SslErrorString(read_from_ssl);
116
123
  return TSI_PROTOCOL_FAILURE;
117
124
  }
118
125
  }
@@ -139,8 +146,7 @@ tsi_result SslProtectorProtect(const unsigned char* unprotected_bytes,
139
146
  read_from_ssl = BIO_read(network_io, protected_output_frames,
140
147
  static_cast<int>(*protected_output_frames_size));
141
148
  if (read_from_ssl < 0) {
142
- gpr_log(GPR_ERROR,
143
- "Could not read from BIO even though some data is pending");
149
+ LOG(ERROR) << "Could not read from BIO even though some data is pending";
144
150
  return TSI_INTERNAL_ERROR;
145
151
  }
146
152
  *protected_output_frames_size = static_cast<size_t>(read_from_ssl);
@@ -166,7 +172,7 @@ tsi_result SslProtectorProtect(const unsigned char* unprotected_bytes,
166
172
  read_from_ssl = BIO_read(network_io, protected_output_frames,
167
173
  static_cast<int>(*protected_output_frames_size));
168
174
  if (read_from_ssl < 0) {
169
- gpr_log(GPR_ERROR, "Could not read from BIO after SSL_write.");
175
+ LOG(ERROR) << "Could not read from BIO after SSL_write.";
170
176
  return TSI_INTERNAL_ERROR;
171
177
  }
172
178
  *protected_output_frames_size = static_cast<size_t>(read_from_ssl);
@@ -200,7 +206,7 @@ tsi_result SslProtectorProtectFlush(size_t& buffer_offset,
200
206
  read_from_ssl = BIO_read(network_io, protected_output_frames,
201
207
  static_cast<int>(*protected_output_frames_size));
202
208
  if (read_from_ssl <= 0) {
203
- gpr_log(GPR_ERROR, "Could not read from BIO after SSL_write.");
209
+ LOG(ERROR) << "Could not read from BIO after SSL_write.";
204
210
  return TSI_INTERNAL_ERROR;
205
211
  }
206
212
  *protected_output_frames_size = static_cast<size_t>(read_from_ssl);
@@ -237,8 +243,8 @@ tsi_result SslProtectorUnprotect(const unsigned char* protected_frames_bytes,
237
243
  written_into_ssl = BIO_write(network_io, protected_frames_bytes,
238
244
  static_cast<int>(*protected_frames_bytes_size));
239
245
  if (written_into_ssl < 0) {
240
- gpr_log(GPR_ERROR, "Sending protected frame to ssl failed with %d",
241
- written_into_ssl);
246
+ LOG(ERROR) << "Sending protected frame to ssl failed with "
247
+ << written_into_ssl;
242
248
  return TSI_INTERNAL_ERROR;
243
249
  }
244
250
  *protected_frames_bytes_size = static_cast<size_t>(written_into_ssl);
@@ -260,16 +266,15 @@ bool VerifyCrlSignature(X509_CRL* crl, X509* issuer) {
260
266
  if (ikey == nullptr) {
261
267
  // Can't verify signature because we couldn't get the pubkey, fail the
262
268
  // check.
263
- gpr_log(GPR_DEBUG, "Could not public key from certificate.");
269
+ VLOG(2) << "Could not public key from certificate.";
264
270
  EVP_PKEY_free(ikey);
265
271
  return false;
266
272
  }
267
273
  int ret = X509_CRL_verify(crl, ikey);
268
274
  if (ret < 0) {
269
- gpr_log(GPR_DEBUG,
270
- "There was an unexpected problem checking the CRL signature.");
275
+ VLOG(2) << "There was an unexpected problem checking the CRL signature.";
271
276
  } else if (ret == 0) {
272
- gpr_log(GPR_DEBUG, "CRL failed verification.");
277
+ VLOG(2) << "CRL failed verification.";
273
278
  }
274
279
  EVP_PKEY_free(ikey);
275
280
  return ret == 1;
@@ -375,4 +380,55 @@ absl::StatusOr<std::string> AkidFromCrl(X509_CRL* crl) {
375
380
  return ret;
376
381
  }
377
382
 
383
+ absl::StatusOr<std::vector<X509*>> ParsePemCertificateChain(
384
+ absl::string_view cert_chain_pem) {
385
+ if (cert_chain_pem.empty()) {
386
+ return absl::InvalidArgumentError("Cert chain PEM is empty.");
387
+ }
388
+ BIO* in = BIO_new_mem_buf(cert_chain_pem.data(), cert_chain_pem.size());
389
+ if (in == nullptr) {
390
+ return absl::InternalError("BIO_new_mem_buf failed.");
391
+ }
392
+ std::vector<X509*> certs;
393
+ while (X509* cert = PEM_read_bio_X509(in, /*x=*/nullptr, /*cb=*/nullptr,
394
+ /*u=*/nullptr)) {
395
+ certs.push_back(cert);
396
+ }
397
+
398
+ // We always have errors at this point because in the above loop we read until
399
+ // we reach the end of |cert_chain_pem|, which generates a "no start line"
400
+ // error. Therefore, this error is OK if we have successfully parsed some
401
+ // certificate data previously.
402
+ const int last_error = ERR_peek_last_error();
403
+ if (ERR_GET_LIB(last_error) != ERR_LIB_PEM ||
404
+ ERR_GET_REASON(last_error) != PEM_R_NO_START_LINE) {
405
+ for (X509* cert : certs) {
406
+ X509_free(cert);
407
+ }
408
+ BIO_free(in);
409
+ return absl::FailedPreconditionError("Invalid PEM.");
410
+ }
411
+ ERR_clear_error();
412
+ BIO_free(in);
413
+ if (certs.empty()) {
414
+ return absl::NotFoundError("No certificates found.");
415
+ }
416
+ return certs;
417
+ }
418
+
419
+ absl::StatusOr<EVP_PKEY*> ParsePemPrivateKey(
420
+ absl::string_view private_key_pem) {
421
+ BIO* in = BIO_new_mem_buf(private_key_pem.data(), private_key_pem.size());
422
+ if (in == nullptr) {
423
+ return absl::InvalidArgumentError("Private key PEM is empty.");
424
+ }
425
+ EVP_PKEY* pkey =
426
+ PEM_read_bio_PrivateKey(in, /*x=*/nullptr, /*cb=*/nullptr, /*u=*/nullptr);
427
+ BIO_free(in);
428
+ if (pkey == nullptr) {
429
+ return absl::NotFoundError("No private key found.");
430
+ }
431
+ return pkey;
432
+ }
433
+
378
434
  } // namespace grpc_core
@@ -19,6 +19,7 @@
19
19
  #ifndef GRPC_SRC_CORE_TSI_SSL_TRANSPORT_SECURITY_UTILS_H
20
20
  #define GRPC_SRC_CORE_TSI_SSL_TRANSPORT_SECURITY_UTILS_H
21
21
 
22
+ #include <openssl/evp.h>
22
23
  #include <openssl/x509.h>
23
24
 
24
25
  #include "absl/status/status.h"
@@ -168,6 +169,16 @@ absl::StatusOr<std::string> AkidFromCertificate(X509* cert);
168
169
  // crl.
169
170
  // return: a std::string of the DER encoding of the AKID or a status on failure.
170
171
  absl::StatusOr<std::string> AkidFromCrl(X509_CRL* crl);
172
+
173
+ // Returns a vector of X509 instances parsed from the given PEM-encoded
174
+ // certificate chain. Caller takes ownership of the X509 pointers in the output
175
+ // vector.
176
+ absl::StatusOr<std::vector<X509*>> ParsePemCertificateChain(
177
+ absl::string_view cert_chain_pem);
178
+
179
+ // Returns an EVP_PKEY instance parsed from the non-empty PEM private key block
180
+ // in private_key_pem. Caller takes ownership of the EVP_PKEY pointer.
181
+ absl::StatusOr<EVP_PKEY*> ParsePemPrivateKey(absl::string_view private_key_pem);
171
182
  } // namespace grpc_core
172
183
 
173
184
  #endif // GRPC_SRC_CORE_TSI_SSL_TRANSPORT_SECURITY_UTILS_H
@@ -25,10 +25,6 @@
25
25
  #include <grpc/support/port_platform.h>
26
26
  #include <grpc/support/string_util.h>
27
27
 
28
- // --- Tracing. ---
29
-
30
- grpc_core::TraceFlag tsi_tracing_enabled(false, "tsi");
31
-
32
28
  // --- tsi_result common implementation. ---
33
29
 
34
30
  const char* tsi_result_to_string(tsi_result result) {
@@ -26,8 +26,6 @@
26
26
  #include "src/core/lib/debug/trace.h"
27
27
  #include "src/core/tsi/transport_security_interface.h"
28
28
 
29
- extern grpc_core::TraceFlag tsi_tracing_enabled;
30
-
31
29
  // Base for tsi_frame_protector implementations.
32
30
  // See transport_security_interface.h for documentation.
33
31
  // All methods must be implemented.
@@ -96,10 +96,6 @@ typedef enum {
96
96
  const char* tsi_result_to_string(tsi_result result);
97
97
  const char* tsi_security_level_to_string(tsi_security_level security_level);
98
98
 
99
- // --- tsi tracing ---
100
-
101
- extern grpc_core::TraceFlag tsi_tracing_enabled;
102
-
103
99
  // -- tsi_zero_copy_grpc_protector object --
104
100
 
105
101
  // This object protects and unprotects grpc slice buffers with zero or minimized
@@ -16,8 +16,8 @@
16
16
  //
17
17
  //
18
18
 
19
- #ifndef GRPC_SRC_CORE_LIB_GPR_ALLOC_H
20
- #define GRPC_SRC_CORE_LIB_GPR_ALLOC_H
19
+ #ifndef GRPC_SRC_CORE_UTIL_ALLOC_H
20
+ #define GRPC_SRC_CORE_UTIL_ALLOC_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
@@ -25,4 +25,4 @@
25
25
  #define GPR_ROUND_UP_TO_ALIGNMENT_SIZE(x) \
26
26
  (((x) + GPR_MAX_ALIGNMENT - 1u) & ~(GPR_MAX_ALIGNMENT - 1u))
27
27
 
28
- #endif // GRPC_SRC_CORE_LIB_GPR_ALLOC_H
28
+ #endif // GRPC_SRC_CORE_UTIL_ALLOC_H
@@ -57,23 +57,4 @@ void gpr_log(const char* file, int line, gpr_log_severity severity,
57
57
  free(message);
58
58
  }
59
59
 
60
- void gpr_platform_log(gpr_log_func_args* args) {
61
- const char* final_slash;
62
- const char* display_file;
63
- char* output = NULL;
64
-
65
- final_slash = strrchr(args->file, '/');
66
- if (final_slash == NULL)
67
- display_file = args->file;
68
- else
69
- display_file = final_slash + 1;
70
-
71
- asprintf(&output, "%s:%d] %s", display_file, args->line, args->message);
72
-
73
- __android_log_write(severity_to_log_priority(args->severity), "GRPC", output);
74
-
75
- // allocated by asprintf => use free, not gpr_free
76
- free(output);
77
- }
78
-
79
60
  #endif // GPR_ANDROID
@@ -20,7 +20,7 @@
20
20
 
21
21
  #include <grpc/support/atm.h>
22
22
 
23
- #include "src/core/lib/gpr/useful.h"
23
+ #include "src/core/util/useful.h"
24
24
 
25
25
  gpr_atm gpr_atm_no_barrier_clamped_add(gpr_atm* value, gpr_atm delta,
26
26
  gpr_atm min, gpr_atm max) {
@@ -16,7 +16,9 @@
16
16
  //
17
17
  //
18
18
 
19
- #include "src/core/ext/gcp/metadata_query.h"
19
+ #include <grpc/support/port_platform.h>
20
+
21
+ #include "src/core/util/gcp_metadata_query.h"
20
22
 
21
23
  #include <string.h>
22
24
 
@@ -24,6 +26,7 @@
24
26
  #include <utility>
25
27
 
26
28
  #include "absl/log/check.h"
29
+ #include "absl/log/log.h"
27
30
  #include "absl/status/status.h"
28
31
  #include "absl/status/statusor.h"
29
32
  #include "absl/strings/str_format.h"
@@ -33,7 +36,6 @@
33
36
  #include <grpc/grpc.h>
34
37
  #include <grpc/grpc_security.h>
35
38
  #include <grpc/support/log.h>
36
- #include <grpc/support/port_platform.h>
37
39
 
38
40
  #include "src/core/lib/debug/trace.h"
39
41
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
@@ -44,31 +46,29 @@
44
46
 
45
47
  namespace grpc_core {
46
48
 
47
- TraceFlag grpc_metadata_query_trace(false, "metadata_query");
49
+ constexpr const char GcpMetadataQuery::kZoneAttribute[];
50
+ constexpr const char GcpMetadataQuery::kClusterNameAttribute[];
51
+ constexpr const char GcpMetadataQuery::kRegionAttribute[];
52
+ constexpr const char GcpMetadataQuery::kInstanceIdAttribute[];
53
+ constexpr const char GcpMetadataQuery::kIPv6Attribute[];
48
54
 
49
- constexpr const char MetadataQuery::kZoneAttribute[];
50
- constexpr const char MetadataQuery::kClusterNameAttribute[];
51
- constexpr const char MetadataQuery::kRegionAttribute[];
52
- constexpr const char MetadataQuery::kInstanceIdAttribute[];
53
- constexpr const char MetadataQuery::kIPv6Attribute[];
54
-
55
- MetadataQuery::MetadataQuery(
55
+ GcpMetadataQuery::GcpMetadataQuery(
56
56
  std::string attribute, grpc_polling_entity* pollent,
57
57
  absl::AnyInvocable<void(std::string /* attribute */,
58
58
  absl::StatusOr<std::string> /* result */)>
59
59
  callback,
60
60
  Duration timeout)
61
- : MetadataQuery("metadata.google.internal.", std::move(attribute), pollent,
62
- std::move(callback), timeout) {}
61
+ : GcpMetadataQuery("metadata.google.internal.", std::move(attribute),
62
+ pollent, std::move(callback), timeout) {}
63
63
 
64
- MetadataQuery::MetadataQuery(
64
+ GcpMetadataQuery::GcpMetadataQuery(
65
65
  std::string metadata_server_name, std::string attribute,
66
66
  grpc_polling_entity* pollent,
67
67
  absl::AnyInvocable<void(std::string /* attribute */,
68
68
  absl::StatusOr<std::string> /* result */)>
69
69
  callback,
70
70
  Duration timeout)
71
- : InternallyRefCounted<MetadataQuery>(nullptr, 2),
71
+ : InternallyRefCounted<GcpMetadataQuery>(nullptr, 2),
72
72
  attribute_(std::move(attribute)),
73
73
  callback_(std::move(callback)) {
74
74
  GRPC_CLOSURE_INIT(&on_done_, OnDone, this, nullptr);
@@ -89,20 +89,21 @@ MetadataQuery::MetadataQuery(
89
89
  http_request_->Start();
90
90
  }
91
91
 
92
- MetadataQuery::~MetadataQuery() { grpc_http_response_destroy(&response_); }
92
+ GcpMetadataQuery::~GcpMetadataQuery() {
93
+ grpc_http_response_destroy(&response_);
94
+ }
93
95
 
94
- void MetadataQuery::Orphan() {
96
+ void GcpMetadataQuery::Orphan() {
95
97
  http_request_.reset();
96
98
  Unref();
97
99
  }
98
100
 
99
- void MetadataQuery::OnDone(void* arg, grpc_error_handle error) {
100
- auto* self = static_cast<MetadataQuery*>(arg);
101
- if (GRPC_TRACE_FLAG_ENABLED(grpc_metadata_query_trace)) {
102
- gpr_log(GPR_INFO, "MetadataServer Query for %s: HTTP status: %d, error: %s",
103
- self->attribute_.c_str(), self->response_.status,
104
- StatusToString(error).c_str());
105
- }
101
+ void GcpMetadataQuery::OnDone(void* arg, grpc_error_handle error) {
102
+ auto* self = static_cast<GcpMetadataQuery*>(arg);
103
+ GRPC_TRACE_LOG(metadata_query, INFO)
104
+ << "MetadataServer Query for " << self->attribute_
105
+ << ": HTTP status: " << self->response_.status
106
+ << ", error: " << StatusToString(error);
106
107
  absl::StatusOr<std::string> result;
107
108
  if (!error.ok()) {
108
109
  result = absl::UnavailableError(absl::StrFormat(
@@ -119,9 +120,7 @@ void MetadataQuery::OnDone(void* arg, grpc_error_handle error) {
119
120
  result = absl::UnavailableError(
120
121
  absl::StrFormat("MetadataServer Could not parse zone: %s",
121
122
  std::string(body).c_str()));
122
- if (GRPC_TRACE_FLAG_ENABLED(grpc_metadata_query_trace)) {
123
- gpr_log(GPR_INFO, "%s", result.status().ToString().c_str());
124
- }
123
+ GRPC_TRACE_LOG(metadata_query, INFO) << result.status();
125
124
  } else {
126
125
  result = std::string(body.substr(pos + 1));
127
126
  }
@@ -14,29 +14,29 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
- #ifndef GRPC_SRC_CORE_EXT_GCP_METADATA_QUERY_H
18
- #define GRPC_SRC_CORE_EXT_GCP_METADATA_QUERY_H
17
+ #ifndef GRPC_SRC_CORE_UTIL_GCP_METADATA_QUERY_H
18
+ #define GRPC_SRC_CORE_UTIL_GCP_METADATA_QUERY_H
19
+
20
+ #include <grpc/support/port_platform.h>
19
21
 
20
22
  #include <string>
21
23
 
22
24
  #include "absl/functional/any_invocable.h"
23
25
  #include "absl/status/statusor.h"
24
26
 
25
- #include <grpc/support/port_platform.h>
26
-
27
27
  #include "src/core/lib/gprpp/orphanable.h"
28
28
  #include "src/core/lib/gprpp/time.h"
29
- #include "src/core/lib/http/httpcli.h"
30
- #include "src/core/lib/http/parser.h"
31
29
  #include "src/core/lib/iomgr/closure.h"
32
30
  #include "src/core/lib/iomgr/error.h"
33
31
  #include "src/core/lib/iomgr/polling_entity.h"
32
+ #include "src/core/util/http_client/httpcli.h"
33
+ #include "src/core/util/http_client/parser.h"
34
34
 
35
35
  namespace grpc_core {
36
36
 
37
37
  // Fetches the value of an attribute from the MetadataServer on a GCP
38
38
  // environment.
39
- class MetadataQuery : public InternallyRefCounted<MetadataQuery> {
39
+ class GcpMetadataQuery : public InternallyRefCounted<GcpMetadataQuery> {
40
40
  public:
41
41
  static constexpr const char kZoneAttribute[] =
42
42
  "/computeMetadata/v1/instance/zone";
@@ -49,7 +49,7 @@ class MetadataQuery : public InternallyRefCounted<MetadataQuery> {
49
49
  static constexpr const char kIPv6Attribute[] =
50
50
  "/computeMetadata/v1/instance/network-interfaces/0/ipv6s";
51
51
 
52
- MetadataQuery(
52
+ GcpMetadataQuery(
53
53
  std::string attribute, grpc_polling_entity* pollent,
54
54
  absl::AnyInvocable<void(std::string /* attribute */,
55
55
  absl::StatusOr<std::string> /* result */)>
@@ -58,7 +58,7 @@ class MetadataQuery : public InternallyRefCounted<MetadataQuery> {
58
58
 
59
59
  // Alternative ctor allows overriding the metadata server address, mainly
60
60
  // to inject fakes in tests
61
- MetadataQuery(
61
+ GcpMetadataQuery(
62
62
  std::string metadata_server_name, std::string attribute,
63
63
  grpc_polling_entity* pollent,
64
64
  absl::AnyInvocable<void(std::string /* attribute */,
@@ -66,7 +66,7 @@ class MetadataQuery : public InternallyRefCounted<MetadataQuery> {
66
66
  callback,
67
67
  Duration timeout);
68
68
 
69
- ~MetadataQuery() override;
69
+ ~GcpMetadataQuery() override;
70
70
 
71
71
  void Orphan() override;
72
72
 
@@ -84,4 +84,4 @@ class MetadataQuery : public InternallyRefCounted<MetadataQuery> {
84
84
 
85
85
  } // namespace grpc_core
86
86
 
87
- #endif // GRPC_SRC_CORE_EXT_GCP_METADATA_QUERY_H
87
+ #endif // GRPC_SRC_CORE_UTIL_GCP_METADATA_QUERY_H
@@ -16,7 +16,9 @@
16
16
  //
17
17
  //
18
18
 
19
- #include "src/core/lib/http/format_request.h"
19
+ #include <grpc/support/port_platform.h>
20
+
21
+ #include "src/core/util/http_client/format_request.h"
20
22
 
21
23
  #include <stdio.h>
22
24
  #include <string.h>
@@ -31,9 +33,8 @@
31
33
  #include "absl/strings/string_view.h"
32
34
 
33
35
  #include <grpc/slice.h>
34
- #include <grpc/support/port_platform.h>
35
36
 
36
- #include "src/core/lib/http/httpcli.h"
37
+ #include "src/core/util/http_client/httpcli.h"
37
38
 
38
39
  static void fill_common_header(const grpc_http_request* request,
39
40
  const char* host, const char* path,
@@ -16,13 +16,14 @@
16
16
  //
17
17
  //
18
18
 
19
- #ifndef GRPC_SRC_CORE_LIB_HTTP_FORMAT_REQUEST_H
20
- #define GRPC_SRC_CORE_LIB_HTTP_FORMAT_REQUEST_H
19
+ #ifndef GRPC_SRC_CORE_UTIL_HTTP_CLIENT_FORMAT_REQUEST_H
20
+ #define GRPC_SRC_CORE_UTIL_HTTP_CLIENT_FORMAT_REQUEST_H
21
21
 
22
- #include <grpc/slice.h>
23
22
  #include <grpc/support/port_platform.h>
24
23
 
25
- #include "src/core/lib/http/parser.h"
24
+ #include <grpc/slice.h>
25
+
26
+ #include "src/core/util/http_client/parser.h"
26
27
 
27
28
  grpc_slice grpc_httpcli_format_get_request(const grpc_http_request* request,
28
29
  const char* host, const char* path);
@@ -34,4 +35,4 @@ grpc_slice grpc_httpcli_format_connect_request(const grpc_http_request* request,
34
35
  const char* host,
35
36
  const char* path);
36
37
 
37
- #endif // GRPC_SRC_CORE_LIB_HTTP_FORMAT_REQUEST_H
38
+ #endif // GRPC_SRC_CORE_UTIL_HTTP_CLIENT_FORMAT_REQUEST_H
@@ -16,7 +16,9 @@
16
16
  //
17
17
  //
18
18
 
19
- #include "src/core/lib/http/httpcli.h"
19
+ #include <grpc/support/port_platform.h>
20
+
21
+ #include "src/core/util/http_client/httpcli.h"
20
22
 
21
23
  #include <limits.h>
22
24
 
@@ -32,7 +34,6 @@
32
34
  #include <grpc/slice_buffer.h>
33
35
  #include <grpc/support/alloc.h>
34
36
  #include <grpc/support/log.h>
35
- #include <grpc/support/port_platform.h>
36
37
 
37
38
  #include "src/core/handshaker/handshaker_registry.h"
38
39
  #include "src/core/handshaker/tcp_connect/tcp_connect_handshaker.h"
@@ -41,8 +42,6 @@
41
42
  #include "src/core/lib/channel/channel_args_preconditioning.h"
42
43
  #include "src/core/lib/config/core_configuration.h"
43
44
  #include "src/core/lib/gprpp/status_helper.h"
44
- #include "src/core/lib/http/format_request.h"
45
- #include "src/core/lib/http/parser.h"
46
45
  #include "src/core/lib/iomgr/endpoint.h"
47
46
  #include "src/core/lib/iomgr/iomgr_internal.h"
48
47
  #include "src/core/lib/iomgr/pollset_set.h"
@@ -52,6 +51,8 @@
52
51
  #include "src/core/lib/security/security_connector/security_connector.h"
53
52
  #include "src/core/lib/slice/slice.h"
54
53
  #include "src/core/lib/transport/error_utils.h"
54
+ #include "src/core/util/http_client/format_request.h"
55
+ #include "src/core/util/http_client/parser.h"
55
56
 
56
57
  namespace grpc_core {
57
58
 
@@ -231,7 +232,8 @@ void HttpRequest::Orphan() {
231
232
  GRPC_ERROR_CREATE("HTTP request cancelled during handshake"));
232
233
  }
233
234
  if (own_endpoint_ && ep_ != nullptr) {
234
- grpc_endpoint_shutdown(ep_, GRPC_ERROR_CREATE("HTTP request cancelled"));
235
+ grpc_endpoint_destroy(ep_);
236
+ ep_ = nullptr;
235
237
  }
236
238
  }
237
239
  Unref();
@@ -243,11 +245,8 @@ void HttpRequest::AppendError(grpc_error_handle error) {
243
245
  }
244
246
  const grpc_resolved_address* addr = &addresses_[next_address_ - 1];
245
247
  auto addr_text = grpc_sockaddr_to_uri(addr);
246
- overall_error_ = grpc_error_add_child(
247
- overall_error_,
248
- grpc_error_set_str(
249
- error, StatusStrProperty::kTargetAddress,
250
- addr_text.ok() ? addr_text.value() : addr_text.status().ToString()));
248
+ if (addr_text.ok()) error = AddMessagePrefix(*addr_text, std::move(error));
249
+ overall_error_ = grpc_error_add_child(overall_error_, std::move(error));
251
250
  }
252
251
 
253
252
  void HttpRequest::OnReadInternal(grpc_error_handle error) {
@@ -16,8 +16,10 @@
16
16
  //
17
17
  //
18
18
 
19
- #ifndef GRPC_SRC_CORE_LIB_HTTP_HTTPCLI_H
20
- #define GRPC_SRC_CORE_LIB_HTTP_HTTPCLI_H
19
+ #ifndef GRPC_SRC_CORE_UTIL_HTTP_CLIENT_HTTPCLI_H
20
+ #define GRPC_SRC_CORE_UTIL_HTTP_CLIENT_HTTPCLI_H
21
+
22
+ #include <grpc/support/port_platform.h>
21
23
 
22
24
  #include <stddef.h>
23
25
 
@@ -32,7 +34,6 @@
32
34
 
33
35
  #include <grpc/grpc.h>
34
36
  #include <grpc/slice.h>
35
- #include <grpc/support/port_platform.h>
36
37
 
37
38
  #include "src/core/handshaker/handshaker.h"
38
39
  #include "src/core/lib/gprpp/debug_location.h"
@@ -40,7 +41,6 @@
40
41
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
41
42
  #include "src/core/lib/gprpp/sync.h"
42
43
  #include "src/core/lib/gprpp/time.h"
43
- #include "src/core/lib/http/parser.h"
44
44
  #include "src/core/lib/iomgr/closure.h"
45
45
  #include "src/core/lib/iomgr/endpoint.h"
46
46
  #include "src/core/lib/iomgr/error.h"
@@ -52,6 +52,7 @@
52
52
  #include "src/core/lib/iomgr/resolved_address.h"
53
53
  #include "src/core/lib/resource_quota/resource_quota.h"
54
54
  #include "src/core/lib/uri/uri_parser.h"
55
+ #include "src/core/util/http_client/parser.h"
55
56
 
56
57
  // User agent this library reports
57
58
  #define GRPC_HTTPCLI_USER_AGENT "grpc-httpcli/0.0"
@@ -264,4 +265,4 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
264
265
 
265
266
  } // namespace grpc_core
266
267
 
267
- #endif // GRPC_SRC_CORE_LIB_HTTP_HTTPCLI_H
268
+ #endif // GRPC_SRC_CORE_UTIL_HTTP_CLIENT_HTTPCLI_H