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
@@ -1,474 +0,0 @@
1
- // Copyright 2023 gRPC authors.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- #ifndef GRPC_SRC_CORE_LIB_TRANSPORT_BATCH_BUILDER_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_BATCH_BUILDER_H
17
-
18
- #include <stdint.h>
19
-
20
- #include <memory>
21
- #include <string>
22
- #include <utility>
23
-
24
- #include "absl/status/status.h"
25
- #include "absl/status/statusor.h"
26
- #include "absl/strings/str_format.h"
27
- #include "absl/strings/string_view.h"
28
- #include "absl/types/optional.h"
29
-
30
- #include <grpc/status.h>
31
- #include <grpc/support/log.h>
32
- #include <grpc/support/port_platform.h>
33
-
34
- #include "src/core/lib/channel/channel_stack.h"
35
- #include "src/core/lib/debug/trace.h"
36
- #include "src/core/lib/gprpp/ref_counted_ptr.h"
37
- #include "src/core/lib/gprpp/status_helper.h"
38
- #include "src/core/lib/iomgr/closure.h"
39
- #include "src/core/lib/iomgr/error.h"
40
- #include "src/core/lib/promise/activity.h"
41
- #include "src/core/lib/promise/context.h"
42
- #include "src/core/lib/promise/latch.h"
43
- #include "src/core/lib/promise/map.h"
44
- #include "src/core/lib/promise/party.h"
45
- #include "src/core/lib/resource_quota/arena.h"
46
- #include "src/core/lib/slice/slice_buffer.h"
47
- #include "src/core/lib/surface/call.h"
48
- #include "src/core/lib/surface/call_trace.h"
49
- #include "src/core/lib/transport/metadata_batch.h"
50
- #include "src/core/lib/transport/transport.h"
51
-
52
- namespace grpc_core {
53
-
54
- // Build up a transport stream op batch for a stream for a promise based
55
- // connected channel.
56
- // Offered as a context from Call, so that it can collect ALL the updates during
57
- // a single party round, and then push them down to the transport as a single
58
- // transaction.
59
- class BatchBuilder {
60
- public:
61
- explicit BatchBuilder(grpc_transport_stream_op_batch_payload* payload);
62
- ~BatchBuilder() {
63
- if (batch_ != nullptr) FlushBatch();
64
- }
65
-
66
- struct Target {
67
- Transport* transport;
68
- grpc_stream* stream;
69
- grpc_stream_refcount* stream_refcount;
70
- };
71
-
72
- BatchBuilder(const BatchBuilder&) = delete;
73
- BatchBuilder& operator=(const BatchBuilder&) = delete;
74
-
75
- // Returns a promise that will resolve to a Status when the send is completed.
76
- auto SendMessage(Target target, MessageHandle message);
77
-
78
- // Returns a promise that will resolve to a Status when the send is completed.
79
- auto SendClientInitialMetadata(Target target, ClientMetadataHandle metadata);
80
-
81
- // Returns a promise that will resolve to a Status when the send is completed.
82
- auto SendClientTrailingMetadata(Target target);
83
-
84
- // Returns a promise that will resolve to a Status when the send is completed.
85
- auto SendServerInitialMetadata(Target target, ServerMetadataHandle metadata);
86
-
87
- // Returns a promise that will resolve to a ServerMetadataHandle when the send
88
- // is completed.
89
- //
90
- // If convert_to_cancellation is true, then the status will be converted to a
91
- // cancellation batch instead of a trailing metadata op in a coalesced batch.
92
- //
93
- // This quirk exists as in the filter based stack upon which our transports
94
- // were written if a trailing metadata op were sent it always needed to be
95
- // paired with an initial op batch, and the transports would wait for the
96
- // initial metadata batch to arrive (in case of reordering up the stack).
97
- auto SendServerTrailingMetadata(Target target, ServerMetadataHandle metadata,
98
- bool convert_to_cancellation);
99
-
100
- // Returns a promise that will resolve to a StatusOr<optional<MessageHandle>>
101
- // when a message is received.
102
- // Error => non-ok status
103
- // End of stream => Ok, nullopt (no message)
104
- // Message => Ok, message
105
- auto ReceiveMessage(Target target);
106
-
107
- // Returns a promise that will resolve to a StatusOr<ClientMetadataHandle>
108
- // when the receive is complete.
109
- auto ReceiveClientInitialMetadata(Target target);
110
-
111
- // Returns a promise that will resolve to a StatusOr<ClientMetadataHandle>
112
- // when the receive is complete.
113
- auto ReceiveClientTrailingMetadata(Target target);
114
-
115
- // Returns a promise that will resolve to a StatusOr<ServerMetadataHandle>
116
- // when the receive is complete.
117
- auto ReceiveServerInitialMetadata(Target target);
118
-
119
- // Returns a promise that will resolve to a StatusOr<ServerMetadataHandle>
120
- // when the receive is complete.
121
- auto ReceiveServerTrailingMetadata(Target target);
122
-
123
- // Send a cancellation: does not occupy the same payload, nor does it
124
- // coalesce with other ops.
125
- void Cancel(Target target, absl::Status status);
126
-
127
- private:
128
- struct Batch;
129
-
130
- // Base pending operation
131
- struct PendingCompletion {
132
- explicit PendingCompletion(RefCountedPtr<Batch> batch);
133
- virtual absl::string_view name() const = 0;
134
- static void CompletionCallback(void* self, grpc_error_handle error);
135
- grpc_closure on_done_closure;
136
- Latch<absl::Status> done_latch;
137
- RefCountedPtr<Batch> batch;
138
-
139
- protected:
140
- ~PendingCompletion() = default;
141
- };
142
-
143
- // A pending receive message.
144
- struct PendingReceiveMessage final : public PendingCompletion {
145
- using PendingCompletion::PendingCompletion;
146
-
147
- absl::string_view name() const override { return "receive_message"; }
148
-
149
- MessageHandle IntoMessageHandle() {
150
- return Arena::MakePooled<Message>(std::move(*payload), flags);
151
- }
152
-
153
- absl::optional<SliceBuffer> payload;
154
- uint32_t flags;
155
- bool call_failed_before_recv_message = false;
156
- };
157
-
158
- // A pending receive metadata.
159
- struct PendingReceiveMetadata : public PendingCompletion {
160
- using PendingCompletion::PendingCompletion;
161
-
162
- Arena::PoolPtr<grpc_metadata_batch> metadata =
163
- Arena::MakePooled<grpc_metadata_batch>();
164
-
165
- protected:
166
- ~PendingReceiveMetadata() = default;
167
- };
168
-
169
- struct PendingReceiveInitialMetadata final : public PendingReceiveMetadata {
170
- using PendingReceiveMetadata::PendingReceiveMetadata;
171
- absl::string_view name() const override {
172
- return "receive_initial_metadata";
173
- }
174
- };
175
-
176
- struct PendingReceiveTrailingMetadata final : public PendingReceiveMetadata {
177
- using PendingReceiveMetadata::PendingReceiveMetadata;
178
- absl::string_view name() const override {
179
- return "receive_trailing_metadata";
180
- }
181
- };
182
-
183
- // Pending sends in a batch
184
- struct PendingSends final : public PendingCompletion {
185
- using PendingCompletion::PendingCompletion;
186
-
187
- absl::string_view name() const override { return "sends"; }
188
-
189
- MessageHandle send_message;
190
- Arena::PoolPtr<grpc_metadata_batch> send_initial_metadata;
191
- Arena::PoolPtr<grpc_metadata_batch> send_trailing_metadata;
192
- bool trailing_metadata_sent = false;
193
- };
194
-
195
- // One outstanding batch.
196
- struct Batch final {
197
- Batch(grpc_transport_stream_op_batch_payload* payload,
198
- grpc_stream_refcount* stream_refcount);
199
- ~Batch();
200
- Batch(const Batch&) = delete;
201
- Batch& operator=(const Batch&) = delete;
202
- std::string DebugPrefix(Activity* activity = GetContext<Activity>()) const {
203
- return absl::StrFormat("%s[connected] [batch %p] ", activity->DebugTag(),
204
- this);
205
- }
206
-
207
- void IncrementRefCount() { ++refs; }
208
- void Unref() {
209
- if (--refs == 0) delete this;
210
- }
211
- RefCountedPtr<Batch> Ref() {
212
- IncrementRefCount();
213
- return RefCountedPtr<Batch>(this);
214
- }
215
- // Get an initialized pending completion.
216
- // There are four pending completions potentially contained within a batch.
217
- // They can be rather large so we don't create all of them always. Instead,
218
- // we dynamically create them on the arena as needed.
219
- // This method either returns the existing completion in a batch if that
220
- // completion has already been initialized, or it creates a new completion
221
- // and returns that.
222
- template <typename T>
223
- T* GetInitializedCompletion(T*(Batch::*field)) {
224
- if (this->*field != nullptr) return this->*field;
225
- this->*field = new T(Ref());
226
- if (grpc_call_trace.enabled()) {
227
- gpr_log(GPR_DEBUG, "%sAdd batch closure for %s @ %s",
228
- DebugPrefix().c_str(),
229
- std::string((this->*field)->name()).c_str(),
230
- (this->*field)->on_done_closure.DebugString().c_str());
231
- }
232
- return this->*field;
233
- }
234
- // grpc_transport_perform_stream_op on target.stream
235
- void PerformWith(Target target);
236
- // Take a promise, and return a promise that holds a ref on this batch until
237
- // the promise completes or is cancelled.
238
- template <typename P>
239
- auto RefUntil(P promise) {
240
- return [self = Ref(), promise = std::move(promise)]() mutable {
241
- return promise();
242
- };
243
- }
244
-
245
- grpc_transport_stream_op_batch batch;
246
- PendingReceiveMessage* pending_receive_message = nullptr;
247
- PendingReceiveInitialMetadata* pending_receive_initial_metadata = nullptr;
248
- PendingReceiveTrailingMetadata* pending_receive_trailing_metadata = nullptr;
249
- PendingSends* pending_sends = nullptr;
250
- const RefCountedPtr<Party> party;
251
- grpc_stream_refcount* const stream_refcount;
252
- uint8_t refs = 0;
253
- };
254
-
255
- // Get a batch for the given target.
256
- // Currently: if the current batch is for this target, return it - otherwise
257
- // flush the batch and start a new one (and return that).
258
- // This function may change in the future to allow multiple batches to be
259
- // building at once (if that turns out to be useful for hedging).
260
- Batch* GetBatch(Target target);
261
- // Flush the current batch down to the transport.
262
- void FlushBatch();
263
- // Create a cancel batch with its own payload.
264
- Batch* MakeCancel(grpc_stream_refcount* stream_refcount, absl::Status status);
265
-
266
- // Note: we don't distinguish between client and server metadata here.
267
- // At the time of writing they're both the same thing - and it's unclear
268
- // whether we'll get to separate them prior to batches going away or not.
269
- // So for now we claim YAGNI and just do the simplest possible implementation.
270
- auto SendInitialMetadata(Target target,
271
- Arena::PoolPtr<grpc_metadata_batch> md);
272
- auto ReceiveInitialMetadata(Target target);
273
- auto ReceiveTrailingMetadata(Target target);
274
-
275
- // Combine send status and server metadata into a final status to report back
276
- // to the containing call.
277
- static ServerMetadataHandle CompleteSendServerTrailingMetadata(
278
- Batch* batch, ServerMetadataHandle sent_metadata,
279
- absl::Status send_result, bool actually_sent);
280
-
281
- grpc_transport_stream_op_batch_payload* const payload_;
282
- absl::optional<Target> target_;
283
- Batch* batch_ = nullptr;
284
- };
285
-
286
- inline auto BatchBuilder::SendMessage(Target target, MessageHandle message) {
287
- auto* batch = GetBatch(target);
288
- if (grpc_call_trace.enabled()) {
289
- gpr_log(GPR_DEBUG, "%sQueue send message: %s", batch->DebugPrefix().c_str(),
290
- message->DebugString().c_str());
291
- }
292
- auto* pc = batch->GetInitializedCompletion(&Batch::pending_sends);
293
- batch->batch.on_complete = &pc->on_done_closure;
294
- batch->batch.send_message = true;
295
- payload_->send_message.send_message = message->payload();
296
- payload_->send_message.flags = message->flags();
297
- pc->send_message = std::move(message);
298
- return batch->RefUntil(pc->done_latch.WaitAndCopy());
299
- }
300
-
301
- inline auto BatchBuilder::SendInitialMetadata(
302
- Target target, Arena::PoolPtr<grpc_metadata_batch> md) {
303
- auto* batch = GetBatch(target);
304
- if (grpc_call_trace.enabled()) {
305
- gpr_log(GPR_DEBUG, "%sQueue send initial metadata: %s",
306
- batch->DebugPrefix().c_str(), md->DebugString().c_str());
307
- }
308
- auto* pc = batch->GetInitializedCompletion(&Batch::pending_sends);
309
- batch->batch.on_complete = &pc->on_done_closure;
310
- batch->batch.send_initial_metadata = true;
311
- payload_->send_initial_metadata.send_initial_metadata = md.get();
312
- pc->send_initial_metadata = std::move(md);
313
- return batch->RefUntil(pc->done_latch.WaitAndCopy());
314
- }
315
-
316
- inline auto BatchBuilder::SendClientInitialMetadata(
317
- Target target, ClientMetadataHandle metadata) {
318
- return SendInitialMetadata(target, std::move(metadata));
319
- }
320
-
321
- inline auto BatchBuilder::SendClientTrailingMetadata(Target target) {
322
- auto* batch = GetBatch(target);
323
- if (grpc_call_trace.enabled()) {
324
- gpr_log(GPR_DEBUG, "%sQueue send trailing metadata",
325
- batch->DebugPrefix().c_str());
326
- }
327
- auto* pc = batch->GetInitializedCompletion(&Batch::pending_sends);
328
- batch->batch.on_complete = &pc->on_done_closure;
329
- batch->batch.send_trailing_metadata = true;
330
- auto metadata = Arena::MakePooled<grpc_metadata_batch>();
331
- payload_->send_trailing_metadata.send_trailing_metadata = metadata.get();
332
- payload_->send_trailing_metadata.sent = nullptr;
333
- pc->send_trailing_metadata = std::move(metadata);
334
- return batch->RefUntil(pc->done_latch.WaitAndCopy());
335
- }
336
-
337
- inline auto BatchBuilder::SendServerInitialMetadata(
338
- Target target, ServerMetadataHandle metadata) {
339
- return SendInitialMetadata(target, std::move(metadata));
340
- }
341
-
342
- inline auto BatchBuilder::SendServerTrailingMetadata(
343
- Target target, ServerMetadataHandle metadata,
344
- bool convert_to_cancellation) {
345
- Batch* batch;
346
- PendingSends* pc;
347
- if (convert_to_cancellation) {
348
- const auto status_code =
349
- metadata->get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN);
350
- auto status = grpc_error_set_int(
351
- absl::Status(static_cast<absl::StatusCode>(status_code),
352
- metadata->GetOrCreatePointer(GrpcMessageMetadata())
353
- ->as_string_view()),
354
- StatusIntProperty::kRpcStatus, status_code);
355
- batch = MakeCancel(target.stream_refcount, std::move(status));
356
- pc = batch->GetInitializedCompletion(&Batch::pending_sends);
357
- } else {
358
- batch = GetBatch(target);
359
- pc = batch->GetInitializedCompletion(&Batch::pending_sends);
360
- batch->batch.send_trailing_metadata = true;
361
- payload_->send_trailing_metadata.send_trailing_metadata = metadata.get();
362
- payload_->send_trailing_metadata.sent = &pc->trailing_metadata_sent;
363
- }
364
- if (grpc_call_trace.enabled()) {
365
- gpr_log(GPR_DEBUG, "%s%s: %s", batch->DebugPrefix().c_str(),
366
- convert_to_cancellation ? "Send trailing metadata as cancellation"
367
- : "Queue send trailing metadata",
368
- metadata->DebugString().c_str());
369
- }
370
- batch->batch.on_complete = &pc->on_done_closure;
371
- pc->send_trailing_metadata = std::move(metadata);
372
- auto promise = Map(pc->done_latch.WaitAndCopy(),
373
- [pc, batch = batch->Ref()](absl::Status status) {
374
- return CompleteSendServerTrailingMetadata(
375
- batch.get(), std::move(pc->send_trailing_metadata),
376
- std::move(status), pc->trailing_metadata_sent);
377
- });
378
- if (convert_to_cancellation) {
379
- batch->PerformWith(target);
380
- }
381
- return promise;
382
- }
383
-
384
- inline auto BatchBuilder::ReceiveMessage(Target target) {
385
- auto* batch = GetBatch(target);
386
- if (grpc_call_trace.enabled()) {
387
- gpr_log(GPR_DEBUG, "%sQueue receive message", batch->DebugPrefix().c_str());
388
- }
389
- auto* pc = batch->GetInitializedCompletion(&Batch::pending_receive_message);
390
- batch->batch.recv_message = true;
391
- payload_->recv_message.recv_message_ready = &pc->on_done_closure;
392
- payload_->recv_message.recv_message = &pc->payload;
393
- payload_->recv_message.flags = &pc->flags;
394
- payload_->recv_message.call_failed_before_recv_message =
395
- &pc->call_failed_before_recv_message;
396
- return batch->RefUntil(
397
- Map(pc->done_latch.Wait(),
398
- [pc](absl::Status status)
399
- -> absl::StatusOr<absl::optional<MessageHandle>> {
400
- if (!status.ok()) return status;
401
- if (!pc->payload.has_value()) {
402
- if (pc->call_failed_before_recv_message) {
403
- return absl::CancelledError();
404
- }
405
- return absl::nullopt;
406
- }
407
- return pc->IntoMessageHandle();
408
- }));
409
- }
410
-
411
- inline auto BatchBuilder::ReceiveInitialMetadata(Target target) {
412
- auto* batch = GetBatch(target);
413
- if (grpc_call_trace.enabled()) {
414
- gpr_log(GPR_DEBUG, "%sQueue receive initial metadata",
415
- batch->DebugPrefix().c_str());
416
- }
417
- auto* pc =
418
- batch->GetInitializedCompletion(&Batch::pending_receive_initial_metadata);
419
- batch->batch.recv_initial_metadata = true;
420
- payload_->recv_initial_metadata.recv_initial_metadata_ready =
421
- &pc->on_done_closure;
422
- payload_->recv_initial_metadata.recv_initial_metadata = pc->metadata.get();
423
- return batch->RefUntil(
424
- Map(pc->done_latch.Wait(),
425
- [pc](absl::Status status) -> absl::StatusOr<ClientMetadataHandle> {
426
- if (!status.ok()) return status;
427
- return std::move(pc->metadata);
428
- }));
429
- }
430
-
431
- inline auto BatchBuilder::ReceiveClientInitialMetadata(Target target) {
432
- return ReceiveInitialMetadata(target);
433
- }
434
-
435
- inline auto BatchBuilder::ReceiveServerInitialMetadata(Target target) {
436
- return ReceiveInitialMetadata(target);
437
- }
438
-
439
- inline auto BatchBuilder::ReceiveTrailingMetadata(Target target) {
440
- auto* batch = GetBatch(target);
441
- if (grpc_call_trace.enabled()) {
442
- gpr_log(GPR_DEBUG, "%sQueue receive trailing metadata",
443
- batch->DebugPrefix().c_str());
444
- }
445
- auto* pc = batch->GetInitializedCompletion(
446
- &Batch::pending_receive_trailing_metadata);
447
- batch->batch.recv_trailing_metadata = true;
448
- payload_->recv_trailing_metadata.recv_trailing_metadata_ready =
449
- &pc->on_done_closure;
450
- payload_->recv_trailing_metadata.recv_trailing_metadata = pc->metadata.get();
451
- payload_->recv_trailing_metadata.collect_stats =
452
- &GetContext<CallContext>()->call_stats()->transport_stream_stats;
453
- return batch->RefUntil(
454
- Map(pc->done_latch.Wait(),
455
- [pc](absl::Status status) -> absl::StatusOr<ServerMetadataHandle> {
456
- if (!status.ok()) return status;
457
- return std::move(pc->metadata);
458
- }));
459
- }
460
-
461
- inline auto BatchBuilder::ReceiveClientTrailingMetadata(Target target) {
462
- return ReceiveTrailingMetadata(target);
463
- }
464
-
465
- inline auto BatchBuilder::ReceiveServerTrailingMetadata(Target target) {
466
- return ReceiveTrailingMetadata(target);
467
- }
468
-
469
- template <>
470
- struct ContextType<BatchBuilder> {};
471
-
472
- } // namespace grpc_core
473
-
474
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_BATCH_BUILDER_H
@@ -1,25 +0,0 @@
1
- //
2
- // Copyright 2019 gRPC authors.
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- //
16
-
17
- #include "src/core/resolver/xds/xds_resolver_trace.h"
18
-
19
- #include <grpc/support/port_platform.h>
20
-
21
- namespace grpc_core {
22
-
23
- TraceFlag grpc_xds_resolver_trace(false, "xds_resolver");
24
-
25
- } // namespace grpc_core
@@ -1,30 +0,0 @@
1
- //
2
- // Copyright 2019 gRPC authors.
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- //
16
-
17
- #ifndef GRPC_SRC_CORE_RESOLVER_XDS_XDS_RESOLVER_TRACE_H
18
- #define GRPC_SRC_CORE_RESOLVER_XDS_XDS_RESOLVER_TRACE_H
19
-
20
- #include <grpc/support/port_platform.h>
21
-
22
- #include "src/core/lib/debug/trace.h"
23
-
24
- namespace grpc_core {
25
-
26
- extern TraceFlag grpc_xds_resolver_trace;
27
-
28
- } // namespace grpc_core
29
-
30
- #endif // GRPC_SRC_CORE_RESOLVER_XDS_XDS_RESOLVER_TRACE_H
@@ -1,122 +0,0 @@
1
- /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
2
- * All rights reserved.
3
- *
4
- * This package is an SSL implementation written
5
- * by Eric Young (eay@cryptsoft.com).
6
- * The implementation was written so as to conform with Netscapes SSL.
7
- *
8
- * This library is free for commercial and non-commercial use as long as
9
- * the following conditions are aheared to. The following conditions
10
- * apply to all code found in this distribution, be it the RC4, RSA,
11
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
12
- * included with this distribution is covered by the same copyright terms
13
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14
- *
15
- * Copyright remains Eric Young's, and as such any Copyright notices in
16
- * the code are not to be removed.
17
- * If this package is used in a product, Eric Young should be given attribution
18
- * as the author of the parts of the library used.
19
- * This can be in the form of a textual message at program startup or
20
- * in documentation (online or textual) provided with the package.
21
- *
22
- * Redistribution and use in source and binary forms, with or without
23
- * modification, are permitted provided that the following conditions
24
- * are met:
25
- * 1. Redistributions of source code must retain the copyright
26
- * notice, this list of conditions and the following disclaimer.
27
- * 2. Redistributions in binary form must reproduce the above copyright
28
- * notice, this list of conditions and the following disclaimer in the
29
- * documentation and/or other materials provided with the distribution.
30
- * 3. All advertising materials mentioning features or use of this software
31
- * must display the following acknowledgement:
32
- * "This product includes cryptographic software written by
33
- * Eric Young (eay@cryptsoft.com)"
34
- * The word 'cryptographic' can be left out if the rouines from the library
35
- * being used are not cryptographic related :-).
36
- * 4. If you include any Windows specific code (or a derivative thereof) from
37
- * the apps directory (application code) you must include an acknowledgement:
38
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
39
- *
40
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
41
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
44
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50
- * SUCH DAMAGE.
51
- *
52
- * The licence and distribution terms for any publically available version or
53
- * derivative of this code cannot be changed. i.e. this code cannot simply be
54
- * copied and put under another distribution licence
55
- * [including the GNU Public Licence.]
56
- */
57
-
58
- // This file was historically generated by keysets.pl in OpenSSL.
59
- //
60
- // TODO(davidben): Replace it with something more readable.
61
-
62
- #define CONF_NUMBER 1
63
- #define CONF_UPPER 2
64
- #define CONF_LOWER 4
65
- #define CONF_UNDER 256
66
- #define CONF_PUNCTUATION 512
67
- #define CONF_WS 16
68
- #define CONF_ESC 32
69
- #define CONF_QUOTE 64
70
- #define CONF_COMMENT 128
71
- #define CONF_EOF 8
72
- #define CONF_HIGHBIT 4096
73
- #define CONF_ALPHA (CONF_UPPER|CONF_LOWER)
74
- #define CONF_ALPHA_NUMERIC (CONF_ALPHA|CONF_NUMBER|CONF_UNDER)
75
- #define CONF_ALPHA_NUMERIC_PUNCT (CONF_ALPHA|CONF_NUMBER|CONF_UNDER| \
76
- CONF_PUNCTUATION)
77
-
78
- #define KEYTYPES(c) CONF_type_default
79
- #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT)
80
- #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF)
81
- #define IS_ESC(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_ESC)
82
- #define IS_NUMBER(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_NUMBER)
83
- #define IS_WS(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_WS)
84
- #define IS_ALPHA_NUMERIC(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_ALPHA_NUMERIC)
85
- #define IS_ALPHA_NUMERIC_PUNCT(c,a) \
86
- (KEYTYPES(c)[(a)&0xff]&CONF_ALPHA_NUMERIC_PUNCT)
87
- #define IS_QUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_QUOTE)
88
-
89
- static const unsigned short CONF_type_default[256]={
90
- 0x0008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
91
- 0x0000,0x0010,0x0010,0x0000,0x0000,0x0010,0x0000,0x0000,
92
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
93
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
94
- 0x0010,0x0200,0x0040,0x0080,0x0000,0x0200,0x0200,0x0040,
95
- 0x0000,0x0000,0x0200,0x0200,0x0200,0x0200,0x0200,0x0200,
96
- 0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
97
- 0x0001,0x0001,0x0000,0x0200,0x0000,0x0000,0x0000,0x0200,
98
- 0x0200,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
99
- 0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
100
- 0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
101
- 0x0002,0x0002,0x0002,0x0000,0x0020,0x0000,0x0200,0x0100,
102
- 0x0040,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
103
- 0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
104
- 0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
105
- 0x0004,0x0004,0x0004,0x0000,0x0200,0x0000,0x0200,0x0000,
106
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
107
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
108
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
109
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
110
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
111
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
112
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
113
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
114
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
115
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
116
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
117
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
118
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
119
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
120
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
121
- 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
122
- };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes