Merge remote-tracking branch 'upstream/master' into xds_features_dualstack

pull/37662/head
Mark D. Roth 4 months ago
commit f6b69e3048
  1. 107
      BUILD
  2. 661
      CMakeLists.txt
  3. 86
      Makefile
  4. 190
      Package.swift
  5. 2
      _metadata.py
  6. 1471
      build_autogenerated.yaml
  7. 2
      build_config.rb
  8. 6
      build_handwritten.yaml
  9. 85
      config.m4
  10. 83
      config.w32
  11. 3
      doc/g_stands_for.md
  12. 1
      doc/grpc_xds_features.md
  13. 2
      examples/cpp/csm/csm_greeter_server.cc
  14. 27
      examples/cpp/flow_control/BUILD
  15. 1
      examples/cpp/flow_control/CMakeLists.txt
  16. 126
      examples/cpp/flow_control/client_flow_control_client.cc
  17. 111
      examples/cpp/flow_control/client_flow_control_server.cc
  18. 2
      fuzztest/core/transport/chttp2/hpack_encoder_timeout_test.cc
  19. 230
      gRPC-C++.podspec
  20. 306
      gRPC-Core.podspec
  21. 2
      gRPC-ProtoRPC.podspec
  22. 2
      gRPC-RxLibrary.podspec
  23. 2
      gRPC.podspec
  24. 190
      grpc.gemspec
  25. 4
      include/grpcpp/impl/sync.h
  26. 18
      include/grpcpp/security/tls_certificate_provider.h
  27. 4
      include/grpcpp/version_info.h
  28. 196
      package.xml
  29. 4
      src/compiler/php_generator.cc
  30. 186
      src/core/BUILD
  31. 168
      src/core/call/request_buffer.cc
  32. 182
      src/core/call/request_buffer.h
  33. 2
      src/core/channelz/channel_trace.cc
  34. 4
      src/core/channelz/channel_trace.h
  35. 2
      src/core/channelz/channelz.cc
  36. 8
      src/core/channelz/channelz.h
  37. 2
      src/core/channelz/channelz_registry.cc
  38. 4
      src/core/channelz/channelz_registry.h
  39. 4
      src/core/client_channel/backup_poller.cc
  40. 10
      src/core/client_channel/client_channel.cc
  41. 2
      src/core/client_channel/client_channel.h
  42. 2
      src/core/client_channel/client_channel_factory.h
  43. 40
      src/core/client_channel/client_channel_filter.cc
  44. 12
      src/core/client_channel/client_channel_filter.h
  45. 4
      src/core/client_channel/client_channel_internal.h
  46. 6
      src/core/client_channel/client_channel_service_config.h
  47. 6
      src/core/client_channel/config_selector.h
  48. 6
      src/core/client_channel/connector.h
  49. 2
      src/core/client_channel/direct_channel.cc
  50. 2
      src/core/client_channel/dynamic_filters.cc
  51. 8
      src/core/client_channel/dynamic_filters.h
  52. 4
      src/core/client_channel/global_subchannel_pool.h
  53. 2
      src/core/client_channel/load_balanced_call_destination.cc
  54. 2
      src/core/client_channel/local_subchannel_pool.h
  55. 4
      src/core/client_channel/retry_filter.cc
  56. 2
      src/core/client_channel/retry_filter.h
  57. 16
      src/core/client_channel/retry_filter_legacy_call_data.cc
  58. 12
      src/core/client_channel/retry_filter_legacy_call_data.h
  59. 4
      src/core/client_channel/retry_service_config.h
  60. 6
      src/core/client_channel/retry_throttle.h
  61. 14
      src/core/client_channel/subchannel.cc
  62. 26
      src/core/client_channel/subchannel.h
  63. 2
      src/core/client_channel/subchannel_interface_internal.h
  64. 4
      src/core/client_channel/subchannel_pool_interface.h
  65. 8
      src/core/client_channel/subchannel_stream_client.cc
  66. 8
      src/core/client_channel/subchannel_stream_client.h
  67. 22
      src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc
  68. 10
      src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h
  69. 8
      src/core/ext/filters/fault_injection/fault_injection_filter.cc
  70. 2
      src/core/ext/filters/fault_injection/fault_injection_filter.h
  71. 4
      src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h
  72. 4
      src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h
  73. 2
      src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h
  74. 2
      src/core/ext/filters/load_reporting/server_load_reporting_filter.cc
  75. 6
      src/core/ext/filters/logging/logging_filter.cc
  76. 2
      src/core/ext/filters/logging/logging_sink.h
  77. 2
      src/core/ext/filters/message_size/message_size_filter.h
  78. 2
      src/core/ext/filters/rbac/rbac_service_config_parser.cc
  79. 2
      src/core/ext/filters/rbac/rbac_service_config_parser.h
  80. 4
      src/core/ext/filters/stateful_session/stateful_session_filter.cc
  81. 4
      src/core/ext/filters/stateful_session/stateful_session_filter.h
  82. 4
      src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h
  83. 2
      src/core/ext/transport/binder/client/channel_create.cc
  84. 2
      src/core/ext/transport/binder/client/connection_id_generator.h
  85. 2
      src/core/ext/transport/binder/client/endpoint_binder_pool.h
  86. 2
      src/core/ext/transport/binder/client/jni_utils.cc
  87. 2
      src/core/ext/transport/binder/client/security_policy_setting.h
  88. 2
      src/core/ext/transport/binder/security_policy/binder_security_policy.cc
  89. 2
      src/core/ext/transport/binder/transport/binder_transport.cc
  90. 2
      src/core/ext/transport/binder/transport/binder_transport.h
  91. 4
      src/core/ext/transport/binder/utils/ndk_binder.cc
  92. 2
      src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc
  93. 2
      src/core/ext/transport/binder/utils/transport_stream_receiver_impl.h
  94. 2
      src/core/ext/transport/binder/wire_format/binder.h
  95. 4
      src/core/ext/transport/binder/wire_format/binder_android.cc
  96. 2
      src/core/ext/transport/binder/wire_format/transaction.h
  97. 2
      src/core/ext/transport/binder/wire_format/wire_reader.h
  98. 4
      src/core/ext/transport/binder/wire_format/wire_reader_impl.cc
  99. 2
      src/core/ext/transport/binder/wire_format/wire_reader_impl.h
  100. 2
      src/core/ext/transport/binder/wire_format/wire_writer.cc
  101. Some files were not shown because too many files have changed in this diff Show More

107
BUILD

@ -227,11 +227,11 @@ config_setting(
python_config_settings()
# This should be updated along with build_handwritten.yaml
g_stands_for = "gesundheit" # @unused
g_stands_for = "groovy" # @unused
core_version = "43.0.0" # @unused
core_version = "44.0.0" # @unused
version = "1.67.0-dev" # @unused
version = "1.68.0-dev" # @unused
GPR_PUBLIC_HDRS = [
"include/grpc/support/alloc.h",
@ -571,6 +571,7 @@ grpc_cc_library(
external_deps = [
"absl/base:core_headers",
"absl/log:log",
"absl/time:time",
],
language = "c++",
public_hdrs = GRPC_PUBLIC_HDRS,
@ -642,6 +643,7 @@ grpc_cc_library(
external_deps = [
"absl/base:core_headers",
"absl/log:log",
"absl/time:time",
],
language = "c++",
public_hdrs = GRPC_PUBLIC_HDRS,
@ -681,7 +683,7 @@ grpc_cc_library(
"server",
"sockaddr_utils",
"tsi_base",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:channel_init",
"//src/core:channel_stack_type",
@ -719,50 +721,50 @@ grpc_cc_library(
grpc_cc_library(
name = "gpr",
srcs = [
"//src/core:lib/gprpp/crash.cc",
"//src/core:lib/gprpp/fork.cc",
"//src/core:lib/gprpp/host_port.cc",
"//src/core:lib/gprpp/mpscq.cc",
"//src/core:lib/gprpp/posix/stat.cc",
"//src/core:lib/gprpp/posix/thd.cc",
"//src/core:lib/gprpp/time_util.cc",
"//src/core:lib/gprpp/windows/stat.cc",
"//src/core:lib/gprpp/windows/thd.cc",
"//src/core:util/alloc.cc",
"//src/core:util/crash.cc",
"//src/core:util/fork.cc",
"//src/core:util/gpr_time.cc",
"//src/core:util/host_port.cc",
"//src/core:util/iphone/cpu.cc",
"//src/core:util/linux/cpu.cc",
"//src/core:util/log.cc",
"//src/core:util/mpscq.cc",
"//src/core:util/msys/tmpfile.cc",
"//src/core:util/posix/cpu.cc",
"//src/core:util/posix/stat.cc",
"//src/core:util/posix/string.cc",
"//src/core:util/posix/sync.cc",
"//src/core:util/posix/thd.cc",
"//src/core:util/posix/time.cc",
"//src/core:util/posix/tmpfile.cc",
"//src/core:util/string.cc",
"//src/core:util/sync.cc",
"//src/core:util/sync_abseil.cc",
"//src/core:util/time.cc",
"//src/core:util/time_precise.cc",
"//src/core:util/time_util.cc",
"//src/core:util/windows/cpu.cc",
"//src/core:util/windows/stat.cc",
"//src/core:util/windows/string.cc",
"//src/core:util/windows/string_util.cc",
"//src/core:util/windows/sync.cc",
"//src/core:util/windows/thd.cc",
"//src/core:util/windows/time.cc",
"//src/core:util/windows/tmpfile.cc",
],
hdrs = [
"//src/core:lib/gprpp/crash.h",
"//src/core:lib/gprpp/fork.h",
"//src/core:lib/gprpp/host_port.h",
"//src/core:lib/gprpp/memory.h",
"//src/core:lib/gprpp/mpscq.h",
"//src/core:lib/gprpp/stat.h",
"//src/core:lib/gprpp/sync.h",
"//src/core:lib/gprpp/thd.h",
"//src/core:lib/gprpp/time_util.h",
"//src/core:util/alloc.h",
"//src/core:util/crash.h",
"//src/core:util/fork.h",
"//src/core:util/host_port.h",
"//src/core:util/memory.h",
"//src/core:util/mpscq.h",
"//src/core:util/stat.h",
"//src/core:util/string.h",
"//src/core:util/sync.h",
"//src/core:util/thd.h",
"//src/core:util/time_precise.h",
"//src/core:util/time_util.h",
"//src/core:util/tmpfile.h",
],
external_deps = [
@ -820,7 +822,7 @@ grpc_cc_library(
grpc_cc_library(
name = "cpp_impl_of",
hdrs = ["//src/core:lib/gprpp/cpp_impl_of.h"],
hdrs = ["//src/core:util/cpp_impl_of.h"],
language = "c++",
)
@ -892,6 +894,7 @@ grpc_cc_library(
"absl/log:log",
"absl/log:absl_check",
"absl/log:absl_log",
"absl/status:statusor",
"absl/strings:cord",
"absl/synchronization",
"protobuf_headers",
@ -1245,6 +1248,7 @@ grpc_cc_library(
"absl/log:log",
"absl/log:absl_check",
"absl/log:absl_log",
"absl/status:statusor",
"absl/strings",
"absl/synchronization",
],
@ -1392,7 +1396,7 @@ grpc_cc_library(
"parse_address",
"ref_counted_ptr",
"sockaddr_utils",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:connectivity_state",
"//src/core:json",
@ -1507,9 +1511,6 @@ grpc_cc_library(
"//src/core:lib/iomgr/ev_posix.cc",
"//src/core:lib/iomgr/fork_posix.cc",
"//src/core:lib/iomgr/fork_windows.cc",
"//src/core:lib/iomgr/gethostname_fallback.cc",
"//src/core:lib/iomgr/gethostname_host_name_max.cc",
"//src/core:lib/iomgr/gethostname_sysconf.cc",
"//src/core:lib/iomgr/iocp_windows.cc",
"//src/core:lib/iomgr/iomgr.cc",
"//src/core:lib/iomgr/iomgr_posix.cc",
@ -1548,6 +1549,9 @@ grpc_cc_library(
"//src/core:lib/iomgr/wakeup_fd_nospecial.cc",
"//src/core:lib/iomgr/wakeup_fd_pipe.cc",
"//src/core:lib/iomgr/wakeup_fd_posix.cc",
"//src/core:util/gethostname_fallback.cc",
"//src/core:util/gethostname_host_name_max.cc",
"//src/core:util/gethostname_sysconf.cc",
] +
# TODO(vigneshbabu): remove these
# These headers used to be vended by this target, but they have to be
@ -1568,7 +1572,6 @@ grpc_cc_library(
"//src/core:lib/iomgr/ev_epoll1_linux.h",
"//src/core:lib/iomgr/ev_poll_posix.h",
"//src/core:lib/iomgr/ev_posix.h",
"//src/core:lib/iomgr/gethostname.h",
"//src/core:lib/iomgr/iocp_windows.h",
"//src/core:lib/iomgr/iomgr.h",
"//src/core:lib/iomgr/lockfree_event.h",
@ -1599,6 +1602,7 @@ grpc_cc_library(
"//src/core:lib/iomgr/vsock.h",
"//src/core:lib/iomgr/wakeup_fd_pipe.h",
"//src/core:lib/iomgr/wakeup_fd_posix.h",
"//src/core:util/gethostname.h",
] +
# TODO(vigneshbabu): remove these
# These headers used to be vended by this target, but they have to be
@ -2489,6 +2493,7 @@ grpc_cc_library(
"//src/core:grpc_backend_metric_provider",
"//src/core:grpc_crl_provider",
"//src/core:grpc_service_config",
"//src/core:grpc_tls_credentials",
"//src/core:grpc_transport_chttp2_server",
"//src/core:grpc_transport_inproc",
"//src/core:json",
@ -2982,10 +2987,10 @@ grpc_cc_library(
grpc_cc_library(
name = "work_serializer",
srcs = [
"//src/core:lib/gprpp/work_serializer.cc",
"//src/core:util/work_serializer.cc",
],
hdrs = [
"//src/core:lib/gprpp/work_serializer.h",
"//src/core:util/work_serializer.h",
],
external_deps = [
"absl/base:core_headers",
@ -3114,7 +3119,7 @@ grpc_cc_library(
name = "debug_location",
external_deps = ["absl/strings"],
language = "c++",
public_hdrs = ["//src/core:lib/gprpp/debug_location.h"],
public_hdrs = ["//src/core:util/debug_location.h"],
visibility = ["@grpc:debug_location"],
deps = ["gpr_platform"],
)
@ -3122,7 +3127,7 @@ grpc_cc_library(
grpc_cc_library(
name = "orphanable",
language = "c++",
public_hdrs = ["//src/core:lib/gprpp/orphanable.h"],
public_hdrs = ["//src/core:util/orphanable.h"],
visibility = [
"@grpc:client_channel",
"@grpc:xds_client_core",
@ -3159,7 +3164,7 @@ grpc_cc_library(
name = "ref_counted_ptr",
external_deps = ["absl/hash"],
language = "c++",
public_hdrs = ["//src/core:lib/gprpp/ref_counted_ptr.h"],
public_hdrs = ["//src/core:util/ref_counted_ptr.h"],
visibility = ["@grpc:ref_counted_ptr"],
deps = [
"debug_location",
@ -3306,7 +3311,7 @@ grpc_cc_library(
visibility = ["@grpc:alt_grpc_base_legacy"],
deps = [
"gpr",
"uri_parser",
"uri",
"//src/core:grpc_sockaddr",
"//src/core:iomgr_port",
"//src/core:resolved_address",
@ -3398,12 +3403,12 @@ grpc_cc_library(
)
grpc_cc_library(
name = "uri_parser",
name = "uri",
srcs = [
"//src/core:lib/uri/uri_parser.cc",
"//src/core:util/uri.cc",
],
hdrs = [
"//src/core:lib/uri/uri_parser.h",
"//src/core:util/uri.h",
],
external_deps = [
"absl/log:check",
@ -3420,12 +3425,12 @@ grpc_cc_library(
name = "parse_address",
srcs = [
"//src/core:lib/address_utils/parse_address.cc",
"//src/core:lib/iomgr/grpc_if_nametoindex_posix.cc",
"//src/core:lib/iomgr/grpc_if_nametoindex_unsupported.cc",
"//src/core:util/grpc_if_nametoindex_posix.cc",
"//src/core:util/grpc_if_nametoindex_unsupported.cc",
],
hdrs = [
"//src/core:lib/address_utils/parse_address.h",
"//src/core:lib/iomgr/grpc_if_nametoindex.h",
"//src/core:util/grpc_if_nametoindex.h",
],
external_deps = [
"absl/log:check",
@ -3437,7 +3442,7 @@ grpc_cc_library(
visibility = ["@grpc:alt_grpc_base_legacy"],
deps = [
"gpr",
"uri_parser",
"uri",
"//src/core:error",
"//src/core:grpc_sockaddr",
"//src/core:iomgr_port",
@ -3449,10 +3454,10 @@ grpc_cc_library(
grpc_cc_library(
name = "backoff",
srcs = [
"//src/core:lib/backoff/backoff.cc",
"//src/core:util/backoff.cc",
],
hdrs = [
"//src/core:lib/backoff/backoff.h",
"//src/core:util/backoff.h",
],
external_deps = ["absl/random"],
language = "c++",
@ -3612,7 +3617,7 @@ grpc_cc_library(
"orphanable",
"ref_counted_ptr",
"server_address",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:grpc_service_config",
"//src/core:iomgr_fwd",
@ -3770,7 +3775,7 @@ grpc_cc_library(
"ref_counted_ptr",
"sockaddr_utils",
"stats",
"uri_parser",
"uri",
"work_serializer",
"//src/core:arena",
"//src/core:arena_promise",
@ -3893,7 +3898,7 @@ grpc_cc_library(
"parse_address",
"ref_counted_ptr",
"sockaddr_utils",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:closure",
"//src/core:error",
@ -3952,7 +3957,7 @@ grpc_cc_library(
"ref_counted_ptr",
"resource_quota_api",
"sockaddr_utils",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:channel_args_preconditioning",
"//src/core:closure",
@ -4082,7 +4087,7 @@ grpc_cc_library(
"orphanable",
"promise",
"ref_counted_ptr",
"uri_parser",
"uri",
"//src/core:arena_promise",
"//src/core:closure",
"//src/core:error",
@ -4451,7 +4456,7 @@ grpc_cc_library(
"protobuf_struct_upb",
"protobuf_timestamp_upb",
"ref_counted_ptr",
"uri_parser",
"uri",
"work_serializer",
"//src/core:default_event_engine",
"//src/core:dual_ref_counted",
@ -4512,7 +4517,7 @@ grpc_cc_library(
"grpc_resolver",
"orphanable",
"ref_counted_ptr",
"uri_parser",
"uri",
"work_serializer",
"//src/core:channel_args",
"//src/core:notification",

661
CMakeLists.txt generated

File diff suppressed because it is too large Load Diff

86
Makefile generated

@ -367,8 +367,8 @@ E = @echo
Q = @
endif
CORE_VERSION = 43.0.0
CPP_VERSION = 1.67.0-dev
CORE_VERSION = 44.0.0
CPP_VERSION = 1.68.0-dev
CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
@ -404,7 +404,7 @@ SHARED_EXT_CORE = dll
SHARED_EXT_CPP = dll
SHARED_PREFIX =
SHARED_VERSION_CORE = -43
SHARED_VERSION_CORE = -44
SHARED_VERSION_CPP = -1
else ifeq ($(SYSTEM),Darwin)
EXECUTABLE_SUFFIX =
@ -1068,8 +1068,6 @@ LIBGRPC_SRC = \
src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc \
src/core/lib/address_utils/parse_address.cc \
src/core/lib/address_utils/sockaddr_utils.cc \
src/core/lib/backoff/backoff.cc \
src/core/lib/backoff/random_early_detection.cc \
src/core/lib/channel/channel_args.cc \
src/core/lib/channel/channel_args_preconditioning.cc \
src/core/lib/channel/channel_stack.cc \
@ -1085,7 +1083,6 @@ LIBGRPC_SRC = \
src/core/lib/config/config_vars_non_generated.cc \
src/core/lib/config/core_configuration.cc \
src/core/lib/config/load_config.cc \
src/core/lib/debug/event_log.cc \
src/core/lib/debug/trace.cc \
src/core/lib/debug/trace_flags.cc \
src/core/lib/event_engine/ares_resolver.cc \
@ -1137,34 +1134,6 @@ LIBGRPC_SRC = \
src/core/lib/event_engine/work_queue/basic_work_queue.cc \
src/core/lib/experiments/config.cc \
src/core/lib/experiments/experiments.cc \
src/core/lib/gprpp/crash.cc \
src/core/lib/gprpp/dump_args.cc \
src/core/lib/gprpp/examine_stack.cc \
src/core/lib/gprpp/fork.cc \
src/core/lib/gprpp/glob.cc \
src/core/lib/gprpp/host_port.cc \
src/core/lib/gprpp/linux/env.cc \
src/core/lib/gprpp/load_file.cc \
src/core/lib/gprpp/mpscq.cc \
src/core/lib/gprpp/per_cpu.cc \
src/core/lib/gprpp/posix/directory_reader.cc \
src/core/lib/gprpp/posix/env.cc \
src/core/lib/gprpp/posix/stat.cc \
src/core/lib/gprpp/posix/thd.cc \
src/core/lib/gprpp/ref_counted_string.cc \
src/core/lib/gprpp/status_helper.cc \
src/core/lib/gprpp/strerror.cc \
src/core/lib/gprpp/tchar.cc \
src/core/lib/gprpp/time.cc \
src/core/lib/gprpp/time_averaged_stats.cc \
src/core/lib/gprpp/time_util.cc \
src/core/lib/gprpp/uuid_v4.cc \
src/core/lib/gprpp/validation_errors.cc \
src/core/lib/gprpp/windows/directory_reader.cc \
src/core/lib/gprpp/windows/env.cc \
src/core/lib/gprpp/windows/stat.cc \
src/core/lib/gprpp/windows/thd.cc \
src/core/lib/gprpp/work_serializer.cc \
src/core/lib/iomgr/buffer_list.cc \
src/core/lib/iomgr/call_combiner.cc \
src/core/lib/iomgr/cfstream_handle.cc \
@ -1188,11 +1157,6 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/executor.cc \
src/core/lib/iomgr/fork_posix.cc \
src/core/lib/iomgr/fork_windows.cc \
src/core/lib/iomgr/gethostname_fallback.cc \
src/core/lib/iomgr/gethostname_host_name_max.cc \
src/core/lib/iomgr/gethostname_sysconf.cc \
src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
src/core/lib/iomgr/internal_errqueue.cc \
src/core/lib/iomgr/iocp_windows.cc \
src/core/lib/iomgr/iomgr.cc \
@ -1241,7 +1205,6 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/wakeup_fd_nospecial.cc \
src/core/lib/iomgr/wakeup_fd_pipe.cc \
src/core/lib/iomgr/wakeup_fd_posix.cc \
src/core/lib/matchers/matchers.cc \
src/core/lib/promise/activity.cc \
src/core/lib/promise/party.cc \
src/core/lib/promise/sleep.cc \
@ -1361,7 +1324,6 @@ LIBGRPC_SRC = \
src/core/lib/transport/timeout_encoding.cc \
src/core/lib/transport/transport.cc \
src/core/lib/transport/transport_op_string.cc \
src/core/lib/uri/uri_parser.cc \
src/core/load_balancing/address_filtering.cc \
src/core/load_balancing/backend_metric_parser.cc \
src/core/load_balancing/child_policy_handler.cc \
@ -1456,7 +1418,21 @@ LIBGRPC_SRC = \
src/core/tsi/transport_security_grpc.cc \
src/core/util/alloc.cc \
src/core/util/atm.cc \
src/core/util/backoff.cc \
src/core/util/crash.cc \
src/core/util/dump_args.cc \
src/core/util/event_log.cc \
src/core/util/examine_stack.cc \
src/core/util/fork.cc \
src/core/util/gcp_metadata_query.cc \
src/core/util/gethostname_fallback.cc \
src/core/util/gethostname_host_name_max.cc \
src/core/util/gethostname_sysconf.cc \
src/core/util/glob.cc \
src/core/util/gpr_time.cc \
src/core/util/grpc_if_nametoindex_posix.cc \
src/core/util/grpc_if_nametoindex_unsupported.cc \
src/core/util/host_port.cc \
src/core/util/http_client/format_request.cc \
src/core/util/http_client/httpcli.cc \
src/core/util/http_client/httpcli_security_connector.cc \
@ -1468,24 +1444,48 @@ LIBGRPC_SRC = \
src/core/util/json/json_writer.cc \
src/core/util/latent_see.cc \
src/core/util/linux/cpu.cc \
src/core/util/linux/env.cc \
src/core/util/load_file.cc \
src/core/util/log.cc \
src/core/util/matchers.cc \
src/core/util/mpscq.cc \
src/core/util/msys/tmpfile.cc \
src/core/util/per_cpu.cc \
src/core/util/posix/cpu.cc \
src/core/util/posix/directory_reader.cc \
src/core/util/posix/env.cc \
src/core/util/posix/stat.cc \
src/core/util/posix/string.cc \
src/core/util/posix/sync.cc \
src/core/util/posix/thd.cc \
src/core/util/posix/time.cc \
src/core/util/posix/tmpfile.cc \
src/core/util/random_early_detection.cc \
src/core/util/ref_counted_string.cc \
src/core/util/status_helper.cc \
src/core/util/strerror.cc \
src/core/util/string.cc \
src/core/util/sync.cc \
src/core/util/sync_abseil.cc \
src/core/util/tchar.cc \
src/core/util/time.cc \
src/core/util/time_averaged_stats.cc \
src/core/util/time_precise.cc \
src/core/util/time_util.cc \
src/core/util/uri.cc \
src/core/util/uuid_v4.cc \
src/core/util/validation_errors.cc \
src/core/util/windows/cpu.cc \
src/core/util/windows/directory_reader.cc \
src/core/util/windows/env.cc \
src/core/util/windows/stat.cc \
src/core/util/windows/string.cc \
src/core/util/windows/string_util.cc \
src/core/util/windows/sync.cc \
src/core/util/windows/thd.cc \
src/core/util/windows/time.cc \
src/core/util/windows/tmpfile.cc \
src/core/util/work_serializer.cc \
src/core/xds/grpc/certificate_provider_store.cc \
src/core/xds/grpc/file_watcher_certificate_provider_factory.cc \
src/core/xds/grpc/xds_audit_logger_registry.cc \
@ -1848,8 +1848,8 @@ $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_
ifeq ($(SYSTEM),Darwin)
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
else
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.43 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
$(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.43
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.44 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
$(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.44
$(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so
endif
endif

190
Package.swift generated

@ -1093,11 +1093,6 @@ let package = Package(
"src/core/lib/address_utils/parse_address.h",
"src/core/lib/address_utils/sockaddr_utils.cc",
"src/core/lib/address_utils/sockaddr_utils.h",
"src/core/lib/avl/avl.h",
"src/core/lib/backoff/backoff.cc",
"src/core/lib/backoff/backoff.h",
"src/core/lib/backoff/random_early_detection.cc",
"src/core/lib/backoff/random_early_detection.h",
"src/core/lib/channel/call_finalization.h",
"src/core/lib/channel/channel_args.cc",
"src/core/lib/channel/channel_args.h",
@ -1128,8 +1123,6 @@ let package = Package(
"src/core/lib/config/core_configuration.h",
"src/core/lib/config/load_config.cc",
"src/core/lib/config/load_config.h",
"src/core/lib/debug/event_log.cc",
"src/core/lib/debug/event_log.h",
"src/core/lib/debug/trace.cc",
"src/core/lib/debug/trace.h",
"src/core/lib/debug/trace_flags.cc",
@ -1250,83 +1243,6 @@ let package = Package(
"src/core/lib/experiments/config.h",
"src/core/lib/experiments/experiments.cc",
"src/core/lib/experiments/experiments.h",
"src/core/lib/gprpp/atomic_utils.h",
"src/core/lib/gprpp/bitset.h",
"src/core/lib/gprpp/chunked_vector.h",
"src/core/lib/gprpp/construct_destruct.h",
"src/core/lib/gprpp/cpp_impl_of.h",
"src/core/lib/gprpp/crash.cc",
"src/core/lib/gprpp/crash.h",
"src/core/lib/gprpp/debug_location.h",
"src/core/lib/gprpp/directory_reader.h",
"src/core/lib/gprpp/down_cast.h",
"src/core/lib/gprpp/dual_ref_counted.h",
"src/core/lib/gprpp/dump_args.cc",
"src/core/lib/gprpp/dump_args.h",
"src/core/lib/gprpp/env.h",
"src/core/lib/gprpp/examine_stack.cc",
"src/core/lib/gprpp/examine_stack.h",
"src/core/lib/gprpp/fork.cc",
"src/core/lib/gprpp/fork.h",
"src/core/lib/gprpp/glob.cc",
"src/core/lib/gprpp/glob.h",
"src/core/lib/gprpp/host_port.cc",
"src/core/lib/gprpp/host_port.h",
"src/core/lib/gprpp/if_list.h",
"src/core/lib/gprpp/linux/env.cc",
"src/core/lib/gprpp/load_file.cc",
"src/core/lib/gprpp/load_file.h",
"src/core/lib/gprpp/manual_constructor.h",
"src/core/lib/gprpp/match.h",
"src/core/lib/gprpp/memory.h",
"src/core/lib/gprpp/mpscq.cc",
"src/core/lib/gprpp/mpscq.h",
"src/core/lib/gprpp/no_destruct.h",
"src/core/lib/gprpp/notification.h",
"src/core/lib/gprpp/orphanable.h",
"src/core/lib/gprpp/overload.h",
"src/core/lib/gprpp/packed_table.h",
"src/core/lib/gprpp/per_cpu.cc",
"src/core/lib/gprpp/per_cpu.h",
"src/core/lib/gprpp/posix/directory_reader.cc",
"src/core/lib/gprpp/posix/env.cc",
"src/core/lib/gprpp/posix/stat.cc",
"src/core/lib/gprpp/posix/thd.cc",
"src/core/lib/gprpp/ref_counted.h",
"src/core/lib/gprpp/ref_counted_ptr.h",
"src/core/lib/gprpp/ref_counted_string.cc",
"src/core/lib/gprpp/ref_counted_string.h",
"src/core/lib/gprpp/single_set_ptr.h",
"src/core/lib/gprpp/sorted_pack.h",
"src/core/lib/gprpp/stat.h",
"src/core/lib/gprpp/status_helper.cc",
"src/core/lib/gprpp/status_helper.h",
"src/core/lib/gprpp/strerror.cc",
"src/core/lib/gprpp/strerror.h",
"src/core/lib/gprpp/sync.h",
"src/core/lib/gprpp/table.h",
"src/core/lib/gprpp/tchar.cc",
"src/core/lib/gprpp/tchar.h",
"src/core/lib/gprpp/thd.h",
"src/core/lib/gprpp/time.cc",
"src/core/lib/gprpp/time.h",
"src/core/lib/gprpp/time_averaged_stats.cc",
"src/core/lib/gprpp/time_averaged_stats.h",
"src/core/lib/gprpp/time_util.cc",
"src/core/lib/gprpp/time_util.h",
"src/core/lib/gprpp/type_list.h",
"src/core/lib/gprpp/unique_type_name.h",
"src/core/lib/gprpp/uuid_v4.cc",
"src/core/lib/gprpp/uuid_v4.h",
"src/core/lib/gprpp/validation_errors.cc",
"src/core/lib/gprpp/validation_errors.h",
"src/core/lib/gprpp/windows/directory_reader.cc",
"src/core/lib/gprpp/windows/env.cc",
"src/core/lib/gprpp/windows/stat.cc",
"src/core/lib/gprpp/windows/thd.cc",
"src/core/lib/gprpp/work_serializer.cc",
"src/core/lib/gprpp/work_serializer.h",
"src/core/lib/gprpp/xxhash_inline.h",
"src/core/lib/iomgr/block_annotate.h",
"src/core/lib/iomgr/buffer_list.cc",
"src/core/lib/iomgr/buffer_list.h",
@ -1371,13 +1287,6 @@ let package = Package(
"src/core/lib/iomgr/executor.h",
"src/core/lib/iomgr/fork_posix.cc",
"src/core/lib/iomgr/fork_windows.cc",
"src/core/lib/iomgr/gethostname.h",
"src/core/lib/iomgr/gethostname_fallback.cc",
"src/core/lib/iomgr/gethostname_host_name_max.cc",
"src/core/lib/iomgr/gethostname_sysconf.cc",
"src/core/lib/iomgr/grpc_if_nametoindex.h",
"src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
"src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
"src/core/lib/iomgr/internal_errqueue.cc",
"src/core/lib/iomgr/internal_errqueue.h",
"src/core/lib/iomgr/iocp_windows.cc",
@ -1468,8 +1377,6 @@ let package = Package(
"src/core/lib/iomgr/wakeup_fd_pipe.h",
"src/core/lib/iomgr/wakeup_fd_posix.cc",
"src/core/lib/iomgr/wakeup_fd_posix.h",
"src/core/lib/matchers/matchers.cc",
"src/core/lib/matchers/matchers.h",
"src/core/lib/promise/activity.cc",
"src/core/lib/promise/activity.h",
"src/core/lib/promise/all_ok.h",
@ -1734,8 +1641,6 @@ let package = Package(
"src/core/lib/transport/transport.h",
"src/core/lib/transport/transport_fwd.h",
"src/core/lib/transport/transport_op_string.cc",
"src/core/lib/uri/uri_parser.cc",
"src/core/lib/uri/uri_parser.h",
"src/core/load_balancing/address_filtering.cc",
"src/core/load_balancing/address_filtering.h",
"src/core/load_balancing/backend_metric_data.h",
@ -1920,8 +1825,43 @@ let package = Package(
"src/core/util/alloc.cc",
"src/core/util/alloc.h",
"src/core/util/atm.cc",
"src/core/util/atomic_utils.h",
"src/core/util/avl.h",
"src/core/util/backoff.cc",
"src/core/util/backoff.h",
"src/core/util/bitset.h",
"src/core/util/chunked_vector.h",
"src/core/util/construct_destruct.h",
"src/core/util/cpp_impl_of.h",
"src/core/util/crash.cc",
"src/core/util/crash.h",
"src/core/util/debug_location.h",
"src/core/util/directory_reader.h",
"src/core/util/down_cast.h",
"src/core/util/dual_ref_counted.h",
"src/core/util/dump_args.cc",
"src/core/util/dump_args.h",
"src/core/util/env.h",
"src/core/util/event_log.cc",
"src/core/util/event_log.h",
"src/core/util/examine_stack.cc",
"src/core/util/examine_stack.h",
"src/core/util/fork.cc",
"src/core/util/fork.h",
"src/core/util/gcp_metadata_query.cc",
"src/core/util/gcp_metadata_query.h",
"src/core/util/gethostname.h",
"src/core/util/gethostname_fallback.cc",
"src/core/util/gethostname_host_name_max.cc",
"src/core/util/gethostname_sysconf.cc",
"src/core/util/glob.cc",
"src/core/util/glob.h",
"src/core/util/gpr_time.cc",
"src/core/util/grpc_if_nametoindex.h",
"src/core/util/grpc_if_nametoindex_posix.cc",
"src/core/util/grpc_if_nametoindex_unsupported.cc",
"src/core/util/host_port.cc",
"src/core/util/host_port.h",
"src/core/util/http_client/format_request.cc",
"src/core/util/http_client/format_request.h",
"src/core/util/http_client/httpcli.cc",
@ -1930,6 +1870,7 @@ let package = Package(
"src/core/util/http_client/httpcli_ssl_credentials.h",
"src/core/util/http_client/parser.cc",
"src/core/util/http_client/parser.h",
"src/core/util/if_list.h",
"src/core/util/iphone/cpu.cc",
"src/core/util/json/json.h",
"src/core/util/json/json_args.h",
@ -1945,33 +1886,92 @@ let package = Package(
"src/core/util/latent_see.cc",
"src/core/util/latent_see.h",
"src/core/util/linux/cpu.cc",
"src/core/util/linux/env.cc",
"src/core/util/load_file.cc",
"src/core/util/load_file.h",
"src/core/util/log.cc",
"src/core/util/lru_cache.h",
"src/core/util/manual_constructor.h",
"src/core/util/match.h",
"src/core/util/matchers.cc",
"src/core/util/matchers.h",
"src/core/util/memory.h",
"src/core/util/mpscq.cc",
"src/core/util/mpscq.h",
"src/core/util/msys/tmpfile.cc",
"src/core/util/no_destruct.h",
"src/core/util/notification.h",
"src/core/util/orphanable.h",
"src/core/util/overload.h",
"src/core/util/packed_table.h",
"src/core/util/per_cpu.cc",
"src/core/util/per_cpu.h",
"src/core/util/posix/cpu.cc",
"src/core/util/posix/directory_reader.cc",
"src/core/util/posix/env.cc",
"src/core/util/posix/stat.cc",
"src/core/util/posix/string.cc",
"src/core/util/posix/sync.cc",
"src/core/util/posix/thd.cc",
"src/core/util/posix/time.cc",
"src/core/util/posix/tmpfile.cc",
"src/core/util/random_early_detection.cc",
"src/core/util/random_early_detection.h",
"src/core/util/ref_counted.h",
"src/core/util/ref_counted_ptr.h",
"src/core/util/ref_counted_string.cc",
"src/core/util/ref_counted_string.h",
"src/core/util/ring_buffer.h",
"src/core/util/single_set_ptr.h",
"src/core/util/sorted_pack.h",
"src/core/util/spinlock.h",
"src/core/util/stat.h",
"src/core/util/status_helper.cc",
"src/core/util/status_helper.h",
"src/core/util/strerror.cc",
"src/core/util/strerror.h",
"src/core/util/string.cc",
"src/core/util/string.h",
"src/core/util/sync.cc",
"src/core/util/sync.h",
"src/core/util/sync_abseil.cc",
"src/core/util/table.h",
"src/core/util/tchar.cc",
"src/core/util/tchar.h",
"src/core/util/thd.h",
"src/core/util/time.cc",
"src/core/util/time.h",
"src/core/util/time_averaged_stats.cc",
"src/core/util/time_averaged_stats.h",
"src/core/util/time_precise.cc",
"src/core/util/time_precise.h",
"src/core/util/time_util.cc",
"src/core/util/time_util.h",
"src/core/util/tmpfile.h",
"src/core/util/type_list.h",
"src/core/util/unique_ptr_with_bitset.h",
"src/core/util/unique_type_name.h",
"src/core/util/upb_utils.h",
"src/core/util/uri.cc",
"src/core/util/uri.h",
"src/core/util/useful.h",
"src/core/util/uuid_v4.cc",
"src/core/util/uuid_v4.h",
"src/core/util/validation_errors.cc",
"src/core/util/validation_errors.h",
"src/core/util/windows/cpu.cc",
"src/core/util/windows/directory_reader.cc",
"src/core/util/windows/env.cc",
"src/core/util/windows/stat.cc",
"src/core/util/windows/string.cc",
"src/core/util/windows/string_util.cc",
"src/core/util/windows/sync.cc",
"src/core/util/windows/thd.cc",
"src/core/util/windows/time.cc",
"src/core/util/windows/tmpfile.cc",
"src/core/util/work_serializer.cc",
"src/core/util/work_serializer.h",
"src/core/util/xxhash_inline.h",
"src/core/xds/grpc/certificate_provider_store.cc",
"src/core/xds/grpc/certificate_provider_store.h",
"src/core/xds/grpc/file_watcher_certificate_provider_factory.cc",

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/_metadata.py.template`!!!
__version__ = """1.67.0.dev0"""
__version__ = """1.68.0.dev0"""

File diff suppressed because it is too large Load Diff

@ -13,5 +13,5 @@
# limitations under the License.
module GrpcBuildConfig
CORE_WINDOWS_DLL = '/tmp/libs/opt/grpc-43.dll'
CORE_WINDOWS_DLL = '/tmp/libs/opt/grpc-44.dll'
end

@ -12,11 +12,11 @@ settings:
'#08': Use "-preN" suffixes to identify pre-release versions
'#09': Per-language overrides are possible with (eg) ruby_version tag here
'#10': See the expand_version.py for all the quirks here
core_version: 43.0.0
core_version: 44.0.0
csharp_major_version: 2
g_stands_for: gesundheit
g_stands_for: groovy
protobuf_version: 3.27.2
version: 1.67.0-dev
version: 1.68.0-dev
configs:
asan:
CC: clang

85
config.m4 generated

@ -443,8 +443,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc \
src/core/lib/address_utils/parse_address.cc \
src/core/lib/address_utils/sockaddr_utils.cc \
src/core/lib/backoff/backoff.cc \
src/core/lib/backoff/random_early_detection.cc \
src/core/lib/channel/channel_args.cc \
src/core/lib/channel/channel_args_preconditioning.cc \
src/core/lib/channel/channel_stack.cc \
@ -460,7 +458,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/config/config_vars_non_generated.cc \
src/core/lib/config/core_configuration.cc \
src/core/lib/config/load_config.cc \
src/core/lib/debug/event_log.cc \
src/core/lib/debug/trace.cc \
src/core/lib/debug/trace_flags.cc \
src/core/lib/event_engine/ares_resolver.cc \
@ -512,34 +509,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/event_engine/work_queue/basic_work_queue.cc \
src/core/lib/experiments/config.cc \
src/core/lib/experiments/experiments.cc \
src/core/lib/gprpp/crash.cc \
src/core/lib/gprpp/dump_args.cc \
src/core/lib/gprpp/examine_stack.cc \
src/core/lib/gprpp/fork.cc \
src/core/lib/gprpp/glob.cc \
src/core/lib/gprpp/host_port.cc \
src/core/lib/gprpp/linux/env.cc \
src/core/lib/gprpp/load_file.cc \
src/core/lib/gprpp/mpscq.cc \
src/core/lib/gprpp/per_cpu.cc \
src/core/lib/gprpp/posix/directory_reader.cc \
src/core/lib/gprpp/posix/env.cc \
src/core/lib/gprpp/posix/stat.cc \
src/core/lib/gprpp/posix/thd.cc \
src/core/lib/gprpp/ref_counted_string.cc \
src/core/lib/gprpp/status_helper.cc \
src/core/lib/gprpp/strerror.cc \
src/core/lib/gprpp/tchar.cc \
src/core/lib/gprpp/time.cc \
src/core/lib/gprpp/time_averaged_stats.cc \
src/core/lib/gprpp/time_util.cc \
src/core/lib/gprpp/uuid_v4.cc \
src/core/lib/gprpp/validation_errors.cc \
src/core/lib/gprpp/windows/directory_reader.cc \
src/core/lib/gprpp/windows/env.cc \
src/core/lib/gprpp/windows/stat.cc \
src/core/lib/gprpp/windows/thd.cc \
src/core/lib/gprpp/work_serializer.cc \
src/core/lib/iomgr/buffer_list.cc \
src/core/lib/iomgr/call_combiner.cc \
src/core/lib/iomgr/cfstream_handle.cc \
@ -563,11 +532,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/executor.cc \
src/core/lib/iomgr/fork_posix.cc \
src/core/lib/iomgr/fork_windows.cc \
src/core/lib/iomgr/gethostname_fallback.cc \
src/core/lib/iomgr/gethostname_host_name_max.cc \
src/core/lib/iomgr/gethostname_sysconf.cc \
src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
src/core/lib/iomgr/internal_errqueue.cc \
src/core/lib/iomgr/iocp_windows.cc \
src/core/lib/iomgr/iomgr.cc \
@ -616,7 +580,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/wakeup_fd_nospecial.cc \
src/core/lib/iomgr/wakeup_fd_pipe.cc \
src/core/lib/iomgr/wakeup_fd_posix.cc \
src/core/lib/matchers/matchers.cc \
src/core/lib/promise/activity.cc \
src/core/lib/promise/party.cc \
src/core/lib/promise/sleep.cc \
@ -736,7 +699,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/transport/timeout_encoding.cc \
src/core/lib/transport/transport.cc \
src/core/lib/transport/transport_op_string.cc \
src/core/lib/uri/uri_parser.cc \
src/core/load_balancing/address_filtering.cc \
src/core/load_balancing/backend_metric_parser.cc \
src/core/load_balancing/child_policy_handler.cc \
@ -831,7 +793,21 @@ if test "$PHP_GRPC" != "no"; then
src/core/tsi/transport_security_grpc.cc \
src/core/util/alloc.cc \
src/core/util/atm.cc \
src/core/util/backoff.cc \
src/core/util/crash.cc \
src/core/util/dump_args.cc \
src/core/util/event_log.cc \
src/core/util/examine_stack.cc \
src/core/util/fork.cc \
src/core/util/gcp_metadata_query.cc \
src/core/util/gethostname_fallback.cc \
src/core/util/gethostname_host_name_max.cc \
src/core/util/gethostname_sysconf.cc \
src/core/util/glob.cc \
src/core/util/gpr_time.cc \
src/core/util/grpc_if_nametoindex_posix.cc \
src/core/util/grpc_if_nametoindex_unsupported.cc \
src/core/util/host_port.cc \
src/core/util/http_client/format_request.cc \
src/core/util/http_client/httpcli.cc \
src/core/util/http_client/httpcli_security_connector.cc \
@ -843,24 +819,48 @@ if test "$PHP_GRPC" != "no"; then
src/core/util/json/json_writer.cc \
src/core/util/latent_see.cc \
src/core/util/linux/cpu.cc \
src/core/util/linux/env.cc \
src/core/util/load_file.cc \
src/core/util/log.cc \
src/core/util/matchers.cc \
src/core/util/mpscq.cc \
src/core/util/msys/tmpfile.cc \
src/core/util/per_cpu.cc \
src/core/util/posix/cpu.cc \
src/core/util/posix/directory_reader.cc \
src/core/util/posix/env.cc \
src/core/util/posix/stat.cc \
src/core/util/posix/string.cc \
src/core/util/posix/sync.cc \
src/core/util/posix/thd.cc \
src/core/util/posix/time.cc \
src/core/util/posix/tmpfile.cc \
src/core/util/random_early_detection.cc \
src/core/util/ref_counted_string.cc \
src/core/util/status_helper.cc \
src/core/util/strerror.cc \
src/core/util/string.cc \
src/core/util/sync.cc \
src/core/util/sync_abseil.cc \
src/core/util/tchar.cc \
src/core/util/time.cc \
src/core/util/time_averaged_stats.cc \
src/core/util/time_precise.cc \
src/core/util/time_util.cc \
src/core/util/uri.cc \
src/core/util/uuid_v4.cc \
src/core/util/validation_errors.cc \
src/core/util/windows/cpu.cc \
src/core/util/windows/directory_reader.cc \
src/core/util/windows/env.cc \
src/core/util/windows/stat.cc \
src/core/util/windows/string.cc \
src/core/util/windows/string_util.cc \
src/core/util/windows/sync.cc \
src/core/util/windows/thd.cc \
src/core/util/windows/time.cc \
src/core/util/windows/tmpfile.cc \
src/core/util/work_serializer.cc \
src/core/xds/grpc/certificate_provider_store.cc \
src/core/xds/grpc/file_watcher_certificate_provider_factory.cc \
src/core/xds/grpc/xds_audit_logger_registry.cc \
@ -1400,7 +1400,7 @@ if test "$PHP_GRPC" != "no"; then
-D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 \
-DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 \
-DGRPC_XDS_USER_AGENT_NAME_SUFFIX='"\"PHP\""' \
-DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"1.67.0dev\""')
-DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"1.68.0dev\""')
PHP_ADD_BUILD_DIR($ext_builddir/src/core/channelz)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/client_channel)
@ -1531,7 +1531,6 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/security)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/tcp_connect)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/address_utils)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/backoff)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/channel)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/compression)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/config)
@ -1544,13 +1543,8 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/event_engine/windows)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/event_engine/work_queue)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/experiments)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp/linux)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp/posix)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp/windows)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr/event_engine_shims)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/matchers)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/promise)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/resource_quota)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security/authorization)
@ -1585,7 +1579,6 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/slice)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/surface)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/transport)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/uri)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/grpclb)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/outlier_detection)

83
config.w32 generated

@ -408,8 +408,6 @@ if (PHP_GRPC != "no") {
"src\\core\\handshaker\\tcp_connect\\tcp_connect_handshaker.cc " +
"src\\core\\lib\\address_utils\\parse_address.cc " +
"src\\core\\lib\\address_utils\\sockaddr_utils.cc " +
"src\\core\\lib\\backoff\\backoff.cc " +
"src\\core\\lib\\backoff\\random_early_detection.cc " +
"src\\core\\lib\\channel\\channel_args.cc " +
"src\\core\\lib\\channel\\channel_args_preconditioning.cc " +
"src\\core\\lib\\channel\\channel_stack.cc " +
@ -425,7 +423,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\config\\config_vars_non_generated.cc " +
"src\\core\\lib\\config\\core_configuration.cc " +
"src\\core\\lib\\config\\load_config.cc " +
"src\\core\\lib\\debug\\event_log.cc " +
"src\\core\\lib\\debug\\trace.cc " +
"src\\core\\lib\\debug\\trace_flags.cc " +
"src\\core\\lib\\event_engine\\ares_resolver.cc " +
@ -477,34 +474,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\event_engine\\work_queue\\basic_work_queue.cc " +
"src\\core\\lib\\experiments\\config.cc " +
"src\\core\\lib\\experiments\\experiments.cc " +
"src\\core\\lib\\gprpp\\crash.cc " +
"src\\core\\lib\\gprpp\\dump_args.cc " +
"src\\core\\lib\\gprpp\\examine_stack.cc " +
"src\\core\\lib\\gprpp\\fork.cc " +
"src\\core\\lib\\gprpp\\glob.cc " +
"src\\core\\lib\\gprpp\\host_port.cc " +
"src\\core\\lib\\gprpp\\linux\\env.cc " +
"src\\core\\lib\\gprpp\\load_file.cc " +
"src\\core\\lib\\gprpp\\mpscq.cc " +
"src\\core\\lib\\gprpp\\per_cpu.cc " +
"src\\core\\lib\\gprpp\\posix\\directory_reader.cc " +
"src\\core\\lib\\gprpp\\posix\\env.cc " +
"src\\core\\lib\\gprpp\\posix\\stat.cc " +
"src\\core\\lib\\gprpp\\posix\\thd.cc " +
"src\\core\\lib\\gprpp\\ref_counted_string.cc " +
"src\\core\\lib\\gprpp\\status_helper.cc " +
"src\\core\\lib\\gprpp\\strerror.cc " +
"src\\core\\lib\\gprpp\\tchar.cc " +
"src\\core\\lib\\gprpp\\time.cc " +
"src\\core\\lib\\gprpp\\time_averaged_stats.cc " +
"src\\core\\lib\\gprpp\\time_util.cc " +
"src\\core\\lib\\gprpp\\uuid_v4.cc " +
"src\\core\\lib\\gprpp\\validation_errors.cc " +
"src\\core\\lib\\gprpp\\windows\\directory_reader.cc " +
"src\\core\\lib\\gprpp\\windows\\env.cc " +
"src\\core\\lib\\gprpp\\windows\\stat.cc " +
"src\\core\\lib\\gprpp\\windows\\thd.cc " +
"src\\core\\lib\\gprpp\\work_serializer.cc " +
"src\\core\\lib\\iomgr\\buffer_list.cc " +
"src\\core\\lib\\iomgr\\call_combiner.cc " +
"src\\core\\lib\\iomgr\\cfstream_handle.cc " +
@ -528,11 +497,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\executor.cc " +
"src\\core\\lib\\iomgr\\fork_posix.cc " +
"src\\core\\lib\\iomgr\\fork_windows.cc " +
"src\\core\\lib\\iomgr\\gethostname_fallback.cc " +
"src\\core\\lib\\iomgr\\gethostname_host_name_max.cc " +
"src\\core\\lib\\iomgr\\gethostname_sysconf.cc " +
"src\\core\\lib\\iomgr\\grpc_if_nametoindex_posix.cc " +
"src\\core\\lib\\iomgr\\grpc_if_nametoindex_unsupported.cc " +
"src\\core\\lib\\iomgr\\internal_errqueue.cc " +
"src\\core\\lib\\iomgr\\iocp_windows.cc " +
"src\\core\\lib\\iomgr\\iomgr.cc " +
@ -581,7 +545,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\wakeup_fd_nospecial.cc " +
"src\\core\\lib\\iomgr\\wakeup_fd_pipe.cc " +
"src\\core\\lib\\iomgr\\wakeup_fd_posix.cc " +
"src\\core\\lib\\matchers\\matchers.cc " +
"src\\core\\lib\\promise\\activity.cc " +
"src\\core\\lib\\promise\\party.cc " +
"src\\core\\lib\\promise\\sleep.cc " +
@ -701,7 +664,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\transport\\timeout_encoding.cc " +
"src\\core\\lib\\transport\\transport.cc " +
"src\\core\\lib\\transport\\transport_op_string.cc " +
"src\\core\\lib\\uri\\uri_parser.cc " +
"src\\core\\load_balancing\\address_filtering.cc " +
"src\\core\\load_balancing\\backend_metric_parser.cc " +
"src\\core\\load_balancing\\child_policy_handler.cc " +
@ -796,7 +758,21 @@ if (PHP_GRPC != "no") {
"src\\core\\tsi\\transport_security_grpc.cc " +
"src\\core\\util\\alloc.cc " +
"src\\core\\util\\atm.cc " +
"src\\core\\util\\backoff.cc " +
"src\\core\\util\\crash.cc " +
"src\\core\\util\\dump_args.cc " +
"src\\core\\util\\event_log.cc " +
"src\\core\\util\\examine_stack.cc " +
"src\\core\\util\\fork.cc " +
"src\\core\\util\\gcp_metadata_query.cc " +
"src\\core\\util\\gethostname_fallback.cc " +
"src\\core\\util\\gethostname_host_name_max.cc " +
"src\\core\\util\\gethostname_sysconf.cc " +
"src\\core\\util\\glob.cc " +
"src\\core\\util\\gpr_time.cc " +
"src\\core\\util\\grpc_if_nametoindex_posix.cc " +
"src\\core\\util\\grpc_if_nametoindex_unsupported.cc " +
"src\\core\\util\\host_port.cc " +
"src\\core\\util\\http_client\\format_request.cc " +
"src\\core\\util\\http_client\\httpcli.cc " +
"src\\core\\util\\http_client\\httpcli_security_connector.cc " +
@ -808,24 +784,48 @@ if (PHP_GRPC != "no") {
"src\\core\\util\\json\\json_writer.cc " +
"src\\core\\util\\latent_see.cc " +
"src\\core\\util\\linux\\cpu.cc " +
"src\\core\\util\\linux\\env.cc " +
"src\\core\\util\\load_file.cc " +
"src\\core\\util\\log.cc " +
"src\\core\\util\\matchers.cc " +
"src\\core\\util\\mpscq.cc " +
"src\\core\\util\\msys\\tmpfile.cc " +
"src\\core\\util\\per_cpu.cc " +
"src\\core\\util\\posix\\cpu.cc " +
"src\\core\\util\\posix\\directory_reader.cc " +
"src\\core\\util\\posix\\env.cc " +
"src\\core\\util\\posix\\stat.cc " +
"src\\core\\util\\posix\\string.cc " +
"src\\core\\util\\posix\\sync.cc " +
"src\\core\\util\\posix\\thd.cc " +
"src\\core\\util\\posix\\time.cc " +
"src\\core\\util\\posix\\tmpfile.cc " +
"src\\core\\util\\random_early_detection.cc " +
"src\\core\\util\\ref_counted_string.cc " +
"src\\core\\util\\status_helper.cc " +
"src\\core\\util\\strerror.cc " +
"src\\core\\util\\string.cc " +
"src\\core\\util\\sync.cc " +
"src\\core\\util\\sync_abseil.cc " +
"src\\core\\util\\tchar.cc " +
"src\\core\\util\\time.cc " +
"src\\core\\util\\time_averaged_stats.cc " +
"src\\core\\util\\time_precise.cc " +
"src\\core\\util\\time_util.cc " +
"src\\core\\util\\uri.cc " +
"src\\core\\util\\uuid_v4.cc " +
"src\\core\\util\\validation_errors.cc " +
"src\\core\\util\\windows\\cpu.cc " +
"src\\core\\util\\windows\\directory_reader.cc " +
"src\\core\\util\\windows\\env.cc " +
"src\\core\\util\\windows\\stat.cc " +
"src\\core\\util\\windows\\string.cc " +
"src\\core\\util\\windows\\string_util.cc " +
"src\\core\\util\\windows\\sync.cc " +
"src\\core\\util\\windows\\thd.cc " +
"src\\core\\util\\windows\\time.cc " +
"src\\core\\util\\windows\\tmpfile.cc " +
"src\\core\\util\\work_serializer.cc " +
"src\\core\\xds\\grpc\\certificate_provider_store.cc " +
"src\\core\\xds\\grpc\\file_watcher_certificate_provider_factory.cc " +
"src\\core\\xds\\grpc\\xds_audit_logger_registry.cc " +
@ -1670,7 +1670,6 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker\\tcp_connect");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\address_utils");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\backoff");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\channel");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\compression");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\config");
@ -1683,13 +1682,8 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\event_engine\\windows");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\event_engine\\work_queue");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\experiments");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp\\linux");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp\\posix");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp\\windows");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\iomgr");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\iomgr\\event_engine_shims");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\matchers");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\promise");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\resource_quota");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\security");
@ -1725,7 +1719,6 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\slice");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\surface");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\transport");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\uri");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\grpclb");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\outlier_detection");

@ -66,4 +66,5 @@
- 1.64 'g' stands for ['grateful'](https://github.com/grpc/grpc/tree/v1.64.x)
- 1.65 'g' stands for ['gnarly'](https://github.com/grpc/grpc/tree/v1.65.x)
- 1.66 'g' stands for ['gladiator'](https://github.com/grpc/grpc/tree/v1.66.x)
- 1.67 'g' stands for ['gesundheit'](https://github.com/grpc/grpc/tree/master)
- 1.67 'g' stands for ['gesundheit'](https://github.com/grpc/grpc/tree/v1.67.x)
- 1.68 'g' stands for ['groovy'](https://github.com/grpc/grpc/tree/master)

@ -81,4 +81,5 @@ LRS Custom Metrics Support | [A64](https://github.com/grpc/proposal/blob/master/
mTLS Credentials in xDS Bootstrap File | [A65](https://github.com/grpc/proposal/blob/master/A65-xds-mtls-creds-in-bootstrap.md) | v1.65.0 | | v1.61.0 | |
Stateful Session Affinity | [A55](https://github.com/grpc/proposal/blob/master/A55-xds-stateful-session-affinity.md), [A60](https://github.com/grpc/proposal/blob/master/A60-xds-stateful-session-affinity-weighted-clusters.md), [A75](https://github.com/grpc/proposal/blob/master/A75-xds-aggregate-cluster-behavior-fixes.md) | v1.61.0 | | | |
xDS Locality label for OpenTelemetry metrics | [A78](https://github.com/grpc/proposal/blob/master/A78-grpc-metrics-wrr-pf-xds.md) | v1.63.0 (C++) | v1.64.0 | | |
xDS Fallback | [A71](https://github.com/grpc/proposal/blob/master/A71-xds-fallback.md) | v1.67.0 | | | |
Dualstack Backend Support | [A61](https://github.com/grpc/proposal/blob/master/A61-IPv4-IPv6-dualstack-backends.md) | v1.66.1 | | | |

@ -35,7 +35,7 @@
#include <grpcpp/health_check_service_interface.h>
#include <grpcpp/xds_server_builder.h>
#include "src/core/lib/iomgr/gethostname.h"
#include "src/core/util/gethostname.h"
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"

@ -14,6 +14,33 @@
licenses(["notice"])
cc_binary(
name = "client_flow_control_client",
srcs = ["client_flow_control_client.cc"],
defines = ["BAZEL_BUILD"],
deps = [
"//:grpc++",
"//:grpc++_reflection",
"//examples/protos:helloworld_cc_grpc",
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/flags:parse",
],
)
cc_binary(
name = "client_flow_control_server",
srcs = ["client_flow_control_server.cc"],
defines = ["BAZEL_BUILD"],
deps = [
"//:grpc++",
"//:grpc++_reflection",
"//examples/protos:helloworld_cc_grpc",
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/flags:parse",
"@com_google_absl//absl/strings:str_format",
],
)
cc_binary(
name = "server_flow_control_client",
srcs = ["server_flow_control_client.cc"],

@ -59,6 +59,7 @@ target_link_libraries(hw_grpc_proto
# Targets greeter_[async_](client|server)
foreach(_target
client_flow_control_client client_flow_control_server
server_flow_control_client server_flow_control_server)
add_executable(${_target} "${_target}.cc")
target_link_libraries(${_target}

@ -0,0 +1,126 @@
/*
*
* Copyright 2024 gRPC authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
#include <cstddef>
#include <ostream>
#include <string>
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include <grpc/grpc.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else
#include "helloworld.grpc.pb.h"
#endif
ABSL_FLAG(std::string, target, "localhost:50051", "Server address");
using grpc::CallbackServerContext;
using grpc::Channel;
using grpc::ClientContext;
using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerUnaryReactor;
using grpc::Status;
using helloworld::Greeter;
using helloworld::HelloReply;
using helloworld::HelloRequest;
namespace {
// Sends requests as quickly as possible and times how long it takes to perform
// the write operation.
class GreeterClientReactor final
: public grpc::ClientBidiReactor<helloworld::HelloRequest,
helloworld::HelloReply> {
public:
explicit GreeterClientReactor(int reqs, size_t req_size) : reqs_(reqs) {
req_.set_name(std::string(req_size, '*'));
}
void Start() {
absl::MutexLock lock(&mu_);
StartCall();
Write();
}
~GreeterClientReactor() override {
absl::MutexLock lock(&mu_);
mu_.Await(absl::Condition(+[](bool* done) { return *done; }, &done_));
}
void OnWriteDone(bool ok) override {
absl::MutexLock lock(&mu_);
std::cout << "Writing took " << absl::Now() - *time_ << std::endl;
time_ = absl::nullopt;
if (ok) {
Write();
}
}
void OnDone(const grpc::Status& status) override {
if (status.ok()) {
std::cout << "Done\n";
} else {
std::cout << "Done with error: [" << status.error_code() << "] "
<< status.error_message() << "\n";
}
absl::MutexLock lock(&mu_);
done_ = true;
}
private:
void Write() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&mu_) {
if (reqs_ == 0) {
StartWritesDone();
return;
}
--reqs_;
StartWrite(&req_);
time_ = absl::Now();
}
absl::Mutex mu_;
bool done_ ABSL_GUARDED_BY(&mu_) = false;
HelloRequest req_;
size_t reqs_;
absl::optional<absl::Time> time_ ABSL_GUARDED_BY(mu_);
};
} // namespace
int main(int argc, char** argv) {
absl::ParseCommandLine(argc, argv);
grpc::ChannelArguments channel_arguments;
auto channel = grpc::CreateCustomChannel(absl::GetFlag(FLAGS_target),
grpc::InsecureChannelCredentials(),
channel_arguments);
auto stub = Greeter::NewStub(channel);
// Send 10 requests with 3Mb payload. This will eventually fill the buffer
// and make
GreeterClientReactor reactor(10, 3 * 1024 * 1024);
grpc::ClientContext context;
stub->async()->SayHelloBidiStream(&context, &reactor);
reactor.Start();
return 0;
}

@ -0,0 +1,111 @@
/*
*
* Copyright 2021 gRPC authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
#include <cstddef>
#include <cstdint>
#include <iostream>
#include <string>
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else
#include "helloworld.grpc.pb.h"
#endif
ABSL_FLAG(uint16_t, port, 50051, "Server port for the service");
ABSL_FLAG(size_t, quota, 20, "Resource quota, in megabytes");
namespace {
//
// Server reactor that is slow to read incoming messages, causing the buffers
// to fill.
//
class SlowReadingBidiReactor final
: public grpc::ServerBidiReactor<helloworld::HelloRequest,
helloworld::HelloReply> {
public:
SlowReadingBidiReactor() { StartRead(&req_); }
void OnReadDone(bool ok) override {
std::cout << "Recieved request with " << req_.name().length()
<< " bytes name\n";
if (!ok) {
Finish(grpc::Status::OK);
return;
}
sleep(1);
StartRead(&req_);
}
void OnDone() override {
std::cout << "Done\n";
delete this;
}
private:
absl::Mutex mu_;
helloworld::HelloRequest req_;
};
// Logic and data behind the server's behavior.
class GreeterServiceImpl final : public helloworld::Greeter::CallbackService {
grpc::ServerBidiReactor<helloworld::HelloRequest, helloworld::HelloReply>*
SayHelloBidiStream(grpc::CallbackServerContext* /* context */) override {
return new SlowReadingBidiReactor();
}
};
} // namespace
void RunServer(uint16_t port) {
std::string server_address = absl::StrFormat("0.0.0.0:%d", port);
GreeterServiceImpl service;
grpc::EnableDefaultHealthCheckService(true);
grpc::reflection::InitProtoReflectionServerBuilderPlugin();
grpc::ServerBuilder builder;
// Listen on the given address without any authentication mechanism.
builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
// Register "service" as the instance through which we'll communicate with
// clients. In this case it corresponds to an *synchronous* service.
builder.RegisterService(&service);
grpc::ResourceQuota quota;
quota.Resize(absl::GetFlag(FLAGS_quota) * 1024 * 1024);
// Finally assemble the server.
auto server = builder.BuildAndStart();
std::cout << "Server listening on " << server_address << std::endl;
// Wait for the server to shutdown. Note that some other thread must be
// responsible for shutting down the server for this call to ever return.
server->Wait();
}
int main(int argc, char** argv) {
absl::ParseCommandLine(argc, argv);
RunServer(absl::GetFlag(FLAGS_port));
return 0;
}

@ -27,7 +27,7 @@
#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/util/time.h"
#include "src/core/lib/slice/slice_buffer.h"
#include "src/core/lib/transport/metadata_batch.h"

230
gRPC-C++.podspec generated

@ -22,7 +22,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC-C++'
# TODO (mxyan): use version that match gRPC version when pod is stabilized
version = '1.67.0-dev'
version = '1.68.0-dev'
s.version = version
s.summary = 'gRPC C++ library'
s.homepage = 'https://grpc.io'
@ -882,9 +882,6 @@ Pod::Spec.new do |s|
'src/core/handshaker/tcp_connect/tcp_connect_handshaker.h',
'src/core/lib/address_utils/parse_address.h',
'src/core/lib/address_utils/sockaddr_utils.h',
'src/core/lib/avl/avl.h',
'src/core/lib/backoff/backoff.h',
'src/core/lib/backoff/random_early_detection.h',
'src/core/lib/channel/call_finalization.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_args_preconditioning.h',
@ -900,7 +897,6 @@ Pod::Spec.new do |s|
'src/core/lib/config/config_vars.h',
'src/core/lib/config/core_configuration.h',
'src/core/lib/config/load_config.h',
'src/core/lib/debug/event_log.h',
'src/core/lib/debug/trace.h',
'src/core/lib/debug/trace_flags.h',
'src/core/lib/debug/trace_impl.h',
@ -970,55 +966,6 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/work_queue/work_queue.h',
'src/core/lib/experiments/config.h',
'src/core/lib/experiments/experiments.h',
'src/core/lib/gprpp/atomic_utils.h',
'src/core/lib/gprpp/bitset.h',
'src/core/lib/gprpp/chunked_vector.h',
'src/core/lib/gprpp/construct_destruct.h',
'src/core/lib/gprpp/cpp_impl_of.h',
'src/core/lib/gprpp/crash.h',
'src/core/lib/gprpp/debug_location.h',
'src/core/lib/gprpp/directory_reader.h',
'src/core/lib/gprpp/down_cast.h',
'src/core/lib/gprpp/dual_ref_counted.h',
'src/core/lib/gprpp/dump_args.h',
'src/core/lib/gprpp/env.h',
'src/core/lib/gprpp/examine_stack.h',
'src/core/lib/gprpp/fork.h',
'src/core/lib/gprpp/glob.h',
'src/core/lib/gprpp/host_port.h',
'src/core/lib/gprpp/if_list.h',
'src/core/lib/gprpp/load_file.h',
'src/core/lib/gprpp/manual_constructor.h',
'src/core/lib/gprpp/match.h',
'src/core/lib/gprpp/memory.h',
'src/core/lib/gprpp/mpscq.h',
'src/core/lib/gprpp/no_destruct.h',
'src/core/lib/gprpp/notification.h',
'src/core/lib/gprpp/orphanable.h',
'src/core/lib/gprpp/overload.h',
'src/core/lib/gprpp/packed_table.h',
'src/core/lib/gprpp/per_cpu.h',
'src/core/lib/gprpp/ref_counted.h',
'src/core/lib/gprpp/ref_counted_ptr.h',
'src/core/lib/gprpp/ref_counted_string.h',
'src/core/lib/gprpp/single_set_ptr.h',
'src/core/lib/gprpp/sorted_pack.h',
'src/core/lib/gprpp/stat.h',
'src/core/lib/gprpp/status_helper.h',
'src/core/lib/gprpp/strerror.h',
'src/core/lib/gprpp/sync.h',
'src/core/lib/gprpp/table.h',
'src/core/lib/gprpp/tchar.h',
'src/core/lib/gprpp/thd.h',
'src/core/lib/gprpp/time.h',
'src/core/lib/gprpp/time_averaged_stats.h',
'src/core/lib/gprpp/time_util.h',
'src/core/lib/gprpp/type_list.h',
'src/core/lib/gprpp/unique_type_name.h',
'src/core/lib/gprpp/uuid_v4.h',
'src/core/lib/gprpp/validation_errors.h',
'src/core/lib/gprpp/work_serializer.h',
'src/core/lib/gprpp/xxhash_inline.h',
'src/core/lib/iomgr/block_annotate.h',
'src/core/lib/iomgr/buffer_list.h',
'src/core/lib/iomgr/call_combiner.h',
@ -1040,8 +987,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/event_engine_shims/tcp_client.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
'src/core/lib/iomgr/gethostname.h',
'src/core/lib/iomgr/grpc_if_nametoindex.h',
'src/core/lib/iomgr/internal_errqueue.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
@ -1084,7 +1029,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/vsock.h',
'src/core/lib/iomgr/wakeup_fd_pipe.h',
'src/core/lib/iomgr/wakeup_fd_posix.h',
'src/core/lib/matchers/matchers.h',
'src/core/lib/promise/activity.h',
'src/core/lib/promise/all_ok.h',
'src/core/lib/promise/arena_promise.h',
@ -1226,7 +1170,6 @@ Pod::Spec.new do |s|
'src/core/lib/transport/timeout_encoding.h',
'src/core/lib/transport/transport.h',
'src/core/lib/transport/transport_fwd.h',
'src/core/lib/uri/uri_parser.h',
'src/core/load_balancing/address_filtering.h',
'src/core/load_balancing/backend_metric_data.h',
'src/core/load_balancing/backend_metric_parser.h',
@ -1317,11 +1260,33 @@ Pod::Spec.new do |s|
'src/core/tsi/transport_security_grpc.h',
'src/core/tsi/transport_security_interface.h',
'src/core/util/alloc.h',
'src/core/util/atomic_utils.h',
'src/core/util/avl.h',
'src/core/util/backoff.h',
'src/core/util/bitset.h',
'src/core/util/chunked_vector.h',
'src/core/util/construct_destruct.h',
'src/core/util/cpp_impl_of.h',
'src/core/util/crash.h',
'src/core/util/debug_location.h',
'src/core/util/directory_reader.h',
'src/core/util/down_cast.h',
'src/core/util/dual_ref_counted.h',
'src/core/util/dump_args.h',
'src/core/util/env.h',
'src/core/util/event_log.h',
'src/core/util/examine_stack.h',
'src/core/util/fork.h',
'src/core/util/gcp_metadata_query.h',
'src/core/util/gethostname.h',
'src/core/util/glob.h',
'src/core/util/grpc_if_nametoindex.h',
'src/core/util/host_port.h',
'src/core/util/http_client/format_request.h',
'src/core/util/http_client/httpcli.h',
'src/core/util/http_client/httpcli_ssl_credentials.h',
'src/core/util/http_client/parser.h',
'src/core/util/if_list.h',
'src/core/util/json/json.h',
'src/core/util/json/json_args.h',
'src/core/util/json/json_channel_args.h',
@ -1330,15 +1295,50 @@ Pod::Spec.new do |s|
'src/core/util/json/json_util.h',
'src/core/util/json/json_writer.h',
'src/core/util/latent_see.h',
'src/core/util/load_file.h',
'src/core/util/lru_cache.h',
'src/core/util/manual_constructor.h',
'src/core/util/match.h',
'src/core/util/matchers.h',
'src/core/util/memory.h',
'src/core/util/mpscq.h',
'src/core/util/no_destruct.h',
'src/core/util/notification.h',
'src/core/util/orphanable.h',
'src/core/util/overload.h',
'src/core/util/packed_table.h',
'src/core/util/per_cpu.h',
'src/core/util/random_early_detection.h',
'src/core/util/ref_counted.h',
'src/core/util/ref_counted_ptr.h',
'src/core/util/ref_counted_string.h',
'src/core/util/ring_buffer.h',
'src/core/util/single_set_ptr.h',
'src/core/util/sorted_pack.h',
'src/core/util/spinlock.h',
'src/core/util/stat.h',
'src/core/util/status_helper.h',
'src/core/util/strerror.h',
'src/core/util/string.h',
'src/core/util/sync.h',
'src/core/util/table.h',
'src/core/util/tchar.h',
'src/core/util/thd.h',
'src/core/util/time.h',
'src/core/util/time_averaged_stats.h',
'src/core/util/time_precise.h',
'src/core/util/time_util.h',
'src/core/util/tmpfile.h',
'src/core/util/type_list.h',
'src/core/util/unique_ptr_with_bitset.h',
'src/core/util/unique_type_name.h',
'src/core/util/upb_utils.h',
'src/core/util/uri.h',
'src/core/util/useful.h',
'src/core/util/uuid_v4.h',
'src/core/util/validation_errors.h',
'src/core/util/work_serializer.h',
'src/core/util/xxhash_inline.h',
'src/core/xds/grpc/certificate_provider_store.h',
'src/core/xds/grpc/file_watcher_certificate_provider_factory.h',
'src/core/xds/grpc/xds_audit_logger_registry.h',
@ -2179,9 +2179,6 @@ Pod::Spec.new do |s|
'src/core/handshaker/tcp_connect/tcp_connect_handshaker.h',
'src/core/lib/address_utils/parse_address.h',
'src/core/lib/address_utils/sockaddr_utils.h',
'src/core/lib/avl/avl.h',
'src/core/lib/backoff/backoff.h',
'src/core/lib/backoff/random_early_detection.h',
'src/core/lib/channel/call_finalization.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_args_preconditioning.h',
@ -2197,7 +2194,6 @@ Pod::Spec.new do |s|
'src/core/lib/config/config_vars.h',
'src/core/lib/config/core_configuration.h',
'src/core/lib/config/load_config.h',
'src/core/lib/debug/event_log.h',
'src/core/lib/debug/trace.h',
'src/core/lib/debug/trace_flags.h',
'src/core/lib/debug/trace_impl.h',
@ -2267,55 +2263,6 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/work_queue/work_queue.h',
'src/core/lib/experiments/config.h',
'src/core/lib/experiments/experiments.h',
'src/core/lib/gprpp/atomic_utils.h',
'src/core/lib/gprpp/bitset.h',
'src/core/lib/gprpp/chunked_vector.h',
'src/core/lib/gprpp/construct_destruct.h',
'src/core/lib/gprpp/cpp_impl_of.h',
'src/core/lib/gprpp/crash.h',
'src/core/lib/gprpp/debug_location.h',
'src/core/lib/gprpp/directory_reader.h',
'src/core/lib/gprpp/down_cast.h',
'src/core/lib/gprpp/dual_ref_counted.h',
'src/core/lib/gprpp/dump_args.h',
'src/core/lib/gprpp/env.h',
'src/core/lib/gprpp/examine_stack.h',
'src/core/lib/gprpp/fork.h',
'src/core/lib/gprpp/glob.h',
'src/core/lib/gprpp/host_port.h',
'src/core/lib/gprpp/if_list.h',
'src/core/lib/gprpp/load_file.h',
'src/core/lib/gprpp/manual_constructor.h',
'src/core/lib/gprpp/match.h',
'src/core/lib/gprpp/memory.h',
'src/core/lib/gprpp/mpscq.h',
'src/core/lib/gprpp/no_destruct.h',
'src/core/lib/gprpp/notification.h',
'src/core/lib/gprpp/orphanable.h',
'src/core/lib/gprpp/overload.h',
'src/core/lib/gprpp/packed_table.h',
'src/core/lib/gprpp/per_cpu.h',
'src/core/lib/gprpp/ref_counted.h',
'src/core/lib/gprpp/ref_counted_ptr.h',
'src/core/lib/gprpp/ref_counted_string.h',
'src/core/lib/gprpp/single_set_ptr.h',
'src/core/lib/gprpp/sorted_pack.h',
'src/core/lib/gprpp/stat.h',
'src/core/lib/gprpp/status_helper.h',
'src/core/lib/gprpp/strerror.h',
'src/core/lib/gprpp/sync.h',
'src/core/lib/gprpp/table.h',
'src/core/lib/gprpp/tchar.h',
'src/core/lib/gprpp/thd.h',
'src/core/lib/gprpp/time.h',
'src/core/lib/gprpp/time_averaged_stats.h',
'src/core/lib/gprpp/time_util.h',
'src/core/lib/gprpp/type_list.h',
'src/core/lib/gprpp/unique_type_name.h',
'src/core/lib/gprpp/uuid_v4.h',
'src/core/lib/gprpp/validation_errors.h',
'src/core/lib/gprpp/work_serializer.h',
'src/core/lib/gprpp/xxhash_inline.h',
'src/core/lib/iomgr/block_annotate.h',
'src/core/lib/iomgr/buffer_list.h',
'src/core/lib/iomgr/call_combiner.h',
@ -2337,8 +2284,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/event_engine_shims/tcp_client.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
'src/core/lib/iomgr/gethostname.h',
'src/core/lib/iomgr/grpc_if_nametoindex.h',
'src/core/lib/iomgr/internal_errqueue.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
@ -2381,7 +2326,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/vsock.h',
'src/core/lib/iomgr/wakeup_fd_pipe.h',
'src/core/lib/iomgr/wakeup_fd_posix.h',
'src/core/lib/matchers/matchers.h',
'src/core/lib/promise/activity.h',
'src/core/lib/promise/all_ok.h',
'src/core/lib/promise/arena_promise.h',
@ -2523,7 +2467,6 @@ Pod::Spec.new do |s|
'src/core/lib/transport/timeout_encoding.h',
'src/core/lib/transport/transport.h',
'src/core/lib/transport/transport_fwd.h',
'src/core/lib/uri/uri_parser.h',
'src/core/load_balancing/address_filtering.h',
'src/core/load_balancing/backend_metric_data.h',
'src/core/load_balancing/backend_metric_parser.h',
@ -2614,11 +2557,33 @@ Pod::Spec.new do |s|
'src/core/tsi/transport_security_grpc.h',
'src/core/tsi/transport_security_interface.h',
'src/core/util/alloc.h',
'src/core/util/atomic_utils.h',
'src/core/util/avl.h',
'src/core/util/backoff.h',
'src/core/util/bitset.h',
'src/core/util/chunked_vector.h',
'src/core/util/construct_destruct.h',
'src/core/util/cpp_impl_of.h',
'src/core/util/crash.h',
'src/core/util/debug_location.h',
'src/core/util/directory_reader.h',
'src/core/util/down_cast.h',
'src/core/util/dual_ref_counted.h',
'src/core/util/dump_args.h',
'src/core/util/env.h',
'src/core/util/event_log.h',
'src/core/util/examine_stack.h',
'src/core/util/fork.h',
'src/core/util/gcp_metadata_query.h',
'src/core/util/gethostname.h',
'src/core/util/glob.h',
'src/core/util/grpc_if_nametoindex.h',
'src/core/util/host_port.h',
'src/core/util/http_client/format_request.h',
'src/core/util/http_client/httpcli.h',
'src/core/util/http_client/httpcli_ssl_credentials.h',
'src/core/util/http_client/parser.h',
'src/core/util/if_list.h',
'src/core/util/json/json.h',
'src/core/util/json/json_args.h',
'src/core/util/json/json_channel_args.h',
@ -2627,15 +2592,50 @@ Pod::Spec.new do |s|
'src/core/util/json/json_util.h',
'src/core/util/json/json_writer.h',
'src/core/util/latent_see.h',
'src/core/util/load_file.h',
'src/core/util/lru_cache.h',
'src/core/util/manual_constructor.h',
'src/core/util/match.h',
'src/core/util/matchers.h',
'src/core/util/memory.h',
'src/core/util/mpscq.h',
'src/core/util/no_destruct.h',
'src/core/util/notification.h',
'src/core/util/orphanable.h',
'src/core/util/overload.h',
'src/core/util/packed_table.h',
'src/core/util/per_cpu.h',
'src/core/util/random_early_detection.h',
'src/core/util/ref_counted.h',
'src/core/util/ref_counted_ptr.h',
'src/core/util/ref_counted_string.h',
'src/core/util/ring_buffer.h',
'src/core/util/single_set_ptr.h',
'src/core/util/sorted_pack.h',
'src/core/util/spinlock.h',
'src/core/util/stat.h',
'src/core/util/status_helper.h',
'src/core/util/strerror.h',
'src/core/util/string.h',
'src/core/util/sync.h',
'src/core/util/table.h',
'src/core/util/tchar.h',
'src/core/util/thd.h',
'src/core/util/time.h',
'src/core/util/time_averaged_stats.h',
'src/core/util/time_precise.h',
'src/core/util/time_util.h',
'src/core/util/tmpfile.h',
'src/core/util/type_list.h',
'src/core/util/unique_ptr_with_bitset.h',
'src/core/util/unique_type_name.h',
'src/core/util/upb_utils.h',
'src/core/util/uri.h',
'src/core/util/useful.h',
'src/core/util/uuid_v4.h',
'src/core/util/validation_errors.h',
'src/core/util/work_serializer.h',
'src/core/util/xxhash_inline.h',
'src/core/xds/grpc/certificate_provider_store.h',
'src/core/xds/grpc/file_watcher_certificate_provider_factory.h',
'src/core/xds/grpc/xds_audit_logger_registry.h',

306
gRPC-Core.podspec generated

@ -21,7 +21,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC-Core'
version = '1.67.0-dev'
version = '1.68.0-dev'
s.version = version
s.summary = 'Core cross-platform gRPC library, written in C'
s.homepage = 'https://grpc.io'
@ -1213,11 +1213,6 @@ Pod::Spec.new do |s|
'src/core/lib/address_utils/parse_address.h',
'src/core/lib/address_utils/sockaddr_utils.cc',
'src/core/lib/address_utils/sockaddr_utils.h',
'src/core/lib/avl/avl.h',
'src/core/lib/backoff/backoff.cc',
'src/core/lib/backoff/backoff.h',
'src/core/lib/backoff/random_early_detection.cc',
'src/core/lib/backoff/random_early_detection.h',
'src/core/lib/channel/call_finalization.h',
'src/core/lib/channel/channel_args.cc',
'src/core/lib/channel/channel_args.h',
@ -1248,8 +1243,6 @@ Pod::Spec.new do |s|
'src/core/lib/config/core_configuration.h',
'src/core/lib/config/load_config.cc',
'src/core/lib/config/load_config.h',
'src/core/lib/debug/event_log.cc',
'src/core/lib/debug/event_log.h',
'src/core/lib/debug/trace.cc',
'src/core/lib/debug/trace.h',
'src/core/lib/debug/trace_flags.cc',
@ -1370,83 +1363,6 @@ Pod::Spec.new do |s|
'src/core/lib/experiments/config.h',
'src/core/lib/experiments/experiments.cc',
'src/core/lib/experiments/experiments.h',
'src/core/lib/gprpp/atomic_utils.h',
'src/core/lib/gprpp/bitset.h',
'src/core/lib/gprpp/chunked_vector.h',
'src/core/lib/gprpp/construct_destruct.h',
'src/core/lib/gprpp/cpp_impl_of.h',
'src/core/lib/gprpp/crash.cc',
'src/core/lib/gprpp/crash.h',
'src/core/lib/gprpp/debug_location.h',
'src/core/lib/gprpp/directory_reader.h',
'src/core/lib/gprpp/down_cast.h',
'src/core/lib/gprpp/dual_ref_counted.h',
'src/core/lib/gprpp/dump_args.cc',
'src/core/lib/gprpp/dump_args.h',
'src/core/lib/gprpp/env.h',
'src/core/lib/gprpp/examine_stack.cc',
'src/core/lib/gprpp/examine_stack.h',
'src/core/lib/gprpp/fork.cc',
'src/core/lib/gprpp/fork.h',
'src/core/lib/gprpp/glob.cc',
'src/core/lib/gprpp/glob.h',
'src/core/lib/gprpp/host_port.cc',
'src/core/lib/gprpp/host_port.h',
'src/core/lib/gprpp/if_list.h',
'src/core/lib/gprpp/linux/env.cc',
'src/core/lib/gprpp/load_file.cc',
'src/core/lib/gprpp/load_file.h',
'src/core/lib/gprpp/manual_constructor.h',
'src/core/lib/gprpp/match.h',
'src/core/lib/gprpp/memory.h',
'src/core/lib/gprpp/mpscq.cc',
'src/core/lib/gprpp/mpscq.h',
'src/core/lib/gprpp/no_destruct.h',
'src/core/lib/gprpp/notification.h',
'src/core/lib/gprpp/orphanable.h',
'src/core/lib/gprpp/overload.h',
'src/core/lib/gprpp/packed_table.h',
'src/core/lib/gprpp/per_cpu.cc',
'src/core/lib/gprpp/per_cpu.h',
'src/core/lib/gprpp/posix/directory_reader.cc',
'src/core/lib/gprpp/posix/env.cc',
'src/core/lib/gprpp/posix/stat.cc',
'src/core/lib/gprpp/posix/thd.cc',
'src/core/lib/gprpp/ref_counted.h',
'src/core/lib/gprpp/ref_counted_ptr.h',
'src/core/lib/gprpp/ref_counted_string.cc',
'src/core/lib/gprpp/ref_counted_string.h',
'src/core/lib/gprpp/single_set_ptr.h',
'src/core/lib/gprpp/sorted_pack.h',
'src/core/lib/gprpp/stat.h',
'src/core/lib/gprpp/status_helper.cc',
'src/core/lib/gprpp/status_helper.h',
'src/core/lib/gprpp/strerror.cc',
'src/core/lib/gprpp/strerror.h',
'src/core/lib/gprpp/sync.h',
'src/core/lib/gprpp/table.h',
'src/core/lib/gprpp/tchar.cc',
'src/core/lib/gprpp/tchar.h',
'src/core/lib/gprpp/thd.h',
'src/core/lib/gprpp/time.cc',
'src/core/lib/gprpp/time.h',
'src/core/lib/gprpp/time_averaged_stats.cc',
'src/core/lib/gprpp/time_averaged_stats.h',
'src/core/lib/gprpp/time_util.cc',
'src/core/lib/gprpp/time_util.h',
'src/core/lib/gprpp/type_list.h',
'src/core/lib/gprpp/unique_type_name.h',
'src/core/lib/gprpp/uuid_v4.cc',
'src/core/lib/gprpp/uuid_v4.h',
'src/core/lib/gprpp/validation_errors.cc',
'src/core/lib/gprpp/validation_errors.h',
'src/core/lib/gprpp/windows/directory_reader.cc',
'src/core/lib/gprpp/windows/env.cc',
'src/core/lib/gprpp/windows/stat.cc',
'src/core/lib/gprpp/windows/thd.cc',
'src/core/lib/gprpp/work_serializer.cc',
'src/core/lib/gprpp/work_serializer.h',
'src/core/lib/gprpp/xxhash_inline.h',
'src/core/lib/iomgr/block_annotate.h',
'src/core/lib/iomgr/buffer_list.cc',
'src/core/lib/iomgr/buffer_list.h',
@ -1491,13 +1407,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/executor.h',
'src/core/lib/iomgr/fork_posix.cc',
'src/core/lib/iomgr/fork_windows.cc',
'src/core/lib/iomgr/gethostname.h',
'src/core/lib/iomgr/gethostname_fallback.cc',
'src/core/lib/iomgr/gethostname_host_name_max.cc',
'src/core/lib/iomgr/gethostname_sysconf.cc',
'src/core/lib/iomgr/grpc_if_nametoindex.h',
'src/core/lib/iomgr/grpc_if_nametoindex_posix.cc',
'src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc',
'src/core/lib/iomgr/internal_errqueue.cc',
'src/core/lib/iomgr/internal_errqueue.h',
'src/core/lib/iomgr/iocp_windows.cc',
@ -1588,8 +1497,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/wakeup_fd_pipe.h',
'src/core/lib/iomgr/wakeup_fd_posix.cc',
'src/core/lib/iomgr/wakeup_fd_posix.h',
'src/core/lib/matchers/matchers.cc',
'src/core/lib/matchers/matchers.h',
'src/core/lib/promise/activity.cc',
'src/core/lib/promise/activity.h',
'src/core/lib/promise/all_ok.h',
@ -1850,8 +1757,6 @@ Pod::Spec.new do |s|
'src/core/lib/transport/transport.h',
'src/core/lib/transport/transport_fwd.h',
'src/core/lib/transport/transport_op_string.cc',
'src/core/lib/uri/uri_parser.cc',
'src/core/lib/uri/uri_parser.h',
'src/core/load_balancing/address_filtering.cc',
'src/core/load_balancing/address_filtering.h',
'src/core/load_balancing/backend_metric_data.h',
@ -2036,8 +1941,43 @@ Pod::Spec.new do |s|
'src/core/util/alloc.cc',
'src/core/util/alloc.h',
'src/core/util/atm.cc',
'src/core/util/atomic_utils.h',
'src/core/util/avl.h',
'src/core/util/backoff.cc',
'src/core/util/backoff.h',
'src/core/util/bitset.h',
'src/core/util/chunked_vector.h',
'src/core/util/construct_destruct.h',
'src/core/util/cpp_impl_of.h',
'src/core/util/crash.cc',
'src/core/util/crash.h',
'src/core/util/debug_location.h',
'src/core/util/directory_reader.h',
'src/core/util/down_cast.h',
'src/core/util/dual_ref_counted.h',
'src/core/util/dump_args.cc',
'src/core/util/dump_args.h',
'src/core/util/env.h',
'src/core/util/event_log.cc',
'src/core/util/event_log.h',
'src/core/util/examine_stack.cc',
'src/core/util/examine_stack.h',
'src/core/util/fork.cc',
'src/core/util/fork.h',
'src/core/util/gcp_metadata_query.cc',
'src/core/util/gcp_metadata_query.h',
'src/core/util/gethostname.h',
'src/core/util/gethostname_fallback.cc',
'src/core/util/gethostname_host_name_max.cc',
'src/core/util/gethostname_sysconf.cc',
'src/core/util/glob.cc',
'src/core/util/glob.h',
'src/core/util/gpr_time.cc',
'src/core/util/grpc_if_nametoindex.h',
'src/core/util/grpc_if_nametoindex_posix.cc',
'src/core/util/grpc_if_nametoindex_unsupported.cc',
'src/core/util/host_port.cc',
'src/core/util/host_port.h',
'src/core/util/http_client/format_request.cc',
'src/core/util/http_client/format_request.h',
'src/core/util/http_client/httpcli.cc',
@ -2046,6 +1986,7 @@ Pod::Spec.new do |s|
'src/core/util/http_client/httpcli_ssl_credentials.h',
'src/core/util/http_client/parser.cc',
'src/core/util/http_client/parser.h',
'src/core/util/if_list.h',
'src/core/util/iphone/cpu.cc',
'src/core/util/json/json.h',
'src/core/util/json/json_args.h',
@ -2061,33 +2002,92 @@ Pod::Spec.new do |s|
'src/core/util/latent_see.cc',
'src/core/util/latent_see.h',
'src/core/util/linux/cpu.cc',
'src/core/util/linux/env.cc',
'src/core/util/load_file.cc',
'src/core/util/load_file.h',
'src/core/util/log.cc',
'src/core/util/lru_cache.h',
'src/core/util/manual_constructor.h',
'src/core/util/match.h',
'src/core/util/matchers.cc',
'src/core/util/matchers.h',
'src/core/util/memory.h',
'src/core/util/mpscq.cc',
'src/core/util/mpscq.h',
'src/core/util/msys/tmpfile.cc',
'src/core/util/no_destruct.h',
'src/core/util/notification.h',
'src/core/util/orphanable.h',
'src/core/util/overload.h',
'src/core/util/packed_table.h',
'src/core/util/per_cpu.cc',
'src/core/util/per_cpu.h',
'src/core/util/posix/cpu.cc',
'src/core/util/posix/directory_reader.cc',
'src/core/util/posix/env.cc',
'src/core/util/posix/stat.cc',
'src/core/util/posix/string.cc',
'src/core/util/posix/sync.cc',
'src/core/util/posix/thd.cc',
'src/core/util/posix/time.cc',
'src/core/util/posix/tmpfile.cc',
'src/core/util/random_early_detection.cc',
'src/core/util/random_early_detection.h',
'src/core/util/ref_counted.h',
'src/core/util/ref_counted_ptr.h',
'src/core/util/ref_counted_string.cc',
'src/core/util/ref_counted_string.h',
'src/core/util/ring_buffer.h',
'src/core/util/single_set_ptr.h',
'src/core/util/sorted_pack.h',
'src/core/util/spinlock.h',
'src/core/util/stat.h',
'src/core/util/status_helper.cc',
'src/core/util/status_helper.h',
'src/core/util/strerror.cc',
'src/core/util/strerror.h',
'src/core/util/string.cc',
'src/core/util/string.h',
'src/core/util/sync.cc',
'src/core/util/sync.h',
'src/core/util/sync_abseil.cc',
'src/core/util/table.h',
'src/core/util/tchar.cc',
'src/core/util/tchar.h',
'src/core/util/thd.h',
'src/core/util/time.cc',
'src/core/util/time.h',
'src/core/util/time_averaged_stats.cc',
'src/core/util/time_averaged_stats.h',
'src/core/util/time_precise.cc',
'src/core/util/time_precise.h',
'src/core/util/time_util.cc',
'src/core/util/time_util.h',
'src/core/util/tmpfile.h',
'src/core/util/type_list.h',
'src/core/util/unique_ptr_with_bitset.h',
'src/core/util/unique_type_name.h',
'src/core/util/upb_utils.h',
'src/core/util/uri.cc',
'src/core/util/uri.h',
'src/core/util/useful.h',
'src/core/util/uuid_v4.cc',
'src/core/util/uuid_v4.h',
'src/core/util/validation_errors.cc',
'src/core/util/validation_errors.h',
'src/core/util/windows/cpu.cc',
'src/core/util/windows/directory_reader.cc',
'src/core/util/windows/env.cc',
'src/core/util/windows/stat.cc',
'src/core/util/windows/string.cc',
'src/core/util/windows/string_util.cc',
'src/core/util/windows/sync.cc',
'src/core/util/windows/thd.cc',
'src/core/util/windows/time.cc',
'src/core/util/windows/tmpfile.cc',
'src/core/util/work_serializer.cc',
'src/core/util/work_serializer.h',
'src/core/util/xxhash_inline.h',
'src/core/xds/grpc/certificate_provider_store.cc',
'src/core/xds/grpc/certificate_provider_store.h',
'src/core/xds/grpc/file_watcher_certificate_provider_factory.cc',
@ -2963,9 +2963,6 @@ Pod::Spec.new do |s|
'src/core/handshaker/tcp_connect/tcp_connect_handshaker.h',
'src/core/lib/address_utils/parse_address.h',
'src/core/lib/address_utils/sockaddr_utils.h',
'src/core/lib/avl/avl.h',
'src/core/lib/backoff/backoff.h',
'src/core/lib/backoff/random_early_detection.h',
'src/core/lib/channel/call_finalization.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_args_preconditioning.h',
@ -2981,7 +2978,6 @@ Pod::Spec.new do |s|
'src/core/lib/config/config_vars.h',
'src/core/lib/config/core_configuration.h',
'src/core/lib/config/load_config.h',
'src/core/lib/debug/event_log.h',
'src/core/lib/debug/trace.h',
'src/core/lib/debug/trace_flags.h',
'src/core/lib/debug/trace_impl.h',
@ -3051,55 +3047,6 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/work_queue/work_queue.h',
'src/core/lib/experiments/config.h',
'src/core/lib/experiments/experiments.h',
'src/core/lib/gprpp/atomic_utils.h',
'src/core/lib/gprpp/bitset.h',
'src/core/lib/gprpp/chunked_vector.h',
'src/core/lib/gprpp/construct_destruct.h',
'src/core/lib/gprpp/cpp_impl_of.h',
'src/core/lib/gprpp/crash.h',
'src/core/lib/gprpp/debug_location.h',
'src/core/lib/gprpp/directory_reader.h',
'src/core/lib/gprpp/down_cast.h',
'src/core/lib/gprpp/dual_ref_counted.h',
'src/core/lib/gprpp/dump_args.h',
'src/core/lib/gprpp/env.h',
'src/core/lib/gprpp/examine_stack.h',
'src/core/lib/gprpp/fork.h',
'src/core/lib/gprpp/glob.h',
'src/core/lib/gprpp/host_port.h',
'src/core/lib/gprpp/if_list.h',
'src/core/lib/gprpp/load_file.h',
'src/core/lib/gprpp/manual_constructor.h',
'src/core/lib/gprpp/match.h',
'src/core/lib/gprpp/memory.h',
'src/core/lib/gprpp/mpscq.h',
'src/core/lib/gprpp/no_destruct.h',
'src/core/lib/gprpp/notification.h',
'src/core/lib/gprpp/orphanable.h',
'src/core/lib/gprpp/overload.h',
'src/core/lib/gprpp/packed_table.h',
'src/core/lib/gprpp/per_cpu.h',
'src/core/lib/gprpp/ref_counted.h',
'src/core/lib/gprpp/ref_counted_ptr.h',
'src/core/lib/gprpp/ref_counted_string.h',
'src/core/lib/gprpp/single_set_ptr.h',
'src/core/lib/gprpp/sorted_pack.h',
'src/core/lib/gprpp/stat.h',
'src/core/lib/gprpp/status_helper.h',
'src/core/lib/gprpp/strerror.h',
'src/core/lib/gprpp/sync.h',
'src/core/lib/gprpp/table.h',
'src/core/lib/gprpp/tchar.h',
'src/core/lib/gprpp/thd.h',
'src/core/lib/gprpp/time.h',
'src/core/lib/gprpp/time_averaged_stats.h',
'src/core/lib/gprpp/time_util.h',
'src/core/lib/gprpp/type_list.h',
'src/core/lib/gprpp/unique_type_name.h',
'src/core/lib/gprpp/uuid_v4.h',
'src/core/lib/gprpp/validation_errors.h',
'src/core/lib/gprpp/work_serializer.h',
'src/core/lib/gprpp/xxhash_inline.h',
'src/core/lib/iomgr/block_annotate.h',
'src/core/lib/iomgr/buffer_list.h',
'src/core/lib/iomgr/call_combiner.h',
@ -3121,8 +3068,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/event_engine_shims/tcp_client.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
'src/core/lib/iomgr/gethostname.h',
'src/core/lib/iomgr/grpc_if_nametoindex.h',
'src/core/lib/iomgr/internal_errqueue.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
@ -3165,7 +3110,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/vsock.h',
'src/core/lib/iomgr/wakeup_fd_pipe.h',
'src/core/lib/iomgr/wakeup_fd_posix.h',
'src/core/lib/matchers/matchers.h',
'src/core/lib/promise/activity.h',
'src/core/lib/promise/all_ok.h',
'src/core/lib/promise/arena_promise.h',
@ -3307,7 +3251,6 @@ Pod::Spec.new do |s|
'src/core/lib/transport/timeout_encoding.h',
'src/core/lib/transport/transport.h',
'src/core/lib/transport/transport_fwd.h',
'src/core/lib/uri/uri_parser.h',
'src/core/load_balancing/address_filtering.h',
'src/core/load_balancing/backend_metric_data.h',
'src/core/load_balancing/backend_metric_parser.h',
@ -3398,11 +3341,33 @@ Pod::Spec.new do |s|
'src/core/tsi/transport_security_grpc.h',
'src/core/tsi/transport_security_interface.h',
'src/core/util/alloc.h',
'src/core/util/atomic_utils.h',
'src/core/util/avl.h',
'src/core/util/backoff.h',
'src/core/util/bitset.h',
'src/core/util/chunked_vector.h',
'src/core/util/construct_destruct.h',
'src/core/util/cpp_impl_of.h',
'src/core/util/crash.h',
'src/core/util/debug_location.h',
'src/core/util/directory_reader.h',
'src/core/util/down_cast.h',
'src/core/util/dual_ref_counted.h',
'src/core/util/dump_args.h',
'src/core/util/env.h',
'src/core/util/event_log.h',
'src/core/util/examine_stack.h',
'src/core/util/fork.h',
'src/core/util/gcp_metadata_query.h',
'src/core/util/gethostname.h',
'src/core/util/glob.h',
'src/core/util/grpc_if_nametoindex.h',
'src/core/util/host_port.h',
'src/core/util/http_client/format_request.h',
'src/core/util/http_client/httpcli.h',
'src/core/util/http_client/httpcli_ssl_credentials.h',
'src/core/util/http_client/parser.h',
'src/core/util/if_list.h',
'src/core/util/json/json.h',
'src/core/util/json/json_args.h',
'src/core/util/json/json_channel_args.h',
@ -3411,15 +3376,50 @@ Pod::Spec.new do |s|
'src/core/util/json/json_util.h',
'src/core/util/json/json_writer.h',
'src/core/util/latent_see.h',
'src/core/util/load_file.h',
'src/core/util/lru_cache.h',
'src/core/util/manual_constructor.h',
'src/core/util/match.h',
'src/core/util/matchers.h',
'src/core/util/memory.h',
'src/core/util/mpscq.h',
'src/core/util/no_destruct.h',
'src/core/util/notification.h',
'src/core/util/orphanable.h',
'src/core/util/overload.h',
'src/core/util/packed_table.h',
'src/core/util/per_cpu.h',
'src/core/util/random_early_detection.h',
'src/core/util/ref_counted.h',
'src/core/util/ref_counted_ptr.h',
'src/core/util/ref_counted_string.h',
'src/core/util/ring_buffer.h',
'src/core/util/single_set_ptr.h',
'src/core/util/sorted_pack.h',
'src/core/util/spinlock.h',
'src/core/util/stat.h',
'src/core/util/status_helper.h',
'src/core/util/strerror.h',
'src/core/util/string.h',
'src/core/util/sync.h',
'src/core/util/table.h',
'src/core/util/tchar.h',
'src/core/util/thd.h',
'src/core/util/time.h',
'src/core/util/time_averaged_stats.h',
'src/core/util/time_precise.h',
'src/core/util/time_util.h',
'src/core/util/tmpfile.h',
'src/core/util/type_list.h',
'src/core/util/unique_ptr_with_bitset.h',
'src/core/util/unique_type_name.h',
'src/core/util/upb_utils.h',
'src/core/util/uri.h',
'src/core/util/useful.h',
'src/core/util/uuid_v4.h',
'src/core/util/validation_errors.h',
'src/core/util/work_serializer.h',
'src/core/util/xxhash_inline.h',
'src/core/xds/grpc/certificate_provider_store.h',
'src/core/xds/grpc/file_watcher_certificate_provider_factory.h',
'src/core/xds/grpc/xds_audit_logger_registry.h',

@ -21,7 +21,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC-ProtoRPC'
version = '1.67.0-dev'
version = '1.68.0-dev'
s.version = version
s.summary = 'RPC library for Protocol Buffers, based on gRPC'
s.homepage = 'https://grpc.io'

@ -21,7 +21,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC-RxLibrary'
version = '1.67.0-dev'
version = '1.68.0-dev'
s.version = version
s.summary = 'Reactive Extensions library for iOS/OSX.'
s.homepage = 'https://grpc.io'

2
gRPC.podspec generated

@ -20,7 +20,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC'
version = '1.67.0-dev'
version = '1.68.0-dev'
s.version = version
s.summary = 'gRPC client library for iOS/OSX'
s.homepage = 'https://grpc.io'

190
grpc.gemspec generated

@ -1099,11 +1099,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/address_utils/parse_address.h )
s.files += %w( src/core/lib/address_utils/sockaddr_utils.cc )
s.files += %w( src/core/lib/address_utils/sockaddr_utils.h )
s.files += %w( src/core/lib/avl/avl.h )
s.files += %w( src/core/lib/backoff/backoff.cc )
s.files += %w( src/core/lib/backoff/backoff.h )
s.files += %w( src/core/lib/backoff/random_early_detection.cc )
s.files += %w( src/core/lib/backoff/random_early_detection.h )
s.files += %w( src/core/lib/channel/call_finalization.h )
s.files += %w( src/core/lib/channel/channel_args.cc )
s.files += %w( src/core/lib/channel/channel_args.h )
@ -1134,8 +1129,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/config/core_configuration.h )
s.files += %w( src/core/lib/config/load_config.cc )
s.files += %w( src/core/lib/config/load_config.h )
s.files += %w( src/core/lib/debug/event_log.cc )
s.files += %w( src/core/lib/debug/event_log.h )
s.files += %w( src/core/lib/debug/trace.cc )
s.files += %w( src/core/lib/debug/trace.h )
s.files += %w( src/core/lib/debug/trace_flags.cc )
@ -1256,83 +1249,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/experiments/config.h )
s.files += %w( src/core/lib/experiments/experiments.cc )
s.files += %w( src/core/lib/experiments/experiments.h )
s.files += %w( src/core/lib/gprpp/atomic_utils.h )
s.files += %w( src/core/lib/gprpp/bitset.h )
s.files += %w( src/core/lib/gprpp/chunked_vector.h )
s.files += %w( src/core/lib/gprpp/construct_destruct.h )
s.files += %w( src/core/lib/gprpp/cpp_impl_of.h )
s.files += %w( src/core/lib/gprpp/crash.cc )
s.files += %w( src/core/lib/gprpp/crash.h )
s.files += %w( src/core/lib/gprpp/debug_location.h )
s.files += %w( src/core/lib/gprpp/directory_reader.h )
s.files += %w( src/core/lib/gprpp/down_cast.h )
s.files += %w( src/core/lib/gprpp/dual_ref_counted.h )
s.files += %w( src/core/lib/gprpp/dump_args.cc )
s.files += %w( src/core/lib/gprpp/dump_args.h )
s.files += %w( src/core/lib/gprpp/env.h )
s.files += %w( src/core/lib/gprpp/examine_stack.cc )
s.files += %w( src/core/lib/gprpp/examine_stack.h )
s.files += %w( src/core/lib/gprpp/fork.cc )
s.files += %w( src/core/lib/gprpp/fork.h )
s.files += %w( src/core/lib/gprpp/glob.cc )
s.files += %w( src/core/lib/gprpp/glob.h )
s.files += %w( src/core/lib/gprpp/host_port.cc )
s.files += %w( src/core/lib/gprpp/host_port.h )
s.files += %w( src/core/lib/gprpp/if_list.h )
s.files += %w( src/core/lib/gprpp/linux/env.cc )
s.files += %w( src/core/lib/gprpp/load_file.cc )
s.files += %w( src/core/lib/gprpp/load_file.h )
s.files += %w( src/core/lib/gprpp/manual_constructor.h )
s.files += %w( src/core/lib/gprpp/match.h )
s.files += %w( src/core/lib/gprpp/memory.h )
s.files += %w( src/core/lib/gprpp/mpscq.cc )
s.files += %w( src/core/lib/gprpp/mpscq.h )
s.files += %w( src/core/lib/gprpp/no_destruct.h )
s.files += %w( src/core/lib/gprpp/notification.h )
s.files += %w( src/core/lib/gprpp/orphanable.h )
s.files += %w( src/core/lib/gprpp/overload.h )
s.files += %w( src/core/lib/gprpp/packed_table.h )
s.files += %w( src/core/lib/gprpp/per_cpu.cc )
s.files += %w( src/core/lib/gprpp/per_cpu.h )
s.files += %w( src/core/lib/gprpp/posix/directory_reader.cc )
s.files += %w( src/core/lib/gprpp/posix/env.cc )
s.files += %w( src/core/lib/gprpp/posix/stat.cc )
s.files += %w( src/core/lib/gprpp/posix/thd.cc )
s.files += %w( src/core/lib/gprpp/ref_counted.h )
s.files += %w( src/core/lib/gprpp/ref_counted_ptr.h )
s.files += %w( src/core/lib/gprpp/ref_counted_string.cc )
s.files += %w( src/core/lib/gprpp/ref_counted_string.h )
s.files += %w( src/core/lib/gprpp/single_set_ptr.h )
s.files += %w( src/core/lib/gprpp/sorted_pack.h )
s.files += %w( src/core/lib/gprpp/stat.h )
s.files += %w( src/core/lib/gprpp/status_helper.cc )
s.files += %w( src/core/lib/gprpp/status_helper.h )
s.files += %w( src/core/lib/gprpp/strerror.cc )
s.files += %w( src/core/lib/gprpp/strerror.h )
s.files += %w( src/core/lib/gprpp/sync.h )
s.files += %w( src/core/lib/gprpp/table.h )
s.files += %w( src/core/lib/gprpp/tchar.cc )
s.files += %w( src/core/lib/gprpp/tchar.h )
s.files += %w( src/core/lib/gprpp/thd.h )
s.files += %w( src/core/lib/gprpp/time.cc )
s.files += %w( src/core/lib/gprpp/time.h )
s.files += %w( src/core/lib/gprpp/time_averaged_stats.cc )
s.files += %w( src/core/lib/gprpp/time_averaged_stats.h )
s.files += %w( src/core/lib/gprpp/time_util.cc )
s.files += %w( src/core/lib/gprpp/time_util.h )
s.files += %w( src/core/lib/gprpp/type_list.h )
s.files += %w( src/core/lib/gprpp/unique_type_name.h )
s.files += %w( src/core/lib/gprpp/uuid_v4.cc )
s.files += %w( src/core/lib/gprpp/uuid_v4.h )
s.files += %w( src/core/lib/gprpp/validation_errors.cc )
s.files += %w( src/core/lib/gprpp/validation_errors.h )
s.files += %w( src/core/lib/gprpp/windows/directory_reader.cc )
s.files += %w( src/core/lib/gprpp/windows/env.cc )
s.files += %w( src/core/lib/gprpp/windows/stat.cc )
s.files += %w( src/core/lib/gprpp/windows/thd.cc )
s.files += %w( src/core/lib/gprpp/work_serializer.cc )
s.files += %w( src/core/lib/gprpp/work_serializer.h )
s.files += %w( src/core/lib/gprpp/xxhash_inline.h )
s.files += %w( src/core/lib/iomgr/block_annotate.h )
s.files += %w( src/core/lib/iomgr/buffer_list.cc )
s.files += %w( src/core/lib/iomgr/buffer_list.h )
@ -1377,13 +1293,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/executor.h )
s.files += %w( src/core/lib/iomgr/fork_posix.cc )
s.files += %w( src/core/lib/iomgr/fork_windows.cc )
s.files += %w( src/core/lib/iomgr/gethostname.h )
s.files += %w( src/core/lib/iomgr/gethostname_fallback.cc )
s.files += %w( src/core/lib/iomgr/gethostname_host_name_max.cc )
s.files += %w( src/core/lib/iomgr/gethostname_sysconf.cc )
s.files += %w( src/core/lib/iomgr/grpc_if_nametoindex.h )
s.files += %w( src/core/lib/iomgr/grpc_if_nametoindex_posix.cc )
s.files += %w( src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc )
s.files += %w( src/core/lib/iomgr/internal_errqueue.cc )
s.files += %w( src/core/lib/iomgr/internal_errqueue.h )
s.files += %w( src/core/lib/iomgr/iocp_windows.cc )
@ -1474,8 +1383,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/wakeup_fd_pipe.h )
s.files += %w( src/core/lib/iomgr/wakeup_fd_posix.cc )
s.files += %w( src/core/lib/iomgr/wakeup_fd_posix.h )
s.files += %w( src/core/lib/matchers/matchers.cc )
s.files += %w( src/core/lib/matchers/matchers.h )
s.files += %w( src/core/lib/promise/activity.cc )
s.files += %w( src/core/lib/promise/activity.h )
s.files += %w( src/core/lib/promise/all_ok.h )
@ -1736,8 +1643,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/transport/transport.h )
s.files += %w( src/core/lib/transport/transport_fwd.h )
s.files += %w( src/core/lib/transport/transport_op_string.cc )
s.files += %w( src/core/lib/uri/uri_parser.cc )
s.files += %w( src/core/lib/uri/uri_parser.h )
s.files += %w( src/core/load_balancing/address_filtering.cc )
s.files += %w( src/core/load_balancing/address_filtering.h )
s.files += %w( src/core/load_balancing/backend_metric_data.h )
@ -1922,8 +1827,43 @@ Gem::Specification.new do |s|
s.files += %w( src/core/util/alloc.cc )
s.files += %w( src/core/util/alloc.h )
s.files += %w( src/core/util/atm.cc )
s.files += %w( src/core/util/atomic_utils.h )
s.files += %w( src/core/util/avl.h )
s.files += %w( src/core/util/backoff.cc )
s.files += %w( src/core/util/backoff.h )
s.files += %w( src/core/util/bitset.h )
s.files += %w( src/core/util/chunked_vector.h )
s.files += %w( src/core/util/construct_destruct.h )
s.files += %w( src/core/util/cpp_impl_of.h )
s.files += %w( src/core/util/crash.cc )
s.files += %w( src/core/util/crash.h )
s.files += %w( src/core/util/debug_location.h )
s.files += %w( src/core/util/directory_reader.h )
s.files += %w( src/core/util/down_cast.h )
s.files += %w( src/core/util/dual_ref_counted.h )
s.files += %w( src/core/util/dump_args.cc )
s.files += %w( src/core/util/dump_args.h )
s.files += %w( src/core/util/env.h )
s.files += %w( src/core/util/event_log.cc )
s.files += %w( src/core/util/event_log.h )
s.files += %w( src/core/util/examine_stack.cc )
s.files += %w( src/core/util/examine_stack.h )
s.files += %w( src/core/util/fork.cc )
s.files += %w( src/core/util/fork.h )
s.files += %w( src/core/util/gcp_metadata_query.cc )
s.files += %w( src/core/util/gcp_metadata_query.h )
s.files += %w( src/core/util/gethostname.h )
s.files += %w( src/core/util/gethostname_fallback.cc )
s.files += %w( src/core/util/gethostname_host_name_max.cc )
s.files += %w( src/core/util/gethostname_sysconf.cc )
s.files += %w( src/core/util/glob.cc )
s.files += %w( src/core/util/glob.h )
s.files += %w( src/core/util/gpr_time.cc )
s.files += %w( src/core/util/grpc_if_nametoindex.h )
s.files += %w( src/core/util/grpc_if_nametoindex_posix.cc )
s.files += %w( src/core/util/grpc_if_nametoindex_unsupported.cc )
s.files += %w( src/core/util/host_port.cc )
s.files += %w( src/core/util/host_port.h )
s.files += %w( src/core/util/http_client/format_request.cc )
s.files += %w( src/core/util/http_client/format_request.h )
s.files += %w( src/core/util/http_client/httpcli.cc )
@ -1932,6 +1872,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/util/http_client/httpcli_ssl_credentials.h )
s.files += %w( src/core/util/http_client/parser.cc )
s.files += %w( src/core/util/http_client/parser.h )
s.files += %w( src/core/util/if_list.h )
s.files += %w( src/core/util/iphone/cpu.cc )
s.files += %w( src/core/util/json/json.h )
s.files += %w( src/core/util/json/json_args.h )
@ -1947,33 +1888,92 @@ Gem::Specification.new do |s|
s.files += %w( src/core/util/latent_see.cc )
s.files += %w( src/core/util/latent_see.h )
s.files += %w( src/core/util/linux/cpu.cc )
s.files += %w( src/core/util/linux/env.cc )
s.files += %w( src/core/util/load_file.cc )
s.files += %w( src/core/util/load_file.h )
s.files += %w( src/core/util/log.cc )
s.files += %w( src/core/util/lru_cache.h )
s.files += %w( src/core/util/manual_constructor.h )
s.files += %w( src/core/util/match.h )
s.files += %w( src/core/util/matchers.cc )
s.files += %w( src/core/util/matchers.h )
s.files += %w( src/core/util/memory.h )
s.files += %w( src/core/util/mpscq.cc )
s.files += %w( src/core/util/mpscq.h )
s.files += %w( src/core/util/msys/tmpfile.cc )
s.files += %w( src/core/util/no_destruct.h )
s.files += %w( src/core/util/notification.h )
s.files += %w( src/core/util/orphanable.h )
s.files += %w( src/core/util/overload.h )
s.files += %w( src/core/util/packed_table.h )
s.files += %w( src/core/util/per_cpu.cc )
s.files += %w( src/core/util/per_cpu.h )
s.files += %w( src/core/util/posix/cpu.cc )
s.files += %w( src/core/util/posix/directory_reader.cc )
s.files += %w( src/core/util/posix/env.cc )
s.files += %w( src/core/util/posix/stat.cc )
s.files += %w( src/core/util/posix/string.cc )
s.files += %w( src/core/util/posix/sync.cc )
s.files += %w( src/core/util/posix/thd.cc )
s.files += %w( src/core/util/posix/time.cc )
s.files += %w( src/core/util/posix/tmpfile.cc )
s.files += %w( src/core/util/random_early_detection.cc )
s.files += %w( src/core/util/random_early_detection.h )
s.files += %w( src/core/util/ref_counted.h )
s.files += %w( src/core/util/ref_counted_ptr.h )
s.files += %w( src/core/util/ref_counted_string.cc )
s.files += %w( src/core/util/ref_counted_string.h )
s.files += %w( src/core/util/ring_buffer.h )
s.files += %w( src/core/util/single_set_ptr.h )
s.files += %w( src/core/util/sorted_pack.h )
s.files += %w( src/core/util/spinlock.h )
s.files += %w( src/core/util/stat.h )
s.files += %w( src/core/util/status_helper.cc )
s.files += %w( src/core/util/status_helper.h )
s.files += %w( src/core/util/strerror.cc )
s.files += %w( src/core/util/strerror.h )
s.files += %w( src/core/util/string.cc )
s.files += %w( src/core/util/string.h )
s.files += %w( src/core/util/sync.cc )
s.files += %w( src/core/util/sync.h )
s.files += %w( src/core/util/sync_abseil.cc )
s.files += %w( src/core/util/table.h )
s.files += %w( src/core/util/tchar.cc )
s.files += %w( src/core/util/tchar.h )
s.files += %w( src/core/util/thd.h )
s.files += %w( src/core/util/time.cc )
s.files += %w( src/core/util/time.h )
s.files += %w( src/core/util/time_averaged_stats.cc )
s.files += %w( src/core/util/time_averaged_stats.h )
s.files += %w( src/core/util/time_precise.cc )
s.files += %w( src/core/util/time_precise.h )
s.files += %w( src/core/util/time_util.cc )
s.files += %w( src/core/util/time_util.h )
s.files += %w( src/core/util/tmpfile.h )
s.files += %w( src/core/util/type_list.h )
s.files += %w( src/core/util/unique_ptr_with_bitset.h )
s.files += %w( src/core/util/unique_type_name.h )
s.files += %w( src/core/util/upb_utils.h )
s.files += %w( src/core/util/uri.cc )
s.files += %w( src/core/util/uri.h )
s.files += %w( src/core/util/useful.h )
s.files += %w( src/core/util/uuid_v4.cc )
s.files += %w( src/core/util/uuid_v4.h )
s.files += %w( src/core/util/validation_errors.cc )
s.files += %w( src/core/util/validation_errors.h )
s.files += %w( src/core/util/windows/cpu.cc )
s.files += %w( src/core/util/windows/directory_reader.cc )
s.files += %w( src/core/util/windows/env.cc )
s.files += %w( src/core/util/windows/stat.cc )
s.files += %w( src/core/util/windows/string.cc )
s.files += %w( src/core/util/windows/string_util.cc )
s.files += %w( src/core/util/windows/sync.cc )
s.files += %w( src/core/util/windows/thd.cc )
s.files += %w( src/core/util/windows/time.cc )
s.files += %w( src/core/util/windows/tmpfile.cc )
s.files += %w( src/core/util/work_serializer.cc )
s.files += %w( src/core/util/work_serializer.h )
s.files += %w( src/core/util/xxhash_inline.h )
s.files += %w( src/core/xds/grpc/certificate_provider_store.cc )
s.files += %w( src/core/xds/grpc/certificate_provider_store.h )
s.files += %w( src/core/xds/grpc/file_watcher_certificate_provider_factory.cc )

@ -36,9 +36,9 @@
// The core library is not accessible in C++ codegen headers, and vice versa.
// Thus, we need to have duplicate headers with similar functionality.
// Make sure any change to this file is also reflected in
// src/core/lib/gprpp/sync.h too.
// src/core/util/sync.h too.
//
// Whenever possible, prefer "src/core/lib/gprpp/sync.h" over this file,
// Whenever possible, prefer "src/core/util/sync.h" over this file,
// since in core we do not rely on g_core_codegen_interface and hence do not
// pay the costs of virtual function calls.

@ -18,12 +18,16 @@
#define GRPCPP_SECURITY_TLS_CERTIFICATE_PROVIDER_H
#include <memory>
#include <string>
#include <vector>
#include "absl/status/statusor.h"
#include <grpc/credentials.h>
#include <grpc/grpc_security.h>
#include <grpc/grpc_security_constants.h>
#include <grpc/status.h>
#include <grpc/support/port_platform.h>
#include <grpcpp/support/config.h>
namespace grpc {
@ -67,6 +71,12 @@ class GRPCXX_DLL StaticDataCertificateProvider
grpc_tls_certificate_provider* c_provider() override { return c_provider_; }
// Returns an OK status if the following conditions hold:
// - the root certificates consist of one or more valid PEM blocks, and
// - every identity key-cert pair has a certificate chain that consists of
// valid PEM blocks and has a private key is a valid PEM block.
absl::Status ValidateCredentials() const;
private:
grpc_tls_certificate_provider* c_provider_ = nullptr;
};
@ -117,6 +127,14 @@ class GRPCXX_DLL FileWatcherCertificateProvider final
grpc_tls_certificate_provider* c_provider() override { return c_provider_; }
// Returns an OK status if the following conditions hold:
// - the currently-loaded root certificates, if any, consist of one or more
// valid PEM blocks, and
// - every currently-loaded identity key-cert pair, if any, has a certificate
// chain that consists of valid PEM blocks and has a private key is a valid
// PEM block.
absl::Status ValidateCredentials() const;
private:
grpc_tls_certificate_provider* c_provider_ = nullptr;
};

@ -19,9 +19,9 @@
#define GRPCPP_VERSION_INFO_H
#define GRPC_CPP_VERSION_MAJOR 1
#define GRPC_CPP_VERSION_MINOR 67
#define GRPC_CPP_VERSION_MINOR 68
#define GRPC_CPP_VERSION_PATCH 0
#define GRPC_CPP_VERSION_TAG "dev"
#define GRPC_CPP_VERSION_STRING "1.67.0-dev"
#define GRPC_CPP_VERSION_STRING "1.68.0-dev"
#endif // GRPCPP_VERSION_INFO_H

196
package.xml generated

@ -13,8 +13,8 @@
<date>2019-09-24</date>
<time>16:06:07</time>
<version>
<release>1.67.0dev</release>
<api>1.67.0dev</api>
<release>1.68.0dev</release>
<api>1.68.0dev</api>
</version>
<stability>
<release>beta</release>
@ -22,7 +22,7 @@
</stability>
<license>Apache 2.0</license>
<notes>
- gRPC Core 1.67.0 update
- gRPC Core 1.68.0 update
</notes>
<contents>
<dir baseinstalldir="/" name="/">
@ -1081,11 +1081,6 @@
<file baseinstalldir="/" name="src/core/lib/address_utils/parse_address.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/address_utils/sockaddr_utils.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/address_utils/sockaddr_utils.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/avl/avl.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/backoff/backoff.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/backoff/backoff.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/backoff/random_early_detection.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/backoff/random_early_detection.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/call_finalization.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_args.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_args.h" role="src" />
@ -1116,8 +1111,6 @@
<file baseinstalldir="/" name="src/core/lib/config/core_configuration.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/config/load_config.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/config/load_config.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/debug/event_log.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/debug/event_log.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/debug/trace.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/debug/trace.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/debug/trace_flags.cc" role="src" />
@ -1238,83 +1231,6 @@
<file baseinstalldir="/" name="src/core/lib/experiments/config.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/experiments/experiments.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/experiments/experiments.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/atomic_utils.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/bitset.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/chunked_vector.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/construct_destruct.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/cpp_impl_of.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/crash.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/crash.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/debug_location.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/directory_reader.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/down_cast.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/dual_ref_counted.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/dump_args.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/dump_args.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/env.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/examine_stack.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/examine_stack.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/fork.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/fork.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/glob.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/glob.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/host_port.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/host_port.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/if_list.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/linux/env.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/load_file.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/load_file.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/manual_constructor.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/match.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/memory.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/mpscq.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/mpscq.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/no_destruct.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/notification.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/orphanable.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/overload.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/packed_table.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/per_cpu.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/per_cpu.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/posix/directory_reader.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/posix/env.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/posix/stat.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/posix/thd.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/ref_counted.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/ref_counted_ptr.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/ref_counted_string.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/ref_counted_string.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/single_set_ptr.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/sorted_pack.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/stat.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/status_helper.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/status_helper.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/strerror.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/strerror.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/sync.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/table.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/tchar.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/tchar.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/thd.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/time.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/time.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/time_averaged_stats.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/time_averaged_stats.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/time_util.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/time_util.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/type_list.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/unique_type_name.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/uuid_v4.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/uuid_v4.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/validation_errors.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/validation_errors.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/windows/directory_reader.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/windows/env.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/windows/stat.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/windows/thd.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/work_serializer.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/work_serializer.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gprpp/xxhash_inline.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/block_annotate.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/buffer_list.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/buffer_list.h" role="src" />
@ -1359,13 +1275,6 @@
<file baseinstalldir="/" name="src/core/lib/iomgr/executor.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/fork_posix.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/fork_windows.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/gethostname.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/gethostname_fallback.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/gethostname_host_name_max.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/gethostname_sysconf.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/grpc_if_nametoindex.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/grpc_if_nametoindex_posix.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/internal_errqueue.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/internal_errqueue.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iocp_windows.cc" role="src" />
@ -1456,8 +1365,6 @@
<file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_pipe.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_posix.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/matchers/matchers.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/matchers/matchers.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/promise/activity.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/promise/activity.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/promise/all_ok.h" role="src" />
@ -1718,8 +1625,6 @@
<file baseinstalldir="/" name="src/core/lib/transport/transport.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/transport_fwd.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/transport_op_string.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/uri/uri_parser.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/uri/uri_parser.h" role="src" />
<file baseinstalldir="/" name="src/core/load_balancing/address_filtering.cc" role="src" />
<file baseinstalldir="/" name="src/core/load_balancing/address_filtering.h" role="src" />
<file baseinstalldir="/" name="src/core/load_balancing/backend_metric_data.h" role="src" />
@ -1904,8 +1809,43 @@
<file baseinstalldir="/" name="src/core/util/alloc.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/alloc.h" role="src" />
<file baseinstalldir="/" name="src/core/util/atm.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/atomic_utils.h" role="src" />
<file baseinstalldir="/" name="src/core/util/avl.h" role="src" />
<file baseinstalldir="/" name="src/core/util/backoff.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/backoff.h" role="src" />
<file baseinstalldir="/" name="src/core/util/bitset.h" role="src" />
<file baseinstalldir="/" name="src/core/util/chunked_vector.h" role="src" />
<file baseinstalldir="/" name="src/core/util/construct_destruct.h" role="src" />
<file baseinstalldir="/" name="src/core/util/cpp_impl_of.h" role="src" />
<file baseinstalldir="/" name="src/core/util/crash.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/crash.h" role="src" />
<file baseinstalldir="/" name="src/core/util/debug_location.h" role="src" />
<file baseinstalldir="/" name="src/core/util/directory_reader.h" role="src" />
<file baseinstalldir="/" name="src/core/util/down_cast.h" role="src" />
<file baseinstalldir="/" name="src/core/util/dual_ref_counted.h" role="src" />
<file baseinstalldir="/" name="src/core/util/dump_args.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/dump_args.h" role="src" />
<file baseinstalldir="/" name="src/core/util/env.h" role="src" />
<file baseinstalldir="/" name="src/core/util/event_log.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/event_log.h" role="src" />
<file baseinstalldir="/" name="src/core/util/examine_stack.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/examine_stack.h" role="src" />
<file baseinstalldir="/" name="src/core/util/fork.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/fork.h" role="src" />
<file baseinstalldir="/" name="src/core/util/gcp_metadata_query.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/gcp_metadata_query.h" role="src" />
<file baseinstalldir="/" name="src/core/util/gethostname.h" role="src" />
<file baseinstalldir="/" name="src/core/util/gethostname_fallback.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/gethostname_host_name_max.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/gethostname_sysconf.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/glob.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/glob.h" role="src" />
<file baseinstalldir="/" name="src/core/util/gpr_time.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/grpc_if_nametoindex.h" role="src" />
<file baseinstalldir="/" name="src/core/util/grpc_if_nametoindex_posix.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/grpc_if_nametoindex_unsupported.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/host_port.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/host_port.h" role="src" />
<file baseinstalldir="/" name="src/core/util/http_client/format_request.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/http_client/format_request.h" role="src" />
<file baseinstalldir="/" name="src/core/util/http_client/httpcli.cc" role="src" />
@ -1914,6 +1854,7 @@
<file baseinstalldir="/" name="src/core/util/http_client/httpcli_ssl_credentials.h" role="src" />
<file baseinstalldir="/" name="src/core/util/http_client/parser.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/http_client/parser.h" role="src" />
<file baseinstalldir="/" name="src/core/util/if_list.h" role="src" />
<file baseinstalldir="/" name="src/core/util/iphone/cpu.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/json/json.h" role="src" />
<file baseinstalldir="/" name="src/core/util/json/json_args.h" role="src" />
@ -1929,33 +1870,92 @@
<file baseinstalldir="/" name="src/core/util/latent_see.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/latent_see.h" role="src" />
<file baseinstalldir="/" name="src/core/util/linux/cpu.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/linux/env.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/load_file.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/load_file.h" role="src" />
<file baseinstalldir="/" name="src/core/util/log.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/lru_cache.h" role="src" />
<file baseinstalldir="/" name="src/core/util/manual_constructor.h" role="src" />
<file baseinstalldir="/" name="src/core/util/match.h" role="src" />
<file baseinstalldir="/" name="src/core/util/matchers.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/matchers.h" role="src" />
<file baseinstalldir="/" name="src/core/util/memory.h" role="src" />
<file baseinstalldir="/" name="src/core/util/mpscq.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/mpscq.h" role="src" />
<file baseinstalldir="/" name="src/core/util/msys/tmpfile.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/no_destruct.h" role="src" />
<file baseinstalldir="/" name="src/core/util/notification.h" role="src" />
<file baseinstalldir="/" name="src/core/util/orphanable.h" role="src" />
<file baseinstalldir="/" name="src/core/util/overload.h" role="src" />
<file baseinstalldir="/" name="src/core/util/packed_table.h" role="src" />
<file baseinstalldir="/" name="src/core/util/per_cpu.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/per_cpu.h" role="src" />
<file baseinstalldir="/" name="src/core/util/posix/cpu.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/posix/directory_reader.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/posix/env.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/posix/stat.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/posix/string.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/posix/sync.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/posix/thd.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/posix/time.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/posix/tmpfile.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/random_early_detection.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/random_early_detection.h" role="src" />
<file baseinstalldir="/" name="src/core/util/ref_counted.h" role="src" />
<file baseinstalldir="/" name="src/core/util/ref_counted_ptr.h" role="src" />
<file baseinstalldir="/" name="src/core/util/ref_counted_string.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/ref_counted_string.h" role="src" />
<file baseinstalldir="/" name="src/core/util/ring_buffer.h" role="src" />
<file baseinstalldir="/" name="src/core/util/single_set_ptr.h" role="src" />
<file baseinstalldir="/" name="src/core/util/sorted_pack.h" role="src" />
<file baseinstalldir="/" name="src/core/util/spinlock.h" role="src" />
<file baseinstalldir="/" name="src/core/util/stat.h" role="src" />
<file baseinstalldir="/" name="src/core/util/status_helper.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/status_helper.h" role="src" />
<file baseinstalldir="/" name="src/core/util/strerror.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/strerror.h" role="src" />
<file baseinstalldir="/" name="src/core/util/string.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/string.h" role="src" />
<file baseinstalldir="/" name="src/core/util/sync.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/sync.h" role="src" />
<file baseinstalldir="/" name="src/core/util/sync_abseil.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/table.h" role="src" />
<file baseinstalldir="/" name="src/core/util/tchar.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/tchar.h" role="src" />
<file baseinstalldir="/" name="src/core/util/thd.h" role="src" />
<file baseinstalldir="/" name="src/core/util/time.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/time.h" role="src" />
<file baseinstalldir="/" name="src/core/util/time_averaged_stats.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/time_averaged_stats.h" role="src" />
<file baseinstalldir="/" name="src/core/util/time_precise.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/time_precise.h" role="src" />
<file baseinstalldir="/" name="src/core/util/time_util.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/time_util.h" role="src" />
<file baseinstalldir="/" name="src/core/util/tmpfile.h" role="src" />
<file baseinstalldir="/" name="src/core/util/type_list.h" role="src" />
<file baseinstalldir="/" name="src/core/util/unique_ptr_with_bitset.h" role="src" />
<file baseinstalldir="/" name="src/core/util/unique_type_name.h" role="src" />
<file baseinstalldir="/" name="src/core/util/upb_utils.h" role="src" />
<file baseinstalldir="/" name="src/core/util/uri.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/uri.h" role="src" />
<file baseinstalldir="/" name="src/core/util/useful.h" role="src" />
<file baseinstalldir="/" name="src/core/util/uuid_v4.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/uuid_v4.h" role="src" />
<file baseinstalldir="/" name="src/core/util/validation_errors.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/validation_errors.h" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/cpu.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/directory_reader.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/env.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/stat.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/string.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/string_util.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/sync.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/thd.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/time.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/windows/tmpfile.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/work_serializer.cc" role="src" />
<file baseinstalldir="/" name="src/core/util/work_serializer.h" role="src" />
<file baseinstalldir="/" name="src/core/util/xxhash_inline.h" role="src" />
<file baseinstalldir="/" name="src/core/xds/grpc/certificate_provider_store.cc" role="src" />
<file baseinstalldir="/" name="src/core/xds/grpc/certificate_provider_store.h" role="src" />
<file baseinstalldir="/" name="src/core/xds/grpc/file_watcher_certificate_provider_factory.cc" role="src" />

@ -176,7 +176,7 @@ void PrintServerMethod(const MethodDescriptor* method, Printer* out) {
"of \\$input_type_id$\n"
" * @param \\Grpc\\ServerContext $$context server request context\n"
" * @return \\$output_type_id$ for response data, null if if error "
"occured\n"
"occurred\n"
" * initial metadata (if any) and status (if not ok) should be set "
"to $$context\n"
" */\n"
@ -208,7 +208,7 @@ void PrintServerMethod(const MethodDescriptor* method, Printer* out) {
" * @param \\$input_type_id$ $$request client request\n"
" * @param \\Grpc\\ServerContext $$context server request context\n"
" * @return \\$output_type_id$ for response data, null if if error "
"occured\n"
"occurred\n"
" * initial metadata (if any) and status (if not ok) should be set "
"to $$context\n"
" */\n"

@ -51,10 +51,10 @@ grpc_cc_library(
grpc_cc_library(
name = "dump_args",
srcs = [
"lib/gprpp/dump_args.cc",
"util/dump_args.cc",
],
hdrs = [
"lib/gprpp/dump_args.h",
"util/dump_args.h",
],
external_deps = [
"absl/functional:any_invocable",
@ -211,7 +211,7 @@ grpc_cc_library(
grpc_cc_library(
name = "atomic_utils",
language = "c++",
public_hdrs = ["lib/gprpp/atomic_utils.h"],
public_hdrs = ["util/atomic_utils.h"],
deps = ["//:gpr"],
)
@ -305,10 +305,10 @@ grpc_cc_library(
grpc_cc_library(
name = "examine_stack",
srcs = [
"lib/gprpp/examine_stack.cc",
"util/examine_stack.cc",
],
hdrs = [
"lib/gprpp/examine_stack.h",
"util/examine_stack.h",
],
external_deps = ["absl/types:optional"],
deps = ["//:gpr_platform"],
@ -340,7 +340,7 @@ grpc_cc_library(
name = "gpr_manual_constructor",
srcs = [],
hdrs = [
"lib/gprpp/manual_constructor.h",
"util/manual_constructor.h",
],
language = "c++",
deps = [
@ -365,12 +365,12 @@ grpc_cc_library(
grpc_cc_library(
name = "env",
srcs = [
"lib/gprpp/linux/env.cc",
"lib/gprpp/posix/env.cc",
"lib/gprpp/windows/env.cc",
"util/linux/env.cc",
"util/posix/env.cc",
"util/windows/env.cc",
],
hdrs = [
"lib/gprpp/env.h",
"util/env.h",
],
external_deps = ["absl/types:optional"],
deps = [
@ -382,11 +382,11 @@ grpc_cc_library(
grpc_cc_library(
name = "directory_reader",
srcs = [
"lib/gprpp/posix/directory_reader.cc",
"lib/gprpp/windows/directory_reader.cc",
"util/posix/directory_reader.cc",
"util/windows/directory_reader.cc",
],
hdrs = [
"lib/gprpp/directory_reader.h",
"util/directory_reader.h",
],
external_deps = [
"absl/functional:function_ref",
@ -402,7 +402,7 @@ grpc_cc_library(
grpc_cc_library(
name = "chunked_vector",
hdrs = ["lib/gprpp/chunked_vector.h"],
hdrs = ["util/chunked_vector.h"],
external_deps = [
"absl/log:check",
],
@ -416,17 +416,17 @@ grpc_cc_library(
grpc_cc_library(
name = "construct_destruct",
language = "c++",
public_hdrs = ["lib/gprpp/construct_destruct.h"],
public_hdrs = ["util/construct_destruct.h"],
deps = ["//:gpr_platform"],
)
grpc_cc_library(
name = "status_helper",
srcs = [
"lib/gprpp/status_helper.cc",
"util/status_helper.cc",
],
hdrs = [
"lib/gprpp/status_helper.h",
"util/status_helper.h",
],
external_deps = [
"absl/log:check",
@ -451,7 +451,7 @@ grpc_cc_library(
grpc_cc_library(
name = "unique_type_name",
hdrs = ["lib/gprpp/unique_type_name.h"],
hdrs = ["util/unique_type_name.h"],
external_deps = ["absl/strings"],
language = "c++",
deps = [
@ -463,10 +463,10 @@ grpc_cc_library(
grpc_cc_library(
name = "validation_errors",
srcs = [
"lib/gprpp/validation_errors.cc",
"util/validation_errors.cc",
],
hdrs = [
"lib/gprpp/validation_errors.h",
"util/validation_errors.h",
],
external_deps = [
"absl/log:log",
@ -480,7 +480,7 @@ grpc_cc_library(
grpc_cc_library(
name = "overload",
language = "c++",
public_hdrs = ["lib/gprpp/overload.h"],
public_hdrs = ["util/overload.h"],
deps = ["//:gpr_platform"],
)
@ -488,7 +488,7 @@ grpc_cc_library(
name = "match",
external_deps = ["absl/types:variant"],
language = "c++",
public_hdrs = ["lib/gprpp/match.h"],
public_hdrs = ["util/match.h"],
deps = [
"overload",
"//:gpr_platform",
@ -502,7 +502,7 @@ grpc_cc_library(
"absl/utility",
],
language = "c++",
public_hdrs = ["lib/gprpp/table.h"],
public_hdrs = ["util/table.h"],
deps = [
"bitset",
"//:gpr_platform",
@ -511,7 +511,7 @@ grpc_cc_library(
grpc_cc_library(
name = "packed_table",
hdrs = ["lib/gprpp/packed_table.h"],
hdrs = ["util/packed_table.h"],
language = "c++",
deps = [
"sorted_pack",
@ -523,7 +523,7 @@ grpc_cc_library(
grpc_cc_library(
name = "bitset",
language = "c++",
public_hdrs = ["lib/gprpp/bitset.h"],
public_hdrs = ["util/bitset.h"],
deps = [
"useful",
"//:gpr_platform",
@ -533,7 +533,7 @@ grpc_cc_library(
grpc_cc_library(
name = "no_destruct",
language = "c++",
public_hdrs = ["lib/gprpp/no_destruct.h"],
public_hdrs = ["util/no_destruct.h"],
deps = [
"construct_destruct",
"//:gpr_platform",
@ -543,10 +543,10 @@ grpc_cc_library(
grpc_cc_library(
name = "tchar",
srcs = [
"lib/gprpp/tchar.cc",
"util/tchar.cc",
],
hdrs = [
"lib/gprpp/tchar.h",
"util/tchar.h",
],
deps = ["//:gpr_platform"],
)
@ -1264,7 +1264,7 @@ grpc_cc_library(
"absl/log:log",
],
language = "c++",
public_hdrs = ["lib/gprpp/ref_counted.h"],
public_hdrs = ["util/ref_counted.h"],
deps = [
"atomic_utils",
"down_cast",
@ -1281,7 +1281,7 @@ grpc_cc_library(
"absl/log:log",
],
language = "c++",
public_hdrs = ["lib/gprpp/dual_ref_counted.h"],
public_hdrs = ["util/dual_ref_counted.h"],
deps = [
"down_cast",
"ref_counted",
@ -1295,10 +1295,10 @@ grpc_cc_library(
grpc_cc_library(
name = "ref_counted_string",
srcs = [
"lib/gprpp/ref_counted_string.cc",
"util/ref_counted_string.cc",
],
hdrs = [
"lib/gprpp/ref_counted_string.h",
"util/ref_counted_string.h",
],
external_deps = ["absl/strings"],
language = "c++",
@ -1311,10 +1311,10 @@ grpc_cc_library(
grpc_cc_library(
name = "uuid_v4",
srcs = ["lib/gprpp/uuid_v4.cc"],
srcs = ["util/uuid_v4.cc"],
external_deps = ["absl/strings:str_format"],
language = "c++",
public_hdrs = ["lib/gprpp/uuid_v4.h"],
public_hdrs = ["util/uuid_v4.h"],
deps = ["//:gpr"],
)
@ -1387,7 +1387,7 @@ grpc_cc_library(
"//:iomgr",
"//:parse_address",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
],
)
@ -1608,6 +1608,23 @@ grpc_cc_library(
],
)
grpc_cc_library(
name = "request_buffer",
srcs = [
"call/request_buffer.cc",
],
hdrs = [
"call/request_buffer.h",
],
external_deps = ["absl/types:optional"],
deps = [
"call_spine",
"message",
"metadata",
"wait_set",
],
)
grpc_cc_library(
name = "slice_refcount",
hdrs = [
@ -1727,10 +1744,10 @@ grpc_cc_library(
grpc_cc_library(
name = "time",
srcs = [
"lib/gprpp/time.cc",
"util/time.cc",
],
hdrs = [
"lib/gprpp/time.h",
"util/time.h",
],
external_deps = [
"absl/log:check",
@ -1787,7 +1804,7 @@ grpc_cc_library(
grpc_cc_library(
name = "avl",
hdrs = [
"lib/avl/avl.h",
"util/avl.h",
],
deps = [
"ref_counted",
@ -1799,9 +1816,9 @@ grpc_cc_library(
grpc_cc_library(
name = "time_averaged_stats",
srcs = ["lib/gprpp/time_averaged_stats.cc"],
srcs = ["util/time_averaged_stats.cc"],
hdrs = [
"lib/gprpp/time_averaged_stats.h",
"util/time_averaged_stats.h",
],
deps = ["//:gpr"],
)
@ -2707,7 +2724,7 @@ grpc_cc_library(
"//:gpr",
"//:gpr_platform",
"//:parse_address",
"//:uri_parser",
"//:uri",
],
)
@ -3041,10 +3058,10 @@ grpc_cc_library(
grpc_cc_library(
name = "per_cpu",
srcs = [
"lib/gprpp/per_cpu.cc",
"util/per_cpu.cc",
],
hdrs = [
"lib/gprpp/per_cpu.h",
"util/per_cpu.h",
],
deps = [
"useful",
@ -3055,10 +3072,10 @@ grpc_cc_library(
grpc_cc_library(
name = "event_log",
srcs = [
"lib/debug/event_log.cc",
"util/event_log.cc",
],
hdrs = [
"lib/debug/event_log.h",
"util/event_log.h",
],
external_deps = [
"absl/base:core_headers",
@ -3075,10 +3092,10 @@ grpc_cc_library(
grpc_cc_library(
name = "load_file",
srcs = [
"lib/gprpp/load_file.cc",
"util/load_file.cc",
],
hdrs = [
"lib/gprpp/load_file.h",
"util/load_file.h",
],
external_deps = [
"absl/cleanup",
@ -3160,7 +3177,7 @@ grpc_cc_library(
grpc_cc_library(
name = "single_set_ptr",
hdrs = [
"lib/gprpp/single_set_ptr.h",
"util/single_set_ptr.h",
],
external_deps = [
"absl/log:check",
@ -3218,7 +3235,7 @@ grpc_cc_library(
grpc_cc_library(
name = "notification",
hdrs = [
"lib/gprpp/notification.h",
"util/notification.h",
],
external_deps = ["absl/time"],
deps = ["//:gpr"],
@ -3606,7 +3623,10 @@ grpc_cc_library(
grpc_cc_library(
name = "subchannel_interface",
hdrs = ["load_balancing/subchannel_interface.h"],
external_deps = ["absl/status"],
external_deps = [
"absl/status",
"absl/strings",
],
deps = [
"dual_ref_counted",
"iomgr_fwd",
@ -3719,7 +3739,7 @@ grpc_cc_library(
"//:iomgr",
"//:parse_address",
"//:sockaddr_utils",
"//:uri_parser",
"//:uri",
],
)
@ -3783,7 +3803,7 @@ grpc_cc_library(
grpc_cc_library(
name = "sorted_pack",
hdrs = [
"lib/gprpp/sorted_pack.h",
"util/sorted_pack.h",
],
language = "c++",
deps = [
@ -3795,7 +3815,7 @@ grpc_cc_library(
grpc_cc_library(
name = "type_list",
hdrs = [
"lib/gprpp/type_list.h",
"util/type_list.h",
],
language = "c++",
)
@ -3803,7 +3823,7 @@ grpc_cc_library(
grpc_cc_library(
name = "if_list",
hdrs = [
"lib/gprpp/if_list.h",
"util/if_list.h",
],
language = "c++",
deps = ["//:gpr_platform"],
@ -3913,7 +3933,7 @@ grpc_cc_library(
"//:parse_address",
"//:promise",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
],
)
@ -4099,7 +4119,7 @@ grpc_cc_library(
"//:ref_counted_ptr",
"//:sockaddr_utils",
"//:tsi_base",
"//:uri_parser",
"//:uri",
],
)
@ -4202,17 +4222,17 @@ grpc_cc_library(
"//:iomgr",
"//:orphanable",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
],
)
grpc_cc_library(
name = "strerror",
srcs = [
"lib/gprpp/strerror.cc",
"util/strerror.cc",
],
hdrs = [
"lib/gprpp/strerror.h",
"util/strerror.h",
],
external_deps = ["absl/strings:str_format"],
deps = ["//:gpr_platform"],
@ -4396,7 +4416,7 @@ grpc_cc_library(
"//:orphanable",
"//:promise",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
],
)
@ -4451,7 +4471,7 @@ grpc_cc_library(
"//:orphanable",
"//:promise",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
],
)
@ -4508,7 +4528,7 @@ grpc_cc_library(
"//:iomgr",
"//:orphanable",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
],
)
@ -4564,10 +4584,10 @@ grpc_cc_library(
grpc_cc_library(
name = "grpc_matchers",
srcs = [
"lib/matchers/matchers.cc",
"util/matchers.cc",
],
hdrs = [
"lib/matchers/matchers.h",
"util/matchers.h",
],
external_deps = [
"absl/status",
@ -5131,10 +5151,10 @@ grpc_cc_library(
grpc_cc_library(
name = "random_early_detection",
srcs = [
"lib/backoff/random_early_detection.cc",
"util/random_early_detection.cc",
],
hdrs = [
"lib/backoff/random_early_detection.h",
"util/random_early_detection.h",
],
external_deps = [
"absl/random:bit_gen_ref",
@ -5842,7 +5862,7 @@ grpc_cc_library(
"//:ref_counted_ptr",
"//:sockaddr_utils",
"//:tsi_ssl_credentials",
"//:uri_parser",
"//:uri",
"//:work_serializer",
"//:xds_client",
],
@ -5928,7 +5948,7 @@ grpc_cc_library(
"//:ref_counted_ptr",
"//:server",
"//:sockaddr_utils",
"//:uri_parser",
"//:uri",
"//:xds_client",
],
)
@ -6326,7 +6346,7 @@ grpc_cc_library(
grpc_cc_library(
name = "down_cast",
hdrs = ["lib/gprpp/down_cast.h"],
hdrs = ["util/down_cast.h"],
external_deps = [
"absl/base:config",
"absl/log:check",
@ -6336,8 +6356,8 @@ grpc_cc_library(
grpc_cc_library(
name = "glob",
srcs = ["lib/gprpp/glob.cc"],
hdrs = ["lib/gprpp/glob.h"],
srcs = ["util/glob.cc"],
hdrs = ["util/glob.h"],
external_deps = ["absl/strings"],
)
@ -6399,7 +6419,7 @@ grpc_cc_library(
grpc_cc_library(
name = "xxhash_inline",
hdrs = ["lib/gprpp/xxhash_inline.h"],
hdrs = ["util/xxhash_inline.h"],
external_deps = ["xxhash"],
language = "c++",
deps = ["//:gpr_platform"],
@ -6836,7 +6856,7 @@ grpc_cc_library(
"//:grpc_security_base",
"//:parse_address",
"//:promise",
"//:uri_parser",
"//:uri",
],
alwayslink = 1,
)
@ -6912,7 +6932,7 @@ grpc_cc_library(
"//:grpc_trace",
"//:orphanable",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
"//:work_serializer",
],
)
@ -6985,7 +7005,7 @@ grpc_cc_library(
"//:iomgr",
"//:orphanable",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
],
)
@ -7048,7 +7068,7 @@ grpc_cc_library(
"//:iomgr",
"//:orphanable",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
],
)
@ -7073,7 +7093,7 @@ grpc_cc_library(
"//:grpc_resolver",
"//:orphanable",
"//:parse_address",
"//:uri_parser",
"//:uri",
],
)
@ -7100,7 +7120,7 @@ grpc_cc_library(
"//:gpr",
"//:grpc_resolver",
"//:orphanable",
"//:uri_parser",
"//:uri",
],
)
@ -7235,7 +7255,7 @@ grpc_cc_library(
"//:grpc_trace",
"//:orphanable",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
"//:work_serializer",
"//:xds_client",
],
@ -7272,7 +7292,7 @@ grpc_cc_library(
"//:iomgr",
"//:orphanable",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
"//:work_serializer",
"//:xds_client",
],
@ -7595,7 +7615,7 @@ grpc_cc_library(
"//:ref_counted_ptr",
"//:server",
"//:sockaddr_utils",
"//:uri_parser",
"//:uri",
],
)
@ -7760,7 +7780,7 @@ grpc_cc_library(
"//:iomgr",
"//:orphanable",
"//:ref_counted_ptr",
"//:uri_parser",
"//:uri",
],
)
@ -7826,7 +7846,7 @@ grpc_cc_library(
"//:grpc_client_channel",
"//:grpc_public_hdrs",
"//:grpc_resolver",
"//:uri_parser",
"//:uri",
],
)

@ -0,0 +1,168 @@
// Copyright 2024 gRPC authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "src/core/call/request_buffer.h"
#include <cstdint>
#include "absl/types/optional.h"
namespace grpc_core {
ValueOrFailure<size_t> RequestBuffer::PushClientInitialMetadata(
ClientMetadataHandle md) {
MutexLock lock(&mu_);
if (absl::get_if<Cancelled>(&state_)) return Failure{};
auto& buffering = absl::get<Buffering>(state_);
CHECK_EQ(buffering.initial_metadata.get(), nullptr);
buffering.initial_metadata = std::move(md);
buffering.buffered += buffering.initial_metadata->TransportSize();
WakeupAsyncAllPullers();
return buffering.buffered;
}
Poll<ValueOrFailure<size_t>> RequestBuffer::PollPushMessage(
MessageHandle& message) {
MutexLock lock(&mu_);
if (absl::get_if<Cancelled>(&state_)) return Failure{};
size_t buffered = 0;
if (auto* buffering = absl::get_if<Buffering>(&state_)) {
if (winner_ != nullptr) return PendingPush();
buffering->buffered += message->payload()->Length();
buffered = buffering->buffered;
buffering->messages.push_back(std::move(message));
} else {
auto& streaming = absl::get<Streaming>(state_);
CHECK_EQ(streaming.end_of_stream, false);
if (streaming.message != nullptr) {
return PendingPush();
}
streaming.message = std::move(message);
}
WakeupAsyncAllPullers();
return buffered;
}
StatusFlag RequestBuffer::FinishSends() {
MutexLock lock(&mu_);
if (absl::get_if<Cancelled>(&state_)) return Failure{};
if (auto* buffering = absl::get_if<Buffering>(&state_)) {
Buffered buffered(std::move(buffering->initial_metadata),
std::move(buffering->messages));
state_.emplace<Buffered>(std::move(buffered));
} else {
auto& streaming = absl::get<Streaming>(state_);
CHECK_EQ(streaming.end_of_stream, false);
streaming.end_of_stream = true;
}
WakeupAsyncAllPullers();
return Success{};
}
void RequestBuffer::Cancel(absl::Status error) {
MutexLock lock(&mu_);
if (absl::holds_alternative<Cancelled>(state_)) return;
state_.emplace<Cancelled>(std::move(error));
WakeupAsyncAllPullers();
}
void RequestBuffer::Commit(Reader* winner) {
MutexLock lock(&mu_);
CHECK_EQ(winner_, nullptr);
winner_ = winner;
if (auto* buffering = absl::get_if<Buffering>(&state_)) {
if (buffering->initial_metadata != nullptr &&
winner->message_index_ == buffering->messages.size() &&
winner->pulled_client_initial_metadata_) {
state_.emplace<Streaming>();
}
} else if (auto* buffered = absl::get_if<Buffered>(&state_)) {
CHECK_NE(buffered->initial_metadata.get(), nullptr);
if (winner->message_index_ == buffered->messages.size()) {
state_.emplace<Streaming>().end_of_stream = true;
}
}
WakeupAsyncAllPullersExcept(winner);
}
void RequestBuffer::WakeupAsyncAllPullersExcept(Reader* except_reader) {
for (auto wakeup_reader : readers_) {
if (wakeup_reader == except_reader) continue;
wakeup_reader->pull_waker_.WakeupAsync();
}
}
Poll<ValueOrFailure<ClientMetadataHandle>>
RequestBuffer::Reader::PollPullClientInitialMetadata() {
MutexLock lock(&buffer_->mu_);
if (buffer_->winner_ != nullptr && buffer_->winner_ != this) {
error_ = absl::CancelledError("Another call was chosen");
return Failure{};
}
if (auto* buffering = absl::get_if<Buffering>(&buffer_->state_)) {
if (buffering->initial_metadata.get() == nullptr) {
return buffer_->PendingPull(this);
}
pulled_client_initial_metadata_ = true;
auto result = ClaimObject(buffering->initial_metadata);
buffer_->MaybeSwitchToStreaming();
return result;
}
if (auto* buffered = absl::get_if<Buffered>(&buffer_->state_)) {
pulled_client_initial_metadata_ = true;
return ClaimObject(buffered->initial_metadata);
}
error_ = absl::get<Cancelled>(buffer_->state_).error;
return Failure{};
}
Poll<ValueOrFailure<absl::optional<MessageHandle>>>
RequestBuffer::Reader::PollPullMessage() {
ReleasableMutexLock lock(&buffer_->mu_);
if (buffer_->winner_ != nullptr && buffer_->winner_ != this) {
error_ = absl::CancelledError("Another call was chosen");
return Failure{};
}
if (auto* buffering = absl::get_if<Buffering>(&buffer_->state_)) {
if (message_index_ == buffering->messages.size()) {
return buffer_->PendingPull(this);
}
const auto idx = message_index_;
auto result = ClaimObject(buffering->messages[idx]);
++message_index_;
buffer_->MaybeSwitchToStreaming();
return result;
}
if (auto* buffered = absl::get_if<Buffered>(&buffer_->state_)) {
if (message_index_ == buffered->messages.size()) return absl::nullopt;
const auto idx = message_index_;
++message_index_;
return ClaimObject(buffered->messages[idx]);
}
if (auto* streaming = absl::get_if<Streaming>(&buffer_->state_)) {
if (streaming->message == nullptr) {
if (streaming->end_of_stream) return absl::nullopt;
return buffer_->PendingPull(this);
}
auto msg = std::move(streaming->message);
auto waker = std::move(buffer_->push_waker_);
lock.Release();
waker.Wakeup();
return msg;
}
error_ = absl::get<Cancelled>(buffer_->state_).error;
return Failure{};
}
} // namespace grpc_core

@ -0,0 +1,182 @@
// Copyright 2024 gRPC authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef GRPC_SRC_CORE_CALL_REQUEST_BUFFER_H
#define GRPC_SRC_CORE_CALL_REQUEST_BUFFER_H
#include <utility>
#include "src/core/lib/transport/call_spine.h"
#include "src/core/lib/transport/message.h"
#include "src/core/lib/transport/metadata.h"
namespace grpc_core {
// Outbound request buffer.
// Collects client->server metadata and messages whilst in its initial buffering
// mode. In buffering mode it can have zero or more Reader objects attached to
// it.
// The buffer can later be switched to committed mode, at which point it
// will have exactly one Reader object attached to it.
// Callers can choose to switch to committed mode based upon policy of their
// choice.
class RequestBuffer {
public:
// One reader of the request buffer.
class Reader {
public:
explicit Reader(RequestBuffer* buffer) ABSL_LOCKS_EXCLUDED(buffer->mu_)
: buffer_(buffer) {
buffer->AddReader(this);
}
~Reader() ABSL_LOCKS_EXCLUDED(buffer_->mu_) { buffer_->RemoveReader(this); }
Reader(const Reader&) = delete;
Reader& operator=(const Reader&) = delete;
// Pull client initial metadata. Returns a promise that resolves to
// ValueOrFailure<ClientMetadataHandle>.
GRPC_MUST_USE_RESULT auto PullClientInitialMetadata() {
return [this]() { return PollPullClientInitialMetadata(); };
}
// Pull a message. Returns a promise that resolves to a
// ValueOrFailure<absl::optional<MessageHandle>>.
GRPC_MUST_USE_RESULT auto PullMessage() {
return [this]() { return PollPullMessage(); };
}
absl::Status TakeError() { return std::move(error_); }
private:
friend class RequestBuffer;
Poll<ValueOrFailure<ClientMetadataHandle>> PollPullClientInitialMetadata();
Poll<ValueOrFailure<absl::optional<MessageHandle>>> PollPullMessage();
template <typename T>
T ClaimObject(T& object) ABSL_EXCLUSIVE_LOCKS_REQUIRED(buffer_->mu_) {
if (buffer_->winner_ == this) return std::move(object);
return CopyObject(object);
}
ClientMetadataHandle CopyObject(const ClientMetadataHandle& md) {
return Arena::MakePooled<ClientMetadata>(md->Copy());
}
MessageHandle CopyObject(const MessageHandle& msg) {
return Arena::MakePooled<Message>(msg->payload()->Copy(), msg->flags());
}
RequestBuffer* const buffer_;
bool pulled_client_initial_metadata_ = false;
size_t message_index_ = 0;
absl::Status error_;
Waker pull_waker_;
};
// Push ClientInitialMetadata into the buffer.
// This is instantaneous, and returns success with the amount of data
// buffered, or failure.
ValueOrFailure<size_t> PushClientInitialMetadata(ClientMetadataHandle md);
// Resolves to a ValueOrFailure<size_t> where the size_t is the amount of data
// buffered (or 0 if we're in committed mode).
GRPC_MUST_USE_RESULT auto PushMessage(MessageHandle message) {
return [this, message = std::move(message)]() mutable {
return PollPushMessage(message);
};
}
// Push end of stream (client half-closure).
StatusFlag FinishSends();
// Cancel the request, propagate failure to all readers.
void Cancel(absl::Status error = absl::CancelledError());
// Switch to committed mode - needs to be called exactly once with the winning
// reader. All other readers will see failure.
void Commit(Reader* winner);
private:
// Buffering state: we're collecting metadata and messages.
struct Buffering {
// Initial metadata, or nullptr if not yet received.
ClientMetadataHandle initial_metadata;
// Buffered messages.
absl::InlinedVector<MessageHandle, 1> messages;
// Amount of data buffered.
size_t buffered = 0;
};
// Buffered state: all messages have been collected (the client has finished
// sending).
struct Buffered {
Buffered(ClientMetadataHandle md,
absl::InlinedVector<MessageHandle, 1> msgs)
: initial_metadata(std::move(md)), messages(std::move(msgs)) {}
ClientMetadataHandle initial_metadata;
absl::InlinedVector<MessageHandle, 1> messages;
};
// Streaming state: we're streaming messages to the server.
// This implies winner_ is set.
struct Streaming {
MessageHandle message;
bool end_of_stream = false;
};
// Cancelled state: the request has been cancelled.
struct Cancelled {
explicit Cancelled(absl::Status error) : error(std::move(error)) {}
absl::Status error;
};
using State = absl::variant<Buffering, Buffered, Streaming, Cancelled>;
Poll<ValueOrFailure<size_t>> PollPushMessage(MessageHandle& message);
Pending PendingPull(Reader* reader) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
reader->pull_waker_ = Activity::current()->MakeOwningWaker();
return Pending{};
}
Pending PendingPush() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
push_waker_ = Activity::current()->MakeOwningWaker();
return Pending{};
}
void MaybeSwitchToStreaming() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
auto& buffering = absl::get<Buffering>(state_);
if (winner_ == nullptr) return;
if (winner_->message_index_ < buffering.messages.size()) return;
state_.emplace<Streaming>();
push_waker_.Wakeup();
}
void WakeupAsyncAllPullers() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
WakeupAsyncAllPullersExcept(nullptr);
}
void WakeupAsyncAllPullersExcept(Reader* except_reader)
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
void AddReader(Reader* reader) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
readers_.insert(reader);
}
void RemoveReader(Reader* reader) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
readers_.erase(reader);
}
Mutex mu_;
Reader* winner_ ABSL_GUARDED_BY(mu_){nullptr};
State state_ ABSL_GUARDED_BY(mu_){Buffering{}};
// TODO(ctiller): change this to an intrusively linked list to avoid
// allocations.
absl::flat_hash_set<Reader*> readers_ ABSL_GUARDED_BY(mu_);
Waker push_waker_ ABSL_GUARDED_BY(mu_);
};
} // namespace grpc_core
#endif // GRPC_SRC_CORE_CALL_REQUEST_BUFFER_H

@ -28,10 +28,10 @@
#include <grpc/support/port_platform.h>
#include "src/core/channelz/channelz.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/slice/slice.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/util/string.h"
#include "src/core/util/time.h"
namespace grpc_core {
namespace channelz {

@ -28,9 +28,9 @@
#include <grpc/support/port_platform.h>
#include <grpc/support/time.h>
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/json/json.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/sync.h"
namespace grpc_core {
namespace channelz {

@ -38,9 +38,9 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/iomgr/resolved_address.h"
#include "src/core/lib/transport/connectivity_state.h"
#include "src/core/lib/uri/uri_parser.h"
#include "src/core/util/json/json_writer.h"
#include "src/core/util/string.h"
#include "src/core/util/uri.h"
#include "src/core/util/useful.h"
namespace grpc_core {

@ -38,11 +38,11 @@
#include <grpc/support/port_platform.h>
#include "src/core/channelz/channel_trace.h"
#include "src/core/lib/gprpp/per_cpu.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/json/json.h"
#include "src/core/util/per_cpu.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/sync.h"
#include "src/core/util/time_precise.h"
#include "src/core/util/useful.h"

@ -33,10 +33,10 @@
#include <grpc/support/string_util.h>
#include "src/core/channelz/channelz.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/util/json/json.h"
#include "src/core/util/json/json_writer.h"
#include "src/core/util/sync.h"
namespace grpc_core {
namespace channelz {

@ -28,8 +28,8 @@
#include <grpc/support/port_platform.h>
#include "src/core/channelz/channelz.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/sync.h"
namespace grpc_core {
namespace channelz {

@ -29,14 +29,14 @@
#include <grpc/support/sync.h>
#include "src/core/lib/config/config_vars.h"
#include "src/core/lib/gprpp/memory.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/iomgr.h"
#include "src/core/lib/iomgr/pollset.h"
#include "src/core/lib/iomgr/pollset_set.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/util/memory.h"
#include "src/core/util/time.h"
#define DEFAULT_POLL_INTERVAL_MS 5000

@ -57,15 +57,12 @@
#include "src/core/client_channel/subchannel.h"
#include "src/core/client_channel/subchannel_interface_internal.h"
#include "src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h"
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/status_util.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/event_engine/channel_args_endpoint_config.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/gprpp/work_serializer.h"
#include "src/core/lib/iomgr/resolved_address.h"
#include "src/core/lib/promise/context.h"
#include "src/core/lib/promise/exec_ctx_wakeup_scheduler.h"
@ -93,8 +90,12 @@
#include "src/core/resolver/resolver_registry.h"
#include "src/core/service_config/service_config_impl.h"
#include "src/core/telemetry/metrics.h"
#include "src/core/util/crash.h"
#include "src/core/util/debug_location.h"
#include "src/core/util/json/json.h"
#include "src/core/util/sync.h"
#include "src/core/util/useful.h"
#include "src/core/util/work_serializer.h"
namespace grpc_core {
@ -167,6 +168,7 @@ class ClientChannel::SubchannelWrapper
void CancelDataWatcher(DataWatcherInterface* watcher) override
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*client_channel_->work_serializer_);
void ThrottleKeepaliveTime(int new_keepalive_time);
std::string address() const override { return subchannel_->address(); }
private:
class WatcherWrapper;

@ -27,13 +27,13 @@
#include "src/core/client_channel/config_selector.h"
#include "src/core/client_channel/subchannel.h"
#include "src/core/ext/filters/channel_idle/idle_filter_state.h"
#include "src/core/lib/gprpp/single_set_ptr.h"
#include "src/core/lib/promise/observable.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/transport/metadata.h"
#include "src/core/load_balancing/lb_policy.h"
#include "src/core/resolver/resolver.h"
#include "src/core/service_config/service_config.h"
#include "src/core/util/single_set_ptr.h"
namespace grpc_core {

@ -23,8 +23,8 @@
#include "src/core/client_channel/subchannel.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/iomgr/resolved_address.h"
#include "src/core/util/ref_counted_ptr.h"
namespace grpc_core {

@ -63,19 +63,13 @@
#include "src/core/client_channel/subchannel.h"
#include "src/core/client_channel/subchannel_interface_internal.h"
#include "src/core/handshaker/proxy_mapper_registry.h"
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/status_util.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/experiments/experiments.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/manual_constructor.h"
#include "src/core/lib/gprpp/status_helper.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/gprpp/unique_type_name.h"
#include "src/core/lib/gprpp/work_serializer.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/polling_entity.h"
#include "src/core/lib/iomgr/pollset_set.h"
@ -103,8 +97,15 @@
#include "src/core/resolver/resolver_registry.h"
#include "src/core/service_config/service_config_call_data.h"
#include "src/core/service_config/service_config_impl.h"
#include "src/core/util/crash.h"
#include "src/core/util/debug_location.h"
#include "src/core/util/json/json.h"
#include "src/core/util/manual_constructor.h"
#include "src/core/util/status_helper.h"
#include "src/core/util/sync.h"
#include "src/core/util/unique_type_name.h"
#include "src/core/util/useful.h"
#include "src/core/util/work_serializer.h"
//
// Client channel filter
@ -616,6 +617,8 @@ class ClientChannelFilter::SubchannelWrapper final
subchannel_->ThrottleKeepaliveTime(new_keepalive_time);
}
std::string address() const override { return subchannel_->address(); }
private:
// This wrapper provides a bridge between the internal Subchannel API
// and the SubchannelInterface API that we expose to LB policies.
@ -1618,7 +1621,7 @@ void ClientChannelFilter::UpdateStateAndPickerLocked(
namespace {
// TODO(roth): Remove this in favor of the gprpp Match() function once
// TODO(roth): Remove this in favor of src/core/util/match.h once
// we can do that without breaking lock annotations.
template <typename T>
T HandlePickResult(
@ -2518,16 +2521,17 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
// updated before we queue it.
// We need to unref pickers in the WorkSerializer.
std::vector<RefCountedPtr<LoadBalancingPolicy::SubchannelPicker>> pickers;
auto cleanup = absl::MakeCleanup([&]() {
if (IsWorkSerializerDispatchEnabled()) return;
chand_->work_serializer_->Run(
[pickers = std::move(pickers)]() mutable {
for (auto& picker : pickers) {
picker.reset(DEBUG_LOCATION, "PickSubchannel");
}
},
DEBUG_LOCATION);
});
auto cleanup = absl::MakeCleanup(
[work_serializer = chand_->work_serializer_, &pickers]() {
if (IsWorkSerializerDispatchEnabled()) return;
work_serializer->Run(
[pickers = std::move(pickers)]() mutable {
for (auto& picker : pickers) {
picker.reset(DEBUG_LOCATION, "PickSubchannel");
}
},
DEBUG_LOCATION);
});
absl::AnyInvocable<void(RefCountedPtr<LoadBalancingPolicy::SubchannelPicker>)>
set_picker;
if (!IsWorkSerializerDispatchEnabled()) {

@ -46,12 +46,6 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/work_serializer.h"
#include "src/core/lib/iomgr/call_combiner.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
@ -67,7 +61,13 @@
#include "src/core/resolver/resolver.h"
#include "src/core/service_config/service_config.h"
#include "src/core/telemetry/call_tracer.h"
#include "src/core/util/orphanable.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/sync.h"
#include "src/core/util/time.h"
#include "src/core/util/time_precise.h"
#include "src/core/util/work_serializer.h"
//
// Client channel filter

@ -24,13 +24,13 @@
#include "absl/functional/any_invocable.h"
#include "absl/log/check.h"
#include "src/core/lib/gprpp/down_cast.h"
#include "src/core/lib/gprpp/unique_type_name.h"
#include "src/core/lib/resource_quota/arena.h"
#include "src/core/lib/transport/call_destination.h"
#include "src/core/load_balancing/lb_policy.h"
#include "src/core/service_config/service_config_call_data.h"
#include "src/core/telemetry/call_tracer.h"
#include "src/core/util/down_cast.h"
#include "src/core/util/unique_type_name.h"
//
// This file contains internal interfaces used to allow various plugins

@ -29,14 +29,14 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/validation_errors.h"
#include "src/core/load_balancing/lb_policy.h"
#include "src/core/service_config/service_config_parser.h"
#include "src/core/util/json/json.h"
#include "src/core/util/json/json_args.h"
#include "src/core/util/json/json_object_loader.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/time.h"
#include "src/core/util/validation_errors.h"
namespace grpc_core {
namespace internal {

@ -32,14 +32,14 @@
#include "src/core/client_channel/client_channel_internal.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/unique_type_name.h"
#include "src/core/lib/resource_quota/arena.h"
#include "src/core/lib/slice/slice.h"
#include "src/core/lib/transport/interception_chain.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/service_config/service_config.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/unique_type_name.h"
#include "src/core/util/useful.h"
// Channel arg key for ConfigSelector.

@ -21,14 +21,14 @@
#include "src/core/channelz/channelz.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/iomgr_fwd.h"
#include "src/core/lib/iomgr/resolved_address.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/orphanable.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/time.h"
namespace grpc_core {

@ -16,10 +16,10 @@
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/event_engine/event_engine_context.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/surface/channel_stack_type.h"
#include "src/core/lib/surface/client_call.h"
#include "src/core/lib/transport/interception_chain.h"
#include "src/core/util/orphanable.h"
namespace grpc_core {

@ -31,10 +31,10 @@
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/channel_stack_builder_impl.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/status_helper.h"
#include "src/core/lib/surface/channel_stack_type.h"
#include "src/core/lib/surface/lame_client.h"
#include "src/core/util/alloc.h"
#include "src/core/util/status_helper.h"
// Conversion between call and call stack.
#define CALL_TO_CALL_STACK(call) \

@ -27,16 +27,16 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/call_combiner.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/polling_entity.h"
#include "src/core/lib/resource_quota/arena.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/debug_location.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/time.h"
#include "src/core/util/time_precise.h"
namespace grpc_core {

@ -26,8 +26,8 @@
#include "absl/base/thread_annotations.h"
#include "src/core/client_channel/subchannel_pool_interface.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/sync.h"
namespace grpc_core {

@ -53,7 +53,7 @@ class LbCallState : public ClientChannelLbCallState {
}
};
// TODO(roth): Remove this in favor of the gprpp Match() function once
// TODO(roth): Remove this in favor of src/core/util/match.h function once
// we can do that without breaking lock annotations.
template <typename T>
T HandlePickResult(

@ -24,7 +24,7 @@
#include <map>
#include "src/core/client_channel/subchannel_pool_interface.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/util/ref_counted_ptr.h"
namespace grpc_core {

@ -33,11 +33,11 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/uri/uri_parser.h"
#include "src/core/service_config/service_config.h"
#include "src/core/service_config/service_config_call_data.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/uri.h"
//
// Retry filter

@ -37,9 +37,9 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/useful.h"
namespace grpc_core {

@ -29,17 +29,9 @@
#include "src/core/client_channel/client_channel_internal.h"
#include "src/core/client_channel/retry_service_config.h"
#include "src/core/client_channel/retry_throttle.h"
#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/status_util.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/construct_destruct.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/status_helper.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/call_combiner.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
@ -51,6 +43,14 @@
#include "src/core/lib/transport/error_utils.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/backoff.h"
#include "src/core/util/construct_destruct.h"
#include "src/core/util/debug_location.h"
#include "src/core/util/orphanable.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/status_helper.h"
#include "src/core/util/time.h"
#include "src/core/util/useful.h"
namespace grpc_core {

@ -34,14 +34,8 @@
#include "src/core/client_channel/retry_filter.h"
#include "src/core/client_channel/retry_service_config.h"
#include "src/core/client_channel/retry_throttle.h"
#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/call_combiner.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
@ -50,6 +44,12 @@
#include "src/core/lib/slice/slice_buffer.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/backoff.h"
#include "src/core/util/debug_location.h"
#include "src/core/util/orphanable.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/time.h"
namespace grpc_core {

@ -30,12 +30,12 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/status_util.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/validation_errors.h"
#include "src/core/service_config/service_config_parser.h"
#include "src/core/util/json/json.h"
#include "src/core/util/json/json_args.h"
#include "src/core/util/json/json_object_loader.h"
#include "src/core/util/time.h"
#include "src/core/util/validation_errors.h"
namespace grpc_core {
namespace internal {

@ -30,9 +30,9 @@
#include <grpc/support/atm.h>
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/sync.h"
namespace grpc_core {
namespace internal {

@ -44,19 +44,12 @@
#include "src/core/client_channel/subchannel_pool_interface.h"
#include "src/core/handshaker/proxy_mapper_registry.h"
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/channel_stack_builder_impl.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/experiments/experiments.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/status_helper.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/pollset_set.h"
#include "src/core/lib/promise/cancel_callback.h"
@ -72,6 +65,13 @@
#include "src/core/telemetry/stats.h"
#include "src/core/telemetry/stats_data.h"
#include "src/core/util/alloc.h"
#include "src/core/util/backoff.h"
#include "src/core/util/debug_location.h"
#include "src/core/util/orphanable.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/status_helper.h"
#include "src/core/util/sync.h"
#include "src/core/util/useful.h"
// Backoff parameters.

@ -33,18 +33,9 @@
#include "src/core/client_channel/connector.h"
#include "src/core/client_channel/subchannel_pool_interface.h"
#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/dual_ref_counted.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/unique_type_name.h"
#include "src/core/lib/gprpp/work_serializer.h"
#include "src/core/lib/iomgr/call_combiner.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
@ -57,7 +48,17 @@
#include "src/core/lib/transport/connectivity_state.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/backoff.h"
#include "src/core/util/debug_location.h"
#include "src/core/util/dual_ref_counted.h"
#include "src/core/util/orphanable.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/sync.h"
#include "src/core/util/time.h"
#include "src/core/util/time_precise.h"
#include "src/core/util/unique_type_name.h"
#include "src/core/util/work_serializer.h"
namespace grpc_core {
@ -215,7 +216,10 @@ class Subchannel final : public DualRefCounted<Subchannel> {
channelz::SubchannelNode* channelz_node();
const grpc_resolved_address& address() const { return key_.address(); }
std::string address() const {
return grpc_sockaddr_to_uri(&key_.address())
.value_or("<unknown address type>");
}
// Starts watching the subchannel's connectivity state.
// The first callback to the watcher will be delivered ~immediately.

@ -20,8 +20,8 @@
#include <grpc/support/port_platform.h>
#include "src/core/client_channel/subchannel.h"
#include "src/core/lib/gprpp/unique_type_name.h"
#include "src/core/load_balancing/subchannel_interface.h"
#include "src/core/util/unique_type_name.h"
namespace grpc_core {

@ -27,9 +27,9 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/iomgr/resolved_address.h"
#include "src/core/util/ref_counted.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/useful.h"
namespace grpc_core {

@ -29,13 +29,13 @@
#include <grpc/status.h>
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/status_helper.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/resource_quota/resource_quota.h"
#include "src/core/lib/transport/error_utils.h"
#include "src/core/util/debug_location.h"
#include "src/core/util/status_helper.h"
#include "src/core/util/sync.h"
#include "src/core/util/time.h"
#include "src/core/util/time_precise.h"
#define SUBCHANNEL_STREAM_INITIAL_CONNECT_BACKOFF_SECONDS 1

@ -33,10 +33,6 @@
#include <grpc/status.h>
#include "src/core/client_channel/subchannel.h"
#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/iomgr/call_combiner.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
@ -48,6 +44,10 @@
#include "src/core/lib/slice/slice_buffer.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/backoff.h"
#include "src/core/util/orphanable.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/sync.h"
namespace grpc_core {

@ -35,12 +35,6 @@
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/experiments/experiments.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/no_destruct.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/per_cpu.h"
#include "src/core/lib/gprpp/status_helper.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/exec_ctx.h"
@ -54,6 +48,12 @@
#include "src/core/lib/surface/channel_stack_type.h"
#include "src/core/lib/transport/http2_errors.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/util/debug_location.h"
#include "src/core/util/no_destruct.h"
#include "src/core/util/orphanable.h"
#include "src/core/util/per_cpu.h"
#include "src/core/util/status_helper.h"
#include "src/core/util/sync.h"
namespace grpc_core {
@ -207,7 +207,7 @@ void LegacyMaxAgeFilter::PostInit() {
// OnDone -- close the connection if the promise completed
// successfully.
// (if it did not, it was cancelled)
if (status.ok()) CloseChannel();
if (status.ok()) CloseChannel("max connection age");
},
std::move(arena)));
}
@ -273,16 +273,16 @@ void LegacyChannelIdleFilter::StartIdleTimer() {
activity_.Set(MakeActivity(
std::move(promise), ExecCtxWakeupScheduler{},
[channel_stack, this](absl::Status status) {
if (status.ok()) CloseChannel();
if (status.ok()) CloseChannel("connection idle");
},
std::move(arena)));
}
void LegacyChannelIdleFilter::CloseChannel() {
void LegacyChannelIdleFilter::CloseChannel(absl::string_view reason) {
auto* op = grpc_make_transport_op(nullptr);
op->disconnect_with_error = grpc_error_set_int(
GRPC_ERROR_CREATE("enter idle"),
StatusIntProperty::ChannelConnectivityState, GRPC_CHANNEL_IDLE);
GRPC_ERROR_CREATE(reason), StatusIntProperty::ChannelConnectivityState,
GRPC_CHANNEL_IDLE);
// Pass the transport op down to the channel stack.
auto* elem = grpc_channel_stack_element(channel_stack_, 0);
elem->filter->start_transport_op(elem, op);

@ -29,14 +29,14 @@
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/promise_based_filter.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/single_set_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/promise/activity.h"
#include "src/core/lib/promise/arena_promise.h"
#include "src/core/lib/transport/connectivity_state.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/orphanable.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/single_set_ptr.h"
#include "src/core/util/time.h"
namespace grpc_core {
@ -69,7 +69,7 @@ class LegacyChannelIdleFilter : public ChannelFilter {
grpc_channel_stack* channel_stack() { return channel_stack_; };
virtual void Shutdown();
void CloseChannel();
void CloseChannel(absl::string_view reason);
void IncreaseCallCount();
void DecreaseCallCount();

@ -43,13 +43,13 @@
#include "src/core/lib/channel/status_util.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/promise/context.h"
#include "src/core/lib/promise/sleep.h"
#include "src/core/lib/promise/try_seq.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/service_config/service_config_call_data.h"
#include "src/core/util/time.h"
namespace grpc_core {
@ -174,6 +174,12 @@ FaultInjectionFilter::MakeInjectionDecision(
fi_policy = method_params->fault_injection_policy(index_);
}
// Shouldn't ever be null, but just in case, return a no-op decision.
if (fi_policy == nullptr) {
return InjectionDecision(/*max_faults=*/0, /*delay_time=*/Duration::Zero(),
/*abort_request=*/absl::nullopt);
}
grpc_status_code abort_code = fi_policy->abort_code;
uint32_t abort_percentage_numerator = fi_policy->abort_percentage_numerator;
uint32_t delay_percentage_numerator = fi_policy->delay_percentage_numerator;

@ -30,9 +30,9 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/promise_based_filter.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/promise/arena_promise.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/sync.h"
namespace grpc_core {

@ -33,12 +33,12 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/validation_errors.h"
#include "src/core/service_config/service_config_parser.h"
#include "src/core/util/json/json.h"
#include "src/core/util/json/json_args.h"
#include "src/core/util/json/json_object_loader.h"
#include "src/core/util/time.h"
#include "src/core/util/validation_errors.h"
// Channel arg key for enabling parsing fault injection via method config.
#define GRPC_ARG_PARSE_FAULT_INJECTION_METHOD_CONFIG \

@ -28,12 +28,12 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/promise_based_filter.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/security/credentials/credentials.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/resolver/xds/xds_config.h"
#include "src/core/util/lru_cache.h"
#include "src/core/util/ref_counted_ptr.h"
#include "src/core/util/sync.h"
namespace grpc_core {

@ -28,11 +28,11 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/validation_errors.h"
#include "src/core/service_config/service_config_parser.h"
#include "src/core/util/json/json.h"
#include "src/core/util/json/json_args.h"
#include "src/core/util/json/json_object_loader.h"
#include "src/core/util/validation_errors.h"
// Channel arg key for enabling parsing fault injection via method config.
#define GRPC_ARG_PARSE_GCP_AUTHENTICATION_METHOD_CONFIG \

@ -61,7 +61,7 @@
#include "src/core/lib/slice/slice.h"
#include "src/core/lib/surface/channel_stack_type.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/uri/uri_parser.h"
#include "src/core/util/uri.h"
#include "src/cpp/server/load_reporter/constants.h"
// IWYU pragma: no_include "opencensus/stats/recording.h"

@ -53,8 +53,6 @@
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/host_port.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/promise/arena_promise.h"
#include "src/core/lib/promise/cancel_callback.h"
#include "src/core/lib/promise/context.h"
@ -66,9 +64,11 @@
#include "src/core/lib/surface/channel_stack_type.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/lib/uri/uri_parser.h"
#include "src/core/resolver/resolver_registry.h"
#include "src/core/telemetry/call_tracer.h"
#include "src/core/util/host_port.h"
#include "src/core/util/time.h"
#include "src/core/util/uri.h"
namespace grpc_core {

@ -30,7 +30,7 @@
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/util/time.h"
namespace grpc_core {

@ -32,13 +32,13 @@
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/promise_based_filter.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/validation_errors.h"
#include "src/core/lib/promise/arena_promise.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/service_config/service_config_parser.h"
#include "src/core/util/json/json.h"
#include "src/core/util/json/json_args.h"
#include "src/core/util/json/json_object_loader.h"
#include "src/core/util/validation_errors.h"
namespace grpc_core {

@ -31,10 +31,10 @@
#include <grpc/grpc_audit_logging.h>
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/matchers/matchers.h"
#include "src/core/lib/security/authorization/audit_logging.h"
#include "src/core/util/json/json_args.h"
#include "src/core/util/json/json_object_loader.h"
#include "src/core/util/matchers.h"
namespace grpc_core {

@ -30,11 +30,11 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/validation_errors.h"
#include "src/core/lib/security/authorization/grpc_authorization_engine.h"
#include "src/core/lib/security/authorization/rbac_policy.h"
#include "src/core/service_config/service_config_parser.h"
#include "src/core/util/json/json.h"
#include "src/core/util/validation_errors.h"
namespace grpc_core {

@ -41,8 +41,6 @@
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/promise/context.h"
#include "src/core/lib/promise/map.h"
#include "src/core/lib/promise/pipe.h"
@ -52,6 +50,8 @@
#include "src/core/lib/transport/transport.h"
#include "src/core/resolver/xds/xds_resolver_attributes.h"
#include "src/core/service_config/service_config_call_data.h"
#include "src/core/util/crash.h"
#include "src/core/util/time.h"
namespace grpc_core {

@ -30,11 +30,11 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/promise_based_filter.h"
#include "src/core/lib/gprpp/ref_counted_string.h"
#include "src/core/lib/gprpp/unique_type_name.h"
#include "src/core/lib/promise/arena_promise.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/service_config/service_config_call_data.h"
#include "src/core/util/ref_counted_string.h"
#include "src/core/util/unique_type_name.h"
namespace grpc_core {

@ -30,12 +30,12 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/validation_errors.h"
#include "src/core/service_config/service_config_parser.h"
#include "src/core/util/json/json.h"
#include "src/core/util/json/json_args.h"
#include "src/core/util/json/json_object_loader.h"
#include "src/core/util/time.h"
#include "src/core/util/validation_errors.h"
// Channel arg key for enabling parsing fault injection via method config.
#define GRPC_ARG_PARSE_STATEFUL_SESSION_METHOD_CONFIG \

@ -29,7 +29,7 @@
#include <grpc/grpc.h>
#include <grpc/grpc_posix.h>
#include "src/core/lib/gprpp/crash.h"
#include "src/core/util/crash.h"
#ifdef GPR_SUPPORT_BINDER_TRANSPORT

@ -21,7 +21,7 @@
#include <grpc/support/port_platform.h>
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/sync.h"
namespace grpc_binder {

@ -23,7 +23,7 @@
#include <grpc/support/port_platform.h>
#include "src/core/ext/transport/binder/wire_format/binder.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/sync.h"
namespace grpc_binder {

@ -21,7 +21,7 @@
#ifndef GRPC_NO_BINDER
#include "src/core/lib/gprpp/crash.h"
#include "src/core/util/crash.h"
#if defined(ANDROID) || defined(__ANDROID__)

@ -21,7 +21,7 @@
#include <grpc/support/port_platform.h>
#include <grpcpp/security/binder_security_policy.h>
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/sync.h"
namespace grpc_binder {

@ -27,7 +27,7 @@
#include "absl/log/log.h"
#include "src/core/ext/transport/binder/client/jni_utils.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/util/crash.h"
#endif

@ -36,12 +36,12 @@
#include "src/core/ext/transport/binder/wire_format/wire_reader_impl.h"
#include "src/core/ext/transport/binder/wire_format/wire_writer.h"
#include "src/core/lib/event_engine/default_event_engine.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/transport/error_utils.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/crash.h"
#ifndef NDEBUG
static void grpc_binder_stream_ref(grpc_binder_stream* s, const char* reason) {

@ -32,9 +32,9 @@
#include "src/core/ext/transport/binder/wire_format/binder.h"
#include "src/core/ext/transport/binder/wire_format/wire_reader.h"
#include "src/core/ext/transport/binder/wire_format/wire_writer.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/iomgr/combiner.h"
#include "src/core/lib/transport/transport.h"
#include "src/core/util/crash.h"
struct grpc_binder_stream;

@ -25,8 +25,8 @@
#include "absl/log/check.h"
#include "absl/log/log.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/crash.h"
#include "src/core/util/sync.h"
namespace {
void* GetNdkBinderHandle() {

@ -25,7 +25,7 @@
#include "absl/log/check.h"
#include "absl/log/log.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/util/crash.h"
namespace grpc_binder {

@ -25,7 +25,7 @@
#include <grpc/support/port_platform.h>
#include "src/core/ext/transport/binder/utils/transport_stream_receiver.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/sync.h"
namespace grpc_binder {

@ -26,7 +26,7 @@
#include <grpc/support/port_platform.h>
#include "src/core/ext/transport/binder/wire_format/binder_constants.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/util/orphanable.h"
namespace grpc_binder {

@ -26,8 +26,8 @@
#include "absl/strings/str_cat.h"
#include "src/core/ext/transport/binder/wire_format/binder_android.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/util/crash.h"
#include "src/core/util/sync.h"
namespace grpc_binder {
namespace {

@ -24,7 +24,7 @@
#include <grpc/support/port_platform.h>
#include "src/core/lib/gprpp/crash.h"
#include "src/core/util/crash.h"
namespace grpc_binder {

@ -22,7 +22,7 @@
#include "src/core/ext/transport/binder/wire_format/binder.h"
#include "src/core/ext/transport/binder/wire_format/wire_writer.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/util/orphanable.h"
namespace grpc_binder {

@ -33,8 +33,8 @@
#include "src/core/ext/transport/binder/utils/transport_stream_receiver.h"
#include "src/core/ext/transport/binder/wire_format/binder.h"
#include "src/core/ext/transport/binder/wire_format/wire_writer.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/status_helper.h"
#include "src/core/util/crash.h"
#include "src/core/util/status_helper.h"
namespace grpc_binder {
namespace {

@ -29,7 +29,7 @@
#include "src/core/ext/transport/binder/wire_format/binder.h"
#include "src/core/ext/transport/binder/wire_format/wire_reader.h"
#include "src/core/ext/transport/binder/wire_format/wire_writer.h"
#include "src/core/lib/gprpp/notification.h"
#include "src/core/util/notification.h"
namespace grpc_binder {

@ -26,7 +26,7 @@
#include "absl/types/variant.h"
#include "src/core/lib/event_engine/default_event_engine.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/util/crash.h"
#define RETURN_IF_ERROR(expr) \
do { \

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save