grpc 1.18.0 → 1.22.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 (428) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +4731 -7404
  3. data/etc/roots.pem +146 -0
  4. data/include/grpc/grpc.h +11 -6
  5. data/include/grpc/grpc_security.h +297 -4
  6. data/include/grpc/grpc_security_constants.h +1 -1
  7. data/include/grpc/impl/codegen/byte_buffer.h +13 -0
  8. data/include/grpc/impl/codegen/gpr_types.h +1 -1
  9. data/include/grpc/impl/codegen/grpc_types.h +30 -7
  10. data/include/grpc/impl/codegen/port_platform.h +88 -7
  11. data/include/grpc/impl/codegen/slice.h +2 -22
  12. data/include/grpc/impl/codegen/status.h +2 -1
  13. data/include/grpc/impl/codegen/sync_posix.h +18 -0
  14. data/include/grpc/slice.h +3 -3
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +21 -16
  16. data/src/core/ext/filters/client_channel/backup_poller.h +8 -2
  17. data/src/core/ext/filters/client_channel/channel_connectivity.cc +3 -1
  18. data/src/core/ext/filters/client_channel/client_channel.cc +2435 -1557
  19. data/src/core/ext/filters/client_channel/client_channel.h +2 -10
  20. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -89
  21. data/src/core/ext/filters/client_channel/client_channel_channelz.h +8 -33
  22. data/src/core/ext/filters/client_channel/client_channel_factory.cc +22 -34
  23. data/src/core/ext/filters/client_channel/client_channel_factory.h +19 -38
  24. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +9 -11
  25. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +179 -0
  26. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +68 -0
  27. data/src/core/ext/filters/client_channel/health/health_check_client.cc +59 -55
  28. data/src/core/ext/filters/client_channel/health/health_check_client.h +20 -9
  29. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +146 -157
  30. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +29 -32
  32. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +844 -859
  33. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +3 -1
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +2 -6
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +6 -2
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +14 -12
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +16 -12
  38. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +3 -3
  39. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +185 -312
  40. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +143 -375
  41. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +192 -245
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +1554 -955
  43. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_secure.cc +0 -43
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.cc +14 -10
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +2 -2
  46. data/src/core/ext/filters/client_channel/lb_policy.cc +115 -22
  47. data/src/core/ext/filters/client_channel/lb_policy.h +260 -129
  48. data/src/core/ext/filters/client_channel/lb_policy_factory.h +5 -2
  49. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +107 -4
  50. data/src/core/ext/filters/client_channel/lb_policy_registry.h +10 -3
  51. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +96 -0
  52. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +56 -0
  53. data/src/core/ext/filters/client_channel/parse_address.cc +24 -5
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +121 -122
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +84 -2
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -0
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +179 -0
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +24 -10
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +111 -47
  60. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +7 -13
  61. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +2 -2
  62. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +39 -0
  63. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +0 -6
  64. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -64
  65. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +28 -0
  66. data/src/core/{lib/iomgr/network_status_tracker.cc → ext/filters/client_channel/resolver/dns/dns_resolver_selection.h} +8 -15
  67. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +36 -82
  68. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +111 -72
  69. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +13 -8
  70. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +28 -63
  71. data/src/core/ext/filters/client_channel/resolver.cc +54 -1
  72. data/src/core/ext/filters/client_channel/resolver.h +52 -23
  73. data/src/core/ext/filters/client_channel/resolver_factory.h +3 -1
  74. data/src/core/ext/filters/client_channel/resolver_registry.cc +5 -2
  75. data/src/core/ext/filters/client_channel/resolver_registry.h +5 -4
  76. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +368 -241
  77. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +58 -76
  78. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +543 -0
  79. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +139 -0
  80. data/src/core/ext/filters/client_channel/server_address.cc +4 -54
  81. data/src/core/ext/filters/client_channel/server_address.h +1 -13
  82. data/src/core/ext/filters/client_channel/service_config.cc +329 -0
  83. data/src/core/ext/filters/client_channel/service_config.h +205 -0
  84. data/src/core/ext/filters/client_channel/subchannel.cc +803 -838
  85. data/src/core/ext/filters/client_channel/subchannel.h +295 -128
  86. data/src/core/ext/filters/client_channel/subchannel_interface.h +113 -0
  87. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +97 -0
  88. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +94 -0
  89. data/src/core/ext/filters/deadline/deadline_filter.cc +3 -4
  90. data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
  91. data/src/core/ext/filters/http/client/http_client_filter.cc +7 -5
  92. data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
  93. data/src/core/ext/filters/http/client_authority_filter.cc +6 -3
  94. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +4 -3
  95. data/src/core/ext/filters/http/server/http_server_filter.cc +18 -12
  96. data/src/core/ext/filters/max_age/max_age_filter.cc +5 -2
  97. data/src/core/ext/filters/message_size/message_size_filter.cc +119 -77
  98. data/src/core/ext/filters/message_size/message_size_filter.h +33 -0
  99. data/src/core/ext/transport/chttp2/alpn/alpn.h +1 -1
  100. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +13 -12
  101. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +45 -47
  102. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +134 -143
  103. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +68 -21
  104. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -4
  105. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +4 -4
  106. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +7 -6
  107. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +4 -3
  108. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +9 -7
  109. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +156 -94
  110. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -2
  111. data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -1
  112. data/src/core/ext/transport/chttp2/transport/frame_data.cc +33 -37
  113. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
  114. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +6 -5
  115. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -2
  116. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -4
  117. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -1
  118. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +8 -6
  119. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -1
  120. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -4
  121. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
  122. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +7 -6
  123. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -1
  124. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +74 -55
  125. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +33 -11
  126. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -2
  127. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +7 -14
  128. data/src/core/ext/transport/chttp2/transport/hpack_table.h +10 -1
  129. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +9 -5
  130. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +9 -3
  131. data/src/core/ext/transport/chttp2/transport/internal.h +43 -30
  132. data/src/core/ext/transport/chttp2/transport/parsing.cc +52 -70
  133. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -3
  134. data/src/core/ext/transport/chttp2/transport/writing.cc +70 -33
  135. data/src/core/ext/transport/inproc/inproc_transport.cc +26 -18
  136. data/src/core/lib/channel/channel_args.cc +2 -101
  137. data/src/core/lib/channel/channel_args.h +3 -37
  138. data/src/core/lib/channel/channel_stack.h +10 -6
  139. data/src/core/lib/channel/channel_trace.cc +4 -4
  140. data/src/core/lib/channel/channel_trace.h +4 -4
  141. data/src/core/lib/channel/channelz.cc +168 -38
  142. data/src/core/lib/channel/channelz.h +40 -44
  143. data/src/core/lib/channel/channelz_registry.cc +75 -107
  144. data/src/core/lib/channel/channelz_registry.h +10 -28
  145. data/src/core/lib/channel/connected_channel.cc +2 -2
  146. data/src/core/lib/channel/context.h +2 -2
  147. data/src/core/lib/channel/handshaker.cc +151 -218
  148. data/src/core/lib/channel/handshaker.h +110 -101
  149. data/src/core/lib/channel/handshaker_factory.h +11 -19
  150. data/src/core/lib/channel/handshaker_registry.cc +67 -51
  151. data/src/core/lib/channel/handshaker_registry.h +21 -16
  152. data/src/core/lib/compression/algorithm_metadata.h +3 -3
  153. data/src/core/lib/compression/compression.cc +14 -9
  154. data/src/core/lib/compression/compression_args.cc +127 -0
  155. data/src/core/lib/compression/compression_args.h +55 -0
  156. data/src/core/lib/compression/compression_internal.cc +16 -12
  157. data/src/core/lib/compression/compression_internal.h +1 -1
  158. data/src/core/lib/compression/stream_compression.cc +3 -2
  159. data/src/core/lib/compression/stream_compression.h +2 -2
  160. data/src/core/lib/compression/stream_compression_gzip.cc +9 -9
  161. data/src/core/lib/debug/trace.cc +13 -7
  162. data/src/core/lib/debug/trace.h +14 -1
  163. data/src/core/lib/gpr/arena.h +13 -9
  164. data/src/core/lib/gpr/cpu_posix.cc +5 -3
  165. data/src/core/lib/gpr/env.h +3 -6
  166. data/src/core/lib/gpr/env_linux.cc +6 -1
  167. data/src/core/lib/gpr/env_posix.cc +5 -0
  168. data/src/core/lib/gpr/env_windows.cc +7 -5
  169. data/src/core/lib/gpr/log.cc +9 -13
  170. data/src/core/lib/gpr/log_posix.cc +2 -1
  171. data/src/core/lib/gpr/string.cc +20 -7
  172. data/src/core/lib/gpr/string.h +10 -3
  173. data/src/core/lib/gpr/sync_posix.cc +65 -4
  174. data/src/core/lib/gpr/time.cc +8 -0
  175. data/src/core/lib/gpr/time_posix.cc +21 -2
  176. data/src/core/lib/gprpp/arena.cc +103 -0
  177. data/src/core/lib/gprpp/arena.h +121 -0
  178. data/src/core/lib/gprpp/atomic.h +75 -5
  179. data/src/core/lib/gprpp/fork.cc +13 -32
  180. data/src/core/lib/gprpp/fork.h +5 -1
  181. data/src/core/lib/gprpp/global_config.h +96 -0
  182. data/src/core/lib/gprpp/global_config_custom.h +29 -0
  183. data/src/core/lib/gprpp/global_config_env.cc +135 -0
  184. data/src/core/lib/gprpp/global_config_env.h +131 -0
  185. data/src/core/lib/gprpp/global_config_generic.h +44 -0
  186. data/src/core/lib/gprpp/inlined_vector.h +8 -0
  187. data/src/core/lib/gprpp/map.h +436 -0
  188. data/src/core/lib/gprpp/memory.h +2 -2
  189. data/src/core/lib/gprpp/optional.h +48 -0
  190. data/src/core/lib/gprpp/orphanable.h +6 -5
  191. data/src/core/lib/gprpp/{mutex_lock.h → pair.h} +15 -19
  192. data/src/core/lib/gprpp/ref_counted.h +36 -17
  193. data/src/core/lib/gprpp/sync.h +126 -0
  194. data/src/core/lib/gprpp/thd.h +42 -7
  195. data/src/core/lib/gprpp/thd_posix.cc +31 -13
  196. data/src/core/lib/gprpp/thd_windows.cc +47 -34
  197. data/src/core/lib/http/httpcli.cc +6 -5
  198. data/src/core/lib/http/httpcli_security_connector.cc +13 -15
  199. data/src/core/lib/http/parser.cc +3 -2
  200. data/src/core/lib/http/parser.h +2 -1
  201. data/src/core/lib/iomgr/buffer_list.cc +182 -24
  202. data/src/core/lib/iomgr/buffer_list.h +72 -10
  203. data/src/core/lib/iomgr/call_combiner.cc +84 -90
  204. data/src/core/lib/iomgr/call_combiner.h +75 -82
  205. data/src/core/lib/iomgr/cfstream_handle.cc +203 -0
  206. data/src/core/lib/iomgr/cfstream_handle.h +86 -0
  207. data/src/core/lib/iomgr/combiner.cc +11 -3
  208. data/src/core/lib/iomgr/combiner.h +1 -1
  209. data/src/core/lib/iomgr/endpoint.cc +2 -2
  210. data/src/core/lib/iomgr/endpoint.h +3 -2
  211. data/src/core/lib/iomgr/endpoint_cfstream.cc +375 -0
  212. data/src/core/lib/iomgr/endpoint_cfstream.h +49 -0
  213. data/src/core/lib/iomgr/endpoint_pair_windows.cc +2 -2
  214. data/src/core/lib/iomgr/error.cc +21 -17
  215. data/src/core/lib/iomgr/error.h +36 -6
  216. data/src/core/lib/iomgr/error_cfstream.cc +52 -0
  217. data/src/core/lib/iomgr/error_cfstream.h +31 -0
  218. data/src/core/lib/iomgr/error_internal.h +1 -1
  219. data/src/core/lib/iomgr/ev_epoll1_linux.cc +44 -28
  220. data/src/core/lib/iomgr/ev_epollex_linux.cc +173 -194
  221. data/src/core/lib/iomgr/ev_poll_posix.cc +16 -487
  222. data/src/core/lib/iomgr/ev_posix.cc +29 -19
  223. data/src/core/lib/iomgr/ev_posix.h +19 -3
  224. data/src/core/lib/iomgr/ev_windows.cc +2 -2
  225. data/src/core/lib/iomgr/exec_ctx.cc +1 -0
  226. data/src/core/lib/iomgr/exec_ctx.h +137 -8
  227. data/src/core/lib/iomgr/executor.cc +147 -95
  228. data/src/core/lib/iomgr/executor.h +55 -49
  229. data/src/core/lib/iomgr/fork_posix.cc +6 -5
  230. data/src/core/lib/{gprpp/atomic_with_std.h → iomgr/grpc_if_nametoindex.h} +8 -13
  231. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +42 -0
  232. data/src/core/lib/iomgr/{network_status_tracker.h → grpc_if_nametoindex_unsupported.cc} +15 -9
  233. data/src/core/lib/iomgr/internal_errqueue.cc +3 -5
  234. data/src/core/lib/iomgr/internal_errqueue.h +105 -3
  235. data/src/core/lib/iomgr/iomgr.cc +20 -13
  236. data/src/core/lib/iomgr/iomgr.h +15 -0
  237. data/src/core/lib/iomgr/iomgr_custom.cc +17 -3
  238. data/src/core/lib/iomgr/iomgr_custom.h +2 -0
  239. data/src/core/lib/iomgr/iomgr_internal.cc +10 -0
  240. data/src/core/lib/iomgr/iomgr_internal.h +12 -0
  241. data/src/core/lib/iomgr/iomgr_posix.cc +19 -2
  242. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +93 -0
  243. data/src/core/lib/iomgr/iomgr_windows.cc +18 -2
  244. data/src/core/lib/iomgr/lockfree_event.cc +4 -4
  245. data/src/core/lib/iomgr/port.h +35 -0
  246. data/src/core/lib/iomgr/resolve_address_posix.cc +4 -3
  247. data/src/core/lib/iomgr/resolve_address_windows.cc +2 -1
  248. data/src/core/lib/iomgr/resource_quota.cc +40 -37
  249. data/src/core/lib/iomgr/socket_utils_common_posix.cc +6 -2
  250. data/src/core/lib/iomgr/socket_windows.cc +19 -0
  251. data/src/core/lib/iomgr/socket_windows.h +8 -0
  252. data/src/core/lib/iomgr/tcp_client_cfstream.cc +216 -0
  253. data/src/core/lib/iomgr/tcp_client_custom.cc +2 -2
  254. data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
  255. data/src/core/lib/iomgr/tcp_client_windows.cc +7 -5
  256. data/src/core/lib/iomgr/tcp_custom.cc +10 -14
  257. data/src/core/lib/iomgr/tcp_posix.cc +256 -140
  258. data/src/core/lib/iomgr/tcp_server.cc +5 -0
  259. data/src/core/lib/iomgr/tcp_server.h +24 -0
  260. data/src/core/lib/iomgr/tcp_server_custom.cc +14 -12
  261. data/src/core/lib/iomgr/tcp_server_posix.cc +86 -12
  262. data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
  263. data/src/core/lib/iomgr/tcp_server_windows.cc +13 -11
  264. data/src/core/lib/iomgr/tcp_uv.cc +5 -7
  265. data/src/core/lib/iomgr/tcp_windows.cc +8 -14
  266. data/src/core/lib/iomgr/timer.h +2 -1
  267. data/src/core/lib/iomgr/timer_generic.cc +16 -16
  268. data/src/core/lib/iomgr/timer_manager.cc +20 -11
  269. data/src/core/lib/iomgr/udp_server.cc +8 -6
  270. data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -19
  271. data/src/core/lib/json/json.cc +1 -4
  272. data/src/core/lib/profiling/basic_timers.cc +10 -4
  273. data/src/core/lib/security/context/security_context.cc +6 -7
  274. data/src/core/lib/security/context/security_context.h +3 -4
  275. data/src/core/lib/security/credentials/alts/alts_credentials.cc +1 -1
  276. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
  277. data/src/core/lib/security/credentials/composite/composite_credentials.h +4 -0
  278. data/src/core/lib/security/credentials/credentials.h +9 -1
  279. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +15 -3
  280. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +2 -0
  281. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  282. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +2 -1
  283. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +10 -6
  284. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -1
  285. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +3 -3
  286. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +9 -8
  287. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +20 -2
  288. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +2 -2
  289. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +192 -0
  290. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +210 -0
  291. data/src/core/lib/security/credentials/tls/spiffe_credentials.cc +129 -0
  292. data/src/core/lib/security/credentials/tls/spiffe_credentials.h +62 -0
  293. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -8
  294. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -12
  295. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +7 -5
  296. data/src/core/lib/security/security_connector/local/local_security_connector.cc +10 -8
  297. data/src/core/lib/security/security_connector/security_connector.cc +0 -1
  298. data/src/core/lib/security/security_connector/security_connector.h +3 -3
  299. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +39 -38
  300. data/src/core/lib/security/security_connector/ssl_utils.cc +164 -26
  301. data/src/core/lib/security/security_connector/ssl_utils.h +70 -1
  302. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +426 -0
  303. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +122 -0
  304. data/src/core/lib/security/transport/auth_filters.h +5 -2
  305. data/src/core/lib/security/transport/client_auth_filter.cc +55 -50
  306. data/src/core/lib/security/transport/secure_endpoint.cc +6 -6
  307. data/src/core/lib/security/transport/security_handshaker.cc +271 -303
  308. data/src/core/lib/security/transport/security_handshaker.h +11 -2
  309. data/src/core/lib/security/transport/server_auth_filter.cc +3 -3
  310. data/src/core/lib/slice/b64.h +2 -2
  311. data/src/core/lib/slice/percent_encoding.cc +3 -3
  312. data/src/core/lib/slice/percent_encoding.h +3 -3
  313. data/src/core/lib/slice/slice.cc +174 -122
  314. data/src/core/lib/slice/slice_buffer.cc +54 -21
  315. data/src/core/lib/slice/slice_hash_table.h +4 -4
  316. data/src/core/lib/slice/slice_intern.cc +49 -107
  317. data/src/core/lib/slice/slice_internal.h +264 -3
  318. data/src/core/lib/slice/slice_string_helpers.cc +10 -1
  319. data/src/core/lib/slice/slice_string_helpers.h +3 -1
  320. data/src/core/lib/slice/slice_utils.h +50 -0
  321. data/src/core/lib/slice/slice_weak_hash_table.h +6 -6
  322. data/src/core/lib/surface/api_trace.h +1 -1
  323. data/src/core/lib/surface/byte_buffer_reader.cc +17 -0
  324. data/src/core/lib/surface/call.cc +67 -46
  325. data/src/core/lib/surface/call.h +7 -2
  326. data/src/core/lib/surface/call_details.cc +0 -1
  327. data/src/core/lib/surface/channel.cc +89 -97
  328. data/src/core/lib/surface/channel.h +60 -6
  329. data/src/core/lib/surface/channel_init.h +5 -0
  330. data/src/core/lib/surface/completion_queue.cc +221 -216
  331. data/src/core/lib/surface/completion_queue.h +2 -1
  332. data/src/core/lib/surface/init.cc +82 -33
  333. data/src/core/lib/surface/init.h +1 -0
  334. data/src/core/lib/surface/init_secure.cc +1 -1
  335. data/src/core/lib/surface/lame_client.cc +5 -7
  336. data/src/core/lib/surface/server.cc +42 -47
  337. data/src/core/lib/surface/validate_metadata.cc +14 -8
  338. data/src/core/lib/surface/validate_metadata.h +13 -2
  339. data/src/core/lib/surface/version.cc +1 -1
  340. data/src/core/lib/transport/bdp_estimator.cc +3 -3
  341. data/src/core/lib/transport/bdp_estimator.h +2 -2
  342. data/src/core/lib/transport/connectivity_state.cc +10 -40
  343. data/src/core/lib/transport/connectivity_state.h +0 -8
  344. data/src/core/lib/transport/error_utils.cc +12 -0
  345. data/src/core/lib/transport/metadata.cc +258 -267
  346. data/src/core/lib/transport/metadata.h +227 -16
  347. data/src/core/lib/transport/metadata_batch.cc +1 -1
  348. data/src/core/lib/transport/metadata_batch.h +1 -1
  349. data/src/core/lib/transport/static_metadata.cc +477 -399
  350. data/src/core/lib/transport/static_metadata.h +273 -182
  351. data/src/core/lib/transport/status_metadata.cc +3 -3
  352. data/src/core/lib/transport/timeout_encoding.cc +1 -1
  353. data/src/core/lib/transport/timeout_encoding.h +1 -1
  354. data/src/core/lib/transport/transport.cc +39 -72
  355. data/src/core/lib/transport/transport.h +59 -24
  356. data/src/core/lib/transport/transport_impl.h +1 -1
  357. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -3
  358. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
  359. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +1 -1
  360. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +4 -3
  361. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
  362. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +1 -1
  363. data/src/core/tsi/fake_transport_security.cc +4 -4
  364. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +1 -1
  365. data/src/core/tsi/ssl_transport_security.cc +12 -10
  366. data/src/core/tsi/ssl_transport_security.h +24 -4
  367. data/src/ruby/bin/math_pb.rb +18 -16
  368. data/src/ruby/ext/grpc/extconf.rb +12 -4
  369. data/src/ruby/ext/grpc/rb_call_credentials.c +8 -5
  370. data/src/ruby/ext/grpc/rb_channel.c +14 -10
  371. data/src/ruby/ext/grpc/rb_channel_credentials.c +8 -4
  372. data/src/ruby/ext/grpc/rb_compression_options.c +9 -7
  373. data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
  374. data/src/ruby/ext/grpc/rb_grpc.c +23 -24
  375. data/src/ruby/ext/grpc/rb_grpc.h +4 -2
  376. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +24 -0
  377. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +36 -0
  378. data/src/ruby/ext/grpc/rb_server.c +8 -4
  379. data/src/ruby/lib/grpc/errors.rb +22 -3
  380. data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
  381. data/src/ruby/lib/grpc/generic/rpc_server.rb +2 -2
  382. data/src/ruby/lib/grpc/version.rb +1 -1
  383. data/src/ruby/pb/README.md +1 -1
  384. data/src/ruby/pb/grpc/health/v1/health_pb.rb +13 -10
  385. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +18 -0
  386. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +3 -1
  387. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +58 -56
  388. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -0
  389. data/src/ruby/spec/errors_spec.rb +141 -0
  390. data/third_party/cares/cares/ares.h +12 -0
  391. data/third_party/cares/cares/ares_create_query.c +5 -1
  392. data/third_party/cares/cares/ares_data.c +74 -73
  393. data/third_party/cares/cares/ares_destroy.c +6 -1
  394. data/third_party/cares/cares/ares_gethostbyaddr.c +5 -5
  395. data/third_party/cares/cares/ares_gethostbyname.c +15 -4
  396. data/third_party/cares/cares/ares_getnameinfo.c +11 -0
  397. data/third_party/cares/cares/ares_init.c +274 -173
  398. data/third_party/cares/cares/ares_library_init.c +21 -3
  399. data/third_party/cares/cares/ares_options.c +6 -2
  400. data/third_party/cares/cares/ares_parse_naptr_reply.c +7 -6
  401. data/third_party/cares/cares/ares_parse_ptr_reply.c +4 -2
  402. data/third_party/cares/cares/ares_platform.c +7 -0
  403. data/third_party/cares/cares/ares_private.h +19 -11
  404. data/third_party/cares/cares/ares_process.c +27 -2
  405. data/third_party/cares/cares/ares_rules.h +1 -1
  406. data/third_party/cares/cares/ares_search.c +7 -0
  407. data/third_party/cares/cares/ares_send.c +6 -0
  408. data/third_party/cares/cares/ares_strsplit.c +174 -0
  409. data/third_party/cares/cares/ares_strsplit.h +43 -0
  410. data/third_party/cares/cares/ares_version.h +4 -4
  411. data/third_party/cares/cares/config-win32.h +1 -1
  412. data/third_party/cares/cares/inet_ntop.c +2 -3
  413. data/third_party/cares/config_darwin/ares_config.h +3 -0
  414. data/third_party/cares/config_freebsd/ares_config.h +3 -0
  415. data/third_party/cares/config_linux/ares_config.h +3 -0
  416. data/third_party/cares/config_openbsd/ares_config.h +3 -0
  417. metadata +83 -48
  418. data/src/core/ext/filters/client_channel/request_routing.cc +0 -936
  419. data/src/core/ext/filters/client_channel/request_routing.h +0 -177
  420. data/src/core/ext/filters/client_channel/subchannel_index.cc +0 -248
  421. data/src/core/ext/filters/client_channel/subchannel_index.h +0 -76
  422. data/src/core/lib/channel/handshaker_factory.cc +0 -42
  423. data/src/core/lib/gpr/arena.cc +0 -192
  424. data/src/core/lib/gprpp/atomic_with_atm.h +0 -57
  425. data/src/core/lib/iomgr/wakeup_fd_cv.cc +0 -107
  426. data/src/core/lib/iomgr/wakeup_fd_cv.h +0 -69
  427. data/src/core/lib/transport/service_config.cc +0 -106
  428. data/src/core/lib/transport/service_config.h +0 -249
@@ -0,0 +1,216 @@
1
+
2
+ /*
3
+ *
4
+ * Copyright 2018 gRPC authors.
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ */
19
+
20
+ #include <grpc/support/port_platform.h>
21
+
22
+ #include "src/core/lib/iomgr/port.h"
23
+
24
+ #ifdef GRPC_CFSTREAM_CLIENT
25
+
26
+ #include <CoreFoundation/CoreFoundation.h>
27
+
28
+ #include <string.h>
29
+
30
+ #include <grpc/support/alloc.h>
31
+ #include <grpc/support/log.h>
32
+ #include <grpc/support/sync.h>
33
+
34
+ #include <netinet/in.h>
35
+
36
+ #include "src/core/lib/channel/channel_args.h"
37
+ #include "src/core/lib/gpr/host_port.h"
38
+ #include "src/core/lib/iomgr/cfstream_handle.h"
39
+ #include "src/core/lib/iomgr/closure.h"
40
+ #include "src/core/lib/iomgr/endpoint_cfstream.h"
41
+ #include "src/core/lib/iomgr/error.h"
42
+ #include "src/core/lib/iomgr/error_cfstream.h"
43
+ #include "src/core/lib/iomgr/sockaddr_utils.h"
44
+ #include "src/core/lib/iomgr/tcp_client.h"
45
+ #include "src/core/lib/iomgr/timer.h"
46
+
47
+ extern grpc_core::TraceFlag grpc_tcp_trace;
48
+
49
+ typedef struct CFStreamConnect {
50
+ gpr_mu mu;
51
+ gpr_refcount refcount;
52
+
53
+ CFReadStreamRef read_stream;
54
+ CFWriteStreamRef write_stream;
55
+ CFStreamHandle* stream_handle;
56
+
57
+ grpc_timer alarm;
58
+ grpc_closure on_alarm;
59
+ grpc_closure on_open;
60
+
61
+ bool read_stream_open;
62
+ bool write_stream_open;
63
+ bool failed;
64
+
65
+ grpc_closure* closure;
66
+ grpc_endpoint** endpoint;
67
+ int refs;
68
+ char* addr_name;
69
+ grpc_resource_quota* resource_quota;
70
+ } CFStreamConnect;
71
+
72
+ static void CFStreamConnectCleanup(CFStreamConnect* connect) {
73
+ grpc_resource_quota_unref_internal(connect->resource_quota);
74
+ CFSTREAM_HANDLE_UNREF(connect->stream_handle, "async connect clean up");
75
+ CFRelease(connect->read_stream);
76
+ CFRelease(connect->write_stream);
77
+ gpr_mu_destroy(&connect->mu);
78
+ gpr_free(connect->addr_name);
79
+ gpr_free(connect);
80
+ }
81
+
82
+ static void OnAlarm(void* arg, grpc_error* error) {
83
+ CFStreamConnect* connect = static_cast<CFStreamConnect*>(arg);
84
+ if (grpc_tcp_trace.enabled()) {
85
+ gpr_log(GPR_DEBUG, "CLIENT_CONNECT :%p OnAlarm, error:%p", connect, error);
86
+ }
87
+ gpr_mu_lock(&connect->mu);
88
+ grpc_closure* closure = connect->closure;
89
+ connect->closure = nil;
90
+ const bool done = (--connect->refs == 0);
91
+ gpr_mu_unlock(&connect->mu);
92
+ // Only schedule a callback once, by either OnAlarm or OnOpen. The
93
+ // first one issues callback while the second one does cleanup.
94
+ if (done) {
95
+ CFStreamConnectCleanup(connect);
96
+ } else {
97
+ grpc_error* error =
98
+ GRPC_ERROR_CREATE_FROM_STATIC_STRING("connect() timed out");
99
+ GRPC_CLOSURE_SCHED(closure, error);
100
+ }
101
+ }
102
+
103
+ static void OnOpen(void* arg, grpc_error* error) {
104
+ CFStreamConnect* connect = static_cast<CFStreamConnect*>(arg);
105
+ if (grpc_tcp_trace.enabled()) {
106
+ gpr_log(GPR_DEBUG, "CLIENT_CONNECT :%p OnOpen, error:%p", connect, error);
107
+ }
108
+ gpr_mu_lock(&connect->mu);
109
+ grpc_timer_cancel(&connect->alarm);
110
+ grpc_closure* closure = connect->closure;
111
+ connect->closure = nil;
112
+
113
+ bool done = (--connect->refs == 0);
114
+ grpc_endpoint** endpoint = connect->endpoint;
115
+
116
+ // Only schedule a callback once, by either OnAlarm or OnOpen. The
117
+ // first one issues callback while the second one does cleanup.
118
+ if (done) {
119
+ gpr_mu_unlock(&connect->mu);
120
+ CFStreamConnectCleanup(connect);
121
+ } else {
122
+ if (error == GRPC_ERROR_NONE) {
123
+ CFErrorRef stream_error = CFReadStreamCopyError(connect->read_stream);
124
+ if (stream_error == NULL) {
125
+ stream_error = CFWriteStreamCopyError(connect->write_stream);
126
+ }
127
+ if (stream_error) {
128
+ error = GRPC_ERROR_CREATE_FROM_CFERROR(stream_error, "connect() error");
129
+ CFRelease(stream_error);
130
+ }
131
+ if (error == GRPC_ERROR_NONE) {
132
+ *endpoint = grpc_cfstream_endpoint_create(
133
+ connect->read_stream, connect->write_stream, connect->addr_name,
134
+ connect->resource_quota, connect->stream_handle);
135
+ }
136
+ } else {
137
+ GRPC_ERROR_REF(error);
138
+ }
139
+ gpr_mu_unlock(&connect->mu);
140
+ GRPC_CLOSURE_SCHED(closure, error);
141
+ }
142
+ }
143
+
144
+ static void ParseResolvedAddress(const grpc_resolved_address* addr,
145
+ CFStringRef* host, int* port) {
146
+ char *host_port, *host_string, *port_string;
147
+ grpc_sockaddr_to_string(&host_port, addr, 1);
148
+ gpr_split_host_port(host_port, &host_string, &port_string);
149
+ *host = CFStringCreateWithCString(NULL, host_string, kCFStringEncodingUTF8);
150
+ gpr_free(host_string);
151
+ gpr_free(port_string);
152
+ gpr_free(host_port);
153
+ *port = grpc_sockaddr_get_port(addr);
154
+ }
155
+
156
+ static void CFStreamClientConnect(grpc_closure* closure, grpc_endpoint** ep,
157
+ grpc_pollset_set* interested_parties,
158
+ const grpc_channel_args* channel_args,
159
+ const grpc_resolved_address* resolved_addr,
160
+ grpc_millis deadline) {
161
+ CFStreamConnect* connect;
162
+
163
+ connect = (CFStreamConnect*)gpr_zalloc(sizeof(CFStreamConnect));
164
+ connect->closure = closure;
165
+ connect->endpoint = ep;
166
+ connect->addr_name = grpc_sockaddr_to_uri(resolved_addr);
167
+ // connect->resource_quota = resource_quota;
168
+ connect->refs = 2; // One for the connect operation, one for the timer.
169
+ gpr_ref_init(&connect->refcount, 1);
170
+ gpr_mu_init(&connect->mu);
171
+
172
+ if (grpc_tcp_trace.enabled()) {
173
+ gpr_log(GPR_DEBUG, "CLIENT_CONNECT: %p, %s: asynchronously connecting",
174
+ connect, connect->addr_name);
175
+ }
176
+
177
+ grpc_resource_quota* resource_quota = grpc_resource_quota_create(NULL);
178
+ if (channel_args != NULL) {
179
+ for (size_t i = 0; i < channel_args->num_args; i++) {
180
+ if (0 == strcmp(channel_args->args[i].key, GRPC_ARG_RESOURCE_QUOTA)) {
181
+ grpc_resource_quota_unref_internal(resource_quota);
182
+ resource_quota = grpc_resource_quota_ref_internal(
183
+ (grpc_resource_quota*)channel_args->args[i].value.pointer.p);
184
+ }
185
+ }
186
+ }
187
+ connect->resource_quota = resource_quota;
188
+
189
+ CFReadStreamRef read_stream;
190
+ CFWriteStreamRef write_stream;
191
+
192
+ CFStringRef host;
193
+ int port;
194
+ ParseResolvedAddress(resolved_addr, &host, &port);
195
+ CFStreamCreatePairWithSocketToHost(NULL, host, port, &read_stream,
196
+ &write_stream);
197
+ CFRelease(host);
198
+ connect->read_stream = read_stream;
199
+ connect->write_stream = write_stream;
200
+ connect->stream_handle =
201
+ CFStreamHandle::CreateStreamHandle(read_stream, write_stream);
202
+ GRPC_CLOSURE_INIT(&connect->on_open, OnOpen, static_cast<void*>(connect),
203
+ grpc_schedule_on_exec_ctx);
204
+ connect->stream_handle->NotifyOnOpen(&connect->on_open);
205
+ GRPC_CLOSURE_INIT(&connect->on_alarm, OnAlarm, connect,
206
+ grpc_schedule_on_exec_ctx);
207
+ gpr_mu_lock(&connect->mu);
208
+ CFReadStreamOpen(read_stream);
209
+ CFWriteStreamOpen(write_stream);
210
+ grpc_timer_init(&connect->alarm, deadline, &connect->on_alarm);
211
+ gpr_mu_unlock(&connect->mu);
212
+ }
213
+
214
+ grpc_tcp_client_vtable grpc_cfstream_client_vtable = {CFStreamClientConnect};
215
+
216
+ #endif /* GRPC_CFSTREAM_CLIENT */
@@ -64,7 +64,7 @@ static void on_alarm(void* acp, grpc_error* error) {
64
64
  int done;
65
65
  grpc_custom_socket* socket = (grpc_custom_socket*)acp;
66
66
  grpc_custom_tcp_connect* connect = socket->connector;
67
- if (grpc_tcp_trace.enabled()) {
67
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
68
68
  const char* str = grpc_error_string(error);
69
69
  gpr_log(GPR_INFO, "CLIENT_CONNECT: %s: on_alarm: error=%s",
70
70
  connect->addr_name, str);
@@ -146,7 +146,7 @@ static void tcp_connect(grpc_closure* closure, grpc_endpoint** ep,
146
146
  socket->listener = nullptr;
147
147
  connect->refs = 2;
148
148
 
149
- if (grpc_tcp_trace.enabled()) {
149
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
150
150
  gpr_log(GPR_INFO, "CLIENT_CONNECT: %p %s: asynchronously connecting",
151
151
  socket, connect->addr_name);
152
152
  }
@@ -108,7 +108,7 @@ done:
108
108
  static void tc_on_alarm(void* acp, grpc_error* error) {
109
109
  int done;
110
110
  async_connect* ac = static_cast<async_connect*>(acp);
111
- if (grpc_tcp_trace.enabled()) {
111
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
112
112
  const char* str = grpc_error_string(error);
113
113
  gpr_log(GPR_INFO, "CLIENT_CONNECT: %s: on_alarm: error=%s", ac->addr_str,
114
114
  str);
@@ -145,7 +145,7 @@ static void on_writable(void* acp, grpc_error* error) {
145
145
 
146
146
  GRPC_ERROR_REF(error);
147
147
 
148
- if (grpc_tcp_trace.enabled()) {
148
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
149
149
  const char* str = grpc_error_string(error);
150
150
  gpr_log(GPR_INFO, "CLIENT_CONNECT: %s: on_writable: error=%s", ac->addr_str,
151
151
  str);
@@ -328,7 +328,7 @@ void grpc_tcp_client_create_from_prepared_fd(
328
328
  grpc_schedule_on_exec_ctx);
329
329
  ac->channel_args = grpc_channel_args_copy(channel_args);
330
330
 
331
- if (grpc_tcp_trace.enabled()) {
331
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
332
332
  gpr_log(GPR_INFO, "CLIENT_CONNECT: %s: asynchronously connecting fd %p",
333
333
  ac->addr_str, fdobj);
334
334
  }
@@ -148,7 +148,7 @@ static void tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
148
148
  }
149
149
 
150
150
  sock = WSASocket(AF_INET6, SOCK_STREAM, IPPROTO_TCP, NULL, 0,
151
- WSA_FLAG_OVERLAPPED);
151
+ grpc_get_default_wsa_socket_flags());
152
152
  if (sock == INVALID_SOCKET) {
153
153
  error = GRPC_WSA_ERROR(WSAGetLastError(), "WSASocket");
154
154
  goto failure;
@@ -213,10 +213,12 @@ static void tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
213
213
  failure:
214
214
  GPR_ASSERT(error != GRPC_ERROR_NONE);
215
215
  char* target_uri = grpc_sockaddr_to_uri(addr);
216
- grpc_error* final_error = grpc_error_set_str(
217
- GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING("Failed to connect",
218
- &error, 1),
219
- GRPC_ERROR_STR_TARGET_ADDRESS, grpc_slice_from_copied_string(target_uri));
216
+ grpc_error* final_error =
217
+ grpc_error_set_str(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
218
+ "Failed to connect", &error, 1),
219
+ GRPC_ERROR_STR_TARGET_ADDRESS,
220
+ grpc_slice_from_copied_string(
221
+ target_uri == nullptr ? "NULL" : target_uri));
220
222
  GRPC_ERROR_UNREF(error);
221
223
  if (socket != NULL) {
222
224
  grpc_winsocket_destroy(socket);
@@ -31,7 +31,6 @@
31
31
 
32
32
  #include "src/core/lib/iomgr/error.h"
33
33
  #include "src/core/lib/iomgr/iomgr_custom.h"
34
- #include "src/core/lib/iomgr/network_status_tracker.h"
35
34
  #include "src/core/lib/iomgr/resource_quota.h"
36
35
  #include "src/core/lib/iomgr/tcp_client.h"
37
36
  #include "src/core/lib/iomgr/tcp_custom.h"
@@ -89,7 +88,7 @@ static void tcp_free(grpc_custom_socket* s) {
89
88
  #define TCP_REF(tcp, reason) tcp_ref((tcp), (reason), __FILE__, __LINE__)
90
89
  static void tcp_unref(custom_tcp_endpoint* tcp, const char* reason,
91
90
  const char* file, int line) {
92
- if (grpc_tcp_trace.enabled()) {
91
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
93
92
  gpr_atm val = gpr_atm_no_barrier_load(&tcp->refcount.count);
94
93
  gpr_log(file, line, GPR_LOG_SEVERITY_ERROR,
95
94
  "TCP unref %p : %s %" PRIdPTR " -> %" PRIdPTR, tcp->socket, reason,
@@ -102,7 +101,7 @@ static void tcp_unref(custom_tcp_endpoint* tcp, const char* reason,
102
101
 
103
102
  static void tcp_ref(custom_tcp_endpoint* tcp, const char* reason,
104
103
  const char* file, int line) {
105
- if (grpc_tcp_trace.enabled()) {
104
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
106
105
  gpr_atm val = gpr_atm_no_barrier_load(&tcp->refcount.count);
107
106
  gpr_log(file, line, GPR_LOG_SEVERITY_ERROR,
108
107
  "TCP ref %p : %s %" PRIdPTR " -> %" PRIdPTR, tcp->socket, reason,
@@ -124,7 +123,7 @@ static void tcp_ref(custom_tcp_endpoint* tcp) { gpr_ref(&tcp->refcount); }
124
123
 
125
124
  static void call_read_cb(custom_tcp_endpoint* tcp, grpc_error* error) {
126
125
  grpc_closure* cb = tcp->read_cb;
127
- if (grpc_tcp_trace.enabled()) {
126
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
128
127
  gpr_log(GPR_INFO, "TCP:%p call_cb %p %p:%p", tcp->socket, cb, cb->cb,
129
128
  cb->cb_arg);
130
129
  size_t i;
@@ -170,7 +169,7 @@ static void custom_read_callback(grpc_custom_socket* socket, size_t nread,
170
169
 
171
170
  static void tcp_read_allocation_done(void* tcpp, grpc_error* error) {
172
171
  custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)tcpp;
173
- if (grpc_tcp_trace.enabled()) {
172
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
174
173
  gpr_log(GPR_INFO, "TCP:%p read_allocation_done: %s", tcp->socket,
175
174
  grpc_error_string(error));
176
175
  }
@@ -186,14 +185,14 @@ static void tcp_read_allocation_done(void* tcpp, grpc_error* error) {
186
185
  grpc_slice_buffer_reset_and_unref_internal(tcp->read_slices);
187
186
  call_read_cb(tcp, GRPC_ERROR_REF(error));
188
187
  }
189
- if (grpc_tcp_trace.enabled()) {
188
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
190
189
  const char* str = grpc_error_string(error);
191
190
  gpr_log(GPR_INFO, "Initiating read on %p: error=%s", tcp->socket, str);
192
191
  }
193
192
  }
194
193
 
195
194
  static void endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* read_slices,
196
- grpc_closure* cb) {
195
+ grpc_closure* cb, bool urgent) {
197
196
  custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)ep;
198
197
  GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
199
198
  GPR_ASSERT(tcp->read_cb == nullptr);
@@ -212,7 +211,7 @@ static void custom_write_callback(grpc_custom_socket* socket,
212
211
  custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)socket->endpoint;
213
212
  grpc_closure* cb = tcp->write_cb;
214
213
  tcp->write_cb = nullptr;
215
- if (grpc_tcp_trace.enabled()) {
214
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
216
215
  const char* str = grpc_error_string(error);
217
216
  gpr_log(GPR_INFO, "write complete on %p: error=%s", tcp->socket, str);
218
217
  }
@@ -225,7 +224,7 @@ static void endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* write_slices,
225
224
  custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)ep;
226
225
  GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
227
226
 
228
- if (grpc_tcp_trace.enabled()) {
227
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
229
228
  size_t j;
230
229
 
231
230
  for (j = 0; j < write_slices->count; j++) {
@@ -281,7 +280,7 @@ static void endpoint_delete_from_pollset_set(grpc_endpoint* ep,
281
280
  static void endpoint_shutdown(grpc_endpoint* ep, grpc_error* why) {
282
281
  custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)ep;
283
282
  if (!tcp->shutting_down) {
284
- if (grpc_tcp_trace.enabled()) {
283
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
285
284
  const char* str = grpc_error_string(why);
286
285
  gpr_log(GPR_INFO, "TCP %p shutdown why=%s", tcp->socket, str);
287
286
  }
@@ -309,7 +308,6 @@ static void custom_close_callback(grpc_custom_socket* socket) {
309
308
  }
310
309
 
311
310
  static void endpoint_destroy(grpc_endpoint* ep) {
312
- grpc_network_status_unregister_endpoint(ep);
313
311
  custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)ep;
314
312
  grpc_custom_socket_vtable->close(tcp->socket, custom_close_callback);
315
313
  }
@@ -347,7 +345,7 @@ grpc_endpoint* custom_tcp_endpoint_create(grpc_custom_socket* socket,
347
345
  (custom_tcp_endpoint*)gpr_malloc(sizeof(custom_tcp_endpoint));
348
346
  grpc_core::ExecCtx exec_ctx;
349
347
 
350
- if (grpc_tcp_trace.enabled()) {
348
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
351
349
  gpr_log(GPR_INFO, "Creating TCP endpoint %p", socket);
352
350
  }
353
351
  memset(tcp, 0, sizeof(custom_tcp_endpoint));
@@ -361,8 +359,6 @@ grpc_endpoint* custom_tcp_endpoint_create(grpc_custom_socket* socket,
361
359
  tcp->resource_user = grpc_resource_user_create(resource_quota, peer_string);
362
360
  grpc_resource_user_slice_allocator_init(
363
361
  &tcp->slice_allocator, tcp->resource_user, tcp_read_allocation_done, tcp);
364
- /* Tell network status tracking code about the new endpoint */
365
- grpc_network_status_register_endpoint(&tcp->base);
366
362
 
367
363
  return &tcp->base;
368
364
  }