grpc 1.35.0.pre1 → 1.37.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (507) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +121 -89
  3. data/include/grpc/grpc.h +15 -1
  4. data/include/grpc/grpc_security.h +16 -11
  5. data/include/grpc/impl/codegen/port_platform.h +2 -0
  6. data/src/core/ext/filters/client_channel/client_channel.cc +359 -331
  7. data/src/core/ext/filters/client_channel/client_channel.h +0 -2
  8. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
  9. data/src/core/ext/filters/client_channel/config_selector.h +9 -1
  10. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -4
  11. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
  12. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
  13. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +2 -2
  14. data/src/core/ext/filters/client_channel/lb_policy.cc +3 -0
  15. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +3 -5
  16. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
  17. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
  18. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +1 -1
  19. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +8 -6
  20. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
  21. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
  22. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +289 -170
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +5 -0
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +8 -25
  25. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +1 -1
  26. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +232 -110
  27. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
  28. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
  29. data/src/core/ext/filters/client_channel/resolver.cc +5 -5
  30. data/src/core/ext/filters/client_channel/resolver.h +1 -12
  31. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +36 -45
  32. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  33. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -1
  34. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +34 -50
  35. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +16 -14
  36. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +18 -15
  37. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +377 -0
  38. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -4
  39. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +307 -155
  40. data/src/core/ext/filters/client_channel/server_address.cc +9 -0
  41. data/src/core/ext/filters/client_channel/server_address.h +31 -0
  42. data/src/core/ext/filters/client_channel/subchannel.cc +69 -146
  43. data/src/core/ext/filters/client_channel/subchannel.h +63 -95
  44. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
  45. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
  46. data/src/core/ext/filters/client_idle/client_idle_filter.cc +1 -1
  47. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +500 -0
  48. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
  49. data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
  50. data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
  51. data/src/core/ext/filters/max_age/max_age_filter.cc +35 -32
  52. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +1 -1
  53. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -2
  54. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +3 -2
  55. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
  56. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -2
  57. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +490 -178
  58. data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
  59. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +11 -1
  60. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +1 -1
  61. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +62 -18
  62. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +39 -7
  63. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
  64. data/src/core/ext/transport/chttp2/transport/frame_data.cc +5 -1
  65. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
  66. data/src/core/ext/transport/chttp2/transport/internal.h +1 -0
  67. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
  68. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
  69. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +0 -1
  70. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
  71. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
  72. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +11 -16
  73. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +42 -59
  74. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +3 -2
  75. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +15 -0
  76. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -1
  77. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +75 -0
  78. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +2 -2
  79. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +9 -9
  80. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +7 -7
  81. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +28 -13
  82. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
  83. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
  84. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +0 -1
  85. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +11 -5
  86. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +41 -7
  87. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +0 -1
  88. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -21
  89. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +122 -77
  90. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +13 -9
  91. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +37 -5
  92. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +0 -1
  93. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
  94. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
  95. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
  96. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
  97. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +11 -9
  98. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +44 -27
  99. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +57 -16
  100. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +150 -0
  101. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +0 -1
  102. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
  103. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +67 -0
  104. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
  105. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
  106. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
  107. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
  108. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
  109. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
  110. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +19 -21
  111. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +64 -51
  112. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -1
  113. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +16 -13
  114. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +50 -18
  115. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +4 -7
  116. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +0 -17
  117. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +0 -1
  118. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +30 -23
  119. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +85 -73
  120. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -3
  121. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -3
  122. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +0 -1
  123. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -2
  124. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
  125. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
  126. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
  127. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
  128. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +0 -1
  129. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
  130. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
  131. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +21 -4
  132. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +29 -0
  133. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
  134. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
  135. data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/authority.upb.c +5 -5
  136. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -0
  137. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
  138. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +143 -0
  139. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
  140. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +84 -0
  141. data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/resource.upb.c +9 -9
  142. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -0
  143. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
  144. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +166 -0
  145. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
  146. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +85 -0
  147. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
  148. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
  149. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +168 -171
  150. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
  151. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
  152. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +405 -420
  153. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +2 -2
  154. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +12 -9
  155. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +177 -171
  156. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
  157. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +88 -88
  158. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +153 -153
  159. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
  160. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -0
  161. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +4 -7
  162. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +33 -20
  163. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +56 -59
  164. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +116 -111
  165. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +129 -121
  166. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +21 -24
  167. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
  168. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  169. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
  170. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
  171. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +17 -13
  172. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +753 -724
  173. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
  174. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +22 -25
  175. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
  176. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
  177. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
  178. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  179. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
  180. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  181. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
  182. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
  183. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +371 -377
  184. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +12 -16
  185. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +112 -108
  186. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +45 -53
  187. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +177 -180
  188. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +92 -102
  189. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +5 -0
  190. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +32 -42
  191. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +30 -40
  192. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +4 -7
  193. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +38 -44
  194. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
  195. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
  196. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
  197. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  198. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +30 -33
  199. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
  200. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  201. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +8 -7
  202. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +9 -9
  203. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +9 -8
  204. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +8 -8
  205. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +8 -8
  206. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +9 -8
  207. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +8 -8
  208. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
  209. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
  210. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +14 -11
  211. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -0
  212. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
  213. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +62 -0
  214. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
  215. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +45 -0
  216. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
  217. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +49 -0
  218. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
  219. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +67 -0
  220. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
  221. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +50 -0
  222. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
  223. data/src/core/ext/xds/xds_api.cc +2149 -666
  224. data/src/core/ext/xds/xds_api.h +321 -119
  225. data/src/core/ext/xds/xds_bootstrap.cc +80 -45
  226. data/src/core/ext/xds/xds_bootstrap.h +17 -5
  227. data/src/core/ext/xds/xds_certificate_provider.cc +180 -74
  228. data/src/core/ext/xds/xds_certificate_provider.h +83 -44
  229. data/src/core/ext/xds/xds_client.cc +181 -34
  230. data/src/core/ext/xds/xds_client.h +29 -0
  231. data/src/core/ext/xds/xds_client_stats.cc +2 -1
  232. data/src/core/ext/xds/xds_client_stats.h +2 -2
  233. data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
  234. data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
  235. data/src/core/ext/xds/xds_http_filters.cc +114 -0
  236. data/src/core/ext/xds/xds_http_filters.h +130 -0
  237. data/src/core/ext/xds/xds_server_config_fetcher.cc +425 -24
  238. data/src/core/lib/channel/channel_stack.cc +12 -0
  239. data/src/core/lib/channel/channel_stack.h +7 -0
  240. data/src/core/lib/channel/channelz.cc +92 -4
  241. data/src/core/lib/channel/channelz.h +30 -1
  242. data/src/core/lib/channel/channelz_registry.cc +14 -0
  243. data/src/core/lib/channel/handshaker.cc +2 -44
  244. data/src/core/lib/channel/handshaker.h +1 -18
  245. data/src/core/lib/channel/status_util.cc +12 -2
  246. data/src/core/lib/channel/status_util.h +5 -0
  247. data/src/core/lib/gpr/log.cc +6 -1
  248. data/src/core/lib/gpr/sync_abseil.cc +3 -6
  249. data/src/core/lib/gpr/sync_windows.cc +2 -2
  250. data/src/core/lib/gprpp/atomic.h +3 -3
  251. data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
  252. data/src/core/lib/gprpp/mpscq.cc +2 -2
  253. data/src/core/lib/gprpp/ref_counted.h +1 -1
  254. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
  255. data/src/core/lib/gprpp/sync.h +129 -40
  256. data/src/core/lib/gprpp/thd.h +1 -1
  257. data/src/core/lib/gprpp/time_util.cc +77 -0
  258. data/src/core/lib/gprpp/time_util.h +42 -0
  259. data/src/core/lib/http/httpcli_security_connector.cc +2 -2
  260. data/src/core/lib/iomgr/buffer_list.h +1 -1
  261. data/src/core/lib/iomgr/cfstream_handle.cc +2 -2
  262. data/src/core/lib/iomgr/error.h +1 -1
  263. data/src/core/lib/iomgr/ev_apple.cc +11 -8
  264. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -3
  265. data/src/core/lib/iomgr/ev_epollex_linux.cc +4 -4
  266. data/src/core/lib/iomgr/ev_posix.cc +3 -3
  267. data/src/core/lib/iomgr/exec_ctx.cc +6 -2
  268. data/src/core/lib/iomgr/iomgr_posix.cc +0 -1
  269. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -1
  270. data/src/core/lib/iomgr/resource_quota.cc +1 -1
  271. data/src/core/lib/iomgr/sockaddr_utils.cc +121 -1
  272. data/src/core/lib/iomgr/sockaddr_utils.h +25 -0
  273. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
  274. data/src/core/lib/iomgr/tcp_client_posix.cc +1 -1
  275. data/src/core/lib/iomgr/tcp_posix.cc +5 -8
  276. data/src/core/lib/iomgr/tcp_uv.cc +2 -2
  277. data/src/core/lib/iomgr/timer_generic.cc +2 -2
  278. data/src/core/lib/iomgr/timer_manager.cc +1 -1
  279. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
  280. data/src/core/lib/matchers/matchers.cc +339 -0
  281. data/src/core/lib/matchers/matchers.h +160 -0
  282. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
  283. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  284. data/src/core/lib/security/credentials/credentials.h +2 -1
  285. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +1 -1
  286. data/src/core/lib/security/credentials/external/external_account_credentials.cc +2 -2
  287. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +1 -1
  288. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -1
  289. data/src/core/lib/security/credentials/fake/fake_credentials.cc +1 -1
  290. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -6
  291. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
  292. data/src/core/lib/security/credentials/jwt/json_token.cc +0 -3
  293. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -3
  294. data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
  295. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  296. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +2 -1
  297. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  298. data/src/core/lib/security/credentials/tls/tls_credentials.cc +2 -1
  299. data/src/core/lib/security/credentials/tls/tls_credentials.h +1 -1
  300. data/src/core/lib/security/credentials/xds/xds_credentials.cc +128 -59
  301. data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
  302. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
  303. data/src/core/lib/security/security_connector/ssl_utils.cc +9 -4
  304. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +32 -14
  305. data/src/core/lib/security/transport/security_handshaker.cc +33 -5
  306. data/src/core/lib/security/transport/server_auth_filter.cc +7 -0
  307. data/src/core/lib/slice/slice_intern.cc +5 -6
  308. data/src/core/lib/surface/channel.h +3 -3
  309. data/src/core/lib/surface/completion_queue.cc +1 -1
  310. data/src/core/lib/surface/init.cc +13 -15
  311. data/src/core/lib/surface/lame_client.cc +38 -19
  312. data/src/core/lib/surface/lame_client.h +4 -3
  313. data/src/core/lib/surface/server.cc +43 -36
  314. data/src/core/lib/surface/server.h +76 -14
  315. data/src/core/lib/surface/version.cc +2 -2
  316. data/src/core/lib/transport/metadata.cc +6 -2
  317. data/src/core/lib/transport/metadata_batch.cc +27 -0
  318. data/src/core/lib/transport/metadata_batch.h +14 -0
  319. data/src/core/plugin_registry/grpc_plugin_registry.cc +12 -0
  320. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +18 -24
  321. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +16 -21
  322. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  323. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
  324. data/src/core/tsi/fake_transport_security.cc +11 -2
  325. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -3
  326. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
  327. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +2 -4
  328. data/src/core/tsi/ssl_transport_security.cc +0 -3
  329. data/src/core/tsi/ssl_transport_security.h +0 -3
  330. data/src/ruby/ext/grpc/extconf.rb +9 -1
  331. data/src/ruby/ext/grpc/rb_channel.c +10 -1
  332. data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
  333. data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
  334. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  335. data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
  336. data/src/ruby/ext/grpc/rb_grpc.c +4 -0
  337. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  338. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
  339. data/src/ruby/ext/grpc/rb_server.c +13 -1
  340. data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
  341. data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
  342. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
  343. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
  344. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
  345. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
  346. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
  347. data/src/ruby/lib/grpc/version.rb +1 -1
  348. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +7 -0
  349. data/src/ruby/spec/call_spec.rb +1 -1
  350. data/src/ruby/spec/channel_credentials_spec.rb +32 -0
  351. data/src/ruby/spec/channel_spec.rb +17 -6
  352. data/src/ruby/spec/client_auth_spec.rb +27 -1
  353. data/src/ruby/spec/errors_spec.rb +1 -1
  354. data/src/ruby/spec/generic/active_call_spec.rb +2 -2
  355. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  356. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  357. data/src/ruby/spec/server_credentials_spec.rb +25 -0
  358. data/src/ruby/spec/server_spec.rb +22 -0
  359. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +1 -0
  360. data/third_party/boringssl-with-bazel/err_data.c +715 -713
  361. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
  362. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
  363. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
  364. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -10
  365. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
  366. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +4 -2
  367. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +2 -2
  368. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +15 -14
  369. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +30 -0
  370. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
  371. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +39 -85
  372. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +5 -16
  373. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
  374. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
  375. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -2
  376. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
  377. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +158 -0
  378. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
  379. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
  380. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +60 -45
  381. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
  382. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +87 -0
  383. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
  384. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
  385. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
  386. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
  387. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
  388. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +25 -0
  389. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
  390. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +3 -1
  391. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
  392. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +2 -3
  393. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +9 -1
  394. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +21 -13
  395. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
  396. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
  397. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +12 -0
  398. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -1
  399. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +28 -0
  400. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +135 -43
  401. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +0 -7
  402. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +51 -32
  403. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +147 -0
  404. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +18 -29
  405. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +13 -4
  406. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +10 -7
  407. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
  408. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
  409. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
  410. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +4 -0
  411. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
  412. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
  413. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +1 -29
  414. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +10 -7
  415. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c +1 -1
  416. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +8 -8
  417. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +1 -1
  418. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +29 -23
  419. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +22 -17
  420. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +1 -2
  421. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
  422. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +39 -4
  423. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
  424. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
  425. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +11 -10
  426. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
  427. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +25 -25
  428. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -2
  429. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -1
  430. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +40 -20
  431. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
  432. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +25 -36
  433. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
  434. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +6 -6
  435. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +6 -6
  436. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -3
  437. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +652 -545
  438. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
  439. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +10 -5
  440. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
  441. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +22 -7
  442. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +19 -0
  443. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
  444. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +56 -26
  445. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
  446. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +15 -0
  447. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +12 -2
  448. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -0
  449. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
  450. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +67 -33
  451. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +27 -8
  452. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +287 -99
  453. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +139 -36
  454. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +4 -3
  455. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +11 -20
  456. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +10 -5
  457. data/third_party/boringssl-with-bazel/src/ssl/internal.h +37 -16
  458. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
  459. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -8
  460. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +20 -14
  461. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +7 -8
  462. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +2 -2
  463. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
  464. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +362 -50
  465. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -2
  466. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +48 -15
  467. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +66 -24
  468. data/third_party/xxhash/xxhash.h +5443 -0
  469. metadata +140 -84
  470. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -60
  471. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
  472. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -143
  473. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
  474. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -84
  475. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -94
  476. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
  477. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -173
  478. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
  479. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -92
  480. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +0 -42
  481. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +0 -35
  482. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +0 -62
  483. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +0 -40
  484. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +0 -45
  485. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +0 -40
  486. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +0 -49
  487. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +0 -35
  488. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +0 -68
  489. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +0 -40
  490. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +0 -51
  491. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +0 -35
  492. data/src/core/lib/iomgr/iomgr_posix.h +0 -26
  493. data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
  494. data/src/core/lib/security/authorization/authorization_engine.h +0 -84
  495. data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
  496. data/src/core/lib/security/authorization/evaluate_args.h +0 -59
  497. data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
  498. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
  499. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
  500. data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -97
  501. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
  502. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
  503. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
  504. data/third_party/upb/upb/json_decode.c +0 -1443
  505. data/third_party/upb/upb/json_decode.h +0 -23
  506. data/third_party/upb/upb/json_encode.c +0 -713
  507. data/third_party/upb/upb/json_encode.h +0 -36
@@ -203,8 +203,8 @@ static void ssl_handshake(void* arg, grpc_endpoint* tcp, const char* host,
203
203
  grpc_channel_args args = {1, &channel_arg};
204
204
  c->handshake_mgr = grpc_core::MakeRefCounted<grpc_core::HandshakeManager>();
205
205
  grpc_core::HandshakerRegistry::AddHandshakers(
206
- grpc_core::HANDSHAKER_CLIENT, &args, /*interested_parties=*/nullptr,
207
- c->handshake_mgr.get());
206
+ grpc_core::HANDSHAKER_CLIENT, &args,
207
+ /*interested_parties=*/nullptr, c->handshake_mgr.get());
208
208
  c->handshake_mgr->DoHandshake(tcp, /*channel_args=*/nullptr, deadline,
209
209
  /*acceptor=*/nullptr, on_handshake_done,
210
210
  /*user_data=*/c);
@@ -146,7 +146,7 @@ class TracedBuffer {
146
146
  #else /* GRPC_LINUX_ERRQUEUE */
147
147
  class TracedBuffer {
148
148
  public:
149
- /* Dummy shutdown function */
149
+ /* Phony shutdown function */
150
150
  static void Shutdown(grpc_core::TracedBuffer** /*head*/, void* /*remaining*/,
151
151
  grpc_error* shutdown_err) {
152
152
  GRPC_ERROR_UNREF(shutdown_err);
@@ -202,9 +202,9 @@ void CFStreamHandle::Unref(const char* file, int line, const char* reason) {
202
202
 
203
203
  #else
204
204
 
205
- /* Creating a dummy function so that the grpc_cfstream library will be
205
+ /* Creating a phony function so that the grpc_cfstream library will be
206
206
  * non-empty.
207
207
  */
208
- void CFStreamDummy() {}
208
+ void CFStreamPhony() {}
209
209
 
210
210
  #endif
@@ -219,7 +219,7 @@ static grpc_error* grpc_error_create_from_vector(const char* file, int line,
219
219
 
220
220
  grpc_error* grpc_error_set_int(grpc_error* src, grpc_error_ints which,
221
221
  intptr_t value) GRPC_MUST_USE_RESULT;
222
- /// It is an error to pass nullptr as `p`. Caller should allocate a dummy
222
+ /// It is an error to pass nullptr as `p`. Caller should allocate a phony
223
223
  /// intptr_t for `p`, even if the value of `p` is not used.
224
224
  bool grpc_error_get_int(grpc_error* error, grpc_error_ints which, intptr_t* p);
225
225
  /// This call takes ownership of the slice; the error is responsible for
@@ -20,7 +20,7 @@
20
20
  /// is enabled (see iomgr_posix_cfstream.cc), a global thread is started to
21
21
  /// handle and trigger all the CFStream events. The CFStream streams register
22
22
  /// themselves with the run loop with functions grpc_apple_register_read_stream
23
- /// and grpc_apple_register_read_stream. Pollsets are dummy and block on a
23
+ /// and grpc_apple_register_read_stream. Pollsets are phony and block on a
24
24
  /// condition variable in pollset_work().
25
25
 
26
26
  #include <grpc/support/port_platform.h>
@@ -33,7 +33,10 @@
33
33
 
34
34
  #include <list>
35
35
 
36
+ #include "absl/time/time.h"
37
+
36
38
  #include "src/core/lib/gprpp/thd.h"
39
+ #include "src/core/lib/gprpp/time_util.h"
37
40
  #include "src/core/lib/iomgr/ev_apple.h"
38
41
 
39
42
  grpc_core::DebugOnlyTraceFlag grpc_apple_polling_trace(false, "apple_polling");
@@ -161,7 +164,7 @@ void grpc_apple_register_write_stream(CFWriteStreamRef write_stream,
161
164
  /// Drive the run loop in a global singleton thread until the global run loop is
162
165
  /// shutdown.
163
166
  static void GlobalRunLoopFunc(void* arg) {
164
- grpc_core::ReleasableMutexLock lock(&gGlobalRunLoopContext->mu);
167
+ grpc_core::LockableAndReleasableMutexLock lock(&gGlobalRunLoopContext->mu);
165
168
  gGlobalRunLoopContext->run_loop = CFRunLoopGetCurrent();
166
169
  gGlobalRunLoopContext->init_cv.Signal();
167
170
 
@@ -173,11 +176,11 @@ static void GlobalRunLoopFunc(void* arg) {
173
176
  gGlobalRunLoopContext->input_source_cv.Wait(&gGlobalRunLoopContext->mu);
174
177
  }
175
178
  gGlobalRunLoopContext->input_source_registered = false;
176
- lock.Unlock();
179
+ lock.Release();
177
180
  CFRunLoopRun();
178
181
  lock.Lock();
179
182
  }
180
- lock.Unlock();
183
+ lock.Release();
181
184
  }
182
185
 
183
186
  // pollset implementation
@@ -237,9 +240,9 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
237
240
  auto it = apple_pollset->workers.begin();
238
241
 
239
242
  while (!actual_worker.kicked && !apple_pollset->is_shutdown) {
240
- if (actual_worker.cv.Wait(
241
- &apple_pollset->mu,
242
- grpc_millis_to_timespec(deadline, GPR_CLOCK_REALTIME))) {
243
+ if (actual_worker.cv.WaitWithDeadline(
244
+ &apple_pollset->mu, grpc_core::ToAbslTime(grpc_millis_to_timespec(
245
+ deadline, GPR_CLOCK_REALTIME)))) {
243
246
  // timed out
244
247
  break;
245
248
  }
@@ -299,7 +302,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
299
302
  static void pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
300
303
  GRPC_POLLING_TRACE("pollset init: %p", pollset);
301
304
  GrpcApplePollset* apple_pollset = new (pollset) GrpcApplePollset();
302
- *mu = apple_pollset->mu.get();
305
+ *mu = grpc_core::GetUnderlyingGprMu(&apple_pollset->mu);
303
306
  }
304
307
 
305
308
  /// The caller must acquire the lock GrpcApplePollset.mu before calling this
@@ -388,9 +388,9 @@ static void fd_shutdown_internal(grpc_fd* fd, grpc_error* why,
388
388
  if (!releasing_fd) {
389
389
  shutdown(fd->fd, SHUT_RDWR);
390
390
  } else {
391
- /* we need a dummy event for earlier linux versions. */
392
- epoll_event dummy_event;
393
- if (epoll_ctl(g_epoll_set.epfd, EPOLL_CTL_DEL, fd->fd, &dummy_event) !=
391
+ /* we need a phony event for earlier linux versions. */
392
+ epoll_event phony_event;
393
+ if (epoll_ctl(g_epoll_set.epfd, EPOLL_CTL_DEL, fd->fd, &phony_event) !=
394
394
  0) {
395
395
  gpr_log(GPR_ERROR, "epoll_ctl failed: %s", strerror(errno));
396
396
  }
@@ -537,7 +537,7 @@ static void fd_notify_on_error(grpc_fd* fd, grpc_closure* closure) {
537
537
 
538
538
  static bool fd_has_pollset(grpc_fd* fd, grpc_pollset* pollset) {
539
539
  const int epfd = pollset->active_pollable->epfd;
540
- grpc_core::MutexLock lock(&fd->pollable_mu);
540
+ grpc_core::MutexLockForGprMu lock(&fd->pollable_mu);
541
541
  for (size_t i = 0; i < fd->pollset_fds.size(); ++i) {
542
542
  if (fd->pollset_fds[i] == epfd) {
543
543
  return true;
@@ -548,7 +548,7 @@ static bool fd_has_pollset(grpc_fd* fd, grpc_pollset* pollset) {
548
548
 
549
549
  static void fd_add_pollset(grpc_fd* fd, grpc_pollset* pollset) {
550
550
  const int epfd = pollset->active_pollable->epfd;
551
- grpc_core::MutexLock lock(&fd->pollable_mu);
551
+ grpc_core::MutexLockForGprMu lock(&fd->pollable_mu);
552
552
  fd->pollset_fds.push_back(epfd);
553
553
  }
554
554
 
@@ -684,7 +684,7 @@ static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
684
684
  static grpc_error* kick_one_worker(grpc_pollset_worker* specific_worker) {
685
685
  GPR_TIMER_SCOPE("kick_one_worker", 0);
686
686
  pollable* p = specific_worker->pollable_obj;
687
- grpc_core::MutexLock lock(&p->mu);
687
+ grpc_core::MutexLockForGprMu lock(&p->mu);
688
688
  GPR_ASSERT(specific_worker != nullptr);
689
689
  if (specific_worker->kicked) {
690
690
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
@@ -1296,7 +1296,7 @@ static void pollset_add_fd(grpc_pollset* pollset, grpc_fd* fd) {
1296
1296
  return;
1297
1297
  }
1298
1298
 
1299
- grpc_core::MutexLock lock(&pollset->mu);
1299
+ grpc_core::MutexLockForGprMu lock(&pollset->mu);
1300
1300
  grpc_error* error = pollset_add_fd_locked(pollset, fd);
1301
1301
 
1302
1302
  // If we are in PO_MULTI mode, we should update the pollsets of the FD.
@@ -89,7 +89,7 @@ namespace {
89
89
 
90
90
  grpc_poll_function_type real_poll_function;
91
91
 
92
- int dummy_poll(struct pollfd fds[], nfds_t nfds, int timeout) {
92
+ int phony_poll(struct pollfd fds[], nfds_t nfds, int timeout) {
93
93
  if (timeout == 0) {
94
94
  return real_poll_function(fds, nfds, 0);
95
95
  } else {
@@ -103,10 +103,10 @@ const grpc_event_engine_vtable* init_non_polling(bool explicit_request) {
103
103
  if (!explicit_request) {
104
104
  return nullptr;
105
105
  }
106
- // return the simplest engine as a dummy but also override the poller
106
+ // return the simplest engine as a phony but also override the poller
107
107
  auto ret = grpc_init_poll_posix(explicit_request);
108
108
  real_poll_function = grpc_poll_function;
109
- grpc_poll_function = dummy_poll;
109
+ grpc_poll_function = phony_poll;
110
110
 
111
111
  return ret;
112
112
  }
@@ -58,7 +58,9 @@ static grpc_millis timespan_to_millis_round_down(gpr_timespec ts) {
58
58
  double x = GPR_MS_PER_SEC * static_cast<double>(ts.tv_sec) +
59
59
  static_cast<double>(ts.tv_nsec) / GPR_NS_PER_MS;
60
60
  if (x < 0) return 0;
61
- if (x > GRPC_MILLIS_INF_FUTURE) return GRPC_MILLIS_INF_FUTURE;
61
+ if (x > static_cast<double>(GRPC_MILLIS_INF_FUTURE)) {
62
+ return GRPC_MILLIS_INF_FUTURE;
63
+ }
62
64
  return static_cast<grpc_millis>(x);
63
65
  }
64
66
 
@@ -72,7 +74,9 @@ static grpc_millis timespan_to_millis_round_up(gpr_timespec ts) {
72
74
  static_cast<double>(GPR_NS_PER_SEC - 1) /
73
75
  static_cast<double>(GPR_NS_PER_SEC);
74
76
  if (x < 0) return 0;
75
- if (x > GRPC_MILLIS_INF_FUTURE) return GRPC_MILLIS_INF_FUTURE;
77
+ if (x > static_cast<double>(GRPC_MILLIS_INF_FUTURE)) {
78
+ return GRPC_MILLIS_INF_FUTURE;
79
+ }
76
80
  return static_cast<grpc_millis>(x);
77
81
  }
78
82
 
@@ -25,7 +25,6 @@
25
25
  #include "src/core/lib/debug/trace.h"
26
26
  #include "src/core/lib/iomgr/ev_posix.h"
27
27
  #include "src/core/lib/iomgr/iomgr_internal.h"
28
- #include "src/core/lib/iomgr/iomgr_posix.h"
29
28
  #include "src/core/lib/iomgr/resolve_address.h"
30
29
  #include "src/core/lib/iomgr/tcp_client.h"
31
30
  #include "src/core/lib/iomgr/tcp_posix.h"
@@ -40,7 +40,6 @@
40
40
  #include "src/core/lib/iomgr/ev_apple.h"
41
41
  #include "src/core/lib/iomgr/ev_posix.h"
42
42
  #include "src/core/lib/iomgr/iomgr_internal.h"
43
- #include "src/core/lib/iomgr/iomgr_posix.h"
44
43
  #include "src/core/lib/iomgr/resolve_address.h"
45
44
  #include "src/core/lib/iomgr/tcp_client.h"
46
45
  #include "src/core/lib/iomgr/tcp_posix.h"
@@ -132,7 +132,7 @@ struct grpc_resource_quota {
132
132
  scaled to the range [0..RESOURCE_USAGE_ESTIMATION_MAX] */
133
133
  gpr_atm memory_usage_estimation;
134
134
 
135
- /* Master combiner lock: all activity on a quota executes under this combiner
135
+ /* Main combiner lock: all activity on a quota executes under this combiner
136
136
  * (so no mutex is needed for this data structure) */
137
137
  grpc_core::Combiner* combiner;
138
138
  /* Size of the resource quota */
@@ -183,7 +183,7 @@ std::string grpc_sockaddr_to_string(const grpc_resolved_address* resolved_addr,
183
183
  if (ip != nullptr && grpc_inet_ntop(addr->sa_family, ip, ntop_buf,
184
184
  sizeof(ntop_buf)) != nullptr) {
185
185
  if (sin6_scope_id != 0) {
186
- // Enclose sin6_scope_id with the format defined in RFC 6784 section 2.
186
+ // Enclose sin6_scope_id with the format defined in RFC 6874 section 2.
187
187
  std::string host_with_scope =
188
188
  absl::StrFormat("%s%%25%" PRIu32, ntop_buf, sin6_scope_id);
189
189
  out = grpc_core::JoinHostPort(host_with_scope, port);
@@ -215,6 +215,25 @@ void grpc_string_to_sockaddr(grpc_resolved_address* out, const char* addr,
215
215
  grpc_sockaddr_set_port(out, port);
216
216
  }
217
217
 
218
+ grpc_error* grpc_string_to_sockaddr_new(grpc_resolved_address* out,
219
+ const char* addr, int port) {
220
+ memset(out, 0, sizeof(grpc_resolved_address));
221
+ grpc_sockaddr_in6* addr6 = reinterpret_cast<grpc_sockaddr_in6*>(out->addr);
222
+ grpc_sockaddr_in* addr4 = reinterpret_cast<grpc_sockaddr_in*>(out->addr);
223
+ if (grpc_inet_pton(GRPC_AF_INET6, addr, &addr6->sin6_addr) == 1) {
224
+ addr6->sin6_family = GRPC_AF_INET6;
225
+ out->len = sizeof(grpc_sockaddr_in6);
226
+ } else if (grpc_inet_pton(GRPC_AF_INET, addr, &addr4->sin_addr) == 1) {
227
+ addr4->sin_family = GRPC_AF_INET;
228
+ out->len = sizeof(grpc_sockaddr_in);
229
+ } else {
230
+ return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
231
+ absl::StrCat("Failed to parse address:", addr).c_str());
232
+ }
233
+ grpc_sockaddr_set_port(out, port);
234
+ return GRPC_ERROR_NONE;
235
+ }
236
+
218
237
  std::string grpc_sockaddr_to_uri(const grpc_resolved_address* resolved_addr) {
219
238
  if (resolved_addr->len == 0) return "";
220
239
  grpc_resolved_address addr_normalized;
@@ -294,3 +313,104 @@ int grpc_sockaddr_set_port(grpc_resolved_address* resolved_addr, int port) {
294
313
  return 0;
295
314
  }
296
315
  }
316
+
317
+ std::string grpc_sockaddr_get_packed_host(
318
+ const grpc_resolved_address* resolved_addr) {
319
+ const grpc_sockaddr* addr =
320
+ reinterpret_cast<const grpc_sockaddr*>(resolved_addr->addr);
321
+ if (addr->sa_family == GRPC_AF_INET) {
322
+ const grpc_sockaddr_in* addr4 =
323
+ reinterpret_cast<const grpc_sockaddr_in*>(addr);
324
+ const char* addr_bytes = reinterpret_cast<const char*>(&addr4->sin_addr);
325
+ return std::string(addr_bytes, 4);
326
+ } else if (addr->sa_family == GRPC_AF_INET6) {
327
+ const grpc_sockaddr_in6* addr6 =
328
+ reinterpret_cast<const grpc_sockaddr_in6*>(addr);
329
+ const char* addr_bytes = reinterpret_cast<const char*>(&addr6->sin6_addr);
330
+ return std::string(addr_bytes, 16);
331
+ } else {
332
+ GPR_ASSERT(false);
333
+ }
334
+ }
335
+
336
+ void grpc_sockaddr_mask_bits(grpc_resolved_address* address,
337
+ uint32_t mask_bits) {
338
+ grpc_sockaddr* addr = reinterpret_cast<grpc_sockaddr*>(address->addr);
339
+ if (addr->sa_family == GRPC_AF_INET) {
340
+ grpc_sockaddr_in* addr4 = reinterpret_cast<grpc_sockaddr_in*>(addr);
341
+ if (mask_bits == 0) {
342
+ memset(&addr4->sin_addr, 0, sizeof(addr4->sin_addr));
343
+ return;
344
+ } else if (mask_bits >= 32) {
345
+ return;
346
+ }
347
+ uint32_t mask_ip_addr = (~(uint32_t(0))) << (32 - mask_bits);
348
+ addr4->sin_addr.s_addr &= grpc_htonl(mask_ip_addr);
349
+ } else if (addr->sa_family == GRPC_AF_INET6) {
350
+ grpc_sockaddr_in6* addr6 = reinterpret_cast<grpc_sockaddr_in6*>(addr);
351
+ if (mask_bits == 0) {
352
+ memset(&addr6->sin6_addr, 0, sizeof(addr6->sin6_addr));
353
+ return;
354
+ } else if (mask_bits >= 128) {
355
+ return;
356
+ }
357
+ // We cannot use s6_addr32 since it is not defined on all platforms that we
358
+ // need it on.
359
+ uint32_t address_parts[4];
360
+ GPR_ASSERT(sizeof(addr6->sin6_addr) == sizeof(address_parts));
361
+ memcpy(address_parts, &addr6->sin6_addr, sizeof(grpc_in6_addr));
362
+ if (mask_bits <= 32) {
363
+ uint32_t mask_ip_addr = (~(uint32_t(0))) << (32 - mask_bits);
364
+ address_parts[0] &= grpc_htonl(mask_ip_addr);
365
+ memset(&address_parts[1], 0, sizeof(uint32_t));
366
+ memset(&address_parts[2], 0, sizeof(uint32_t));
367
+ memset(&address_parts[3], 0, sizeof(uint32_t));
368
+ } else if (mask_bits <= 64) {
369
+ mask_bits -= 32;
370
+ uint32_t mask_ip_addr = (~(uint32_t(0))) << (32 - mask_bits);
371
+ address_parts[1] &= grpc_htonl(mask_ip_addr);
372
+ memset(&address_parts[2], 0, sizeof(uint32_t));
373
+ memset(&address_parts[3], 0, sizeof(uint32_t));
374
+ } else if (mask_bits <= 96) {
375
+ mask_bits -= 64;
376
+ uint32_t mask_ip_addr = (~(uint32_t(0))) << (32 - mask_bits);
377
+ address_parts[2] &= grpc_htonl(mask_ip_addr);
378
+ memset(&address_parts[3], 0, sizeof(uint32_t));
379
+ } else {
380
+ mask_bits -= 96;
381
+ uint32_t mask_ip_addr = (~(uint32_t(0))) << (32 - mask_bits);
382
+ address_parts[3] &= grpc_htonl(mask_ip_addr);
383
+ }
384
+ memcpy(&addr6->sin6_addr, address_parts, sizeof(grpc_in6_addr));
385
+ }
386
+ }
387
+
388
+ bool grpc_sockaddr_match_subnet(const grpc_resolved_address* address,
389
+ const grpc_resolved_address* subnet_address,
390
+ uint32_t mask_bits) {
391
+ auto* addr = reinterpret_cast<const grpc_sockaddr*>(address->addr);
392
+ auto* subnet_addr =
393
+ reinterpret_cast<const grpc_sockaddr*>(subnet_address->addr);
394
+ if (addr->sa_family != subnet_addr->sa_family) return false;
395
+ grpc_resolved_address masked_address;
396
+ memcpy(&masked_address, address, sizeof(grpc_resolved_address));
397
+ addr = reinterpret_cast<grpc_sockaddr*>((&masked_address)->addr);
398
+ grpc_sockaddr_mask_bits(&masked_address, mask_bits);
399
+ if (addr->sa_family == GRPC_AF_INET) {
400
+ auto* addr4 = reinterpret_cast<const grpc_sockaddr_in*>(addr);
401
+ auto* subnet_addr4 = reinterpret_cast<const grpc_sockaddr_in*>(subnet_addr);
402
+ if (memcmp(&addr4->sin_addr, &subnet_addr4->sin_addr,
403
+ sizeof(addr4->sin_addr)) == 0) {
404
+ return true;
405
+ }
406
+ } else if (addr->sa_family == GRPC_AF_INET6) {
407
+ auto* addr6 = reinterpret_cast<const grpc_sockaddr_in6*>(addr);
408
+ auto* subnet_addr6 =
409
+ reinterpret_cast<const grpc_sockaddr_in6*>(subnet_addr);
410
+ if (memcmp(&addr6->sin6_addr, &subnet_addr6->sin6_addr,
411
+ sizeof(addr6->sin6_addr)) == 0) {
412
+ return true;
413
+ }
414
+ }
415
+ return false;
416
+ }
@@ -66,9 +66,16 @@ int grpc_sockaddr_set_port(grpc_resolved_address* addr, int port);
66
66
  std::string grpc_sockaddr_to_string(const grpc_resolved_address* addr,
67
67
  bool normalize);
68
68
 
69
+ // TODO(yashykt): Remove this function and replace usages with
70
+ // `grpc_string_to_sockaddr_new`
69
71
  void grpc_string_to_sockaddr(grpc_resolved_address* out, const char* addr,
70
72
  int port);
71
73
 
74
+ // Newer form of grpc_string_to_sockaddr which returns an error instead of
75
+ // crashing if \a addr is not IPv6/IPv6
76
+ grpc_error* grpc_string_to_sockaddr_new(grpc_resolved_address* out,
77
+ const char* addr, int port);
78
+
72
79
  /* Returns the URI string corresponding to \a addr */
73
80
  std::string grpc_sockaddr_to_uri(const grpc_resolved_address* addr);
74
81
 
@@ -77,4 +84,22 @@ const char* grpc_sockaddr_get_uri_scheme(const grpc_resolved_address* addr);
77
84
 
78
85
  int grpc_sockaddr_get_family(const grpc_resolved_address* resolved_addr);
79
86
 
87
+ std::string grpc_sockaddr_get_packed_host(
88
+ const grpc_resolved_address* resolved_addr);
89
+
90
+ // Applies a mask of \a mask_bits to IPv4/IPv6 addresses. Has no effect if the
91
+ // address type is not IPv4/IPv6.
92
+ void grpc_sockaddr_mask_bits(grpc_resolved_address* address,
93
+ uint32_t mask_bits);
94
+
95
+ // If \a address is IPv4/IPv6, checks if the IP address falls in the CIDR
96
+ // specified by \a subnet_address and \a mask_bits.
97
+ // Returns false if \a address is not an IPv4/IPv6 address. The ports (if set)
98
+ // are ignored for matching purposes. Note that, \a subnet_address should be
99
+ // normalized, i.e., `grpc_sockaddr_mask_bits` should have been called on it if
100
+ // necessary.
101
+ bool grpc_sockaddr_match_subnet(const grpc_resolved_address* address,
102
+ const grpc_resolved_address* subnet_address,
103
+ uint32_t mask_bits);
104
+
80
105
  #endif /* GRPC_CORE_LIB_IOMGR_SOCKADDR_UTILS_H */
@@ -62,6 +62,7 @@ grpc_error* grpc_set_socket_zerocopy(int fd) {
62
62
  }
63
63
  return GRPC_ERROR_NONE;
64
64
  #else
65
+ (void)fd;
65
66
  return GRPC_OS_ERROR(ENOSYS, "setsockopt(SO_ZEROCOPY)");
66
67
  #endif
67
68
  }
@@ -38,7 +38,7 @@
38
38
  #include "src/core/lib/channel/channel_args.h"
39
39
  #include "src/core/lib/gpr/string.h"
40
40
  #include "src/core/lib/iomgr/ev_posix.h"
41
- #include "src/core/lib/iomgr/iomgr_posix.h"
41
+ #include "src/core/lib/iomgr/iomgr_internal.h"
42
42
  #include "src/core/lib/iomgr/sockaddr.h"
43
43
  #include "src/core/lib/iomgr/sockaddr_utils.h"
44
44
  #include "src/core/lib/iomgr/socket_mutator.h"
@@ -1241,11 +1241,11 @@ static void tcp_handle_error(void* arg /* grpc_tcp */, grpc_error* error) {
1241
1241
 
1242
1242
  #else /* GRPC_LINUX_ERRQUEUE */
1243
1243
  static TcpZerocopySendRecord* tcp_get_send_zerocopy_record(
1244
- grpc_tcp* tcp, grpc_slice_buffer* buf) {
1244
+ grpc_tcp* /*tcp*/, grpc_slice_buffer* /*buf*/) {
1245
1245
  return nullptr;
1246
1246
  }
1247
1247
 
1248
- static void ZerocopyDisableAndWaitForRemaining(grpc_tcp* tcp) {}
1248
+ static void ZerocopyDisableAndWaitForRemaining(grpc_tcp* /*tcp*/) {}
1249
1249
 
1250
1250
  static bool tcp_write_with_timestamps(grpc_tcp* /*tcp*/, struct msghdr* /*msg*/,
1251
1251
  size_t /*sending_length*/,
@@ -1391,8 +1391,8 @@ static bool do_tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
1391
1391
 
1392
1392
  static void UnrefMaybePutZerocopySendRecord(grpc_tcp* tcp,
1393
1393
  TcpZerocopySendRecord* record,
1394
- uint32_t seq,
1395
- const char* /* tag */) {
1394
+ uint32_t /*seq*/,
1395
+ const char* /*tag*/) {
1396
1396
  if (record->Unref()) {
1397
1397
  tcp->tcp_zerocopy_send_ctx.PutSendRecord(record);
1398
1398
  }
@@ -1673,10 +1673,7 @@ static bool tcp_can_track_err(grpc_endpoint* ep) {
1673
1673
  if (getsockname(tcp->fd, &addr, &len) < 0) {
1674
1674
  return false;
1675
1675
  }
1676
- if (addr.sa_family == AF_INET || addr.sa_family == AF_INET6) {
1677
- return true;
1678
- }
1679
- return false;
1676
+ return addr.sa_family == AF_INET || addr.sa_family == AF_INET6;
1680
1677
  }
1681
1678
 
1682
1679
  static const grpc_endpoint_vtable vtable = {tcp_read,