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
@@ -26,6 +26,7 @@
26
26
 
27
27
  #include "absl/base/thread_annotations.h"
28
28
  #include "absl/log/check.h"
29
+ #include "absl/log/log.h"
29
30
  #include "absl/status/status.h"
30
31
  #include "absl/strings/string_view.h"
31
32
  #include "absl/types/optional.h"
@@ -40,9 +41,7 @@
40
41
  #include <grpc/support/port_platform.h>
41
42
  #include <grpc/support/sync.h>
42
43
 
43
- #include "src/core/handshaker/security/tsi_error.h"
44
44
  #include "src/core/lib/debug/trace.h"
45
- #include "src/core/lib/gpr/string.h"
46
45
  #include "src/core/lib/gprpp/debug_location.h"
47
46
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
48
47
  #include "src/core/lib/gprpp/sync.h"
@@ -53,15 +52,16 @@
53
52
  #include "src/core/lib/resource_quota/api.h"
54
53
  #include "src/core/lib/resource_quota/memory_quota.h"
55
54
  #include "src/core/lib/resource_quota/resource_quota.h"
56
- #include "src/core/lib/resource_quota/trace.h"
57
55
  #include "src/core/lib/slice/slice.h"
58
56
  #include "src/core/lib/slice/slice_string_helpers.h"
59
57
  #include "src/core/tsi/transport_security_grpc.h"
60
58
  #include "src/core/tsi/transport_security_interface.h"
59
+ #include "src/core/util/string.h"
61
60
 
62
61
  #define STAGING_BUFFER_SIZE 8192
63
62
 
64
63
  static void on_read(void* user_data, grpc_error_handle error);
64
+ static void on_write(void* user_data, grpc_error_handle error);
65
65
 
66
66
  namespace {
67
67
  struct secure_endpoint {
@@ -77,6 +77,7 @@ struct secure_endpoint {
77
77
  base.vtable = vtable;
78
78
  gpr_mu_init(&protector_mu);
79
79
  GRPC_CLOSURE_INIT(&on_read, ::on_read, this, grpc_schedule_on_exec_ctx);
80
+ GRPC_CLOSURE_INIT(&on_write, ::on_write, this, grpc_schedule_on_exec_ctx);
80
81
  grpc_slice_buffer_init(&source_buffer);
81
82
  grpc_slice_buffer_init(&leftover_bytes);
82
83
  for (size_t i = 0; i < leftover_nslices; i++) {
@@ -104,7 +105,7 @@ struct secure_endpoint {
104
105
  }
105
106
 
106
107
  ~secure_endpoint() {
107
- grpc_endpoint_destroy(wrapped_ep);
108
+ memory_owner.Reset();
108
109
  tsi_frame_protector_destroy(protector);
109
110
  tsi_zero_copy_grpc_protector_destroy(zero_copy_protector);
110
111
  grpc_slice_buffer_destroy(&source_buffer);
@@ -127,6 +128,7 @@ struct secure_endpoint {
127
128
  grpc_closure* read_cb = nullptr;
128
129
  grpc_closure* write_cb = nullptr;
129
130
  grpc_closure on_read;
131
+ grpc_closure on_write;
130
132
  grpc_slice_buffer* read_buffer = nullptr;
131
133
  grpc_slice_buffer source_buffer;
132
134
  // saved handshaker leftover data to unprotect.
@@ -144,8 +146,6 @@ struct secure_endpoint {
144
146
  };
145
147
  } // namespace
146
148
 
147
- grpc_core::TraceFlag grpc_trace_secure_endpoint(false, "secure_endpoint");
148
-
149
149
  static void destroy(secure_endpoint* ep) { delete ep; }
150
150
 
151
151
  #ifndef NDEBUG
@@ -155,7 +155,7 @@ static void destroy(secure_endpoint* ep) { delete ep; }
155
155
  secure_endpoint_ref((ep), (reason), __FILE__, __LINE__)
156
156
  static void secure_endpoint_unref(secure_endpoint* ep, const char* reason,
157
157
  const char* file, int line) {
158
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_secure_endpoint)) {
158
+ if (GRPC_TRACE_FLAG_ENABLED(secure_endpoint)) {
159
159
  gpr_atm val = gpr_atm_no_barrier_load(&ep->ref.count);
160
160
  gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
161
161
  "SECENDP unref %p : %s %" PRIdPTR " -> %" PRIdPTR, ep, reason, val,
@@ -168,7 +168,7 @@ static void secure_endpoint_unref(secure_endpoint* ep, const char* reason,
168
168
 
169
169
  static void secure_endpoint_ref(secure_endpoint* ep, const char* reason,
170
170
  const char* file, int line) {
171
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_secure_endpoint)) {
171
+ if (GRPC_TRACE_FLAG_ENABLED(secure_endpoint)) {
172
172
  gpr_atm val = gpr_atm_no_barrier_load(&ep->ref.count);
173
173
  gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
174
174
  "SECENDP ref %p : %s %" PRIdPTR " -> %" PRIdPTR, ep, reason, val,
@@ -196,7 +196,7 @@ static void maybe_post_reclaimer(secure_endpoint* ep) {
196
196
  grpc_core::ReclamationPass::kBenign,
197
197
  [ep](absl::optional<grpc_core::ReclamationSweep> sweep) {
198
198
  if (sweep.has_value()) {
199
- if (GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
199
+ if (GRPC_TRACE_FLAG_ENABLED(resource_quota)) {
200
200
  gpr_log(GPR_INFO,
201
201
  "secure endpoint: benign reclamation to free memory");
202
202
  }
@@ -233,13 +233,12 @@ static void flush_read_staging_buffer(secure_endpoint* ep, uint8_t** cur,
233
233
  }
234
234
 
235
235
  static void call_read_cb(secure_endpoint* ep, grpc_error_handle error) {
236
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_secure_endpoint) &&
237
- gpr_should_log(GPR_LOG_SEVERITY_INFO)) {
236
+ if (GRPC_TRACE_FLAG_ENABLED(secure_endpoint) && ABSL_VLOG_IS_ON(2)) {
238
237
  size_t i;
239
238
  for (i = 0; i < ep->read_buffer->count; i++) {
240
239
  char* data = grpc_dump_slice(ep->read_buffer->slices[i],
241
240
  GPR_DUMP_HEX | GPR_DUMP_ASCII);
242
- gpr_log(GPR_INFO, "READ %p: %s", ep, data);
241
+ VLOG(2) << "READ " << ep << ": " << data;
243
242
  gpr_free(data);
244
243
  }
245
244
  }
@@ -261,12 +260,7 @@ static void on_read(void* user_data, grpc_error_handle error) {
261
260
 
262
261
  if (!error.ok()) {
263
262
  grpc_slice_buffer_reset_and_unref(ep->read_buffer);
264
- call_read_cb(
265
- ep, GRPC_ERROR_CREATE_REFERENCING("Secure read failed", &error, 1));
266
- return;
267
- }
268
-
269
- if (ep->zero_copy_protector != nullptr) {
263
+ } else if (ep->zero_copy_protector != nullptr) {
270
264
  // Use zero-copy grpc protector to unprotect.
271
265
  int min_progress_size = 1;
272
266
  // Get the size of the last frame which is not yet fully decrypted.
@@ -334,14 +328,21 @@ static void on_read(void* user_data, grpc_error_handle error) {
334
328
  }
335
329
  }
336
330
 
331
+ if (!error.ok()) {
332
+ call_read_cb(
333
+ ep, GRPC_ERROR_CREATE_REFERENCING("Secure read failed", &error, 1));
334
+ return;
335
+ }
336
+
337
337
  // TODO(yangg) experiment with moving this block after read_cb to see if it
338
338
  // helps latency
339
339
  grpc_slice_buffer_reset_and_unref(&ep->source_buffer);
340
340
 
341
341
  if (result != TSI_OK) {
342
342
  grpc_slice_buffer_reset_and_unref(ep->read_buffer);
343
- call_read_cb(ep, grpc_set_tsi_error_result(
344
- GRPC_ERROR_CREATE("Unwrap failed"), result));
343
+ call_read_cb(
344
+ ep, GRPC_ERROR_CREATE(absl::StrCat("Unwrap failed (",
345
+ tsi_result_to_string(result), ")")));
345
346
  return;
346
347
  }
347
348
 
@@ -379,6 +380,13 @@ static void flush_write_staging_buffer(secure_endpoint* ep, uint8_t** cur,
379
380
  maybe_post_reclaimer(ep);
380
381
  }
381
382
 
383
+ static void on_write(void* user_data, grpc_error_handle error) {
384
+ secure_endpoint* ep = static_cast<secure_endpoint*>(user_data);
385
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, std::exchange(ep->write_cb, nullptr),
386
+ std::move(error));
387
+ SECURE_ENDPOINT_UNREF(ep, "write");
388
+ }
389
+
382
390
  static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
383
391
  grpc_closure* cb, void* arg, int max_frame_size) {
384
392
  unsigned i;
@@ -392,12 +400,11 @@ static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
392
400
 
393
401
  grpc_slice_buffer_reset_and_unref(&ep->output_buffer);
394
402
 
395
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_secure_endpoint) &&
396
- gpr_should_log(GPR_LOG_SEVERITY_INFO)) {
403
+ if (GRPC_TRACE_FLAG_ENABLED(secure_endpoint) && ABSL_VLOG_IS_ON(2)) {
397
404
  for (i = 0; i < slices->count; i++) {
398
405
  char* data =
399
406
  grpc_dump_slice(slices->slices[i], GPR_DUMP_HEX | GPR_DUMP_ASCII);
400
- gpr_log(GPR_INFO, "WRITE %p: %s", ep, data);
407
+ VLOG(2) << "WRITE " << ep << ": " << data;
401
408
  gpr_free(data);
402
409
  }
403
410
  }
@@ -484,22 +491,22 @@ static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
484
491
  grpc_slice_buffer_reset_and_unref(&ep->output_buffer);
485
492
  grpc_core::ExecCtx::Run(
486
493
  DEBUG_LOCATION, cb,
487
- grpc_set_tsi_error_result(GRPC_ERROR_CREATE("Wrap failed"), result));
494
+ GRPC_ERROR_CREATE(
495
+ absl::StrCat("Wrap failed (", tsi_result_to_string(result), ")")));
488
496
  return;
489
497
  }
490
498
 
491
- grpc_endpoint_write(ep->wrapped_ep, &ep->output_buffer, cb, arg,
499
+ // Need to hold a ref here, because the wrapped endpoint may access
500
+ // output_buffer at any time until the write completes.
501
+ SECURE_ENDPOINT_REF(ep, "write");
502
+ ep->write_cb = cb;
503
+ grpc_endpoint_write(ep->wrapped_ep, &ep->output_buffer, &ep->on_write, arg,
492
504
  max_frame_size);
493
505
  }
494
506
 
495
- static void endpoint_shutdown(grpc_endpoint* secure_ep, grpc_error_handle why) {
496
- secure_endpoint* ep = reinterpret_cast<secure_endpoint*>(secure_ep);
497
- grpc_endpoint_shutdown(ep->wrapped_ep, why);
498
- }
499
-
500
507
  static void endpoint_destroy(grpc_endpoint* secure_ep) {
501
508
  secure_endpoint* ep = reinterpret_cast<secure_endpoint*>(secure_ep);
502
- ep->memory_owner.Reset();
509
+ grpc_endpoint_destroy(ep->wrapped_ep);
503
510
  SECURE_ENDPOINT_UNREF(ep, "destroy");
504
511
  }
505
512
 
@@ -546,7 +553,6 @@ static const grpc_endpoint_vtable vtable = {endpoint_read,
546
553
  endpoint_add_to_pollset,
547
554
  endpoint_add_to_pollset_set,
548
555
  endpoint_delete_from_pollset_set,
549
- endpoint_shutdown,
550
556
  endpoint_destroy,
551
557
  endpoint_get_peer,
552
558
  endpoint_get_local_address,
@@ -28,8 +28,6 @@
28
28
  #include "src/core/lib/debug/trace.h"
29
29
  #include "src/core/lib/iomgr/endpoint.h"
30
30
 
31
- extern grpc_core::TraceFlag grpc_trace_secure_endpoint;
32
-
33
31
  // Takes ownership of protector, zero_copy_protector, and to_wrap, and refs
34
32
  // leftover_slices. If zero_copy_protector is not NULL, protector will never be
35
33
  // used.
@@ -48,11 +48,8 @@
48
48
  #include "src/core/handshaker/handshaker_factory.h"
49
49
  #include "src/core/handshaker/handshaker_registry.h"
50
50
  #include "src/core/handshaker/security/secure_endpoint.h"
51
- #include "src/core/handshaker/security/tsi_error.h"
52
51
  #include "src/core/lib/channel/channel_args.h"
53
52
  #include "src/core/lib/config/core_configuration.h"
54
- #include "src/core/lib/debug/stats.h"
55
- #include "src/core/lib/debug/stats_data.h"
56
53
  #include "src/core/lib/gprpp/debug_location.h"
57
54
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
58
55
  #include "src/core/lib/gprpp/sync.h"
@@ -66,6 +63,8 @@
66
63
  #include "src/core/lib/security/context/security_context.h"
67
64
  #include "src/core/lib/slice/slice.h"
68
65
  #include "src/core/lib/slice/slice_internal.h"
66
+ #include "src/core/telemetry/stats.h"
67
+ #include "src/core/telemetry/stats_data.h"
69
68
  #include "src/core/tsi/transport_security_grpc.h"
70
69
 
71
70
  #define GRPC_INITIAL_HANDSHAKE_BUFFER_SIZE 256
@@ -118,8 +117,7 @@ class SecurityHandshaker : public Handshaker {
118
117
  Mutex mu_;
119
118
 
120
119
  bool is_shutdown_ = false;
121
- // Endpoint and read buffer to destroy after a shutdown.
122
- grpc_endpoint* endpoint_to_destroy_ = nullptr;
120
+ // Read buffer to destroy after a shutdown.
123
121
  grpc_slice_buffer* read_buffer_to_destroy_ = nullptr;
124
122
 
125
123
  // State saved while performing the handshake.
@@ -156,9 +154,6 @@ SecurityHandshaker::SecurityHandshaker(tsi_handshaker* handshaker,
156
154
  SecurityHandshaker::~SecurityHandshaker() {
157
155
  tsi_handshaker_destroy(handshaker_);
158
156
  tsi_handshaker_result_destroy(handshaker_result_);
159
- if (endpoint_to_destroy_ != nullptr) {
160
- grpc_endpoint_destroy(endpoint_to_destroy_);
161
- }
162
157
  if (read_buffer_to_destroy_ != nullptr) {
163
158
  grpc_slice_buffer_destroy(read_buffer_to_destroy_);
164
159
  gpr_free(read_buffer_to_destroy_);
@@ -190,8 +185,6 @@ size_t SecurityHandshaker::MoveReadBufferIntoHandshakeBuffer() {
190
185
  // Set args_ fields to NULL, saving the endpoint and read buffer for
191
186
  // later destruction.
192
187
  void SecurityHandshaker::CleanupArgsForFailureLocked() {
193
- endpoint_to_destroy_ = args_->endpoint;
194
- args_->endpoint = nullptr;
195
188
  read_buffer_to_destroy_ = args_->read_buffer;
196
189
  args_->read_buffer = nullptr;
197
190
  args_->args = ChannelArgs();
@@ -207,11 +200,8 @@ void SecurityHandshaker::HandshakeFailedLocked(grpc_error_handle error) {
207
200
  }
208
201
  if (!is_shutdown_) {
209
202
  tsi_handshaker_shutdown(handshaker_);
210
- // TODO(ctiller): It is currently necessary to shutdown endpoints
211
- // before destroying them, even if we know that there are no
212
- // pending read/write callbacks. This should be fixed, at which
213
- // point this can be removed.
214
- grpc_endpoint_shutdown(args_->endpoint, error);
203
+ grpc_endpoint_destroy(args_->endpoint);
204
+ args_->endpoint = nullptr;
215
205
  // Not shutting down, so the write failed. Clean up before
216
206
  // invoking the callback.
217
207
  CleanupArgsForFailureLocked();
@@ -260,10 +250,9 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error_handle error) {
260
250
  tsi_result result = tsi_handshaker_result_get_unused_bytes(
261
251
  handshaker_result_, &unused_bytes, &unused_bytes_size);
262
252
  if (result != TSI_OK) {
263
- HandshakeFailedLocked(grpc_set_tsi_error_result(
264
- GRPC_ERROR_CREATE(
265
- "TSI handshaker result does not provide unused bytes"),
266
- result));
253
+ HandshakeFailedLocked(GRPC_ERROR_CREATE(
254
+ absl::StrCat("TSI handshaker result does not provide unused bytes (",
255
+ tsi_result_to_string(result), ")")));
267
256
  return;
268
257
  }
269
258
  // Check whether we need to wrap the endpoint.
@@ -271,10 +260,10 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error_handle error) {
271
260
  result = tsi_handshaker_result_get_frame_protector_type(
272
261
  handshaker_result_, &frame_protector_type);
273
262
  if (result != TSI_OK) {
274
- HandshakeFailedLocked(grpc_set_tsi_error_result(
275
- GRPC_ERROR_CREATE("TSI handshaker result does not implement "
276
- "get_frame_protector_type"),
277
- result));
263
+ HandshakeFailedLocked(GRPC_ERROR_CREATE(
264
+ absl::StrCat("TSI handshaker result does not implement "
265
+ "get_frame_protector_type (",
266
+ tsi_result_to_string(result), ")")));
278
267
  return;
279
268
  }
280
269
  tsi_zero_copy_grpc_protector* zero_copy_protector = nullptr;
@@ -288,9 +277,9 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error_handle error) {
288
277
  handshaker_result_, max_frame_size_ == 0 ? nullptr : &max_frame_size_,
289
278
  &zero_copy_protector);
290
279
  if (result != TSI_OK) {
291
- HandshakeFailedLocked(grpc_set_tsi_error_result(
292
- GRPC_ERROR_CREATE("Zero-copy frame protector creation failed"),
293
- result));
280
+ HandshakeFailedLocked(GRPC_ERROR_CREATE(
281
+ absl::StrCat("Zero-copy frame protector creation failed (",
282
+ tsi_result_to_string(result), ")")));
294
283
  return;
295
284
  }
296
285
  break;
@@ -300,8 +289,9 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error_handle error) {
300
289
  handshaker_result_, max_frame_size_ == 0 ? nullptr : &max_frame_size_,
301
290
  &protector);
302
291
  if (result != TSI_OK) {
303
- HandshakeFailedLocked(grpc_set_tsi_error_result(
304
- GRPC_ERROR_CREATE("Frame protector creation failed"), result));
292
+ HandshakeFailedLocked(
293
+ GRPC_ERROR_CREATE(absl::StrCat("Frame protector creation failed (",
294
+ tsi_result_to_string(result), ")")));
305
295
  return;
306
296
  }
307
297
  break;
@@ -356,8 +346,8 @@ grpc_error_handle SecurityHandshaker::CheckPeerLocked() {
356
346
  tsi_result result =
357
347
  tsi_handshaker_result_extract_peer(handshaker_result_, &peer);
358
348
  if (result != TSI_OK) {
359
- return grpc_set_tsi_error_result(
360
- GRPC_ERROR_CREATE("Peer extraction failed"), result);
349
+ return GRPC_ERROR_CREATE(absl::StrCat("Peer extraction failed (",
350
+ tsi_result_to_string(result), ")"));
361
351
  }
362
352
  connector_->check_peer(peer, args_->endpoint, args_->args, &auth_context_,
363
353
  &on_peer_checked_);
@@ -398,11 +388,9 @@ grpc_error_handle SecurityHandshaker::OnHandshakeNextDoneLocked(
398
388
  if (security_connector != nullptr) {
399
389
  connector_type = security_connector->type().name();
400
390
  }
401
- return grpc_set_tsi_error_result(
402
- GRPC_ERROR_CREATE(absl::StrCat(
403
- connector_type, " handshake failed",
404
- (tsi_handshake_error_.empty() ? "" : ": "), tsi_handshake_error_)),
405
- result);
391
+ return GRPC_ERROR_CREATE(absl::StrCat(
392
+ connector_type, " handshake failed (", tsi_result_to_string(result),
393
+ ")", (tsi_handshake_error_.empty() ? "" : ": "), tsi_handshake_error_));
406
394
  }
407
395
  // Update handshaker result.
408
396
  if (handshaker_result != nullptr) {
@@ -558,7 +546,8 @@ void SecurityHandshaker::Shutdown(grpc_error_handle why) {
558
546
  is_shutdown_ = true;
559
547
  connector_->cancel_check_peer(&on_peer_checked_, why);
560
548
  tsi_handshaker_shutdown(handshaker_);
561
- grpc_endpoint_shutdown(args_->endpoint, why);
549
+ grpc_endpoint_destroy(args_->endpoint);
550
+ args_->endpoint = nullptr;
562
551
  CleanupArgsForFailureLocked();
563
552
  }
564
553
  }
@@ -592,7 +581,6 @@ class FailHandshaker : public Handshaker {
592
581
  void DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
593
582
  grpc_closure* on_handshake_done,
594
583
  HandshakerArgs* args) override {
595
- grpc_endpoint_shutdown(args->endpoint, status_);
596
584
  grpc_endpoint_destroy(args->endpoint);
597
585
  args->endpoint = nullptr;
598
586
  args->args = ChannelArgs();
@@ -167,7 +167,8 @@ void TCPConnectHandshaker::Connected(void* arg, grpc_error_handle error) {
167
167
  error = GRPC_ERROR_CREATE("tcp handshaker shutdown");
168
168
  }
169
169
  if (self->endpoint_to_destroy_ != nullptr) {
170
- grpc_endpoint_shutdown(self->endpoint_to_destroy_, error);
170
+ grpc_endpoint_destroy(self->endpoint_to_destroy_);
171
+ self->endpoint_to_destroy_ = nullptr;
171
172
  }
172
173
  if (!self->shutdown_) {
173
174
  self->CleanupArgsForFailureLocked();
@@ -18,8 +18,6 @@
18
18
 
19
19
  #include "src/core/lib/address_utils/parse_address.h"
20
20
 
21
- #include "absl/log/check.h"
22
-
23
21
  #include <grpc/support/port_platform.h>
24
22
 
25
23
  #include "src/core/lib/iomgr/port.h" // IWYU pragma: keep
@@ -43,18 +41,18 @@
43
41
  #endif // GRPC_HAVE_UNIX_SOCKET
44
42
  #include <string>
45
43
 
44
+ #include "absl/log/check.h"
45
+ #include "absl/log/log.h"
46
46
  #include "absl/status/status.h"
47
47
  #include "absl/strings/str_cat.h"
48
48
  #include "absl/strings/strip.h"
49
49
 
50
- #include <grpc/support/log.h>
51
-
52
- #include "src/core/lib/gpr/string.h"
53
50
  #include "src/core/lib/gprpp/host_port.h"
54
51
  #include "src/core/lib/gprpp/status_helper.h"
55
52
  #include "src/core/lib/iomgr/grpc_if_nametoindex.h"
56
53
  #include "src/core/lib/iomgr/sockaddr.h"
57
54
  #include "src/core/lib/iomgr/socket_utils.h"
55
+ #include "src/core/util/string.h"
58
56
 
59
57
  // IWYU pragma: no_include <arpa/inet.h>
60
58
 
@@ -63,14 +61,13 @@
63
61
  bool grpc_parse_unix(const grpc_core::URI& uri,
64
62
  grpc_resolved_address* resolved_addr) {
65
63
  if (uri.scheme() != "unix") {
66
- gpr_log(GPR_ERROR, "Expected 'unix' scheme, got '%s'",
67
- uri.scheme().c_str());
64
+ LOG(ERROR) << "Expected 'unix' scheme, got '" << uri.scheme() << "'";
68
65
  return false;
69
66
  }
70
67
  grpc_error_handle error =
71
68
  grpc_core::UnixSockaddrPopulate(uri.path(), resolved_addr);
72
69
  if (!error.ok()) {
73
- gpr_log(GPR_ERROR, "%s", grpc_core::StatusToString(error).c_str());
70
+ LOG(ERROR) << "" << grpc_core::StatusToString(error);
74
71
  return false;
75
72
  }
76
73
  return true;
@@ -79,14 +76,14 @@ bool grpc_parse_unix(const grpc_core::URI& uri,
79
76
  bool grpc_parse_unix_abstract(const grpc_core::URI& uri,
80
77
  grpc_resolved_address* resolved_addr) {
81
78
  if (uri.scheme() != "unix-abstract") {
82
- gpr_log(GPR_ERROR, "Expected 'unix-abstract' scheme, got '%s'",
83
- uri.scheme().c_str());
79
+ LOG(ERROR) << "Expected 'unix-abstract' scheme, got '" << uri.scheme()
80
+ << "'";
84
81
  return false;
85
82
  }
86
83
  grpc_error_handle error =
87
84
  grpc_core::UnixAbstractSockaddrPopulate(uri.path(), resolved_addr);
88
85
  if (!error.ok()) {
89
- gpr_log(GPR_ERROR, "%s", grpc_core::StatusToString(error).c_str());
86
+ LOG(ERROR) << "" << grpc_core::StatusToString(error);
90
87
  return false;
91
88
  }
92
89
  return true;
@@ -163,14 +160,13 @@ grpc_error_handle UnixAbstractSockaddrPopulate(
163
160
  bool grpc_parse_vsock(const grpc_core::URI& uri,
164
161
  grpc_resolved_address* resolved_addr) {
165
162
  if (uri.scheme() != "vsock") {
166
- gpr_log(GPR_ERROR, "Expected 'vsock' scheme, got '%s'",
167
- uri.scheme().c_str());
163
+ LOG(ERROR) << "Expected 'vsock' scheme, got '" << uri.scheme() << "'";
168
164
  return false;
169
165
  }
170
166
  grpc_error_handle error =
171
167
  grpc_core::VSockaddrPopulate(uri.path(), resolved_addr);
172
168
  if (!error.ok()) {
173
- gpr_log(GPR_ERROR, "%s", grpc_core::StatusToString(error).c_str());
169
+ LOG(ERROR) << "" << grpc_core::StatusToString(error);
174
170
  return false;
175
171
  }
176
172
  return true;
@@ -220,8 +216,7 @@ bool grpc_parse_ipv4_hostport(absl::string_view hostport,
220
216
  std::string port;
221
217
  if (!grpc_core::SplitHostPort(hostport, &host, &port)) {
222
218
  if (log_errors) {
223
- gpr_log(GPR_ERROR, "Failed gpr_split_host_port(%s, ...)",
224
- std::string(hostport).c_str());
219
+ LOG(ERROR) << "Failed gpr_split_host_port(" << hostport << ", ...)";
225
220
  }
226
221
  return false;
227
222
  }
@@ -232,19 +227,19 @@ bool grpc_parse_ipv4_hostport(absl::string_view hostport,
232
227
  in->sin_family = GRPC_AF_INET;
233
228
  if (grpc_inet_pton(GRPC_AF_INET, host.c_str(), &in->sin_addr) == 0) {
234
229
  if (log_errors) {
235
- gpr_log(GPR_ERROR, "invalid ipv4 address: '%s'", host.c_str());
230
+ LOG(ERROR) << "invalid ipv4 address: '" << host << "'";
236
231
  }
237
232
  goto done;
238
233
  }
239
234
  // Parse port.
240
235
  if (port.empty()) {
241
- if (log_errors) gpr_log(GPR_ERROR, "no port given for ipv4 scheme");
236
+ if (log_errors) LOG(ERROR) << "no port given for ipv4 scheme";
242
237
  goto done;
243
238
  }
244
239
  int port_num;
245
240
  if (sscanf(port.c_str(), "%d", &port_num) != 1 || port_num < 0 ||
246
241
  port_num > 65535) {
247
- if (log_errors) gpr_log(GPR_ERROR, "invalid ipv4 port: '%s'", port.c_str());
242
+ if (log_errors) LOG(ERROR) << "invalid ipv4 port: '" << port << "'";
248
243
  goto done;
249
244
  }
250
245
  in->sin_port = grpc_htons(static_cast<uint16_t>(port_num));
@@ -256,8 +251,7 @@ done:
256
251
  bool grpc_parse_ipv4(const grpc_core::URI& uri,
257
252
  grpc_resolved_address* resolved_addr) {
258
253
  if (uri.scheme() != "ipv4") {
259
- gpr_log(GPR_ERROR, "Expected 'ipv4' scheme, got '%s'",
260
- uri.scheme().c_str());
254
+ LOG(ERROR) << "Expected 'ipv4' scheme, got '" << uri.scheme() << "'";
261
255
  return false;
262
256
  }
263
257
  return grpc_parse_ipv4_hostport(absl::StripPrefix(uri.path(), "/"),
@@ -272,8 +266,7 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
272
266
  std::string port;
273
267
  if (!grpc_core::SplitHostPort(hostport, &host, &port)) {
274
268
  if (log_errors) {
275
- gpr_log(GPR_ERROR, "Failed gpr_split_host_port(%s, ...)",
276
- std::string(hostport).c_str());
269
+ LOG(ERROR) << "Failed gpr_split_host_port(" << hostport << ", ...)";
277
270
  }
278
271
  return false;
279
272
  }
@@ -293,11 +286,9 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
293
286
  uint32_t sin6_scope_id = 0;
294
287
  if (host_without_scope_len > GRPC_INET6_ADDRSTRLEN) {
295
288
  if (log_errors) {
296
- gpr_log(
297
- GPR_ERROR,
298
- "invalid ipv6 address length %zu. Length cannot be greater than "
299
- "GRPC_INET6_ADDRSTRLEN i.e %d)",
300
- host_without_scope_len, GRPC_INET6_ADDRSTRLEN);
289
+ LOG(ERROR) << "invalid ipv6 address length " << host_without_scope_len
290
+ << ". Length cannot be greater than "
291
+ << "GRPC_INET6_ADDRSTRLEN i.e " << GRPC_INET6_ADDRSTRLEN;
301
292
  }
302
293
  goto done;
303
294
  }
@@ -306,7 +297,7 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
306
297
  if (grpc_inet_pton(GRPC_AF_INET6, host_without_scope, &in6->sin6_addr) ==
307
298
  0) {
308
299
  if (log_errors) {
309
- gpr_log(GPR_ERROR, "invalid ipv6 address: '%s'", host_without_scope);
300
+ LOG(ERROR) << "invalid ipv6 address: '" << host_without_scope << "'";
310
301
  }
311
302
  goto done;
312
303
  }
@@ -314,10 +305,8 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
314
305
  host.size() - host_without_scope_len - 1,
315
306
  &sin6_scope_id) == 0) {
316
307
  if ((sin6_scope_id = grpc_if_nametoindex(host_end + 1)) == 0) {
317
- gpr_log(GPR_ERROR,
318
- "Invalid interface name: '%s'. "
319
- "Non-numeric and failed if_nametoindex.",
320
- host_end + 1);
308
+ LOG(ERROR) << "Invalid interface name: '" << host_end + 1
309
+ << "'. Non-numeric and failed if_nametoindex.";
321
310
  goto done;
322
311
  }
323
312
  }
@@ -326,20 +315,20 @@ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
326
315
  } else {
327
316
  if (grpc_inet_pton(GRPC_AF_INET6, host.c_str(), &in6->sin6_addr) == 0) {
328
317
  if (log_errors) {
329
- gpr_log(GPR_ERROR, "invalid ipv6 address: '%s'", host.c_str());
318
+ LOG(ERROR) << "invalid ipv6 address: '" << host << "'";
330
319
  }
331
320
  goto done;
332
321
  }
333
322
  }
334
323
  // Parse port.
335
324
  if (port.empty()) {
336
- if (log_errors) gpr_log(GPR_ERROR, "no port given for ipv6 scheme");
325
+ if (log_errors) LOG(ERROR) << "no port given for ipv6 scheme";
337
326
  goto done;
338
327
  }
339
328
  int port_num;
340
329
  if (sscanf(port.c_str(), "%d", &port_num) != 1 || port_num < 0 ||
341
330
  port_num > 65535) {
342
- if (log_errors) gpr_log(GPR_ERROR, "invalid ipv6 port: '%s'", port.c_str());
331
+ if (log_errors) LOG(ERROR) << "invalid ipv6 port: '" << port << "'";
343
332
  goto done;
344
333
  }
345
334
  in6->sin6_port = grpc_htons(static_cast<uint16_t>(port_num));
@@ -351,8 +340,7 @@ done:
351
340
  bool grpc_parse_ipv6(const grpc_core::URI& uri,
352
341
  grpc_resolved_address* resolved_addr) {
353
342
  if (uri.scheme() != "ipv6") {
354
- gpr_log(GPR_ERROR, "Expected 'ipv6' scheme, got '%s'",
355
- uri.scheme().c_str());
343
+ LOG(ERROR) << "Expected 'ipv6' scheme, got '" << uri.scheme() << "'";
356
344
  return false;
357
345
  }
358
346
  return grpc_parse_ipv6_hostport(absl::StripPrefix(uri.path(), "/"),
@@ -376,7 +364,7 @@ bool grpc_parse_uri(const grpc_core::URI& uri,
376
364
  if (uri.scheme() == "ipv6") {
377
365
  return grpc_parse_ipv6(uri, resolved_addr);
378
366
  }
379
- gpr_log(GPR_ERROR, "Can't parse scheme '%s'", uri.scheme().c_str());
367
+ LOG(ERROR) << "Can't parse scheme '" << uri.scheme() << "'";
380
368
  return false;
381
369
  }
382
370
 
@@ -32,12 +32,11 @@
32
32
  #include <string>
33
33
  #include <utility>
34
34
 
35
+ #include "absl/log/log.h"
35
36
  #include "absl/status/status.h"
36
37
  #include "absl/strings/str_cat.h"
37
38
  #include "absl/strings/str_format.h"
38
39
 
39
- #include <grpc/support/log.h>
40
-
41
40
  #include "src/core/lib/gprpp/crash.h"
42
41
  #include "src/core/lib/gprpp/host_port.h"
43
42
  #include "src/core/lib/iomgr/port.h"
@@ -372,8 +371,8 @@ int grpc_sockaddr_get_port(const grpc_resolved_address* resolved_addr) {
372
371
  return 1;
373
372
  #endif
374
373
  default:
375
- gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_get_port",
376
- addr->sa_family);
374
+ LOG(ERROR) << "Unknown socket family " << addr->sa_family
375
+ << " in grpc_sockaddr_get_port";
377
376
  return 0;
378
377
  }
379
378
  }
@@ -394,8 +393,8 @@ int grpc_sockaddr_set_port(grpc_resolved_address* resolved_addr, int port) {
394
393
  grpc_htons(static_cast<uint16_t>(port));
395
394
  return 1;
396
395
  default:
397
- gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_set_port",
398
- addr->sa_family);
396
+ LOG(ERROR) << "Unknown socket family " << addr->sa_family
397
+ << " in grpc_sockaddr_set_port";
399
398
  return 0;
400
399
  }
401
400
  }
@@ -23,9 +23,9 @@
23
23
 
24
24
  #include <grpc/support/port_platform.h>
25
25
 
26
- #include "src/core/lib/gpr/useful.h"
27
26
  #include "src/core/lib/gprpp/ref_counted.h"
28
27
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
28
+ #include "src/core/util/useful.h"
29
29
 
30
30
  namespace grpc_core {
31
31