grpc 1.28.0 → 1.30.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 (497) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +7694 -11190
  3. data/include/grpc/grpc.h +2 -2
  4. data/include/grpc/grpc_security.h +22 -9
  5. data/include/grpc/grpc_security_constants.h +1 -0
  6. data/include/grpc/impl/codegen/grpc_types.h +19 -21
  7. data/include/grpc/impl/codegen/port_platform.h +6 -2
  8. data/include/grpc/module.modulemap +24 -39
  9. data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
  10. data/src/core/ext/filters/client_channel/client_channel.cc +203 -236
  11. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
  12. data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
  13. data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
  14. data/src/core/ext/filters/client_channel/http_proxy.cc +17 -10
  15. data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
  16. data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
  17. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
  18. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
  19. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -4
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +240 -301
  21. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +89 -0
  22. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +40 -0
  23. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +11 -9
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
  25. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
  26. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -11
  28. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
  29. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +84 -37
  30. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
  31. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
  32. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
  33. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
  34. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +6 -2
  35. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
  36. data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
  37. data/src/core/ext/filters/client_channel/resolver.cc +5 -8
  38. data/src/core/ext/filters/client_channel/resolver.h +12 -14
  39. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +73 -59
  40. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
  41. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +16 -20
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +184 -133
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -3
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +7 -4
  48. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +40 -43
  49. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +93 -102
  50. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
  51. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -2
  52. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +32 -5
  53. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
  54. data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
  55. data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
  56. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +16 -16
  57. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +19 -16
  58. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +20 -31
  59. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +4 -3
  60. data/src/core/ext/filters/client_channel/server_address.cc +6 -9
  61. data/src/core/ext/filters/client_channel/server_address.h +6 -12
  62. data/src/core/ext/filters/client_channel/service_config.cc +104 -144
  63. data/src/core/ext/filters/client_channel/service_config.h +28 -98
  64. data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
  65. data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
  66. data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
  67. data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
  68. data/src/core/ext/filters/client_channel/subchannel.h +35 -11
  69. data/src/core/ext/filters/client_channel/xds/xds_api.cc +348 -221
  70. data/src/core/ext/filters/client_channel/xds/xds_api.h +37 -37
  71. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +44 -49
  72. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +4 -3
  73. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +4 -2
  74. data/src/core/ext/filters/client_channel/xds/xds_client.cc +532 -339
  75. data/src/core/ext/filters/client_channel/xds/xds_client.h +57 -22
  76. data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +11 -12
  77. data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +31 -19
  78. data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
  79. data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
  80. data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
  81. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
  82. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
  83. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
  84. data/src/core/ext/filters/message_size/message_size_filter.cc +7 -10
  85. data/src/core/ext/filters/message_size/message_size_filter.h +4 -4
  86. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +4 -4
  87. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
  88. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +23 -22
  89. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  90. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  91. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
  92. data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
  93. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
  94. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
  95. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
  96. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
  97. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
  98. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
  99. data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
  100. data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
  101. data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
  102. data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
  103. data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
  104. data/src/core/ext/transport/chttp2/transport/writing.cc +15 -8
  105. data/src/core/ext/transport/inproc/inproc_transport.cc +19 -0
  106. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +4 -229
  107. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -875
  108. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
  109. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
  110. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
  111. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
  112. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
  113. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
  114. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +1 -0
  115. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +21 -8
  116. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +43 -7
  117. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +1 -0
  118. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
  119. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
  120. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +2 -1
  121. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
  122. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
  123. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +47 -26
  124. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +115 -65
  125. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +1 -0
  126. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
  127. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
  128. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +2 -1
  129. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +24 -20
  130. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +28 -13
  131. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
  132. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +38 -18
  133. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +88 -6
  134. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
  135. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
  136. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -0
  137. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +1 -0
  138. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -0
  139. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -0
  140. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +9 -6
  141. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +12 -4
  142. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
  143. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +1 -0
  144. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +15 -10
  145. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +16 -0
  146. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +1 -0
  147. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +2 -1
  148. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +1 -0
  149. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +1 -0
  150. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +1 -0
  151. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +1 -0
  152. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +63 -41
  153. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +173 -77
  154. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +1 -0
  155. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +1 -0
  156. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -0
  157. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +48 -28
  158. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +90 -30
  159. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +1 -0
  160. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
  161. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
  162. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
  163. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
  164. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
  165. data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
  166. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +16 -0
  167. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +36 -0
  168. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +1 -0
  169. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +1 -0
  170. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
  171. data/src/core/ext/upb-generated/envoy/type/range.upb.c +1 -0
  172. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +1 -0
  173. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +1 -0
  174. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
  175. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
  176. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
  177. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
  178. data/src/core/ext/upb-generated/validate/validate.upb.c +21 -20
  179. data/src/core/ext/upb-generated/validate/validate.upb.h +69 -63
  180. data/src/core/lib/channel/channel_args.cc +15 -14
  181. data/src/core/lib/channel/channel_args.h +3 -1
  182. data/src/core/lib/channel/channel_stack.h +20 -13
  183. data/src/core/lib/channel/channelz.cc +5 -6
  184. data/src/core/lib/channel/channelz.h +3 -2
  185. data/src/core/lib/channel/channelz_registry.cc +5 -3
  186. data/src/core/lib/channel/connected_channel.cc +7 -5
  187. data/src/core/lib/channel/context.h +1 -1
  188. data/src/core/lib/channel/handshaker.cc +11 -13
  189. data/src/core/lib/channel/handshaker.h +4 -2
  190. data/src/core/lib/channel/handshaker_registry.cc +5 -17
  191. data/src/core/lib/channel/status_util.cc +2 -3
  192. data/src/core/lib/compression/message_compress.cc +5 -1
  193. data/src/core/lib/debug/stats.cc +21 -27
  194. data/src/core/lib/debug/stats.h +3 -1
  195. data/src/core/lib/gpr/spinlock.h +2 -3
  196. data/src/core/lib/gpr/string.cc +2 -26
  197. data/src/core/lib/gpr/string.h +0 -16
  198. data/src/core/lib/gpr/sync_abseil.cc +2 -0
  199. data/src/core/lib/gpr/time.cc +4 -0
  200. data/src/core/lib/gpr/time_posix.cc +1 -1
  201. data/src/core/lib/gprpp/atomic.h +6 -6
  202. data/src/core/lib/gprpp/fork.cc +1 -1
  203. data/src/core/lib/gprpp/host_port.cc +29 -35
  204. data/src/core/lib/gprpp/host_port.h +14 -17
  205. data/src/core/lib/gprpp/map.h +5 -11
  206. data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
  207. data/src/core/lib/http/format_request.cc +46 -65
  208. data/src/core/lib/http/httpcli.cc +2 -3
  209. data/src/core/lib/http/httpcli.h +2 -3
  210. data/src/core/lib/http/httpcli_security_connector.cc +5 -5
  211. data/src/core/lib/http/parser.h +2 -3
  212. data/src/core/lib/iomgr/buffer_list.h +22 -21
  213. data/src/core/lib/iomgr/call_combiner.h +3 -2
  214. data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
  215. data/src/core/lib/iomgr/closure.h +2 -3
  216. data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
  217. data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
  218. data/src/core/lib/iomgr/endpoint_pair.h +2 -3
  219. data/src/core/lib/iomgr/error.cc +6 -9
  220. data/src/core/lib/iomgr/error.h +0 -1
  221. data/src/core/lib/iomgr/ev_apple.cc +356 -0
  222. data/src/core/lib/iomgr/ev_apple.h +43 -0
  223. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
  224. data/src/core/lib/iomgr/ev_epollex_linux.cc +2 -3
  225. data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
  226. data/src/core/lib/iomgr/ev_posix.cc +2 -3
  227. data/src/core/lib/iomgr/exec_ctx.h +14 -2
  228. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
  229. data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
  230. data/src/core/lib/{gprpp/optional.h → iomgr/pollset_uv.h} +11 -12
  231. data/src/core/lib/iomgr/port.h +1 -0
  232. data/src/core/lib/iomgr/python_util.h +46 -0
  233. data/src/core/lib/iomgr/resolve_address.h +4 -6
  234. data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
  235. data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
  236. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
  237. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
  238. data/src/core/lib/iomgr/resource_quota.cc +4 -6
  239. data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
  240. data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
  241. data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
  242. data/src/core/lib/iomgr/socket_mutator.h +2 -3
  243. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
  244. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  245. data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
  246. data/src/core/lib/iomgr/tcp_client_posix.cc +8 -5
  247. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
  248. data/src/core/lib/iomgr/tcp_custom.cc +2 -3
  249. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
  250. data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
  251. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
  252. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
  253. data/src/core/lib/iomgr/tcp_uv.cc +3 -2
  254. data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
  255. data/src/core/lib/iomgr/timer_generic.cc +2 -3
  256. data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +19 -17
  257. data/src/core/lib/iomgr/timer_heap.h +2 -3
  258. data/src/core/lib/iomgr/udp_server.cc +9 -14
  259. data/src/core/lib/json/json.h +3 -2
  260. data/src/core/lib/json/json_reader.cc +5 -5
  261. data/src/core/lib/json/json_writer.cc +13 -12
  262. data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
  263. data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
  264. data/src/core/lib/security/credentials/credentials.cc +0 -84
  265. data/src/core/lib/security/credentials/credentials.h +8 -59
  266. data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
  267. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +3 -8
  268. data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
  269. data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
  270. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  271. data/src/core/lib/security/credentials/jwt/json_token.h +2 -5
  272. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
  273. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -15
  274. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
  275. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +55 -27
  276. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +9 -3
  277. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
  278. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
  279. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
  280. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +38 -11
  281. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
  282. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
  283. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
  284. data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
  285. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  286. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -25
  287. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
  288. data/src/core/lib/security/security_connector/ssl_utils.cc +59 -12
  289. data/src/core/lib/security/security_connector/ssl_utils.h +12 -10
  290. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +77 -51
  291. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +27 -5
  292. data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
  293. data/src/core/lib/slice/slice_intern.cc +2 -3
  294. data/src/core/lib/slice/slice_internal.h +14 -0
  295. data/src/core/lib/slice/slice_utils.h +9 -0
  296. data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
  297. data/src/core/lib/surface/call.cc +2 -3
  298. data/src/core/lib/surface/call_log_batch.cc +50 -58
  299. data/src/core/lib/surface/channel.cc +53 -31
  300. data/src/core/lib/surface/channel.h +35 -4
  301. data/src/core/lib/surface/channel_ping.cc +2 -3
  302. data/src/core/lib/surface/completion_queue.cc +33 -33
  303. data/src/core/lib/surface/event_string.cc +18 -25
  304. data/src/core/lib/surface/event_string.h +3 -1
  305. data/src/core/lib/surface/init_secure.cc +1 -4
  306. data/src/core/lib/surface/server.cc +570 -369
  307. data/src/core/lib/surface/server.h +32 -0
  308. data/src/core/lib/surface/version.cc +2 -2
  309. data/src/core/lib/transport/byte_stream.h +7 -2
  310. data/src/core/lib/transport/connectivity_state.cc +7 -6
  311. data/src/core/lib/transport/connectivity_state.h +5 -3
  312. data/src/core/lib/transport/metadata.cc +3 -3
  313. data/src/core/lib/transport/metadata_batch.h +2 -3
  314. data/src/core/lib/transport/static_metadata.h +1 -1
  315. data/src/core/lib/transport/status_conversion.cc +6 -14
  316. data/src/core/lib/transport/transport.cc +2 -3
  317. data/src/core/lib/transport/transport.h +3 -2
  318. data/src/core/lib/transport/transport_op_string.cc +61 -102
  319. data/src/core/lib/uri/uri_parser.h +2 -3
  320. data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
  321. data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
  322. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +8 -1
  323. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
  324. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -2
  325. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
  326. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
  327. data/src/core/tsi/fake_transport_security.cc +10 -15
  328. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
  329. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
  330. data/src/core/tsi/ssl_transport_security.cc +52 -39
  331. data/src/core/tsi/ssl_transport_security.h +8 -8
  332. data/src/core/tsi/ssl_types.h +0 -2
  333. data/src/core/tsi/transport_security.h +6 -9
  334. data/src/core/tsi/transport_security_grpc.h +2 -3
  335. data/src/core/tsi/transport_security_interface.h +3 -3
  336. data/src/ruby/ext/grpc/rb_call.c +9 -1
  337. data/src/ruby/lib/grpc/errors.rb +103 -42
  338. data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
  339. data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
  340. data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
  341. data/src/ruby/lib/grpc/generic/service.rb +5 -4
  342. data/src/ruby/lib/grpc/structs.rb +1 -1
  343. data/src/ruby/lib/grpc/version.rb +1 -1
  344. data/src/ruby/pb/generate_proto_ruby.sh +5 -3
  345. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
  346. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
  347. data/src/ruby/spec/debug_message_spec.rb +134 -0
  348. data/src/ruby/spec/generic/service_spec.rb +2 -0
  349. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +5 -0
  350. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -0
  351. data/src/ruby/spec/testdata/ca.pem +18 -13
  352. data/src/ruby/spec/testdata/client.key +26 -14
  353. data/src/ruby/spec/testdata/client.pem +18 -12
  354. data/src/ruby/spec/testdata/server1.key +26 -14
  355. data/src/ruby/spec/testdata/server1.pem +20 -14
  356. data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
  357. data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
  358. data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
  359. data/third_party/abseil-cpp/absl/time/clock.h +74 -0
  360. data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
  361. data/third_party/abseil-cpp/absl/time/format.cc +153 -0
  362. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  363. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
  364. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
  365. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  366. data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  367. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  368. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  369. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
  370. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
  371. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
  372. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
  373. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
  374. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
  375. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
  376. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
  377. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
  378. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
  379. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  380. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  381. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
  382. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
  383. data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  384. data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  385. data/third_party/abseil-cpp/absl/time/time.cc +499 -0
  386. data/third_party/abseil-cpp/absl/time/time.h +1584 -0
  387. data/third_party/boringssl-with-bazel/err_data.c +329 -297
  388. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
  389. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +7 -5
  390. data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
  391. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
  392. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +18 -26
  393. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
  394. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +14 -22
  395. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
  396. data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +15 -0
  397. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -0
  398. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
  399. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
  400. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
  401. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +33 -32
  402. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
  403. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
  404. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
  405. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +14 -11
  406. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
  407. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
  408. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +16 -0
  409. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +289 -117
  410. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +13 -27
  411. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
  412. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
  413. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +432 -160
  414. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
  415. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -14
  416. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
  417. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
  418. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
  419. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
  420. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +90 -11
  421. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
  422. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
  423. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
  424. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
  425. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
  426. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
  427. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
  428. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
  429. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +41 -5
  430. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +32 -17
  431. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +24 -114
  432. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
  433. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +1 -0
  434. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +51 -38
  435. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +15 -1
  436. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +44 -35
  437. data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -12
  438. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
  439. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -10
  440. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +16 -0
  441. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -0
  442. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
  443. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
  444. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
  445. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
  446. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +16 -0
  447. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +5 -0
  448. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +4 -3
  449. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -1
  450. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +9 -4
  451. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +20 -0
  452. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
  453. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
  454. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +6 -0
  455. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -0
  456. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
  457. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -17
  458. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +31 -0
  459. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
  460. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +172 -77
  461. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
  462. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
  463. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +5 -3
  464. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -0
  465. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -4
  466. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
  467. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
  468. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +146 -57
  469. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +14 -3
  470. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +28 -20
  471. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +12 -4
  472. data/third_party/boringssl-with-bazel/src/ssl/internal.h +64 -47
  473. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +10 -10
  474. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  475. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -21
  476. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +29 -0
  477. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -0
  478. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +6 -1
  479. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +13 -2
  480. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +64 -5
  481. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +6 -0
  482. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +6 -2
  483. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +47 -53
  484. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -1
  485. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -27
  486. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +23 -75
  487. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +50 -20
  488. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +63 -25
  489. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
  490. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
  491. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
  492. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
  493. metadata +111 -37
  494. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1754
  495. data/src/core/lib/gprpp/string_view.h +0 -60
  496. data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
  497. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
@@ -23,12 +23,11 @@
23
23
 
24
24
  #include "src/core/lib/iomgr/timer.h"
25
25
 
26
- typedef struct {
26
+ struct grpc_timer_heap {
27
27
  grpc_timer** timers;
28
28
  uint32_t timer_count;
29
29
  uint32_t timer_capacity;
30
- } grpc_timer_heap;
31
-
30
+ };
32
31
  /* return true if the new timer is the first timer in the heap */
33
32
  bool grpc_timer_heap_add(grpc_timer_heap* heap, grpc_timer* timer);
34
33
 
@@ -44,6 +44,8 @@
44
44
  #include <sys/types.h>
45
45
  #include <unistd.h>
46
46
 
47
+ #include "absl/container/inlined_vector.h"
48
+
47
49
  #include <grpc/grpc.h>
48
50
  #include <grpc/support/alloc.h>
49
51
  #include <grpc/support/log.h>
@@ -52,7 +54,6 @@
52
54
  #include <grpc/support/time.h>
53
55
  #include "src/core/lib/channel/channel_args.h"
54
56
  #include "src/core/lib/gpr/string.h"
55
- #include "src/core/lib/gprpp/inlined_vector.h"
56
57
  #include "src/core/lib/gprpp/memory.h"
57
58
  #include "src/core/lib/iomgr/error.h"
58
59
  #include "src/core/lib/iomgr/ev_posix.h"
@@ -147,11 +148,9 @@ GrpcUdpListener::GrpcUdpListener(grpc_udp_server* server, int fd,
147
148
  server_(server),
148
149
  orphan_notified_(false),
149
150
  already_shutdown_(false) {
150
- char* addr_str;
151
151
  char* name;
152
- grpc_sockaddr_to_string(&addr_str, addr, 1);
153
- gpr_asprintf(&name, "udp-server-listener:%s", addr_str);
154
- gpr_free(addr_str);
152
+ std::string addr_str = grpc_sockaddr_to_string(addr, true);
153
+ gpr_asprintf(&name, "udp-server-listener:%s", addr_str.c_str());
155
154
  emfd_ = grpc_fd_create(fd, name, true);
156
155
  memcpy(&addr_, addr, sizeof(grpc_resolved_address));
157
156
  GPR_ASSERT(emfd_);
@@ -177,7 +176,7 @@ struct grpc_udp_server {
177
176
  int shutdown;
178
177
 
179
178
  /* An array of listeners */
180
- grpc_core::InlinedVector<GrpcUdpListener, 16> listeners;
179
+ absl::InlinedVector<GrpcUdpListener, 16> listeners;
181
180
 
182
181
  /* factory for use to create udp listeners */
183
182
  GrpcUdpHandlerFactory* handler_factory;
@@ -412,10 +411,8 @@ static int prepare_socket(grpc_socket_factory* socket_factory, int fd,
412
411
  }
413
412
 
414
413
  if (bind_socket(socket_factory, fd, addr) < 0) {
415
- char* addr_str;
416
- grpc_sockaddr_to_string(&addr_str, addr, 0);
417
- gpr_log(GPR_ERROR, "bind addr=%s: %s", addr_str, strerror(errno));
418
- gpr_free(addr_str);
414
+ std::string addr_str = grpc_sockaddr_to_string(addr, false);
415
+ gpr_log(GPR_ERROR, "bind addr=%s: %s", addr_str.c_str(), strerror(errno));
419
416
  goto error;
420
417
  }
421
418
 
@@ -582,10 +579,8 @@ int grpc_udp_server_add_port(grpc_udp_server* s,
582
579
  "Try to have multiple listeners on same port, but SO_REUSEPORT is "
583
580
  "not supported. Only create 1 listener.");
584
581
  }
585
- char* addr_str;
586
- grpc_sockaddr_to_string(&addr_str, addr, 1);
587
- gpr_log(GPR_DEBUG, "add address: %s to server", addr_str);
588
- gpr_free(addr_str);
582
+ std::string addr_str = grpc_sockaddr_to_string(addr, true);
583
+ gpr_log(GPR_DEBUG, "add address: %s to server", addr_str.c_str());
589
584
 
590
585
  int allocated_port1 = -1;
591
586
  int allocated_port2 = -1;
@@ -27,7 +27,8 @@
27
27
  #include <string>
28
28
  #include <vector>
29
29
 
30
- #include "src/core/lib/gprpp/string_view.h"
30
+ #include "absl/strings/string_view.h"
31
+
31
32
  #include "src/core/lib/iomgr/error.h"
32
33
 
33
34
  namespace grpc_core {
@@ -55,7 +56,7 @@ class Json {
55
56
  using Array = std::vector<Json>;
56
57
 
57
58
  // Parses JSON string from json_str. On error, sets *error.
58
- static Json Parse(StringView json_str, grpc_error** error);
59
+ static Json Parse(absl::string_view json_str, grpc_error** error);
59
60
 
60
61
  Json() = default;
61
62
 
@@ -34,7 +34,7 @@ namespace {
34
34
 
35
35
  class JsonReader {
36
36
  public:
37
- static grpc_error* Parse(StringView input, Json* output);
37
+ static grpc_error* Parse(absl::string_view input, Json* output);
38
38
 
39
39
  private:
40
40
  enum class Status {
@@ -80,7 +80,7 @@ class JsonReader {
80
80
  */
81
81
  static constexpr uint32_t GRPC_JSON_READ_CHAR_EOF = 0x7ffffff0;
82
82
 
83
- explicit JsonReader(StringView input)
83
+ explicit JsonReader(absl::string_view input)
84
84
  : original_input_(reinterpret_cast<const uint8_t*>(input.data())),
85
85
  input_(original_input_),
86
86
  remaining_input_(input.size()) {}
@@ -235,7 +235,7 @@ void JsonReader::SetString() {
235
235
 
236
236
  bool JsonReader::SetNumber() {
237
237
  Json* value = CreateAndLinkValue();
238
- *value = Json(std::move(string_), /*is_number=*/true);
238
+ *value = Json(string_, /*is_number=*/true);
239
239
  string_.clear();
240
240
  return true;
241
241
  }
@@ -815,7 +815,7 @@ JsonReader::Status JsonReader::Run() {
815
815
  GPR_UNREACHABLE_CODE(return Status::GRPC_JSON_INTERNAL_ERROR);
816
816
  }
817
817
 
818
- grpc_error* JsonReader::Parse(StringView input, Json* output) {
818
+ grpc_error* JsonReader::Parse(absl::string_view input, Json* output) {
819
819
  JsonReader reader(input);
820
820
  Status status = reader.Run();
821
821
  if (reader.truncated_errors_) {
@@ -846,7 +846,7 @@ grpc_error* JsonReader::Parse(StringView input, Json* output) {
846
846
 
847
847
  } // namespace
848
848
 
849
- Json Json::Parse(StringView json_str, grpc_error** error) {
849
+ Json Json::Parse(absl::string_view json_str, grpc_error** error) {
850
850
  Json value;
851
851
  *error = JsonReader::Parse(json_str, &value);
852
852
  return value;
@@ -21,13 +21,13 @@
21
21
  #include <stdlib.h>
22
22
  #include <string.h>
23
23
 
24
+ #include "absl/strings/string_view.h"
25
+
24
26
  #include <grpc/support/alloc.h>
25
27
  #include <grpc/support/log.h>
26
28
 
27
29
  #include "src/core/lib/json/json.h"
28
30
 
29
- #include "src/core/lib/gprpp/string_view.h"
30
-
31
31
  namespace grpc_core {
32
32
 
33
33
  namespace {
@@ -52,7 +52,7 @@ class JsonWriter {
52
52
 
53
53
  void OutputCheck(size_t needed);
54
54
  void OutputChar(char c);
55
- void OutputString(const StringView str);
55
+ void OutputString(const absl::string_view str);
56
56
  void OutputIndent();
57
57
  void ValueEnd();
58
58
  void EscapeUtf16(uint16_t utf16);
@@ -92,7 +92,7 @@ void JsonWriter::OutputChar(char c) {
92
92
  output_.push_back(c);
93
93
  }
94
94
 
95
- void JsonWriter::OutputString(const StringView str) {
95
+ void JsonWriter::OutputString(const absl::string_view str) {
96
96
  OutputCheck(str.size());
97
97
  output_.append(str.data(), str.size());
98
98
  }
@@ -110,11 +110,12 @@ void JsonWriter::OutputIndent() {
110
110
  return;
111
111
  }
112
112
  while (spaces >= (sizeof(spacesstr) - 1)) {
113
- OutputString(StringView(spacesstr, sizeof(spacesstr) - 1));
113
+ OutputString(absl::string_view(spacesstr, sizeof(spacesstr) - 1));
114
114
  spaces -= static_cast<unsigned>(sizeof(spacesstr) - 1);
115
115
  }
116
116
  if (spaces == 0) return;
117
- OutputString(StringView(spacesstr + sizeof(spacesstr) - 1 - spaces, spaces));
117
+ OutputString(
118
+ absl::string_view(spacesstr + sizeof(spacesstr) - 1 - spaces, spaces));
118
119
  }
119
120
 
120
121
  void JsonWriter::ValueEnd() {
@@ -131,7 +132,7 @@ void JsonWriter::ValueEnd() {
131
132
 
132
133
  void JsonWriter::EscapeUtf16(uint16_t utf16) {
133
134
  static const char hex[] = "0123456789abcdef";
134
- OutputString(StringView("\\u", 2));
135
+ OutputString(absl::string_view("\\u", 2));
135
136
  OutputChar(hex[(utf16 >> 12) & 0x0f]);
136
137
  OutputChar(hex[(utf16 >> 8) & 0x0f]);
137
138
  OutputChar(hex[(utf16 >> 4) & 0x0f]);
@@ -150,19 +151,19 @@ void JsonWriter::EscapeString(const std::string& string) {
150
151
  } else if (c < 32 || c == 127) {
151
152
  switch (c) {
152
153
  case '\b':
153
- OutputString(StringView("\\b", 2));
154
+ OutputString(absl::string_view("\\b", 2));
154
155
  break;
155
156
  case '\f':
156
- OutputString(StringView("\\f", 2));
157
+ OutputString(absl::string_view("\\f", 2));
157
158
  break;
158
159
  case '\n':
159
- OutputString(StringView("\\n", 2));
160
+ OutputString(absl::string_view("\\n", 2));
160
161
  break;
161
162
  case '\r':
162
- OutputString(StringView("\\r", 2));
163
+ OutputString(absl::string_view("\\r", 2));
163
164
  break;
164
165
  case '\t':
165
- OutputString(StringView("\\t", 2));
166
+ OutputString(absl::string_view("\\t", 2));
166
167
  break;
167
168
  default:
168
169
  EscapeUtf16(c);
@@ -22,7 +22,10 @@
22
22
 
23
23
  #include <cstring>
24
24
  #include <new>
25
+ #include <vector>
25
26
 
27
+ #include "absl/strings/str_cat.h"
28
+ #include "absl/strings/str_join.h"
26
29
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
27
30
  #include "src/core/lib/iomgr/polling_entity.h"
28
31
  #include "src/core/lib/surface/api_trace.h"
@@ -116,6 +119,15 @@ void grpc_composite_call_credentials::cancel_get_request_metadata(
116
119
  GRPC_ERROR_UNREF(error);
117
120
  }
118
121
 
122
+ std::string grpc_composite_call_credentials::debug_string() {
123
+ std::vector<std::string> outputs;
124
+ for (auto& inner_cred : inner_) {
125
+ outputs.emplace_back(inner_cred->debug_string());
126
+ }
127
+ return absl::StrCat("CompositeCallCredentials{", absl::StrJoin(outputs, ","),
128
+ "}");
129
+ }
130
+
119
131
  static size_t get_creds_array_size(const grpc_call_credentials* creds,
120
132
  bool is_composite) {
121
133
  return is_composite
@@ -21,7 +21,10 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include "src/core/lib/gprpp/inlined_vector.h"
24
+ #include <string>
25
+
26
+ #include "absl/container/inlined_vector.h"
27
+
25
28
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
26
29
  #include "src/core/lib/security/credentials/credentials.h"
27
30
 
@@ -69,8 +72,7 @@ class grpc_composite_channel_credentials : public grpc_channel_credentials {
69
72
  class grpc_composite_call_credentials : public grpc_call_credentials {
70
73
  public:
71
74
  using CallCredentialsList =
72
- grpc_core::InlinedVector<grpc_core::RefCountedPtr<grpc_call_credentials>,
73
- 2>;
75
+ absl::InlinedVector<grpc_core::RefCountedPtr<grpc_call_credentials>, 2>;
74
76
 
75
77
  grpc_composite_call_credentials(
76
78
  grpc_core::RefCountedPtr<grpc_call_credentials> creds1,
@@ -91,6 +93,7 @@ class grpc_composite_call_credentials : public grpc_call_credentials {
91
93
  }
92
94
 
93
95
  const CallCredentialsList& inner() const { return inner_; }
96
+ std::string debug_string() override;
94
97
 
95
98
  private:
96
99
  void push_to_inner(grpc_core::RefCountedPtr<grpc_call_credentials> creds,
@@ -45,90 +45,6 @@ void grpc_channel_credentials_release(grpc_channel_credentials* creds) {
45
45
  if (creds) creds->Unref();
46
46
  }
47
47
 
48
- static std::map<grpc_core::UniquePtr<char>,
49
- grpc_core::RefCountedPtr<grpc_channel_credentials>,
50
- grpc_core::StringLess>* g_grpc_control_plane_creds;
51
- static gpr_mu g_control_plane_creds_mu;
52
-
53
- static void do_control_plane_creds_init() {
54
- gpr_mu_init(&g_control_plane_creds_mu);
55
- GPR_ASSERT(g_grpc_control_plane_creds == nullptr);
56
- g_grpc_control_plane_creds =
57
- new std::map<grpc_core::UniquePtr<char>,
58
- grpc_core::RefCountedPtr<grpc_channel_credentials>,
59
- grpc_core::StringLess>();
60
- }
61
-
62
- void grpc_control_plane_credentials_init() {
63
- static gpr_once once_init_control_plane_creds = GPR_ONCE_INIT;
64
- gpr_once_init(&once_init_control_plane_creds, do_control_plane_creds_init);
65
- }
66
-
67
- void grpc_test_only_control_plane_credentials_destroy() {
68
- delete g_grpc_control_plane_creds;
69
- g_grpc_control_plane_creds = nullptr;
70
- gpr_mu_destroy(&g_control_plane_creds_mu);
71
- }
72
-
73
- void grpc_test_only_control_plane_credentials_force_init() {
74
- if (g_grpc_control_plane_creds == nullptr) {
75
- do_control_plane_creds_init();
76
- }
77
- }
78
-
79
- bool grpc_channel_credentials_attach_credentials(
80
- grpc_channel_credentials* credentials, const char* authority,
81
- grpc_channel_credentials* control_plane_creds) {
82
- grpc_core::ExecCtx exec_ctx;
83
- return credentials->attach_credentials(authority, control_plane_creds->Ref());
84
- }
85
-
86
- bool grpc_control_plane_credentials_register(
87
- const char* authority, grpc_channel_credentials* control_plane_creds) {
88
- grpc_core::ExecCtx exec_ctx;
89
- {
90
- grpc_core::MutexLock lock(&g_control_plane_creds_mu);
91
- auto key = grpc_core::UniquePtr<char>(gpr_strdup(authority));
92
- if (g_grpc_control_plane_creds->find(key) !=
93
- g_grpc_control_plane_creds->end()) {
94
- return false;
95
- }
96
- (*g_grpc_control_plane_creds)[std::move(key)] = control_plane_creds->Ref();
97
- }
98
- return true;
99
- }
100
-
101
- bool grpc_channel_credentials::attach_credentials(
102
- const char* authority,
103
- grpc_core::RefCountedPtr<grpc_channel_credentials> control_plane_creds) {
104
- auto key = grpc_core::UniquePtr<char>(gpr_strdup(authority));
105
- if (local_control_plane_creds_.find(key) !=
106
- local_control_plane_creds_.end()) {
107
- return false;
108
- }
109
- local_control_plane_creds_[std::move(key)] = std::move(control_plane_creds);
110
- return true;
111
- }
112
-
113
- grpc_core::RefCountedPtr<grpc_channel_credentials>
114
- grpc_channel_credentials::get_control_plane_credentials(const char* authority) {
115
- {
116
- auto key = grpc_core::UniquePtr<char>(gpr_strdup(authority));
117
- auto local_lookup = local_control_plane_creds_.find(key);
118
- if (local_lookup != local_control_plane_creds_.end()) {
119
- return local_lookup->second;
120
- }
121
- {
122
- grpc_core::MutexLock lock(&g_control_plane_creds_mu);
123
- auto global_lookup = g_grpc_control_plane_creds->find(key);
124
- if (global_lookup != g_grpc_control_plane_creds->end()) {
125
- return global_lookup->second;
126
- }
127
- }
128
- }
129
- return duplicate_without_call_credentials();
130
- }
131
-
132
48
  void grpc_call_credentials_release(grpc_call_credentials* creds) {
133
49
  GRPC_API_TRACE("grpc_call_credentials_release(creds=%p)", 1, (creds));
134
50
  grpc_core::ExecCtx exec_ctx;
@@ -21,14 +21,14 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include <string.h>
25
+
24
26
  #include <grpc/grpc.h>
25
27
  #include <grpc/grpc_security.h>
26
28
  #include <grpc/support/sync.h>
27
29
  #include "src/core/lib/transport/metadata_batch.h"
28
30
 
29
- #include "src/core/lib/gprpp/map.h"
30
31
  #include "src/core/lib/gprpp/ref_counted.h"
31
- #include "src/core/lib/gprpp/sync.h"
32
32
  #include "src/core/lib/http/httpcli.h"
33
33
  #include "src/core/lib/http/parser.h"
34
34
  #include "src/core/lib/iomgr/polling_entity.h"
@@ -129,29 +129,10 @@ struct grpc_channel_credentials
129
129
  return args;
130
130
  }
131
131
 
132
- // Attaches control_plane_creds to the local registry, under authority,
133
- // if no other creds are currently registered under authority. Returns
134
- // true if registered successfully and false if not.
135
- bool attach_credentials(
136
- const char* authority,
137
- grpc_core::RefCountedPtr<grpc_channel_credentials> control_plane_creds);
138
-
139
- // Gets the control plane credentials registered under authority. This
140
- // prefers the local control plane creds registry but falls back to the
141
- // global registry. Lastly, this returns self but with any attached
142
- // call credentials stripped off, in the case that neither the local
143
- // registry nor the global registry have an entry for authority.
144
- grpc_core::RefCountedPtr<grpc_channel_credentials>
145
- get_control_plane_credentials(const char* authority);
146
-
147
132
  const char* type() const { return type_; }
148
133
 
149
134
  private:
150
135
  const char* type_;
151
- std::map<grpc_core::UniquePtr<char>,
152
- grpc_core::RefCountedPtr<grpc_channel_credentials>,
153
- grpc_core::StringLess>
154
- local_control_plane_creds_;
155
136
  };
156
137
 
157
138
  /* Util to encapsulate the channel credentials in a channel arg. */
@@ -165,48 +146,12 @@ grpc_channel_credentials* grpc_channel_credentials_from_arg(
165
146
  grpc_channel_credentials* grpc_channel_credentials_find_in_args(
166
147
  const grpc_channel_args* args);
167
148
 
168
- /** EXPERIMENTAL. API MAY CHANGE IN THE FUTURE.
169
- Attaches \a control_plane_creds to \a credentials
170
- under the key \a authority. Returns false if \a authority
171
- is already present, in which case no changes are made.
172
- Note that this API is not thread safe. Only one thread may
173
- attach control plane creds to a given credentials object at
174
- any one time, and new control plane creds must not be
175
- attached after \a credentials has been used to create a channel. */
176
- bool grpc_channel_credentials_attach_credentials(
177
- grpc_channel_credentials* credentials, const char* authority,
178
- grpc_channel_credentials* control_plane_creds);
179
-
180
- /** EXPERIMENTAL. API MAY CHANGE IN THE FUTURE.
181
- Registers \a control_plane_creds in the global registry
182
- under the key \a authority. Returns false if \a authority
183
- is already present, in which case no changes are made. */
184
- bool grpc_control_plane_credentials_register(
185
- const char* authority, grpc_channel_credentials* control_plane_creds);
186
-
187
- /* Initializes global control plane credentials data. */
188
- void grpc_control_plane_credentials_init();
189
-
190
- /* Test only: destroy global control plane credentials data.
191
- * This API is meant for use by a few tests that need to
192
- * satisdy grpc_core::LeakDetector. */
193
- void grpc_test_only_control_plane_credentials_destroy();
194
-
195
- /* Test only: force re-initialization of global control
196
- * plane credentials data if it was previously destroyed.
197
- * This API is meant to be used in
198
- * tandem with the
199
- * grpc_test_only_control_plane_credentials_destroy, for
200
- * the few tests that need it. */
201
- void grpc_test_only_control_plane_credentials_force_init();
202
-
203
149
  /* --- grpc_credentials_mdelem_array. --- */
204
150
 
205
- typedef struct {
151
+ struct grpc_credentials_mdelem_array {
206
152
  grpc_mdelem* md = nullptr;
207
153
  size_t size = 0;
208
- } grpc_credentials_mdelem_array;
209
-
154
+ };
210
155
  /// Takes a new ref to \a md.
211
156
  void grpc_credentials_mdelem_array_add(grpc_credentials_mdelem_array* list,
212
157
  grpc_mdelem md);
@@ -252,6 +197,10 @@ struct grpc_call_credentials
252
197
  return min_security_level_;
253
198
  }
254
199
 
200
+ virtual std::string debug_string() {
201
+ return "grpc_call_credentials did not provide debug string";
202
+ }
203
+
255
204
  const char* type() const { return type_; }
256
205
 
257
206
  private: