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
@@ -21,31 +21,67 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include <stddef.h>
25
+
26
+ #include <map>
27
+ #include <string>
28
+ #include <vector>
29
+
30
+ #include "absl/status/statusor.h"
24
31
  #include "absl/strings/string_view.h"
25
32
 
26
- #include <stddef.h>
33
+ namespace grpc_core {
27
34
 
28
- struct grpc_uri {
29
- char* scheme;
30
- char* authority;
31
- char* path;
32
- char* query;
33
- /** Query substrings separated by '&' */
34
- char** query_parts;
35
- /** Number of elements in \a query_parts and \a query_parts_values */
36
- size_t num_query_parts;
37
- /** Split each query part by '='. NULL if not present. */
38
- char** query_parts_values;
39
- char* fragment;
40
- };
41
- /** parse a uri, return NULL on failure */
42
- grpc_uri* grpc_uri_parse(absl::string_view uri_text, bool suppress_errors);
35
+ class URI {
36
+ public:
37
+ struct QueryParam {
38
+ std::string key;
39
+ std::string value;
40
+ bool operator==(const QueryParam& other) const {
41
+ return key == other.key && value == other.value;
42
+ }
43
+ };
44
+
45
+ // Creates an instance of GrpcURI by parsing an rfc3986 URI string. Returns
46
+ // an IllegalArgumentError on failure.
47
+ static absl::StatusOr<URI> Parse(absl::string_view uri_text);
48
+ // Explicit construction by individual URI components
49
+ URI(std::string scheme, std::string authority, std::string path,
50
+ std::vector<QueryParam> query_parameter_pairs, std::string fragment_);
51
+ URI() = default;
52
+ // Copy construction and assignment
53
+ URI(const URI& other);
54
+ URI& operator=(const URI& other);
55
+ // Move construction and assignment
56
+ URI(URI&&) = default;
57
+ URI& operator=(URI&&) = default;
43
58
 
44
- /** return the part of a query string after the '=' in "?key=xxx&...", or NULL
45
- * if key is not present */
46
- const char* grpc_uri_get_query_arg(const grpc_uri* uri, const char* key);
59
+ const std::string& scheme() const { return scheme_; }
60
+ const std::string& authority() const { return authority_; }
61
+ const std::string& path() const { return path_; }
62
+ // Stores the *last* value appearing for each repeated key in the query
63
+ // string. If you need to capture repeated query parameters, use
64
+ // `query_parameter_pairs`.
65
+ const std::map<absl::string_view, absl::string_view>& query_parameter_map()
66
+ const {
67
+ return query_parameter_map_;
68
+ }
69
+ // A vector of key:value query parameter pairs, kept in order of appearance
70
+ // within the URI search string. Repeated keys are represented as separate
71
+ // key:value elements.
72
+ const std::vector<QueryParam>& query_parameter_pairs() const {
73
+ return query_parameter_pairs_;
74
+ }
75
+ const std::string& fragment() const { return fragment_; }
47
76
 
48
- /** destroy a uri */
49
- void grpc_uri_destroy(grpc_uri* uri);
77
+ private:
78
+ std::string scheme_;
79
+ std::string authority_;
80
+ std::string path_;
81
+ std::map<absl::string_view, absl::string_view> query_parameter_map_;
82
+ std::vector<QueryParam> query_parameter_pairs_;
83
+ std::string fragment_;
84
+ };
85
+ } // namespace grpc_core
50
86
 
51
87
  #endif /* GRPC_CORE_LIB_URI_URI_PARSER_H */
@@ -68,12 +68,16 @@ void XdsClientGlobalShutdown();
68
68
  } // namespace grpc_core
69
69
  void grpc_certificate_provider_registry_init(void);
70
70
  void grpc_certificate_provider_registry_shutdown(void);
71
+ namespace grpc_core {
72
+ void FileWatcherCertificateProviderInit();
73
+ void FileWatcherCertificateProviderShutdown();
74
+ } // namespace grpc_core
71
75
  void grpc_lb_policy_cds_init(void);
72
76
  void grpc_lb_policy_cds_shutdown(void);
73
- void grpc_lb_policy_eds_init(void);
74
- void grpc_lb_policy_eds_shutdown(void);
75
77
  void grpc_lb_policy_xds_cluster_impl_init(void);
76
78
  void grpc_lb_policy_xds_cluster_impl_shutdown(void);
79
+ void grpc_lb_policy_xds_cluster_resolver_init(void);
80
+ void grpc_lb_policy_xds_cluster_resolver_shutdown(void);
77
81
  void grpc_lb_policy_xds_cluster_manager_init(void);
78
82
  void grpc_lb_policy_xds_cluster_manager_shutdown(void);
79
83
  void grpc_resolver_xds_init(void);
@@ -126,12 +130,14 @@ void grpc_register_built_in_plugins(void) {
126
130
  grpc_core::XdsClientGlobalShutdown);
127
131
  grpc_register_plugin(grpc_certificate_provider_registry_init,
128
132
  grpc_certificate_provider_registry_shutdown);
133
+ grpc_register_plugin(grpc_core::FileWatcherCertificateProviderInit,
134
+ grpc_core::FileWatcherCertificateProviderShutdown);
129
135
  grpc_register_plugin(grpc_lb_policy_cds_init,
130
136
  grpc_lb_policy_cds_shutdown);
131
- grpc_register_plugin(grpc_lb_policy_eds_init,
132
- grpc_lb_policy_eds_shutdown);
133
137
  grpc_register_plugin(grpc_lb_policy_xds_cluster_impl_init,
134
138
  grpc_lb_policy_xds_cluster_impl_shutdown);
139
+ grpc_register_plugin(grpc_lb_policy_xds_cluster_resolver_init,
140
+ grpc_lb_policy_xds_cluster_resolver_shutdown);
135
141
  grpc_register_plugin(grpc_lb_policy_xds_cluster_manager_init,
136
142
  grpc_lb_policy_xds_cluster_manager_shutdown);
137
143
  grpc_register_plugin(grpc_resolver_xds_init,
@@ -43,8 +43,9 @@ grpc_status_code gsec_aead_crypter_encrypt(
43
43
  char** error_details) {
44
44
  if (crypter != nullptr && crypter->vtable != nullptr &&
45
45
  crypter->vtable->encrypt_iovec != nullptr) {
46
- struct iovec aad_vec = {(void*)aad, aad_length};
47
- struct iovec plaintext_vec = {(void*)plaintext, plaintext_length};
46
+ struct iovec aad_vec = {const_cast<uint8_t*>(aad), aad_length};
47
+ struct iovec plaintext_vec = {const_cast<uint8_t*>(plaintext),
48
+ plaintext_length};
48
49
  struct iovec ciphertext_vec = {ciphertext_and_tag,
49
50
  ciphertext_and_tag_length};
50
51
  return crypter->vtable->encrypt_iovec(
@@ -81,8 +82,8 @@ grpc_status_code gsec_aead_crypter_decrypt(
81
82
  size_t plaintext_length, size_t* bytes_written, char** error_details) {
82
83
  if (crypter != nullptr && crypter->vtable != nullptr &&
83
84
  crypter->vtable->decrypt_iovec != nullptr) {
84
- struct iovec aad_vec = {(void*)aad, aad_length};
85
- struct iovec ciphertext_vec = {(void*)ciphertext_and_tag,
85
+ struct iovec aad_vec = {const_cast<uint8_t*>(aad), aad_length};
86
+ struct iovec ciphertext_vec = {const_cast<uint8_t*>(ciphertext_and_tag),
86
87
  ciphertext_and_tag_length};
87
88
  struct iovec plaintext_vec = {plaintext, plaintext_length};
88
89
  return crypter->vtable->decrypt_iovec(
@@ -31,16 +31,18 @@
31
31
 
32
32
  /* Use little endian to interpret a string of bytes as uint32_t. */
33
33
  static uint32_t load_32_le(const unsigned char* buffer) {
34
- return (((uint32_t)buffer[3]) << 24) | (((uint32_t)buffer[2]) << 16) |
35
- (((uint32_t)buffer[1]) << 8) | ((uint32_t)buffer[0]);
34
+ return (static_cast<uint32_t>(buffer[3]) << 24) |
35
+ (static_cast<uint32_t>(buffer[2]) << 16) |
36
+ (static_cast<uint32_t>(buffer[1]) << 8) |
37
+ static_cast<uint32_t>(buffer[0]);
36
38
  }
37
39
 
38
40
  /* Store uint32_t as a string of little endian bytes. */
39
41
  static void store_32_le(uint32_t value, unsigned char* buffer) {
40
- buffer[3] = (unsigned char)(value >> 24) & 0xFF;
41
- buffer[2] = (unsigned char)(value >> 16) & 0xFF;
42
- buffer[1] = (unsigned char)(value >> 8) & 0xFF;
43
- buffer[0] = (unsigned char)(value)&0xFF;
42
+ buffer[3] = static_cast<unsigned char>(value >> 24) & 0xFF;
43
+ buffer[2] = static_cast<unsigned char>(value >> 16) & 0xFF;
44
+ buffer[1] = static_cast<unsigned char>(value >> 8) & 0xFF;
45
+ buffer[0] = static_cast<unsigned char>(value) & 0xFF;
44
46
  }
45
47
 
46
48
  /* Frame writer implementation. */
@@ -279,7 +279,7 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
279
279
  if (code != GRPC_STATUS_OK) {
280
280
  upb_strview details = grpc_gcp_HandshakerStatus_details(resp_status);
281
281
  if (details.size > 0) {
282
- char* error_details = (char*)gpr_zalloc(details.size + 1);
282
+ char* error_details = static_cast<char*>(gpr_zalloc(details.size + 1));
283
283
  memcpy(error_details, details.data, details.size);
284
284
  gpr_log(GPR_ERROR, "Error from handshaker service:%s", error_details);
285
285
  gpr_free(error_details);
@@ -253,8 +253,8 @@ static const tsi_handshaker_result_vtable result_vtable = {
253
253
 
254
254
  tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
255
255
  bool is_client,
256
- tsi_handshaker_result** self) {
257
- if (self == nullptr || resp == nullptr) {
256
+ tsi_handshaker_result** result) {
257
+ if (result == nullptr || resp == nullptr) {
258
258
  gpr_log(GPR_ERROR, "Invalid arguments to create_handshaker_result()");
259
259
  return TSI_INVALID_ARGUMENT;
260
260
  }
@@ -305,19 +305,19 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
305
305
  grpc_gcp_Identity_service_account(local_identity);
306
306
  // We don't check if local service account is empty here
307
307
  // because local identity could be empty in certain situations.
308
- alts_tsi_handshaker_result* result =
309
- static_cast<alts_tsi_handshaker_result*>(gpr_zalloc(sizeof(*result)));
310
- result->key_data =
308
+ alts_tsi_handshaker_result* sresult =
309
+ static_cast<alts_tsi_handshaker_result*>(gpr_zalloc(sizeof(*sresult)));
310
+ sresult->key_data =
311
311
  static_cast<char*>(gpr_zalloc(kAltsAes128GcmRekeyKeyLength));
312
- memcpy(result->key_data, key_data.data, kAltsAes128GcmRekeyKeyLength);
313
- result->peer_identity =
312
+ memcpy(sresult->key_data, key_data.data, kAltsAes128GcmRekeyKeyLength);
313
+ sresult->peer_identity =
314
314
  static_cast<char*>(gpr_zalloc(peer_service_account.size + 1));
315
- memcpy(result->peer_identity, peer_service_account.data,
315
+ memcpy(sresult->peer_identity, peer_service_account.data,
316
316
  peer_service_account.size);
317
- result->max_frame_size = grpc_gcp_HandshakerResult_max_frame_size(hresult);
317
+ sresult->max_frame_size = grpc_gcp_HandshakerResult_max_frame_size(hresult);
318
318
  upb::Arena rpc_versions_arena;
319
319
  bool serialized = grpc_gcp_rpc_protocol_versions_encode(
320
- peer_rpc_version, rpc_versions_arena.ptr(), &result->rpc_versions);
320
+ peer_rpc_version, rpc_versions_arena.ptr(), &sresult->rpc_versions);
321
321
  if (!serialized) {
322
322
  gpr_log(GPR_ERROR, "Failed to serialize peer's RPC protocol versions.");
323
323
  return TSI_FAILED_PRECONDITION;
@@ -363,11 +363,11 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
363
363
  gpr_log(GPR_ERROR, "Failed to serialize peer's ALTS context.");
364
364
  return TSI_FAILED_PRECONDITION;
365
365
  }
366
- result->serialized_context =
366
+ sresult->serialized_context =
367
367
  grpc_slice_from_copied_buffer(serialized_ctx, serialized_ctx_length);
368
- result->is_client = is_client;
369
- result->base.vtable = &result_vtable;
370
- *self = &result->base;
368
+ sresult->is_client = is_client;
369
+ sresult->base.vtable = &result_vtable;
370
+ *result = &sresult->base;
371
371
  return TSI_OK;
372
372
  }
373
373
 
@@ -652,21 +652,21 @@ tsi_result alts_tsi_handshaker_create(
652
652
  return TSI_OK;
653
653
  }
654
654
 
655
- void alts_tsi_handshaker_result_set_unused_bytes(tsi_handshaker_result* self,
655
+ void alts_tsi_handshaker_result_set_unused_bytes(tsi_handshaker_result* result,
656
656
  grpc_slice* recv_bytes,
657
657
  size_t bytes_consumed) {
658
- GPR_ASSERT(recv_bytes != nullptr && self != nullptr);
658
+ GPR_ASSERT(recv_bytes != nullptr && result != nullptr);
659
659
  if (GRPC_SLICE_LENGTH(*recv_bytes) == bytes_consumed) {
660
660
  return;
661
661
  }
662
- alts_tsi_handshaker_result* result =
663
- reinterpret_cast<alts_tsi_handshaker_result*>(self);
664
- result->unused_bytes_size = GRPC_SLICE_LENGTH(*recv_bytes) - bytes_consumed;
665
- result->unused_bytes =
666
- static_cast<unsigned char*>(gpr_zalloc(result->unused_bytes_size));
667
- memcpy(result->unused_bytes,
662
+ alts_tsi_handshaker_result* sresult =
663
+ reinterpret_cast<alts_tsi_handshaker_result*>(result);
664
+ sresult->unused_bytes_size = GRPC_SLICE_LENGTH(*recv_bytes) - bytes_consumed;
665
+ sresult->unused_bytes =
666
+ static_cast<unsigned char*>(gpr_zalloc(sresult->unused_bytes_size));
667
+ memcpy(sresult->unused_bytes,
668
668
  GRPC_SLICE_START_PTR(*recv_bytes) + bytes_consumed,
669
- result->unused_bytes_size);
669
+ sresult->unused_bytes_size);
670
670
  }
671
671
 
672
672
  namespace grpc_core {
@@ -56,16 +56,18 @@ static void maybe_append_error_msg(const char* appendix, char** dst) {
56
56
 
57
57
  /* Use little endian to interpret a string of bytes as uint32_t. */
58
58
  static uint32_t load_32_le(const unsigned char* buffer) {
59
- return (((uint32_t)buffer[3]) << 24) | (((uint32_t)buffer[2]) << 16) |
60
- (((uint32_t)buffer[1]) << 8) | ((uint32_t)buffer[0]);
59
+ return (static_cast<uint32_t>(buffer[3]) << 24) |
60
+ (static_cast<uint32_t>(buffer[2]) << 16) |
61
+ (static_cast<uint32_t>(buffer[1]) << 8) |
62
+ static_cast<uint32_t>(buffer[0]);
61
63
  }
62
64
 
63
65
  /* Store uint32_t as a string of little endian bytes. */
64
66
  static void store_32_le(uint32_t value, unsigned char* buffer) {
65
- buffer[3] = (unsigned char)(value >> 24) & 0xFF;
66
- buffer[2] = (unsigned char)(value >> 16) & 0xFF;
67
- buffer[1] = (unsigned char)(value >> 8) & 0xFF;
68
- buffer[0] = (unsigned char)(value)&0xFF;
67
+ buffer[3] = static_cast<unsigned char>(value >> 24) & 0xFF;
68
+ buffer[2] = static_cast<unsigned char>(value >> 16) & 0xFF;
69
+ buffer[1] = static_cast<unsigned char>(value >> 8) & 0xFF;
70
+ buffer[0] = static_cast<unsigned char>(value) & 0xFF;
69
71
  }
70
72
 
71
73
  /* Ensures header and tag iovec have sufficient length. */
@@ -87,10 +87,10 @@ static bool read_frame_size(const grpc_slice_buffer* sb,
87
87
  }
88
88
  GPR_ASSERT(remaining == 0);
89
89
  /* Gets little-endian frame size. */
90
- uint32_t frame_size = (((uint32_t)frame_size_buffer[3]) << 24) |
91
- (((uint32_t)frame_size_buffer[2]) << 16) |
92
- (((uint32_t)frame_size_buffer[1]) << 8) |
93
- ((uint32_t)frame_size_buffer[0]);
90
+ uint32_t frame_size = (static_cast<uint32_t>(frame_size_buffer[3]) << 24) |
91
+ (static_cast<uint32_t>(frame_size_buffer[2]) << 16) |
92
+ (static_cast<uint32_t>(frame_size_buffer[1]) << 8) |
93
+ static_cast<uint32_t>(frame_size_buffer[0]);
94
94
  if (frame_size > kMaxFrameLength) {
95
95
  gpr_log(GPR_ERROR, "Frame size is larger than maximum frame size");
96
96
  return false;
@@ -524,7 +524,8 @@ static tsi_result fake_handshaker_result_create_frame_protector(
524
524
  static tsi_result fake_handshaker_result_get_unused_bytes(
525
525
  const tsi_handshaker_result* self, const unsigned char** bytes,
526
526
  size_t* bytes_size) {
527
- fake_handshaker_result* result = (fake_handshaker_result*)self;
527
+ fake_handshaker_result* result = reinterpret_cast<fake_handshaker_result*>(
528
+ const_cast<tsi_handshaker_result*>(self));
528
529
  *bytes_size = result->unused_bytes_size;
529
530
  *bytes = result->unused_bytes;
530
531
  return TSI_OK;
@@ -581,8 +582,9 @@ static tsi_result fake_handshaker_get_bytes_to_send_to_peer(
581
582
  static_cast<tsi_fake_handshake_message>(impl->next_message_to_send + 2);
582
583
  const char* msg_string =
583
584
  tsi_fake_handshake_message_to_string(impl->next_message_to_send);
584
- result = tsi_fake_frame_set_data((unsigned char*)msg_string,
585
- strlen(msg_string), &impl->outgoing_frame);
585
+ result = tsi_fake_frame_set_data(
586
+ reinterpret_cast<unsigned char*>(const_cast<char*>(msg_string)),
587
+ strlen(msg_string), &impl->outgoing_frame);
586
588
  if (result != TSI_OK) return result;
587
589
  if (next_message_to_send > TSI_FAKE_HANDSHAKE_MESSAGE_MAX) {
588
590
  next_message_to_send = TSI_FAKE_HANDSHAKE_MESSAGE_MAX;
@@ -32,7 +32,7 @@ namespace {
32
32
 
33
33
  class BoringSslCachedSession : public SslCachedSession {
34
34
  public:
35
- BoringSslCachedSession(SslSessionPtr session)
35
+ explicit BoringSslCachedSession(SslSessionPtr session)
36
36
  : session_(std::move(session)) {}
37
37
 
38
38
  SslSessionPtr CopySession() const override {
@@ -141,7 +141,7 @@ struct tsi_ssl_frame_protector {
141
141
  static gpr_once g_init_openssl_once = GPR_ONCE_INIT;
142
142
  static int g_ssl_ctx_ex_factory_index = -1;
143
143
  static const unsigned char kSslSessionIdContext[] = {'g', 'r', 'p', 'c'};
144
- #ifndef OPENSSL_IS_BORINGSSL
144
+ #if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
145
145
  static const char kSslEnginePrefix[] = "engine:";
146
146
  #endif
147
147
 
@@ -340,8 +340,7 @@ static tsi_result add_pem_certificate(X509* cert, tsi_peer_property* property) {
340
340
  return TSI_INTERNAL_ERROR;
341
341
  }
342
342
  tsi_result result = tsi_construct_string_peer_property(
343
- TSI_X509_PEM_CERT_PROPERTY, (const char*)contents,
344
- static_cast<size_t>(len), property);
343
+ TSI_X509_PEM_CERT_PROPERTY, contents, static_cast<size_t>(len), property);
345
344
  BIO_free(bio);
346
345
  return result;
347
346
  }
@@ -554,12 +553,12 @@ static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
554
553
  X509* certificate = nullptr;
555
554
  BIO* pem;
556
555
  GPR_ASSERT(pem_cert_chain_size <= INT_MAX);
557
- pem = BIO_new_mem_buf((void*)pem_cert_chain,
558
- static_cast<int>(pem_cert_chain_size));
556
+ pem = BIO_new_mem_buf(pem_cert_chain, static_cast<int>(pem_cert_chain_size));
559
557
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
560
558
 
561
559
  do {
562
- certificate = PEM_read_bio_X509_AUX(pem, nullptr, nullptr, (void*)"");
560
+ certificate =
561
+ PEM_read_bio_X509_AUX(pem, nullptr, nullptr, const_cast<char*>(""));
563
562
  if (certificate == nullptr) {
564
563
  result = TSI_INVALID_ARGUMENT;
565
564
  break;
@@ -570,7 +569,7 @@ static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
570
569
  }
571
570
  while (true) {
572
571
  X509* certificate_authority =
573
- PEM_read_bio_X509(pem, nullptr, nullptr, (void*)"");
572
+ PEM_read_bio_X509(pem, nullptr, nullptr, const_cast<char*>(""));
574
573
  if (certificate_authority == nullptr) {
575
574
  ERR_clear_error();
576
575
  break; /* Done reading. */
@@ -592,7 +591,7 @@ static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
592
591
  return result;
593
592
  }
594
593
 
595
- #ifndef OPENSSL_IS_BORINGSSL
594
+ #if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
596
595
  static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
597
596
  const char* pem_key,
598
597
  size_t pem_key_size) {
@@ -665,7 +664,7 @@ static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
665
664
  if (engine_name != nullptr) gpr_free(engine_name);
666
665
  return result;
667
666
  }
668
- #endif /* OPENSSL_IS_BORINGSSL */
667
+ #endif /* !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE) */
669
668
 
670
669
  static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
671
670
  const char* pem_key,
@@ -674,10 +673,11 @@ static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
674
673
  EVP_PKEY* private_key = nullptr;
675
674
  BIO* pem;
676
675
  GPR_ASSERT(pem_key_size <= INT_MAX);
677
- pem = BIO_new_mem_buf((void*)pem_key, static_cast<int>(pem_key_size));
676
+ pem = BIO_new_mem_buf(pem_key, static_cast<int>(pem_key_size));
678
677
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
679
678
  do {
680
- private_key = PEM_read_bio_PrivateKey(pem, nullptr, nullptr, (void*)"");
679
+ private_key =
680
+ PEM_read_bio_PrivateKey(pem, nullptr, nullptr, const_cast<char*>(""));
681
681
  if (private_key == nullptr) {
682
682
  result = TSI_INVALID_ARGUMENT;
683
683
  break;
@@ -696,11 +696,11 @@ static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
696
696
  static tsi_result ssl_ctx_use_private_key(SSL_CTX* context, const char* pem_key,
697
697
  size_t pem_key_size) {
698
698
  // BoringSSL does not have ENGINE support
699
- #ifndef OPENSSL_IS_BORINGSSL
699
+ #if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
700
700
  if (strncmp(pem_key, kSslEnginePrefix, strlen(kSslEnginePrefix)) == 0) {
701
701
  return ssl_ctx_use_engine_private_key(context, pem_key, pem_key_size);
702
702
  } else
703
- #endif /* OPENSSL_IS_BORINGSSL */
703
+ #endif /* !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE) */
704
704
  {
705
705
  return ssl_ctx_use_pem_private_key(context, pem_key, pem_key_size);
706
706
  }
@@ -718,7 +718,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
718
718
  X509_NAME* root_name = nullptr;
719
719
  BIO* pem;
720
720
  GPR_ASSERT(pem_roots_size <= INT_MAX);
721
- pem = BIO_new_mem_buf((void*)pem_roots, static_cast<int>(pem_roots_size));
721
+ pem = BIO_new_mem_buf(pem_roots, static_cast<int>(pem_roots_size));
722
722
  if (cert_store == nullptr) return TSI_INVALID_ARGUMENT;
723
723
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
724
724
  if (root_names != nullptr) {
@@ -727,7 +727,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
727
727
  }
728
728
 
729
729
  while (true) {
730
- root = PEM_read_bio_X509_AUX(pem, nullptr, nullptr, (void*)"");
730
+ root = PEM_read_bio_X509_AUX(pem, nullptr, nullptr, const_cast<char*>(""));
731
731
  if (root == nullptr) {
732
732
  ERR_clear_error();
733
733
  break; /* We're at the end of stream. */
@@ -837,10 +837,10 @@ tsi_result tsi_ssl_extract_x509_subject_names_from_pem_cert(
837
837
  tsi_result result = TSI_OK;
838
838
  X509* cert = nullptr;
839
839
  BIO* pem;
840
- pem = BIO_new_mem_buf((void*)pem_cert, static_cast<int>(strlen(pem_cert)));
840
+ pem = BIO_new_mem_buf(pem_cert, static_cast<int>(strlen(pem_cert)));
841
841
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
842
842
 
843
- cert = PEM_read_bio_X509(pem, nullptr, nullptr, (void*)"");
843
+ cert = PEM_read_bio_X509(pem, nullptr, nullptr, const_cast<char*>(""));
844
844
  if (cert == nullptr) {
845
845
  gpr_log(GPR_ERROR, "Invalid certificate");
846
846
  result = TSI_INVALID_ARGUMENT;
@@ -910,12 +910,18 @@ static tsi_result tsi_set_min_and_max_tls_versions(
910
910
  return TSI_INVALID_ARGUMENT;
911
911
  }
912
912
  #if OPENSSL_VERSION_NUMBER >= 0x10100000
913
- // Set the min TLS version of the SSL context.
913
+ // Set the min TLS version of the SSL context if using OpenSSL version
914
+ // >= 1.1.0. This OpenSSL version is required because the
915
+ // |SSL_CTX_set_min_proto_version| and |SSL_CTX_set_max_proto_version| APIs
916
+ // only exist in this version range.
914
917
  switch (min_tls_version) {
915
918
  case tsi_tls_version::TSI_TLS1_2:
916
919
  SSL_CTX_set_min_proto_version(ssl_context, TLS1_2_VERSION);
917
920
  break;
918
921
  #if defined(TLS1_3_VERSION)
922
+ // If the library does not support TLS 1.3 and the caller requests a minimum
923
+ // of TLS 1.3, then return an error because the caller's request cannot be
924
+ // satisfied.
919
925
  case tsi_tls_version::TSI_TLS1_3:
920
926
  SSL_CTX_set_min_proto_version(ssl_context, TLS1_3_VERSION);
921
927
  break;
@@ -924,16 +930,21 @@ static tsi_result tsi_set_min_and_max_tls_versions(
924
930
  gpr_log(GPR_INFO, "TLS version is not supported.");
925
931
  return TSI_FAILED_PRECONDITION;
926
932
  }
933
+
927
934
  // Set the max TLS version of the SSL context.
928
935
  switch (max_tls_version) {
929
936
  case tsi_tls_version::TSI_TLS1_2:
930
937
  SSL_CTX_set_max_proto_version(ssl_context, TLS1_2_VERSION);
931
938
  break;
932
- #if defined(TLS1_3_VERSION)
933
939
  case tsi_tls_version::TSI_TLS1_3:
940
+ #if defined(TLS1_3_VERSION)
934
941
  SSL_CTX_set_max_proto_version(ssl_context, TLS1_3_VERSION);
935
- break;
942
+ #else
943
+ // If the library does not support TLS 1.3, then set the max TLS version
944
+ // to TLS 1.2 instead.
945
+ SSL_CTX_set_max_proto_version(ssl_context, TLS1_2_VERSION);
936
946
  #endif
947
+ break;
937
948
  default:
938
949
  gpr_log(GPR_INFO, "TLS version is not supported.");
939
950
  return TSI_FAILED_PRECONDITION;
@@ -1150,11 +1161,11 @@ static const tsi_frame_protector_vtable frame_protector_vtable = {
1150
1161
  /* --- tsi_server_handshaker_factory methods implementation. --- */
1151
1162
 
1152
1163
  static void tsi_ssl_handshaker_factory_destroy(
1153
- tsi_ssl_handshaker_factory* self) {
1154
- if (self == nullptr) return;
1164
+ tsi_ssl_handshaker_factory* factory) {
1165
+ if (factory == nullptr) return;
1155
1166
 
1156
- if (self->vtable != nullptr && self->vtable->destroy != nullptr) {
1157
- self->vtable->destroy(self);
1167
+ if (factory->vtable != nullptr && factory->vtable->destroy != nullptr) {
1168
+ factory->vtable->destroy(factory);
1158
1169
  }
1159
1170
  /* Note, we don't free(self) here because this object is always directly
1160
1171
  * embedded in another object. If tsi_ssl_handshaker_factory_init allocates
@@ -1162,17 +1173,18 @@ static void tsi_ssl_handshaker_factory_destroy(
1162
1173
  }
1163
1174
 
1164
1175
  static tsi_ssl_handshaker_factory* tsi_ssl_handshaker_factory_ref(
1165
- tsi_ssl_handshaker_factory* self) {
1166
- if (self == nullptr) return nullptr;
1167
- gpr_refn(&self->refcount, 1);
1168
- return self;
1176
+ tsi_ssl_handshaker_factory* factory) {
1177
+ if (factory == nullptr) return nullptr;
1178
+ gpr_refn(&factory->refcount, 1);
1179
+ return factory;
1169
1180
  }
1170
1181
 
1171
- static void tsi_ssl_handshaker_factory_unref(tsi_ssl_handshaker_factory* self) {
1172
- if (self == nullptr) return;
1182
+ static void tsi_ssl_handshaker_factory_unref(
1183
+ tsi_ssl_handshaker_factory* factory) {
1184
+ if (factory == nullptr) return;
1173
1185
 
1174
- if (gpr_unref(&self->refcount)) {
1175
- tsi_ssl_handshaker_factory_destroy(self);
1186
+ if (gpr_unref(&factory->refcount)) {
1187
+ tsi_ssl_handshaker_factory_destroy(factory);
1176
1188
  }
1177
1189
  }
1178
1190
 
@@ -1206,8 +1218,8 @@ tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
1206
1218
  return TSI_INTERNAL_ERROR;
1207
1219
  }
1208
1220
  tsi_result result = tsi_construct_string_peer_property(
1209
- TSI_X509_PEM_CERT_CHAIN_PROPERTY, (const char*)contents,
1210
- static_cast<size_t>(len), property);
1221
+ TSI_X509_PEM_CERT_CHAIN_PROPERTY, contents, static_cast<size_t>(len),
1222
+ property);
1211
1223
  BIO_free(bio);
1212
1224
  return result;
1213
1225
  }
@@ -1682,16 +1694,17 @@ static int select_protocol_list(const unsigned char** out,
1682
1694
  /* --- tsi_ssl_client_handshaker_factory methods implementation. --- */
1683
1695
 
1684
1696
  tsi_result tsi_ssl_client_handshaker_factory_create_handshaker(
1685
- tsi_ssl_client_handshaker_factory* self, const char* server_name_indication,
1686
- tsi_handshaker** handshaker) {
1687
- return create_tsi_ssl_handshaker(self->ssl_context, 1, server_name_indication,
1688
- &self->base, handshaker);
1697
+ tsi_ssl_client_handshaker_factory* factory,
1698
+ const char* server_name_indication, tsi_handshaker** handshaker) {
1699
+ return create_tsi_ssl_handshaker(factory->ssl_context, 1,
1700
+ server_name_indication, &factory->base,
1701
+ handshaker);
1689
1702
  }
1690
1703
 
1691
1704
  void tsi_ssl_client_handshaker_factory_unref(
1692
- tsi_ssl_client_handshaker_factory* self) {
1693
- if (self == nullptr) return;
1694
- tsi_ssl_handshaker_factory_unref(&self->base);
1705
+ tsi_ssl_client_handshaker_factory* factory) {
1706
+ if (factory == nullptr) return;
1707
+ tsi_ssl_handshaker_factory_unref(&factory->base);
1695
1708
  }
1696
1709
 
1697
1710
  static void tsi_ssl_client_handshaker_factory_destroy(
@@ -1710,7 +1723,7 @@ static int client_handshaker_factory_npn_callback(
1710
1723
  const unsigned char* in, unsigned int inlen, void* arg) {
1711
1724
  tsi_ssl_client_handshaker_factory* factory =
1712
1725
  static_cast<tsi_ssl_client_handshaker_factory*>(arg);
1713
- return select_protocol_list((const unsigned char**)out, outlen,
1726
+ return select_protocol_list(const_cast<const unsigned char**>(out), outlen,
1714
1727
  factory->alpn_protocol_list,
1715
1728
  factory->alpn_protocol_list_length, in, inlen);
1716
1729
  }
@@ -1718,18 +1731,18 @@ static int client_handshaker_factory_npn_callback(
1718
1731
  /* --- tsi_ssl_server_handshaker_factory methods implementation. --- */
1719
1732
 
1720
1733
  tsi_result tsi_ssl_server_handshaker_factory_create_handshaker(
1721
- tsi_ssl_server_handshaker_factory* self, tsi_handshaker** handshaker) {
1722
- if (self->ssl_context_count == 0) return TSI_INVALID_ARGUMENT;
1734
+ tsi_ssl_server_handshaker_factory* factory, tsi_handshaker** handshaker) {
1735
+ if (factory->ssl_context_count == 0) return TSI_INVALID_ARGUMENT;
1723
1736
  /* Create the handshaker with the first context. We will switch if needed
1724
1737
  because of SNI in ssl_server_handshaker_factory_servername_callback. */
1725
- return create_tsi_ssl_handshaker(self->ssl_contexts[0], 0, nullptr,
1726
- &self->base, handshaker);
1738
+ return create_tsi_ssl_handshaker(factory->ssl_contexts[0], 0, nullptr,
1739
+ &factory->base, handshaker);
1727
1740
  }
1728
1741
 
1729
1742
  void tsi_ssl_server_handshaker_factory_unref(
1730
- tsi_ssl_server_handshaker_factory* self) {
1731
- if (self == nullptr) return;
1732
- tsi_ssl_handshaker_factory_unref(&self->base);
1743
+ tsi_ssl_server_handshaker_factory* factory) {
1744
+ if (factory == nullptr) return;
1745
+ tsi_ssl_handshaker_factory_unref(&factory->base);
1733
1746
  }
1734
1747
 
1735
1748
  static void tsi_ssl_server_handshaker_factory_destroy(