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
@@ -44,6 +44,8 @@
44
44
  #include "absl/strings/str_format.h"
45
45
  #include "src/core/lib/gprpp/examine_stack.h"
46
46
 
47
+ int gpr_should_log_stacktrace(gpr_log_severity severity);
48
+
47
49
  static long sys_gettid(void) { return syscall(__NR_gettid); }
48
50
 
49
51
  void gpr_log(const char* file, int line, gpr_log_severity severity,
@@ -95,7 +97,7 @@ void gpr_default_log(gpr_log_func_args* args) {
95
97
  time_buffer, now.tv_nsec, tid, display_file, args->line);
96
98
 
97
99
  absl::optional<std::string> stack_trace =
98
- args->severity >= GPR_LOG_SEVERITY_ERROR
100
+ gpr_should_log_stacktrace(args->severity)
99
101
  ? grpc_core::GetCurrentStackTrace()
100
102
  : absl::nullopt;
101
103
  if (stack_trace) {
@@ -34,6 +34,8 @@
34
34
  #include "absl/strings/str_format.h"
35
35
  #include "src/core/lib/gprpp/examine_stack.h"
36
36
 
37
+ int gpr_should_log_stacktrace(gpr_log_severity severity);
38
+
37
39
  static intptr_t sys_gettid(void) { return (intptr_t)pthread_self(); }
38
40
 
39
41
  void gpr_log(const char* file, int line, gpr_log_severity severity,
@@ -91,7 +93,7 @@ void gpr_default_log(gpr_log_func_args* args) {
91
93
  time_buffer, (int)(now.tv_nsec), sys_gettid(), display_file, args->line);
92
94
 
93
95
  absl::optional<std::string> stack_trace =
94
- args->severity >= GPR_LOG_SEVERITY_ERROR
96
+ gpr_should_log_stacktrace(args->severity)
95
97
  ? grpc_core::GetCurrentStackTrace()
96
98
  : absl::nullopt;
97
99
  if (stack_trace) {
@@ -33,6 +33,8 @@
33
33
  #include "src/core/lib/gpr/string_windows.h"
34
34
  #include "src/core/lib/gprpp/examine_stack.h"
35
35
 
36
+ int gpr_should_log_stacktrace(gpr_log_severity severity);
37
+
36
38
  void gpr_log(const char* file, int line, gpr_log_severity severity,
37
39
  const char* format, ...) {
38
40
  /* Avoid message construction if gpr_log_message won't log */
@@ -94,7 +96,7 @@ void gpr_default_log(gpr_log_func_args* args) {
94
96
  }
95
97
 
96
98
  absl::optional<std::string> stack_trace =
97
- args->severity >= GPR_LOG_SEVERITY_ERROR
99
+ gpr_should_log_stacktrace(args->severity)
98
100
  ? grpc_core::GetCurrentStackTrace()
99
101
  : absl::nullopt;
100
102
  if (stack_trace) {
@@ -23,8 +23,9 @@
23
23
 
24
24
  #include <grpc/support/atm.h>
25
25
 
26
- /* Simple spinlock. No backoff strategy, gpr_spinlock_lock is almost always
27
- a concurrency code smell. */
26
+ // Simple spinlock. No backoff strategy, gpr_spinlock_lock is almost always
27
+ // a concurrency code smell. Code must _never_ block while holding a spinlock
28
+ // as this could lead to a deadlock under a cooperative multithreading model.
28
29
  struct gpr_spinlock {
29
30
  gpr_atm atm;
30
31
  };
@@ -38,6 +39,13 @@ struct gpr_spinlock {
38
39
 
39
40
  #define gpr_spinlock_trylock(lock) (gpr_atm_acq_cas(&(lock)->atm, 0, 1))
40
41
  #define gpr_spinlock_unlock(lock) (gpr_atm_rel_store(&(lock)->atm, 0))
42
+ // Although the following code spins without any library or system calls, it
43
+ // still functions under cooperative multithreading. The principle is that
44
+ // the lock holder can't block, so it will be scheduled onto its system thread
45
+ // for the entire critical section. By the time another thread attempts a lock,
46
+ // it will either get it immediately or will be scheduled onto another system
47
+ // thread that is different from the current lockholder. There is no chance of
48
+ // waiting for a lockholder scheduled to the same system thread.
41
49
  #define gpr_spinlock_lock(lock) \
42
50
  do { \
43
51
  } while (!gpr_spinlock_trylock((lock)))
@@ -55,7 +55,7 @@ char* gpr_strdup(const char* src) {
55
55
  std::string gpr_format_timespec(gpr_timespec tm) {
56
56
  char time_buffer[35];
57
57
  char ns_buffer[11]; // '.' + 9 digits of precision
58
- struct tm* tm_info = localtime((const time_t*)&tm.tv_sec);
58
+ struct tm* tm_info = localtime(reinterpret_cast<time_t*>(&tm.tv_sec));
59
59
  strftime(time_buffer, sizeof(time_buffer), "%Y-%m-%dT%H:%M:%S", tm_info);
60
60
  snprintf(ns_buffer, 11, ".%09d", tm.tv_nsec);
61
61
  // This loop trims off trailing zeros by inserting a null character that the
@@ -119,7 +119,8 @@ static void asciidump(dump_out* out, const char* buf, size_t len) {
119
119
  dump_out_append(out, '\'');
120
120
  }
121
121
  for (cur = beg; cur != end; ++cur) {
122
- dump_out_append(out, (isprint(*cur) ? *(char*)cur : '.'));
122
+ dump_out_append(
123
+ out, (isprint(*cur) ? *reinterpret_cast<const char*>(cur) : '.'));
123
124
  }
124
125
  if (!out_was_empty) {
125
126
  dump_out_append(out, '\'');
@@ -172,45 +173,45 @@ void gpr_reverse_bytes(char* str, int len) {
172
173
  }
173
174
  }
174
175
 
175
- int gpr_ltoa(long value, char* string) {
176
+ int gpr_ltoa(long value, char* output) {
176
177
  long sign;
177
178
  int i = 0;
178
179
 
179
180
  if (value == 0) {
180
- string[0] = '0';
181
- string[1] = 0;
181
+ output[0] = '0';
182
+ output[1] = 0;
182
183
  return 1;
183
184
  }
184
185
 
185
186
  sign = value < 0 ? -1 : 1;
186
187
  while (value) {
187
- string[i++] = static_cast<char>('0' + sign * (value % 10));
188
+ output[i++] = static_cast<char>('0' + sign * (value % 10));
188
189
  value /= 10;
189
190
  }
190
- if (sign < 0) string[i++] = '-';
191
- gpr_reverse_bytes(string, i);
192
- string[i] = 0;
191
+ if (sign < 0) output[i++] = '-';
192
+ gpr_reverse_bytes(output, i);
193
+ output[i] = 0;
193
194
  return i;
194
195
  }
195
196
 
196
- int int64_ttoa(int64_t value, char* string) {
197
+ int int64_ttoa(int64_t value, char* output) {
197
198
  int64_t sign;
198
199
  int i = 0;
199
200
 
200
201
  if (value == 0) {
201
- string[0] = '0';
202
- string[1] = 0;
202
+ output[0] = '0';
203
+ output[1] = 0;
203
204
  return 1;
204
205
  }
205
206
 
206
207
  sign = value < 0 ? -1 : 1;
207
208
  while (value) {
208
- string[i++] = static_cast<char>('0' + sign * (value % 10));
209
+ output[i++] = static_cast<char>('0' + sign * (value % 10));
209
210
  value /= 10;
210
211
  }
211
- if (sign < 0) string[i++] = '-';
212
- gpr_reverse_bytes(string, i);
213
- string[i] = 0;
212
+ if (sign < 0) output[i++] = '-';
213
+ gpr_reverse_bytes(output, i);
214
+ output[i] = 0;
214
215
  return i;
215
216
  }
216
217
 
@@ -311,7 +312,7 @@ void gpr_string_split(const char* input, const char* sep, char*** strs,
311
312
 
312
313
  void* gpr_memrchr(const void* s, int c, size_t n) {
313
314
  if (s == nullptr) return nullptr;
314
- char* b = (char*)s;
315
+ char* b = const_cast<char*>(reinterpret_cast<const char*>(s));
315
316
  size_t i;
316
317
  for (i = 0; i < n; i++) {
317
318
  if (b[n - i - 1] == c) {
@@ -321,19 +322,19 @@ void* gpr_memrchr(const void* s, int c, size_t n) {
321
322
  return nullptr;
322
323
  }
323
324
 
324
- bool gpr_parse_bool_value(const char* s, bool* dst) {
325
+ bool gpr_parse_bool_value(const char* value, bool* dst) {
325
326
  const char* kTrue[] = {"1", "t", "true", "y", "yes"};
326
327
  const char* kFalse[] = {"0", "f", "false", "n", "no"};
327
328
  static_assert(sizeof(kTrue) == sizeof(kFalse), "true_false_equal");
328
329
 
329
- if (s == nullptr) {
330
+ if (value == nullptr) {
330
331
  return false;
331
332
  }
332
333
  for (size_t i = 0; i < GPR_ARRAY_SIZE(kTrue); ++i) {
333
- if (gpr_stricmp(s, kTrue[i]) == 0) {
334
+ if (gpr_stricmp(value, kTrue[i]) == 0) {
334
335
  *dst = true;
335
336
  return true;
336
- } else if (gpr_stricmp(s, kFalse[i]) == 0) {
337
+ } else if (gpr_stricmp(value, kFalse[i]) == 0) {
337
338
  *dst = false;
338
339
  return true;
339
340
  }
@@ -45,8 +45,7 @@ char* gpr_dump_return_len(const char* buf, size_t len, uint32_t flags,
45
45
 
46
46
  /* Parses an array of bytes into an integer (base 10). Returns 1 on success,
47
47
  0 on failure. */
48
- int gpr_parse_bytes_to_uint32(const char* data, size_t length,
49
- uint32_t* result);
48
+ int gpr_parse_bytes_to_uint32(const char* buf, size_t len, uint32_t* result);
50
49
 
51
50
  /* Minimum buffer size for calling ltoa */
52
51
  #define GPR_LTOA_MIN_BUFSIZE (3 * sizeof(long))
@@ -77,15 +76,15 @@ void gpr_reverse_bytes(char* str, int len);
77
76
  char* gpr_leftpad(const char* str, char flag, size_t length);
78
77
 
79
78
  /* Join a set of strings, returning the resulting string.
80
- Total combined length (excluding null terminator) is returned in total_length
79
+ Total combined length (excluding null terminator) is returned in final_length
81
80
  if it is non-null. */
82
- char* gpr_strjoin(const char** strs, size_t nstrs, size_t* total_length);
81
+ char* gpr_strjoin(const char** strs, size_t nstrs, size_t* final_length);
83
82
 
84
83
  /* Join a set of strings using a separator, returning the resulting string.
85
- Total combined length (excluding null terminator) is returned in total_length
84
+ Total combined length (excluding null terminator) is returned in final_length
86
85
  if it is non-null. */
87
86
  char* gpr_strjoin_sep(const char** strs, size_t nstrs, const char* sep,
88
- size_t* total_length);
87
+ size_t* final_length);
89
88
 
90
89
  void gpr_string_split(const char* input, const char* sep, char*** strs,
91
90
  size_t* nstrs);
@@ -48,7 +48,7 @@ static void event_initialize(void) {
48
48
 
49
49
  /* Hash ev into an element of sync_array[]. */
50
50
  static struct sync_array_s* hash(gpr_event* ev) {
51
- return &sync_array[((uintptr_t)ev) % event_sync_partitions];
51
+ return &sync_array[reinterpret_cast<uintptr_t>(ev) % event_sync_partitions];
52
52
  }
53
53
 
54
54
  void gpr_event_init(gpr_event* ev) {
@@ -67,16 +67,16 @@ void gpr_event_set(gpr_event* ev, void* value) {
67
67
  }
68
68
 
69
69
  void* gpr_event_get(gpr_event* ev) {
70
- return (void*)gpr_atm_acq_load(&ev->state);
70
+ return reinterpret_cast<void*>(gpr_atm_acq_load(&ev->state));
71
71
  }
72
72
 
73
73
  void* gpr_event_wait(gpr_event* ev, gpr_timespec abs_deadline) {
74
- void* result = (void*)gpr_atm_acq_load(&ev->state);
74
+ void* result = reinterpret_cast<void*>(gpr_atm_acq_load(&ev->state));
75
75
  if (result == nullptr) {
76
76
  struct sync_array_s* s = hash(ev);
77
77
  gpr_mu_lock(&s->mu);
78
78
  do {
79
- result = (void*)gpr_atm_acq_load(&ev->state);
79
+ result = reinterpret_cast<void*>(gpr_atm_acq_load(&ev->state));
80
80
  } while (result == nullptr && !gpr_cv_wait(&s->cv, &s->mu, abs_deadline));
81
81
  gpr_mu_unlock(&s->mu);
82
82
  }
@@ -107,28 +107,28 @@ static gpr_timespec to_seconds_from_above_second_time(int64_t time_in_units,
107
107
  return out;
108
108
  }
109
109
 
110
- gpr_timespec gpr_time_from_nanos(int64_t ns, gpr_clock_type type) {
111
- return to_seconds_from_sub_second_time(ns, GPR_NS_PER_SEC, type);
110
+ gpr_timespec gpr_time_from_nanos(int64_t ns, gpr_clock_type clock_type) {
111
+ return to_seconds_from_sub_second_time(ns, GPR_NS_PER_SEC, clock_type);
112
112
  }
113
113
 
114
- gpr_timespec gpr_time_from_micros(int64_t us, gpr_clock_type type) {
115
- return to_seconds_from_sub_second_time(us, GPR_US_PER_SEC, type);
114
+ gpr_timespec gpr_time_from_micros(int64_t us, gpr_clock_type clock_type) {
115
+ return to_seconds_from_sub_second_time(us, GPR_US_PER_SEC, clock_type);
116
116
  }
117
117
 
118
- gpr_timespec gpr_time_from_millis(int64_t ms, gpr_clock_type type) {
119
- return to_seconds_from_sub_second_time(ms, GPR_MS_PER_SEC, type);
118
+ gpr_timespec gpr_time_from_millis(int64_t ms, gpr_clock_type clock_type) {
119
+ return to_seconds_from_sub_second_time(ms, GPR_MS_PER_SEC, clock_type);
120
120
  }
121
121
 
122
- gpr_timespec gpr_time_from_seconds(int64_t s, gpr_clock_type type) {
123
- return to_seconds_from_sub_second_time(s, 1, type);
122
+ gpr_timespec gpr_time_from_seconds(int64_t s, gpr_clock_type clock_type) {
123
+ return to_seconds_from_sub_second_time(s, 1, clock_type);
124
124
  }
125
125
 
126
- gpr_timespec gpr_time_from_minutes(int64_t m, gpr_clock_type type) {
127
- return to_seconds_from_above_second_time(m, 60, type);
126
+ gpr_timespec gpr_time_from_minutes(int64_t m, gpr_clock_type clock_type) {
127
+ return to_seconds_from_above_second_time(m, 60, clock_type);
128
128
  }
129
129
 
130
- gpr_timespec gpr_time_from_hours(int64_t h, gpr_clock_type type) {
131
- return to_seconds_from_above_second_time(h, 3600, type);
130
+ gpr_timespec gpr_time_from_hours(int64_t h, gpr_clock_type clock_type) {
131
+ return to_seconds_from_above_second_time(h, 3600, clock_type);
132
132
  }
133
133
 
134
134
  gpr_timespec gpr_time_add(gpr_timespec a, gpr_timespec b) {
@@ -96,7 +96,8 @@ class Arena {
96
96
  // where we wish to create an arena and then perform an immediate
97
97
  // allocation.
98
98
  explicit Arena(size_t initial_size, size_t initial_alloc = 0)
99
- : total_used_(initial_alloc), initial_zone_size_(initial_size) {}
99
+ : total_used_(GPR_ROUND_UP_TO_ALIGNMENT_SIZE(initial_alloc)),
100
+ initial_zone_size_(initial_size) {}
100
101
 
101
102
  ~Arena();
102
103
 
@@ -105,7 +106,7 @@ class Arena {
105
106
  // Keep track of the total used size. We use this in our call sizing
106
107
  // hysteresis.
107
108
  Atomic<size_t> total_used_;
108
- size_t initial_zone_size_;
109
+ const size_t initial_zone_size_;
109
110
  gpr_spinlock arena_growth_spinlock_ = GPR_SPINLOCK_STATIC_INITIALIZER;
110
111
  // If the initial arena allocation wasn't enough, we allocate additional zones
111
112
  // in a reverse linked list. Each additional zone consists of (1) a pointer to
@@ -221,12 +221,12 @@ class Delete;
221
221
  template <typename T>
222
222
  class Delete<T, true> {
223
223
  public:
224
- Delete(T* t) { delete t; }
224
+ explicit Delete(T* t) { delete t; }
225
225
  };
226
226
  template <typename T>
227
227
  class Delete<T, false> {
228
228
  public:
229
- Delete(T* t) {}
229
+ explicit Delete(T* t) {}
230
230
  };
231
231
  } // namespace internal
232
232
 
@@ -35,10 +35,12 @@ template <typename T>
35
35
  class RefCountedPtr {
36
36
  public:
37
37
  RefCountedPtr() {}
38
+ // NOLINTNEXTLINE(google-explicit-constructor)
38
39
  RefCountedPtr(std::nullptr_t) {}
39
40
 
40
41
  // If value is non-null, we take ownership of a ref to it.
41
42
  template <typename Y>
43
+ // NOLINTNEXTLINE(google-explicit-constructor)
42
44
  RefCountedPtr(Y* value) : value_(value) {}
43
45
 
44
46
  // Move ctors.
@@ -47,6 +49,7 @@ class RefCountedPtr {
47
49
  other.value_ = nullptr;
48
50
  }
49
51
  template <typename Y>
52
+ // NOLINTNEXTLINE(google-explicit-constructor)
50
53
  RefCountedPtr(RefCountedPtr<Y>&& other) noexcept {
51
54
  value_ = static_cast<T*>(other.value_);
52
55
  other.value_ = nullptr;
@@ -71,6 +74,7 @@ class RefCountedPtr {
71
74
  value_ = other.value_;
72
75
  }
73
76
  template <typename Y>
77
+ // NOLINTNEXTLINE(google-explicit-constructor)
74
78
  RefCountedPtr(const RefCountedPtr<Y>& other) {
75
79
  static_assert(std::has_virtual_destructor<T>::value,
76
80
  "T does not have a virtual dtor");
@@ -181,11 +185,13 @@ template <typename T>
181
185
  class WeakRefCountedPtr {
182
186
  public:
183
187
  WeakRefCountedPtr() {}
188
+ // NOLINTNEXTLINE(google-explicit-constructor)
184
189
  WeakRefCountedPtr(std::nullptr_t) {}
185
190
 
186
191
  // If value is non-null, we take ownership of a ref to it.
187
192
  template <typename Y>
188
- explicit WeakRefCountedPtr(Y* value) {
193
+ // NOLINTNEXTLINE(google-explicit-constructor)
194
+ WeakRefCountedPtr(Y* value) {
189
195
  value_ = value;
190
196
  }
191
197
 
@@ -195,6 +201,7 @@ class WeakRefCountedPtr {
195
201
  other.value_ = nullptr;
196
202
  }
197
203
  template <typename Y>
204
+ // NOLINTNEXTLINE(google-explicit-constructor)
198
205
  WeakRefCountedPtr(WeakRefCountedPtr<Y>&& other) noexcept {
199
206
  value_ = static_cast<T*>(other.value_);
200
207
  other.value_ = nullptr;
@@ -219,6 +226,7 @@ class WeakRefCountedPtr {
219
226
  value_ = other.value_;
220
227
  }
221
228
  template <typename Y>
229
+ // NOLINTNEXTLINE(google-explicit-constructor)
222
230
  WeakRefCountedPtr(const WeakRefCountedPtr<Y>& other) {
223
231
  static_assert(std::has_virtual_destructor<T>::value,
224
232
  "T does not have a virtual dtor");
@@ -199,6 +199,11 @@ Thread::Thread(const char* thd_name, void (*thd_body)(void* arg), void* arg,
199
199
  } // namespace grpc_core
200
200
 
201
201
  // The following is in the external namespace as it is exposed as C89 API
202
- gpr_thd_id gpr_thd_currentid(void) { return (gpr_thd_id)pthread_self(); }
202
+ gpr_thd_id gpr_thd_currentid(void) {
203
+ // Use C-style casting because Linux and OSX have different definitions
204
+ // of pthread_t so that a single C++ cast doesn't handle it.
205
+ // NOLINTNEXTLINE(google-readability-casting)
206
+ return (gpr_thd_id)pthread_self();
207
+ }
203
208
 
204
209
  #endif /* GPR_POSIX_SYNC */
@@ -171,6 +171,8 @@ Thread::Thread(const char* thd_name, void (*thd_body)(void* arg), void* arg,
171
171
 
172
172
  } // namespace grpc_core
173
173
 
174
- gpr_thd_id gpr_thd_currentid(void) { return (gpr_thd_id)g_thd_info; }
174
+ gpr_thd_id gpr_thd_currentid(void) {
175
+ return reinterpret_cast<gpr_thd_id>(g_thd_info);
176
+ }
175
177
 
176
178
  #endif /* GPR_WINDOWS */
@@ -209,7 +209,7 @@ static void next_address(internal_request* req, grpc_error* error) {
209
209
  GRPC_CLOSURE_INIT(&req->connected, on_connected, req,
210
210
  grpc_schedule_on_exec_ctx);
211
211
  grpc_arg arg = grpc_channel_arg_pointer_create(
212
- (char*)GRPC_ARG_RESOURCE_QUOTA, req->resource_quota,
212
+ const_cast<char*>(GRPC_ARG_RESOURCE_QUOTA), req->resource_quota,
213
213
  grpc_resource_quota_arg_vtable());
214
214
  grpc_channel_args args = {1, &arg};
215
215
  grpc_tcp_client_connect(&req->connected, &req->ep, req->context->pollset_set,
@@ -83,8 +83,7 @@ void grpc_httpcli_get(grpc_httpcli_context* context,
83
83
  grpc_polling_entity* pollent,
84
84
  grpc_resource_quota* resource_quota,
85
85
  const grpc_httpcli_request* request, grpc_millis deadline,
86
- grpc_closure* on_complete,
87
- grpc_httpcli_response* response);
86
+ grpc_closure* on_done, grpc_httpcli_response* response);
88
87
 
89
88
  /* Asynchronously perform a HTTP POST.
90
89
  'context' specifies the http context under which to do the post
@@ -105,7 +104,7 @@ void grpc_httpcli_post(grpc_httpcli_context* context,
105
104
  grpc_resource_quota* resource_quota,
106
105
  const grpc_httpcli_request* request,
107
106
  const char* body_bytes, size_t body_size,
108
- grpc_millis deadline, grpc_closure* on_complete,
107
+ grpc_millis deadline, grpc_closure* on_done,
109
108
  grpc_httpcli_response* response);
110
109
 
111
110
  /* override functions return 1 if they handled the request, 0 otherwise */
@@ -43,7 +43,7 @@
43
43
  class grpc_httpcli_ssl_channel_security_connector final
44
44
  : public grpc_channel_security_connector {
45
45
  public:
46
- grpc_httpcli_ssl_channel_security_connector(char* secure_peer_name)
46
+ explicit grpc_httpcli_ssl_channel_security_connector(char* secure_peer_name)
47
47
  : grpc_channel_security_connector(
48
48
  /*url_scheme=*/nullptr,
49
49
  /*channel_creds=*/nullptr,