Merge Master

pull/37641/head
tanvi-jagtap 5 months ago
commit f4fd35b960
  1. 6
      BUILD
  2. 4
      BoringSSL-Package.swift
  3. 14
      CMakeLists.txt
  4. 14
      Makefile
  5. 2
      _metadata.py
  6. 1
      bazel/experiments.bzl
  7. 8
      bazel/grpc_deps.bzl
  8. 1
      build_autogenerated.yaml
  9. 2
      build_config.rb
  10. 6
      build_handwritten.yaml
  11. 8
      config.m4
  12. 6
      config.w32
  13. 3
      doc/g_stands_for.md
  14. 2
      gRPC-C++.podspec
  15. 4
      gRPC-Core.podspec
  16. 2
      gRPC-ProtoRPC.podspec
  17. 2
      gRPC-RxLibrary.podspec
  18. 2
      gRPC.podspec
  19. 164
      grpc.gemspec
  20. 4
      include/grpcpp/version_info.h
  21. 170
      package.xml
  22. 83
      src/boringssl/boringssl_prefix_symbols.h
  23. 4
      src/compiler/php_generator.cc
  24. 5
      src/core/BUILD
  25. 2
      src/core/client_channel/client_channel.cc
  26. 24
      src/core/client_channel/client_channel_filter.cc
  27. 6
      src/core/client_channel/subchannel.h
  28. 10
      src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc
  29. 2
      src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h
  30. 26
      src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc
  31. 2
      src/core/ext/transport/chaotic_good/client/chaotic_good_connector.h
  32. 63
      src/core/ext/transport/chaotic_good/client_transport.cc
  33. 22
      src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc
  34. 2
      src/core/ext/transport/chaotic_good/server/chaotic_good_server.h
  35. 12
      src/core/ext/transport/chaotic_good/server_transport.cc
  36. 2
      src/core/handshaker/http_connect/http_connect_handshaker.cc
  37. 6
      src/core/lib/event_engine/ares_resolver.cc
  38. 2
      src/core/lib/event_engine/cf_engine/dns_service_resolver.cc
  39. 2
      src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc
  40. 2
      src/core/lib/event_engine/posix_engine/posix_endpoint.cc
  41. 2
      src/core/lib/event_engine/windows/native_windows_dns_resolver.cc
  42. 18
      src/core/lib/experiments/experiments.cc
  43. 11
      src/core/lib/experiments/experiments.h
  44. 15
      src/core/lib/experiments/experiments.yaml
  45. 2
      src/core/lib/experiments/rollouts.yaml
  46. 8
      src/core/lib/gprpp/time.h
  47. 28
      src/core/lib/iomgr/exec_ctx.h
  48. 2
      src/core/lib/iomgr/resolve_address_posix.cc
  49. 2
      src/core/lib/iomgr/resolve_address_windows.cc
  50. 6
      src/core/lib/promise/activity.h
  51. 16
      src/core/lib/promise/party.cc
  52. 2
      src/core/lib/promise/party.h
  53. 2
      src/core/lib/resource_quota/periodic_update.cc
  54. 4
      src/core/lib/surface/version.cc
  55. 5
      src/core/lib/transport/call_filters.h
  56. 24
      src/core/lib/transport/call_spine.h
  57. 55
      src/core/lib/transport/call_state.h
  58. 6
      src/core/load_balancing/health_check_client.cc
  59. 29
      src/core/load_balancing/outlier_detection/outlier_detection.cc
  60. 12
      src/core/load_balancing/pick_first/pick_first.cc
  61. 2
      src/core/load_balancing/rls/rls.cc
  62. 8
      src/core/load_balancing/subchannel_interface.h
  63. 6
      src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc
  64. 17
      src/core/server/xds_server_config_fetcher.cc
  65. 8
      src/core/util/log.cc
  66. 29
      src/core/xds/xds_client/xds_client.cc
  67. 2
      src/csharp/build/dependencies.props
  68. 2
      src/objective-c/!ProtoCompiler-gRPCCppPlugin.podspec
  69. 2
      src/objective-c/!ProtoCompiler-gRPCPlugin.podspec
  70. 1055
      src/objective-c/BoringSSL-GRPC.podspec
  71. 2
      src/objective-c/GRPCClient/version.h
  72. 2
      src/objective-c/tests/Podfile
  73. 4
      src/objective-c/tests/version.h
  74. 2
      src/php/composer.json
  75. 2
      src/php/ext/grpc/version.h
  76. 4
      src/php/tests/generated_code/Math/MathStub.php
  77. 14
      src/php/tests/generated_code/math_server.php
  78. 6
      src/php/tests/interop/Grpc/Testing/HookServiceStub.php
  79. 4
      src/php/tests/interop/Grpc/Testing/LoadBalancerStatsServiceStub.php
  80. 4
      src/php/tests/interop/Grpc/Testing/ReconnectServiceStub.php
  81. 10
      src/php/tests/interop/Grpc/Testing/TestServiceStub.php
  82. 2
      src/php/tests/interop/Grpc/Testing/UnimplementedServiceStub.php
  83. 2
      src/php/tests/interop/Grpc/Testing/XdsUpdateClientConfigureServiceStub.php
  84. 6
      src/php/tests/interop/Grpc/Testing/XdsUpdateHealthServiceStub.php
  85. 18
      src/php/tests/interop/interop_server.php
  86. 2
      src/php/tests/interop/metrics_client.php
  87. 4
      src/php/tests/unit_tests/ServerCallTest.php
  88. 4
      src/php/tests/unit_tests/StatusTest.php
  89. 2
      src/python/grpcio/grpc/_grpcio_metadata.py
  90. 4
      src/python/grpcio/grpc_core_dependencies.py
  91. 2
      src/python/grpcio/grpc_version.py
  92. 2
      src/python/grpcio_admin/grpc_version.py
  93. 2
      src/python/grpcio_channelz/grpc_version.py
  94. 2
      src/python/grpcio_csds/grpc_version.py
  95. 2
      src/python/grpcio_csm_observability/grpc_version.py
  96. 2
      src/python/grpcio_health_checking/grpc_version.py
  97. 2
      src/python/grpcio_observability/grpc_version.py
  98. 2
      src/python/grpcio_reflection/grpc_version.py
  99. 2
      src/python/grpcio_status/grpc_version.py
  100. 2
      src/python/grpcio_testing/grpc_version.py
  101. Some files were not shown because too many files have changed in this diff Show More

@ -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",

@ -142,6 +142,8 @@ let package = Package(
"src/crypto/kyber/kyber.c",
"src/crypto/lhash/lhash.c",
"src/crypto/mem.c",
"src/crypto/mldsa/mldsa.c",
"src/crypto/mlkem/mlkem.cc",
"src/crypto/obj/obj.c",
"src/crypto/obj/obj_xref.c",
"src/crypto/pem/pem_all.c",
@ -162,12 +164,14 @@ let package = Package(
"src/crypto/poly1305/poly1305_vec.c",
"src/crypto/pool/pool.c",
"src/crypto/rand_extra/deterministic.c",
"src/crypto/rand_extra/fork_detect.c",
"src/crypto/rand_extra/forkunsafe.c",
"src/crypto/rand_extra/getentropy.c",
"src/crypto/rand_extra/ios.c",
"src/crypto/rand_extra/passive.c",
"src/crypto/rand_extra/rand_extra.c",
"src/crypto/rand_extra/trusty.c",
"src/crypto/rand_extra/urandom.c",
"src/crypto/rand_extra/windows.c",
"src/crypto/rc4/rc4.c",
"src/crypto/refcount.c",

14
CMakeLists.txt generated

@ -25,11 +25,11 @@
cmake_minimum_required(VERSION 3.13)
set(PACKAGE_NAME "grpc")
set(PACKAGE_VERSION "1.67.0-dev")
set(gRPC_CORE_VERSION "43.0.0")
set(gRPC_CORE_SOVERSION "43")
set(gRPC_CPP_VERSION "1.67.0-dev")
set(gRPC_CPP_SOVERSION "1.67")
set(PACKAGE_VERSION "1.68.0-dev")
set(gRPC_CORE_VERSION "44.0.0")
set(gRPC_CORE_SOVERSION "44")
set(gRPC_CPP_VERSION "1.68.0-dev")
set(gRPC_CPP_SOVERSION "1.68")
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}")
set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
@ -1591,7 +1591,7 @@ if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_dependencies(buildtests_cxx xds_fallback_end2end_test)
endif()
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
add_dependencies(buildtests_cxx xds_fault_injection_end2end_test)
endif()
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
@ -35482,7 +35482,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
add_executable(xds_fault_injection_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc

14
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 =
@ -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
@ -1984,6 +1984,8 @@ LIBBORINGSSL_SRC = \
third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c \
third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c \
third_party/boringssl-with-bazel/src/crypto/mem.c \
third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c \
third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc \
third_party/boringssl-with-bazel/src/crypto/obj/obj.c \
third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c \
third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c \
@ -2004,12 +2006,14 @@ LIBBORINGSSL_SRC = \
third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c \
third_party/boringssl-with-bazel/src/crypto/pool/pool.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/fork_detect.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/urandom.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c \
third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c \
third_party/boringssl-with-bazel/src/crypto/refcount.c \

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

@ -34,6 +34,7 @@ EXPERIMENT_ENABLES = {
"server_privacy": "server_privacy",
"tcp_frame_size_tuning": "tcp_frame_size_tuning",
"tcp_rcv_lowat": "tcp_rcv_lowat",
"time_caching_in_party": "time_caching_in_party",
"trace_record_callops": "trace_record_callops",
"unconstrained_max_quota_buffer_size": "unconstrained_max_quota_buffer_size",
"work_serializer_clears_time_cache": "work_serializer_clears_time_cache",

@ -35,11 +35,11 @@ def grpc_deps():
name = "boringssl",
# Use github mirror instead of https://boringssl.googlesource.com/boringssl
# to obtain a boringssl archive with consistent sha256
sha256 = "7a35bebd0e1eecbc5bf5bbf5eec03e86686c356802b5540872119bd26f84ecc7",
strip_prefix = "boringssl-16c8d3db1af20fcc04b5190b25242aadcb1fbb30",
sha256 = "c70d519e4ee709b7a74410a5e3a937428b8198d793a3d771be3dd2086ae167c8",
strip_prefix = "boringssl-b8b3e6e11166719a8ebfa43c0cde9ad7d57a84f6",
urls = [
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/16c8d3db1af20fcc04b5190b25242aadcb1fbb30.tar.gz",
"https://github.com/google/boringssl/archive/16c8d3db1af20fcc04b5190b25242aadcb1fbb30.tar.gz",
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/b8b3e6e11166719a8ebfa43c0cde9ad7d57a84f6.tar.gz",
"https://github.com/google/boringssl/archive/b8b3e6e11166719a8ebfa43c0cde9ad7d57a84f6.tar.gz",
],
)

@ -21871,7 +21871,6 @@ targets:
platforms:
- linux
- posix
- mac
- name: xds_gcp_authn_end2end_test
gtest: true
build: test

@ -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

8
config.m4 generated

@ -1160,6 +1160,8 @@ if test "$PHP_GRPC" != "no"; then
third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c \
third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c \
third_party/boringssl-with-bazel/src/crypto/mem.c \
third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c \
third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc \
third_party/boringssl-with-bazel/src/crypto/obj/obj.c \
third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c \
third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c \
@ -1180,12 +1182,14 @@ if test "$PHP_GRPC" != "no"; then
third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c \
third_party/boringssl-with-bazel/src/crypto/pool/pool.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/fork_detect.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/urandom.c \
third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c \
third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c \
third_party/boringssl-with-bazel/src/crypto/refcount.c \
@ -1396,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)
@ -1681,6 +1685,8 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/keccak)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/kyber)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/lhash)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/mldsa)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/mlkem)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/obj)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/pem)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/pkcs7)

6
config.w32 generated

@ -1125,6 +1125,8 @@ if (PHP_GRPC != "no") {
"third_party\\boringssl-with-bazel\\src\\crypto\\kyber\\kyber.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\lhash\\lhash.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\mem.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\mldsa\\mldsa.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\mlkem\\mlkem.cc " +
"third_party\\boringssl-with-bazel\\src\\crypto\\obj\\obj.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\obj\\obj_xref.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\pem\\pem_all.c " +
@ -1145,12 +1147,14 @@ if (PHP_GRPC != "no") {
"third_party\\boringssl-with-bazel\\src\\crypto\\poly1305\\poly1305_vec.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\pool\\pool.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\deterministic.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\fork_detect.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\forkunsafe.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\getentropy.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\ios.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\passive.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\rand_extra.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\trusty.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\urandom.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rand_extra\\windows.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\rc4\\rc4.c " +
"third_party\\boringssl-with-bazel\\src\\crypto\\refcount.c " +
@ -1836,6 +1840,8 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\keccak");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\kyber");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\lhash");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\mldsa");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\mlkem");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\obj");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\pem");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\pkcs7");

@ -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)

2
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'

4
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'
@ -199,7 +199,7 @@ Pod::Spec.new do |s|
ss.libraries = 'z'
ss.dependency "#{s.name}/Interface", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency 'BoringSSL-GRPC', '0.0.36'
ss.dependency 'BoringSSL-GRPC', '0.0.37'
ss.dependency 'abseil/algorithm/container', abseil_version
ss.dependency 'abseil/base/base', abseil_version
ss.dependency 'abseil/base/config', abseil_version

@ -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'

164
grpc.gemspec generated

@ -2514,6 +2514,7 @@ Gem::Specification.new do |s|
s.files += %w( third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/base64/base64.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/bcm_support.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/bio/bio.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/bio/connect.c )
@ -2608,107 +2609,104 @@ Gem::Specification.new do |s|
s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/sign.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/ex_data.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c.inc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/hrss/internal.h )
@ -2720,6 +2718,10 @@ Gem::Specification.new do |s|
s.files += %w( third_party/boringssl-with-bazel/src/crypto/lhash/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/mem.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/obj/obj.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c )
@ -2745,12 +2747,16 @@ Gem::Specification.new do |s|
s.files += %w( third_party/boringssl-with-bazel/src/crypto/pool/internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/pool/pool.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/fork_detect.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/getrandom_fillin.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/urandom.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c )
s.files += %w( third_party/boringssl-with-bazel/src/crypto/refcount.c )
@ -2908,6 +2914,8 @@ Gem::Specification.new do |s|
s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/md4.h )
s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/md5.h )
s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/mem.h )
s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/mldsa.h )
s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/mlkem.h )
s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/nid.h )
s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/obj.h )
s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h )

@ -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

170
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="/">
@ -2518,6 +2518,7 @@
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/base64/base64.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/bcm_support.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/bio/bio.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/bio/connect.c" role="src" />
@ -2612,107 +2613,104 @@
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/evp/sign.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/ex_data.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c.inc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/hrss/internal.h" role="src" />
@ -2724,6 +2722,10 @@
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/lhash/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/mem.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/obj/obj.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c" role="src" />
@ -2749,12 +2751,16 @@
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/pool/internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/pool/pool.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/fork_detect.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/getrandom_fillin.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/urandom.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/crypto/refcount.c" role="src" />
@ -2912,6 +2918,8 @@
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/include/openssl/md4.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/include/openssl/md5.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/include/openssl/mem.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/include/openssl/mldsa.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/include/openssl/mlkem.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/include/openssl/nid.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/include/openssl/obj.h" role="src" />
<file baseinstalldir="/" name="third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h" role="src" />

@ -1,4 +1,4 @@
// generated by generate_boringssl_prefix_header.sh on BoringSSL commit: 16c8d3db1af20fcc04b5190b25242aadcb1fbb30
// generated by generate_boringssl_prefix_header.sh on BoringSSL commit: b8b3e6e11166719a8ebfa43c0cde9ad7d57a84f6
// Copyright (c) 2018, Google Inc.
//
@ -829,6 +829,9 @@
#define BASIC_CONSTRAINTS_free BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BASIC_CONSTRAINTS_free)
#define BASIC_CONSTRAINTS_it BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BASIC_CONSTRAINTS_it)
#define BASIC_CONSTRAINTS_new BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BASIC_CONSTRAINTS_new)
#define BCM_rand_bytes BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BCM_rand_bytes)
#define BCM_rand_bytes_hwrng BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BCM_rand_bytes_hwrng)
#define BCM_rand_bytes_with_additional_data BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BCM_rand_bytes_with_additional_data)
#define BIO_append_filename BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BIO_append_filename)
#define BIO_callback_ctrl BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BIO_callback_ctrl)
#define BIO_clear_flags BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BIO_clear_flags)
@ -1139,6 +1142,7 @@
#define CBS_asn1_oid_to_text BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_asn1_oid_to_text)
#define CBS_contains_zero_byte BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_contains_zero_byte)
#define CBS_copy_bytes BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_copy_bytes)
#define CBS_data BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_data)
#define CBS_get_any_asn1 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_get_any_asn1)
#define CBS_get_any_asn1_element BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_get_any_asn1_element)
#define CBS_get_any_ber_asn1_element BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_get_any_ber_asn1_element)
@ -1175,6 +1179,7 @@
#define CBS_is_valid_asn1_bitstring BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_is_valid_asn1_bitstring)
#define CBS_is_valid_asn1_integer BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_is_valid_asn1_integer)
#define CBS_is_valid_asn1_oid BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_is_valid_asn1_oid)
#define CBS_len BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_len)
#define CBS_mem_equal BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_mem_equal)
#define CBS_parse_generalized_time BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_parse_generalized_time)
#define CBS_parse_utc_time BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_parse_utc_time)
@ -1879,6 +1884,7 @@
#define EVP_hpke_aes_256_gcm BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_hpke_aes_256_gcm)
#define EVP_hpke_chacha20_poly1305 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_hpke_chacha20_poly1305)
#define EVP_hpke_hkdf_sha256 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_hpke_hkdf_sha256)
#define EVP_hpke_p256_hkdf_sha256 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_hpke_p256_hkdf_sha256)
#define EVP_hpke_x25519_hkdf_sha256 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_hpke_x25519_hkdf_sha256)
#define EVP_marshal_digest_algorithm BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_marshal_digest_algorithm)
#define EVP_marshal_private_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_marshal_private_key)
@ -1981,6 +1987,40 @@
#define MD5_Update BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MD5_Update)
#define METHOD_ref BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, METHOD_ref)
#define METHOD_unref BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, METHOD_unref)
#define MLDSA65_generate_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_generate_key)
#define MLDSA65_generate_key_external_entropy BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_generate_key_external_entropy)
#define MLDSA65_marshal_private_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_marshal_private_key)
#define MLDSA65_marshal_public_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_marshal_public_key)
#define MLDSA65_parse_private_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_parse_private_key)
#define MLDSA65_parse_public_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_parse_public_key)
#define MLDSA65_private_key_from_seed BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_private_key_from_seed)
#define MLDSA65_public_from_private BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_public_from_private)
#define MLDSA65_sign BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_sign)
#define MLDSA65_sign_internal BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_sign_internal)
#define MLDSA65_verify BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_verify)
#define MLDSA65_verify_internal BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLDSA65_verify_internal)
#define MLKEM1024_decap BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_decap)
#define MLKEM1024_encap BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_encap)
#define MLKEM1024_encap_external_entropy BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_encap_external_entropy)
#define MLKEM1024_generate_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_generate_key)
#define MLKEM1024_generate_key_external_seed BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_generate_key_external_seed)
#define MLKEM1024_marshal_private_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_marshal_private_key)
#define MLKEM1024_marshal_public_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_marshal_public_key)
#define MLKEM1024_parse_private_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_parse_private_key)
#define MLKEM1024_parse_public_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_parse_public_key)
#define MLKEM1024_private_key_from_seed BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_private_key_from_seed)
#define MLKEM1024_public_from_private BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM1024_public_from_private)
#define MLKEM768_decap BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_decap)
#define MLKEM768_encap BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_encap)
#define MLKEM768_encap_external_entropy BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_encap_external_entropy)
#define MLKEM768_generate_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_generate_key)
#define MLKEM768_generate_key_external_seed BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_generate_key_external_seed)
#define MLKEM768_marshal_private_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_marshal_private_key)
#define MLKEM768_marshal_public_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_marshal_public_key)
#define MLKEM768_parse_private_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_parse_private_key)
#define MLKEM768_parse_public_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_parse_public_key)
#define MLKEM768_private_key_from_seed BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_private_key_from_seed)
#define MLKEM768_public_from_private BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, MLKEM768_public_from_private)
#define NAME_CONSTRAINTS_check BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, NAME_CONSTRAINTS_check)
#define NAME_CONSTRAINTS_free BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, NAME_CONSTRAINTS_free)
#define NAME_CONSTRAINTS_it BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, NAME_CONSTRAINTS_it)
@ -2252,7 +2292,6 @@
#define RAND_SSLeay BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, RAND_SSLeay)
#define RAND_add BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, RAND_add)
#define RAND_bytes BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, RAND_bytes)
#define RAND_bytes_with_additional_data BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, RAND_bytes_with_additional_data)
#define RAND_cleanup BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, RAND_cleanup)
#define RAND_disable_fork_unsafe_buffering BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, RAND_disable_fork_unsafe_buffering)
#define RAND_egd BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, RAND_egd)
@ -3018,8 +3057,10 @@
#define c2i_ASN1_BIT_STRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, c2i_ASN1_BIT_STRING)
#define c2i_ASN1_INTEGER BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, c2i_ASN1_INTEGER)
#define c2i_ASN1_OBJECT BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, c2i_ASN1_OBJECT)
#define chacha20_poly1305_open BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, chacha20_poly1305_open)
#define chacha20_poly1305_seal BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, chacha20_poly1305_seal)
#define chacha20_poly1305_open_avx2 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, chacha20_poly1305_open_avx2)
#define chacha20_poly1305_open_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, chacha20_poly1305_open_nohw)
#define chacha20_poly1305_seal_avx2 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, chacha20_poly1305_seal_avx2)
#define chacha20_poly1305_seal_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, chacha20_poly1305_seal_nohw)
#define crypto_gcm_clmul_enabled BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, crypto_gcm_clmul_enabled)
#define d2i_ASN1_BIT_STRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_ASN1_BIT_STRING)
#define d2i_ASN1_BMPSTRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_ASN1_BMPSTRING)
@ -3221,19 +3262,29 @@
#define ec_set_to_safe_point BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ec_set_to_safe_point)
#define ec_simple_scalar_inv0_montgomery BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ec_simple_scalar_inv0_montgomery)
#define ec_simple_scalar_to_montgomery_inv_vartime BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ec_simple_scalar_to_montgomery_inv_vartime)
#define ecdsa_do_verify_no_self_test BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecdsa_do_verify_no_self_test)
#define ecdsa_sign_with_nonce_for_known_answer_test BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecdsa_sign_with_nonce_for_known_answer_test)
#define ecp_nistz256_avx2_select_w7 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_avx2_select_w7)
#define ecp_nistz256_mul_mont BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_mul_mont)
#define ecdsa_sign_fixed BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecdsa_sign_fixed)
#define ecdsa_sign_fixed_with_nonce_for_known_answer_test BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecdsa_sign_fixed_with_nonce_for_known_answer_test)
#define ecdsa_verify_fixed BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecdsa_verify_fixed)
#define ecdsa_verify_fixed_no_self_test BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecdsa_verify_fixed_no_self_test)
#define ecp_nistz256_mul_mont_adx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_mul_mont_adx)
#define ecp_nistz256_mul_mont_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_mul_mont_nohw)
#define ecp_nistz256_neg BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_neg)
#define ecp_nistz256_ord_mul_mont BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_ord_mul_mont)
#define ecp_nistz256_ord_sqr_mont BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_ord_sqr_mont)
#define ecp_nistz256_point_add BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_point_add)
#define ecp_nistz256_point_add_affine BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_point_add_affine)
#define ecp_nistz256_point_double BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_point_double)
#define ecp_nistz256_select_w5 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_select_w5)
#define ecp_nistz256_select_w7 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_select_w7)
#define ecp_nistz256_sqr_mont BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_sqr_mont)
#define ecp_nistz256_ord_mul_mont_adx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_ord_mul_mont_adx)
#define ecp_nistz256_ord_mul_mont_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_ord_mul_mont_nohw)
#define ecp_nistz256_ord_sqr_mont_adx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_ord_sqr_mont_adx)
#define ecp_nistz256_ord_sqr_mont_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_ord_sqr_mont_nohw)
#define ecp_nistz256_point_add_adx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_point_add_adx)
#define ecp_nistz256_point_add_affine_adx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_point_add_affine_adx)
#define ecp_nistz256_point_add_affine_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_point_add_affine_nohw)
#define ecp_nistz256_point_add_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_point_add_nohw)
#define ecp_nistz256_point_double_adx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_point_double_adx)
#define ecp_nistz256_point_double_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_point_double_nohw)
#define ecp_nistz256_select_w5_avx2 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_select_w5_avx2)
#define ecp_nistz256_select_w5_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_select_w5_nohw)
#define ecp_nistz256_select_w7_avx2 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_select_w7_avx2)
#define ecp_nistz256_select_w7_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_select_w7_nohw)
#define ecp_nistz256_sqr_mont_adx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_sqr_mont_adx)
#define ecp_nistz256_sqr_mont_nohw BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_sqr_mont_nohw)
#define ed25519_asn1_meth BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ed25519_asn1_meth)
#define ed25519_pkey_meth BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ed25519_pkey_meth)
#define evp_pkey_set_method BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, evp_pkey_set_method)

@ -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"

@ -3606,7 +3606,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",

@ -57,6 +57,7 @@
#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"
@ -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;

@ -63,6 +63,7 @@
#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"
@ -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.
@ -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()) {

@ -33,6 +33,7 @@
#include "src/core/client_channel/connector.h"
#include "src/core/client_channel/subchannel_pool_interface.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_fwd.h"
@ -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.

@ -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);

@ -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();

@ -134,9 +134,12 @@ auto ChaoticGoodConnector::WaitForDataEndpointSetup(
endpoint) mutable {
ExecCtx exec_ctx;
if (!endpoint.ok() || self->handshake_mgr_ == nullptr) {
ExecCtx::Run(DEBUG_LOCATION,
std::exchange(self->notify_, nullptr),
GRPC_ERROR_CREATE("connect endpoint failed"));
MutexLock lock(&self->mu_);
if (self->notify_ != nullptr) {
ExecCtx::Run(DEBUG_LOCATION,
std::exchange(self->notify_, nullptr),
GRPC_ERROR_CREATE("connect endpoint failed"));
}
return;
}
auto* chaotic_good_ext =
@ -240,9 +243,9 @@ void ChaoticGoodConnector::Connect(const Args& args, Result* result,
GRPC_ERROR_CREATE("connector shutdown"));
return;
}
notify_ = notify;
}
args_ = args;
notify_ = notify;
resolved_addr_ = EventEngine::ResolvedAddress(
reinterpret_cast<const sockaddr*>(args_.address->addr),
args_.address->len);
@ -253,11 +256,14 @@ void ChaoticGoodConnector::Connect(const Args& args, Result* result,
endpoint) mutable {
ExecCtx exec_ctx;
if (!endpoint.ok() || self->handshake_mgr_ == nullptr) {
auto endpoint_status = endpoint.status();
auto error = GRPC_ERROR_CREATE_REFERENCING("connect endpoint failed",
&endpoint_status, 1);
ExecCtx::Run(DEBUG_LOCATION, std::exchange(self->notify_, nullptr),
error);
MutexLock lock(&self->mu_);
if (self->notify_ != nullptr) {
auto endpoint_status = endpoint.status();
auto error = GRPC_ERROR_CREATE_REFERENCING(
"connect endpoint failed", &endpoint_status, 1);
ExecCtx::Run(DEBUG_LOCATION, std::exchange(self->notify_, nullptr),
error);
}
return;
}
auto* chaotic_good_ext =
@ -320,8 +326,8 @@ void ChaoticGoodConnector::OnHandshakeDone(
[self = RefAsSubclass<ChaoticGoodConnector>()](absl::Status status) {
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "ChaoticGoodConnector::OnHandshakeDone: " << status;
MutexLock lock(&self->mu_);
if (status.ok()) {
MutexLock lock(&self->mu_);
self->result_->transport = new ChaoticGoodClientTransport(
std::move(self->control_endpoint_),
std::move(self->data_endpoint_), self->args_.channel_args,

@ -83,7 +83,7 @@ class ChaoticGoodConnector : public SubchannelConnector {
Mutex mu_;
Args args_;
Result* result_ ABSL_GUARDED_BY(mu_);
grpc_closure* notify_ = nullptr;
grpc_closure* notify_ ABSL_GUARDED_BY(mu_) = nullptr;
bool is_shutdown_ ABSL_GUARDED_BY(mu_) = false;
absl::StatusOr<grpc_event_engine::experimental::EventEngine::ResolvedAddress>
resolved_addr_;

@ -250,18 +250,20 @@ void ChaoticGoodClientTransport::AbortWithError() {
}
uint32_t ChaoticGoodClientTransport::MakeStream(CallHandler call_handler) {
ReleasableMutexLock lock(&mu_);
MutexLock lock(&mu_);
const uint32_t stream_id = next_stream_id_++;
const bool on_done_added =
call_handler.OnDone([self = RefAsSubclass<ChaoticGoodClientTransport>(),
stream_id](bool cancelled) {
if (cancelled) {
self->outgoing_frames_.MakeSender().UnbufferedImmediateSend(
CancelFrame{stream_id});
}
MutexLock lock(&self->mu_);
self->stream_map_.erase(stream_id);
});
if (!on_done_added) return 0;
stream_map_.emplace(stream_id, call_handler);
lock.Release();
call_handler.OnDone([this, stream_id](bool cancelled) {
if (cancelled) {
outgoing_frames_.MakeSender().UnbufferedImmediateSend(
CancelFrame{stream_id});
}
MutexLock lock(&mu_);
stream_map_.erase(stream_id);
});
return stream_id;
}
@ -321,23 +323,30 @@ void ChaoticGoodClientTransport::StartCall(CallHandler call_handler) {
"outbound_loop", [self = RefAsSubclass<ChaoticGoodClientTransport>(),
call_handler]() mutable {
const uint32_t stream_id = self->MakeStream(call_handler);
return Map(
self->CallOutboundLoop(stream_id, call_handler),
[stream_id, sender = self->outgoing_frames_.MakeSender()](
absl::Status result) mutable {
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "CHAOTIC_GOOD: Call " << stream_id << " finished with "
<< result.ToString();
if (!result.ok()) {
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "CHAOTIC_GOOD: Send cancel";
if (!sender.UnbufferedImmediateSend(CancelFrame{stream_id})) {
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "CHAOTIC_GOOD: Send cancel failed";
}
}
return result;
});
return If(
stream_id != 0,
[stream_id, call_handler = std::move(call_handler),
self = std::move(self)]() {
return Map(
self->CallOutboundLoop(stream_id, call_handler),
[stream_id, sender = self->outgoing_frames_.MakeSender()](
absl::Status result) mutable {
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "CHAOTIC_GOOD: Call " << stream_id
<< " finished with " << result.ToString();
if (!result.ok()) {
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "CHAOTIC_GOOD: Send cancel";
if (!sender.UnbufferedImmediateSend(
CancelFrame{stream_id})) {
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "CHAOTIC_GOOD: Send cancel failed";
}
}
return result;
});
},
[]() { return absl::OkStatus(); });
});
}

@ -187,11 +187,7 @@ void ChaoticGoodServerListener::ActiveConnection::NewConnectionID() {
connection_id_, std::make_shared<InterActivityLatch<PromiseEndpoint>>());
}
void ChaoticGoodServerListener::ActiveConnection::Done(
absl::optional<absl::string_view> error) {
if (error.has_value()) {
LOG(ERROR) << "ActiveConnection::Done:" << this << " " << *error;
}
void ChaoticGoodServerListener::ActiveConnection::Done() {
// Can easily be holding various locks here: bounce through EE to ensure no
// deadlocks.
listener_->event_engine_->Run([self = Ref()]() {
@ -387,13 +383,15 @@ auto ChaoticGoodServerListener::ActiveConnection::HandshakingState::
void ChaoticGoodServerListener::ActiveConnection::HandshakingState::
OnHandshakeDone(absl::StatusOr<HandshakerArgs*> result) {
if (!result.ok()) {
connection_->Done(
absl::StrCat("Handshake failed: ", result.status().ToString()));
LOG_EVERY_N_SEC(ERROR, 5) << "Handshake failed: ", result.status();
connection_->Done();
return;
}
CHECK_NE(*result, nullptr);
if ((*result)->endpoint == nullptr) {
connection_->Done("Server handshake done but has empty endpoint.");
LOG_EVERY_N_SEC(ERROR, 5)
<< "Server handshake done but has empty endpoint.";
connection_->Done();
return;
}
CHECK(grpc_event_engine::experimental::grpc_is_event_engine_endpoint(
@ -429,12 +427,10 @@ void ChaoticGoodServerListener::ActiveConnection::HandshakingState::
EventEngineWakeupScheduler(connection_->listener_->event_engine_),
[self = Ref()](absl::Status status) {
if (!status.ok()) {
self->connection_->Done(
absl::StrCat("Server setting frame handling failed: ",
StatusToString(status)));
} else {
self->connection_->Done();
GRPC_TRACE_LOG(chaotic_good, ERROR)
<< "Server setting frame handling failed: " << status;
}
self->connection_->Done();
},
connection_->arena_.get());
MutexLock lock(&connection_->mu_);

@ -111,7 +111,7 @@ class ChaoticGoodServerListener final : public Server::ListenerInterface {
};
private:
void Done(absl::optional<absl::string_view> error = absl::nullopt);
void Done();
void NewConnectionID();
RefCountedPtr<Arena> arena_ = SimpleArenaAllocator()->MakeArena();
const RefCountedPtr<ChaoticGoodServerListener> listener_;

@ -237,10 +237,11 @@ auto ChaoticGoodServerTransport::DeserializeAndPushFragmentToNewCall(
call_initiator.emplace(std::move(call.initiator));
auto add_result = NewStream(frame_header.stream_id, *call_initiator);
if (add_result.ok()) {
call_destination_->StartCall(std::move(call.handler));
call_initiator->SpawnGuarded(
"server-write", [this, stream_id = frame_header.stream_id,
call_initiator = *call_initiator]() {
call_initiator = *call_initiator,
call_handler = std::move(call.handler)]() mutable {
call_destination_->StartCall(std::move(call_handler));
return CallOutboundLoop(stream_id, call_initiator);
});
} else {
@ -438,8 +439,7 @@ absl::Status ChaoticGoodServerTransport::NewStream(
if (stream_id <= last_seen_new_stream_id_) {
return absl::InternalError("Stream id is not increasing");
}
stream_map_.emplace(stream_id, call_initiator);
call_initiator.OnDone(
const bool on_done_added = call_initiator.OnDone(
[self = RefAsSubclass<ChaoticGoodServerTransport>(), stream_id](bool) {
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "CHAOTIC_GOOD " << self.get() << " OnDone " << stream_id;
@ -453,6 +453,10 @@ absl::Status ChaoticGoodServerTransport::NewStream(
});
}
});
if (!on_done_added) {
return absl::CancelledError();
}
stream_map_.emplace(stream_id, call_initiator);
return absl::OkStatus();
}

@ -279,7 +279,7 @@ void HttpConnectHandshaker::DoHandshake(
for (size_t i = 0; i < num_header_strings; ++i) {
char* sep = strchr(header_strings[i], ':');
if (sep == nullptr) {
LOG(ERROR) << "skipping unparseable HTTP CONNECT header: "
LOG(ERROR) << "skipping unparsable HTTP CONNECT header: "
<< header_strings[i];
continue;
}

@ -272,7 +272,7 @@ void AresResolver::LookupHostname(
event_engine_->Run(
[callback = std::move(callback),
status = absl::InvalidArgumentError(absl::StrCat(
"Unparseable name: ", name))]() mutable { callback(status); });
"Unparsable name: ", name))]() mutable { callback(status); });
return;
}
if (host.empty()) {
@ -351,7 +351,7 @@ void AresResolver::LookupSRV(
event_engine_->Run(
[callback = std::move(callback),
status = absl::InvalidArgumentError(absl::StrCat(
"Unparseable name: ", name))]() mutable { callback(status); });
"Unparsable name: ", name))]() mutable { callback(status); });
return;
}
if (host.empty()) {
@ -386,7 +386,7 @@ void AresResolver::LookupTXT(
event_engine_->Run(
[callback = std::move(callback),
status = absl::InvalidArgumentError(absl::StrCat(
"Unparseable name: ", name))]() mutable { callback(status); });
"Unparsable name: ", name))]() mutable { callback(status); });
return;
}
if (host.empty()) {

@ -43,7 +43,7 @@ void DNSServiceResolverImpl::LookupHostname(
if (!grpc_core::SplitHostPort(name, &host, &port_string)) {
engine_->Run([on_resolve = std::move(on_resolve),
status = absl::InvalidArgumentError(
absl::StrCat("Unparseable name: ", name))]() mutable {
absl::StrCat("Unparsable name: ", name))]() mutable {
on_resolve(status);
});
return;

@ -50,7 +50,7 @@ LookupHostnameBlocking(absl::string_view name, absl::string_view default_port) {
// parse name, splitting it into host and port parts
grpc_core::SplitHostPort(name, &host, &port);
if (host.empty()) {
return absl::InvalidArgumentError(absl::StrCat("Unparseable name: ", name));
return absl::InvalidArgumentError(absl::StrCat("Unparsable name: ", name));
}
if (port.empty()) {
if (default_port.empty()) {

@ -236,7 +236,7 @@ msg_iovlen_type TcpZerocopySendRecord::PopulateIovs(size_t* unwind_slice_idx,
iov_size++) {
MutableSlice& slice = internal::SliceCast<MutableSlice>(
buf_.MutableSliceAt(out_offset_.slice_idx));
iov[iov_size].iov_base = slice.begin();
iov[iov_size].iov_base = slice.begin() + out_offset_.byte_idx;
iov[iov_size].iov_len = slice.length() - out_offset_.byte_idx;
*sending_length += iov[iov_size].iov_len;
++(out_offset_.slice_idx);

@ -42,7 +42,7 @@ LookupHostnameBlocking(absl::string_view name, absl::string_view default_port) {
std::string port;
grpc_core::SplitHostPort(name, &host, &port);
if (host.empty()) {
return absl::InvalidArgumentError(absl::StrCat("Unparseable name: ", name));
return absl::InvalidArgumentError(absl::StrCat("Unparsable name: ", name));
}
if (port.empty()) {
if (default_port.empty()) {

@ -79,6 +79,10 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
const char* const description_tcp_rcv_lowat =
"Use SO_RCVLOWAT to avoid wakeups on the read path.";
const char* const additional_constraints_tcp_rcv_lowat = "{}";
const char* const description_time_caching_in_party =
"Disable time caching in exec_ctx, and enable it only in a single party "
"execution.";
const char* const additional_constraints_time_caching_in_party = "{}";
const char* const description_trace_record_callops =
"Enables tracing of call batch initiation and completion.";
const char* const additional_constraints_trace_record_callops = "{}";
@ -141,6 +145,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
{"tcp_rcv_lowat", description_tcp_rcv_lowat,
additional_constraints_tcp_rcv_lowat, nullptr, 0, false, true},
{"time_caching_in_party", description_time_caching_in_party,
additional_constraints_time_caching_in_party, nullptr, 0, true, true},
{"trace_record_callops", description_trace_record_callops,
additional_constraints_trace_record_callops, nullptr, 0, true, true},
{"unconstrained_max_quota_buffer_size",
@ -216,6 +222,10 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
const char* const description_tcp_rcv_lowat =
"Use SO_RCVLOWAT to avoid wakeups on the read path.";
const char* const additional_constraints_tcp_rcv_lowat = "{}";
const char* const description_time_caching_in_party =
"Disable time caching in exec_ctx, and enable it only in a single party "
"execution.";
const char* const additional_constraints_time_caching_in_party = "{}";
const char* const description_trace_record_callops =
"Enables tracing of call batch initiation and completion.";
const char* const additional_constraints_trace_record_callops = "{}";
@ -278,6 +288,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
{"tcp_rcv_lowat", description_tcp_rcv_lowat,
additional_constraints_tcp_rcv_lowat, nullptr, 0, false, true},
{"time_caching_in_party", description_time_caching_in_party,
additional_constraints_time_caching_in_party, nullptr, 0, true, true},
{"trace_record_callops", description_trace_record_callops,
additional_constraints_trace_record_callops, nullptr, 0, true, true},
{"unconstrained_max_quota_buffer_size",
@ -353,6 +365,10 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
const char* const description_tcp_rcv_lowat =
"Use SO_RCVLOWAT to avoid wakeups on the read path.";
const char* const additional_constraints_tcp_rcv_lowat = "{}";
const char* const description_time_caching_in_party =
"Disable time caching in exec_ctx, and enable it only in a single party "
"execution.";
const char* const additional_constraints_time_caching_in_party = "{}";
const char* const description_trace_record_callops =
"Enables tracing of call batch initiation and completion.";
const char* const additional_constraints_trace_record_callops = "{}";
@ -415,6 +431,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
{"tcp_rcv_lowat", description_tcp_rcv_lowat,
additional_constraints_tcp_rcv_lowat, nullptr, 0, false, true},
{"time_caching_in_party", description_time_caching_in_party,
additional_constraints_time_caching_in_party, nullptr, 0, true, true},
{"trace_record_callops", description_trace_record_callops,
additional_constraints_trace_record_callops, nullptr, 0, true, true},
{"unconstrained_max_quota_buffer_size",

@ -78,6 +78,8 @@ inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
inline bool IsServerPrivacyEnabled() { return false; }
inline bool IsTcpFrameSizeTuningEnabled() { return false; }
inline bool IsTcpRcvLowatEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_TIME_CACHING_IN_PARTY
inline bool IsTimeCachingInPartyEnabled() { return true; }
#define GRPC_EXPERIMENT_IS_INCLUDED_TRACE_RECORD_CALLOPS
inline bool IsTraceRecordCallopsEnabled() { return true; }
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
@ -110,6 +112,8 @@ inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
inline bool IsServerPrivacyEnabled() { return false; }
inline bool IsTcpFrameSizeTuningEnabled() { return false; }
inline bool IsTcpRcvLowatEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_TIME_CACHING_IN_PARTY
inline bool IsTimeCachingInPartyEnabled() { return true; }
#define GRPC_EXPERIMENT_IS_INCLUDED_TRACE_RECORD_CALLOPS
inline bool IsTraceRecordCallopsEnabled() { return true; }
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
@ -141,6 +145,8 @@ inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
inline bool IsServerPrivacyEnabled() { return false; }
inline bool IsTcpFrameSizeTuningEnabled() { return false; }
inline bool IsTcpRcvLowatEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_TIME_CACHING_IN_PARTY
inline bool IsTimeCachingInPartyEnabled() { return true; }
#define GRPC_EXPERIMENT_IS_INCLUDED_TRACE_RECORD_CALLOPS
inline bool IsTraceRecordCallopsEnabled() { return true; }
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
@ -168,6 +174,7 @@ enum ExperimentIds {
kExperimentIdServerPrivacy,
kExperimentIdTcpFrameSizeTuning,
kExperimentIdTcpRcvLowat,
kExperimentIdTimeCachingInParty,
kExperimentIdTraceRecordCallops,
kExperimentIdUnconstrainedMaxQuotaBufferSize,
kExperimentIdWorkSerializerClearsTimeCache,
@ -242,6 +249,10 @@ inline bool IsTcpFrameSizeTuningEnabled() {
inline bool IsTcpRcvLowatEnabled() {
return IsExperimentEnabled<kExperimentIdTcpRcvLowat>();
}
#define GRPC_EXPERIMENT_IS_INCLUDED_TIME_CACHING_IN_PARTY
inline bool IsTimeCachingInPartyEnabled() {
return IsExperimentEnabled<kExperimentIdTimeCachingInParty>();
}
#define GRPC_EXPERIMENT_IS_INCLUDED_TRACE_RECORD_CALLOPS
inline bool IsTraceRecordCallopsEnabled() {
return IsExperimentEnabled<kExperimentIdTraceRecordCallops>();

@ -42,7 +42,7 @@
# state of each experiment.
- name: call_tracer_in_transport
description: Transport directly passes byte counts to CallTracer.
expiry: 2024/09/30
expiry: 2025/02/01
owner: roth@google.com
test_tags: []
- name: canary_client_privacy
@ -61,25 +61,25 @@
allow_in_fuzzing_config: false
- name: event_engine_application_callbacks
description: Run application callbacks in EventEngine threads, instead of on the thread-local ApplicationCallbackExecCtx
expiry: 2024/10/31
expiry: 2025/03/01
owner: hork@google.com
- name: event_engine_client
description: Use EventEngine clients instead of iomgr's grpc_tcp_client
expiry: 2024/10/01
expiry: 2025/03/01
owner: hork@google.com
test_tags: ["core_end2end_test", "event_engine_client_test"]
uses_polling: true
- name: event_engine_dns
description:
If set, use EventEngine DNSResolver for client channel resolution
expiry: 2024/10/01
expiry: 2025/03/01
owner: yijiem@google.com
test_tags: ["cancel_ares_query_test", "resolver_component_tests_runner_invoker"]
allow_in_fuzzing_config: false
uses_polling: true
- name: event_engine_listener
description: Use EventEngine listeners instead of iomgr's grpc_tcp_server
expiry: 2024/12/01
expiry: 2025/03/01
owner: vigneshbabu@google.com
test_tags: ["core_end2end_test", "event_engine_listener_test"]
uses_polling: true
@ -145,6 +145,11 @@
expiry: 2024/12/01
owner: vigneshbabu@google.com
test_tags: ["endpoint_test", "flow_control_test"]
- name: time_caching_in_party
description: Disable time caching in exec_ctx, and enable it only in a single party execution.
owner: ctiller@google.com
expiry: 2024/12/12
test_tags: []
- name: trace_record_callops
description: Enables tracing of call batch initiation and completion.
expiry: 2024/12/01

@ -98,6 +98,8 @@
default: false
- name: tcp_rcv_lowat
default: false
- name: time_caching_in_party
default: true
- name: trace_record_callops
default: true
- name: unconstrained_max_quota_buffer_size

@ -296,6 +296,14 @@ class Duration {
int64_t millis_;
};
inline std::ostream& operator<<(std::ostream& out, const Duration& d) {
return out << d.ToString();
}
inline std::ostream& operator<<(std::ostream& out, const Timestamp& d) {
return out << d.ToString();
}
inline Duration operator+(Duration lhs, Duration rhs) {
return Duration::Milliseconds(
time_detail::MillisAdd(lhs.millis(), rhs.millis()));

@ -35,6 +35,7 @@
#include <grpc/support/cpu.h>
#include <grpc/support/time.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/fork.h"
@ -116,6 +117,11 @@ class GRPC_DLL ExecCtx : public latent_see::ParentScope {
ExecCtx()
: latent_see::ParentScope(GRPC_LATENT_SEE_METADATA("ExecCtx")),
flags_(GRPC_EXEC_CTX_FLAG_IS_FINISHED) {
#if !TARGET_OS_IPHONE
if (!IsTimeCachingInPartyEnabled()) {
time_cache_.emplace();
}
#endif
Fork::IncExecCtxCount();
Set(this);
}
@ -126,6 +132,11 @@ class GRPC_DLL ExecCtx : public latent_see::ParentScope {
explicit ExecCtx(uintptr_t fl, latent_see::Metadata* latent_see_metadata)
: latent_see::ParentScope(latent_see_metadata), flags_(fl) {
#if !TARGET_OS_IPHONE
if (!IsTimeCachingInPartyEnabled()) {
time_cache_.emplace();
}
#endif
if (!(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD & flags_)) {
Fork::IncExecCtxCount();
}
@ -195,23 +206,18 @@ class GRPC_DLL ExecCtx : public latent_see::ParentScope {
Timestamp Now() { return Timestamp::Now(); }
void InvalidateNow() {
#if !TARGET_OS_IPHONE
time_cache_.InvalidateCache();
#endif
if (time_cache_.has_value()) time_cache_->InvalidateCache();
}
void SetNowIomgrShutdown() {
#if !TARGET_OS_IPHONE
// We get to do a test only set now on this path just because iomgr
// is getting removed and no point adding more interfaces for it.
time_cache_.TestOnlySetNow(Timestamp::InfFuture());
#endif
TestOnlySetNow(Timestamp::InfFuture());
}
void TestOnlySetNow(Timestamp now) {
#if !TARGET_OS_IPHONE
time_cache_.TestOnlySetNow(now);
#endif
if (!time_cache_.has_value()) time_cache_.emplace();
time_cache_->TestOnlySetNow(now);
}
/// Gets pointer to current exec_ctx.
@ -237,9 +243,7 @@ class GRPC_DLL ExecCtx : public latent_see::ParentScope {
CombinerData combiner_data_ = {nullptr, nullptr};
uintptr_t flags_;
#if !TARGET_OS_IPHONE
ScopedTimeCache time_cache_;
#endif
absl::optional<ScopedTimeCache> time_cache_;
#if !defined(_WIN32) || !defined(_DLL)
static thread_local ExecCtx* exec_ctx_;

@ -106,7 +106,7 @@ NativeDNSResolver::LookupHostnameBlocking(absl::string_view name,
SplitHostPort(name, &host, &port);
if (host.empty()) {
err =
GRPC_ERROR_CREATE(absl::StrCat("unparseable host:port \"", name, "\""));
GRPC_ERROR_CREATE(absl::StrCat("unparsable host:port \"", name, "\""));
goto done;
}
if (port.empty()) {

@ -110,7 +110,7 @@ NativeDNSResolver::LookupHostnameBlocking(absl::string_view name,
SplitHostPort(name, &host, &port);
if (host.empty()) {
error =
GRPC_ERROR_CREATE(absl::StrFormat("unparseable host:port: '%s'", name));
GRPC_ERROR_CREATE(absl::StrFormat("unparsable host:port: '%s'", name));
goto done;
}
if (port.empty()) {

@ -368,8 +368,8 @@ class FreestandingActivity : public Activity, private Wakeable {
// If more than one action is received during a run, we use max() to resolve
// which one to report (so Cancel overrides Wakeup).
enum class ActionDuringRun : uint8_t {
kNone, // No action occured during run.
kWakeup, // A wakeup occured during run.
kNone, // No action occurred during run.
kWakeup, // A wakeup occurred during run.
kCancel, // Cancel was called during run.
};
@ -389,7 +389,7 @@ class FreestandingActivity : public Activity, private Wakeable {
// completed.
void WakeupComplete() { Unref(); }
// Set the action that occured during this run.
// Set the action that occurred during this run.
// We use max to combine actions so that cancellation overrides wakeups.
void SetActionDuringRun(ActionDuringRun action)
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {

@ -41,18 +41,18 @@ namespace grpc_core {
// PartySyncUsingAtomics
GRPC_MUST_USE_RESULT bool Party::RefIfNonZero() {
auto count = state_.load(std::memory_order_relaxed);
auto state = state_.load(std::memory_order_relaxed);
do {
// If zero, we are done (without an increment). If not, we must do a CAS
// to maintain the contract: do not increment the counter if it is already
// zero
if (count == 0) {
if ((state & kRefMask) == 0) {
return false;
}
} while (!state_.compare_exchange_weak(count, count + kOneRef,
} while (!state_.compare_exchange_weak(state, state + kOneRef,
std::memory_order_acq_rel,
std::memory_order_relaxed));
LogStateChange("RefIfNonZero", count, count + kOneRef);
LogStateChange("RefIfNonZero", state, state + kOneRef);
return true;
}
@ -269,6 +269,12 @@ void Party::RunPartyAndUnref(uint64_t prev_state) {
DCHECK_EQ(prev_state & ~(kRefMask | kAllocatedMask), 0u)
<< "Party should have contained no wakeups on lock";
prev_state |= kLocked;
absl::optional<ScopedTimeCache> time_cache;
#if !TARGET_OS_IPHONE
if (IsTimeCachingInPartyEnabled()) {
time_cache.emplace();
}
#endif
for (;;) {
uint64_t keep_allocated_mask = kAllocatedMask;
// For each wakeup bit...
@ -316,7 +322,7 @@ void Party::RunPartyAndUnref(uint64_t prev_state) {
(prev_state & (kRefMask | keep_allocated_mask)) - kOneRef,
std::memory_order_acq_rel, std::memory_order_acquire)) {
LogStateChange("Run:End", prev_state,
prev_state & (kRefMask | kAllocatedMask) - kOneRef);
(prev_state & (kRefMask | keep_allocated_mask)) - kOneRef);
if ((prev_state & kRefMask) == kOneRef) {
// We're done with the party.
PartyIsOver();

@ -394,7 +394,7 @@ class Party : public Activity, private Wakeable {
const char* op, uint64_t prev_state, uint64_t new_state,
DebugLocation loc = {}) {
GRPC_TRACE_LOG(party_state, INFO).AtLocation(loc.file(), loc.line())
<< DebugTag() << " " << op << " "
<< this << " " << op << " "
<< absl::StrFormat("%016" PRIx64 " -> %016" PRIx64, prev_state,
new_state);
}

@ -68,8 +68,8 @@ bool PeriodicUpdate::MaybeEndPeriod(absl::FunctionRef<void(Duration)> f) {
expected_updates_per_period_ =
period_.seconds() * expected_updates_per_period_ / time_so_far.seconds();
if (expected_updates_per_period_ < 1) expected_updates_per_period_ = 1;
period_start_ = now;
f(time_so_far);
period_start_ = Timestamp::Now();
updates_remaining_.store(expected_updates_per_period_,
std::memory_order_release);
return true;

@ -22,6 +22,6 @@
#include <grpc/grpc.h>
#include <grpc/support/port_platform.h>
const char* grpc_version_string(void) { return "43.0.0"; }
const char* grpc_version_string(void) { return "44.0.0"; }
const char* grpc_g_stands_for(void) { return "gesundheit"; }
const char* grpc_g_stands_for(void) { return "groovy"; }

@ -1485,7 +1485,6 @@ class CallFilters {
std::move(value));
}
}
call_state_.FinishPullServerTrailingMetadata();
return value;
});
}
@ -1497,6 +1496,10 @@ class CallFilters {
GRPC_MUST_USE_RESULT auto WasCancelled() {
return [this]() { return call_state_.PollWasCancelled(); };
}
// Returns true if server trailing metadata has been pulled
bool WasServerTrailingMetadataPulled() const {
return call_state_.WasServerTrailingMetadataPulled();
}
// Client & server: fill in final_info with the final status of the call.
void Finalize(const grpc_call_final_info* final_info);

@ -54,17 +54,23 @@ class CallSpine final : public Party {
CallFilters& call_filters() { return call_filters_; }
// Add a callback to be called when server trailing metadata is received.
void OnDone(absl::AnyInvocable<void(bool)> fn) {
// Add a callback to be called when server trailing metadata is received and
// return true.
// If CallOnDone has already been invoked, does nothing and returns false.
GRPC_MUST_USE_RESULT bool OnDone(absl::AnyInvocable<void(bool)> fn) {
if (call_filters().WasServerTrailingMetadataPulled()) {
return false;
}
if (on_done_ == nullptr) {
on_done_ = std::move(fn);
return;
return true;
}
on_done_ = [first = std::move(fn),
next = std::move(on_done_)](bool cancelled) mutable {
first(cancelled);
next(cancelled);
};
return true;
}
void CallOnDone(bool cancelled) {
if (on_done_ != nullptr) std::exchange(on_done_, nullptr)(cancelled);
@ -232,8 +238,8 @@ class CallInitiator {
spine_->PushServerTrailingMetadata(std::move(status));
}
void OnDone(absl::AnyInvocable<void(bool)> fn) {
spine_->OnDone(std::move(fn));
GRPC_MUST_USE_RESULT bool OnDone(absl::AnyInvocable<void(bool)> fn) {
return spine_->OnDone(std::move(fn));
}
template <typename PromiseFactory>
@ -281,8 +287,8 @@ class CallHandler {
spine_->PushServerTrailingMetadata(std::move(status));
}
void OnDone(absl::AnyInvocable<void(bool)> fn) {
spine_->OnDone(std::move(fn));
GRPC_MUST_USE_RESULT bool OnDone(absl::AnyInvocable<void(bool)> fn) {
return spine_->OnDone(std::move(fn));
}
template <typename Promise>
@ -336,8 +342,8 @@ class UnstartedCallHandler {
spine_->PushServerTrailingMetadata(std::move(status));
}
void OnDone(absl::AnyInvocable<void(bool)> fn) {
spine_->OnDone(std::move(fn));
GRPC_MUST_USE_RESULT bool OnDone(absl::AnyInvocable<void(bool)> fn) {
return spine_->OnDone(std::move(fn));
}
template <typename Promise>

@ -52,7 +52,7 @@ class CallState {
Poll<ValueOrFailure<bool>> PollPullServerToClientMessageAvailable();
void FinishPullServerToClientMessage();
Poll<Empty> PollServerTrailingMetadataAvailable();
void FinishPullServerTrailingMetadata();
bool WasServerTrailingMetadataPulled() const;
Poll<bool> PollWasCancelled();
// Debug
std::string DebugString() const;
@ -147,8 +147,6 @@ class CallState {
kReading,
// Main call loop: processing one message
kProcessingServerToClientMessage,
// Processing server trailing metadata
kProcessingServerTrailingMetadata,
kTerminated,
};
static const char* ServerToClientPullStateString(
@ -172,8 +170,6 @@ class CallState {
return "Reading";
case ServerToClientPullState::kProcessingServerToClientMessage:
return "ProcessingServerToClientMessage";
case ServerToClientPullState::kProcessingServerTrailingMetadata:
return "ProcessingServerTrailingMetadata";
case ServerToClientPullState::kTerminated:
return "Terminated";
}
@ -294,7 +290,6 @@ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline void CallState::Start() {
case ServerToClientPullState::kReading:
case ServerToClientPullState::kProcessingServerToClientMessage:
LOG(FATAL) << "Start called twice";
case ServerToClientPullState::kProcessingServerTrailingMetadata:
case ServerToClientPullState::kTerminated:
break;
}
@ -644,7 +639,6 @@ CallState::PollPullServerInitialMetadataAvailable() {
case ServerToClientPullState::kIdle:
case ServerToClientPullState::kReading:
case ServerToClientPullState::kProcessingServerToClientMessage:
case ServerToClientPullState::kProcessingServerTrailingMetadata:
LOG(FATAL) << "PollPullServerInitialMetadataAvailable called twice";
case ServerToClientPullState::kTerminated:
return false;
@ -703,7 +697,6 @@ CallState::FinishPullServerInitialMetadata() {
case ServerToClientPullState::kIdle:
case ServerToClientPullState::kReading:
case ServerToClientPullState::kProcessingServerToClientMessage:
case ServerToClientPullState::kProcessingServerTrailingMetadata:
LOG(FATAL) << "Out of order FinishPullServerInitialMetadata";
case ServerToClientPullState::kTerminated:
return;
@ -766,9 +759,6 @@ CallState::PollPullServerToClientMessageAvailable() {
case ServerToClientPullState::kProcessingServerToClientMessage:
LOG(FATAL) << "PollPullServerToClientMessageAvailable called while "
"processing a message";
case ServerToClientPullState::kProcessingServerTrailingMetadata:
LOG(FATAL) << "PollPullServerToClientMessageAvailable called while "
"processing trailing metadata";
case ServerToClientPullState::kTerminated:
return Failure{};
}
@ -826,9 +816,6 @@ CallState::FinishPullServerToClientMessage() {
server_to_client_pull_state_ = ServerToClientPullState::kIdle;
server_to_client_pull_waiter_.Wake();
break;
case ServerToClientPullState::kProcessingServerTrailingMetadata:
LOG(FATAL) << "FinishPullServerToClientMessage called while processing "
"trailing metadata";
case ServerToClientPullState::kTerminated:
break;
}
@ -875,10 +862,7 @@ CallState::PollServerTrailingMetadataAvailable() {
case ServerToClientPushState::kFinished:
if (server_trailing_metadata_state_ !=
ServerTrailingMetadataState::kNotPushed) {
server_to_client_pull_state_ =
ServerToClientPullState::kProcessingServerTrailingMetadata;
server_to_client_pull_waiter_.Wake();
return Empty{};
break; // Ready for processing
}
ABSL_FALLTHROUGH_INTENDED;
case ServerToClientPushState::kPushedServerInitialMetadata:
@ -894,26 +878,14 @@ CallState::PollServerTrailingMetadataAvailable() {
case ServerToClientPullState::kIdle:
if (server_trailing_metadata_state_ !=
ServerTrailingMetadataState::kNotPushed) {
server_to_client_pull_state_ =
ServerToClientPullState::kProcessingServerTrailingMetadata;
server_to_client_pull_waiter_.Wake();
return Empty{};
break; // Ready for processing
}
return server_trailing_metadata_waiter_.pending();
case ServerToClientPullState::kProcessingServerTrailingMetadata:
LOG(FATAL) << "PollServerTrailingMetadataAvailable called twice";
case ServerToClientPullState::kTerminated:
return Empty{};
break;
}
Crash("Unreachable");
}
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline void
CallState::FinishPullServerTrailingMetadata() {
GRPC_TRACE_LOG(call_state, INFO)
<< "[call_state] FinishPullServerTrailingMetadata: "
<< GRPC_DUMP_ARGS(this, server_trailing_metadata_state_,
server_trailing_metadata_waiter_.DebugString());
server_to_client_pull_state_ = ServerToClientPullState::kTerminated;
server_to_client_pull_waiter_.Wake();
switch (server_trailing_metadata_state_) {
case ServerTrailingMetadataState::kNotPushed:
LOG(FATAL) << "FinishPullServerTrailingMetadata called before "
@ -931,6 +903,21 @@ CallState::FinishPullServerTrailingMetadata() {
case ServerTrailingMetadataState::kPulledCancel:
LOG(FATAL) << "FinishPullServerTrailingMetadata called twice";
}
return Empty{};
}
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline bool
CallState::WasServerTrailingMetadataPulled() const {
switch (server_trailing_metadata_state_) {
case ServerTrailingMetadataState::kNotPushed:
case ServerTrailingMetadataState::kPushed:
case ServerTrailingMetadataState::kPushedCancel:
return false;
case ServerTrailingMetadataState::kPulled:
case ServerTrailingMetadataState::kPulledCancel:
return true;
}
GPR_UNREACHABLE_CODE(Crash("unreachable"));
}
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline Poll<bool>

@ -166,11 +166,9 @@ void HealthProducer::HealthChecker::OnHealthWatchStatusChange(
// Prepend the subchannel's address to the status if needed.
absl::Status use_status;
if (!status.ok()) {
std::string address_str =
grpc_sockaddr_to_uri(&producer_->subchannel_->address())
.value_or("<unknown address type>");
use_status = absl::Status(
status.code(), absl::StrCat(address_str, ": ", status.message()));
status.code(), absl::StrCat(producer_->subchannel_->address(), ": ",
status.message()));
}
work_serializer_->Schedule(
[self = Ref(), state, status = std::move(use_status)]() mutable {

@ -159,11 +159,14 @@ class OutlierDetectionLb final : public LoadBalancingPolicy {
class WatcherWrapper final
: public SubchannelInterface::ConnectivityStateWatcherInterface {
public:
WatcherWrapper(std::shared_ptr<
WatcherWrapper(WeakRefCountedPtr<SubchannelWrapper> subchannel_wrapper,
std::shared_ptr<
SubchannelInterface::ConnectivityStateWatcherInterface>
health_watcher,
bool ejected)
: watcher_(std::move(health_watcher)), ejected_(ejected) {}
: subchannel_wrapper_(std::move(subchannel_wrapper)),
watcher_(std::move(health_watcher)),
ejected_(ejected) {}
void Eject() {
ejected_ = true;
@ -171,7 +174,8 @@ class OutlierDetectionLb final : public LoadBalancingPolicy {
watcher_->OnConnectivityStateChange(
GRPC_CHANNEL_TRANSIENT_FAILURE,
absl::UnavailableError(
"subchannel ejected by outlier detection"));
absl::StrCat(subchannel_wrapper_->address(),
": subchannel ejected by outlier detection")));
}
}
@ -192,7 +196,8 @@ class OutlierDetectionLb final : public LoadBalancingPolicy {
if (ejected_) {
new_state = GRPC_CHANNEL_TRANSIENT_FAILURE;
status = absl::UnavailableError(
"subchannel ejected by outlier detection");
absl::StrCat(subchannel_wrapper_->address(),
": subchannel ejected by outlier detection"));
}
watcher_->OnConnectivityStateChange(new_state, status);
}
@ -203,6 +208,7 @@ class OutlierDetectionLb final : public LoadBalancingPolicy {
}
private:
WeakRefCountedPtr<SubchannelWrapper> subchannel_wrapper_;
std::shared_ptr<SubchannelInterface::ConnectivityStateWatcherInterface>
watcher_;
absl::optional<grpc_connectivity_state> last_seen_state_;
@ -463,7 +469,8 @@ void OutlierDetectionLb::SubchannelWrapper::AddDataWatcher(
if (w->type() == HealthProducer::Type()) {
auto* health_watcher = static_cast<HealthWatcher*>(watcher.get());
auto watcher_wrapper = std::make_shared<WatcherWrapper>(
health_watcher->TakeWatcher(), ejected_);
WeakRefAsSubclass<SubchannelWrapper>(), health_watcher->TakeWatcher(),
ejected_);
watcher_wrapper_ = watcher_wrapper.get();
health_watcher->SetWatcher(std::move(watcher_wrapper));
}
@ -534,8 +541,8 @@ OutlierDetectionLb::Picker::Picker(OutlierDetectionLb* outlier_detection_lb,
: picker_(std::move(picker)), counting_enabled_(counting_enabled) {
GRPC_TRACE_LOG(outlier_detection_lb, INFO)
<< "[outlier_detection_lb " << outlier_detection_lb
<< "] constructed new picker " << this << " and counting "
<< "is " << (counting_enabled ? "enabled" : "disabled");
<< "] constructed new picker " << this << " and counting " << "is "
<< (counting_enabled ? "enabled" : "disabled");
}
LoadBalancingPolicy::PickResult OutlierDetectionLb::Picker::Pick(
@ -904,8 +911,8 @@ void OutlierDetectionLb::EjectionTimer::OnTimerLocked() {
config.success_rate_ejection->minimum_hosts) {
GRPC_TRACE_LOG(outlier_detection_lb, INFO)
<< "[outlier_detection_lb " << parent_.get()
<< "] running success rate algorithm: "
<< "stdev_factor=" << config.success_rate_ejection->stdev_factor
<< "] running success rate algorithm: " << "stdev_factor="
<< config.success_rate_ejection->stdev_factor
<< ", enforcement_percentage="
<< config.success_rate_ejection->enforcement_percentage;
// calculate ejection threshold: (mean - stdev *
@ -957,8 +964,8 @@ void OutlierDetectionLb::EjectionTimer::OnTimerLocked() {
config.failure_percentage_ejection->minimum_hosts) {
GRPC_TRACE_LOG(outlier_detection_lb, INFO)
<< "[outlier_detection_lb " << parent_.get()
<< "] running failure percentage algorithm: "
<< "threshold=" << config.failure_percentage_ejection->threshold
<< "] running failure percentage algorithm: " << "threshold="
<< config.failure_percentage_ejection->threshold
<< ", enforcement_percentage="
<< config.failure_percentage_ejection->enforcement_percentage;
for (auto& candidate : failure_percentage_ejection_candidates) {

@ -648,7 +648,8 @@ void PickFirst::HealthWatcher::OnConnectivityStateChange(
case GRPC_CHANNEL_TRANSIENT_FAILURE:
policy_->channel_control_helper()->UpdateState(
GRPC_CHANNEL_TRANSIENT_FAILURE, status,
MakeRefCounted<TransientFailurePicker>(status));
MakeRefCounted<TransientFailurePicker>(absl::UnavailableError(
absl::StrCat("health watch: ", status.message()))));
break;
case GRPC_CHANNEL_SHUTDOWN:
Crash("health watcher reported state SHUTDOWN");
@ -1552,7 +1553,8 @@ void OldPickFirst::HealthWatcher::OnConnectivityStateChange(
case GRPC_CHANNEL_TRANSIENT_FAILURE:
policy_->channel_control_helper()->UpdateState(
GRPC_CHANNEL_TRANSIENT_FAILURE, status,
MakeRefCounted<TransientFailurePicker>(status));
MakeRefCounted<TransientFailurePicker>(absl::UnavailableError(
absl::StrCat("health watch: ", status.message()))));
break;
case GRPC_CHANNEL_SHUTDOWN:
Crash("health watcher reported state SHUTDOWN");
@ -1644,9 +1646,9 @@ void OldPickFirst::SubchannelList::SubchannelData::OnConnectivityStateChange(
// If there is a pending update, switch to the pending update.
if (p->latest_pending_subchannel_list_ != nullptr) {
GRPC_TRACE_LOG(pick_first, INFO)
<< "Pick First " << p << " promoting pending subchannel "
<< "list " << p->latest_pending_subchannel_list_.get()
<< " to replace " << p->subchannel_list_.get();
<< "Pick First " << p << " promoting pending subchannel list "
<< p->latest_pending_subchannel_list_.get() << " to replace "
<< p->subchannel_list_.get();
p->UnsetSelectedSubchannel();
p->subchannel_list_ = std::move(p->latest_pending_subchannel_list_);
// Set our state to that of the pending subchannel list.

@ -2590,7 +2590,7 @@ class RlsLbFactory final : public LoadBalancingPolicyFactory {
absl::StatusOr<RefCountedPtr<LoadBalancingPolicy::Config>>
ParseLoadBalancingConfig(const Json& json) const override {
return LoadFromJson<RefCountedPtr<RlsLbConfig>>(
json, JsonArgs(), "errors validing RLS LB policy config");
json, JsonArgs(), "errors validating RLS LB policy config");
}
};

@ -21,6 +21,7 @@
#include <utility>
#include "absl/status/status.h"
#include "absl/strings/string_view.h"
#include <grpc/impl/connectivity_state.h>
#include <grpc/support/port_platform.h>
@ -102,6 +103,9 @@ class SubchannelInterface : public DualRefCounted<SubchannelInterface> {
// make this API public.
virtual void CancelDataWatcher(DataWatcherInterface* watcher) = 0;
// Return the address in URI format.
virtual std::string address() const = 0;
protected:
void Orphaned() override {}
};
@ -136,6 +140,10 @@ class DelegatingSubchannel : public SubchannelInterface {
wrapped_subchannel_->CancelDataWatcher(watcher);
}
std::string address() const override {
return wrapped_subchannel_->address();
}
private:
RefCountedPtr<SubchannelInterface> wrapped_subchannel_;
};

@ -388,7 +388,7 @@ static void on_readable(void* arg, grpc_error_handle error) {
// this ev_driver will be cancelled by the following ares_cancel() and the
// on_done callbacks will be invoked with a status of ARES_ECANCELLED. The
// remaining file descriptors in this ev_driver will be cleaned up in the
// follwing grpc_ares_notify_on_event_locked().
// following grpc_ares_notify_on_event_locked().
ares_cancel(ev_driver->channel);
}
grpc_ares_notify_on_event_locked(ev_driver);
@ -413,7 +413,7 @@ static void on_writable(void* arg, grpc_error_handle error) {
// this ev_driver will be cancelled by the following ares_cancel() and the
// on_done callbacks will be invoked with a status of ARES_ECANCELLED. The
// remaining file descriptors in this ev_driver will be cleaned up in the
// follwing grpc_ares_notify_on_event_locked().
// following grpc_ares_notify_on_event_locked().
ares_cancel(ev_driver->channel);
}
grpc_ares_notify_on_event_locked(ev_driver);
@ -910,7 +910,7 @@ grpc_error_handle grpc_dns_lookup_ares_continued(
grpc_core::SplitHostPort(name, host, port);
if (host->empty()) {
error =
GRPC_ERROR_CREATE(absl::StrCat("unparseable host:port \"", name, "\""));
GRPC_ERROR_CREATE(absl::StrCat("unparsable host:port \"", name, "\""));
return error;
} else if (check_port && port->empty()) {
if (default_port == nullptr || strlen(default_port) == 0) {

@ -677,8 +677,16 @@ void XdsServerConfigFetcher::ListenerWatcher::
// It should get cleaned up eventually. Ignore this update.
return;
}
bool first_good_update = filter_chain_match_manager_ == nullptr;
// Promote the pending FilterChainMatchManager
filter_chain_match_manager_ = std::move(pending_filter_chain_match_manager_);
// TODO(yashykt): Right now, the server_config_watcher_ does not invoke
// XdsServerConfigFetcher while holding a lock, but that might change in the
// future in which case we would want to execute this update outside the
// critical region through a WorkSerializer similar to XdsClient.
server_config_watcher_->UpdateConnectionManager(filter_chain_match_manager_);
// Let the logger know about the update if there was no previous good update.
if (filter_chain_match_manager_ == nullptr) {
if (first_good_update) {
if (serving_status_notifier_.on_serving_status_update != nullptr) {
serving_status_notifier_.on_serving_status_update(
serving_status_notifier_.user_data, listening_address_.c_str(),
@ -688,13 +696,6 @@ void XdsServerConfigFetcher::ListenerWatcher::
<< listening_address_;
}
}
// Promote the pending FilterChainMatchManager
filter_chain_match_manager_ = std::move(pending_filter_chain_match_manager_);
// TODO(yashykt): Right now, the server_config_watcher_ does not invoke
// XdsServerConfigFetcher while holding a lock, but that might change in the
// future in which case we would want to execute this update outside the
// critical region through a WorkSerializer similar to XdsClient.
server_config_watcher_->UpdateConnectionManager(filter_chain_match_manager_);
}
//

@ -104,15 +104,15 @@ void gpr_log_verbosity_init(void) {
if (absl::EqualsIgnoreCase(verbosity, "INFO")) {
LOG_FIRST_N(WARNING, 1)
<< "Log level INFO is not suitable for production. Prefer WARNING or "
"ERROR. However if you see this message in a debug environmenmt or "
"test environmenmt it is safe to ignore this message.";
"ERROR. However if you see this message in a debug environment or "
"test environment it is safe to ignore this message.";
absl::SetVLogLevel("*grpc*/*", -1);
absl::SetMinLogLevel(absl::LogSeverityAtLeast::kInfo);
} else if (absl::EqualsIgnoreCase(verbosity, "DEBUG")) {
LOG_FIRST_N(WARNING, 1)
<< "Log level DEBUG is not suitable for production. Prefer WARNING or "
"ERROR. However if you see this message in a debug environmenmt or "
"test environmenmt it is safe to ignore this message.";
"ERROR. However if you see this message in a debug environment or "
"test environment it is safe to ignore this message.";
absl::SetVLogLevel("*grpc*/*", 2);
absl::SetMinLogLevel(absl::LogSeverityAtLeast::kInfo);
} else if (absl::EqualsIgnoreCase(verbosity, "ERROR")) {

@ -210,6 +210,7 @@ class XdsClient::XdsChannel::AdsCall final
if (timer_handle_.has_value() &&
ads_call_->xds_client()->engine()->Cancel(*timer_handle_)) {
timer_handle_.reset();
ads_call_.reset();
}
}
@ -250,24 +251,28 @@ class XdsClient::XdsChannel::AdsCall final
}
void OnTimer() {
GRPC_TRACE_LOG(xds_client, INFO)
<< "[xds_client " << ads_call_->xds_client() << "] xds server "
<< ads_call_->xds_channel()->server_.server_uri()
<< ": timeout obtaining resource {type=" << type_->type_url()
<< " name="
<< XdsClient::ConstructFullXdsResourceName(
name_.authority, type_->type_url(), name_.key)
<< "} from xds server";
{
MutexLock lock(&ads_call_->xds_client()->mu_);
timer_handle_.reset();
resource_seen_ = true;
auto& authority_state =
ads_call_->xds_client()->authority_state_map_[name_.authority];
ResourceState& state = authority_state.resource_map[type_][name_.key];
state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
ads_call_->xds_client()->NotifyWatchersOnResourceDoesNotExist(
state.watchers, ReadDelayHandle::NoWait());
// We might have received the resource after the timer fired but before
// the callback ran.
if (state.resource == nullptr) {
GRPC_TRACE_LOG(xds_client, INFO)
<< "[xds_client " << ads_call_->xds_client() << "] xds server "
<< ads_call_->xds_channel()->server_.server_uri()
<< ": timeout obtaining resource {type=" << type_->type_url()
<< " name="
<< XdsClient::ConstructFullXdsResourceName(
name_.authority, type_->type_url(), name_.key)
<< "} from xds server";
resource_seen_ = true;
state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
ads_call_->xds_client()->NotifyWatchersOnResourceDoesNotExist(
state.watchers, ReadDelayHandle::NoWait());
}
}
ads_call_->xds_client()->work_serializer_.DrainQueue();
ads_call_.reset();

@ -1,7 +1,7 @@
<!-- This file is generated -->
<Project>
<PropertyGroup>
<GrpcCsharpVersion>2.67.0-dev</GrpcCsharpVersion>
<GrpcCsharpVersion>2.68.0-dev</GrpcCsharpVersion>
<GoogleProtobufVersion>3.27.2</GoogleProtobufVersion>
</PropertyGroup>
</Project>

@ -42,7 +42,7 @@ Pod::Spec.new do |s|
# exclamation mark ensures that other "regular" pods will be able to find it as it'll be installed
# before them.
s.name = '!ProtoCompiler-gRPCCppPlugin'
v = '1.67.0-dev'
v = '1.68.0-dev'
s.version = v
s.summary = 'The gRPC ProtoC plugin generates C++ files from .proto services.'
s.description = <<-DESC

@ -42,7 +42,7 @@ Pod::Spec.new do |s|
# exclamation mark ensures that other "regular" pods will be able to find it as it'll be installed
# before them.
s.name = '!ProtoCompiler-gRPCPlugin'
v = '1.67.0-dev'
v = '1.68.0-dev'
s.version = v
s.summary = 'The gRPC ProtoC plugin generates Objective-C files from .proto services.'
s.description = <<-DESC

File diff suppressed because it is too large Load Diff

@ -22,4 +22,4 @@
// instead. This file can be regenerated from the template by running
// `tools/buildgen/generate_projects.sh`.
#define GRPC_OBJC_VERSION_STRING @"1.67.0-dev"
#define GRPC_OBJC_VERSION_STRING @"1.68.0-dev"

@ -22,7 +22,7 @@ def grpc_deps
end
target 'TvTests' do
platform :tvos, '10.0'
platform :tvos, '12.0'
grpc_deps
end

@ -22,5 +22,5 @@
// instead. This file can be regenerated from the template by running
// `tools/buildgen/generate_projects.sh`.
#define GRPC_OBJC_VERSION_STRING @"1.67.0-dev"
#define GRPC_C_VERSION_STRING @"43.0.0"
#define GRPC_OBJC_VERSION_STRING @"1.68.0-dev"
#define GRPC_C_VERSION_STRING @"44.0.0"

@ -2,7 +2,7 @@
"name": "grpc/grpc-dev",
"description": "gRPC library for PHP - for Development use only",
"license": "Apache-2.0",
"version": "1.67.0",
"version": "1.68.0",
"require": {
"php": ">=7.0.0",
"google/protobuf": "^v3.3.0"

@ -20,6 +20,6 @@
#ifndef VERSION_H
#define VERSION_H
#define PHP_GRPC_VERSION "1.67.0dev"
#define PHP_GRPC_VERSION "1.68.0dev"
#endif /* VERSION_H */

@ -27,7 +27,7 @@ class MathStub {
* and remainder.
* @param \Math\DivArgs $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Math\DivReply for response data, null if if error occured
* @return \Math\DivReply for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function Div(
@ -80,7 +80,7 @@ class MathStub {
* is closed.
* @param \Grpc\ServerCallReader $reader read client request data of \Math\Num
* @param \Grpc\ServerContext $context server request context
* @return \Math\Num for response data, null if if error occured
* @return \Math\Num for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function Sum(

@ -63,7 +63,7 @@ class MathService extends Math\MathStub
public function DivMany(
\Grpc\ServerCallReader $reader,
\Grpc\ServerCallWriter $writter,
\Grpc\ServerCallWriter $writer,
\Grpc\ServerContext $context
): void {
while ($divArgs = $reader->read()) {
@ -74,7 +74,7 @@ class MathService extends Math\MathStub
\Grpc\STATUS_INVALID_ARGUMENT,
'Cannot divide by zero'
));
$writter->finish();
$writer->finish();
return;
}
$quotient = intdiv($dividend, $divisor);
@ -83,14 +83,14 @@ class MathService extends Math\MathStub
'quotient' => $quotient,
'remainder' => $remainder,
]);
$writter->write($reply);
$writer->write($reply);
}
$writter->finish();
$writer->finish();
}
public function Fib(
\Math\FibArgs $request,
\Grpc\ServerCallWriter $writter,
\Grpc\ServerCallWriter $writer,
\Grpc\ServerContext $context
): void {
$previous = 0;
@ -99,12 +99,12 @@ class MathService extends Math\MathStub
for ($i = 0; $i < $limit; $i++) {
$num = new \Math\Num();
$num->setNum($current);
$writter->write($num);
$writer->write($num);
$next = $previous + $current;
$previous = $current;
$current = $next;
}
$writter->finish();
$writer->finish();
}
/**

@ -31,7 +31,7 @@ class HookServiceStub {
* to a SetReturnStatus
* @param \Grpc\Testing\EmptyMessage $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occured
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function Hook(
@ -46,7 +46,7 @@ class HookServiceStub {
* Sets a return status for pending and upcoming calls to Hook
* @param \Grpc\Testing\SetReturnStatusRequest $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occured
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function SetReturnStatus(
@ -61,7 +61,7 @@ class HookServiceStub {
* Clears the return status. Incoming calls to Hook will "hang"
* @param \Grpc\Testing\EmptyMessage $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occured
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function ClearReturnStatus(

@ -30,7 +30,7 @@ class LoadBalancerStatsServiceStub {
* Gets the backend distribution for RPCs sent by a test client.
* @param \Grpc\Testing\LoadBalancerStatsRequest $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\LoadBalancerStatsResponse for response data, null if if error occured
* @return \Grpc\Testing\LoadBalancerStatsResponse for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function GetClientStats(
@ -45,7 +45,7 @@ class LoadBalancerStatsServiceStub {
* Gets the accumulated stats for RPCs sent by a test client.
* @param \Grpc\Testing\LoadBalancerAccumulatedStatsRequest $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\LoadBalancerAccumulatedStatsResponse for response data, null if if error occured
* @return \Grpc\Testing\LoadBalancerAccumulatedStatsResponse for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function GetClientAccumulatedStats(

@ -29,7 +29,7 @@ class ReconnectServiceStub {
/**
* @param \Grpc\Testing\ReconnectParams $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occured
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function Start(
@ -43,7 +43,7 @@ class ReconnectServiceStub {
/**
* @param \Grpc\Testing\EmptyMessage $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\ReconnectInfo for response data, null if if error occured
* @return \Grpc\Testing\ReconnectInfo for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function Stop(

@ -31,7 +31,7 @@ class TestServiceStub {
* One empty request followed by one empty response.
* @param \Grpc\Testing\EmptyMessage $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occured
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function EmptyCall(
@ -46,7 +46,7 @@ class TestServiceStub {
* One request followed by one response.
* @param \Grpc\Testing\SimpleRequest $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\SimpleResponse for response data, null if if error occured
* @return \Grpc\Testing\SimpleResponse for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function UnaryCall(
@ -63,7 +63,7 @@ class TestServiceStub {
* satisfy subsequent requests.
* @param \Grpc\Testing\SimpleRequest $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\SimpleResponse for response data, null if if error occured
* @return \Grpc\Testing\SimpleResponse for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function CacheableUnaryCall(
@ -96,7 +96,7 @@ class TestServiceStub {
* The server returns the aggregated size of client payload as the result.
* @param \Grpc\ServerCallReader $reader read client request data of \Grpc\Testing\StreamingInputCallRequest
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\StreamingInputCallResponse for response data, null if if error occured
* @return \Grpc\Testing\StreamingInputCallResponse for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function StreamingInputCall(
@ -149,7 +149,7 @@ class TestServiceStub {
* to test the behavior when clients call unimplemented methods.
* @param \Grpc\Testing\EmptyMessage $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occured
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function UnimplementedCall(

@ -31,7 +31,7 @@ class UnimplementedServiceStub {
* A call that no server should implement
* @param \Grpc\Testing\EmptyMessage $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occured
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function UnimplementedCall(

@ -30,7 +30,7 @@ class XdsUpdateClientConfigureServiceStub {
* Update the tes client's configuration.
* @param \Grpc\Testing\ClientConfigureRequest $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\ClientConfigureResponse for response data, null if if error occured
* @return \Grpc\Testing\ClientConfigureResponse for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function Configure(

@ -29,7 +29,7 @@ class XdsUpdateHealthServiceStub {
/**
* @param \Grpc\Testing\EmptyMessage $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occured
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function SetServing(
@ -43,7 +43,7 @@ class XdsUpdateHealthServiceStub {
/**
* @param \Grpc\Testing\EmptyMessage $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occured
* @return \Grpc\Testing\EmptyMessage for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function SetNotServing(
@ -57,7 +57,7 @@ class XdsUpdateHealthServiceStub {
/**
* @param \Grpc\Testing\HookRequest $request client request
* @param \Grpc\ServerContext $context server request context
* @return \Grpc\Testing\HookResponse for response data, null if if error occured
* @return \Grpc\Testing\HookResponse for response data, null if if error occurred
* initial metadata (if any) and status (if not ok) should be set to $context
*/
public function SendHookRequest(

@ -102,7 +102,7 @@ class TestService extends \Grpc\Testing\TestServiceStub
public function StreamingOutputCall(
\Grpc\Testing\StreamingOutputCallRequest $request,
\Grpc\ServerCallWriter $writter,
\Grpc\ServerCallWriter $writer,
\Grpc\ServerContext $context
): void {
$echo_status = $this->maybeEchoStatusAndMessage($request);
@ -119,10 +119,10 @@ class TestService extends \Grpc\Testing\TestServiceStub
'payload' => $payload,
]);
$options = [];
$writter->write($response, $options);
$writer->write($response, $options);
}
$context->setStatus($echo_status ?? \Grpc\Status::ok());
$writter->finish();
$writer->finish();
}
public function StreamingInputCall(
@ -142,7 +142,7 @@ class TestService extends \Grpc\Testing\TestServiceStub
public function FullDuplexCall(
\Grpc\ServerCallReader $reader,
\Grpc\ServerCallWriter $writter,
\Grpc\ServerCallWriter $writer,
\Grpc\ServerContext $context
): void {
list($initial_metadata, $trailing_metadata) =
@ -155,7 +155,7 @@ class TestService extends \Grpc\Testing\TestServiceStub
);
if ($echo_status) {
$context->setStatus($echo_status);
$writter->finish();
$writer->finish();
return;
}
@ -171,20 +171,20 @@ class TestService extends \Grpc\Testing\TestServiceStub
'payload' => $payload,
]);
$options = [];
$writter->write($response, $options);
$writer->write($response, $options);
}
}
$context->setStatus(\Grpc\Status::ok($trailing_metadata));
$writter->finish();
$writer->finish();
}
public function HalfDuplexCall(
\Grpc\ServerCallReader $reader,
\Grpc\ServerCallWriter $writter,
\Grpc\ServerCallWriter $writer,
\Grpc\ServerContext $context
): void {
$context->setStatus(\Grpc\Status::unimplemented());
$writter->finish();
$writer->finish();
}
public function UnimplementedCall(

@ -24,7 +24,7 @@ $server_port = (count($parts) == 2) ? $parts[1] : '';
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
if (@!socket_connect($socket, $server_host, $server_port)) {
echo "Cannot connect to merics server...\n";
echo "Cannot connect to metrics server...\n";
exit(1);
}
socket_write($socket, 'qps');

@ -236,7 +236,7 @@ class ServerCallTest extends \PHPUnit\Framework\TestCase
$status = \Grpc\Status::status(
\Grpc\STATUS_INVALID_ARGUMENT,
"invalid argument",
['trailiingMeta' => 100]
['trailingMeta' => 100]
);
$this->mockCall->expects($this->once())
@ -259,7 +259,7 @@ class ServerCallTest extends \PHPUnit\Framework\TestCase
{
$metadata = ['a' => 1];
$message = $this->newStringMessage();
$status = \Grpc\Status::ok(['trailiingMeta' => 100]);
$status = \Grpc\Status::ok(['trailingMeta' => 100]);
$this->mockCall->expects($this->once())
->method('startBatch')

@ -70,12 +70,12 @@ class StatusTest extends \PHPUnit\Framework\TestCase
$status = [
'code' => \Grpc\STATUS_INVALID_ARGUMENT,
'details' => 'invalid argument',
'metadata' => ['trailiingMeta' => 100]
'metadata' => ['trailingMeta' => 100]
];
$return = \Grpc\Status::status(
\Grpc\STATUS_INVALID_ARGUMENT,
"invalid argument",
['trailiingMeta' => 100]
['trailingMeta' => 100]
);
$this->assertEquals($status, $return);
}

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

@ -1124,6 +1124,8 @@ CORE_SOURCE_FILES = [
'third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c',
'third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c',
'third_party/boringssl-with-bazel/src/crypto/mem.c',
'third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c',
'third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc',
'third_party/boringssl-with-bazel/src/crypto/obj/obj.c',
'third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c',
'third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c',
@ -1144,12 +1146,14 @@ CORE_SOURCE_FILES = [
'third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c',
'third_party/boringssl-with-bazel/src/crypto/pool/pool.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/fork_detect.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/urandom.c',
'third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c',
'third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c',
'third_party/boringssl-with-bazel/src/crypto/refcount.c',

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_admin/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_channelz/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_csds/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_csm_observability/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_health_checking/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_observability/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_reflection/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_status/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_testing/grpc_version.py.template`!!!
VERSION = '1.67.0.dev0'
VERSION = '1.68.0.dev0'

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

Loading…
Cancel
Save