grpc 1.18.0 → 1.19.0

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 (147) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +301 -33
  3. data/include/grpc/grpc_security.h +195 -0
  4. data/include/grpc/impl/codegen/grpc_types.h +17 -1
  5. data/include/grpc/impl/codegen/port_platform.h +40 -0
  6. data/include/grpc/impl/codegen/slice.h +1 -1
  7. data/src/core/ext/filters/client_channel/channel_connectivity.cc +2 -0
  8. data/src/core/ext/filters/client_channel/client_channel.cc +74 -69
  9. data/src/core/ext/filters/client_channel/client_channel.h +2 -2
  10. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +5 -6
  11. data/src/core/ext/filters/client_channel/client_channel_channelz.h +5 -4
  12. data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -2
  13. data/src/core/ext/filters/client_channel/client_channel_factory.h +4 -4
  14. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -3
  15. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +176 -0
  16. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +68 -0
  17. data/src/core/ext/filters/client_channel/health/health_check_client.cc +10 -8
  18. data/src/core/ext/filters/client_channel/health/health_check_client.h +1 -1
  19. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +146 -156
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +28 -30
  21. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -8
  22. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +5 -8
  23. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +23 -24
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +80 -15
  25. data/src/core/ext/filters/client_channel/lb_policy.cc +30 -1
  26. data/src/core/ext/filters/client_channel/lb_policy.h +29 -1
  27. data/src/core/ext/filters/client_channel/lb_policy_factory.h +6 -1
  28. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +2 -2
  29. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  30. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +96 -0
  31. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +56 -0
  32. data/src/core/ext/filters/client_channel/parse_address.cc +24 -5
  33. data/src/core/ext/filters/client_channel/request_routing.cc +13 -3
  34. data/src/core/ext/filters/client_channel/request_routing.h +5 -1
  35. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +11 -6
  36. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +9 -6
  37. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +2 -2
  38. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -35
  39. data/src/core/ext/filters/client_channel/subchannel.cc +698 -791
  40. data/src/core/ext/filters/client_channel/subchannel.h +213 -123
  41. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +97 -0
  42. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +94 -0
  43. data/src/core/ext/filters/http/client_authority_filter.cc +5 -2
  44. data/src/core/ext/filters/max_age/max_age_filter.cc +1 -1
  45. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +13 -12
  46. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +5 -7
  47. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +19 -27
  48. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +18 -19
  49. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +27 -6
  50. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -1
  51. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +3 -2
  52. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
  53. data/src/core/ext/transport/chttp2/transport/writing.cc +8 -5
  54. data/src/core/lib/channel/handshaker.cc +141 -214
  55. data/src/core/lib/channel/handshaker.h +110 -101
  56. data/src/core/lib/channel/handshaker_factory.h +11 -19
  57. data/src/core/lib/channel/handshaker_registry.cc +64 -52
  58. data/src/core/lib/channel/handshaker_registry.h +21 -16
  59. data/src/core/lib/gpr/log_posix.cc +2 -1
  60. data/src/core/lib/gpr/time.cc +8 -0
  61. data/src/core/lib/gpr/time_posix.cc +8 -2
  62. data/src/core/lib/gprpp/optional.h +47 -0
  63. data/src/core/lib/http/httpcli_security_connector.cc +13 -14
  64. data/src/core/lib/iomgr/buffer_list.cc +182 -24
  65. data/src/core/lib/iomgr/buffer_list.h +70 -8
  66. data/src/core/lib/iomgr/combiner.cc +11 -3
  67. data/src/core/lib/iomgr/error.cc +9 -5
  68. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -0
  69. data/src/core/lib/iomgr/ev_epollex_linux.cc +136 -162
  70. data/src/core/lib/iomgr/ev_poll_posix.cc +3 -0
  71. data/src/core/lib/iomgr/ev_posix.cc +4 -0
  72. data/src/core/lib/iomgr/ev_posix.h +4 -0
  73. data/src/core/lib/iomgr/exec_ctx.cc +1 -0
  74. data/src/core/lib/iomgr/exec_ctx.h +137 -8
  75. data/src/core/lib/iomgr/executor.cc +122 -87
  76. data/src/core/lib/iomgr/executor.h +53 -48
  77. data/src/core/lib/iomgr/fork_posix.cc +6 -4
  78. data/src/core/lib/iomgr/{network_status_tracker.cc → grpc_if_nametoindex.h} +8 -14
  79. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +42 -0
  80. data/src/core/lib/iomgr/{network_status_tracker.h → grpc_if_nametoindex_unsupported.cc} +15 -9
  81. data/src/core/lib/iomgr/internal_errqueue.h +105 -3
  82. data/src/core/lib/iomgr/iomgr.cc +6 -5
  83. data/src/core/lib/iomgr/iomgr.h +8 -0
  84. data/src/core/lib/iomgr/iomgr_custom.cc +6 -2
  85. data/src/core/lib/iomgr/iomgr_internal.cc +4 -0
  86. data/src/core/lib/iomgr/iomgr_internal.h +4 -0
  87. data/src/core/lib/iomgr/iomgr_posix.cc +10 -1
  88. data/src/core/lib/iomgr/iomgr_windows.cc +8 -1
  89. data/src/core/lib/iomgr/port.h +1 -0
  90. data/src/core/lib/iomgr/resolve_address_posix.cc +4 -3
  91. data/src/core/lib/iomgr/resolve_address_windows.cc +2 -1
  92. data/src/core/lib/iomgr/tcp_custom.cc +0 -4
  93. data/src/core/lib/iomgr/tcp_posix.cc +58 -44
  94. data/src/core/lib/iomgr/tcp_uv.cc +0 -1
  95. data/src/core/lib/iomgr/tcp_windows.cc +0 -4
  96. data/src/core/lib/iomgr/timer_manager.cc +8 -0
  97. data/src/core/lib/iomgr/udp_server.cc +6 -4
  98. data/src/core/lib/json/json.cc +1 -4
  99. data/src/core/lib/security/credentials/alts/alts_credentials.cc +1 -1
  100. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
  101. data/src/core/lib/security/credentials/composite/composite_credentials.h +4 -0
  102. data/src/core/lib/security/credentials/credentials.h +9 -1
  103. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +15 -2
  104. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +2 -0
  105. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  106. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -0
  107. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +3 -2
  108. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +2 -2
  109. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -0
  110. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +192 -0
  111. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +213 -0
  112. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -8
  113. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +6 -10
  114. data/src/core/lib/security/security_connector/local/local_security_connector.cc +10 -8
  115. data/src/core/lib/security/security_connector/security_connector.h +2 -2
  116. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -6
  117. data/src/core/lib/security/security_connector/ssl_utils.h +33 -0
  118. data/src/core/lib/security/transport/security_handshaker.cc +267 -300
  119. data/src/core/lib/security/transport/security_handshaker.h +11 -2
  120. data/src/core/lib/security/transport/server_auth_filter.cc +1 -0
  121. data/src/core/lib/surface/call.cc +5 -1
  122. data/src/core/lib/surface/channel_init.h +5 -0
  123. data/src/core/lib/surface/completion_queue.cc +4 -7
  124. data/src/core/lib/surface/init.cc +5 -3
  125. data/src/core/lib/surface/init_secure.cc +1 -1
  126. data/src/core/lib/surface/server.cc +19 -17
  127. data/src/core/lib/surface/version.cc +1 -1
  128. data/src/core/lib/transport/service_config.h +1 -0
  129. data/src/core/lib/transport/static_metadata.cc +279 -279
  130. data/src/core/lib/transport/transport.cc +5 -3
  131. data/src/core/tsi/ssl_transport_security.cc +10 -4
  132. data/src/ruby/ext/grpc/extconf.rb +12 -4
  133. data/src/ruby/ext/grpc/rb_call_credentials.c +8 -5
  134. data/src/ruby/ext/grpc/rb_channel.c +14 -10
  135. data/src/ruby/ext/grpc/rb_channel_credentials.c +8 -4
  136. data/src/ruby/ext/grpc/rb_compression_options.c +9 -7
  137. data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
  138. data/src/ruby/ext/grpc/rb_grpc.c +22 -23
  139. data/src/ruby/ext/grpc/rb_grpc.h +4 -2
  140. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +18 -0
  141. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +27 -0
  142. data/src/ruby/ext/grpc/rb_server.c +8 -4
  143. data/src/ruby/lib/grpc/version.rb +1 -1
  144. metadata +45 -38
  145. data/src/core/ext/filters/client_channel/subchannel_index.cc +0 -248
  146. data/src/core/ext/filters/client_channel/subchannel_index.h +0 -76
  147. data/src/core/lib/channel/handshaker_factory.cc +0 -42
data/Makefile CHANGED
@@ -438,8 +438,8 @@ Q = @
438
438
  endif
439
439
 
440
440
  CORE_VERSION = 7.0.0
441
- CPP_VERSION = 1.18.0
442
- CSHARP_VERSION = 1.18.0
441
+ CPP_VERSION = 1.19.0
442
+ CSHARP_VERSION = 1.19.0
443
443
 
444
444
  CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
445
445
  CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
@@ -986,6 +986,7 @@ chttp2_hpack_encoder_test: $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test
986
986
  chttp2_stream_map_test: $(BINDIR)/$(CONFIG)/chttp2_stream_map_test
987
987
  chttp2_varint_test: $(BINDIR)/$(CONFIG)/chttp2_varint_test
988
988
  client_fuzzer: $(BINDIR)/$(CONFIG)/client_fuzzer
989
+ close_fd_test: $(BINDIR)/$(CONFIG)/close_fd_test
989
990
  cmdline_test: $(BINDIR)/$(CONFIG)/cmdline_test
990
991
  combiner_test: $(BINDIR)/$(CONFIG)/combiner_test
991
992
  compression_test: $(BINDIR)/$(CONFIG)/compression_test
@@ -1076,11 +1077,13 @@ nanopb_fuzzer_serverlist_test: $(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test
1076
1077
  no_server_test: $(BINDIR)/$(CONFIG)/no_server_test
1077
1078
  num_external_connectivity_watchers_test: $(BINDIR)/$(CONFIG)/num_external_connectivity_watchers_test
1078
1079
  parse_address_test: $(BINDIR)/$(CONFIG)/parse_address_test
1080
+ parse_address_with_named_scope_id_test: $(BINDIR)/$(CONFIG)/parse_address_with_named_scope_id_test
1079
1081
  percent_decode_fuzzer: $(BINDIR)/$(CONFIG)/percent_decode_fuzzer
1080
1082
  percent_encode_fuzzer: $(BINDIR)/$(CONFIG)/percent_encode_fuzzer
1081
1083
  percent_encoding_test: $(BINDIR)/$(CONFIG)/percent_encoding_test
1082
- resolve_address_posix_test: $(BINDIR)/$(CONFIG)/resolve_address_posix_test
1084
+ resolve_address_using_ares_resolver_posix_test: $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_posix_test
1083
1085
  resolve_address_using_ares_resolver_test: $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test
1086
+ resolve_address_using_native_resolver_posix_test: $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_posix_test
1084
1087
  resolve_address_using_native_resolver_test: $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test
1085
1088
  resource_quota_test: $(BINDIR)/$(CONFIG)/resource_quota_test
1086
1089
  secure_channel_create_test: $(BINDIR)/$(CONFIG)/secure_channel_create_test
@@ -1134,6 +1137,7 @@ async_end2end_test: $(BINDIR)/$(CONFIG)/async_end2end_test
1134
1137
  auth_property_iterator_test: $(BINDIR)/$(CONFIG)/auth_property_iterator_test
1135
1138
  backoff_test: $(BINDIR)/$(CONFIG)/backoff_test
1136
1139
  bdp_estimator_test: $(BINDIR)/$(CONFIG)/bdp_estimator_test
1140
+ bm_alarm: $(BINDIR)/$(CONFIG)/bm_alarm
1137
1141
  bm_arena: $(BINDIR)/$(CONFIG)/bm_arena
1138
1142
  bm_byte_buffer: $(BINDIR)/$(CONFIG)/bm_byte_buffer
1139
1143
  bm_call_create: $(BINDIR)/$(CONFIG)/bm_call_create
@@ -1211,6 +1215,7 @@ metrics_client: $(BINDIR)/$(CONFIG)/metrics_client
1211
1215
  mock_test: $(BINDIR)/$(CONFIG)/mock_test
1212
1216
  nonblocking_test: $(BINDIR)/$(CONFIG)/nonblocking_test
1213
1217
  noop-benchmark: $(BINDIR)/$(CONFIG)/noop-benchmark
1218
+ optional_test: $(BINDIR)/$(CONFIG)/optional_test
1214
1219
  orphanable_test: $(BINDIR)/$(CONFIG)/orphanable_test
1215
1220
  proto_server_reflection_test: $(BINDIR)/$(CONFIG)/proto_server_reflection_test
1216
1221
  proto_utils_test: $(BINDIR)/$(CONFIG)/proto_utils_test
@@ -1245,6 +1250,7 @@ streaming_throughput_test: $(BINDIR)/$(CONFIG)/streaming_throughput_test
1245
1250
  stress_test: $(BINDIR)/$(CONFIG)/stress_test
1246
1251
  thread_manager_test: $(BINDIR)/$(CONFIG)/thread_manager_test
1247
1252
  thread_stress_test: $(BINDIR)/$(CONFIG)/thread_stress_test
1253
+ time_change_test: $(BINDIR)/$(CONFIG)/time_change_test
1248
1254
  transport_pid_controller_test: $(BINDIR)/$(CONFIG)/transport_pid_controller_test
1249
1255
  transport_security_common_api_test: $(BINDIR)/$(CONFIG)/transport_security_common_api_test
1250
1256
  writes_per_rpc_test: $(BINDIR)/$(CONFIG)/writes_per_rpc_test
@@ -1447,6 +1453,7 @@ buildtests_c: privatelibs_c \
1447
1453
  $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test \
1448
1454
  $(BINDIR)/$(CONFIG)/chttp2_stream_map_test \
1449
1455
  $(BINDIR)/$(CONFIG)/chttp2_varint_test \
1456
+ $(BINDIR)/$(CONFIG)/close_fd_test \
1450
1457
  $(BINDIR)/$(CONFIG)/cmdline_test \
1451
1458
  $(BINDIR)/$(CONFIG)/combiner_test \
1452
1459
  $(BINDIR)/$(CONFIG)/compression_test \
@@ -1527,9 +1534,11 @@ buildtests_c: privatelibs_c \
1527
1534
  $(BINDIR)/$(CONFIG)/no_server_test \
1528
1535
  $(BINDIR)/$(CONFIG)/num_external_connectivity_watchers_test \
1529
1536
  $(BINDIR)/$(CONFIG)/parse_address_test \
1537
+ $(BINDIR)/$(CONFIG)/parse_address_with_named_scope_id_test \
1530
1538
  $(BINDIR)/$(CONFIG)/percent_encoding_test \
1531
- $(BINDIR)/$(CONFIG)/resolve_address_posix_test \
1539
+ $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_posix_test \
1532
1540
  $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test \
1541
+ $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_posix_test \
1533
1542
  $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test \
1534
1543
  $(BINDIR)/$(CONFIG)/resource_quota_test \
1535
1544
  $(BINDIR)/$(CONFIG)/secure_channel_create_test \
@@ -1646,6 +1655,7 @@ buildtests_cxx: privatelibs_cxx \
1646
1655
  $(BINDIR)/$(CONFIG)/auth_property_iterator_test \
1647
1656
  $(BINDIR)/$(CONFIG)/backoff_test \
1648
1657
  $(BINDIR)/$(CONFIG)/bdp_estimator_test \
1658
+ $(BINDIR)/$(CONFIG)/bm_alarm \
1649
1659
  $(BINDIR)/$(CONFIG)/bm_arena \
1650
1660
  $(BINDIR)/$(CONFIG)/bm_byte_buffer \
1651
1661
  $(BINDIR)/$(CONFIG)/bm_call_create \
@@ -1716,6 +1726,7 @@ buildtests_cxx: privatelibs_cxx \
1716
1726
  $(BINDIR)/$(CONFIG)/mock_test \
1717
1727
  $(BINDIR)/$(CONFIG)/nonblocking_test \
1718
1728
  $(BINDIR)/$(CONFIG)/noop-benchmark \
1729
+ $(BINDIR)/$(CONFIG)/optional_test \
1719
1730
  $(BINDIR)/$(CONFIG)/orphanable_test \
1720
1731
  $(BINDIR)/$(CONFIG)/proto_server_reflection_test \
1721
1732
  $(BINDIR)/$(CONFIG)/proto_utils_test \
@@ -1750,6 +1761,7 @@ buildtests_cxx: privatelibs_cxx \
1750
1761
  $(BINDIR)/$(CONFIG)/stress_test \
1751
1762
  $(BINDIR)/$(CONFIG)/thread_manager_test \
1752
1763
  $(BINDIR)/$(CONFIG)/thread_stress_test \
1764
+ $(BINDIR)/$(CONFIG)/time_change_test \
1753
1765
  $(BINDIR)/$(CONFIG)/transport_pid_controller_test \
1754
1766
  $(BINDIR)/$(CONFIG)/transport_security_common_api_test \
1755
1767
  $(BINDIR)/$(CONFIG)/writes_per_rpc_test \
@@ -1832,6 +1844,7 @@ buildtests_cxx: privatelibs_cxx \
1832
1844
  $(BINDIR)/$(CONFIG)/auth_property_iterator_test \
1833
1845
  $(BINDIR)/$(CONFIG)/backoff_test \
1834
1846
  $(BINDIR)/$(CONFIG)/bdp_estimator_test \
1847
+ $(BINDIR)/$(CONFIG)/bm_alarm \
1835
1848
  $(BINDIR)/$(CONFIG)/bm_arena \
1836
1849
  $(BINDIR)/$(CONFIG)/bm_byte_buffer \
1837
1850
  $(BINDIR)/$(CONFIG)/bm_call_create \
@@ -1902,6 +1915,7 @@ buildtests_cxx: privatelibs_cxx \
1902
1915
  $(BINDIR)/$(CONFIG)/mock_test \
1903
1916
  $(BINDIR)/$(CONFIG)/nonblocking_test \
1904
1917
  $(BINDIR)/$(CONFIG)/noop-benchmark \
1918
+ $(BINDIR)/$(CONFIG)/optional_test \
1905
1919
  $(BINDIR)/$(CONFIG)/orphanable_test \
1906
1920
  $(BINDIR)/$(CONFIG)/proto_server_reflection_test \
1907
1921
  $(BINDIR)/$(CONFIG)/proto_utils_test \
@@ -1936,6 +1950,7 @@ buildtests_cxx: privatelibs_cxx \
1936
1950
  $(BINDIR)/$(CONFIG)/stress_test \
1937
1951
  $(BINDIR)/$(CONFIG)/thread_manager_test \
1938
1952
  $(BINDIR)/$(CONFIG)/thread_stress_test \
1953
+ $(BINDIR)/$(CONFIG)/time_change_test \
1939
1954
  $(BINDIR)/$(CONFIG)/transport_pid_controller_test \
1940
1955
  $(BINDIR)/$(CONFIG)/transport_security_common_api_test \
1941
1956
  $(BINDIR)/$(CONFIG)/writes_per_rpc_test \
@@ -1981,6 +1996,8 @@ test_c: buildtests_c
1981
1996
  $(Q) $(BINDIR)/$(CONFIG)/chttp2_stream_map_test || ( echo test chttp2_stream_map_test failed ; exit 1 )
1982
1997
  $(E) "[RUN] Testing chttp2_varint_test"
1983
1998
  $(Q) $(BINDIR)/$(CONFIG)/chttp2_varint_test || ( echo test chttp2_varint_test failed ; exit 1 )
1999
+ $(E) "[RUN] Testing close_fd_test"
2000
+ $(Q) $(BINDIR)/$(CONFIG)/close_fd_test || ( echo test close_fd_test failed ; exit 1 )
1984
2001
  $(E) "[RUN] Testing cmdline_test"
1985
2002
  $(Q) $(BINDIR)/$(CONFIG)/cmdline_test || ( echo test cmdline_test failed ; exit 1 )
1986
2003
  $(E) "[RUN] Testing combiner_test"
@@ -2129,12 +2146,16 @@ test_c: buildtests_c
2129
2146
  $(Q) $(BINDIR)/$(CONFIG)/num_external_connectivity_watchers_test || ( echo test num_external_connectivity_watchers_test failed ; exit 1 )
2130
2147
  $(E) "[RUN] Testing parse_address_test"
2131
2148
  $(Q) $(BINDIR)/$(CONFIG)/parse_address_test || ( echo test parse_address_test failed ; exit 1 )
2149
+ $(E) "[RUN] Testing parse_address_with_named_scope_id_test"
2150
+ $(Q) $(BINDIR)/$(CONFIG)/parse_address_with_named_scope_id_test || ( echo test parse_address_with_named_scope_id_test failed ; exit 1 )
2132
2151
  $(E) "[RUN] Testing percent_encoding_test"
2133
2152
  $(Q) $(BINDIR)/$(CONFIG)/percent_encoding_test || ( echo test percent_encoding_test failed ; exit 1 )
2134
- $(E) "[RUN] Testing resolve_address_posix_test"
2135
- $(Q) $(BINDIR)/$(CONFIG)/resolve_address_posix_test || ( echo test resolve_address_posix_test failed ; exit 1 )
2153
+ $(E) "[RUN] Testing resolve_address_using_ares_resolver_posix_test"
2154
+ $(Q) $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_posix_test || ( echo test resolve_address_using_ares_resolver_posix_test failed ; exit 1 )
2136
2155
  $(E) "[RUN] Testing resolve_address_using_ares_resolver_test"
2137
2156
  $(Q) $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test || ( echo test resolve_address_using_ares_resolver_test failed ; exit 1 )
2157
+ $(E) "[RUN] Testing resolve_address_using_native_resolver_posix_test"
2158
+ $(Q) $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_posix_test || ( echo test resolve_address_using_native_resolver_posix_test failed ; exit 1 )
2138
2159
  $(E) "[RUN] Testing resolve_address_using_native_resolver_test"
2139
2160
  $(Q) $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test || ( echo test resolve_address_using_native_resolver_test failed ; exit 1 )
2140
2161
  $(E) "[RUN] Testing resource_quota_test"
@@ -2267,6 +2288,8 @@ test_cxx: buildtests_cxx
2267
2288
  $(Q) $(BINDIR)/$(CONFIG)/backoff_test || ( echo test backoff_test failed ; exit 1 )
2268
2289
  $(E) "[RUN] Testing bdp_estimator_test"
2269
2290
  $(Q) $(BINDIR)/$(CONFIG)/bdp_estimator_test || ( echo test bdp_estimator_test failed ; exit 1 )
2291
+ $(E) "[RUN] Testing bm_alarm"
2292
+ $(Q) $(BINDIR)/$(CONFIG)/bm_alarm || ( echo test bm_alarm failed ; exit 1 )
2270
2293
  $(E) "[RUN] Testing bm_arena"
2271
2294
  $(Q) $(BINDIR)/$(CONFIG)/bm_arena || ( echo test bm_arena failed ; exit 1 )
2272
2295
  $(E) "[RUN] Testing bm_byte_buffer"
@@ -2391,6 +2414,8 @@ test_cxx: buildtests_cxx
2391
2414
  $(Q) $(BINDIR)/$(CONFIG)/nonblocking_test || ( echo test nonblocking_test failed ; exit 1 )
2392
2415
  $(E) "[RUN] Testing noop-benchmark"
2393
2416
  $(Q) $(BINDIR)/$(CONFIG)/noop-benchmark || ( echo test noop-benchmark failed ; exit 1 )
2417
+ $(E) "[RUN] Testing optional_test"
2418
+ $(Q) $(BINDIR)/$(CONFIG)/optional_test || ( echo test optional_test failed ; exit 1 )
2394
2419
  $(E) "[RUN] Testing orphanable_test"
2395
2420
  $(Q) $(BINDIR)/$(CONFIG)/orphanable_test || ( echo test orphanable_test failed ; exit 1 )
2396
2421
  $(E) "[RUN] Testing proto_server_reflection_test"
@@ -2445,6 +2470,8 @@ test_cxx: buildtests_cxx
2445
2470
  $(Q) $(BINDIR)/$(CONFIG)/thread_manager_test || ( echo test thread_manager_test failed ; exit 1 )
2446
2471
  $(E) "[RUN] Testing thread_stress_test"
2447
2472
  $(Q) $(BINDIR)/$(CONFIG)/thread_stress_test || ( echo test thread_stress_test failed ; exit 1 )
2473
+ $(E) "[RUN] Testing time_change_test"
2474
+ $(Q) $(BINDIR)/$(CONFIG)/time_change_test || ( echo test time_change_test failed ; exit 1 )
2448
2475
  $(E) "[RUN] Testing transport_pid_controller_test"
2449
2476
  $(Q) $(BINDIR)/$(CONFIG)/transport_pid_controller_test || ( echo test transport_pid_controller_test failed ; exit 1 )
2450
2477
  $(E) "[RUN] Testing transport_security_common_api_test"
@@ -3470,7 +3497,6 @@ LIBGRPC_SRC = \
3470
3497
  src/core/lib/channel/channelz_registry.cc \
3471
3498
  src/core/lib/channel/connected_channel.cc \
3472
3499
  src/core/lib/channel/handshaker.cc \
3473
- src/core/lib/channel/handshaker_factory.cc \
3474
3500
  src/core/lib/channel/handshaker_registry.cc \
3475
3501
  src/core/lib/channel/status_util.cc \
3476
3502
  src/core/lib/compression/compression.cc \
@@ -3504,6 +3530,8 @@ LIBGRPC_SRC = \
3504
3530
  src/core/lib/iomgr/gethostname_fallback.cc \
3505
3531
  src/core/lib/iomgr/gethostname_host_name_max.cc \
3506
3532
  src/core/lib/iomgr/gethostname_sysconf.cc \
3533
+ src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
3534
+ src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
3507
3535
  src/core/lib/iomgr/internal_errqueue.cc \
3508
3536
  src/core/lib/iomgr/iocp_windows.cc \
3509
3537
  src/core/lib/iomgr/iomgr.cc \
@@ -3515,7 +3543,6 @@ LIBGRPC_SRC = \
3515
3543
  src/core/lib/iomgr/is_epollexclusive_available.cc \
3516
3544
  src/core/lib/iomgr/load_file.cc \
3517
3545
  src/core/lib/iomgr/lockfree_event.cc \
3518
- src/core/lib/iomgr/network_status_tracker.cc \
3519
3546
  src/core/lib/iomgr/polling_entity.cc \
3520
3547
  src/core/lib/iomgr/pollset.cc \
3521
3548
  src/core/lib/iomgr/pollset_custom.cc \
@@ -3658,6 +3685,7 @@ LIBGRPC_SRC = \
3658
3685
  src/core/lib/security/credentials/oauth2/oauth2_credentials.cc \
3659
3686
  src/core/lib/security/credentials/plugin/plugin_credentials.cc \
3660
3687
  src/core/lib/security/credentials/ssl/ssl_credentials.cc \
3688
+ src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc \
3661
3689
  src/core/lib/security/security_connector/alts/alts_security_connector.cc \
3662
3690
  src/core/lib/security/security_connector/fake/fake_security_connector.cc \
3663
3691
  src/core/lib/security/security_connector/load_system_roots_fallback.cc \
@@ -3720,11 +3748,13 @@ LIBGRPC_SRC = \
3720
3748
  src/core/ext/filters/client_channel/client_channel_factory.cc \
3721
3749
  src/core/ext/filters/client_channel/client_channel_plugin.cc \
3722
3750
  src/core/ext/filters/client_channel/connector.cc \
3751
+ src/core/ext/filters/client_channel/global_subchannel_pool.cc \
3723
3752
  src/core/ext/filters/client_channel/health/health_check_client.cc \
3724
3753
  src/core/ext/filters/client_channel/http_connect_handshaker.cc \
3725
3754
  src/core/ext/filters/client_channel/http_proxy.cc \
3726
3755
  src/core/ext/filters/client_channel/lb_policy.cc \
3727
3756
  src/core/ext/filters/client_channel/lb_policy_registry.cc \
3757
+ src/core/ext/filters/client_channel/local_subchannel_pool.cc \
3728
3758
  src/core/ext/filters/client_channel/parse_address.cc \
3729
3759
  src/core/ext/filters/client_channel/proxy_mapper.cc \
3730
3760
  src/core/ext/filters/client_channel/proxy_mapper_registry.cc \
@@ -3735,7 +3765,7 @@ LIBGRPC_SRC = \
3735
3765
  src/core/ext/filters/client_channel/retry_throttle.cc \
3736
3766
  src/core/ext/filters/client_channel/server_address.cc \
3737
3767
  src/core/ext/filters/client_channel/subchannel.cc \
3738
- src/core/ext/filters/client_channel/subchannel_index.cc \
3768
+ src/core/ext/filters/client_channel/subchannel_pool_interface.cc \
3739
3769
  src/core/ext/filters/deadline/deadline_filter.cc \
3740
3770
  src/core/ext/filters/client_channel/health/health.pb.c \
3741
3771
  src/core/tsi/fake_transport_security.cc \
@@ -3886,7 +3916,6 @@ LIBGRPC_CRONET_SRC = \
3886
3916
  src/core/lib/channel/channelz_registry.cc \
3887
3917
  src/core/lib/channel/connected_channel.cc \
3888
3918
  src/core/lib/channel/handshaker.cc \
3889
- src/core/lib/channel/handshaker_factory.cc \
3890
3919
  src/core/lib/channel/handshaker_registry.cc \
3891
3920
  src/core/lib/channel/status_util.cc \
3892
3921
  src/core/lib/compression/compression.cc \
@@ -3920,6 +3949,8 @@ LIBGRPC_CRONET_SRC = \
3920
3949
  src/core/lib/iomgr/gethostname_fallback.cc \
3921
3950
  src/core/lib/iomgr/gethostname_host_name_max.cc \
3922
3951
  src/core/lib/iomgr/gethostname_sysconf.cc \
3952
+ src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
3953
+ src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
3923
3954
  src/core/lib/iomgr/internal_errqueue.cc \
3924
3955
  src/core/lib/iomgr/iocp_windows.cc \
3925
3956
  src/core/lib/iomgr/iomgr.cc \
@@ -3931,7 +3962,6 @@ LIBGRPC_CRONET_SRC = \
3931
3962
  src/core/lib/iomgr/is_epollexclusive_available.cc \
3932
3963
  src/core/lib/iomgr/load_file.cc \
3933
3964
  src/core/lib/iomgr/lockfree_event.cc \
3934
- src/core/lib/iomgr/network_status_tracker.cc \
3935
3965
  src/core/lib/iomgr/polling_entity.cc \
3936
3966
  src/core/lib/iomgr/pollset.cc \
3937
3967
  src/core/lib/iomgr/pollset_custom.cc \
@@ -4067,11 +4097,13 @@ LIBGRPC_CRONET_SRC = \
4067
4097
  src/core/ext/filters/client_channel/client_channel_factory.cc \
4068
4098
  src/core/ext/filters/client_channel/client_channel_plugin.cc \
4069
4099
  src/core/ext/filters/client_channel/connector.cc \
4100
+ src/core/ext/filters/client_channel/global_subchannel_pool.cc \
4070
4101
  src/core/ext/filters/client_channel/health/health_check_client.cc \
4071
4102
  src/core/ext/filters/client_channel/http_connect_handshaker.cc \
4072
4103
  src/core/ext/filters/client_channel/http_proxy.cc \
4073
4104
  src/core/ext/filters/client_channel/lb_policy.cc \
4074
4105
  src/core/ext/filters/client_channel/lb_policy_registry.cc \
4106
+ src/core/ext/filters/client_channel/local_subchannel_pool.cc \
4075
4107
  src/core/ext/filters/client_channel/parse_address.cc \
4076
4108
  src/core/ext/filters/client_channel/proxy_mapper.cc \
4077
4109
  src/core/ext/filters/client_channel/proxy_mapper_registry.cc \
@@ -4082,7 +4114,7 @@ LIBGRPC_CRONET_SRC = \
4082
4114
  src/core/ext/filters/client_channel/retry_throttle.cc \
4083
4115
  src/core/ext/filters/client_channel/server_address.cc \
4084
4116
  src/core/ext/filters/client_channel/subchannel.cc \
4085
- src/core/ext/filters/client_channel/subchannel_index.cc \
4117
+ src/core/ext/filters/client_channel/subchannel_pool_interface.cc \
4086
4118
  src/core/ext/filters/deadline/deadline_filter.cc \
4087
4119
  src/core/ext/filters/client_channel/health/health.pb.c \
4088
4120
  third_party/nanopb/pb_common.c \
@@ -4105,6 +4137,7 @@ LIBGRPC_CRONET_SRC = \
4105
4137
  src/core/lib/security/credentials/oauth2/oauth2_credentials.cc \
4106
4138
  src/core/lib/security/credentials/plugin/plugin_credentials.cc \
4107
4139
  src/core/lib/security/credentials/ssl/ssl_credentials.cc \
4140
+ src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc \
4108
4141
  src/core/lib/security/security_connector/alts/alts_security_connector.cc \
4109
4142
  src/core/lib/security/security_connector/fake/fake_security_connector.cc \
4110
4143
  src/core/lib/security/security_connector/load_system_roots_fallback.cc \
@@ -4272,6 +4305,7 @@ LIBGRPC_TEST_UTIL_SRC = \
4272
4305
  test/core/util/subprocess_posix.cc \
4273
4306
  test/core/util/subprocess_windows.cc \
4274
4307
  test/core/util/test_config.cc \
4308
+ test/core/util/test_lb_policies.cc \
4275
4309
  test/core/util/tracer_util.cc \
4276
4310
  test/core/util/trickle_endpoint.cc \
4277
4311
  test/core/util/cmdline.cc \
@@ -4285,7 +4319,6 @@ LIBGRPC_TEST_UTIL_SRC = \
4285
4319
  src/core/lib/channel/channelz_registry.cc \
4286
4320
  src/core/lib/channel/connected_channel.cc \
4287
4321
  src/core/lib/channel/handshaker.cc \
4288
- src/core/lib/channel/handshaker_factory.cc \
4289
4322
  src/core/lib/channel/handshaker_registry.cc \
4290
4323
  src/core/lib/channel/status_util.cc \
4291
4324
  src/core/lib/compression/compression.cc \
@@ -4319,6 +4352,8 @@ LIBGRPC_TEST_UTIL_SRC = \
4319
4352
  src/core/lib/iomgr/gethostname_fallback.cc \
4320
4353
  src/core/lib/iomgr/gethostname_host_name_max.cc \
4321
4354
  src/core/lib/iomgr/gethostname_sysconf.cc \
4355
+ src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
4356
+ src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
4322
4357
  src/core/lib/iomgr/internal_errqueue.cc \
4323
4358
  src/core/lib/iomgr/iocp_windows.cc \
4324
4359
  src/core/lib/iomgr/iomgr.cc \
@@ -4330,7 +4365,6 @@ LIBGRPC_TEST_UTIL_SRC = \
4330
4365
  src/core/lib/iomgr/is_epollexclusive_available.cc \
4331
4366
  src/core/lib/iomgr/load_file.cc \
4332
4367
  src/core/lib/iomgr/lockfree_event.cc \
4333
- src/core/lib/iomgr/network_status_tracker.cc \
4334
4368
  src/core/lib/iomgr/polling_entity.cc \
4335
4369
  src/core/lib/iomgr/pollset.cc \
4336
4370
  src/core/lib/iomgr/pollset_custom.cc \
@@ -4434,11 +4468,13 @@ LIBGRPC_TEST_UTIL_SRC = \
4434
4468
  src/core/ext/filters/client_channel/client_channel_factory.cc \
4435
4469
  src/core/ext/filters/client_channel/client_channel_plugin.cc \
4436
4470
  src/core/ext/filters/client_channel/connector.cc \
4471
+ src/core/ext/filters/client_channel/global_subchannel_pool.cc \
4437
4472
  src/core/ext/filters/client_channel/health/health_check_client.cc \
4438
4473
  src/core/ext/filters/client_channel/http_connect_handshaker.cc \
4439
4474
  src/core/ext/filters/client_channel/http_proxy.cc \
4440
4475
  src/core/ext/filters/client_channel/lb_policy.cc \
4441
4476
  src/core/ext/filters/client_channel/lb_policy_registry.cc \
4477
+ src/core/ext/filters/client_channel/local_subchannel_pool.cc \
4442
4478
  src/core/ext/filters/client_channel/parse_address.cc \
4443
4479
  src/core/ext/filters/client_channel/proxy_mapper.cc \
4444
4480
  src/core/ext/filters/client_channel/proxy_mapper_registry.cc \
@@ -4449,7 +4485,7 @@ LIBGRPC_TEST_UTIL_SRC = \
4449
4485
  src/core/ext/filters/client_channel/retry_throttle.cc \
4450
4486
  src/core/ext/filters/client_channel/server_address.cc \
4451
4487
  src/core/ext/filters/client_channel/subchannel.cc \
4452
- src/core/ext/filters/client_channel/subchannel_index.cc \
4488
+ src/core/ext/filters/client_channel/subchannel_pool_interface.cc \
4453
4489
  src/core/ext/filters/deadline/deadline_filter.cc \
4454
4490
  src/core/ext/filters/client_channel/health/health.pb.c \
4455
4491
  third_party/nanopb/pb_common.c \
@@ -4581,6 +4617,7 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
4581
4617
  test/core/util/subprocess_posix.cc \
4582
4618
  test/core/util/subprocess_windows.cc \
4583
4619
  test/core/util/test_config.cc \
4620
+ test/core/util/test_lb_policies.cc \
4584
4621
  test/core/util/tracer_util.cc \
4585
4622
  test/core/util/trickle_endpoint.cc \
4586
4623
  test/core/util/cmdline.cc \
@@ -4594,7 +4631,6 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
4594
4631
  src/core/lib/channel/channelz_registry.cc \
4595
4632
  src/core/lib/channel/connected_channel.cc \
4596
4633
  src/core/lib/channel/handshaker.cc \
4597
- src/core/lib/channel/handshaker_factory.cc \
4598
4634
  src/core/lib/channel/handshaker_registry.cc \
4599
4635
  src/core/lib/channel/status_util.cc \
4600
4636
  src/core/lib/compression/compression.cc \
@@ -4628,6 +4664,8 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
4628
4664
  src/core/lib/iomgr/gethostname_fallback.cc \
4629
4665
  src/core/lib/iomgr/gethostname_host_name_max.cc \
4630
4666
  src/core/lib/iomgr/gethostname_sysconf.cc \
4667
+ src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
4668
+ src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
4631
4669
  src/core/lib/iomgr/internal_errqueue.cc \
4632
4670
  src/core/lib/iomgr/iocp_windows.cc \
4633
4671
  src/core/lib/iomgr/iomgr.cc \
@@ -4639,7 +4677,6 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
4639
4677
  src/core/lib/iomgr/is_epollexclusive_available.cc \
4640
4678
  src/core/lib/iomgr/load_file.cc \
4641
4679
  src/core/lib/iomgr/lockfree_event.cc \
4642
- src/core/lib/iomgr/network_status_tracker.cc \
4643
4680
  src/core/lib/iomgr/polling_entity.cc \
4644
4681
  src/core/lib/iomgr/pollset.cc \
4645
4682
  src/core/lib/iomgr/pollset_custom.cc \
@@ -4743,11 +4780,13 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
4743
4780
  src/core/ext/filters/client_channel/client_channel_factory.cc \
4744
4781
  src/core/ext/filters/client_channel/client_channel_plugin.cc \
4745
4782
  src/core/ext/filters/client_channel/connector.cc \
4783
+ src/core/ext/filters/client_channel/global_subchannel_pool.cc \
4746
4784
  src/core/ext/filters/client_channel/health/health_check_client.cc \
4747
4785
  src/core/ext/filters/client_channel/http_connect_handshaker.cc \
4748
4786
  src/core/ext/filters/client_channel/http_proxy.cc \
4749
4787
  src/core/ext/filters/client_channel/lb_policy.cc \
4750
4788
  src/core/ext/filters/client_channel/lb_policy_registry.cc \
4789
+ src/core/ext/filters/client_channel/local_subchannel_pool.cc \
4751
4790
  src/core/ext/filters/client_channel/parse_address.cc \
4752
4791
  src/core/ext/filters/client_channel/proxy_mapper.cc \
4753
4792
  src/core/ext/filters/client_channel/proxy_mapper_registry.cc \
@@ -4758,7 +4797,7 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
4758
4797
  src/core/ext/filters/client_channel/retry_throttle.cc \
4759
4798
  src/core/ext/filters/client_channel/server_address.cc \
4760
4799
  src/core/ext/filters/client_channel/subchannel.cc \
4761
- src/core/ext/filters/client_channel/subchannel_index.cc \
4800
+ src/core/ext/filters/client_channel/subchannel_pool_interface.cc \
4762
4801
  src/core/ext/filters/deadline/deadline_filter.cc \
4763
4802
  src/core/ext/filters/client_channel/health/health.pb.c \
4764
4803
  third_party/nanopb/pb_common.c \
@@ -4867,7 +4906,6 @@ LIBGRPC_UNSECURE_SRC = \
4867
4906
  src/core/lib/channel/channelz_registry.cc \
4868
4907
  src/core/lib/channel/connected_channel.cc \
4869
4908
  src/core/lib/channel/handshaker.cc \
4870
- src/core/lib/channel/handshaker_factory.cc \
4871
4909
  src/core/lib/channel/handshaker_registry.cc \
4872
4910
  src/core/lib/channel/status_util.cc \
4873
4911
  src/core/lib/compression/compression.cc \
@@ -4901,6 +4939,8 @@ LIBGRPC_UNSECURE_SRC = \
4901
4939
  src/core/lib/iomgr/gethostname_fallback.cc \
4902
4940
  src/core/lib/iomgr/gethostname_host_name_max.cc \
4903
4941
  src/core/lib/iomgr/gethostname_sysconf.cc \
4942
+ src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
4943
+ src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
4904
4944
  src/core/lib/iomgr/internal_errqueue.cc \
4905
4945
  src/core/lib/iomgr/iocp_windows.cc \
4906
4946
  src/core/lib/iomgr/iomgr.cc \
@@ -4912,7 +4952,6 @@ LIBGRPC_UNSECURE_SRC = \
4912
4952
  src/core/lib/iomgr/is_epollexclusive_available.cc \
4913
4953
  src/core/lib/iomgr/load_file.cc \
4914
4954
  src/core/lib/iomgr/lockfree_event.cc \
4915
- src/core/lib/iomgr/network_status_tracker.cc \
4916
4955
  src/core/lib/iomgr/polling_entity.cc \
4917
4956
  src/core/lib/iomgr/pollset.cc \
4918
4957
  src/core/lib/iomgr/pollset_custom.cc \
@@ -5051,11 +5090,13 @@ LIBGRPC_UNSECURE_SRC = \
5051
5090
  src/core/ext/filters/client_channel/client_channel_factory.cc \
5052
5091
  src/core/ext/filters/client_channel/client_channel_plugin.cc \
5053
5092
  src/core/ext/filters/client_channel/connector.cc \
5093
+ src/core/ext/filters/client_channel/global_subchannel_pool.cc \
5054
5094
  src/core/ext/filters/client_channel/health/health_check_client.cc \
5055
5095
  src/core/ext/filters/client_channel/http_connect_handshaker.cc \
5056
5096
  src/core/ext/filters/client_channel/http_proxy.cc \
5057
5097
  src/core/ext/filters/client_channel/lb_policy.cc \
5058
5098
  src/core/ext/filters/client_channel/lb_policy_registry.cc \
5099
+ src/core/ext/filters/client_channel/local_subchannel_pool.cc \
5059
5100
  src/core/ext/filters/client_channel/parse_address.cc \
5060
5101
  src/core/ext/filters/client_channel/proxy_mapper.cc \
5061
5102
  src/core/ext/filters/client_channel/proxy_mapper_registry.cc \
@@ -5066,7 +5107,7 @@ LIBGRPC_UNSECURE_SRC = \
5066
5107
  src/core/ext/filters/client_channel/retry_throttle.cc \
5067
5108
  src/core/ext/filters/client_channel/server_address.cc \
5068
5109
  src/core/ext/filters/client_channel/subchannel.cc \
5069
- src/core/ext/filters/client_channel/subchannel_index.cc \
5110
+ src/core/ext/filters/client_channel/subchannel_pool_interface.cc \
5070
5111
  src/core/ext/filters/deadline/deadline_filter.cc \
5071
5112
  src/core/ext/filters/client_channel/health/health.pb.c \
5072
5113
  third_party/nanopb/pb_common.c \
@@ -5729,7 +5770,6 @@ LIBGRPC++_CRONET_SRC = \
5729
5770
  src/core/lib/channel/channelz_registry.cc \
5730
5771
  src/core/lib/channel/connected_channel.cc \
5731
5772
  src/core/lib/channel/handshaker.cc \
5732
- src/core/lib/channel/handshaker_factory.cc \
5733
5773
  src/core/lib/channel/handshaker_registry.cc \
5734
5774
  src/core/lib/channel/status_util.cc \
5735
5775
  src/core/lib/compression/compression.cc \
@@ -5763,6 +5803,8 @@ LIBGRPC++_CRONET_SRC = \
5763
5803
  src/core/lib/iomgr/gethostname_fallback.cc \
5764
5804
  src/core/lib/iomgr/gethostname_host_name_max.cc \
5765
5805
  src/core/lib/iomgr/gethostname_sysconf.cc \
5806
+ src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
5807
+ src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
5766
5808
  src/core/lib/iomgr/internal_errqueue.cc \
5767
5809
  src/core/lib/iomgr/iocp_windows.cc \
5768
5810
  src/core/lib/iomgr/iomgr.cc \
@@ -5774,7 +5816,6 @@ LIBGRPC++_CRONET_SRC = \
5774
5816
  src/core/lib/iomgr/is_epollexclusive_available.cc \
5775
5817
  src/core/lib/iomgr/load_file.cc \
5776
5818
  src/core/lib/iomgr/lockfree_event.cc \
5777
- src/core/lib/iomgr/network_status_tracker.cc \
5778
5819
  src/core/lib/iomgr/polling_entity.cc \
5779
5820
  src/core/lib/iomgr/pollset.cc \
5780
5821
  src/core/lib/iomgr/pollset_custom.cc \
@@ -5883,11 +5924,13 @@ LIBGRPC++_CRONET_SRC = \
5883
5924
  src/core/ext/filters/client_channel/client_channel_factory.cc \
5884
5925
  src/core/ext/filters/client_channel/client_channel_plugin.cc \
5885
5926
  src/core/ext/filters/client_channel/connector.cc \
5927
+ src/core/ext/filters/client_channel/global_subchannel_pool.cc \
5886
5928
  src/core/ext/filters/client_channel/health/health_check_client.cc \
5887
5929
  src/core/ext/filters/client_channel/http_connect_handshaker.cc \
5888
5930
  src/core/ext/filters/client_channel/http_proxy.cc \
5889
5931
  src/core/ext/filters/client_channel/lb_policy.cc \
5890
5932
  src/core/ext/filters/client_channel/lb_policy_registry.cc \
5933
+ src/core/ext/filters/client_channel/local_subchannel_pool.cc \
5891
5934
  src/core/ext/filters/client_channel/parse_address.cc \
5892
5935
  src/core/ext/filters/client_channel/proxy_mapper.cc \
5893
5936
  src/core/ext/filters/client_channel/proxy_mapper_registry.cc \
@@ -5898,7 +5941,7 @@ LIBGRPC++_CRONET_SRC = \
5898
5941
  src/core/ext/filters/client_channel/retry_throttle.cc \
5899
5942
  src/core/ext/filters/client_channel/server_address.cc \
5900
5943
  src/core/ext/filters/client_channel/subchannel.cc \
5901
- src/core/ext/filters/client_channel/subchannel_index.cc \
5944
+ src/core/ext/filters/client_channel/subchannel_pool_interface.cc \
5902
5945
  src/core/ext/filters/deadline/deadline_filter.cc \
5903
5946
  src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc \
5904
5947
  src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc \
@@ -10359,7 +10402,6 @@ LIBEND2END_TESTS_SRC = \
10359
10402
  test/core/end2end/tests/max_connection_idle.cc \
10360
10403
  test/core/end2end/tests/max_message_length.cc \
10361
10404
  test/core/end2end/tests/negative_deadline.cc \
10362
- test/core/end2end/tests/network_status_change.cc \
10363
10405
  test/core/end2end/tests/no_error_on_hotpath.cc \
10364
10406
  test/core/end2end/tests/no_logging.cc \
10365
10407
  test/core/end2end/tests/no_op.cc \
@@ -10476,7 +10518,6 @@ LIBEND2END_NOSEC_TESTS_SRC = \
10476
10518
  test/core/end2end/tests/max_connection_idle.cc \
10477
10519
  test/core/end2end/tests/max_message_length.cc \
10478
10520
  test/core/end2end/tests/negative_deadline.cc \
10479
- test/core/end2end/tests/network_status_change.cc \
10480
10521
  test/core/end2end/tests/no_error_on_hotpath.cc \
10481
10522
  test/core/end2end/tests/no_logging.cc \
10482
10523
  test/core/end2end/tests/no_op.cc \
@@ -11090,6 +11131,38 @@ endif
11090
11131
  endif
11091
11132
 
11092
11133
 
11134
+ CLOSE_FD_TEST_SRC = \
11135
+ test/core/bad_connection/close_fd_test.cc \
11136
+
11137
+ CLOSE_FD_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLOSE_FD_TEST_SRC))))
11138
+ ifeq ($(NO_SECURE),true)
11139
+
11140
+ # You can't build secure targets if you don't have OpenSSL.
11141
+
11142
+ $(BINDIR)/$(CONFIG)/close_fd_test: openssl_dep_error
11143
+
11144
+ else
11145
+
11146
+
11147
+
11148
+ $(BINDIR)/$(CONFIG)/close_fd_test: $(CLOSE_FD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
11149
+ $(E) "[LD] Linking $@"
11150
+ $(Q) mkdir -p `dirname $@`
11151
+ $(Q) $(LD) $(LDFLAGS) $(CLOSE_FD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/close_fd_test
11152
+
11153
+ endif
11154
+
11155
+ $(OBJDIR)/$(CONFIG)/test/core/bad_connection/close_fd_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
11156
+
11157
+ deps_close_fd_test: $(CLOSE_FD_TEST_OBJS:.o=.dep)
11158
+
11159
+ ifneq ($(NO_SECURE),true)
11160
+ ifneq ($(NO_DEPS),true)
11161
+ -include $(CLOSE_FD_TEST_OBJS:.o=.dep)
11162
+ endif
11163
+ endif
11164
+
11165
+
11093
11166
  CMDLINE_TEST_SRC = \
11094
11167
  test/core/util/cmdline_test.cc \
11095
11168
 
@@ -13988,6 +14061,38 @@ endif
13988
14061
  endif
13989
14062
 
13990
14063
 
14064
+ PARSE_ADDRESS_WITH_NAMED_SCOPE_ID_TEST_SRC = \
14065
+ test/core/client_channel/parse_address_with_named_scope_id_test.cc \
14066
+
14067
+ PARSE_ADDRESS_WITH_NAMED_SCOPE_ID_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PARSE_ADDRESS_WITH_NAMED_SCOPE_ID_TEST_SRC))))
14068
+ ifeq ($(NO_SECURE),true)
14069
+
14070
+ # You can't build secure targets if you don't have OpenSSL.
14071
+
14072
+ $(BINDIR)/$(CONFIG)/parse_address_with_named_scope_id_test: openssl_dep_error
14073
+
14074
+ else
14075
+
14076
+
14077
+
14078
+ $(BINDIR)/$(CONFIG)/parse_address_with_named_scope_id_test: $(PARSE_ADDRESS_WITH_NAMED_SCOPE_ID_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
14079
+ $(E) "[LD] Linking $@"
14080
+ $(Q) mkdir -p `dirname $@`
14081
+ $(Q) $(LD) $(LDFLAGS) $(PARSE_ADDRESS_WITH_NAMED_SCOPE_ID_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/parse_address_with_named_scope_id_test
14082
+
14083
+ endif
14084
+
14085
+ $(OBJDIR)/$(CONFIG)/test/core/client_channel/parse_address_with_named_scope_id_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
14086
+
14087
+ deps_parse_address_with_named_scope_id_test: $(PARSE_ADDRESS_WITH_NAMED_SCOPE_ID_TEST_OBJS:.o=.dep)
14088
+
14089
+ ifneq ($(NO_SECURE),true)
14090
+ ifneq ($(NO_DEPS),true)
14091
+ -include $(PARSE_ADDRESS_WITH_NAMED_SCOPE_ID_TEST_OBJS:.o=.dep)
14092
+ endif
14093
+ endif
14094
+
14095
+
13991
14096
  PERCENT_DECODE_FUZZER_SRC = \
13992
14097
  test/core/slice/percent_decode_fuzzer.cc \
13993
14098
 
@@ -14084,34 +14189,34 @@ endif
14084
14189
  endif
14085
14190
 
14086
14191
 
14087
- RESOLVE_ADDRESS_POSIX_TEST_SRC = \
14192
+ RESOLVE_ADDRESS_USING_ARES_RESOLVER_POSIX_TEST_SRC = \
14088
14193
  test/core/iomgr/resolve_address_posix_test.cc \
14089
14194
 
14090
- RESOLVE_ADDRESS_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_POSIX_TEST_SRC))))
14195
+ RESOLVE_ADDRESS_USING_ARES_RESOLVER_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_POSIX_TEST_SRC))))
14091
14196
  ifeq ($(NO_SECURE),true)
14092
14197
 
14093
14198
  # You can't build secure targets if you don't have OpenSSL.
14094
14199
 
14095
- $(BINDIR)/$(CONFIG)/resolve_address_posix_test: openssl_dep_error
14200
+ $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_posix_test: openssl_dep_error
14096
14201
 
14097
14202
  else
14098
14203
 
14099
14204
 
14100
14205
 
14101
- $(BINDIR)/$(CONFIG)/resolve_address_posix_test: $(RESOLVE_ADDRESS_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
14206
+ $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_posix_test: $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
14102
14207
  $(E) "[LD] Linking $@"
14103
14208
  $(Q) mkdir -p `dirname $@`
14104
- $(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_posix_test
14209
+ $(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_posix_test
14105
14210
 
14106
14211
  endif
14107
14212
 
14108
14213
  $(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
14109
14214
 
14110
- deps_resolve_address_posix_test: $(RESOLVE_ADDRESS_POSIX_TEST_OBJS:.o=.dep)
14215
+ deps_resolve_address_using_ares_resolver_posix_test: $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_POSIX_TEST_OBJS:.o=.dep)
14111
14216
 
14112
14217
  ifneq ($(NO_SECURE),true)
14113
14218
  ifneq ($(NO_DEPS),true)
14114
- -include $(RESOLVE_ADDRESS_POSIX_TEST_OBJS:.o=.dep)
14219
+ -include $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_POSIX_TEST_OBJS:.o=.dep)
14115
14220
  endif
14116
14221
  endif
14117
14222
 
@@ -14148,6 +14253,38 @@ endif
14148
14253
  endif
14149
14254
 
14150
14255
 
14256
+ RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_POSIX_TEST_SRC = \
14257
+ test/core/iomgr/resolve_address_posix_test.cc \
14258
+
14259
+ RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_POSIX_TEST_SRC))))
14260
+ ifeq ($(NO_SECURE),true)
14261
+
14262
+ # You can't build secure targets if you don't have OpenSSL.
14263
+
14264
+ $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_posix_test: openssl_dep_error
14265
+
14266
+ else
14267
+
14268
+
14269
+
14270
+ $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_posix_test: $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
14271
+ $(E) "[LD] Linking $@"
14272
+ $(Q) mkdir -p `dirname $@`
14273
+ $(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_posix_test
14274
+
14275
+ endif
14276
+
14277
+ $(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
14278
+
14279
+ deps_resolve_address_using_native_resolver_posix_test: $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_POSIX_TEST_OBJS:.o=.dep)
14280
+
14281
+ ifneq ($(NO_SECURE),true)
14282
+ ifneq ($(NO_DEPS),true)
14283
+ -include $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_POSIX_TEST_OBJS:.o=.dep)
14284
+ endif
14285
+ endif
14286
+
14287
+
14151
14288
  RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_TEST_SRC = \
14152
14289
  test/core/iomgr/resolve_address_test.cc \
14153
14290
 
@@ -16048,6 +16185,50 @@ endif
16048
16185
  endif
16049
16186
 
16050
16187
 
16188
+ BM_ALARM_SRC = \
16189
+ test/cpp/microbenchmarks/bm_alarm.cc \
16190
+
16191
+ BM_ALARM_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BM_ALARM_SRC))))
16192
+ ifeq ($(NO_SECURE),true)
16193
+
16194
+ # You can't build secure targets if you don't have OpenSSL.
16195
+
16196
+ $(BINDIR)/$(CONFIG)/bm_alarm: openssl_dep_error
16197
+
16198
+ else
16199
+
16200
+
16201
+
16202
+
16203
+ ifeq ($(NO_PROTOBUF),true)
16204
+
16205
+ # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.5.0+.
16206
+
16207
+ $(BINDIR)/$(CONFIG)/bm_alarm: protobuf_dep_error
16208
+
16209
+ else
16210
+
16211
+ $(BINDIR)/$(CONFIG)/bm_alarm: $(PROTOBUF_DEP) $(BM_ALARM_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
16212
+ $(E) "[LD] Linking $@"
16213
+ $(Q) mkdir -p `dirname $@`
16214
+ $(Q) $(LDXX) $(LDFLAGS) $(BM_ALARM_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_alarm
16215
+
16216
+ endif
16217
+
16218
+ endif
16219
+
16220
+ $(BM_ALARM_OBJS): CPPFLAGS += -Ithird_party/benchmark/include -DHAVE_POSIX_REGEX
16221
+ $(OBJDIR)/$(CONFIG)/test/cpp/microbenchmarks/bm_alarm.o: $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
16222
+
16223
+ deps_bm_alarm: $(BM_ALARM_OBJS:.o=.dep)
16224
+
16225
+ ifneq ($(NO_SECURE),true)
16226
+ ifneq ($(NO_DEPS),true)
16227
+ -include $(BM_ALARM_OBJS:.o=.dep)
16228
+ endif
16229
+ endif
16230
+
16231
+
16051
16232
  BM_ARENA_SRC = \
16052
16233
  test/cpp/microbenchmarks/bm_arena.cc \
16053
16234
 
@@ -19354,6 +19535,49 @@ endif
19354
19535
  endif
19355
19536
 
19356
19537
 
19538
+ OPTIONAL_TEST_SRC = \
19539
+ test/core/gprpp/optional_test.cc \
19540
+
19541
+ OPTIONAL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(OPTIONAL_TEST_SRC))))
19542
+ ifeq ($(NO_SECURE),true)
19543
+
19544
+ # You can't build secure targets if you don't have OpenSSL.
19545
+
19546
+ $(BINDIR)/$(CONFIG)/optional_test: openssl_dep_error
19547
+
19548
+ else
19549
+
19550
+
19551
+
19552
+
19553
+ ifeq ($(NO_PROTOBUF),true)
19554
+
19555
+ # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.5.0+.
19556
+
19557
+ $(BINDIR)/$(CONFIG)/optional_test: protobuf_dep_error
19558
+
19559
+ else
19560
+
19561
+ $(BINDIR)/$(CONFIG)/optional_test: $(PROTOBUF_DEP) $(OPTIONAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
19562
+ $(E) "[LD] Linking $@"
19563
+ $(Q) mkdir -p `dirname $@`
19564
+ $(Q) $(LDXX) $(LDFLAGS) $(OPTIONAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/optional_test
19565
+
19566
+ endif
19567
+
19568
+ endif
19569
+
19570
+ $(OBJDIR)/$(CONFIG)/test/core/gprpp/optional_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
19571
+
19572
+ deps_optional_test: $(OPTIONAL_TEST_OBJS:.o=.dep)
19573
+
19574
+ ifneq ($(NO_SECURE),true)
19575
+ ifneq ($(NO_DEPS),true)
19576
+ -include $(OPTIONAL_TEST_OBJS:.o=.dep)
19577
+ endif
19578
+ endif
19579
+
19580
+
19357
19581
  ORPHANABLE_TEST_SRC = \
19358
19582
  test/core/gprpp/orphanable_test.cc \
19359
19583
 
@@ -20885,6 +21109,49 @@ endif
20885
21109
  endif
20886
21110
 
20887
21111
 
21112
+ TIME_CHANGE_TEST_SRC = \
21113
+ test/cpp/end2end/time_change_test.cc \
21114
+
21115
+ TIME_CHANGE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIME_CHANGE_TEST_SRC))))
21116
+ ifeq ($(NO_SECURE),true)
21117
+
21118
+ # You can't build secure targets if you don't have OpenSSL.
21119
+
21120
+ $(BINDIR)/$(CONFIG)/time_change_test: openssl_dep_error
21121
+
21122
+ else
21123
+
21124
+
21125
+
21126
+
21127
+ ifeq ($(NO_PROTOBUF),true)
21128
+
21129
+ # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.5.0+.
21130
+
21131
+ $(BINDIR)/$(CONFIG)/time_change_test: protobuf_dep_error
21132
+
21133
+ else
21134
+
21135
+ $(BINDIR)/$(CONFIG)/time_change_test: $(PROTOBUF_DEP) $(TIME_CHANGE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
21136
+ $(E) "[LD] Linking $@"
21137
+ $(Q) mkdir -p `dirname $@`
21138
+ $(Q) $(LDXX) $(LDFLAGS) $(TIME_CHANGE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/time_change_test
21139
+
21140
+ endif
21141
+
21142
+ endif
21143
+
21144
+ $(OBJDIR)/$(CONFIG)/test/cpp/end2end/time_change_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
21145
+
21146
+ deps_time_change_test: $(TIME_CHANGE_TEST_OBJS:.o=.dep)
21147
+
21148
+ ifneq ($(NO_SECURE),true)
21149
+ ifneq ($(NO_DEPS),true)
21150
+ -include $(TIME_CHANGE_TEST_OBJS:.o=.dep)
21151
+ endif
21152
+ endif
21153
+
21154
+
20888
21155
  TRANSPORT_PID_CONTROLLER_TEST_SRC = \
20889
21156
  test/core/transport/pid_controller_test.cc \
20890
21157
 
@@ -25232,6 +25499,7 @@ src/core/lib/security/credentials/local/local_credentials.cc: $(OPENSSL_DEP)
25232
25499
  src/core/lib/security/credentials/oauth2/oauth2_credentials.cc: $(OPENSSL_DEP)
25233
25500
  src/core/lib/security/credentials/plugin/plugin_credentials.cc: $(OPENSSL_DEP)
25234
25501
  src/core/lib/security/credentials/ssl/ssl_credentials.cc: $(OPENSSL_DEP)
25502
+ src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc: $(OPENSSL_DEP)
25235
25503
  src/core/lib/security/security_connector/alts/alts_security_connector.cc: $(OPENSSL_DEP)
25236
25504
  src/core/lib/security/security_connector/fake/fake_security_connector.cc: $(OPENSSL_DEP)
25237
25505
  src/core/lib/security/security_connector/load_system_roots_fallback.cc: $(OPENSSL_DEP)