grpc 1.30.0 → 1.31.1

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 (383) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +560 -619
  3. data/include/grpc/grpc_security.h +8 -0
  4. data/include/grpc/grpc_security_constants.h +3 -0
  5. data/include/grpc/impl/codegen/grpc_types.h +7 -5
  6. data/include/grpc/impl/codegen/port_platform.h +0 -32
  7. data/src/core/ext/filters/client_channel/backend_metric.cc +12 -9
  8. data/src/core/ext/filters/client_channel/client_channel.cc +406 -261
  9. data/src/core/ext/filters/client_channel/config_selector.cc +62 -0
  10. data/src/core/ext/filters/client_channel/config_selector.h +93 -0
  11. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -2
  12. data/src/core/ext/filters/client_channel/health/health_check_client.cc +2 -0
  13. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +6 -5
  14. data/src/core/ext/filters/client_channel/http_proxy.cc +6 -4
  15. data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
  16. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +39 -23
  17. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +4 -6
  18. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -4
  19. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +381 -72
  20. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -5
  21. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +5 -2
  22. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +6 -5
  23. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +8 -6
  24. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +9 -7
  25. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +7 -5
  26. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -48
  27. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
  28. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +21 -18
  29. data/src/core/ext/filters/client_channel/resolver_registry.cc +13 -14
  30. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +6 -7
  31. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +33 -28
  32. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +39 -20
  33. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +142 -0
  34. data/src/core/ext/filters/client_channel/subchannel.cc +1 -1
  35. data/src/core/ext/filters/client_channel/xds/xds_api.cc +327 -123
  36. data/src/core/ext/filters/client_channel/xds/xds_api.h +72 -7
  37. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +12 -23
  38. data/src/core/ext/filters/client_channel/xds/xds_client.cc +112 -33
  39. data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +10 -10
  40. data/src/core/ext/filters/http/client/http_client_filter.cc +5 -5
  41. data/src/core/ext/filters/http/http_filters_plugin.cc +2 -1
  42. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +74 -33
  43. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +3 -1
  44. data/src/core/ext/filters/message_size/message_size_filter.cc +56 -80
  45. data/src/core/ext/filters/message_size/message_size_filter.h +6 -0
  46. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +383 -347
  47. data/src/core/ext/transport/chttp2/server/chttp2_server.h +6 -2
  48. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +1 -1
  49. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -13
  50. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +7 -8
  51. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +19 -4
  52. data/src/core/ext/transport/chttp2/transport/flow_control.cc +22 -27
  53. data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -16
  54. data/src/core/ext/transport/chttp2/transport/frame_data.cc +9 -12
  55. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -6
  56. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
  57. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +12 -13
  58. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -7
  59. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +9 -12
  60. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -29
  61. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +13 -17
  62. data/src/core/ext/transport/chttp2/transport/internal.h +13 -0
  63. data/src/core/ext/transport/chttp2/transport/parsing.cc +33 -43
  64. data/src/core/ext/transport/chttp2/transport/writing.cc +9 -14
  65. data/src/core/ext/transport/inproc/inproc_transport.cc +35 -15
  66. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +0 -1
  67. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +3 -4
  68. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -1
  69. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +80 -69
  70. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +24 -23
  71. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +66 -56
  72. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +1 -2
  73. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +2 -2
  74. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +317 -311
  75. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +42 -34
  76. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +7 -7
  77. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +79 -61
  78. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +55 -49
  79. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +9 -8
  80. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +1 -1
  81. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +163 -169
  82. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +51 -45
  83. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +4 -5
  84. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +107 -100
  85. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +137 -117
  86. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +9 -9
  87. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +105 -87
  88. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +12 -13
  89. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -1
  90. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +95 -101
  91. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +1 -2
  92. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -1
  93. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +49 -65
  94. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -1
  95. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +49 -42
  96. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +70 -62
  97. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +1 -2
  98. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +81 -65
  99. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -1
  100. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +1 -1
  101. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +91 -80
  102. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +9 -10
  103. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +1 -2
  104. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +36 -31
  105. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -1
  106. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +7 -7
  107. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +648 -696
  108. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +16 -15
  109. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +1 -2
  110. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -1
  111. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +95 -88
  112. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +234 -199
  113. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +5 -5
  114. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +13 -13
  115. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +1 -2
  116. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +20 -18
  117. data/src/core/ext/upb-generated/envoy/type/http.upb.h +0 -1
  118. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +18 -17
  119. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +14 -14
  120. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +23 -23
  121. data/src/core/ext/upb-generated/envoy/type/percent.upb.h +8 -9
  122. data/src/core/ext/upb-generated/envoy/type/range.upb.h +15 -16
  123. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +7 -8
  124. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +36 -35
  125. data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +0 -1
  126. data/src/core/ext/upb-generated/google/api/annotations.upb.h +0 -1
  127. data/src/core/ext/upb-generated/google/api/http.upb.h +29 -28
  128. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +5 -6
  129. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +3 -3
  130. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +412 -386
  131. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +5 -6
  132. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +1 -2
  133. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +1 -1
  134. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +33 -54
  135. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +5 -6
  136. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -28
  137. data/src/core/ext/upb-generated/google/rpc/status.upb.h +8 -8
  138. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +1 -1
  139. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +32 -45
  140. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +4 -4
  141. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +157 -178
  142. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +14 -13
  143. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -7
  144. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +59 -56
  145. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +11 -12
  146. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +0 -1
  147. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +5 -6
  148. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +6 -6
  149. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +41 -68
  150. data/src/core/ext/upb-generated/validate/validate.upb.h +536 -535
  151. data/src/core/lib/channel/channel_trace.cc +2 -6
  152. data/src/core/lib/channel/channelz.cc +5 -15
  153. data/src/core/lib/gpr/log_linux.cc +6 -8
  154. data/src/core/lib/gpr/log_posix.cc +6 -8
  155. data/src/core/lib/gpr/string.cc +10 -9
  156. data/src/core/lib/gpr/string.h +4 -2
  157. data/src/core/lib/gprpp/global_config_env.cc +8 -6
  158. data/src/core/lib/http/httpcli.cc +13 -10
  159. data/src/core/lib/http/httpcli_security_connector.cc +5 -5
  160. data/src/core/lib/iomgr/cfstream_handle.cc +1 -0
  161. data/src/core/lib/iomgr/endpoint_pair_posix.cc +10 -10
  162. data/src/core/lib/iomgr/error_cfstream.cc +9 -8
  163. data/src/core/lib/iomgr/ev_epoll1_linux.cc +5 -6
  164. data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -21
  165. data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
  166. data/src/core/lib/iomgr/ev_posix.cc +2 -0
  167. data/src/core/lib/iomgr/iomgr.cc +10 -0
  168. data/src/core/lib/iomgr/iomgr.h +10 -0
  169. data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
  170. data/src/core/lib/iomgr/port.h +1 -21
  171. data/src/core/lib/iomgr/resolve_address_custom.cc +13 -18
  172. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -8
  173. data/src/core/lib/iomgr/resource_quota.cc +34 -31
  174. data/src/core/lib/iomgr/sockaddr_utils.cc +7 -5
  175. data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
  176. data/src/core/lib/iomgr/socket_utils_common_posix.cc +95 -55
  177. data/src/core/lib/iomgr/socket_windows.cc +4 -5
  178. data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -11
  179. data/src/core/lib/iomgr/tcp_client_custom.cc +6 -9
  180. data/src/core/lib/iomgr/tcp_client_posix.cc +27 -36
  181. data/src/core/lib/iomgr/tcp_client_windows.cc +9 -9
  182. data/src/core/lib/iomgr/tcp_custom.cc +1 -1
  183. data/src/core/lib/iomgr/tcp_custom.h +1 -1
  184. data/src/core/lib/iomgr/tcp_server.cc +3 -4
  185. data/src/core/lib/iomgr/tcp_server.h +7 -5
  186. data/src/core/lib/iomgr/tcp_server_custom.cc +6 -14
  187. data/src/core/lib/iomgr/tcp_server_posix.cc +34 -41
  188. data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -4
  189. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -7
  190. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -9
  191. data/src/core/lib/iomgr/tcp_server_windows.cc +16 -16
  192. data/src/core/lib/iomgr/timer_generic.cc +13 -12
  193. data/src/core/lib/iomgr/udp_server.cc +24 -23
  194. data/src/core/lib/iomgr/udp_server.h +5 -2
  195. data/src/core/lib/iomgr/unix_sockets_posix.cc +9 -14
  196. data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
  197. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +5 -2
  198. data/src/core/lib/json/json_reader.cc +20 -21
  199. data/src/core/lib/security/credentials/credentials.h +5 -3
  200. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -6
  201. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -9
  202. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -4
  203. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +19 -28
  204. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -6
  205. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +20 -0
  206. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -0
  207. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +10 -0
  208. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +10 -10
  209. data/src/core/lib/security/security_connector/security_connector.cc +2 -0
  210. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  211. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +18 -11
  212. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +5 -0
  213. data/src/core/lib/security/security_connector/ssl_utils.cc +44 -23
  214. data/src/core/lib/security/security_connector/ssl_utils.h +6 -2
  215. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +27 -24
  216. data/src/core/lib/security/transport/auth_filters.h +0 -5
  217. data/src/core/lib/security/transport/client_auth_filter.cc +10 -9
  218. data/src/core/lib/security/util/json_util.cc +12 -13
  219. data/src/core/lib/slice/slice.cc +38 -1
  220. data/src/core/lib/slice/slice_internal.h +1 -0
  221. data/src/core/lib/surface/call.cc +40 -41
  222. data/src/core/lib/surface/completion_queue.cc +271 -14
  223. data/src/core/lib/surface/completion_queue.h +8 -0
  224. data/src/core/lib/surface/init.cc +2 -0
  225. data/src/core/lib/surface/server.cc +565 -632
  226. data/src/core/lib/surface/server.h +34 -12
  227. data/src/core/lib/surface/version.cc +2 -2
  228. data/src/core/lib/transport/transport.h +6 -0
  229. data/src/core/lib/uri/uri_parser.cc +8 -15
  230. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
  231. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +23 -13
  232. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -0
  233. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -0
  234. data/src/core/tsi/ssl_transport_security.cc +108 -11
  235. data/src/core/tsi/ssl_transport_security.h +14 -2
  236. data/src/core/tsi/transport_security_interface.h +5 -0
  237. data/src/ruby/bin/math_services_pb.rb +4 -4
  238. data/src/ruby/ext/grpc/extconf.rb +5 -2
  239. data/src/ruby/ext/grpc/rb_call.c +3 -2
  240. data/src/ruby/ext/grpc/rb_call.h +4 -0
  241. data/src/ruby/ext/grpc/rb_call_credentials.c +57 -12
  242. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
  243. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
  244. data/src/ruby/lib/grpc/generic/client_stub.rb +1 -1
  245. data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
  246. data/src/ruby/lib/grpc/version.rb +1 -1
  247. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +2 -2
  248. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +5 -0
  249. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +28 -12
  250. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
  251. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +2 -0
  252. data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
  253. data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
  254. data/src/ruby/spec/pb/codegen/package_option_spec.rb +25 -1
  255. data/src/ruby/spec/support/services.rb +10 -4
  256. data/src/ruby/spec/user_agent_spec.rb +74 -0
  257. data/third_party/boringssl-with-bazel/err_data.c +89 -83
  258. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
  259. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +3 -3
  260. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +1 -1
  261. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -3
  262. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
  263. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
  264. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -1
  265. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
  266. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
  267. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
  268. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
  269. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +1 -0
  270. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +12 -52
  271. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -22
  272. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +143 -0
  273. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
  274. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +11 -1
  275. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +2 -1
  276. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +13 -11
  277. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +24 -23
  278. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +20 -16
  279. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -2
  280. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
  281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +62 -0
  282. data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -15
  283. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
  284. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -5
  285. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +0 -29
  286. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +116 -363
  287. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +7 -45
  288. data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +4 -4
  289. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +8 -0
  290. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
  291. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
  292. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +13 -6
  293. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +10 -0
  294. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +41 -0
  295. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +4 -1
  296. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +28 -9
  297. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +25 -0
  298. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +35 -13
  299. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -154
  300. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +28 -6
  301. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +5 -0
  302. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +74 -35
  303. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
  304. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +22 -22
  305. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +1 -1
  306. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +69 -0
  307. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +33 -16
  308. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -10
  309. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +789 -715
  310. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +3 -3
  311. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -2
  312. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -2
  313. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +9 -0
  314. data/third_party/boringssl-with-bazel/src/ssl/internal.h +17 -14
  315. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -7
  316. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +28 -0
  317. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +4 -24
  318. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +5 -5
  319. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +45 -24
  320. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +31 -21
  321. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +12 -9
  322. data/third_party/re2/re2/bitmap256.h +117 -0
  323. data/third_party/re2/re2/bitstate.cc +385 -0
  324. data/third_party/re2/re2/compile.cc +1279 -0
  325. data/third_party/re2/re2/dfa.cc +2130 -0
  326. data/third_party/re2/re2/filtered_re2.cc +121 -0
  327. data/third_party/re2/re2/filtered_re2.h +109 -0
  328. data/third_party/re2/re2/mimics_pcre.cc +197 -0
  329. data/third_party/re2/re2/nfa.cc +713 -0
  330. data/third_party/re2/re2/onepass.cc +623 -0
  331. data/third_party/re2/re2/parse.cc +2464 -0
  332. data/third_party/re2/re2/perl_groups.cc +119 -0
  333. data/third_party/re2/re2/pod_array.h +55 -0
  334. data/third_party/re2/re2/prefilter.cc +710 -0
  335. data/third_party/re2/re2/prefilter.h +108 -0
  336. data/third_party/re2/re2/prefilter_tree.cc +407 -0
  337. data/third_party/re2/re2/prefilter_tree.h +139 -0
  338. data/third_party/re2/re2/prog.cc +988 -0
  339. data/third_party/re2/re2/prog.h +436 -0
  340. data/third_party/re2/re2/re2.cc +1362 -0
  341. data/third_party/re2/re2/re2.h +1002 -0
  342. data/third_party/re2/re2/regexp.cc +980 -0
  343. data/third_party/re2/re2/regexp.h +659 -0
  344. data/third_party/re2/re2/set.cc +154 -0
  345. data/third_party/re2/re2/set.h +80 -0
  346. data/third_party/re2/re2/simplify.cc +657 -0
  347. data/third_party/re2/re2/sparse_array.h +392 -0
  348. data/third_party/re2/re2/sparse_set.h +264 -0
  349. data/third_party/re2/re2/stringpiece.cc +65 -0
  350. data/third_party/re2/re2/stringpiece.h +210 -0
  351. data/third_party/re2/re2/tostring.cc +351 -0
  352. data/third_party/re2/re2/unicode_casefold.cc +582 -0
  353. data/third_party/re2/re2/unicode_casefold.h +78 -0
  354. data/third_party/re2/re2/unicode_groups.cc +6269 -0
  355. data/third_party/re2/re2/unicode_groups.h +67 -0
  356. data/third_party/re2/re2/walker-inl.h +246 -0
  357. data/third_party/re2/util/benchmark.h +156 -0
  358. data/third_party/re2/util/flags.h +26 -0
  359. data/third_party/re2/util/logging.h +109 -0
  360. data/third_party/re2/util/malloc_counter.h +19 -0
  361. data/third_party/re2/util/mix.h +41 -0
  362. data/third_party/re2/util/mutex.h +148 -0
  363. data/third_party/re2/util/pcre.cc +1025 -0
  364. data/third_party/re2/util/pcre.h +681 -0
  365. data/third_party/re2/util/rune.cc +260 -0
  366. data/third_party/re2/util/strutil.cc +149 -0
  367. data/third_party/re2/util/strutil.h +21 -0
  368. data/third_party/re2/util/test.h +50 -0
  369. data/third_party/re2/util/utf.h +44 -0
  370. data/third_party/re2/util/util.h +42 -0
  371. data/third_party/upb/upb/decode.c +467 -504
  372. data/third_party/upb/upb/encode.c +163 -121
  373. data/third_party/upb/upb/msg.c +130 -64
  374. data/third_party/upb/upb/msg.h +418 -14
  375. data/third_party/upb/upb/port_def.inc +35 -6
  376. data/third_party/upb/upb/port_undef.inc +8 -1
  377. data/third_party/upb/upb/table.c +53 -75
  378. data/third_party/upb/upb/table.int.h +11 -43
  379. data/third_party/upb/upb/upb.c +148 -124
  380. data/third_party/upb/upb/upb.h +65 -147
  381. data/third_party/upb/upb/upb.hpp +86 -0
  382. metadata +90 -30
  383. data/third_party/upb/upb/generated_util.h +0 -105
@@ -23,6 +23,7 @@
23
23
  #include <string.h>
24
24
 
25
25
  #include "absl/container/inlined_vector.h"
26
+ #include "absl/strings/str_format.h"
26
27
 
27
28
  #include "src/core/lib/gpr/string.h"
28
29
 
@@ -168,11 +169,9 @@ LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(const Json& json,
168
169
  LoadBalancingPolicyFactory* factory =
169
170
  g_state->GetLoadBalancingPolicyFactory(policy->first.c_str());
170
171
  if (factory == nullptr) {
171
- char* msg;
172
- gpr_asprintf(&msg, "Factory not found for policy \"%s\"",
173
- policy->first.c_str());
174
- *error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
175
- gpr_free(msg);
172
+ *error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
173
+ absl::StrFormat("Factory not found for policy \"%s\"", policy->first)
174
+ .c_str());
176
175
  return nullptr;
177
176
  }
178
177
  // Parse load balancing config via factory.
@@ -25,6 +25,7 @@
25
25
  #include <string.h>
26
26
 
27
27
  #include "absl/container/inlined_vector.h"
28
+ #include "absl/strings/str_cat.h"
28
29
 
29
30
  #include <grpc/support/alloc.h>
30
31
  #include <grpc/support/string_util.h>
@@ -370,9 +371,11 @@ void AresDnsResolver::OnResolvedLocked(grpc_error* error) {
370
371
  } else {
371
372
  GRPC_CARES_TRACE_LOG("resolver:%p dns resolution failed: %s", this,
372
373
  grpc_error_string(error));
374
+ std::string error_message =
375
+ absl::StrCat("DNS resolution failed for service: ", name_to_resolve_);
373
376
  result_handler()->ReturnError(grpc_error_set_int(
374
- GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
375
- "DNS resolution failed", &error, 1),
377
+ GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(error_message.c_str(),
378
+ &error, 1),
376
379
  GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE));
377
380
  // Set retry timer.
378
381
  grpc_millis next_try = backoff_.NextAttemptTime();
@@ -23,6 +23,8 @@
23
23
  #include <ares.h>
24
24
  #include <string.h>
25
25
 
26
+ #include "absl/strings/str_cat.h"
27
+
26
28
  #include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
27
29
 
28
30
  #include <grpc/support/alloc.h>
@@ -155,11 +157,10 @@ grpc_error* grpc_ares_ev_driver_create_locked(
155
157
  grpc_ares_test_only_inject_config((*ev_driver)->channel);
156
158
  GRPC_CARES_TRACE_LOG("request:%p grpc_ares_ev_driver_create_locked", request);
157
159
  if (status != ARES_SUCCESS) {
158
- char* err_msg;
159
- gpr_asprintf(&err_msg, "Failed to init ares channel. C-ares error: %s",
160
- ares_strerror(status));
161
- grpc_error* err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(err_msg);
162
- gpr_free(err_msg);
160
+ grpc_error* err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
161
+ absl::StrCat("Failed to init ares channel. C-ares error: ",
162
+ ares_strerror(status))
163
+ .c_str());
163
164
  gpr_free(*ev_driver);
164
165
  return err;
165
166
  }
@@ -20,6 +20,8 @@
20
20
  #include "src/core/lib/iomgr/port.h"
21
21
  #if GRPC_ARES == 1 && defined(GRPC_UV)
22
22
 
23
+ #include "absl/strings/str_format.h"
24
+
23
25
  #include <ares.h>
24
26
  #include <uv.h>
25
27
 
@@ -43,15 +45,14 @@ class GrpcPolledFdLibuv : public GrpcPolledFd {
43
45
  public:
44
46
  GrpcPolledFdLibuv(ares_socket_t as,
45
47
  std::shared_ptr<WorkSerializer> work_serializer)
46
- : as_(as), work_serializer_(std::move(work_serializer)) {
47
- gpr_asprintf(&name_, "c-ares socket: %" PRIdPTR, (intptr_t)as);
48
+ : name_(absl::StrFormat("c-ares socket: %" PRIdPTR, (intptr_t)as)),
49
+ as_(as),
50
+ work_serializer_(std::move(work_serializer)) {
48
51
  handle_ = new uv_poll_t();
49
52
  uv_poll_init_socket(uv_default_loop(), handle_, as);
50
53
  handle_->data = this;
51
54
  }
52
55
 
53
- ~GrpcPolledFdLibuv() { gpr_free(name_); }
54
-
55
56
  void RegisterForOnReadableLocked(grpc_closure* read_closure) override {
56
57
  GPR_ASSERT(read_closure_ == nullptr);
57
58
  GPR_ASSERT((poll_events_ & UV_READABLE) == 0);
@@ -98,9 +99,10 @@ class GrpcPolledFdLibuv : public GrpcPolledFd {
98
99
 
99
100
  ares_socket_t GetWrappedAresSocketLocked() override { return as_; }
100
101
 
101
- const char* GetName() override { return name_; }
102
+ const char* GetName() override { return name_.c_str(); }
102
103
 
103
- char* name_;
104
+ // TODO(apolcyn): Data members should be private.
105
+ std::string name_;
104
106
  ares_socket_t as_;
105
107
  uv_poll_t* handle_;
106
108
  grpc_closure* read_closure_ = nullptr;
@@ -24,6 +24,8 @@
24
24
  #include <string.h>
25
25
  #include <sys/ioctl.h>
26
26
 
27
+ #include "absl/strings/str_cat.h"
28
+
27
29
  #include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
28
30
 
29
31
  #include <grpc/support/alloc.h>
@@ -41,15 +43,13 @@ namespace grpc_core {
41
43
  class GrpcPolledFdPosix : public GrpcPolledFd {
42
44
  public:
43
45
  GrpcPolledFdPosix(ares_socket_t as, grpc_pollset_set* driver_pollset_set)
44
- : as_(as) {
45
- gpr_asprintf(&name_, "c-ares fd: %d", (int)as);
46
- fd_ = grpc_fd_create((int)as, name_, false);
46
+ : name_(absl::StrCat("c-ares fd: ", (int)as)), as_(as) {
47
+ fd_ = grpc_fd_create((int)as, name_.c_str(), false);
47
48
  driver_pollset_set_ = driver_pollset_set;
48
49
  grpc_pollset_set_add_fd(driver_pollset_set_, fd_);
49
50
  }
50
51
 
51
52
  ~GrpcPolledFdPosix() {
52
- gpr_free(name_);
53
53
  grpc_pollset_set_del_fd(driver_pollset_set_, fd_);
54
54
  /* c-ares library will close the fd inside grpc_fd. This fd may be picked up
55
55
  immediately by another thread, and should not be closed by the following
@@ -78,9 +78,10 @@ class GrpcPolledFdPosix : public GrpcPolledFd {
78
78
 
79
79
  ares_socket_t GetWrappedAresSocketLocked() override { return as_; }
80
80
 
81
- const char* GetName() override { return name_; }
81
+ const char* GetName() override { return name_.c_str(); }
82
82
 
83
- char* name_;
83
+ private:
84
+ std::string name_;
84
85
  ares_socket_t as_;
85
86
  grpc_fd* fd_;
86
87
  grpc_pollset_set* driver_pollset_set_;
@@ -98,7 +99,8 @@ class GrpcPolledFdFactoryPosix : public GrpcPolledFdFactory {
98
99
  };
99
100
 
100
101
  std::unique_ptr<GrpcPolledFdFactory> NewGrpcPolledFdFactory(
101
- std::shared_ptr<WorkSerializer> work_serializer) { /* NOLINT */
102
+ std::shared_ptr<WorkSerializer> work_serializer) {
103
+ (void)work_serializer;
102
104
  return absl::make_unique<GrpcPolledFdFactoryPosix>();
103
105
  }
104
106
 
@@ -20,6 +20,8 @@
20
20
  #include "src/core/lib/iomgr/port.h"
21
21
  #if GRPC_ARES == 1 && defined(GRPC_WINDOWS_SOCKET_ARES_EV_DRIVER)
22
22
 
23
+ #include "absl/strings/str_format.h"
24
+
23
25
  #include <ares.h>
24
26
 
25
27
  #include <grpc/support/alloc.h>
@@ -104,10 +106,10 @@ class GrpcPolledFdWindows {
104
106
  read_buf_(grpc_empty_slice()),
105
107
  write_buf_(grpc_empty_slice()),
106
108
  tcp_write_state_(WRITE_IDLE),
109
+ name_(absl::StrFormat("c-ares socket: %" PRIdPTR, as)),
107
110
  gotten_into_driver_list_(false),
108
111
  address_family_(address_family),
109
112
  socket_type_(socket_type) {
110
- gpr_asprintf(&name_, "c-ares socket: %" PRIdPTR, as);
111
113
  // Closure Initialization
112
114
  GRPC_CLOSURE_INIT(&outer_read_closure_,
113
115
  &GrpcPolledFdWindows::OnIocpReadable, this,
@@ -118,7 +120,7 @@ class GrpcPolledFdWindows {
118
120
  GRPC_CLOSURE_INIT(&on_tcp_connect_locked_,
119
121
  &GrpcPolledFdWindows::OnTcpConnect, this,
120
122
  grpc_schedule_on_exec_ctx);
121
- winsocket_ = grpc_winsocket_create(as, name_);
123
+ winsocket_ = grpc_winsocket_create(as, name_.c_str());
122
124
  }
123
125
 
124
126
  ~GrpcPolledFdWindows() {
@@ -127,7 +129,6 @@ class GrpcPolledFdWindows {
127
129
  GPR_ASSERT(read_closure_ == nullptr);
128
130
  GPR_ASSERT(write_closure_ == nullptr);
129
131
  grpc_winsocket_destroy(winsocket_);
130
- gpr_free(name_);
131
132
  }
132
133
 
133
134
  void ScheduleAndNullReadClosure(grpc_error* error) {
@@ -260,7 +261,7 @@ class GrpcPolledFdWindows {
260
261
  return grpc_winsocket_wrapped_socket(winsocket_);
261
262
  }
262
263
 
263
- const char* GetName() { return name_; }
264
+ const char* GetName() { return name_.c_str(); }
264
265
 
265
266
  ares_ssize_t RecvFrom(WSAErrorContext* wsa_error_ctx, void* data,
266
267
  ares_socket_t data_len, int flags,
@@ -657,6 +658,7 @@ class GrpcPolledFdWindows {
657
658
  bool gotten_into_driver_list() const { return gotten_into_driver_list_; }
658
659
  void set_gotten_into_driver_list() { gotten_into_driver_list_ = true; }
659
660
 
661
+ private:
660
662
  std::shared_ptr<WorkSerializer> work_serializer_;
661
663
  char recv_from_source_addr_[200];
662
664
  ares_socklen_t recv_from_source_addr_len_;
@@ -670,7 +672,7 @@ class GrpcPolledFdWindows {
670
672
  grpc_winsocket* winsocket_;
671
673
  // tcp_write_state_ is only used on TCP GrpcPolledFds
672
674
  WriteState tcp_write_state_;
673
- char* name_ = nullptr;
675
+ std::string name_;
674
676
  bool gotten_into_driver_list_;
675
677
  int address_family_;
676
678
  int socket_type_;
@@ -27,6 +27,8 @@
27
27
  #include <sys/types.h>
28
28
 
29
29
  #include "absl/container/inlined_vector.h"
30
+ #include "absl/strings/str_cat.h"
31
+ #include "absl/strings/str_format.h"
30
32
 
31
33
  #include <ares.h>
32
34
  #include <grpc/support/alloc.h>
@@ -277,15 +279,12 @@ static void on_hostbyname_done_locked(void* arg, int status, int /*timeouts*/,
277
279
  }
278
280
  }
279
281
  } else {
280
- char* error_msg;
281
- gpr_asprintf(&error_msg,
282
- "C-ares status is not ARES_SUCCESS "
283
- "qtype=%s name=%s is_balancer=%d: %s",
284
- hr->qtype, hr->host, hr->is_balancer, ares_strerror(status));
282
+ std::string error_msg = absl::StrFormat(
283
+ "C-ares status is not ARES_SUCCESS qtype=%s name=%s is_balancer=%d: %s",
284
+ hr->qtype, hr->host, hr->is_balancer, ares_strerror(status));
285
285
  GRPC_CARES_TRACE_LOG("request:%p on_hostbyname_done_locked: %s", r,
286
- error_msg);
287
- grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg);
288
- gpr_free(error_msg);
286
+ error_msg.c_str());
287
+ grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
289
288
  r->error = grpc_error_add_child(error, r->error);
290
289
  }
291
290
  destroy_hostbyname_request_locked(hr);
@@ -326,15 +325,12 @@ static void on_srv_query_done_locked(void* arg, int status, int /*timeouts*/,
326
325
  ares_free_data(reply);
327
326
  }
328
327
  } else {
329
- char* error_msg;
330
- gpr_asprintf(&error_msg,
331
- "C-ares status is not ARES_SUCCESS "
332
- "qtype=SRV name=%s: %s",
333
- q->name().c_str(), ares_strerror(status));
328
+ std::string error_msg = absl::StrFormat(
329
+ "C-ares status is not ARES_SUCCESS qtype=SRV name=%s: %s", q->name(),
330
+ ares_strerror(status));
334
331
  GRPC_CARES_TRACE_LOG("request:%p on_srv_query_done_locked: %s", r,
335
- error_msg);
336
- grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg);
337
- gpr_free(error_msg);
332
+ error_msg.c_str());
333
+ grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
338
334
  r->error = grpc_error_add_child(error, r->error);
339
335
  }
340
336
  delete q;
@@ -344,8 +340,8 @@ static const char g_service_config_attribute_prefix[] = "grpc_config=";
344
340
 
345
341
  static void on_txt_done_locked(void* arg, int status, int /*timeouts*/,
346
342
  unsigned char* buf, int len) {
347
- char* error_msg;
348
343
  GrpcAresQuery* q = static_cast<GrpcAresQuery*>(arg);
344
+ std::unique_ptr<GrpcAresQuery> query_deleter(q);
349
345
  grpc_ares_request* r = q->parent_request();
350
346
  const size_t prefix_len = sizeof(g_service_config_attribute_prefix) - 1;
351
347
  struct ares_txt_ext* result = nullptr;
@@ -386,18 +382,15 @@ static void on_txt_done_locked(void* arg, int status, int /*timeouts*/,
386
382
  }
387
383
  // Clean up.
388
384
  ares_free_data(reply);
389
- goto done;
385
+ return;
390
386
  fail:
391
- gpr_asprintf(&error_msg,
392
- "C-ares status is not ARES_SUCCESS "
393
- "qtype=TXT name=%s: %s",
394
- q->name().c_str(), ares_strerror(status));
395
- error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg);
396
- GRPC_CARES_TRACE_LOG("request:%p on_txt_done_locked %s", r, error_msg);
397
- gpr_free(error_msg);
387
+ std::string error_msg =
388
+ absl::StrFormat("C-ares status is not ARES_SUCCESS qtype=TXT name=%s: %s",
389
+ q->name(), ares_strerror(status));
390
+ error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
391
+ GRPC_CARES_TRACE_LOG("request:%p on_txt_done_locked %s", r,
392
+ error_msg.c_str());
398
393
  r->error = grpc_error_add_child(error, r->error);
399
- done:
400
- delete q;
401
394
  }
402
395
 
403
396
  void grpc_dns_lookup_ares_continue_after_check_localhost_and_ip_literals_locked(
@@ -459,11 +452,10 @@ void grpc_dns_lookup_ares_continue_after_check_localhost_and_ip_literals_locked(
459
452
  }
460
453
  int status = ares_set_servers_ports(*channel, &r->dns_server_addr);
461
454
  if (status != ARES_SUCCESS) {
462
- char* error_msg;
463
- gpr_asprintf(&error_msg, "C-ares status is not ARES_SUCCESS: %s",
464
- ares_strerror(status));
465
- error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg);
466
- gpr_free(error_msg);
455
+ error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
456
+ absl::StrCat("C-ares status is not ARES_SUCCESS: ",
457
+ ares_strerror(status))
458
+ .c_str());
467
459
  goto error_cleanup;
468
460
  }
469
461
  }
@@ -482,20 +474,16 @@ void grpc_dns_lookup_ares_continue_after_check_localhost_and_ip_literals_locked(
482
474
  hr);
483
475
  if (r->balancer_addresses_out != nullptr) {
484
476
  /* Query the SRV record */
485
- char* service_name;
486
- gpr_asprintf(&service_name, "_grpclb._tcp.%s", host.c_str());
477
+ std::string service_name = absl::StrCat("_grpclb._tcp.", host);
487
478
  GrpcAresQuery* srv_query = new GrpcAresQuery(r, service_name);
488
- ares_query(*channel, service_name, ns_c_in, ns_t_srv,
479
+ ares_query(*channel, service_name.c_str(), ns_c_in, ns_t_srv,
489
480
  on_srv_query_done_locked, srv_query);
490
- gpr_free(service_name);
491
481
  }
492
482
  if (r->service_config_json_out != nullptr) {
493
- char* config_name;
494
- gpr_asprintf(&config_name, "_grpc_config.%s", host.c_str());
483
+ std::string config_name = absl::StrCat("_grpc_config.", host);
495
484
  GrpcAresQuery* txt_query = new GrpcAresQuery(r, config_name);
496
- ares_search(*channel, config_name, ns_c_in, ns_t_txt, on_txt_done_locked,
497
- txt_query);
498
- gpr_free(config_name);
485
+ ares_search(*channel, config_name.c_str(), ns_c_in, ns_t_txt,
486
+ on_txt_done_locked, txt_query);
499
487
  }
500
488
  grpc_ares_ev_driver_start_locked(r->ev_driver);
501
489
  grpc_ares_request_unref_locked(r);
@@ -631,7 +619,7 @@ static bool grpc_ares_maybe_resolve_localhost_manually_locked(
631
619
  }
632
620
  #else /* GRPC_ARES_RESOLVE_LOCALHOST_MANUALLY */
633
621
  static bool grpc_ares_maybe_resolve_localhost_manually_locked(
634
- const grpc_ares_request* r, const char* /*name*/,
622
+ const grpc_ares_request* /*r*/, const char* /*name*/,
635
623
  const char* /*default_port*/,
636
624
  std::unique_ptr<grpc_core::ServerAddressList>* /*addrs*/) {
637
625
  return false;
@@ -709,12 +697,9 @@ void (*grpc_cancel_ares_request_locked)(grpc_ares_request* r) =
709
697
  grpc_error* grpc_ares_init(void) {
710
698
  int status = ares_library_init(ARES_LIB_INIT_ALL);
711
699
  if (status != ARES_SUCCESS) {
712
- char* error_msg;
713
- gpr_asprintf(&error_msg, "ares_library_init failed: %s",
714
- ares_strerror(status));
715
- grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg);
716
- gpr_free(error_msg);
717
- return error;
700
+ return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
701
+ absl::StrCat("ares_library_init failed: ", ares_strerror(status))
702
+ .c_str());
718
703
  }
719
704
  return GRPC_ERROR_NONE;
720
705
  }
@@ -22,6 +22,8 @@
22
22
  #include <climits>
23
23
  #include <cstring>
24
24
 
25
+ #include "absl/strings/str_cat.h"
26
+
25
27
  #include <grpc/support/alloc.h>
26
28
  #include <grpc/support/string_util.h>
27
29
  #include <grpc/support/time.h>
@@ -195,9 +197,11 @@ void NativeDnsResolver::OnResolvedLocked(grpc_error* error) {
195
197
  gpr_log(GPR_INFO, "dns resolution failed (will retry): %s",
196
198
  grpc_error_string(error));
197
199
  // Return transient error.
200
+ std::string error_message =
201
+ absl::StrCat("DNS resolution failed for service: ", name_to_resolve_);
198
202
  result_handler()->ReturnError(grpc_error_set_int(
199
- GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
200
- "DNS resolution failed", &error, 1),
203
+ GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(error_message.c_str(),
204
+ &error, 1),
201
205
  GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE));
202
206
  // Set up for retry.
203
207
  grpc_millis next_try = backoff_.NextAttemptTime();
@@ -18,8 +18,11 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
+ #include "src/core/ext/filters/client_channel/config_selector.h"
21
22
  #include "src/core/ext/filters/client_channel/resolver_registry.h"
22
23
  #include "src/core/ext/filters/client_channel/xds/xds_client.h"
24
+ #include "src/core/lib/channel/channel_args.h"
25
+ #include "src/core/lib/transport/timeout_encoding.h"
23
26
 
24
27
  namespace grpc_core {
25
28
 
@@ -37,7 +40,8 @@ class XdsResolver : public Resolver {
37
40
  : Resolver(std::move(args.work_serializer),
38
41
  std::move(args.result_handler)),
39
42
  args_(grpc_channel_args_copy(args.args)),
40
- interested_parties_(args.pollset_set) {
43
+ interested_parties_(args.pollset_set),
44
+ config_selector_(MakeRefCounted<XdsConfigSelector>()) {
41
45
  char* path = args.uri->path;
42
46
  if (path[0] == '/') ++path;
43
47
  server_name_ = path;
@@ -77,10 +81,18 @@ class XdsResolver : public Resolver {
77
81
  RefCountedPtr<XdsResolver> resolver_;
78
82
  };
79
83
 
84
+ class XdsConfigSelector : public ConfigSelector {
85
+ public:
86
+ CallConfig GetCallConfig(GetCallConfigArgs args) override {
87
+ return CallConfig();
88
+ }
89
+ };
90
+
80
91
  std::string server_name_;
81
92
  const grpc_channel_args* args_;
82
93
  grpc_pollset_set* interested_parties_;
83
94
  OrphanablePtr<XdsClient> xds_client_;
95
+ RefCountedPtr<XdsConfigSelector> config_selector_;
84
96
  };
85
97
 
86
98
  void XdsResolver::ServiceConfigWatcher::OnServiceConfigChanged(
@@ -90,10 +102,13 @@ void XdsResolver::ServiceConfigWatcher::OnServiceConfigChanged(
90
102
  gpr_log(GPR_INFO, "[xds_resolver %p] received updated service config: %s",
91
103
  resolver_.get(), service_config->json_string().c_str());
92
104
  }
93
- grpc_arg xds_client_arg = resolver_->xds_client_->MakeChannelArg();
105
+ grpc_arg new_args[] = {
106
+ resolver_->xds_client_->MakeChannelArg(),
107
+ resolver_->config_selector_->MakeChannelArg(),
108
+ };
94
109
  Result result;
95
- result.args =
96
- grpc_channel_args_copy_and_add(resolver_->args_, &xds_client_arg, 1);
110
+ result.args = grpc_channel_args_copy_and_add(resolver_->args_, new_args,
111
+ GPR_ARRAY_SIZE(new_args));
97
112
  result.service_config = std::move(service_config);
98
113
  resolver_->result_handler()->ReturnResult(std::move(result));
99
114
  }
@@ -144,8 +159,6 @@ void XdsResolver::StartLocked() {
144
159
 
145
160
  class XdsResolverFactory : public ResolverFactory {
146
161
  public:
147
- explicit XdsResolverFactory(const char* scheme) : scheme_(scheme) {}
148
-
149
162
  bool IsValidUri(const grpc_uri* uri) const override {
150
163
  if (GPR_UNLIKELY(0 != strcmp(uri->authority, ""))) {
151
164
  gpr_log(GPR_ERROR, "URI authority not supported");
@@ -159,26 +172,16 @@ class XdsResolverFactory : public ResolverFactory {
159
172
  return MakeOrphanable<XdsResolver>(std::move(args));
160
173
  }
161
174
 
162
- const char* scheme() const override { return scheme_; }
163
-
164
- private:
165
- const char* scheme_;
175
+ const char* scheme() const override { return "xds"; }
166
176
  };
167
177
 
168
- constexpr char kXdsScheme[] = "xds";
169
- constexpr char kXdsExperimentalScheme[] = "xds-experimental";
170
-
171
178
  } // namespace
172
179
 
173
180
  } // namespace grpc_core
174
181
 
175
182
  void grpc_resolver_xds_init() {
176
183
  grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
177
- absl::make_unique<grpc_core::XdsResolverFactory>(grpc_core::kXdsScheme));
178
- // TODO(roth): Remov this in the 1.31 release.
179
- grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
180
- absl::make_unique<grpc_core::XdsResolverFactory>(
181
- grpc_core::kXdsExperimentalScheme));
184
+ absl::make_unique<grpc_core::XdsResolverFactory>());
182
185
  }
183
186
 
184
187
  void grpc_resolver_xds_shutdown() {}