grpc 1.50.0.pre1 → 1.51.0

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

Potentially problematic release.


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

Files changed (459) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +131 -42
  3. data/include/grpc/event_engine/event_engine.h +10 -3
  4. data/include/grpc/event_engine/slice_buffer.h +17 -0
  5. data/include/grpc/grpc.h +0 -10
  6. data/include/grpc/impl/codegen/grpc_types.h +1 -5
  7. data/include/grpc/impl/codegen/port_platform.h +0 -3
  8. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +19 -13
  9. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +1 -0
  10. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  11. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -5
  12. data/src/core/ext/filters/client_channel/client_channel.cc +120 -140
  13. data/src/core/ext/filters/client_channel/client_channel.h +3 -4
  14. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +0 -2
  15. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  16. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
  17. data/src/core/ext/filters/client_channel/{resolver_result_parsing.h → client_channel_service_config.h} +26 -23
  18. data/src/core/ext/filters/client_channel/connector.h +1 -1
  19. data/src/core/ext/filters/client_channel/dynamic_filters.cc +20 -47
  20. data/src/core/ext/filters/client_channel/dynamic_filters.h +7 -8
  21. data/src/core/ext/filters/client_channel/health/health_check_client.cc +3 -4
  22. data/src/core/ext/filters/client_channel/http_proxy.cc +0 -1
  23. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +3 -4
  24. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +5 -0
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +8 -7
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +35 -44
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -1
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -3
  29. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +3 -4
  30. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +41 -29
  32. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +2 -2
  33. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +9 -11
  34. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +15 -12
  35. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +8 -10
  36. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +26 -27
  37. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +7 -9
  38. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +44 -26
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +17 -27
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
  41. data/src/core/ext/filters/client_channel/lb_policy/xds/{xds.h → xds_attributes.h} +15 -17
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +13 -7
  43. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +48 -47
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +40 -126
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +364 -0
  46. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +9 -9
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -32
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -2
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +22 -23
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +50 -52
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  52. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +2 -4
  53. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -3
  54. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +34 -26
  55. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -4
  56. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -7
  57. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +63 -46
  58. data/src/core/ext/filters/client_channel/retry_filter.cc +80 -102
  59. data/src/core/ext/filters/client_channel/retry_service_config.cc +192 -234
  60. data/src/core/ext/filters/client_channel/retry_service_config.h +20 -23
  61. data/src/core/ext/filters/client_channel/retry_throttle.cc +8 -8
  62. data/src/core/ext/filters/client_channel/retry_throttle.h +8 -7
  63. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -2
  64. data/src/core/ext/filters/client_channel/subchannel.cc +21 -25
  65. data/src/core/ext/filters/client_channel/subchannel.h +2 -2
  66. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +11 -12
  67. data/src/core/ext/filters/deadline/deadline_filter.cc +13 -14
  68. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
  69. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -4
  70. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
  71. data/src/core/ext/filters/fault_injection/{service_config_parser.h → fault_injection_service_config_parser.h} +20 -12
  72. data/src/core/ext/filters/http/client/http_client_filter.cc +16 -16
  73. data/src/core/ext/filters/http/client_authority_filter.cc +1 -1
  74. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +13 -13
  75. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +34 -34
  76. data/src/core/ext/filters/http/server/http_server_filter.cc +26 -25
  77. data/src/core/ext/filters/message_size/message_size_filter.cc +86 -117
  78. data/src/core/ext/filters/message_size/message_size_filter.h +22 -15
  79. data/src/core/ext/filters/rbac/rbac_filter.cc +12 -12
  80. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +728 -530
  81. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -3
  82. data/src/core/ext/filters/server_config_selector/server_config_selector.h +1 -1
  83. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -7
  84. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +17 -21
  85. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +57 -72
  86. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +5 -5
  87. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -1
  88. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +212 -253
  89. data/src/core/ext/transport/chttp2/transport/flow_control.cc +42 -11
  90. data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -3
  91. data/src/core/ext/transport/chttp2/transport/frame_data.cc +16 -15
  92. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
  93. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +13 -13
  94. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -3
  95. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +10 -7
  96. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +15 -17
  97. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +5 -4
  98. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -6
  99. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -1
  100. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +2 -1
  101. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +31 -39
  102. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +7 -6
  103. data/src/core/ext/transport/chttp2/transport/internal.h +24 -8
  104. data/src/core/ext/transport/chttp2/transport/parsing.cc +51 -52
  105. data/src/core/ext/transport/chttp2/transport/varint.cc +2 -3
  106. data/src/core/ext/transport/chttp2/transport/varint.h +11 -8
  107. data/src/core/ext/transport/chttp2/transport/writing.cc +16 -16
  108. data/src/core/ext/transport/inproc/inproc_transport.cc +97 -115
  109. data/src/core/ext/xds/certificate_provider_store.cc +4 -4
  110. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -7
  111. data/src/core/ext/xds/xds_api.cc +15 -68
  112. data/src/core/ext/xds/xds_api.h +3 -7
  113. data/src/core/ext/xds/xds_bootstrap.h +0 -1
  114. data/src/core/ext/xds/xds_bootstrap_grpc.cc +3 -12
  115. data/src/core/ext/xds/xds_bootstrap_grpc.h +16 -1
  116. data/src/core/ext/xds/xds_certificate_provider.cc +22 -25
  117. data/src/core/ext/xds/xds_channel_stack_modifier.cc +0 -1
  118. data/src/core/ext/xds/xds_client.cc +122 -90
  119. data/src/core/ext/xds/xds_client.h +7 -2
  120. data/src/core/ext/xds/xds_client_grpc.cc +5 -24
  121. data/src/core/ext/xds/xds_cluster.cc +291 -183
  122. data/src/core/ext/xds/xds_cluster.h +11 -15
  123. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +32 -29
  124. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +35 -16
  125. data/src/core/ext/xds/xds_common_types.cc +208 -141
  126. data/src/core/ext/xds/xds_common_types.h +19 -13
  127. data/src/core/ext/xds/xds_endpoint.cc +214 -129
  128. data/src/core/ext/xds/xds_endpoint.h +4 -7
  129. data/src/core/ext/xds/xds_http_fault_filter.cc +56 -43
  130. data/src/core/ext/xds/xds_http_fault_filter.h +13 -21
  131. data/src/core/ext/xds/xds_http_filters.cc +60 -73
  132. data/src/core/ext/xds/xds_http_filters.h +67 -19
  133. data/src/core/ext/xds/xds_http_rbac_filter.cc +152 -207
  134. data/src/core/ext/xds/xds_http_rbac_filter.h +12 -15
  135. data/src/core/ext/xds/xds_lb_policy_registry.cc +122 -169
  136. data/src/core/ext/xds/xds_lb_policy_registry.h +10 -11
  137. data/src/core/ext/xds/xds_listener.cc +459 -417
  138. data/src/core/ext/xds/xds_listener.h +43 -47
  139. data/src/core/ext/xds/xds_resource_type.h +3 -11
  140. data/src/core/ext/xds/xds_resource_type_impl.h +8 -13
  141. data/src/core/ext/xds/xds_route_config.cc +94 -80
  142. data/src/core/ext/xds/xds_route_config.h +10 -10
  143. data/src/core/ext/xds/xds_routing.cc +2 -1
  144. data/src/core/ext/xds/xds_routing.h +2 -0
  145. data/src/core/ext/xds/xds_server_config_fetcher.cc +109 -94
  146. data/src/core/ext/xds/xds_transport_grpc.cc +4 -5
  147. data/src/core/lib/address_utils/parse_address.cc +11 -10
  148. data/src/core/lib/channel/channel_args.h +16 -1
  149. data/src/core/lib/channel/channel_stack.cc +23 -20
  150. data/src/core/lib/channel/channel_stack.h +17 -4
  151. data/src/core/lib/channel/channel_stack_builder.cc +4 -7
  152. data/src/core/lib/channel/channel_stack_builder.h +14 -6
  153. data/src/core/lib/channel/channel_stack_builder_impl.cc +25 -7
  154. data/src/core/lib/channel/channel_stack_builder_impl.h +2 -0
  155. data/src/core/lib/channel/channel_trace.cc +4 -5
  156. data/src/core/lib/channel/channelz.cc +1 -1
  157. data/src/core/lib/channel/connected_channel.cc +695 -35
  158. data/src/core/lib/channel/connected_channel.h +0 -4
  159. data/src/core/lib/channel/promise_based_filter.cc +1004 -140
  160. data/src/core/lib/channel/promise_based_filter.h +364 -87
  161. data/src/core/lib/compression/message_compress.cc +5 -5
  162. data/src/core/lib/debug/event_log.cc +88 -0
  163. data/src/core/lib/debug/event_log.h +81 -0
  164. data/src/core/lib/debug/histogram_view.cc +69 -0
  165. data/src/core/lib/{slice/slice_refcount.cc → debug/histogram_view.h} +15 -13
  166. data/src/core/lib/debug/stats.cc +22 -119
  167. data/src/core/lib/debug/stats.h +29 -35
  168. data/src/core/lib/debug/stats_data.cc +224 -73
  169. data/src/core/lib/debug/stats_data.h +263 -122
  170. data/src/core/lib/event_engine/common_closures.h +71 -0
  171. data/src/core/lib/event_engine/default_event_engine.cc +38 -15
  172. data/src/core/lib/event_engine/default_event_engine.h +15 -3
  173. data/src/core/lib/event_engine/default_event_engine_factory.cc +2 -4
  174. data/src/core/lib/event_engine/memory_allocator.cc +1 -1
  175. data/src/core/lib/event_engine/poller.h +10 -4
  176. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +618 -0
  177. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +129 -0
  178. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +901 -0
  179. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
  180. data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
  181. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +74 -0
  182. data/src/core/lib/event_engine/{executor/threaded_executor.cc → posix_engine/event_poller_posix_default.h} +13 -16
  183. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
  184. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
  185. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +267 -0
  186. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
  187. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1270 -0
  188. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +682 -0
  189. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +453 -18
  190. data/src/core/lib/event_engine/posix_engine/posix_engine.h +148 -24
  191. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
  192. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1081 -0
  193. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +361 -0
  194. data/src/core/lib/event_engine/posix_engine/timer.h +9 -8
  195. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +57 -194
  196. data/src/core/lib/event_engine/posix_engine/timer_manager.h +21 -49
  197. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +301 -0
  198. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +179 -0
  199. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +126 -0
  200. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
  201. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +151 -0
  202. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +45 -0
  203. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
  204. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
  205. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
  206. data/src/core/lib/event_engine/slice.cc +7 -6
  207. data/src/core/lib/event_engine/slice_buffer.cc +2 -2
  208. data/src/core/lib/event_engine/thread_pool.cc +106 -25
  209. data/src/core/lib/event_engine/thread_pool.h +32 -9
  210. data/src/core/lib/event_engine/windows/win_socket.cc +7 -7
  211. data/src/core/lib/event_engine/windows/windows_engine.cc +18 -12
  212. data/src/core/lib/event_engine/windows/windows_engine.h +8 -4
  213. data/src/core/lib/experiments/config.cc +1 -1
  214. data/src/core/lib/experiments/experiments.cc +13 -2
  215. data/src/core/lib/experiments/experiments.h +8 -1
  216. data/src/core/lib/gpr/cpu_linux.cc +6 -2
  217. data/src/core/lib/gpr/log_linux.cc +3 -4
  218. data/src/core/lib/gpr/string.h +1 -1
  219. data/src/core/lib/gpr/tmpfile_posix.cc +3 -2
  220. data/src/core/lib/gprpp/load_file.cc +75 -0
  221. data/src/core/lib/gprpp/load_file.h +33 -0
  222. data/src/core/lib/gprpp/per_cpu.h +46 -0
  223. data/src/core/lib/gprpp/stat_posix.cc +5 -4
  224. data/src/core/lib/gprpp/stat_windows.cc +3 -2
  225. data/src/core/lib/gprpp/status_helper.h +1 -3
  226. data/src/core/lib/gprpp/strerror.cc +41 -0
  227. data/src/core/{ext/xds/xds_resource_type.cc → lib/gprpp/strerror.h} +9 -13
  228. data/src/core/lib/gprpp/thd_windows.cc +1 -2
  229. data/src/core/lib/gprpp/time.cc +3 -4
  230. data/src/core/lib/gprpp/time.h +13 -2
  231. data/src/core/lib/gprpp/validation_errors.h +18 -1
  232. data/src/core/lib/http/httpcli.cc +40 -44
  233. data/src/core/lib/http/httpcli.h +6 -5
  234. data/src/core/lib/http/httpcli_security_connector.cc +4 -6
  235. data/src/core/lib/http/parser.cc +54 -65
  236. data/src/core/lib/iomgr/buffer_list.cc +105 -116
  237. data/src/core/lib/iomgr/buffer_list.h +60 -44
  238. data/src/core/lib/iomgr/call_combiner.cc +11 -10
  239. data/src/core/lib/iomgr/call_combiner.h +3 -4
  240. data/src/core/lib/iomgr/cfstream_handle.cc +13 -16
  241. data/src/core/lib/iomgr/closure.h +49 -5
  242. data/src/core/lib/iomgr/combiner.cc +2 -2
  243. data/src/core/lib/iomgr/endpoint.h +1 -1
  244. data/src/core/lib/iomgr/endpoint_cfstream.cc +26 -25
  245. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -2
  246. data/src/core/lib/iomgr/error.cc +27 -42
  247. data/src/core/lib/iomgr/error.h +22 -152
  248. data/src/core/lib/iomgr/ev_apple.cc +4 -4
  249. data/src/core/lib/iomgr/ev_epoll1_linux.cc +26 -25
  250. data/src/core/lib/iomgr/ev_poll_posix.cc +27 -31
  251. data/src/core/lib/iomgr/exec_ctx.cc +3 -4
  252. data/src/core/lib/iomgr/exec_ctx.h +2 -3
  253. data/src/core/lib/iomgr/executor.cc +1 -2
  254. data/src/core/lib/iomgr/internal_errqueue.cc +3 -1
  255. data/src/core/lib/iomgr/iocp_windows.cc +1 -0
  256. data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
  257. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -1
  258. data/src/core/lib/iomgr/iomgr_windows.cc +2 -1
  259. data/src/core/lib/iomgr/load_file.cc +5 -9
  260. data/src/core/lib/iomgr/lockfree_event.cc +10 -10
  261. data/src/core/lib/iomgr/pollset_windows.cc +4 -4
  262. data/src/core/lib/iomgr/python_util.h +2 -2
  263. data/src/core/lib/iomgr/resolve_address.cc +8 -3
  264. data/src/core/lib/iomgr/resolve_address.h +3 -4
  265. data/src/core/lib/iomgr/resolve_address_impl.h +1 -1
  266. data/src/core/lib/iomgr/resolve_address_posix.cc +14 -25
  267. data/src/core/lib/iomgr/resolve_address_posix.h +1 -2
  268. data/src/core/lib/iomgr/resolve_address_windows.cc +14 -17
  269. data/src/core/lib/iomgr/resolve_address_windows.h +1 -2
  270. data/src/core/lib/iomgr/socket_utils_common_posix.cc +30 -29
  271. data/src/core/lib/iomgr/socket_utils_posix.cc +1 -0
  272. data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
  273. data/src/core/lib/iomgr/socket_windows.cc +2 -2
  274. data/src/core/lib/iomgr/tcp_client_cfstream.cc +6 -10
  275. data/src/core/lib/iomgr/tcp_client_posix.cc +31 -35
  276. data/src/core/lib/iomgr/tcp_client_windows.cc +8 -12
  277. data/src/core/lib/iomgr/tcp_posix.cc +92 -108
  278. data/src/core/lib/iomgr/tcp_server_posix.cc +34 -34
  279. data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -1
  280. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +18 -21
  281. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +12 -13
  282. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +1 -1
  283. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -29
  284. data/src/core/lib/iomgr/tcp_windows.cc +27 -34
  285. data/src/core/lib/iomgr/timer.h +8 -8
  286. data/src/core/lib/iomgr/timer_generic.cc +9 -15
  287. data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -4
  288. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +4 -3
  289. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -8
  290. data/src/core/lib/json/json_channel_args.h +42 -0
  291. data/src/core/lib/json/json_object_loader.cc +7 -2
  292. data/src/core/lib/json/json_object_loader.h +22 -0
  293. data/src/core/lib/json/json_util.cc +5 -5
  294. data/src/core/lib/json/json_util.h +4 -4
  295. data/src/core/lib/load_balancing/lb_policy.cc +1 -1
  296. data/src/core/lib/load_balancing/lb_policy.h +4 -0
  297. data/src/core/lib/load_balancing/subchannel_interface.h +0 -7
  298. data/src/core/lib/matchers/matchers.cc +3 -4
  299. data/src/core/lib/promise/activity.cc +16 -2
  300. data/src/core/lib/promise/activity.h +38 -15
  301. data/src/core/lib/promise/arena_promise.h +80 -51
  302. data/src/core/lib/promise/context.h +13 -6
  303. data/src/core/lib/promise/detail/basic_seq.h +9 -28
  304. data/src/core/lib/promise/detail/promise_factory.h +58 -10
  305. data/src/core/lib/promise/detail/status.h +28 -0
  306. data/src/core/lib/promise/detail/switch.h +1455 -0
  307. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +3 -1
  308. data/src/core/lib/promise/for_each.h +129 -0
  309. data/src/core/lib/promise/loop.h +7 -5
  310. data/src/core/lib/promise/map_pipe.h +87 -0
  311. data/src/core/lib/promise/pipe.cc +19 -0
  312. data/src/core/lib/promise/pipe.h +505 -0
  313. data/src/core/lib/promise/poll.h +13 -0
  314. data/src/core/lib/promise/seq.h +3 -5
  315. data/src/core/lib/promise/sleep.cc +5 -4
  316. data/src/core/lib/promise/sleep.h +1 -2
  317. data/src/core/lib/promise/try_concurrently.h +341 -0
  318. data/src/core/lib/promise/try_seq.h +10 -13
  319. data/src/core/lib/resolver/server_address.cc +1 -0
  320. data/src/core/lib/resolver/server_address.h +1 -3
  321. data/src/core/lib/resource_quota/api.cc +0 -1
  322. data/src/core/lib/resource_quota/arena.cc +19 -0
  323. data/src/core/lib/resource_quota/arena.h +89 -0
  324. data/src/core/lib/resource_quota/memory_quota.cc +1 -0
  325. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +1 -3
  326. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +4 -2
  327. data/src/core/lib/security/authorization/matchers.cc +25 -22
  328. data/src/core/lib/security/authorization/rbac_policy.cc +2 -3
  329. data/src/core/lib/security/context/security_context.h +10 -0
  330. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +3 -4
  331. data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
  332. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +77 -55
  333. data/src/core/lib/security/credentials/external/aws_request_signer.cc +4 -3
  334. data/src/core/lib/security/credentials/external/external_account_credentials.cc +40 -51
  335. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +17 -21
  336. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +21 -25
  337. data/src/core/lib/security/credentials/fake/fake_credentials.cc +1 -0
  338. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -24
  339. data/src/core/lib/security/credentials/iam/iam_credentials.cc +1 -0
  340. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -2
  341. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -1
  342. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -5
  343. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +24 -30
  344. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -5
  345. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +3 -3
  346. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +19 -27
  347. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +4 -11
  348. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +29 -41
  349. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +1 -1
  350. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +6 -11
  351. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +8 -15
  352. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  353. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +2 -6
  354. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +1 -4
  355. data/src/core/lib/security/security_connector/local/local_security_connector.cc +7 -11
  356. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +9 -14
  357. data/src/core/lib/security/security_connector/ssl_utils.cc +5 -7
  358. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -27
  359. data/src/core/lib/security/transport/client_auth_filter.cc +1 -1
  360. data/src/core/lib/security/transport/secure_endpoint.cc +26 -28
  361. data/src/core/lib/security/transport/security_handshaker.cc +53 -53
  362. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  363. data/src/core/lib/security/transport/tsi_error.cc +6 -3
  364. data/src/core/lib/security/util/json_util.cc +4 -5
  365. data/src/core/lib/service_config/service_config.h +1 -1
  366. data/src/core/lib/service_config/service_config_impl.cc +111 -158
  367. data/src/core/lib/service_config/service_config_impl.h +14 -17
  368. data/src/core/lib/service_config/service_config_parser.cc +14 -31
  369. data/src/core/lib/service_config/service_config_parser.h +14 -10
  370. data/src/core/lib/slice/b64.cc +2 -2
  371. data/src/core/lib/slice/slice.cc +7 -1
  372. data/src/core/lib/slice/slice.h +19 -6
  373. data/src/core/lib/slice/slice_buffer.cc +13 -14
  374. data/src/core/lib/slice/slice_internal.h +13 -21
  375. data/src/core/lib/slice/slice_refcount.h +34 -19
  376. data/src/core/lib/surface/byte_buffer.cc +3 -4
  377. data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
  378. data/src/core/lib/surface/call.cc +1366 -239
  379. data/src/core/lib/surface/call.h +44 -0
  380. data/src/core/lib/surface/call_details.cc +3 -3
  381. data/src/core/lib/surface/call_trace.cc +113 -0
  382. data/src/core/lib/surface/call_trace.h +30 -0
  383. data/src/core/lib/surface/channel.cc +44 -49
  384. data/src/core/lib/surface/channel.h +9 -1
  385. data/src/core/lib/surface/channel_ping.cc +1 -1
  386. data/src/core/lib/surface/channel_stack_type.cc +4 -0
  387. data/src/core/lib/surface/channel_stack_type.h +2 -0
  388. data/src/core/lib/surface/completion_queue.cc +38 -52
  389. data/src/core/lib/surface/init.cc +8 -39
  390. data/src/core/lib/surface/init_internally.h +8 -0
  391. data/src/core/lib/surface/lame_client.cc +10 -8
  392. data/src/core/lib/surface/server.cc +48 -70
  393. data/src/core/lib/surface/server.h +3 -4
  394. data/src/core/lib/surface/validate_metadata.cc +11 -12
  395. data/src/core/lib/surface/version.cc +2 -2
  396. data/src/core/lib/transport/connectivity_state.cc +2 -2
  397. data/src/core/lib/transport/error_utils.cc +34 -28
  398. data/src/core/lib/transport/error_utils.h +3 -3
  399. data/src/core/lib/transport/handshaker.cc +14 -14
  400. data/src/core/lib/transport/handshaker.h +1 -1
  401. data/src/core/lib/transport/handshaker_factory.h +26 -0
  402. data/src/core/lib/transport/handshaker_registry.cc +8 -2
  403. data/src/core/lib/transport/handshaker_registry.h +3 -4
  404. data/src/core/lib/transport/http_connect_handshaker.cc +23 -24
  405. data/src/core/lib/transport/metadata_batch.h +17 -1
  406. data/src/core/lib/transport/parsed_metadata.cc +2 -6
  407. data/src/core/lib/transport/tcp_connect_handshaker.cc +15 -20
  408. data/src/core/lib/transport/transport.cc +63 -17
  409. data/src/core/lib/transport/transport.h +64 -68
  410. data/src/core/lib/transport/transport_impl.h +1 -1
  411. data/src/core/lib/transport/transport_op_string.cc +7 -6
  412. data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -10
  413. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -14
  414. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +10 -10
  415. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +8 -8
  416. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
  417. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +7 -7
  418. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +7 -6
  419. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  420. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +5 -5
  421. data/src/core/tsi/fake_transport_security.cc +3 -3
  422. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +7 -3
  423. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  424. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +6 -2
  425. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -2
  426. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +0 -3
  427. data/src/ruby/lib/grpc/version.rb +1 -1
  428. data/src/ruby/spec/channel_spec.rb +0 -43
  429. data/src/ruby/spec/generic/active_call_spec.rb +12 -3
  430. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  431. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  432. data/third_party/zlib/compress.c +3 -3
  433. data/third_party/zlib/crc32.c +21 -12
  434. data/third_party/zlib/deflate.c +112 -106
  435. data/third_party/zlib/deflate.h +2 -2
  436. data/third_party/zlib/gzlib.c +1 -1
  437. data/third_party/zlib/gzread.c +3 -5
  438. data/third_party/zlib/gzwrite.c +1 -1
  439. data/third_party/zlib/infback.c +10 -7
  440. data/third_party/zlib/inflate.c +5 -2
  441. data/third_party/zlib/inftrees.c +2 -2
  442. data/third_party/zlib/inftrees.h +1 -1
  443. data/third_party/zlib/trees.c +61 -62
  444. data/third_party/zlib/uncompr.c +2 -2
  445. data/third_party/zlib/zconf.h +16 -3
  446. data/third_party/zlib/zlib.h +10 -10
  447. data/third_party/zlib/zutil.c +9 -7
  448. data/third_party/zlib/zutil.h +1 -0
  449. metadata +57 -20
  450. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -188
  451. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -187
  452. data/src/core/lib/event_engine/executor/threaded_executor.h +0 -44
  453. data/src/core/lib/gpr/murmur_hash.cc +0 -82
  454. data/src/core/lib/gpr/murmur_hash.h +0 -29
  455. data/src/core/lib/gpr/tls.h +0 -156
  456. data/src/core/lib/promise/call_push_pull.h +0 -148
  457. data/src/core/lib/slice/slice_api.cc +0 -39
  458. data/src/core/lib/slice/slice_buffer_api.cc +0 -35
  459. data/src/core/lib/slice/slice_refcount_base.h +0 -60
@@ -24,6 +24,8 @@
24
24
 
25
25
  #include <algorithm>
26
26
 
27
+ #include "absl/status/status.h"
28
+
27
29
  #include <grpc/support/alloc.h>
28
30
  #include <grpc/support/log.h>
29
31
 
@@ -42,51 +44,50 @@ static grpc_error_handle handle_response_line(grpc_http_parser* parser) {
42
44
  uint8_t* end = beg + parser->cur_line_length;
43
45
 
44
46
  if (cur == end || *cur++ != 'H') {
45
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected 'H'");
47
+ return GRPC_ERROR_CREATE("Expected 'H'");
46
48
  }
47
49
  if (cur == end || *cur++ != 'T') {
48
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected 'T'");
50
+ return GRPC_ERROR_CREATE("Expected 'T'");
49
51
  }
50
52
  if (cur == end || *cur++ != 'T') {
51
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected 'T'");
53
+ return GRPC_ERROR_CREATE("Expected 'T'");
52
54
  }
53
55
  if (cur == end || *cur++ != 'P') {
54
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected 'P'");
56
+ return GRPC_ERROR_CREATE("Expected 'P'");
55
57
  }
56
58
  if (cur == end || *cur++ != '/') {
57
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected '/'");
59
+ return GRPC_ERROR_CREATE("Expected '/'");
58
60
  }
59
61
  if (cur == end || *cur++ != '1') {
60
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected '1'");
62
+ return GRPC_ERROR_CREATE("Expected '1'");
61
63
  }
62
64
  if (cur == end || *cur++ != '.') {
63
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected '.'");
65
+ return GRPC_ERROR_CREATE("Expected '.'");
64
66
  }
65
67
  if (cur == end || *cur < '0' || *cur++ > '1') {
66
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
67
- "Expected HTTP/1.0 or HTTP/1.1");
68
+ return GRPC_ERROR_CREATE("Expected HTTP/1.0 or HTTP/1.1");
68
69
  }
69
70
  if (cur == end || *cur++ != ' ') {
70
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected ' '");
71
+ return GRPC_ERROR_CREATE("Expected ' '");
71
72
  }
72
73
  if (cur == end || *cur < '1' || *cur++ > '9') {
73
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected status code");
74
+ return GRPC_ERROR_CREATE("Expected status code");
74
75
  }
75
76
  if (cur == end || *cur < '0' || *cur++ > '9') {
76
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected status code");
77
+ return GRPC_ERROR_CREATE("Expected status code");
77
78
  }
78
79
  if (cur == end || *cur < '0' || *cur++ > '9') {
79
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected status code");
80
+ return GRPC_ERROR_CREATE("Expected status code");
80
81
  }
81
82
  parser->http.response->status =
82
83
  (cur[-3] - '0') * 100 + (cur[-2] - '0') * 10 + (cur[-1] - '0');
83
84
  if (cur == end || *cur++ != ' ') {
84
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected ' '");
85
+ return GRPC_ERROR_CREATE("Expected ' '");
85
86
  }
86
87
 
87
88
  /* we don't really care about the status code message */
88
89
 
89
- return GRPC_ERROR_NONE;
90
+ return absl::OkStatus();
90
91
  }
91
92
 
92
93
  static grpc_error_handle handle_request_line(grpc_http_parser* parser) {
@@ -99,8 +100,7 @@ static grpc_error_handle handle_request_line(grpc_http_parser* parser) {
99
100
  while (cur != end && *cur++ != ' ') {
100
101
  }
101
102
  if (cur == end) {
102
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
103
- "No method on HTTP request line");
103
+ return GRPC_ERROR_CREATE("No method on HTTP request line");
104
104
  }
105
105
  parser->http.request->method =
106
106
  buf2str(beg, static_cast<size_t>(cur - beg - 1));
@@ -109,30 +109,29 @@ static grpc_error_handle handle_request_line(grpc_http_parser* parser) {
109
109
  while (cur != end && *cur++ != ' ') {
110
110
  }
111
111
  if (cur == end) {
112
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("No path on HTTP request line");
112
+ return GRPC_ERROR_CREATE("No path on HTTP request line");
113
113
  }
114
114
  parser->http.request->path = buf2str(beg, static_cast<size_t>(cur - beg - 1));
115
115
 
116
116
  if (cur == end || *cur++ != 'H') {
117
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected 'H'");
117
+ return GRPC_ERROR_CREATE("Expected 'H'");
118
118
  }
119
119
  if (cur == end || *cur++ != 'T') {
120
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected 'T'");
120
+ return GRPC_ERROR_CREATE("Expected 'T'");
121
121
  }
122
122
  if (cur == end || *cur++ != 'T') {
123
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected 'T'");
123
+ return GRPC_ERROR_CREATE("Expected 'T'");
124
124
  }
125
125
  if (cur == end || *cur++ != 'P') {
126
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected 'P'");
126
+ return GRPC_ERROR_CREATE("Expected 'P'");
127
127
  }
128
128
  if (cur == end || *cur++ != '/') {
129
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected '/'");
129
+ return GRPC_ERROR_CREATE("Expected '/'");
130
130
  }
131
131
  vers_major = static_cast<uint8_t>(*cur++ - '1' + 1);
132
132
  ++cur;
133
133
  if (cur == end) {
134
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
135
- "End of line in HTTP version string");
134
+ return GRPC_ERROR_CREATE("End of line in HTTP version string");
136
135
  }
137
136
  vers_minor = static_cast<uint8_t>(*cur++ - '1' + 1);
138
137
 
@@ -142,22 +141,21 @@ static grpc_error_handle handle_request_line(grpc_http_parser* parser) {
142
141
  } else if (vers_minor == 1) {
143
142
  parser->http.request->version = GRPC_HTTP_HTTP11;
144
143
  } else {
145
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
144
+ return GRPC_ERROR_CREATE(
146
145
  "Expected one of HTTP/1.0, HTTP/1.1, or HTTP/2.0");
147
146
  }
148
147
  } else if (vers_major == 2) {
149
148
  if (vers_minor == 0) {
150
149
  parser->http.request->version = GRPC_HTTP_HTTP20;
151
150
  } else {
152
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
151
+ return GRPC_ERROR_CREATE(
153
152
  "Expected one of HTTP/1.0, HTTP/1.1, or HTTP/2.0");
154
153
  }
155
154
  } else {
156
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
157
- "Expected one of HTTP/1.0, HTTP/1.1, or HTTP/2.0");
155
+ return GRPC_ERROR_CREATE("Expected one of HTTP/1.0, HTTP/1.1, or HTTP/2.0");
158
156
  }
159
157
 
160
- return GRPC_ERROR_NONE;
158
+ return absl::OkStatus();
161
159
  }
162
160
 
163
161
  static grpc_error_handle handle_first_line(grpc_http_parser* parser) {
@@ -167,8 +165,7 @@ static grpc_error_handle handle_first_line(grpc_http_parser* parser) {
167
165
  case GRPC_HTTP_RESPONSE:
168
166
  return handle_response_line(parser);
169
167
  }
170
- GPR_UNREACHABLE_CODE(
171
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Should never reach here"));
168
+ GPR_UNREACHABLE_CODE(return GRPC_ERROR_CREATE("Should never reach here"));
172
169
  }
173
170
 
174
171
  static grpc_error_handle add_header(grpc_http_parser* parser) {
@@ -179,13 +176,12 @@ static grpc_error_handle add_header(grpc_http_parser* parser) {
179
176
  size_t size = 0;
180
177
  grpc_http_header** hdrs = nullptr;
181
178
  grpc_http_header hdr = {nullptr, nullptr};
182
- grpc_error_handle error = GRPC_ERROR_NONE;
179
+ grpc_error_handle error;
183
180
 
184
181
  GPR_ASSERT(cur != end);
185
182
 
186
183
  if (*cur == ' ' || *cur == '\t') {
187
- error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
188
- "Continued header lines not supported yet");
184
+ error = GRPC_ERROR_CREATE("Continued header lines not supported yet");
189
185
  goto done;
190
186
  }
191
187
 
@@ -193,8 +189,7 @@ static grpc_error_handle add_header(grpc_http_parser* parser) {
193
189
  cur++;
194
190
  }
195
191
  if (cur == end) {
196
- error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
197
- "Didn't find ':' in header string");
192
+ error = GRPC_ERROR_CREATE("Didn't find ':' in header string");
198
193
  goto done;
199
194
  }
200
195
  GPR_ASSERT(cur >= beg);
@@ -235,7 +230,7 @@ static grpc_error_handle add_header(grpc_http_parser* parser) {
235
230
  (*hdrs)[(*hdr_count)++] = hdr;
236
231
 
237
232
  done:
238
- if (!GRPC_ERROR_IS_NONE(error)) {
233
+ if (!error.ok()) {
239
234
  gpr_free(hdr.key);
240
235
  gpr_free(hdr.value);
241
236
  }
@@ -248,7 +243,7 @@ static grpc_error_handle finish_line(grpc_http_parser* parser,
248
243
  switch (parser->state) {
249
244
  case GRPC_HTTP_FIRST_LINE:
250
245
  err = handle_first_line(parser);
251
- if (!GRPC_ERROR_IS_NONE(err)) return err;
246
+ if (!err.ok()) return err;
252
247
  parser->state = GRPC_HTTP_HEADERS;
253
248
  break;
254
249
  case GRPC_HTTP_HEADERS:
@@ -263,19 +258,18 @@ static grpc_error_handle finish_line(grpc_http_parser* parser,
263
258
  break;
264
259
  } else {
265
260
  err = add_header(parser);
266
- if (!GRPC_ERROR_IS_NONE(err)) {
261
+ if (!err.ok()) {
267
262
  return err;
268
263
  }
269
264
  }
270
265
  break;
271
266
  case GRPC_HTTP_BODY:
272
267
  case GRPC_HTTP_END:
273
- GPR_UNREACHABLE_CODE(return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
274
- "Should never reach here"));
268
+ GPR_UNREACHABLE_CODE(return GRPC_ERROR_CREATE("Should never reach here"));
275
269
  }
276
270
 
277
271
  parser->cur_line_length = 0;
278
- return GRPC_ERROR_NONE;
272
+ return absl::OkStatus();
279
273
  }
280
274
 
281
275
  static grpc_error_handle addbyte_body(grpc_http_parser* parser, uint8_t byte) {
@@ -298,10 +292,9 @@ static grpc_error_handle addbyte_body(grpc_http_parser* parser, uint8_t byte) {
298
292
  parser->http.response->chunk_length *= 16;
299
293
  parser->http.response->chunk_length += byte - 'A' + 10;
300
294
  } else {
301
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
302
- "Expected chunk size in hexadecimal");
295
+ return GRPC_ERROR_CREATE("Expected chunk size in hexadecimal");
303
296
  }
304
- return GRPC_ERROR_NONE;
297
+ return absl::OkStatus();
305
298
  case GRPC_HTTP_CHUNKED_IGNORE_ALL_UNTIL_LF:
306
299
  if (byte == '\n') {
307
300
  if (parser->http.response->chunk_length == 0) {
@@ -310,16 +303,15 @@ static grpc_error_handle addbyte_body(grpc_http_parser* parser, uint8_t byte) {
310
303
  parser->http.response->chunked_state = GRPC_HTTP_CHUNKED_BODY;
311
304
  }
312
305
  }
313
- return GRPC_ERROR_NONE;
306
+ return absl::OkStatus();
314
307
  case GRPC_HTTP_CHUNKED_BODY:
315
308
  if (parser->http.response->chunk_length == 0) {
316
309
  if (byte != '\r') {
317
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
318
- "Expected '\\r\\n' after chunk body");
310
+ return GRPC_ERROR_CREATE("Expected '\\r\\n' after chunk body");
319
311
  }
320
312
  parser->http.response->chunked_state = GRPC_HTTP_CHUNKED_CONSUME_LF;
321
313
  parser->http.response->chunk_length = 0;
322
- return GRPC_ERROR_NONE;
314
+ return absl::OkStatus();
323
315
  } else {
324
316
  parser->http.response->chunk_length--;
325
317
  /* fallback to the normal body appending code below */
@@ -327,11 +319,10 @@ static grpc_error_handle addbyte_body(grpc_http_parser* parser, uint8_t byte) {
327
319
  break;
328
320
  case GRPC_HTTP_CHUNKED_CONSUME_LF:
329
321
  if (byte != '\n') {
330
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
331
- "Expected '\\r\\n' after chunk body");
322
+ return GRPC_ERROR_CREATE("Expected '\\r\\n' after chunk body");
332
323
  }
333
324
  parser->http.response->chunked_state = GRPC_HTTP_CHUNKED_LENGTH;
334
- return GRPC_ERROR_NONE;
325
+ return absl::OkStatus();
335
326
  case GRPC_HTTP_CHUNKED_PLAIN:
336
327
  /* avoiding warning; just fallback to normal codepath */
337
328
  break;
@@ -342,8 +333,7 @@ static grpc_error_handle addbyte_body(grpc_http_parser* parser, uint8_t byte) {
342
333
  body_length = &parser->http.request->body_length;
343
334
  body = &parser->http.request->body;
344
335
  } else {
345
- GPR_UNREACHABLE_CODE(
346
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Should never reach here"));
336
+ GPR_UNREACHABLE_CODE(return GRPC_ERROR_CREATE("Should never reach here"));
347
337
  }
348
338
 
349
339
  if (*body_length == parser->body_capacity) {
@@ -353,7 +343,7 @@ static grpc_error_handle addbyte_body(grpc_http_parser* parser, uint8_t byte) {
353
343
  (*body)[*body_length] = static_cast<char>(byte);
354
344
  (*body_length)++;
355
345
 
356
- return GRPC_ERROR_NONE;
346
+ return absl::OkStatus();
357
347
  }
358
348
 
359
349
  static bool check_line(grpc_http_parser* parser) {
@@ -391,21 +381,20 @@ static grpc_error_handle addbyte(grpc_http_parser* parser, uint8_t byte,
391
381
  gpr_log(GPR_ERROR, "HTTP header max line length (%d) exceeded",
392
382
  GRPC_HTTP_PARSER_MAX_HEADER_LENGTH);
393
383
  }
394
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
395
- "HTTP header max line length exceeded");
384
+ return GRPC_ERROR_CREATE("HTTP header max line length exceeded");
396
385
  }
397
386
  parser->cur_line[parser->cur_line_length] = byte;
398
387
  parser->cur_line_length++;
399
388
  if (check_line(parser)) {
400
389
  return finish_line(parser, found_body_start);
401
390
  }
402
- return GRPC_ERROR_NONE;
391
+ return absl::OkStatus();
403
392
  case GRPC_HTTP_BODY:
404
393
  return addbyte_body(parser, byte);
405
394
  case GRPC_HTTP_END:
406
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Unexpected byte after end");
395
+ return GRPC_ERROR_CREATE("Unexpected byte after end");
407
396
  }
408
- GPR_UNREACHABLE_CODE(return GRPC_ERROR_NONE);
397
+ GPR_UNREACHABLE_CODE(return absl::OkStatus());
409
398
  }
410
399
 
411
400
  void grpc_http_parser_init(grpc_http_parser* parser, grpc_http_type type,
@@ -448,15 +437,15 @@ grpc_error_handle grpc_http_parser_parse(grpc_http_parser* parser,
448
437
  bool found_body_start = false;
449
438
  grpc_error_handle err =
450
439
  addbyte(parser, GRPC_SLICE_START_PTR(slice)[i], &found_body_start);
451
- if (!GRPC_ERROR_IS_NONE(err)) return err;
440
+ if (!err.ok()) return err;
452
441
  if (found_body_start && start_of_body != nullptr) *start_of_body = i + 1;
453
442
  }
454
- return GRPC_ERROR_NONE;
443
+ return absl::OkStatus();
455
444
  }
456
445
 
457
446
  grpc_error_handle grpc_http_parser_eof(grpc_http_parser* parser) {
458
447
  if ((parser->state != GRPC_HTTP_BODY) && (parser->state != GRPC_HTTP_END)) {
459
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Did not finish headers");
448
+ return GRPC_ERROR_CREATE("Did not finish headers");
460
449
  }
461
- return GRPC_ERROR_NONE;
450
+ return absl::OkStatus();
462
451
  }