grpc 1.34.0 → 1.35.0.pre1

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 (458) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +808 -2787
  3. data/etc/roots.pem +257 -573
  4. data/include/grpc/compression.h +1 -1
  5. data/include/grpc/grpc.h +14 -0
  6. data/include/grpc/grpc_security.h +61 -3
  7. data/include/grpc/impl/codegen/atm_windows.h +4 -0
  8. data/include/grpc/impl/codegen/byte_buffer.h +1 -1
  9. data/include/grpc/impl/codegen/grpc_types.h +1 -1
  10. data/include/grpc/impl/codegen/log.h +0 -2
  11. data/include/grpc/impl/codegen/sync_windows.h +4 -0
  12. data/include/grpc/slice_buffer.h +3 -3
  13. data/include/grpc/support/sync.h +3 -3
  14. data/include/grpc/support/time.h +7 -7
  15. data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
  16. data/src/core/ext/filters/client_channel/client_channel.cc +2734 -1498
  17. data/src/core/ext/filters/client_channel/client_channel.h +0 -4
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  19. data/src/core/ext/filters/client_channel/config_selector.h +4 -0
  20. data/src/core/ext/filters/client_channel/dynamic_filters.cc +186 -0
  21. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  22. data/src/core/ext/filters/client_channel/health/health_check_client.cc +6 -6
  23. data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -2
  24. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +4 -5
  25. data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
  26. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy.h +2 -3
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +32 -30
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +162 -20
  32. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +0 -8
  33. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +24 -0
  34. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -2
  35. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +1 -1
  36. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1262 -0
  37. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +7 -14
  38. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
  39. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +454 -16
  41. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
  42. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -9
  43. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
  44. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +18 -31
  45. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +3 -5
  46. data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
  47. data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
  48. data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
  49. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +11 -13
  50. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +8 -8
  51. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
  52. data/src/core/ext/filters/client_channel/retry_throttle.h +3 -1
  53. data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
  54. data/src/core/ext/filters/client_channel/subchannel.cc +34 -50
  55. data/src/core/ext/filters/client_channel/subchannel.h +12 -18
  56. data/src/core/ext/filters/deadline/deadline_filter.cc +4 -2
  57. data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
  58. data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
  59. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
  60. data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
  61. data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
  62. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +20 -8
  63. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
  64. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +26 -14
  65. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +178 -86
  66. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -5
  67. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +7 -8
  68. data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -1
  69. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
  70. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
  71. data/src/core/ext/transport/chttp2/transport/writing.cc +1 -1
  72. data/src/core/ext/transport/inproc/inproc_transport.cc +42 -8
  73. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
  74. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  75. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  76. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +27 -27
  77. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +139 -40
  78. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +13 -13
  79. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +44 -17
  80. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +111 -111
  81. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +424 -241
  82. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
  83. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +13 -5
  84. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +22 -22
  85. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +47 -21
  86. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +21 -21
  87. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +88 -39
  88. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
  89. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +15 -6
  90. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +44 -44
  91. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +200 -78
  92. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +17 -17
  93. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +72 -35
  94. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
  95. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +7 -0
  96. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +7 -7
  97. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +27 -11
  98. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +30 -30
  99. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +136 -49
  100. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +39 -39
  101. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +157 -89
  102. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
  103. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +17 -9
  104. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +47 -47
  105. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +163 -78
  106. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
  107. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +7 -0
  108. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +2 -2
  109. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +9 -2
  110. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
  111. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +7 -0
  112. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +13 -13
  113. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +59 -36
  114. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +16 -16
  115. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +61 -29
  116. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +26 -26
  117. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +101 -66
  118. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
  119. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -3
  120. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +28 -28
  121. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +122 -77
  122. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +23 -23
  123. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +106 -54
  124. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +2 -2
  125. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +13 -0
  126. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +16 -16
  127. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +81 -35
  128. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -7
  129. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +38 -22
  130. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +203 -203
  131. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +845 -495
  132. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +5 -5
  133. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +26 -6
  134. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +3 -3
  135. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +17 -3
  136. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +87 -87
  137. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +343 -204
  138. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -0
  139. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +20 -20
  140. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +85 -46
  141. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +7 -7
  142. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +33 -11
  143. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +32 -32
  144. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +118 -67
  145. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +1 -1
  146. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +7 -0
  147. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
  148. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +7 -0
  149. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +29 -29
  150. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +120 -82
  151. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +1 -1
  152. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +7 -0
  153. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +1 -1
  154. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +7 -0
  155. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +7 -7
  156. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +31 -16
  157. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +1 -1
  158. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +7 -0
  159. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +1 -1
  160. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +7 -0
  161. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +5 -5
  162. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -11
  163. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
  164. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +7 -0
  165. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
  166. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +7 -0
  167. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +6 -6
  168. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +29 -8
  169. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +2 -2
  170. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +16 -3
  171. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
  172. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +19 -0
  173. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
  174. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +46 -3
  175. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +8 -8
  176. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +41 -8
  177. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -0
  178. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +3 -3
  179. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +15 -2
  180. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +3 -3
  181. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +19 -0
  182. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
  183. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +7 -0
  184. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
  185. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +34 -34
  186. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +149 -72
  187. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +34 -34
  188. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +142 -59
  189. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  190. data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
  191. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  192. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
  193. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +90 -90
  194. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
  195. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  196. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
  197. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  198. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
  199. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
  200. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +22 -3
  201. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  202. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
  203. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
  204. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
  205. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  206. data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
  207. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
  208. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
  209. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
  210. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
  211. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
  212. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
  213. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  214. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +13 -0
  215. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
  216. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
  217. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  218. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
  219. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
  220. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
  221. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
  222. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
  223. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
  224. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
  225. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
  226. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +1 -1
  227. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +7 -0
  228. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +5 -5
  229. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +21 -7
  230. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +2 -2
  231. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +7 -0
  232. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +4 -4
  233. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +17 -8
  234. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +7 -7
  235. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +31 -18
  236. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +5 -5
  237. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +19 -11
  238. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
  239. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
  240. data/src/core/ext/upb-generated/validate/validate.upb.c +64 -64
  241. data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
  242. data/src/core/ext/xds/certificate_provider_store.cc +10 -7
  243. data/src/core/ext/xds/certificate_provider_store.h +12 -7
  244. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +25 -0
  245. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +1 -4
  246. data/src/core/ext/xds/xds_api.cc +220 -31
  247. data/src/core/ext/xds/xds_api.h +41 -10
  248. data/src/core/ext/xds/xds_bootstrap.h +0 -1
  249. data/src/core/ext/xds/xds_certificate_provider.cc +61 -2
  250. data/src/core/ext/xds/xds_certificate_provider.h +40 -2
  251. data/src/core/ext/xds/xds_client.cc +31 -29
  252. data/src/core/ext/xds/xds_client.h +6 -1
  253. data/src/core/ext/xds/xds_client_stats.cc +2 -2
  254. data/src/core/ext/xds/xds_server_config_fetcher.cc +131 -0
  255. data/src/core/lib/channel/channel_args.cc +8 -8
  256. data/src/core/lib/channel/channel_trace.h +1 -1
  257. data/src/core/lib/channel/channelz.cc +13 -14
  258. data/src/core/lib/channel/channelz.h +0 -1
  259. data/src/core/lib/channel/channelz_registry.h +0 -1
  260. data/src/core/lib/channel/handshaker.cc +2 -2
  261. data/src/core/lib/compression/compression_args.cc +3 -2
  262. data/src/core/lib/debug/stats.h +2 -2
  263. data/src/core/lib/debug/stats_data.h +13 -13
  264. data/src/core/lib/gpr/alloc.cc +3 -2
  265. data/src/core/lib/gpr/log.cc +53 -16
  266. data/src/core/lib/gpr/log_linux.cc +3 -1
  267. data/src/core/lib/gpr/log_posix.cc +3 -1
  268. data/src/core/lib/gpr/log_windows.cc +3 -1
  269. data/src/core/lib/gpr/spinlock.h +10 -2
  270. data/src/core/lib/gpr/string.cc +22 -21
  271. data/src/core/lib/gpr/string.h +5 -6
  272. data/src/core/lib/gpr/sync.cc +4 -4
  273. data/src/core/lib/gpr/time.cc +12 -12
  274. data/src/core/lib/gprpp/arena.h +3 -2
  275. data/src/core/lib/gprpp/ref_counted.h +2 -2
  276. data/src/core/lib/gprpp/ref_counted_ptr.h +9 -1
  277. data/src/core/lib/gprpp/thd_posix.cc +6 -1
  278. data/src/core/lib/gprpp/thd_windows.cc +3 -1
  279. data/src/core/lib/http/httpcli.cc +1 -1
  280. data/src/core/lib/http/httpcli.h +2 -3
  281. data/src/core/lib/http/httpcli_security_connector.cc +1 -1
  282. data/src/core/lib/http/parser.cc +1 -2
  283. data/src/core/lib/iomgr/call_combiner.cc +8 -5
  284. data/src/core/lib/iomgr/combiner.cc +2 -1
  285. data/src/core/lib/iomgr/endpoint.h +1 -1
  286. data/src/core/lib/iomgr/error.cc +15 -11
  287. data/src/core/lib/iomgr/error_internal.h +1 -1
  288. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -13
  289. data/src/core/lib/iomgr/ev_epollex_linux.cc +17 -13
  290. data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
  291. data/src/core/lib/iomgr/exec_ctx.h +6 -4
  292. data/src/core/lib/iomgr/executor.cc +2 -1
  293. data/src/core/lib/iomgr/executor.h +1 -1
  294. data/src/core/lib/iomgr/executor/threadpool.h +1 -1
  295. data/src/core/lib/iomgr/iomgr.cc +1 -1
  296. data/src/core/lib/iomgr/load_file.h +1 -1
  297. data/src/core/lib/iomgr/lockfree_event.cc +19 -14
  298. data/src/core/lib/iomgr/lockfree_event.h +2 -2
  299. data/src/core/lib/iomgr/parse_address.cc +52 -46
  300. data/src/core/lib/iomgr/parse_address.h +13 -9
  301. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +1 -1
  302. data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
  303. data/src/core/lib/iomgr/python_util.h +1 -1
  304. data/src/core/lib/iomgr/resolve_address.cc +4 -4
  305. data/src/core/lib/iomgr/resource_quota.cc +4 -4
  306. data/src/core/lib/iomgr/sockaddr_utils.cc +10 -10
  307. data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
  308. data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
  309. data/src/core/lib/iomgr/socket_mutator.cc +3 -2
  310. data/src/core/lib/iomgr/tcp_client.cc +3 -3
  311. data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
  312. data/src/core/lib/iomgr/tcp_custom.cc +22 -17
  313. data/src/core/lib/iomgr/tcp_posix.cc +9 -6
  314. data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
  315. data/src/core/lib/iomgr/timer_custom.cc +3 -3
  316. data/src/core/lib/iomgr/timer_generic.cc +3 -3
  317. data/src/core/lib/iomgr/timer_manager.cc +2 -2
  318. data/src/core/lib/iomgr/udp_server.cc +1 -2
  319. data/src/core/lib/iomgr/udp_server.h +1 -2
  320. data/src/core/lib/iomgr/unix_sockets_posix.cc +17 -18
  321. data/src/core/lib/json/json.h +10 -0
  322. data/src/core/lib/security/authorization/evaluate_args.cc +5 -10
  323. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  324. data/src/core/lib/security/context/security_context.cc +4 -3
  325. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  326. data/src/core/lib/security/credentials/credentials.cc +6 -6
  327. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
  328. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
  329. data/src/core/lib/security/credentials/external/aws_request_signer.cc +15 -10
  330. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -2
  331. data/src/core/lib/security/credentials/external/external_account_credentials.cc +217 -31
  332. data/src/core/lib/security/credentials/external/external_account_credentials.h +7 -5
  333. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
  334. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +3 -4
  335. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +20 -18
  336. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +5 -6
  337. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -1
  338. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +18 -12
  339. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +18 -5
  340. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  341. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +3 -3
  342. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +37 -44
  343. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
  344. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
  345. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -5
  346. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  347. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +1 -6
  348. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +1 -6
  349. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +326 -5
  350. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +64 -0
  351. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +1 -1
  352. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +0 -1
  353. data/src/core/lib/security/credentials/tls/tls_credentials.cc +1 -1
  354. data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
  355. data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
  356. data/src/core/lib/security/credentials/xds/xds_credentials.cc +140 -10
  357. data/src/core/lib/security/credentials/xds/xds_credentials.h +27 -9
  358. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
  359. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -1
  360. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +46 -13
  361. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +23 -6
  362. data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
  363. data/src/core/lib/security/security_connector/security_connector.cc +3 -2
  364. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
  365. data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
  366. data/src/core/lib/security/security_connector/ssl_utils.h +12 -19
  367. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +57 -12
  368. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +2 -3
  369. data/src/core/lib/security/transport/secure_endpoint.cc +2 -2
  370. data/src/core/lib/security/transport/security_handshaker.cc +2 -2
  371. data/src/core/lib/slice/slice_intern.cc +4 -5
  372. data/src/core/lib/slice/slice_internal.h +2 -2
  373. data/src/core/lib/surface/call.cc +32 -24
  374. data/src/core/lib/surface/call_details.cc +8 -8
  375. data/src/core/lib/surface/channel.cc +16 -10
  376. data/src/core/lib/surface/channel.h +3 -2
  377. data/src/core/lib/surface/channel_init.cc +1 -1
  378. data/src/core/lib/surface/completion_queue.cc +23 -18
  379. data/src/core/lib/surface/completion_queue.h +16 -16
  380. data/src/core/lib/surface/init.cc +6 -5
  381. data/src/core/lib/surface/lame_client.cc +20 -46
  382. data/src/core/lib/surface/lame_client.h +4 -0
  383. data/src/core/lib/surface/server.cc +59 -15
  384. data/src/core/lib/surface/server.h +37 -5
  385. data/src/core/lib/surface/version.cc +1 -1
  386. data/src/core/lib/transport/authority_override.cc +6 -4
  387. data/src/core/lib/transport/authority_override.h +5 -2
  388. data/src/core/lib/transport/connectivity_state.h +6 -4
  389. data/src/core/lib/transport/error_utils.h +1 -1
  390. data/src/core/lib/transport/metadata_batch.h +4 -4
  391. data/src/core/lib/transport/static_metadata.cc +1 -1
  392. data/src/core/lib/transport/status_metadata.cc +4 -3
  393. data/src/core/lib/transport/transport.h +7 -7
  394. data/src/core/lib/uri/uri_parser.cc +131 -249
  395. data/src/core/lib/uri/uri_parser.h +57 -21
  396. data/src/core/plugin_registry/grpc_plugin_registry.cc +10 -4
  397. data/src/core/tsi/alts/crypt/gsec.cc +5 -4
  398. data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
  399. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  400. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +23 -23
  401. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
  402. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
  403. data/src/core/tsi/fake_transport_security.cc +5 -3
  404. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  405. data/src/core/tsi/ssl_transport_security.cc +62 -49
  406. data/src/core/tsi/ssl_transport_security.h +6 -6
  407. data/src/core/tsi/transport_security.cc +6 -6
  408. data/src/core/tsi/transport_security_interface.h +1 -1
  409. data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
  410. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +12 -0
  411. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +31 -13
  412. data/src/ruby/lib/grpc/version.rb +1 -1
  413. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +28 -0
  414. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
  415. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
  416. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  417. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  418. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
  419. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  420. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  421. data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
  422. data/third_party/upb/upb/decode.c +248 -167
  423. data/third_party/upb/upb/decode.h +20 -1
  424. data/third_party/upb/upb/decode.int.h +163 -0
  425. data/third_party/upb/upb/decode_fast.c +1040 -0
  426. data/third_party/upb/upb/decode_fast.h +126 -0
  427. data/third_party/upb/upb/def.c +525 -516
  428. data/third_party/upb/upb/def.h +16 -31
  429. data/third_party/upb/upb/def.hpp +37 -123
  430. data/third_party/upb/upb/encode.c +227 -169
  431. data/third_party/upb/upb/encode.h +27 -2
  432. data/third_party/upb/upb/json_decode.c +1443 -0
  433. data/third_party/upb/upb/json_decode.h +23 -0
  434. data/third_party/upb/upb/json_encode.c +713 -0
  435. data/third_party/upb/upb/json_encode.h +36 -0
  436. data/third_party/upb/upb/msg.c +167 -88
  437. data/third_party/upb/upb/msg.h +174 -34
  438. data/third_party/upb/upb/port_def.inc +74 -61
  439. data/third_party/upb/upb/port_undef.inc +3 -7
  440. data/third_party/upb/upb/reflection.c +36 -19
  441. data/third_party/upb/upb/table.c +34 -197
  442. data/third_party/upb/upb/table.int.h +14 -5
  443. data/third_party/upb/upb/text_encode.c +45 -22
  444. data/third_party/upb/upb/text_encode.h +4 -1
  445. data/third_party/upb/upb/upb.c +18 -41
  446. data/third_party/upb/upb/upb.h +36 -7
  447. data/third_party/upb/upb/upb.hpp +4 -4
  448. data/third_party/upb/upb/upb.int.h +29 -0
  449. metadata +60 -46
  450. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -909
  451. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
  452. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
  453. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -355
  454. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -138
  455. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +0 -265
  456. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +0 -104
  457. data/src/core/lib/gprpp/map.h +0 -53
  458. data/third_party/upb/upb/port.c +0 -26
@@ -30,6 +30,6 @@
30
30
  /* Loads the content of a file into a slice. add_null_terminator will add
31
31
  a NULL terminator if non-zero. */
32
32
  grpc_error* grpc_load_file(const char* filename, int add_null_terminator,
33
- grpc_slice* slice);
33
+ grpc_slice* output);
34
34
 
35
35
  #endif /* GRPC_CORE_LIB_IOMGR_LOAD_FILE_H */
@@ -96,8 +96,9 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
96
96
  * referencing it. */
97
97
  gpr_atm curr = gpr_atm_acq_load(&state_);
98
98
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
99
- gpr_log(GPR_DEBUG, "LockfreeEvent::NotifyOn: %p curr=%p closure=%p", this,
100
- (void*)curr, closure);
99
+ gpr_log(GPR_DEBUG,
100
+ "LockfreeEvent::NotifyOn: %p curr=%" PRIxPTR " closure=%p", this,
101
+ curr, closure);
101
102
  }
102
103
  switch (curr) {
103
104
  case kClosureNotReady: {
@@ -108,7 +109,8 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
108
109
 
109
110
  The release itself pairs with the acquire half of a set_ready full
110
111
  barrier. */
111
- if (gpr_atm_rel_cas(&state_, kClosureNotReady, (gpr_atm)closure)) {
112
+ if (gpr_atm_rel_cas(&state_, kClosureNotReady,
113
+ reinterpret_cast<gpr_atm>(closure))) {
112
114
  return; /* Successful. Return */
113
115
  }
114
116
 
@@ -137,7 +139,8 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
137
139
  contains a pointer to the shutdown-error). If the fd is shutdown,
138
140
  schedule the closure with the shutdown error */
139
141
  if ((curr & kShutdownBit) > 0) {
140
- grpc_error* shutdown_err = (grpc_error*)(curr & ~kShutdownBit);
142
+ grpc_error* shutdown_err =
143
+ reinterpret_cast<grpc_error*>(curr & ~kShutdownBit);
141
144
  ExecCtx::Run(DEBUG_LOCATION, closure,
142
145
  GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
143
146
  "FD Shutdown", &shutdown_err, 1));
@@ -156,14 +159,15 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
156
159
  GPR_UNREACHABLE_CODE(return );
157
160
  }
158
161
 
159
- bool LockfreeEvent::SetShutdown(grpc_error* shutdown_err) {
160
- gpr_atm new_state = (gpr_atm)shutdown_err | kShutdownBit;
162
+ bool LockfreeEvent::SetShutdown(grpc_error* shutdown_error) {
163
+ gpr_atm new_state = reinterpret_cast<gpr_atm>(shutdown_error) | kShutdownBit;
161
164
 
162
165
  while (true) {
163
166
  gpr_atm curr = gpr_atm_no_barrier_load(&state_);
164
167
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
165
- gpr_log(GPR_DEBUG, "LockfreeEvent::SetShutdown: %p curr=%p err=%s",
166
- &state_, (void*)curr, grpc_error_string(shutdown_err));
168
+ gpr_log(GPR_DEBUG,
169
+ "LockfreeEvent::SetShutdown: %p curr=%" PRIxPTR " err=%s",
170
+ &state_, curr, grpc_error_string(shutdown_error));
167
171
  }
168
172
  switch (curr) {
169
173
  case kClosureReady:
@@ -180,7 +184,7 @@ bool LockfreeEvent::SetShutdown(grpc_error* shutdown_err) {
180
184
 
181
185
  /* If fd is already shutdown, we are done */
182
186
  if ((curr & kShutdownBit) > 0) {
183
- GRPC_ERROR_UNREF(shutdown_err);
187
+ GRPC_ERROR_UNREF(shutdown_error);
184
188
  return false;
185
189
  }
186
190
 
@@ -190,9 +194,9 @@ bool LockfreeEvent::SetShutdown(grpc_error* shutdown_err) {
190
194
  happens-after on that edge), and a release to pair with anything
191
195
  loading the shutdown state. */
192
196
  if (gpr_atm_full_cas(&state_, curr, new_state)) {
193
- ExecCtx::Run(DEBUG_LOCATION, (grpc_closure*)curr,
197
+ ExecCtx::Run(DEBUG_LOCATION, reinterpret_cast<grpc_closure*>(curr),
194
198
  GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
195
- "FD Shutdown", &shutdown_err, 1));
199
+ "FD Shutdown", &shutdown_error, 1));
196
200
  return true;
197
201
  }
198
202
 
@@ -211,8 +215,8 @@ void LockfreeEvent::SetReady() {
211
215
  gpr_atm curr = gpr_atm_no_barrier_load(&state_);
212
216
 
213
217
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
214
- gpr_log(GPR_DEBUG, "LockfreeEvent::SetReady: %p curr=%p", &state_,
215
- (void*)curr);
218
+ gpr_log(GPR_DEBUG, "LockfreeEvent::SetReady: %p curr=%" PRIxPTR, &state_,
219
+ curr);
216
220
  }
217
221
 
218
222
  switch (curr) {
@@ -240,7 +244,8 @@ void LockfreeEvent::SetReady() {
240
244
  spurious set_ready; release pairs with this or the acquire in
241
245
  notify_on (or set_shutdown) */
242
246
  else if (gpr_atm_full_cas(&state_, curr, kClosureNotReady)) {
243
- ExecCtx::Run(DEBUG_LOCATION, (grpc_closure*)curr, GRPC_ERROR_NONE);
247
+ ExecCtx::Run(DEBUG_LOCATION, reinterpret_cast<grpc_closure*>(curr),
248
+ GRPC_ERROR_NONE);
244
249
  return;
245
250
  }
246
251
  /* else the state changed again (only possible by either a racing
@@ -55,8 +55,8 @@ class LockfreeEvent {
55
55
  void NotifyOn(grpc_closure* closure);
56
56
 
57
57
  // Sets the shutdown state. If a closure had been provided by NotifyOn and has
58
- // not yet been scheduled, it will be scheduled with \a error.
59
- bool SetShutdown(grpc_error* error);
58
+ // not yet been scheduled, it will be scheduled with \a shutdown_error.
59
+ bool SetShutdown(grpc_error* shutdown_error);
60
60
 
61
61
  // Signals that the event has been received.
62
62
  void SetReady();
@@ -18,18 +18,20 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include "absl/strings/str_cat.h"
22
-
23
- #include "src/core/lib/iomgr/grpc_if_nametoindex.h"
24
21
  #include "src/core/lib/iomgr/parse_address.h"
25
- #include "src/core/lib/iomgr/sockaddr.h"
26
- #include "src/core/lib/iomgr/socket_utils.h"
27
22
 
28
23
  #include <stdio.h>
29
24
  #include <string.h>
30
25
  #ifdef GRPC_HAVE_UNIX_SOCKET
31
26
  #include <sys/un.h>
32
27
  #endif
28
+ #ifdef GRPC_POSIX_SOCKET
29
+ #include <errno.h>
30
+ #include <net/if.h>
31
+ #endif
32
+
33
+ #include "absl/strings/str_cat.h"
34
+ #include "absl/strings/strip.h"
33
35
 
34
36
  #include <grpc/support/alloc.h>
35
37
  #include <grpc/support/log.h>
@@ -37,21 +39,21 @@
37
39
 
38
40
  #include "src/core/lib/gpr/string.h"
39
41
  #include "src/core/lib/gprpp/host_port.h"
40
-
41
- #ifdef GRPC_POSIX_SOCKET
42
- #include <errno.h>
43
- #include <net/if.h>
44
- #endif
42
+ #include "src/core/lib/iomgr/grpc_if_nametoindex.h"
43
+ #include "src/core/lib/iomgr/sockaddr.h"
44
+ #include "src/core/lib/iomgr/socket_utils.h"
45
45
 
46
46
  #ifdef GRPC_HAVE_UNIX_SOCKET
47
47
 
48
- bool grpc_parse_unix(const grpc_uri* uri,
48
+ bool grpc_parse_unix(const grpc_core::URI& uri,
49
49
  grpc_resolved_address* resolved_addr) {
50
- if (strcmp("unix", uri->scheme) != 0) {
51
- gpr_log(GPR_ERROR, "Expected 'unix' scheme, got '%s'", uri->scheme);
50
+ if (uri.scheme() != "unix") {
51
+ gpr_log(GPR_ERROR, "Expected 'unix' scheme, got '%s'",
52
+ uri.scheme().c_str());
52
53
  return false;
53
54
  }
54
- grpc_error* error = grpc_core::UnixSockaddrPopulate(uri->path, resolved_addr);
55
+ grpc_error* error =
56
+ grpc_core::UnixSockaddrPopulate(uri.path(), resolved_addr);
55
57
  if (error != GRPC_ERROR_NONE) {
56
58
  gpr_log(GPR_ERROR, "%s", grpc_error_string(error));
57
59
  GRPC_ERROR_UNREF(error);
@@ -60,15 +62,15 @@ bool grpc_parse_unix(const grpc_uri* uri,
60
62
  return true;
61
63
  }
62
64
 
63
- bool grpc_parse_unix_abstract(const grpc_uri* uri,
65
+ bool grpc_parse_unix_abstract(const grpc_core::URI& uri,
64
66
  grpc_resolved_address* resolved_addr) {
65
- if (strcmp("unix-abstract", uri->scheme) != 0) {
67
+ if (uri.scheme() != "unix-abstract") {
66
68
  gpr_log(GPR_ERROR, "Expected 'unix-abstract' scheme, got '%s'",
67
- uri->scheme);
69
+ uri.scheme().c_str());
68
70
  return false;
69
71
  }
70
72
  grpc_error* error =
71
- grpc_core::UnixAbstractSockaddrPopulate(uri->path, resolved_addr);
73
+ grpc_core::UnixAbstractSockaddrPopulate(uri.path(), resolved_addr);
72
74
  if (error != GRPC_ERROR_NONE) {
73
75
  gpr_log(GPR_ERROR, "%s", grpc_error_string(error));
74
76
  GRPC_ERROR_UNREF(error);
@@ -120,12 +122,12 @@ grpc_error* UnixAbstractSockaddrPopulate(absl::string_view path,
120
122
 
121
123
  #else /* GRPC_HAVE_UNIX_SOCKET */
122
124
 
123
- bool grpc_parse_unix(const grpc_uri* uri,
125
+ bool grpc_parse_unix(const grpc_core::URI& uri,
124
126
  grpc_resolved_address* resolved_addr) {
125
127
  abort();
126
128
  }
127
129
 
128
- bool grpc_parse_unix_abstract(const grpc_uri* uri,
130
+ bool grpc_parse_unix_abstract(const grpc_core::URI& uri,
129
131
  grpc_resolved_address* resolved_addr) {
130
132
  abort();
131
133
  }
@@ -145,15 +147,16 @@ grpc_error* UnixAbstractSockaddrPopulate(absl::string_view path,
145
147
  } // namespace grpc_core
146
148
  #endif /* GRPC_HAVE_UNIX_SOCKET */
147
149
 
148
- bool grpc_parse_ipv4_hostport(const char* hostport, grpc_resolved_address* addr,
149
- bool log_errors) {
150
+ bool grpc_parse_ipv4_hostport(absl::string_view hostport,
151
+ grpc_resolved_address* addr, bool log_errors) {
150
152
  bool success = false;
151
153
  // Split host and port.
152
154
  std::string host;
153
155
  std::string port;
154
156
  if (!grpc_core::SplitHostPort(hostport, &host, &port)) {
155
157
  if (log_errors) {
156
- gpr_log(GPR_ERROR, "Failed gpr_split_host_port(%s, ...)", hostport);
158
+ gpr_log(GPR_ERROR, "Failed gpr_split_host_port(%s, ...)",
159
+ std::string(hostport).c_str());
157
160
  }
158
161
  return false;
159
162
  }
@@ -185,27 +188,27 @@ done:
185
188
  return success;
186
189
  }
187
190
 
188
- bool grpc_parse_ipv4(const grpc_uri* uri,
191
+ bool grpc_parse_ipv4(const grpc_core::URI& uri,
189
192
  grpc_resolved_address* resolved_addr) {
190
- if (strcmp("ipv4", uri->scheme) != 0) {
191
- gpr_log(GPR_ERROR, "Expected 'ipv4' scheme, got '%s'", uri->scheme);
193
+ if (uri.scheme() != "ipv4") {
194
+ gpr_log(GPR_ERROR, "Expected 'ipv4' scheme, got '%s'",
195
+ uri.scheme().c_str());
192
196
  return false;
193
197
  }
194
- const char* host_port = uri->path;
195
- if (*host_port == '/') ++host_port;
196
- return grpc_parse_ipv4_hostport(host_port, resolved_addr,
197
- true /* log_errors */);
198
+ return grpc_parse_ipv4_hostport(absl::StripPrefix(uri.path(), "/"),
199
+ resolved_addr, true /* log_errors */);
198
200
  }
199
201
 
200
- bool grpc_parse_ipv6_hostport(const char* hostport, grpc_resolved_address* addr,
201
- bool log_errors) {
202
+ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
203
+ grpc_resolved_address* addr, bool log_errors) {
202
204
  bool success = false;
203
205
  // Split host and port.
204
206
  std::string host;
205
207
  std::string port;
206
208
  if (!grpc_core::SplitHostPort(hostport, &host, &port)) {
207
209
  if (log_errors) {
208
- gpr_log(GPR_ERROR, "Failed gpr_split_host_port(%s, ...)", hostport);
210
+ gpr_log(GPR_ERROR, "Failed gpr_split_host_port(%s, ...)",
211
+ std::string(hostport).c_str());
209
212
  }
210
213
  return false;
211
214
  }
@@ -280,29 +283,32 @@ done:
280
283
  return success;
281
284
  }
282
285
 
283
- bool grpc_parse_ipv6(const grpc_uri* uri,
286
+ bool grpc_parse_ipv6(const grpc_core::URI& uri,
284
287
  grpc_resolved_address* resolved_addr) {
285
- if (strcmp("ipv6", uri->scheme) != 0) {
286
- gpr_log(GPR_ERROR, "Expected 'ipv6' scheme, got '%s'", uri->scheme);
288
+ if (uri.scheme() != "ipv6") {
289
+ gpr_log(GPR_ERROR, "Expected 'ipv6' scheme, got '%s'",
290
+ uri.scheme().c_str());
287
291
  return false;
288
292
  }
289
- const char* host_port = uri->path;
290
- if (*host_port == '/') ++host_port;
291
- return grpc_parse_ipv6_hostport(host_port, resolved_addr,
292
- true /* log_errors */);
293
+ return grpc_parse_ipv6_hostport(absl::StripPrefix(uri.path(), "/"),
294
+ resolved_addr, true /* log_errors */);
293
295
  }
294
296
 
295
- bool grpc_parse_uri(const grpc_uri* uri, grpc_resolved_address* resolved_addr) {
296
- if (strcmp("unix", uri->scheme) == 0) {
297
+ bool grpc_parse_uri(const grpc_core::URI& uri,
298
+ grpc_resolved_address* resolved_addr) {
299
+ if (uri.scheme() == "unix") {
297
300
  return grpc_parse_unix(uri, resolved_addr);
298
- } else if (strcmp("unix-abstract", uri->scheme) == 0) {
301
+ }
302
+ if (uri.scheme() == "unix-abstract") {
299
303
  return grpc_parse_unix_abstract(uri, resolved_addr);
300
- } else if (strcmp("ipv4", uri->scheme) == 0) {
304
+ }
305
+ if (uri.scheme() == "ipv4") {
301
306
  return grpc_parse_ipv4(uri, resolved_addr);
302
- } else if (strcmp("ipv6", uri->scheme) == 0) {
307
+ }
308
+ if (uri.scheme() == "ipv6") {
303
309
  return grpc_parse_ipv6(uri, resolved_addr);
304
310
  }
305
- gpr_log(GPR_ERROR, "Can't parse scheme '%s'", uri->scheme);
311
+ gpr_log(GPR_ERROR, "Can't parse scheme '%s'", uri.scheme().c_str());
306
312
  return false;
307
313
  }
308
314
 
@@ -30,29 +30,33 @@
30
30
 
31
31
  /** Populate \a resolved_addr from \a uri, whose path is expected to contain a
32
32
  * unix socket path. Returns true upon success. */
33
- bool grpc_parse_unix(const grpc_uri* uri, grpc_resolved_address* resolved_addr);
33
+ bool grpc_parse_unix(const grpc_core::URI& uri,
34
+ grpc_resolved_address* resolved_addr);
34
35
 
35
36
  /** Populate \a resolved_addr from \a uri, whose path is expected to contain a
36
37
  * unix socket path in the abstract namespace. Returns true upon success. */
37
- bool grpc_parse_unix_abstract(const grpc_uri* uri,
38
+ bool grpc_parse_unix_abstract(const grpc_core::URI& uri,
38
39
  grpc_resolved_address* resolved_addr);
39
40
 
40
41
  /** Populate \a resolved_addr from \a uri, whose path is expected to contain an
41
42
  * IPv4 host:port pair. Returns true upon success. */
42
- bool grpc_parse_ipv4(const grpc_uri* uri, grpc_resolved_address* resolved_addr);
43
+ bool grpc_parse_ipv4(const grpc_core::URI& uri,
44
+ grpc_resolved_address* resolved_addr);
43
45
 
44
46
  /** Populate \a resolved_addr from \a uri, whose path is expected to contain an
45
47
  * IPv6 host:port pair. Returns true upon success. */
46
- bool grpc_parse_ipv6(const grpc_uri* uri, grpc_resolved_address* resolved_addr);
48
+ bool grpc_parse_ipv6(const grpc_core::URI& uri,
49
+ grpc_resolved_address* resolved_addr);
47
50
 
48
51
  /** Populate \a resolved_addr from \a uri. Returns true upon success. */
49
- bool grpc_parse_uri(const grpc_uri* uri, grpc_resolved_address* resolved_addr);
52
+ bool grpc_parse_uri(const grpc_core::URI& uri,
53
+ grpc_resolved_address* resolved_addr);
50
54
 
51
55
  /** Parse bare IPv4 or IPv6 "IP:port" strings. */
52
- bool grpc_parse_ipv4_hostport(const char* hostport, grpc_resolved_address* addr,
53
- bool log_errors);
54
- bool grpc_parse_ipv6_hostport(const char* hostport, grpc_resolved_address* addr,
55
- bool log_errors);
56
+ bool grpc_parse_ipv4_hostport(absl::string_view hostport,
57
+ grpc_resolved_address* addr, bool log_errors);
58
+ bool grpc_parse_ipv6_hostport(absl::string_view hostport,
59
+ grpc_resolved_address* addr, bool log_errors);
56
60
 
57
61
  /* Converts named or numeric port to a uint16 suitable for use in a sockaddr. */
58
62
  uint16_t grpc_strhtons(const char* port);
@@ -36,7 +36,7 @@ class LibuvEventManager {
36
36
  class Options {
37
37
  public:
38
38
  Options();
39
- Options(int num_workers);
39
+ explicit Options(int num_workers);
40
40
 
41
41
  int num_workers() const { return num_workers_; }
42
42
  void set_num_workers(int num) { num_workers_ = num; }
@@ -23,7 +23,7 @@
23
23
  #include "src/core/lib/iomgr/pollset_set.h"
24
24
 
25
25
  static grpc_pollset_set* pollset_set_create(void) {
26
- return (grpc_pollset_set*)((intptr_t)0xdeafbeef);
26
+ return reinterpret_cast<grpc_pollset_set*>(static_cast<intptr_t>(0xdeafbeef));
27
27
  }
28
28
 
29
29
  static void pollset_set_destroy(grpc_pollset_set* /*pollset_set*/) {}
@@ -36,7 +36,7 @@ inline grpc_error* grpc_socket_error(char* error) {
36
36
  }
37
37
 
38
38
  inline char* grpc_slice_buffer_start(grpc_slice_buffer* buffer, int i) {
39
- return (char*)GRPC_SLICE_START_PTR(buffer->slices[i]);
39
+ return reinterpret_cast<char*>(GRPC_SLICE_START_PTR(buffer->slices[i]));
40
40
  }
41
41
 
42
42
  inline int grpc_slice_buffer_length(grpc_slice_buffer* buffer, int i) {
@@ -35,11 +35,11 @@ void grpc_resolve_address(const char* addr, const char* default_port,
35
35
  addr, default_port, interested_parties, on_done, addresses);
36
36
  }
37
37
 
38
- void grpc_resolved_addresses_destroy(grpc_resolved_addresses* addrs) {
39
- if (addrs != nullptr) {
40
- gpr_free(addrs->addrs);
38
+ void grpc_resolved_addresses_destroy(grpc_resolved_addresses* addresses) {
39
+ if (addresses != nullptr) {
40
+ gpr_free(addresses->addrs);
41
41
  }
42
- gpr_free(addrs);
42
+ gpr_free(addresses);
43
43
  }
44
44
 
45
45
  grpc_error* grpc_blocking_resolve_address(const char* name,
@@ -659,8 +659,8 @@ grpc_resource_quota* grpc_resource_quota_create(const char* name) {
659
659
  if (name != nullptr) {
660
660
  resource_quota->name = name;
661
661
  } else {
662
- resource_quota->name =
663
- absl::StrCat("anonymous_pool_", (intptr_t)resource_quota);
662
+ resource_quota->name = absl::StrCat(
663
+ "anonymous_pool_", reinterpret_cast<intptr_t>(resource_quota));
664
664
  }
665
665
  GRPC_CLOSURE_INIT(&resource_quota->rq_step_closure, rq_step, resource_quota,
666
666
  nullptr);
@@ -807,8 +807,8 @@ grpc_resource_user* grpc_resource_user_create(
807
807
  if (name != nullptr) {
808
808
  resource_user->name = name;
809
809
  } else {
810
- resource_user->name =
811
- absl::StrCat("anonymous_resource_user_", (intptr_t)resource_user);
810
+ resource_user->name = absl::StrCat(
811
+ "anonymous_resource_user_", reinterpret_cast<intptr_t>(resource_user));
812
812
  }
813
813
  return resource_user;
814
814
  }
@@ -201,8 +201,8 @@ std::string grpc_sockaddr_to_string(const grpc_resolved_address* resolved_addr,
201
201
  void grpc_string_to_sockaddr(grpc_resolved_address* out, const char* addr,
202
202
  int port) {
203
203
  memset(out, 0, sizeof(grpc_resolved_address));
204
- grpc_sockaddr_in6* addr6 = (grpc_sockaddr_in6*)out->addr;
205
- grpc_sockaddr_in* addr4 = (grpc_sockaddr_in*)out->addr;
204
+ grpc_sockaddr_in6* addr6 = reinterpret_cast<grpc_sockaddr_in6*>(out->addr);
205
+ grpc_sockaddr_in* addr4 = reinterpret_cast<grpc_sockaddr_in*>(out->addr);
206
206
  if (grpc_inet_pton(GRPC_AF_INET6, addr, &addr6->sin6_addr) == 1) {
207
207
  addr6->sin6_family = GRPC_AF_INET6;
208
208
  out->len = sizeof(grpc_sockaddr_in6);
@@ -260,9 +260,11 @@ int grpc_sockaddr_get_port(const grpc_resolved_address* resolved_addr) {
260
260
  reinterpret_cast<const grpc_sockaddr*>(resolved_addr->addr);
261
261
  switch (addr->sa_family) {
262
262
  case GRPC_AF_INET:
263
- return grpc_ntohs(((grpc_sockaddr_in*)addr)->sin_port);
263
+ return grpc_ntohs(
264
+ (reinterpret_cast<const grpc_sockaddr_in*>(addr))->sin_port);
264
265
  case GRPC_AF_INET6:
265
- return grpc_ntohs(((grpc_sockaddr_in6*)addr)->sin6_port);
266
+ return grpc_ntohs(
267
+ (reinterpret_cast<const grpc_sockaddr_in6*>(addr))->sin6_port);
266
268
  default:
267
269
  if (grpc_is_unix_socket(resolved_addr)) {
268
270
  return 1;
@@ -273,19 +275,17 @@ int grpc_sockaddr_get_port(const grpc_resolved_address* resolved_addr) {
273
275
  }
274
276
  }
275
277
 
276
- int grpc_sockaddr_set_port(const grpc_resolved_address* resolved_addr,
277
- int port) {
278
- const grpc_sockaddr* addr =
279
- reinterpret_cast<const grpc_sockaddr*>(resolved_addr->addr);
278
+ int grpc_sockaddr_set_port(grpc_resolved_address* resolved_addr, int port) {
279
+ grpc_sockaddr* addr = reinterpret_cast<grpc_sockaddr*>(resolved_addr->addr);
280
280
  switch (addr->sa_family) {
281
281
  case GRPC_AF_INET:
282
282
  GPR_ASSERT(port >= 0 && port < 65536);
283
- ((grpc_sockaddr_in*)addr)->sin_port =
283
+ (reinterpret_cast<grpc_sockaddr_in*>(addr))->sin_port =
284
284
  grpc_htons(static_cast<uint16_t>(port));
285
285
  return 1;
286
286
  case GRPC_AF_INET6:
287
287
  GPR_ASSERT(port >= 0 && port < 65536);
288
- ((grpc_sockaddr_in6*)addr)->sin6_port =
288
+ (reinterpret_cast<grpc_sockaddr_in6*>(addr))->sin6_port =
289
289
  grpc_htons(static_cast<uint16_t>(port));
290
290
  return 1;
291
291
  default: