diff --git a/BUILD b/BUILD
index 98bb2548b69..bc1d1197fc3 100644
--- a/BUILD
+++ b/BUILD
@@ -563,6 +563,7 @@ grpc_cc_library(
external_deps = [
"absl/memory",
"absl/strings",
+ "absl/strings:str_format",
],
language = "c++",
public_hdrs = GPR_PUBLIC_HDRS,
diff --git a/BUILD.gn b/BUILD.gn
index 193816d66b1..f821a9e1cdc 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -163,6 +163,7 @@ config("grpc_config") {
deps = [
":absl/container:inlined_vector",
":absl/memory:memory",
+ ":absl/strings:str_format",
":absl/strings:strings",
":absl/types:optional",
]
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 120b951eebc..b4ccb827511 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -119,6 +119,8 @@ set(gRPC_ABSL_USED_TARGETS
absl_raw_logging_internal
absl_span
absl_spinlock_wait
+ absl_str_format
+ absl_str_format_internal
absl_strings
absl_strings_internal
absl_throw_delegate
@@ -1440,6 +1442,7 @@ target_link_libraries(gpr
${_gRPC_ALLTARGETS_LIBRARIES}
absl::inlined_vector
absl::memory
+ absl::str_format
absl::strings
absl::optional
)
@@ -18572,7 +18575,7 @@ generate_pkgconfig(
"gRPC platform support library"
"${gRPC_CORE_VERSION}"
""
- "-lgpr -labsl_bad_optional_access -labsl_strings -labsl_strings_internal -labsl_int128 -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
+ "-lgpr -labsl_bad_optional_access -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_int128 -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
""
"gpr.pc")
@@ -18582,7 +18585,7 @@ generate_pkgconfig(
"high performance general RPC framework"
"${gRPC_CORE_VERSION}"
"gpr openssl"
- "-lgrpc -laddress_sorting -lupb -lcares -lz -labsl_bad_optional_access -labsl_strings -labsl_strings_internal -labsl_int128 -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
+ "-lgrpc -laddress_sorting -lupb -lcares -lz -labsl_bad_optional_access -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_int128 -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
""
"grpc.pc")
@@ -18592,7 +18595,7 @@ generate_pkgconfig(
"high performance general RPC framework without SSL"
"${gRPC_CORE_VERSION}"
"gpr"
- "-lgrpc_unsecure -labsl_bad_optional_access -labsl_strings -labsl_strings_internal -labsl_int128 -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
+ "-lgrpc_unsecure -labsl_bad_optional_access -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_int128 -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
""
"grpc_unsecure.pc")
@@ -18602,7 +18605,7 @@ generate_pkgconfig(
"C++ wrapper for gRPC"
"${PACKAGE_VERSION}"
"grpc"
- "-lgrpc++ -labsl_bad_optional_access -labsl_strings -labsl_strings_internal -labsl_int128 -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
+ "-lgrpc++ -labsl_bad_optional_access -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_int128 -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
""
"grpc++.pc")
@@ -18612,6 +18615,6 @@ generate_pkgconfig(
"C++ wrapper for gRPC without SSL"
"${PACKAGE_VERSION}"
"grpc_unsecure"
- "-lgrpc++_unsecure -labsl_bad_optional_access -labsl_strings -labsl_strings_internal -labsl_int128 -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
+ "-lgrpc++_unsecure -labsl_bad_optional_access -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_base -labsl_spinlock_wait -labsl_dynamic_annotations -labsl_int128 -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
""
"grpc++_unsecure.pc")
diff --git a/Makefile b/Makefile
index a11f9dba1e2..d33ca9e131a 100644
--- a/Makefile
+++ b/Makefile
@@ -9089,6 +9089,12 @@ LIBGRPC_ABSEIL_SRC = \
third_party/abseil-cpp/absl/strings/internal/escaping.cc \
third_party/abseil-cpp/absl/strings/internal/memutil.cc \
third_party/abseil-cpp/absl/strings/internal/ostringstream.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/output.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc \
third_party/abseil-cpp/absl/strings/internal/utf8.cc \
third_party/abseil-cpp/absl/strings/match.cc \
third_party/abseil-cpp/absl/strings/numbers.cc \
diff --git a/build.yaml b/build.yaml
index f685917fe0d..78ef165106b 100644
--- a/build.yaml
+++ b/build.yaml
@@ -272,6 +272,7 @@ filegroups:
deps:
- absl/container:inlined_vector
- absl/memory:memory
+ - absl/strings:str_format
- absl/strings:strings
- absl/types:optional
uses:
diff --git a/config.m4 b/config.m4
index 8278e2500fa..549854690b6 100644
--- a/config.m4
+++ b/config.m4
@@ -489,6 +489,12 @@ if test "$PHP_GRPC" != "no"; then
third_party/abseil-cpp/absl/strings/internal/escaping.cc \
third_party/abseil-cpp/absl/strings/internal/memutil.cc \
third_party/abseil-cpp/absl/strings/internal/ostringstream.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/output.cc \
+ third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc \
third_party/abseil-cpp/absl/strings/internal/utf8.cc \
third_party/abseil-cpp/absl/strings/match.cc \
third_party/abseil-cpp/absl/strings/numbers.cc \
@@ -882,6 +888,7 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/numeric)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/strings)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/strings/internal)
+ PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/strings/internal/str_format)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/types)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/address_sorting)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel)
diff --git a/config.w32 b/config.w32
index bbd6318b8ee..09d57424f7e 100644
--- a/config.w32
+++ b/config.w32
@@ -458,6 +458,12 @@ if (PHP_GRPC != "no") {
"third_party\\abseil-cpp\\absl\\strings\\internal\\escaping.cc " +
"third_party\\abseil-cpp\\absl\\strings\\internal\\memutil.cc " +
"third_party\\abseil-cpp\\absl\\strings\\internal\\ostringstream.cc " +
+ "third_party\\abseil-cpp\\absl\\strings\\internal\\str_format\\arg.cc " +
+ "third_party\\abseil-cpp\\absl\\strings\\internal\\str_format\\bind.cc " +
+ "third_party\\abseil-cpp\\absl\\strings\\internal\\str_format\\extension.cc " +
+ "third_party\\abseil-cpp\\absl\\strings\\internal\\str_format\\float_conversion.cc " +
+ "third_party\\abseil-cpp\\absl\\strings\\internal\\str_format\\output.cc " +
+ "third_party\\abseil-cpp\\absl\\strings\\internal\\str_format\\parser.cc " +
"third_party\\abseil-cpp\\absl\\strings\\internal\\utf8.cc " +
"third_party\\abseil-cpp\\absl\\strings\\match.cc " +
"third_party\\abseil-cpp\\absl\\strings\\numbers.cc " +
@@ -916,6 +922,7 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\numeric");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\strings");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\strings\\internal");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\strings\\internal\\str_format");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\types");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\address_sorting");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel");
diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec
index e8b61788f7c..4420c8a5fd3 100644
--- a/gRPC-C++.podspec
+++ b/gRPC-C++.podspec
@@ -216,6 +216,7 @@ Pod::Spec.new do |s|
abseil_version = '0.20190808.1'
ss.dependency 'abseil/container/inlined_vector', abseil_version
ss.dependency 'abseil/memory/memory', abseil_version
+ ss.dependency 'abseil/strings/str_format', abseil_version
ss.dependency 'abseil/strings/strings', abseil_version
ss.dependency 'abseil/types/optional', abseil_version
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 43f3be101a9..9b4c3665456 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -176,6 +176,7 @@ Pod::Spec.new do |s|
abseil_version = '0.20190808.1'
ss.dependency 'abseil/container/inlined_vector', abseil_version
ss.dependency 'abseil/memory/memory', abseil_version
+ ss.dependency 'abseil/strings/str_format', abseil_version
ss.dependency 'abseil/strings/strings', abseil_version
ss.dependency 'abseil/types/optional', abseil_version
ss.compiler_flags = '-DGRPC_SHADOW_BORINGSSL_SYMBOLS'
diff --git a/grpc.gemspec b/grpc.gemspec
index 3cd9dcb4b58..ae3af256ce2 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -965,6 +965,19 @@ Gem::Specification.new do |s|
s.files += %w( third_party/abseil-cpp/absl/strings/internal/ostringstream.h )
s.files += %w( third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h )
s.files += %w( third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/arg.h )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/bind.h )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/checker.h )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/extension.h )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/output.cc )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/output.h )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc )
+ s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_format/parser.h )
s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_join_internal.h )
s.files += %w( third_party/abseil-cpp/absl/strings/internal/str_split_internal.h )
s.files += %w( third_party/abseil-cpp/absl/strings/internal/utf8.cc )
@@ -975,6 +988,7 @@ Gem::Specification.new do |s|
s.files += %w( third_party/abseil-cpp/absl/strings/numbers.h )
s.files += %w( third_party/abseil-cpp/absl/strings/str_cat.cc )
s.files += %w( third_party/abseil-cpp/absl/strings/str_cat.h )
+ s.files += %w( third_party/abseil-cpp/absl/strings/str_format.h )
s.files += %w( third_party/abseil-cpp/absl/strings/str_join.h )
s.files += %w( third_party/abseil-cpp/absl/strings/str_replace.cc )
s.files += %w( third_party/abseil-cpp/absl/strings/str_replace.h )
diff --git a/grpc.gyp b/grpc.gyp
index 4197a676c7c..53eb755bec5 100644
--- a/grpc.gyp
+++ b/grpc.gyp
@@ -443,6 +443,7 @@
'dependencies': [
'absl/container:inlined_vector',
'absl/memory:memory',
+ 'absl/strings:str_format',
'absl/strings:strings',
'absl/types:optional',
],
diff --git a/package.xml b/package.xml
index cd9e718c6a2..fc83395d060 100644
--- a/package.xml
+++ b/package.xml
@@ -970,6 +970,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -980,6 +993,7 @@
+
diff --git a/src/core/ext/transport/chttp2/server/chttp2_server.cc b/src/core/ext/transport/chttp2/server/chttp2_server.cc
index d7e15959b23..83e898f5a9d 100644
--- a/src/core/ext/transport/chttp2/server/chttp2_server.cc
+++ b/src/core/ext/transport/chttp2/server/chttp2_server.cc
@@ -31,6 +31,8 @@
#include
#include
+#include "absl/strings/str_format.h"
+
#include "src/core/ext/filters/http/server/http_server_filter.h"
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/ext/transport/chttp2/transport/internal.h"
@@ -413,14 +415,9 @@ grpc_error* grpc_chttp2_server_add_port(grpc_server* server, const char* addr,
arg = grpc_channel_args_find(args, GRPC_ARG_ENABLE_CHANNELZ);
if (grpc_channel_arg_get_bool(arg, GRPC_ENABLE_CHANNELZ_DEFAULT)) {
- char* socket_name = nullptr;
- gpr_asprintf(&socket_name, "chttp2 listener %s", addr);
state->channelz_listen_socket =
grpc_core::MakeRefCounted(
- addr, socket_name);
- // TODO(veblush): Remove this once gpr_asprintf is replaced by
- // absl::StrFormat
- gpr_free(socket_name);
+ addr, absl::StrFormat("chttp2 listener %s", addr));
}
/* Register with the server only upon success */
diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
index 72e7c88aa65..4bddaabb710 100644
--- a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
@@ -31,6 +31,8 @@
#include
#include
+#include "absl/strings/str_format.h"
+
#include "src/core/ext/transport/chttp2/transport/context_list.h"
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
#include "src/core/ext/transport/chttp2/transport/internal.h"
@@ -378,14 +380,10 @@ static bool read_channel_args(grpc_chttp2_transport* t,
if (channelz_enabled) {
// TODO(ncteisen): add an API to endpoint to query for local addr, and pass
// it in here, so SocketNode knows its own address.
- char* socket_name = nullptr;
- gpr_asprintf(&socket_name, "%s %s", get_vtable()->name, t->peer_string);
t->channelz_socket =
grpc_core::MakeRefCounted(
- "", t->peer_string, socket_name);
- // TODO(veblush): Remove this once gpr_asprintf is replaced by
- // absl::StrFormat
- gpr_free(socket_name);
+ "", t->peer_string,
+ absl::StrFormat("%s %s", get_vtable()->name, t->peer_string));
}
return enable_bdp;
}
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index f0c99ecc590..1fbf25a1444 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -457,6 +457,12 @@ CORE_SOURCE_FILES = [
'third_party/abseil-cpp/absl/strings/internal/escaping.cc',
'third_party/abseil-cpp/absl/strings/internal/memutil.cc',
'third_party/abseil-cpp/absl/strings/internal/ostringstream.cc',
+ 'third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc',
+ 'third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc',
+ 'third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc',
+ 'third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc',
+ 'third_party/abseil-cpp/absl/strings/internal/str_format/output.cc',
+ 'third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc',
'third_party/abseil-cpp/absl/strings/internal/utf8.cc',
'third_party/abseil-cpp/absl/strings/match.cc',
'third_party/abseil-cpp/absl/strings/numbers.cc',