Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing
This commit is contained in:
commit
bdb746ec00
13
BUILD
13
BUILD
|
|
@ -93,6 +93,7 @@ GRPC_PUBLIC_HDRS = [
|
|||
"include/grpc/byte_buffer.h",
|
||||
"include/grpc/byte_buffer_reader.h",
|
||||
"include/grpc/compression.h",
|
||||
"include/grpc/compression_ruby.h",
|
||||
"include/grpc/fork.h",
|
||||
"include/grpc/grpc.h",
|
||||
"include/grpc/grpc_posix.h",
|
||||
|
|
@ -264,6 +265,11 @@ grpc_cc_library(
|
|||
],
|
||||
)
|
||||
|
||||
grpc_cc_library(
|
||||
name = "grpc++_public_hdrs",
|
||||
hdrs = GRPCXX_PUBLIC_HDRS,
|
||||
)
|
||||
|
||||
grpc_cc_library(
|
||||
name = "grpc++",
|
||||
srcs = [
|
||||
|
|
@ -631,6 +637,8 @@ grpc_cc_library(
|
|||
"src/core/lib/channel/handshaker_factory.cc",
|
||||
"src/core/lib/channel/handshaker_registry.cc",
|
||||
"src/core/lib/compression/compression.cc",
|
||||
"src/core/lib/compression/compression_internal.cc",
|
||||
"src/core/lib/compression/compression_ruby.cc",
|
||||
"src/core/lib/compression/message_compress.cc",
|
||||
"src/core/lib/compression/stream_compression.cc",
|
||||
"src/core/lib/compression/stream_compression_gzip.cc",
|
||||
|
|
@ -768,6 +776,7 @@ grpc_cc_library(
|
|||
"src/core/lib/channel/handshaker_factory.h",
|
||||
"src/core/lib/channel/handshaker_registry.h",
|
||||
"src/core/lib/compression/algorithm_metadata.h",
|
||||
"src/core/lib/compression/compression_internal.h",
|
||||
"src/core/lib/compression/message_compress.h",
|
||||
"src/core/lib/compression/stream_compression.h",
|
||||
"src/core/lib/compression/stream_compression_gzip.h",
|
||||
|
|
@ -1531,14 +1540,14 @@ grpc_cc_library(
|
|||
grpc_cc_library(
|
||||
name = "tsi",
|
||||
srcs = [
|
||||
"src/core/tsi/alts_transport_security.cc",
|
||||
"src/core/tsi/fake_transport_security.cc",
|
||||
"src/core/tsi/gts_transport_security.cc",
|
||||
"src/core/tsi/ssl_transport_security.cc",
|
||||
"src/core/tsi/transport_security_grpc.cc",
|
||||
],
|
||||
hdrs = [
|
||||
"src/core/tsi/alts_transport_security.h",
|
||||
"src/core/tsi/fake_transport_security.h",
|
||||
"src/core/tsi/gts_transport_security.h",
|
||||
"src/core/tsi/ssl_transport_security.h",
|
||||
"src/core/tsi/ssl_types.h",
|
||||
"src/core/tsi/transport_security_grpc.h",
|
||||
|
|
|
|||
|
|
@ -805,6 +805,8 @@ add_library(grpc
|
|||
src/core/lib/channel/handshaker_registry.cc
|
||||
src/core/lib/channel/object_registry.cc
|
||||
src/core/lib/compression/compression.cc
|
||||
src/core/lib/compression/compression_internal.cc
|
||||
src/core/lib/compression/compression_ruby.cc
|
||||
src/core/lib/compression/message_compress.cc
|
||||
src/core/lib/compression/stream_compression.cc
|
||||
src/core/lib/compression/stream_compression_gzip.cc
|
||||
|
|
@ -982,8 +984,8 @@ add_library(grpc
|
|||
src/core/lib/security/transport/tsi_error.cc
|
||||
src/core/lib/security/util/json_util.cc
|
||||
src/core/lib/surface/init_secure.cc
|
||||
src/core/tsi/alts_transport_security.cc
|
||||
src/core/tsi/fake_transport_security.cc
|
||||
src/core/tsi/gts_transport_security.cc
|
||||
src/core/tsi/ssl_transport_security.cc
|
||||
src/core/tsi/transport_security_grpc.cc
|
||||
src/core/tsi/transport_security.cc
|
||||
|
|
@ -1106,6 +1108,7 @@ foreach(_hdr
|
|||
include/grpc/byte_buffer.h
|
||||
include/grpc/byte_buffer_reader.h
|
||||
include/grpc/compression.h
|
||||
include/grpc/compression_ruby.h
|
||||
include/grpc/fork.h
|
||||
include/grpc/grpc.h
|
||||
include/grpc/grpc_posix.h
|
||||
|
|
@ -1147,6 +1150,8 @@ add_library(grpc_cronet
|
|||
src/core/lib/channel/handshaker_registry.cc
|
||||
src/core/lib/channel/object_registry.cc
|
||||
src/core/lib/compression/compression.cc
|
||||
src/core/lib/compression/compression_internal.cc
|
||||
src/core/lib/compression/compression_ruby.cc
|
||||
src/core/lib/compression/message_compress.cc
|
||||
src/core/lib/compression/stream_compression.cc
|
||||
src/core/lib/compression/stream_compression_gzip.cc
|
||||
|
|
@ -1349,8 +1354,8 @@ add_library(grpc_cronet
|
|||
src/core/lib/security/transport/tsi_error.cc
|
||||
src/core/lib/security/util/json_util.cc
|
||||
src/core/lib/surface/init_secure.cc
|
||||
src/core/tsi/alts_transport_security.cc
|
||||
src/core/tsi/fake_transport_security.cc
|
||||
src/core/tsi/gts_transport_security.cc
|
||||
src/core/tsi/ssl_transport_security.cc
|
||||
src/core/tsi/transport_security_grpc.cc
|
||||
src/core/tsi/transport_security.cc
|
||||
|
|
@ -1473,6 +1478,8 @@ add_library(grpc_test_util
|
|||
src/core/lib/channel/handshaker_registry.cc
|
||||
src/core/lib/channel/object_registry.cc
|
||||
src/core/lib/compression/compression.cc
|
||||
src/core/lib/compression/compression_internal.cc
|
||||
src/core/lib/compression/compression_ruby.cc
|
||||
src/core/lib/compression/message_compress.cc
|
||||
src/core/lib/compression/stream_compression.cc
|
||||
src/core/lib/compression/stream_compression_gzip.cc
|
||||
|
|
@ -1743,6 +1750,8 @@ add_library(grpc_test_util_unsecure
|
|||
src/core/lib/channel/handshaker_registry.cc
|
||||
src/core/lib/channel/object_registry.cc
|
||||
src/core/lib/compression/compression.cc
|
||||
src/core/lib/compression/compression_internal.cc
|
||||
src/core/lib/compression/compression_ruby.cc
|
||||
src/core/lib/compression/message_compress.cc
|
||||
src/core/lib/compression/stream_compression.cc
|
||||
src/core/lib/compression/stream_compression_gzip.cc
|
||||
|
|
@ -1995,6 +2004,8 @@ add_library(grpc_unsecure
|
|||
src/core/lib/channel/handshaker_registry.cc
|
||||
src/core/lib/channel/object_registry.cc
|
||||
src/core/lib/compression/compression.cc
|
||||
src/core/lib/compression/compression_internal.cc
|
||||
src/core/lib/compression/compression_ruby.cc
|
||||
src/core/lib/compression/message_compress.cc
|
||||
src/core/lib/compression/stream_compression.cc
|
||||
src/core/lib/compression/stream_compression_gzip.cc
|
||||
|
|
@ -2262,6 +2273,7 @@ foreach(_hdr
|
|||
include/grpc/byte_buffer.h
|
||||
include/grpc/byte_buffer_reader.h
|
||||
include/grpc/compression.h
|
||||
include/grpc/compression_ruby.h
|
||||
include/grpc/fork.h
|
||||
include/grpc/grpc.h
|
||||
include/grpc/grpc_posix.h
|
||||
|
|
@ -2535,6 +2547,7 @@ foreach(_hdr
|
|||
include/grpc/byte_buffer.h
|
||||
include/grpc/byte_buffer_reader.h
|
||||
include/grpc/compression.h
|
||||
include/grpc/compression_ruby.h
|
||||
include/grpc/fork.h
|
||||
include/grpc/grpc.h
|
||||
include/grpc/grpc_posix.h
|
||||
|
|
@ -2735,6 +2748,8 @@ add_library(grpc++_cronet
|
|||
src/core/lib/channel/handshaker_registry.cc
|
||||
src/core/lib/channel/object_registry.cc
|
||||
src/core/lib/compression/compression.cc
|
||||
src/core/lib/compression/compression_internal.cc
|
||||
src/core/lib/compression/compression_ruby.cc
|
||||
src/core/lib/compression/message_compress.cc
|
||||
src/core/lib/compression/stream_compression.cc
|
||||
src/core/lib/compression/stream_compression_gzip.cc
|
||||
|
|
@ -3018,6 +3033,7 @@ foreach(_hdr
|
|||
include/grpc/byte_buffer.h
|
||||
include/grpc/byte_buffer_reader.h
|
||||
include/grpc/compression.h
|
||||
include/grpc/compression_ruby.h
|
||||
include/grpc/fork.h
|
||||
include/grpc/grpc.h
|
||||
include/grpc/grpc_posix.h
|
||||
|
|
@ -3747,6 +3763,7 @@ foreach(_hdr
|
|||
include/grpc/byte_buffer.h
|
||||
include/grpc/byte_buffer_reader.h
|
||||
include/grpc/compression.h
|
||||
include/grpc/compression_ruby.h
|
||||
include/grpc/fork.h
|
||||
include/grpc/grpc.h
|
||||
include/grpc/grpc_posix.h
|
||||
|
|
|
|||
183
Makefile
183
Makefile
|
|
@ -513,7 +513,7 @@ endif
|
|||
|
||||
OPENSSL_ALPN_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/openssl-alpn.c $(addprefix -l, $(OPENSSL_LIBS)) $(LDFLAGS)
|
||||
OPENSSL_NPN_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/openssl-npn.c $(addprefix -l, $(OPENSSL_LIBS)) $(LDFLAGS)
|
||||
BORINGSSL_COMPILE_CHECK_CMD = $(CC) $(CPPFLAGS) -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -o $(TMPOUT) test/build/boringssl.c $(LDFLAGS)
|
||||
BORINGSSL_COMPILE_CHECK_CMD = $(CC) $(CPPFLAGS) -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI) -o $(TMPOUT) test/build/boringssl.c $(LDFLAGS)
|
||||
ZLIB_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/zlib.c -lz $(LDFLAGS)
|
||||
PROTOBUF_CHECK_CMD = $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $(TMPOUT) test/build/protobuf.cc -lprotobuf $(LDFLAGS)
|
||||
CARES_CHECK_CMD = $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $(TMPOUT) test/build/c-ares.c -lcares $(LDFLAGS)
|
||||
|
|
@ -3010,6 +3010,8 @@ LIBGRPC_SRC = \
|
|||
src/core/lib/channel/handshaker_registry.cc \
|
||||
src/core/lib/channel/object_registry.cc \
|
||||
src/core/lib/compression/compression.cc \
|
||||
src/core/lib/compression/compression_internal.cc \
|
||||
src/core/lib/compression/compression_ruby.cc \
|
||||
src/core/lib/compression/message_compress.cc \
|
||||
src/core/lib/compression/stream_compression.cc \
|
||||
src/core/lib/compression/stream_compression_gzip.cc \
|
||||
|
|
@ -3187,8 +3189,8 @@ LIBGRPC_SRC = \
|
|||
src/core/lib/security/transport/tsi_error.cc \
|
||||
src/core/lib/security/util/json_util.cc \
|
||||
src/core/lib/surface/init_secure.cc \
|
||||
src/core/tsi/alts_transport_security.cc \
|
||||
src/core/tsi/fake_transport_security.cc \
|
||||
src/core/tsi/gts_transport_security.cc \
|
||||
src/core/tsi/ssl_transport_security.cc \
|
||||
src/core/tsi/transport_security_grpc.cc \
|
||||
src/core/tsi/transport_security.cc \
|
||||
|
|
@ -3278,6 +3280,7 @@ PUBLIC_HEADERS_C += \
|
|||
include/grpc/byte_buffer.h \
|
||||
include/grpc/byte_buffer_reader.h \
|
||||
include/grpc/compression.h \
|
||||
include/grpc/compression_ruby.h \
|
||||
include/grpc/fork.h \
|
||||
include/grpc/grpc.h \
|
||||
include/grpc/grpc_posix.h \
|
||||
|
|
@ -3354,6 +3357,8 @@ LIBGRPC_CRONET_SRC = \
|
|||
src/core/lib/channel/handshaker_registry.cc \
|
||||
src/core/lib/channel/object_registry.cc \
|
||||
src/core/lib/compression/compression.cc \
|
||||
src/core/lib/compression/compression_internal.cc \
|
||||
src/core/lib/compression/compression_ruby.cc \
|
||||
src/core/lib/compression/message_compress.cc \
|
||||
src/core/lib/compression/stream_compression.cc \
|
||||
src/core/lib/compression/stream_compression_gzip.cc \
|
||||
|
|
@ -3556,8 +3561,8 @@ LIBGRPC_CRONET_SRC = \
|
|||
src/core/lib/security/transport/tsi_error.cc \
|
||||
src/core/lib/security/util/json_util.cc \
|
||||
src/core/lib/surface/init_secure.cc \
|
||||
src/core/tsi/alts_transport_security.cc \
|
||||
src/core/tsi/fake_transport_security.cc \
|
||||
src/core/tsi/gts_transport_security.cc \
|
||||
src/core/tsi/ssl_transport_security.cc \
|
||||
src/core/tsi/transport_security_grpc.cc \
|
||||
src/core/tsi/transport_security.cc \
|
||||
|
|
@ -3681,6 +3686,8 @@ LIBGRPC_TEST_UTIL_SRC = \
|
|||
src/core/lib/channel/handshaker_registry.cc \
|
||||
src/core/lib/channel/object_registry.cc \
|
||||
src/core/lib/compression/compression.cc \
|
||||
src/core/lib/compression/compression_internal.cc \
|
||||
src/core/lib/compression/compression_ruby.cc \
|
||||
src/core/lib/compression/message_compress.cc \
|
||||
src/core/lib/compression/stream_compression.cc \
|
||||
src/core/lib/compression/stream_compression_gzip.cc \
|
||||
|
|
@ -3944,6 +3951,8 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
|
|||
src/core/lib/channel/handshaker_registry.cc \
|
||||
src/core/lib/channel/object_registry.cc \
|
||||
src/core/lib/compression/compression.cc \
|
||||
src/core/lib/compression/compression_internal.cc \
|
||||
src/core/lib/compression/compression_ruby.cc \
|
||||
src/core/lib/compression/message_compress.cc \
|
||||
src/core/lib/compression/stream_compression.cc \
|
||||
src/core/lib/compression/stream_compression_gzip.cc \
|
||||
|
|
@ -4176,6 +4185,8 @@ LIBGRPC_UNSECURE_SRC = \
|
|||
src/core/lib/channel/handshaker_registry.cc \
|
||||
src/core/lib/channel/object_registry.cc \
|
||||
src/core/lib/compression/compression.cc \
|
||||
src/core/lib/compression/compression_internal.cc \
|
||||
src/core/lib/compression/compression_ruby.cc \
|
||||
src/core/lib/compression/message_compress.cc \
|
||||
src/core/lib/compression/stream_compression.cc \
|
||||
src/core/lib/compression/stream_compression_gzip.cc \
|
||||
|
|
@ -4411,6 +4422,7 @@ PUBLIC_HEADERS_C += \
|
|||
include/grpc/byte_buffer.h \
|
||||
include/grpc/byte_buffer_reader.h \
|
||||
include/grpc/compression.h \
|
||||
include/grpc/compression_ruby.h \
|
||||
include/grpc/fork.h \
|
||||
include/grpc/grpc.h \
|
||||
include/grpc/grpc_posix.h \
|
||||
|
|
@ -4669,6 +4681,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
include/grpc/byte_buffer.h \
|
||||
include/grpc/byte_buffer_reader.h \
|
||||
include/grpc/compression.h \
|
||||
include/grpc/compression_ruby.h \
|
||||
include/grpc/fork.h \
|
||||
include/grpc/grpc.h \
|
||||
include/grpc/grpc_posix.h \
|
||||
|
|
@ -4909,6 +4922,8 @@ LIBGRPC++_CRONET_SRC = \
|
|||
src/core/lib/channel/handshaker_registry.cc \
|
||||
src/core/lib/channel/object_registry.cc \
|
||||
src/core/lib/compression/compression.cc \
|
||||
src/core/lib/compression/compression_internal.cc \
|
||||
src/core/lib/compression/compression_ruby.cc \
|
||||
src/core/lib/compression/message_compress.cc \
|
||||
src/core/lib/compression/stream_compression.cc \
|
||||
src/core/lib/compression/stream_compression_gzip.cc \
|
||||
|
|
@ -5157,6 +5172,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
include/grpc/byte_buffer.h \
|
||||
include/grpc/byte_buffer_reader.h \
|
||||
include/grpc/compression.h \
|
||||
include/grpc/compression_ruby.h \
|
||||
include/grpc/fork.h \
|
||||
include/grpc/grpc.h \
|
||||
include/grpc/grpc_posix.h \
|
||||
|
|
@ -5875,6 +5891,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
include/grpc/byte_buffer.h \
|
||||
include/grpc/byte_buffer_reader.h \
|
||||
include/grpc/compression.h \
|
||||
include/grpc/compression_ruby.h \
|
||||
include/grpc/fork.h \
|
||||
include/grpc/grpc.h \
|
||||
include/grpc/grpc_posix.h \
|
||||
|
|
@ -6876,7 +6893,7 @@ PUBLIC_HEADERS_C += \
|
|||
LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
$(LIBDIR)/$(CONFIG)/libboringssl.a: $(ZLIB_DEP) $(CARES_DEP) $(LIBBORINGSSL_OBJS)
|
||||
$(E) "[AR] Creating $@"
|
||||
|
|
@ -6905,7 +6922,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TEST_UTIL_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_TEST_UTIL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_TEST_UTIL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_TEST_UTIL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -6943,7 +6960,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_AES_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AES_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -6981,7 +6998,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_ASN1_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ASN1_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7019,7 +7036,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_BASE64_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BASE64_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7057,7 +7074,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_BIO_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BIO_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7095,7 +7112,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_BN_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BN_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7133,7 +7150,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7171,7 +7188,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_AEAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AEAD_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7209,7 +7226,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_CIPHER_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CIPHER_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7247,7 +7264,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_CMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CMAC_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7285,7 +7302,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7323,7 +7340,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_ED25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ED25519_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7361,7 +7378,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SPAKE25519_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7399,7 +7416,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_X25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X25519_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7437,7 +7454,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_DIGEST_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DIGEST_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7475,7 +7492,7 @@ PUBLIC_HEADERS_C += \
|
|||
LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
$(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a: $(ZLIB_DEP) $(CARES_DEP) $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS)
|
||||
$(E) "[AR] Creating $@"
|
||||
|
|
@ -7502,7 +7519,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_P256-X86_64_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_P256-X86_64_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_P256-X86_64_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_P256-X86_64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_P256-X86_64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7540,7 +7557,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_ECDH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDH_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_ECDH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_ECDH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_ECDH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7578,7 +7595,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7616,7 +7633,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_ECDSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7654,7 +7671,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7692,7 +7709,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7730,7 +7747,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_EVP_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7768,7 +7785,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_PBKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PBKDF_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7806,7 +7823,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_HKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HKDF_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7844,7 +7861,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_HMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HMAC_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7882,7 +7899,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_LHASH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_LHASH_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7920,7 +7937,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_GCM_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_GCM_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7958,7 +7975,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_OBJ_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_OBJ_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_OBJ_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_OBJ_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_OBJ_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -7996,7 +8013,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_PKCS12_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS12_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -8034,7 +8051,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_PKCS8_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS8_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -8072,7 +8089,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_POLY1305_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_POLY1305_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -8110,7 +8127,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_POOL_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_POOL_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_POOL_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_POOL_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_POOL_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -8148,7 +8165,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -8186,7 +8203,7 @@ PUBLIC_HEADERS_C += \
|
|||
LIBBORINGSSL_THREAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_THREAD_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
$(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a: $(ZLIB_DEP) $(CARES_DEP) $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS)
|
||||
$(E) "[AR] Creating $@"
|
||||
|
|
@ -8213,7 +8230,7 @@ PUBLIC_HEADERS_C += \
|
|||
LIBBORINGSSL_PKCS7_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS7_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
$(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a: $(ZLIB_DEP) $(CARES_DEP) $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS)
|
||||
$(E) "[AR] Creating $@"
|
||||
|
|
@ -8240,7 +8257,7 @@ PUBLIC_HEADERS_CXX += \
|
|||
LIBBORINGSSL_X509_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X509_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_X509_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_X509_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_X509_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
ifeq ($(NO_PROTOBUF),true)
|
||||
|
||||
|
|
@ -8278,7 +8295,7 @@ PUBLIC_HEADERS_C += \
|
|||
LIBBORINGSSL_TAB_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TAB_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
$(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a: $(ZLIB_DEP) $(CARES_DEP) $(LIBBORINGSSL_TAB_TEST_LIB_OBJS)
|
||||
$(E) "[AR] Creating $@"
|
||||
|
|
@ -8305,7 +8322,7 @@ PUBLIC_HEADERS_C += \
|
|||
LIBBORINGSSL_V3NAME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_V3NAME_TEST_LIB_SRC))))
|
||||
|
||||
$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
$(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a: $(ZLIB_DEP) $(CARES_DEP) $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS)
|
||||
$(E) "[AR] Creating $@"
|
||||
|
|
@ -8395,7 +8412,7 @@ PUBLIC_HEADERS_C += \
|
|||
|
||||
LIBZ_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBZ_SRC))))
|
||||
|
||||
$(LIBZ_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-implicit-function-declaration $(W_NO_SHIFT_NEGATIVE_VALUE) -fvisibility=hidden
|
||||
$(LIBZ_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-implicit-function-declaration -Wno-implicit-fallthrough $(W_NO_SHIFT_NEGATIVE_VALUE) -fvisibility=hidden
|
||||
|
||||
$(LIBDIR)/$(CONFIG)/libz.a: $(CARES_DEP) $(LIBZ_OBJS)
|
||||
$(E) "[AR] Creating $@"
|
||||
|
|
@ -17707,7 +17724,7 @@ $(BINDIR)/$(CONFIG)/boringssl_aes_test: $(LIBDIR)/$(CONFIG)/libboringssl_aes_te
|
|||
endif
|
||||
|
||||
$(BORINGSSL_AES_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_AES_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_AES_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17736,7 +17753,7 @@ $(BINDIR)/$(CONFIG)/boringssl_asn1_test: $(LIBDIR)/$(CONFIG)/libboringssl_asn1_
|
|||
endif
|
||||
|
||||
$(BORINGSSL_ASN1_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_ASN1_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_ASN1_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17765,7 +17782,7 @@ $(BINDIR)/$(CONFIG)/boringssl_base64_test: $(LIBDIR)/$(CONFIG)/libboringssl_bas
|
|||
endif
|
||||
|
||||
$(BORINGSSL_BASE64_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_BASE64_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_BASE64_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17794,7 +17811,7 @@ $(BINDIR)/$(CONFIG)/boringssl_bio_test: $(LIBDIR)/$(CONFIG)/libboringssl_bio_te
|
|||
endif
|
||||
|
||||
$(BORINGSSL_BIO_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_BIO_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_BIO_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17823,7 +17840,7 @@ $(BINDIR)/$(CONFIG)/boringssl_bn_test: $(LIBDIR)/$(CONFIG)/libboringssl_bn_test
|
|||
endif
|
||||
|
||||
$(BORINGSSL_BN_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_BN_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_BN_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17852,7 +17869,7 @@ $(BINDIR)/$(CONFIG)/boringssl_bytestring_test: $(LIBDIR)/$(CONFIG)/libboringssl
|
|||
endif
|
||||
|
||||
$(BORINGSSL_BYTESTRING_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_BYTESTRING_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_BYTESTRING_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17881,7 +17898,7 @@ $(BINDIR)/$(CONFIG)/boringssl_aead_test: $(LIBDIR)/$(CONFIG)/libboringssl_aead_
|
|||
endif
|
||||
|
||||
$(BORINGSSL_AEAD_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_AEAD_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_AEAD_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17910,7 +17927,7 @@ $(BINDIR)/$(CONFIG)/boringssl_cipher_test: $(LIBDIR)/$(CONFIG)/libboringssl_cip
|
|||
endif
|
||||
|
||||
$(BORINGSSL_CIPHER_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_CIPHER_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_CIPHER_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17939,7 +17956,7 @@ $(BINDIR)/$(CONFIG)/boringssl_cmac_test: $(LIBDIR)/$(CONFIG)/libboringssl_cmac_
|
|||
endif
|
||||
|
||||
$(BORINGSSL_CMAC_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_CMAC_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_CMAC_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17968,7 +17985,7 @@ $(BINDIR)/$(CONFIG)/boringssl_constant_time_test: $(LIBDIR)/$(CONFIG)/libboring
|
|||
endif
|
||||
|
||||
$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -17997,7 +18014,7 @@ $(BINDIR)/$(CONFIG)/boringssl_ed25519_test: $(LIBDIR)/$(CONFIG)/libboringssl_ed
|
|||
endif
|
||||
|
||||
$(BORINGSSL_ED25519_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_ED25519_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_ED25519_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18026,7 +18043,7 @@ $(BINDIR)/$(CONFIG)/boringssl_spake25519_test: $(LIBDIR)/$(CONFIG)/libboringssl
|
|||
endif
|
||||
|
||||
$(BORINGSSL_SPAKE25519_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_SPAKE25519_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_SPAKE25519_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18055,7 +18072,7 @@ $(BINDIR)/$(CONFIG)/boringssl_x25519_test: $(LIBDIR)/$(CONFIG)/libboringssl_x25
|
|||
endif
|
||||
|
||||
$(BORINGSSL_X25519_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_X25519_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_X25519_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18084,7 +18101,7 @@ $(BINDIR)/$(CONFIG)/boringssl_digest_test: $(LIBDIR)/$(CONFIG)/libboringssl_dig
|
|||
endif
|
||||
|
||||
$(BORINGSSL_DIGEST_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_DIGEST_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_DIGEST_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18113,7 +18130,7 @@ $(BINDIR)/$(CONFIG)/boringssl_example_mul: $(LIBDIR)/$(CONFIG)/libboringssl_exa
|
|||
endif
|
||||
|
||||
$(BORINGSSL_EXAMPLE_MUL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_EXAMPLE_MUL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_EXAMPLE_MUL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18142,7 +18159,7 @@ $(BINDIR)/$(CONFIG)/boringssl_p256-x86_64_test: $(LIBDIR)/$(CONFIG)/libboringss
|
|||
endif
|
||||
|
||||
$(BORINGSSL_P256-X86_64_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_P256-X86_64_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_P256-X86_64_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18171,7 +18188,7 @@ $(BINDIR)/$(CONFIG)/boringssl_ecdh_test: $(LIBDIR)/$(CONFIG)/libboringssl_ecdh_
|
|||
endif
|
||||
|
||||
$(BORINGSSL_ECDH_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_ECDH_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_ECDH_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18200,7 +18217,7 @@ $(BINDIR)/$(CONFIG)/boringssl_ecdsa_sign_test: $(LIBDIR)/$(CONFIG)/libboringssl
|
|||
endif
|
||||
|
||||
$(BORINGSSL_ECDSA_SIGN_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_ECDSA_SIGN_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_ECDSA_SIGN_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18229,7 +18246,7 @@ $(BINDIR)/$(CONFIG)/boringssl_ecdsa_test: $(LIBDIR)/$(CONFIG)/libboringssl_ecds
|
|||
endif
|
||||
|
||||
$(BORINGSSL_ECDSA_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_ECDSA_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_ECDSA_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18258,7 +18275,7 @@ $(BINDIR)/$(CONFIG)/boringssl_ecdsa_verify_test: $(LIBDIR)/$(CONFIG)/libborings
|
|||
endif
|
||||
|
||||
$(BORINGSSL_ECDSA_VERIFY_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_ECDSA_VERIFY_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_ECDSA_VERIFY_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18287,7 +18304,7 @@ $(BINDIR)/$(CONFIG)/boringssl_evp_extra_test: $(LIBDIR)/$(CONFIG)/libboringssl_
|
|||
endif
|
||||
|
||||
$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18316,7 +18333,7 @@ $(BINDIR)/$(CONFIG)/boringssl_evp_test: $(LIBDIR)/$(CONFIG)/libboringssl_evp_te
|
|||
endif
|
||||
|
||||
$(BORINGSSL_EVP_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_EVP_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_EVP_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18345,7 +18362,7 @@ $(BINDIR)/$(CONFIG)/boringssl_pbkdf_test: $(LIBDIR)/$(CONFIG)/libboringssl_pbkd
|
|||
endif
|
||||
|
||||
$(BORINGSSL_PBKDF_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_PBKDF_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_PBKDF_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18374,7 +18391,7 @@ $(BINDIR)/$(CONFIG)/boringssl_hkdf_test: $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_
|
|||
endif
|
||||
|
||||
$(BORINGSSL_HKDF_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_HKDF_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_HKDF_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18403,7 +18420,7 @@ $(BINDIR)/$(CONFIG)/boringssl_hmac_test: $(LIBDIR)/$(CONFIG)/libboringssl_hmac_
|
|||
endif
|
||||
|
||||
$(BORINGSSL_HMAC_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_HMAC_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_HMAC_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18432,7 +18449,7 @@ $(BINDIR)/$(CONFIG)/boringssl_lhash_test: $(LIBDIR)/$(CONFIG)/libboringssl_lhas
|
|||
endif
|
||||
|
||||
$(BORINGSSL_LHASH_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_LHASH_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_LHASH_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18461,7 +18478,7 @@ $(BINDIR)/$(CONFIG)/boringssl_gcm_test: $(LIBDIR)/$(CONFIG)/libboringssl_gcm_te
|
|||
endif
|
||||
|
||||
$(BORINGSSL_GCM_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_GCM_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_GCM_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18490,7 +18507,7 @@ $(BINDIR)/$(CONFIG)/boringssl_obj_test: $(LIBDIR)/$(CONFIG)/libboringssl_obj_te
|
|||
endif
|
||||
|
||||
$(BORINGSSL_OBJ_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_OBJ_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_OBJ_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18519,7 +18536,7 @@ $(BINDIR)/$(CONFIG)/boringssl_pkcs12_test: $(LIBDIR)/$(CONFIG)/libboringssl_pkc
|
|||
endif
|
||||
|
||||
$(BORINGSSL_PKCS12_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_PKCS12_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_PKCS12_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18548,7 +18565,7 @@ $(BINDIR)/$(CONFIG)/boringssl_pkcs8_test: $(LIBDIR)/$(CONFIG)/libboringssl_pkcs
|
|||
endif
|
||||
|
||||
$(BORINGSSL_PKCS8_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_PKCS8_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_PKCS8_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18577,7 +18594,7 @@ $(BINDIR)/$(CONFIG)/boringssl_poly1305_test: $(LIBDIR)/$(CONFIG)/libboringssl_p
|
|||
endif
|
||||
|
||||
$(BORINGSSL_POLY1305_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_POLY1305_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_POLY1305_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18606,7 +18623,7 @@ $(BINDIR)/$(CONFIG)/boringssl_pool_test: $(LIBDIR)/$(CONFIG)/libboringssl_pool_
|
|||
endif
|
||||
|
||||
$(BORINGSSL_POOL_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_POOL_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_POOL_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18635,7 +18652,7 @@ $(BINDIR)/$(CONFIG)/boringssl_refcount_test: $(LIBDIR)/$(CONFIG)/libboringssl_r
|
|||
endif
|
||||
|
||||
$(BORINGSSL_REFCOUNT_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_REFCOUNT_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_REFCOUNT_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18664,7 +18681,7 @@ $(BINDIR)/$(CONFIG)/boringssl_thread_test: $(LIBDIR)/$(CONFIG)/libboringssl_thr
|
|||
endif
|
||||
|
||||
$(BORINGSSL_THREAD_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_THREAD_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_THREAD_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18693,7 +18710,7 @@ $(BINDIR)/$(CONFIG)/boringssl_pkcs7_test: $(LIBDIR)/$(CONFIG)/libboringssl_pkcs
|
|||
endif
|
||||
|
||||
$(BORINGSSL_PKCS7_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_PKCS7_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_PKCS7_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18722,7 +18739,7 @@ $(BINDIR)/$(CONFIG)/boringssl_x509_test: $(LIBDIR)/$(CONFIG)/libboringssl_x509_
|
|||
endif
|
||||
|
||||
$(BORINGSSL_X509_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_X509_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_X509_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18751,7 +18768,7 @@ $(BINDIR)/$(CONFIG)/boringssl_tab_test: $(LIBDIR)/$(CONFIG)/libboringssl_tab_te
|
|||
endif
|
||||
|
||||
$(BORINGSSL_TAB_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_TAB_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_TAB_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -18780,7 +18797,7 @@ $(BINDIR)/$(CONFIG)/boringssl_v3name_test: $(LIBDIR)/$(CONFIG)/libboringssl_v3n
|
|||
endif
|
||||
|
||||
$(BORINGSSL_V3NAME_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
$(BORINGSSL_V3NAME_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
$(BORINGSSL_V3NAME_TEST_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI)
|
||||
|
||||
|
||||
|
||||
|
|
@ -20603,8 +20620,8 @@ src/core/lib/security/util/json_util.cc: $(OPENSSL_DEP)
|
|||
src/core/lib/surface/init_secure.cc: $(OPENSSL_DEP)
|
||||
src/core/plugin_registry/grpc_cronet_plugin_registry.cc: $(OPENSSL_DEP)
|
||||
src/core/plugin_registry/grpc_plugin_registry.cc: $(OPENSSL_DEP)
|
||||
src/core/tsi/alts_transport_security.cc: $(OPENSSL_DEP)
|
||||
src/core/tsi/fake_transport_security.cc: $(OPENSSL_DEP)
|
||||
src/core/tsi/gts_transport_security.cc: $(OPENSSL_DEP)
|
||||
src/core/tsi/ssl_transport_security.cc: $(OPENSSL_DEP)
|
||||
src/core/tsi/transport_security.cc: $(OPENSSL_DEP)
|
||||
src/core/tsi/transport_security_adapter.cc: $(OPENSSL_DEP)
|
||||
|
|
|
|||
9
Rakefile
9
Rakefile
|
|
@ -99,7 +99,7 @@ task 'dlls' do
|
|||
env_comp = "CC=#{opt[:cross]}-gcc "
|
||||
env_comp += "CXX=#{opt[:cross]}-g++ "
|
||||
env_comp += "LD=#{opt[:cross]}-gcc "
|
||||
docker_for_windows "gem update --system && #{env} #{env_comp} make -j #{out} && #{opt[:cross]}-strip -x -S #{out} && cp #{out} #{opt[:out]}"
|
||||
docker_for_windows "gem update --system --no-ri --no-doc && #{env} #{env_comp} make -j #{out} && #{opt[:cross]}-strip -x -S #{out} && cp #{out} #{opt[:out]}"
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -113,10 +113,15 @@ task 'gem:native' do
|
|||
if RUBY_PLATFORM =~ /darwin/
|
||||
FileUtils.touch 'grpc_c.32.ruby'
|
||||
FileUtils.touch 'grpc_c.64.ruby'
|
||||
unless '2.5' == /(\d+\.\d+)/.match(RUBY_VERSION).to_s
|
||||
fail "rake gem:native (the rake task to build the binary packages) is being " \
|
||||
"invoked on macos with ruby #{RUBY_VERSION}. The ruby macos artifact " \
|
||||
"build should be running on ruby 2.5."
|
||||
end
|
||||
system "rake cross native gem RUBY_CC_VERSION=2.5.0:2.4.0:2.3.0:2.2.2:2.1.6:2.0.0 V=#{verbose} GRPC_CONFIG=#{grpc_config}"
|
||||
else
|
||||
Rake::Task['dlls'].execute
|
||||
docker_for_windows "gem update --system && bundle && rake cross native gem RUBY_CC_VERSION=2.5.0:2.4.0:2.3.0:2.2.2:2.1.6:2.0.0 V=#{verbose} GRPC_CONFIG=#{grpc_config}"
|
||||
docker_for_windows "gem update --system --no-ri --no-doc && bundle && rake cross native gem RUBY_CC_VERSION=2.5.0:2.4.0:2.3.0:2.2.2:2.1.6:2.0.0 V=#{verbose} GRPC_CONFIG=#{grpc_config}"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
15
build.yaml
15
build.yaml
|
|
@ -161,6 +161,8 @@ filegroups:
|
|||
- src/core/lib/channel/handshaker_registry.cc
|
||||
- src/core/lib/channel/object_registry.cc
|
||||
- src/core/lib/compression/compression.cc
|
||||
- src/core/lib/compression/compression_internal.cc
|
||||
- src/core/lib/compression/compression_ruby.cc
|
||||
- src/core/lib/compression/message_compress.cc
|
||||
- src/core/lib/compression/stream_compression.cc
|
||||
- src/core/lib/compression/stream_compression_gzip.cc
|
||||
|
|
@ -297,6 +299,7 @@ filegroups:
|
|||
- include/grpc/byte_buffer.h
|
||||
- include/grpc/byte_buffer_reader.h
|
||||
- include/grpc/compression.h
|
||||
- include/grpc/compression_ruby.h
|
||||
- include/grpc/fork.h
|
||||
- include/grpc/grpc.h
|
||||
- include/grpc/grpc_posix.h
|
||||
|
|
@ -319,6 +322,7 @@ filegroups:
|
|||
- src/core/lib/channel/handshaker_registry.h
|
||||
- src/core/lib/channel/object_registry.h
|
||||
- src/core/lib/compression/algorithm_metadata.h
|
||||
- src/core/lib/compression/compression_internal.h
|
||||
- src/core/lib/compression/message_compress.h
|
||||
- src/core/lib/compression/stream_compression.h
|
||||
- src/core/lib/compression/stream_compression_gzip.h
|
||||
|
|
@ -937,19 +941,19 @@ filegroups:
|
|||
- grpc
|
||||
- name: tsi
|
||||
headers:
|
||||
- src/core/tsi/alts_transport_security.h
|
||||
- src/core/tsi/fake_transport_security.h
|
||||
- src/core/tsi/gts_transport_security.h
|
||||
- src/core/tsi/ssl_transport_security.h
|
||||
- src/core/tsi/ssl_types.h
|
||||
- src/core/tsi/transport_security_grpc.h
|
||||
src:
|
||||
- src/core/tsi/alts_transport_security.cc
|
||||
- src/core/tsi/fake_transport_security.cc
|
||||
- src/core/tsi/gts_transport_security.cc
|
||||
- src/core/tsi/ssl_transport_security.cc
|
||||
- src/core/tsi/transport_security_grpc.cc
|
||||
deps:
|
||||
- gpr
|
||||
plugin: grpc_tsi_gts
|
||||
plugin: grpc_tsi_alts
|
||||
secure: true
|
||||
uses:
|
||||
- tsi_interface
|
||||
|
|
@ -5072,7 +5076,8 @@ defaults:
|
|||
CPPFLAGS: -Ithird_party/benchmark/include -DHAVE_POSIX_REGEX
|
||||
boringssl:
|
||||
CFLAGS: -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas
|
||||
-Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
|
||||
-Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough
|
||||
$(NO_W_EXTRA_SEMI)
|
||||
CPPFLAGS: -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM
|
||||
-D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
|
||||
global:
|
||||
|
|
@ -5082,7 +5087,7 @@ defaults:
|
|||
LDFLAGS: -g
|
||||
zlib:
|
||||
CFLAGS: -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-implicit-function-declaration
|
||||
$(W_NO_SHIFT_NEGATIVE_VALUE) -fvisibility=hidden
|
||||
-Wno-implicit-fallthrough $(W_NO_SHIFT_NEGATIVE_VALUE) -fvisibility=hidden
|
||||
openssl_fallback:
|
||||
base_uri: https://openssl.org/source/old/1.0.2/
|
||||
extraction_dir: openssl-1.0.2f
|
||||
|
|
|
|||
|
|
@ -95,6 +95,8 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/channel/handshaker_registry.cc \
|
||||
src/core/lib/channel/object_registry.cc \
|
||||
src/core/lib/compression/compression.cc \
|
||||
src/core/lib/compression/compression_internal.cc \
|
||||
src/core/lib/compression/compression_ruby.cc \
|
||||
src/core/lib/compression/message_compress.cc \
|
||||
src/core/lib/compression/stream_compression.cc \
|
||||
src/core/lib/compression/stream_compression_gzip.cc \
|
||||
|
|
@ -272,8 +274,8 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/security/transport/tsi_error.cc \
|
||||
src/core/lib/security/util/json_util.cc \
|
||||
src/core/lib/surface/init_secure.cc \
|
||||
src/core/tsi/alts_transport_security.cc \
|
||||
src/core/tsi/fake_transport_security.cc \
|
||||
src/core/tsi/gts_transport_security.cc \
|
||||
src/core/tsi/ssl_transport_security.cc \
|
||||
src/core/tsi/transport_security_grpc.cc \
|
||||
src/core/tsi/transport_security.cc \
|
||||
|
|
|
|||
|
|
@ -72,6 +72,8 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\channel\\handshaker_registry.cc " +
|
||||
"src\\core\\lib\\channel\\object_registry.cc " +
|
||||
"src\\core\\lib\\compression\\compression.cc " +
|
||||
"src\\core\\lib\\compression\\compression_internal.cc " +
|
||||
"src\\core\\lib\\compression\\compression_ruby.cc " +
|
||||
"src\\core\\lib\\compression\\message_compress.cc " +
|
||||
"src\\core\\lib\\compression\\stream_compression.cc " +
|
||||
"src\\core\\lib\\compression\\stream_compression_gzip.cc " +
|
||||
|
|
@ -249,8 +251,8 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\security\\transport\\tsi_error.cc " +
|
||||
"src\\core\\lib\\security\\util\\json_util.cc " +
|
||||
"src\\core\\lib\\surface\\init_secure.cc " +
|
||||
"src\\core\\tsi\\alts_transport_security.cc " +
|
||||
"src\\core\\tsi\\fake_transport_security.cc " +
|
||||
"src\\core\\tsi\\gts_transport_security.cc " +
|
||||
"src\\core\\tsi\\ssl_transport_security.cc " +
|
||||
"src\\core\\tsi\\transport_security_grpc.cc " +
|
||||
"src\\core\\tsi\\transport_security.cc " +
|
||||
|
|
|
|||
|
|
@ -58,50 +58,140 @@ $ make grpc_cli
|
|||
The main file can be found at
|
||||
https://github.com/grpc/grpc/blob/master/test/cpp/util/grpc_cli.cc
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Most `grpc_cli` commands need the server to support server reflection. See
|
||||
guides for
|
||||
[Java](https://github.com/grpc/grpc-java/blob/master/documentation/server-reflection-tutorial.md#enable-server-reflection)
|
||||
, [C++](https://github.com/grpc/grpc/blob/master/doc/server_reflection_tutorial.md)
|
||||
and [Go](https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md)
|
||||
|
||||
## Usage
|
||||
|
||||
### Basic usage
|
||||
### List services
|
||||
|
||||
Send a rpc to a helloworld server at `localhost:50051`:
|
||||
`grpc_cli ls` command lists services and methods exposed at a given port
|
||||
|
||||
```
|
||||
$ bins/opt/grpc_cli call localhost:50051 SayHello "name: 'world'" \
|
||||
--enable_ssl=false
|
||||
```
|
||||
- List all the services exposed at a given port
|
||||
|
||||
On success, the tool will print out
|
||||
```sh
|
||||
$ grpc_cli ls localhost:50051
|
||||
```
|
||||
|
||||
```
|
||||
Rpc succeeded with OK status
|
||||
Response:
|
||||
message: "Hello world"
|
||||
```
|
||||
output:
|
||||
|
||||
The `localhost:50051` part indicates the server you are connecting to. `SayHello` is (part of) the
|
||||
gRPC method string. Then `"name: 'world'"` is the text format of the request proto message. We are
|
||||
not using ssl here by `--enable_ssl=false`. For information on more flags, look at the comments of `grpc_cli.cc`.
|
||||
```none
|
||||
helloworld.Greeter
|
||||
grpc.reflection.v1alpha.ServerReflection
|
||||
```
|
||||
|
||||
### Use local proto files
|
||||
The `localhost:50051` part indicates the server you are connecting to.
|
||||
|
||||
If the server does not have the server reflection service, you will need to provide local proto
|
||||
files containing the service definition. The tool will try to find request/response types from
|
||||
them.
|
||||
- List one service with details
|
||||
|
||||
```
|
||||
$ bins/opt/grpc_cli call localhost:50051 SayHello "name: 'world'" \
|
||||
--protofiles=examples/protos/helloworld.proto --enable_ssl=false
|
||||
```
|
||||
`grpc_cli ls` command inspects a service given its full name (in the format
|
||||
of \<package\>.\<service\>). It can print information with a long listing
|
||||
format when `-l` flag is set. This flag can be used to get more details
|
||||
about a service.
|
||||
|
||||
If the proto files is not under current directory, you can use `--proto_path` to specify a new
|
||||
search root.
|
||||
```sh
|
||||
$ grpc_cli ls localhost:50051 helloworld.Greeter -l
|
||||
```
|
||||
|
||||
### Send non-proto rpc
|
||||
`helloworld.Greeter` is full name of the service.
|
||||
|
||||
For using gRPC with protocols other than probobuf, you will need the exact method name string
|
||||
and a file containing the raw bytes to be sent on the wire
|
||||
output:
|
||||
|
||||
```
|
||||
$ bins/opt/grpc_cli call localhost:50051 /helloworld.Greeter/SayHello --input_binary_file=input.bin \
|
||||
--output_binary_file=output.bin
|
||||
```
|
||||
On success, you will need to read or decode the response from the `output.bin` file.
|
||||
```proto
|
||||
filename: helloworld.proto
|
||||
package: helloworld;
|
||||
service Greeter {
|
||||
rpc SayHello(helloworld.HelloRequest) returns (helloworld.HelloReply) {}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### List methods
|
||||
|
||||
- List one method with details
|
||||
|
||||
`grpc_cli ls` command also inspects a method given its full name (in the
|
||||
format of \<package\>.\<service\>.\<method\>).
|
||||
|
||||
```sh
|
||||
$ grpc_cli ls localhost:50051 helloworld.Greeter.SayHello -l
|
||||
```
|
||||
|
||||
`helloworld.Greeter.SayHello` is full name of the method.
|
||||
|
||||
output:
|
||||
|
||||
```proto
|
||||
rpc SayHello(helloworld.HelloRequest) returns (helloworld.HelloReply) {}
|
||||
```
|
||||
|
||||
### Inspect message types
|
||||
|
||||
We can use `grpc_cli type` command to inspect request/response types given the
|
||||
full name of the type (in the format of \<package\>.\<type\>).
|
||||
|
||||
- Get information about the request type
|
||||
|
||||
```sh
|
||||
$ grpc_cli type localhost:50051 helloworld.HelloRequest
|
||||
```
|
||||
|
||||
`helloworld.HelloRequest` is the full name of the request type.
|
||||
|
||||
output:
|
||||
|
||||
```proto
|
||||
message HelloRequest {
|
||||
optional string name = 1;
|
||||
}
|
||||
```
|
||||
|
||||
### Call a remote method
|
||||
|
||||
We can send RPCs to a server and get responses using `grpc_cli call` command.
|
||||
|
||||
- Call a unary method Send a rpc to a helloworld server at `localhost:50051`:
|
||||
|
||||
```sh
|
||||
$ grpc_cli call localhost:50051 SayHello "name: 'gRPC CLI'"
|
||||
```
|
||||
|
||||
output: `sh message: "Hello gRPC CLI"`
|
||||
|
||||
`SayHello` is (part of) the gRPC method string. Then `"name: 'world'"` is
|
||||
the text format of the request proto message. For information on more flags,
|
||||
look at the comments of `grpc_cli.cc`.
|
||||
|
||||
- Use local proto files
|
||||
|
||||
If the server does not have the server reflection service, you will need to
|
||||
provide local proto files containing the service definition. The tool will
|
||||
try to find request/response types from them.
|
||||
|
||||
```sh
|
||||
$ grpc_cli call localhost:50051 SayHello "name: 'world'" \
|
||||
--protofiles=examples/protos/helloworld.proto
|
||||
```
|
||||
|
||||
If the proto file is not under the current directory, you can use
|
||||
`--proto_path` to specify a new search root.
|
||||
|
||||
- Send non-proto rpc
|
||||
|
||||
For using gRPC with protocols other than probobuf, you will need the exact
|
||||
method name string and a file containing the raw bytes to be sent on the
|
||||
wire.
|
||||
|
||||
```bash
|
||||
$ grpc_cli call localhost:50051 /helloworld.Greeter/SayHello \
|
||||
--input_binary_file=input.bin \
|
||||
--output_binary_file=output.bin
|
||||
```
|
||||
|
||||
On success, you will need to read or decode the response from the
|
||||
`output.bin` file.
|
||||
|
|
|
|||
|
|
@ -263,8 +263,8 @@ Pod::Spec.new do |s|
|
|||
'src/core/lib/security/transport/security_handshaker.h',
|
||||
'src/core/lib/security/transport/tsi_error.h',
|
||||
'src/core/lib/security/util/json_util.h',
|
||||
'src/core/tsi/alts_transport_security.h',
|
||||
'src/core/tsi/fake_transport_security.h',
|
||||
'src/core/tsi/gts_transport_security.h',
|
||||
'src/core/tsi/ssl_transport_security.h',
|
||||
'src/core/tsi/ssl_types.h',
|
||||
'src/core/tsi/transport_security_grpc.h',
|
||||
|
|
@ -306,6 +306,7 @@ Pod::Spec.new do |s|
|
|||
'src/core/lib/channel/handshaker_registry.h',
|
||||
'src/core/lib/channel/object_registry.h',
|
||||
'src/core/lib/compression/algorithm_metadata.h',
|
||||
'src/core/lib/compression/compression_internal.h',
|
||||
'src/core/lib/compression/message_compress.h',
|
||||
'src/core/lib/compression/stream_compression.h',
|
||||
'src/core/lib/compression/stream_compression_gzip.h',
|
||||
|
|
@ -479,6 +480,7 @@ Pod::Spec.new do |s|
|
|||
'src/core/lib/channel/handshaker_registry.h',
|
||||
'src/core/lib/channel/object_registry.h',
|
||||
'src/core/lib/compression/algorithm_metadata.h',
|
||||
'src/core/lib/compression/compression_internal.h',
|
||||
'src/core/lib/compression/message_compress.h',
|
||||
'src/core/lib/compression/stream_compression.h',
|
||||
'src/core/lib/compression/stream_compression_gzip.h',
|
||||
|
|
|
|||
|
|
@ -173,6 +173,7 @@ Pod::Spec.new do |s|
|
|||
'include/grpc/byte_buffer.h',
|
||||
'include/grpc/byte_buffer_reader.h',
|
||||
'include/grpc/compression.h',
|
||||
'include/grpc/compression_ruby.h',
|
||||
'include/grpc/fork.h',
|
||||
'include/grpc/grpc.h',
|
||||
'include/grpc/grpc_posix.h',
|
||||
|
|
@ -297,8 +298,8 @@ Pod::Spec.new do |s|
|
|||
'src/core/lib/security/transport/security_handshaker.h',
|
||||
'src/core/lib/security/transport/tsi_error.h',
|
||||
'src/core/lib/security/util/json_util.h',
|
||||
'src/core/tsi/alts_transport_security.h',
|
||||
'src/core/tsi/fake_transport_security.h',
|
||||
'src/core/tsi/gts_transport_security.h',
|
||||
'src/core/tsi/ssl_transport_security.h',
|
||||
'src/core/tsi/ssl_types.h',
|
||||
'src/core/tsi/transport_security_grpc.h',
|
||||
|
|
@ -340,6 +341,7 @@ Pod::Spec.new do |s|
|
|||
'src/core/lib/channel/handshaker_registry.h',
|
||||
'src/core/lib/channel/object_registry.h',
|
||||
'src/core/lib/compression/algorithm_metadata.h',
|
||||
'src/core/lib/compression/compression_internal.h',
|
||||
'src/core/lib/compression/message_compress.h',
|
||||
'src/core/lib/compression/stream_compression.h',
|
||||
'src/core/lib/compression/stream_compression_gzip.h',
|
||||
|
|
@ -483,6 +485,8 @@ Pod::Spec.new do |s|
|
|||
'src/core/lib/channel/handshaker_registry.cc',
|
||||
'src/core/lib/channel/object_registry.cc',
|
||||
'src/core/lib/compression/compression.cc',
|
||||
'src/core/lib/compression/compression_internal.cc',
|
||||
'src/core/lib/compression/compression_ruby.cc',
|
||||
'src/core/lib/compression/message_compress.cc',
|
||||
'src/core/lib/compression/stream_compression.cc',
|
||||
'src/core/lib/compression/stream_compression_gzip.cc',
|
||||
|
|
@ -660,8 +664,8 @@ Pod::Spec.new do |s|
|
|||
'src/core/lib/security/transport/tsi_error.cc',
|
||||
'src/core/lib/security/util/json_util.cc',
|
||||
'src/core/lib/surface/init_secure.cc',
|
||||
'src/core/tsi/alts_transport_security.cc',
|
||||
'src/core/tsi/fake_transport_security.cc',
|
||||
'src/core/tsi/gts_transport_security.cc',
|
||||
'src/core/tsi/ssl_transport_security.cc',
|
||||
'src/core/tsi/transport_security_grpc.cc',
|
||||
'src/core/tsi/transport_security.cc',
|
||||
|
|
@ -783,8 +787,8 @@ Pod::Spec.new do |s|
|
|||
'src/core/lib/security/transport/security_handshaker.h',
|
||||
'src/core/lib/security/transport/tsi_error.h',
|
||||
'src/core/lib/security/util/json_util.h',
|
||||
'src/core/tsi/alts_transport_security.h',
|
||||
'src/core/tsi/fake_transport_security.h',
|
||||
'src/core/tsi/gts_transport_security.h',
|
||||
'src/core/tsi/ssl_transport_security.h',
|
||||
'src/core/tsi/ssl_types.h',
|
||||
'src/core/tsi/transport_security_grpc.h',
|
||||
|
|
@ -826,6 +830,7 @@ Pod::Spec.new do |s|
|
|||
'src/core/lib/channel/handshaker_registry.h',
|
||||
'src/core/lib/channel/object_registry.h',
|
||||
'src/core/lib/compression/algorithm_metadata.h',
|
||||
'src/core/lib/compression/compression_internal.h',
|
||||
'src/core/lib/compression/message_compress.h',
|
||||
'src/core/lib/compression/stream_compression.h',
|
||||
'src/core/lib/compression/stream_compression_gzip.h',
|
||||
|
|
|
|||
7
grpc.def
7
grpc.def
|
|
@ -1,14 +1,15 @@
|
|||
EXPORTS
|
||||
grpc_compression_algorithm_is_message
|
||||
grpc_compression_algorithm_is_stream
|
||||
grpc_compression_algorithm_parse
|
||||
grpc_compression_algorithm_name
|
||||
grpc_stream_compression_algorithm_name
|
||||
grpc_compression_algorithm_for_level
|
||||
grpc_stream_compression_algorithm_for_level
|
||||
grpc_compression_options_init
|
||||
grpc_compression_options_enable_algorithm
|
||||
grpc_compression_options_disable_algorithm
|
||||
grpc_compression_options_is_algorithm_enabled
|
||||
grpc_compression_options_is_stream_compression_algorithm_enabled
|
||||
grpc_compression_algorithm_parse_ruby
|
||||
grpc_compression_algorithm_name_ruby
|
||||
grpc_metadata_array_init
|
||||
grpc_metadata_array_destroy
|
||||
grpc_call_details_init
|
||||
|
|
|
|||
|
|
@ -170,6 +170,7 @@ Gem::Specification.new do |s|
|
|||
s.files += %w( include/grpc/byte_buffer.h )
|
||||
s.files += %w( include/grpc/byte_buffer_reader.h )
|
||||
s.files += %w( include/grpc/compression.h )
|
||||
s.files += %w( include/grpc/compression_ruby.h )
|
||||
s.files += %w( include/grpc/fork.h )
|
||||
s.files += %w( include/grpc/grpc.h )
|
||||
s.files += %w( include/grpc/grpc_posix.h )
|
||||
|
|
@ -223,8 +224,8 @@ Gem::Specification.new do |s|
|
|||
s.files += %w( src/core/lib/security/transport/security_handshaker.h )
|
||||
s.files += %w( src/core/lib/security/transport/tsi_error.h )
|
||||
s.files += %w( src/core/lib/security/util/json_util.h )
|
||||
s.files += %w( src/core/tsi/alts_transport_security.h )
|
||||
s.files += %w( src/core/tsi/fake_transport_security.h )
|
||||
s.files += %w( src/core/tsi/gts_transport_security.h )
|
||||
s.files += %w( src/core/tsi/ssl_transport_security.h )
|
||||
s.files += %w( src/core/tsi/ssl_types.h )
|
||||
s.files += %w( src/core/tsi/transport_security_grpc.h )
|
||||
|
|
@ -266,6 +267,7 @@ Gem::Specification.new do |s|
|
|||
s.files += %w( src/core/lib/channel/handshaker_registry.h )
|
||||
s.files += %w( src/core/lib/channel/object_registry.h )
|
||||
s.files += %w( src/core/lib/compression/algorithm_metadata.h )
|
||||
s.files += %w( src/core/lib/compression/compression_internal.h )
|
||||
s.files += %w( src/core/lib/compression/message_compress.h )
|
||||
s.files += %w( src/core/lib/compression/stream_compression.h )
|
||||
s.files += %w( src/core/lib/compression/stream_compression_gzip.h )
|
||||
|
|
@ -413,6 +415,8 @@ Gem::Specification.new do |s|
|
|||
s.files += %w( src/core/lib/channel/handshaker_registry.cc )
|
||||
s.files += %w( src/core/lib/channel/object_registry.cc )
|
||||
s.files += %w( src/core/lib/compression/compression.cc )
|
||||
s.files += %w( src/core/lib/compression/compression_internal.cc )
|
||||
s.files += %w( src/core/lib/compression/compression_ruby.cc )
|
||||
s.files += %w( src/core/lib/compression/message_compress.cc )
|
||||
s.files += %w( src/core/lib/compression/stream_compression.cc )
|
||||
s.files += %w( src/core/lib/compression/stream_compression_gzip.cc )
|
||||
|
|
@ -590,8 +594,8 @@ Gem::Specification.new do |s|
|
|||
s.files += %w( src/core/lib/security/transport/tsi_error.cc )
|
||||
s.files += %w( src/core/lib/security/util/json_util.cc )
|
||||
s.files += %w( src/core/lib/surface/init_secure.cc )
|
||||
s.files += %w( src/core/tsi/alts_transport_security.cc )
|
||||
s.files += %w( src/core/tsi/fake_transport_security.cc )
|
||||
s.files += %w( src/core/tsi/gts_transport_security.cc )
|
||||
s.files += %w( src/core/tsi/ssl_transport_security.cc )
|
||||
s.files += %w( src/core/tsi/transport_security_grpc.cc )
|
||||
s.files += %w( src/core/tsi/transport_security.cc )
|
||||
|
|
|
|||
10
grpc.gyp
10
grpc.gyp
|
|
@ -236,6 +236,8 @@
|
|||
'src/core/lib/channel/handshaker_registry.cc',
|
||||
'src/core/lib/channel/object_registry.cc',
|
||||
'src/core/lib/compression/compression.cc',
|
||||
'src/core/lib/compression/compression_internal.cc',
|
||||
'src/core/lib/compression/compression_ruby.cc',
|
||||
'src/core/lib/compression/message_compress.cc',
|
||||
'src/core/lib/compression/stream_compression.cc',
|
||||
'src/core/lib/compression/stream_compression_gzip.cc',
|
||||
|
|
@ -413,8 +415,8 @@
|
|||
'src/core/lib/security/transport/tsi_error.cc',
|
||||
'src/core/lib/security/util/json_util.cc',
|
||||
'src/core/lib/surface/init_secure.cc',
|
||||
'src/core/tsi/alts_transport_security.cc',
|
||||
'src/core/tsi/fake_transport_security.cc',
|
||||
'src/core/tsi/gts_transport_security.cc',
|
||||
'src/core/tsi/ssl_transport_security.cc',
|
||||
'src/core/tsi/transport_security_grpc.cc',
|
||||
'src/core/tsi/transport_security.cc',
|
||||
|
|
@ -533,6 +535,8 @@
|
|||
'src/core/lib/channel/handshaker_registry.cc',
|
||||
'src/core/lib/channel/object_registry.cc',
|
||||
'src/core/lib/compression/compression.cc',
|
||||
'src/core/lib/compression/compression_internal.cc',
|
||||
'src/core/lib/compression/compression_ruby.cc',
|
||||
'src/core/lib/compression/message_compress.cc',
|
||||
'src/core/lib/compression/stream_compression.cc',
|
||||
'src/core/lib/compression/stream_compression_gzip.cc',
|
||||
|
|
@ -748,6 +752,8 @@
|
|||
'src/core/lib/channel/handshaker_registry.cc',
|
||||
'src/core/lib/channel/object_registry.cc',
|
||||
'src/core/lib/compression/compression.cc',
|
||||
'src/core/lib/compression/compression_internal.cc',
|
||||
'src/core/lib/compression/compression_ruby.cc',
|
||||
'src/core/lib/compression/message_compress.cc',
|
||||
'src/core/lib/compression/stream_compression.cc',
|
||||
'src/core/lib/compression/stream_compression_gzip.cc',
|
||||
|
|
@ -944,6 +950,8 @@
|
|||
'src/core/lib/channel/handshaker_registry.cc',
|
||||
'src/core/lib/channel/object_registry.cc',
|
||||
'src/core/lib/compression/compression.cc',
|
||||
'src/core/lib/compression/compression_internal.cc',
|
||||
'src/core/lib/compression/compression_ruby.cc',
|
||||
'src/core/lib/compression/message_compress.cc',
|
||||
'src/core/lib/compression/stream_compression.cc',
|
||||
'src/core/lib/compression/stream_compression_gzip.cc',
|
||||
|
|
|
|||
|
|
@ -216,14 +216,12 @@ class CallOpSendInitialMetadata {
|
|||
public:
|
||||
CallOpSendInitialMetadata() : send_(false) {
|
||||
maybe_compression_level_.is_set = false;
|
||||
maybe_stream_compression_level_.is_set = false;
|
||||
}
|
||||
|
||||
void SendInitialMetadata(
|
||||
const std::multimap<grpc::string, grpc::string>& metadata,
|
||||
uint32_t flags) {
|
||||
maybe_compression_level_.is_set = false;
|
||||
maybe_stream_compression_level_.is_set = false;
|
||||
send_ = true;
|
||||
flags_ = flags;
|
||||
initial_metadata_ =
|
||||
|
|
@ -235,11 +233,6 @@ class CallOpSendInitialMetadata {
|
|||
maybe_compression_level_.level = level;
|
||||
}
|
||||
|
||||
void set_stream_compression_level(grpc_stream_compression_level level) {
|
||||
maybe_stream_compression_level_.is_set = true;
|
||||
maybe_stream_compression_level_.level = level;
|
||||
}
|
||||
|
||||
protected:
|
||||
void AddOp(grpc_op* ops, size_t* nops) {
|
||||
if (!send_) return;
|
||||
|
|
@ -255,12 +248,6 @@ class CallOpSendInitialMetadata {
|
|||
op->data.send_initial_metadata.maybe_compression_level.level =
|
||||
maybe_compression_level_.level;
|
||||
}
|
||||
op->data.send_initial_metadata.maybe_stream_compression_level.is_set =
|
||||
maybe_stream_compression_level_.is_set;
|
||||
if (maybe_stream_compression_level_.is_set) {
|
||||
op->data.send_initial_metadata.maybe_stream_compression_level.level =
|
||||
maybe_stream_compression_level_.level;
|
||||
}
|
||||
}
|
||||
void FinishOp(bool* status) {
|
||||
if (!send_) return;
|
||||
|
|
@ -276,10 +263,6 @@ class CallOpSendInitialMetadata {
|
|||
bool is_set;
|
||||
grpc_compression_level level;
|
||||
} maybe_compression_level_;
|
||||
struct {
|
||||
bool is_set;
|
||||
grpc_stream_compression_level level;
|
||||
} maybe_stream_compression_level_;
|
||||
};
|
||||
|
||||
class CallOpSendMessage {
|
||||
|
|
@ -624,7 +607,7 @@ class CallOpSetInterface : public CompletionQueueTag {
|
|||
virtual void FillOps(grpc_call* call, grpc_op* ops, size_t* nops) = 0;
|
||||
};
|
||||
|
||||
/// Primary implementaiton of CallOpSetInterface.
|
||||
/// Primary implementation of CallOpSetInterface.
|
||||
/// Since we cannot use variadic templates, we declare slots up to
|
||||
/// the maximum count of ops we'll need in a set. We leverage the
|
||||
/// empty base class optimization to slim this class (especially
|
||||
|
|
@ -641,7 +624,7 @@ class CallOpSet : public CallOpSetInterface,
|
|||
public Op5,
|
||||
public Op6 {
|
||||
public:
|
||||
CallOpSet() : return_tag_(this) {}
|
||||
CallOpSet() : return_tag_(this), call_(nullptr) {}
|
||||
void FillOps(grpc_call* call, grpc_op* ops, size_t* nops) override {
|
||||
this->Op1::AddOp(ops, nops);
|
||||
this->Op2::AddOp(ops, nops);
|
||||
|
|
|
|||
|
|
@ -30,42 +30,30 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** Return if an algorithm is message compression algorithm. */
|
||||
GRPCAPI int grpc_compression_algorithm_is_message(
|
||||
grpc_compression_algorithm algorithm);
|
||||
|
||||
/** Return if an algorithm is stream compression algorithm. */
|
||||
GRPCAPI int grpc_compression_algorithm_is_stream(
|
||||
grpc_compression_algorithm algorithm);
|
||||
|
||||
/** Parses the \a slice as a grpc_compression_algorithm instance and updating \a
|
||||
* algorithm. Returns 1 upon success, 0 otherwise. */
|
||||
GRPCAPI int grpc_compression_algorithm_parse(
|
||||
grpc_slice value, grpc_compression_algorithm* algorithm);
|
||||
|
||||
/** Parses the \a slice as a grpc_stream_compression_algorithm instance and
|
||||
* updating \a algorithm. Returns 1 upon success, 0 otherwise. */
|
||||
int grpc_stream_compression_algorithm_parse(
|
||||
grpc_slice name, grpc_stream_compression_algorithm* algorithm);
|
||||
|
||||
/** Updates \a name with the encoding name corresponding to a valid \a
|
||||
* algorithm. Note that \a name is statically allocated and must *not* be freed.
|
||||
* Returns 1 upon success, 0 otherwise. */
|
||||
GRPCAPI int grpc_compression_algorithm_name(
|
||||
grpc_compression_algorithm algorithm, const char** name);
|
||||
|
||||
/** Updates \a name with the encoding name corresponding to a valid \a
|
||||
* algorithm. Note that \a name is statically allocated and must *not* be freed.
|
||||
* Returns 1 upon success, 0 otherwise. */
|
||||
GRPCAPI int grpc_stream_compression_algorithm_name(
|
||||
grpc_stream_compression_algorithm algorithm, const char** name);
|
||||
|
||||
/** Returns the compression algorithm corresponding to \a level for the
|
||||
* compression algorithms encoded in the \a accepted_encodings bitset.
|
||||
*
|
||||
* It abort()s for unknown levels. */
|
||||
* compression algorithms encoded in the \a accepted_encodings bitset.*/
|
||||
GRPCAPI grpc_compression_algorithm grpc_compression_algorithm_for_level(
|
||||
grpc_compression_level level, uint32_t accepted_encodings);
|
||||
|
||||
/** Returns the stream compression algorithm corresponding to \a level for the
|
||||
* compression algorithms encoded in the \a accepted_stream_encodings bitset.
|
||||
* It abort()s for unknown levels. */
|
||||
GRPCAPI grpc_stream_compression_algorithm
|
||||
grpc_stream_compression_algorithm_for_level(grpc_stream_compression_level level,
|
||||
uint32_t accepted_stream_encodings);
|
||||
|
||||
GRPCAPI void grpc_compression_options_init(grpc_compression_options* opts);
|
||||
|
||||
/** Mark \a algorithm as enabled in \a opts. */
|
||||
|
|
@ -80,11 +68,6 @@ GRPCAPI void grpc_compression_options_disable_algorithm(
|
|||
GRPCAPI int grpc_compression_options_is_algorithm_enabled(
|
||||
const grpc_compression_options* opts, grpc_compression_algorithm algorithm);
|
||||
|
||||
/** Returns true if \a algorithm is marked as enabled in \a opts. */
|
||||
GRPCAPI int grpc_compression_options_is_stream_compression_algorithm_enabled(
|
||||
const grpc_compression_options* opts,
|
||||
grpc_stream_compression_algorithm algorithm);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2017 gRPC authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef GRPC_COMPRESSION_RUBY_H
|
||||
#define GRPC_COMPRESSION_RUBY_H
|
||||
|
||||
#include <grpc/impl/codegen/port_platform.h>
|
||||
|
||||
#include <grpc/impl/codegen/compression_types.h>
|
||||
#include <grpc/slice.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** Parses the \a slice as a grpc_compression_algorithm instance and updating \a
|
||||
* algorithm following algorithm names compatible with Ruby. Returns 1 upon
|
||||
* success, 0 otherwise. */
|
||||
GRPCAPI int grpc_compression_algorithm_parse_ruby(
|
||||
grpc_slice value, grpc_compression_algorithm* algorithm);
|
||||
|
||||
/** Updates \a name with the encoding name corresponding to a valid \a
|
||||
* algorithm. The \a name follows names compatible with Ruby. Note that \a name
|
||||
* is statically allocated and must *not* be freed. Returns 1 upon success, 0
|
||||
* otherwise. */
|
||||
GRPCAPI int grpc_compression_algorithm_name_ruby(
|
||||
grpc_compression_algorithm algorithm, const char** name);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* GRPC_COMPRESSION_RUBY_H */
|
||||
|
|
@ -29,11 +29,6 @@ extern "C" {
|
|||
* algorithm */
|
||||
#define GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY \
|
||||
"grpc-internal-encoding-request"
|
||||
/** To be used as initial metadata key for the request of a concrete stream
|
||||
* compression
|
||||
* algorithm */
|
||||
#define GRPC_STREAM_COMPRESSION_REQUEST_ALGORITHM_MD_KEY \
|
||||
"grpc-internal-stream-encoding-request"
|
||||
|
||||
/** To be used in channel arguments.
|
||||
*
|
||||
|
|
@ -43,17 +38,9 @@ extern "C" {
|
|||
* Its value is an int from the \a grpc_compression_algorithm enum. */
|
||||
#define GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM \
|
||||
"grpc.default_compression_algorithm"
|
||||
/** Default stream compression algorithm for the channel.
|
||||
* Its value is an int from the \a grpc_stream_compression_algorithm enum. */
|
||||
#define GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM \
|
||||
"grpc.default_stream_compression_algorithm"
|
||||
/** Default compression level for the channel.
|
||||
* Its value is an int from the \a grpc_compression_level enum. */
|
||||
#define GRPC_COMPRESSION_CHANNEL_DEFAULT_LEVEL "grpc.default_compression_level"
|
||||
/** Default stream compression level for the channel.
|
||||
* Its value is an int from the \a grpc_stream_compression_level enum. */
|
||||
#define GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_LEVEL \
|
||||
"grpc.default_stream_compression_level"
|
||||
/** Compression algorithms supported by the channel.
|
||||
* Its value is a bitset (an int). Bits correspond to algorithms in \a
|
||||
* grpc_compression_algorithm. For example, its LSB corresponds to
|
||||
|
|
@ -63,33 +50,18 @@ extern "C" {
|
|||
* be ignored). */
|
||||
#define GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET \
|
||||
"grpc.compression_enabled_algorithms_bitset"
|
||||
/** Stream compression algorithms supported by the channel.
|
||||
* Its value is a bitset (an int). Bits correspond to algorithms in \a
|
||||
* grpc_stream_compression_algorithm. For example, its LSB corresponds to
|
||||
* GRPC_STREAM_COMPRESS_NONE, the next bit to GRPC_STREAM_COMPRESS_DEFLATE, etc.
|
||||
* Unset bits disable support for the algorithm. By default all algorithms are
|
||||
* supported. It's not possible to disable GRPC_STREAM_COMPRESS_NONE (the
|
||||
* attempt will be ignored). */
|
||||
#define GRPC_STREAM_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET \
|
||||
"grpc.stream_compression_enabled_algorithms_bitset"
|
||||
/** \} */
|
||||
|
||||
/** The various compression algorithms supported by gRPC */
|
||||
typedef enum {
|
||||
GRPC_COMPRESS_NONE = 0,
|
||||
GRPC_COMPRESS_DEFLATE,
|
||||
GRPC_COMPRESS_GZIP,
|
||||
GRPC_COMPRESS_MESSAGE_DEFLATE,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
GRPC_COMPRESS_STREAM_GZIP,
|
||||
/* TODO(ctiller): snappy */
|
||||
GRPC_COMPRESS_ALGORITHMS_COUNT
|
||||
} grpc_compression_algorithm;
|
||||
|
||||
/** Stream compresssion algorithms supported by gRPC */
|
||||
typedef enum {
|
||||
GRPC_STREAM_COMPRESS_NONE = 0,
|
||||
GRPC_STREAM_COMPRESS_GZIP,
|
||||
GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT
|
||||
} grpc_stream_compression_algorithm;
|
||||
|
||||
/** Compression levels allow a party with knowledge of its peer's accepted
|
||||
* encodings to request compression in an abstract way. The level-algorithm
|
||||
* mapping is performed internally and depends on the peer's supported
|
||||
|
|
@ -102,41 +74,22 @@ typedef enum {
|
|||
GRPC_COMPRESS_LEVEL_COUNT
|
||||
} grpc_compression_level;
|
||||
|
||||
/** Compression levels for stream compression algorithms */
|
||||
typedef enum {
|
||||
GRPC_STREAM_COMPRESS_LEVEL_NONE = 0,
|
||||
GRPC_STREAM_COMPRESS_LEVEL_LOW,
|
||||
GRPC_STREAM_COMPRESS_LEVEL_MED,
|
||||
GRPC_STREAM_COMPRESS_LEVEL_HIGH,
|
||||
GRPC_STREAM_COMPRESS_LEVEL_COUNT
|
||||
} grpc_stream_compression_level;
|
||||
|
||||
typedef struct grpc_compression_options {
|
||||
/** All algs are enabled by default. This option corresponds to the channel
|
||||
* argument key behind \a GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET
|
||||
*/
|
||||
uint32_t enabled_algorithms_bitset;
|
||||
uint32_t enabled_stream_compression_algorithms_bitset;
|
||||
|
||||
/** The default message-wise compression level. It'll be used in the absence
|
||||
* of * call specific settings. This option corresponds to the channel
|
||||
/** The default compression level. It'll be used in the absence of call
|
||||
* specific settings. This option corresponds to the channel
|
||||
* argument key behind \a GRPC_COMPRESSION_CHANNEL_DEFAULT_LEVEL. If present,
|
||||
* takes precedence over \a default_algorithm and \a
|
||||
* default_stream_compression_algorithm.
|
||||
* takes precedence over \a default_algorithm.
|
||||
* TODO(dgq): currently only available for server channels. */
|
||||
struct grpc_compression_options_default_level {
|
||||
int is_set;
|
||||
grpc_compression_level level;
|
||||
} default_level;
|
||||
|
||||
/** The default stream compression level. It'll be used in the absence of call
|
||||
* specefic settings. If present, takes precedence over \a default_level,
|
||||
* \a default_algorithm and \a default_stream_compression_algorithm. */
|
||||
struct grpc_stream_compression_options_default_level {
|
||||
int is_set;
|
||||
grpc_stream_compression_level level;
|
||||
} default_stream_compression_level;
|
||||
|
||||
/** The default message compression algorithm. It'll be used in the absence of
|
||||
* call specific settings. This option corresponds to the channel argument key
|
||||
* behind \a GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM. */
|
||||
|
|
@ -144,17 +97,6 @@ typedef struct grpc_compression_options {
|
|||
int is_set;
|
||||
grpc_compression_algorithm algorithm;
|
||||
} default_algorithm;
|
||||
|
||||
/** The default stream compression algorithm. It'll be used in the absence of
|
||||
* call specific settings. If present, takes precedence over \a
|
||||
* default_algorithm. This option corresponds to the channel
|
||||
* argument key behind \a GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM.
|
||||
*/
|
||||
struct grpc_stream_compression_options_default_algorithm {
|
||||
int is_set;
|
||||
grpc_stream_compression_algorithm algorithm;
|
||||
} default_stream_compression_algorithm;
|
||||
|
||||
} grpc_compression_options;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
|||
|
|
@ -518,10 +518,6 @@ typedef struct grpc_op {
|
|||
uint8_t is_set;
|
||||
grpc_compression_level level;
|
||||
} maybe_compression_level;
|
||||
struct grpc_op_send_initial_metadata_maybe_stream_compression_level {
|
||||
uint8_t is_set;
|
||||
grpc_stream_compression_level level;
|
||||
} maybe_stream_compression_level;
|
||||
} send_initial_metadata;
|
||||
struct grpc_op_send_message {
|
||||
/** This op takes ownership of the slices in send_message. After
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ framework module grpc {
|
|||
header "byte_buffer.h"
|
||||
header "byte_buffer_reader.h"
|
||||
header "compression.h"
|
||||
header "compression_ruby.h"
|
||||
header "fork.h"
|
||||
header "grpc.h"
|
||||
header "grpc_posix.h"
|
||||
|
|
|
|||
|
|
@ -177,6 +177,7 @@
|
|||
<file baseinstalldir="/" name="include/grpc/byte_buffer.h" role="src" />
|
||||
<file baseinstalldir="/" name="include/grpc/byte_buffer_reader.h" role="src" />
|
||||
<file baseinstalldir="/" name="include/grpc/compression.h" role="src" />
|
||||
<file baseinstalldir="/" name="include/grpc/compression_ruby.h" role="src" />
|
||||
<file baseinstalldir="/" name="include/grpc/fork.h" role="src" />
|
||||
<file baseinstalldir="/" name="include/grpc/grpc.h" role="src" />
|
||||
<file baseinstalldir="/" name="include/grpc/grpc_posix.h" role="src" />
|
||||
|
|
@ -230,8 +231,8 @@
|
|||
<file baseinstalldir="/" name="src/core/lib/security/transport/security_handshaker.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/security/transport/tsi_error.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/security/util/json_util.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/alts_transport_security.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/fake_transport_security.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/gts_transport_security.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/ssl_transport_security.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/ssl_types.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/transport_security_grpc.h" role="src" />
|
||||
|
|
@ -273,6 +274,7 @@
|
|||
<file baseinstalldir="/" name="src/core/lib/channel/handshaker_registry.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/channel/object_registry.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/algorithm_metadata.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/compression_internal.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/message_compress.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/stream_compression.h" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/stream_compression_gzip.h" role="src" />
|
||||
|
|
@ -420,6 +422,8 @@
|
|||
<file baseinstalldir="/" name="src/core/lib/channel/handshaker_registry.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/channel/object_registry.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/compression.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/compression_internal.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/compression_ruby.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/message_compress.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/stream_compression.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/compression/stream_compression_gzip.cc" role="src" />
|
||||
|
|
@ -597,8 +601,8 @@
|
|||
<file baseinstalldir="/" name="src/core/lib/security/transport/tsi_error.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/security/util/json_util.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/lib/surface/init_secure.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/alts_transport_security.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/fake_transport_security.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/gts_transport_security.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/ssl_transport_security.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/transport_security_grpc.cc" role="src" />
|
||||
<file baseinstalldir="/" name="src/core/tsi/transport_security.cc" role="src" />
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ static bool proxy_mapper_map_name(grpc_proxy_mapper* mapper,
|
|||
"unable to split host and port, not checking no_proxy list for "
|
||||
"host '%s'",
|
||||
server_uri);
|
||||
gpr_free(no_proxy_str);
|
||||
} else {
|
||||
size_t uri_len = strlen(server_host);
|
||||
char** no_proxy_hosts;
|
||||
|
|
@ -139,6 +140,7 @@ static bool proxy_mapper_map_name(grpc_proxy_mapper* mapper,
|
|||
gpr_free(no_proxy_hosts);
|
||||
gpr_free(server_host);
|
||||
gpr_free(server_port);
|
||||
gpr_free(no_proxy_str);
|
||||
if (!use_proxy) goto no_use_proxy;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
#include "src/core/ext/filters/http/message_compress/message_compress_filter.h"
|
||||
#include "src/core/lib/channel/channel_args.h"
|
||||
#include "src/core/lib/compression/algorithm_metadata.h"
|
||||
#include "src/core/lib/compression/compression_internal.h"
|
||||
#include "src/core/lib/compression/message_compress.h"
|
||||
#include "src/core/lib/gpr/string.h"
|
||||
#include "src/core/lib/profiling/timers.h"
|
||||
|
|
@ -53,7 +54,7 @@ struct call_data {
|
|||
grpc_linked_mdelem accept_stream_encoding_storage;
|
||||
/** Compression algorithm we'll try to use. It may be given by incoming
|
||||
* metadata, or by the channel's default compression settings. */
|
||||
grpc_compression_algorithm compression_algorithm;
|
||||
grpc_message_compression_algorithm message_compression_algorithm;
|
||||
initial_metadata_state send_initial_metadata_state;
|
||||
grpc_error* cancel_error;
|
||||
grpc_closure start_send_message_batch_in_call_combiner;
|
||||
|
|
@ -68,15 +69,10 @@ struct call_data {
|
|||
struct channel_data {
|
||||
/** The default, channel-level, compression algorithm */
|
||||
grpc_compression_algorithm default_compression_algorithm;
|
||||
/** Bitset of enabled algorithms */
|
||||
/** Bitset of enabled compression algorithms */
|
||||
uint32_t enabled_algorithms_bitset;
|
||||
/** Supported compression algorithms */
|
||||
uint32_t supported_compression_algorithms;
|
||||
|
||||
/** The default, channel-level, stream compression algorithm */
|
||||
grpc_stream_compression_algorithm default_stream_compression_algorithm;
|
||||
/** Bitset of enabled stream compression algorithms */
|
||||
uint32_t enabled_stream_compression_algorithms_bitset;
|
||||
uint32_t supported_message_compression_algorithms;
|
||||
/** Supported stream compression algorithms */
|
||||
uint32_t supported_stream_compression_algorithms;
|
||||
};
|
||||
|
|
@ -91,7 +87,7 @@ static bool skip_compression(grpc_call_element* elem, uint32_t flags,
|
|||
return true;
|
||||
}
|
||||
if (has_compression_algorithm) {
|
||||
if (calld->compression_algorithm == GRPC_COMPRESS_NONE) {
|
||||
if (calld->message_compression_algorithm == GRPC_MESSAGE_COMPRESS_NONE) {
|
||||
return true;
|
||||
}
|
||||
return false; /* we have an actual call-specific algorithm */
|
||||
|
|
@ -110,70 +106,53 @@ static grpc_error* process_send_initial_metadata(
|
|||
call_data* calld = (call_data*)elem->call_data;
|
||||
channel_data* channeld = (channel_data*)elem->channel_data;
|
||||
*has_compression_algorithm = false;
|
||||
grpc_compression_algorithm compression_algorithm;
|
||||
grpc_stream_compression_algorithm stream_compression_algorithm =
|
||||
GRPC_STREAM_COMPRESS_NONE;
|
||||
if (initial_metadata->idx.named.grpc_internal_stream_encoding_request !=
|
||||
nullptr) {
|
||||
grpc_mdelem md =
|
||||
initial_metadata->idx.named.grpc_internal_stream_encoding_request->md;
|
||||
if (!grpc_stream_compression_algorithm_parse(
|
||||
GRPC_MDVALUE(md), &stream_compression_algorithm)) {
|
||||
char* val = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
||||
gpr_log(GPR_ERROR,
|
||||
"Invalid stream compression algorithm: '%s' (unknown). Ignoring.",
|
||||
val);
|
||||
gpr_free(val);
|
||||
stream_compression_algorithm = GRPC_STREAM_COMPRESS_NONE;
|
||||
}
|
||||
if (!GPR_BITGET(channeld->enabled_stream_compression_algorithms_bitset,
|
||||
stream_compression_algorithm)) {
|
||||
char* val = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
||||
gpr_log(
|
||||
GPR_ERROR,
|
||||
"Invalid stream compression algorithm: '%s' (previously disabled). "
|
||||
"Ignoring.",
|
||||
val);
|
||||
gpr_free(val);
|
||||
stream_compression_algorithm = GRPC_STREAM_COMPRESS_NONE;
|
||||
}
|
||||
*has_compression_algorithm = true;
|
||||
grpc_metadata_batch_remove(
|
||||
initial_metadata,
|
||||
initial_metadata->idx.named.grpc_internal_stream_encoding_request);
|
||||
/* Disable message-wise compression */
|
||||
calld->compression_algorithm = GRPC_COMPRESS_NONE;
|
||||
if (initial_metadata->idx.named.grpc_internal_encoding_request != nullptr) {
|
||||
grpc_metadata_batch_remove(
|
||||
initial_metadata,
|
||||
initial_metadata->idx.named.grpc_internal_encoding_request);
|
||||
}
|
||||
} else if (initial_metadata->idx.named.grpc_internal_encoding_request !=
|
||||
nullptr) {
|
||||
if (initial_metadata->idx.named.grpc_internal_encoding_request != nullptr) {
|
||||
grpc_mdelem md =
|
||||
initial_metadata->idx.named.grpc_internal_encoding_request->md;
|
||||
if (!grpc_compression_algorithm_parse(GRPC_MDVALUE(md),
|
||||
&calld->compression_algorithm)) {
|
||||
&compression_algorithm)) {
|
||||
char* val = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
||||
gpr_log(GPR_ERROR,
|
||||
"Invalid compression algorithm: '%s' (unknown). Ignoring.", val);
|
||||
gpr_free(val);
|
||||
calld->compression_algorithm = GRPC_COMPRESS_NONE;
|
||||
calld->message_compression_algorithm = GRPC_MESSAGE_COMPRESS_NONE;
|
||||
stream_compression_algorithm = GRPC_STREAM_COMPRESS_NONE;
|
||||
}
|
||||
if (!GPR_BITGET(channeld->enabled_algorithms_bitset,
|
||||
compression_algorithm)) {
|
||||
char* val = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
||||
gpr_log(GPR_ERROR,
|
||||
"Invalid compression algorithm: '%s' (previously disabled). "
|
||||
"Ignoring.",
|
||||
val);
|
||||
gpr_free(val);
|
||||
calld->message_compression_algorithm = GRPC_MESSAGE_COMPRESS_NONE;
|
||||
stream_compression_algorithm = GRPC_STREAM_COMPRESS_NONE;
|
||||
}
|
||||
*has_compression_algorithm = true;
|
||||
grpc_metadata_batch_remove(
|
||||
initial_metadata,
|
||||
initial_metadata->idx.named.grpc_internal_encoding_request);
|
||||
calld->message_compression_algorithm =
|
||||
grpc_compression_algorithm_to_message_compression_algorithm(
|
||||
compression_algorithm);
|
||||
stream_compression_algorithm =
|
||||
grpc_compression_algorithm_to_stream_compression_algorithm(
|
||||
compression_algorithm);
|
||||
} else {
|
||||
/* If no algorithm was found in the metadata and we aren't
|
||||
* exceptionally skipping compression, fall back to the channel
|
||||
* default */
|
||||
if (channeld->default_stream_compression_algorithm !=
|
||||
GRPC_STREAM_COMPRESS_NONE) {
|
||||
if (channeld->default_compression_algorithm != GRPC_COMPRESS_NONE) {
|
||||
calld->message_compression_algorithm =
|
||||
grpc_compression_algorithm_to_message_compression_algorithm(
|
||||
channeld->default_compression_algorithm);
|
||||
stream_compression_algorithm =
|
||||
channeld->default_stream_compression_algorithm;
|
||||
calld->compression_algorithm = GRPC_COMPRESS_NONE;
|
||||
} else {
|
||||
calld->compression_algorithm = channeld->default_compression_algorithm;
|
||||
grpc_compression_algorithm_to_stream_compression_algorithm(
|
||||
channeld->default_compression_algorithm);
|
||||
}
|
||||
*has_compression_algorithm = true;
|
||||
}
|
||||
|
|
@ -184,10 +163,12 @@ static grpc_error* process_send_initial_metadata(
|
|||
error = grpc_metadata_batch_add_tail(
|
||||
initial_metadata, &calld->stream_compression_algorithm_storage,
|
||||
grpc_stream_compression_encoding_mdelem(stream_compression_algorithm));
|
||||
} else if (calld->compression_algorithm != GRPC_COMPRESS_NONE) {
|
||||
} else if (calld->message_compression_algorithm !=
|
||||
GRPC_MESSAGE_COMPRESS_NONE) {
|
||||
error = grpc_metadata_batch_add_tail(
|
||||
initial_metadata, &calld->compression_algorithm_storage,
|
||||
grpc_compression_encoding_mdelem(calld->compression_algorithm));
|
||||
grpc_message_compression_encoding_mdelem(
|
||||
calld->message_compression_algorithm));
|
||||
}
|
||||
|
||||
if (error != GRPC_ERROR_NONE) return error;
|
||||
|
|
@ -196,11 +177,12 @@ static grpc_error* process_send_initial_metadata(
|
|||
error = grpc_metadata_batch_add_tail(
|
||||
initial_metadata, &calld->accept_encoding_storage,
|
||||
GRPC_MDELEM_ACCEPT_ENCODING_FOR_ALGORITHMS(
|
||||
channeld->supported_compression_algorithms));
|
||||
channeld->supported_message_compression_algorithms));
|
||||
|
||||
if (error != GRPC_ERROR_NONE) return error;
|
||||
|
||||
/* Do not overwrite accept-encoding header if it already presents. */
|
||||
/* Do not overwrite accept-encoding header if it already presents (e.g. added
|
||||
* by some proxy). */
|
||||
if (!initial_metadata->idx.named.accept_encoding) {
|
||||
error = grpc_metadata_batch_add_tail(
|
||||
initial_metadata, &calld->accept_stream_encoding_storage,
|
||||
|
|
@ -237,16 +219,16 @@ static void finish_send_message(grpc_call_element* elem) {
|
|||
grpc_slice_buffer_init(&tmp);
|
||||
uint32_t send_flags =
|
||||
calld->send_message_batch->payload->send_message.send_message->flags;
|
||||
bool did_compress =
|
||||
grpc_msg_compress(calld->compression_algorithm, &calld->slices, &tmp);
|
||||
bool did_compress = grpc_msg_compress(calld->message_compression_algorithm,
|
||||
&calld->slices, &tmp);
|
||||
if (did_compress) {
|
||||
if (grpc_compression_trace.enabled()) {
|
||||
const char* algo_name;
|
||||
const size_t before_size = calld->slices.length;
|
||||
const size_t after_size = tmp.length;
|
||||
const float savings_ratio = 1.0f - (float)after_size / (float)before_size;
|
||||
GPR_ASSERT(grpc_compression_algorithm_name(calld->compression_algorithm,
|
||||
&algo_name));
|
||||
GPR_ASSERT(grpc_message_compression_algorithm_name(
|
||||
calld->message_compression_algorithm, &algo_name));
|
||||
gpr_log(GPR_DEBUG,
|
||||
"Compressed[%s] %" PRIuPTR " bytes vs. %" PRIuPTR
|
||||
" bytes (%.2f%% savings)",
|
||||
|
|
@ -257,8 +239,8 @@ static void finish_send_message(grpc_call_element* elem) {
|
|||
} else {
|
||||
if (grpc_compression_trace.enabled()) {
|
||||
const char* algo_name;
|
||||
GPR_ASSERT(grpc_compression_algorithm_name(calld->compression_algorithm,
|
||||
&algo_name));
|
||||
GPR_ASSERT(grpc_message_compression_algorithm_name(
|
||||
calld->message_compression_algorithm, &algo_name));
|
||||
gpr_log(GPR_DEBUG,
|
||||
"Algorithm '%s' enabled but decided not to compress. Input size: "
|
||||
"%" PRIuPTR,
|
||||
|
|
@ -381,6 +363,7 @@ static void compress_start_transport_stream_op_batch(
|
|||
GRPC_ERROR_REF(calld->cancel_error), "failing send_message op");
|
||||
} else {
|
||||
grpc_byte_stream_shutdown(
|
||||
|
||||
calld->send_message_batch->payload->send_message.send_message,
|
||||
GRPC_ERROR_REF(calld->cancel_error));
|
||||
}
|
||||
|
|
@ -470,12 +453,11 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
|||
grpc_channel_element_args* args) {
|
||||
channel_data* channeld = (channel_data*)elem->channel_data;
|
||||
|
||||
/* Configuration for message compression */
|
||||
channeld->enabled_algorithms_bitset =
|
||||
grpc_channel_args_compression_algorithm_get_states(args->channel_args);
|
||||
|
||||
channeld->default_compression_algorithm =
|
||||
grpc_channel_args_get_compression_algorithm(args->channel_args);
|
||||
|
||||
/* Make sure the default isn't disabled. */
|
||||
if (!GPR_BITGET(channeld->enabled_algorithms_bitset,
|
||||
channeld->default_compression_algorithm)) {
|
||||
|
|
@ -485,31 +467,18 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
|||
channeld->default_compression_algorithm = GRPC_COMPRESS_NONE;
|
||||
}
|
||||
|
||||
channeld->supported_compression_algorithms =
|
||||
uint32_t supported_compression_algorithms =
|
||||
(((1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1) &
|
||||
channeld->enabled_algorithms_bitset) |
|
||||
1u;
|
||||
|
||||
/* Configuration for stream compression */
|
||||
channeld->enabled_stream_compression_algorithms_bitset =
|
||||
grpc_channel_args_stream_compression_algorithm_get_states(
|
||||
args->channel_args);
|
||||
|
||||
channeld->default_stream_compression_algorithm =
|
||||
grpc_channel_args_get_stream_compression_algorithm(args->channel_args);
|
||||
|
||||
if (!GPR_BITGET(channeld->enabled_stream_compression_algorithms_bitset,
|
||||
channeld->default_stream_compression_algorithm)) {
|
||||
gpr_log(GPR_DEBUG,
|
||||
"stream compression algorithm %d not enabled: switching to none",
|
||||
channeld->default_stream_compression_algorithm);
|
||||
channeld->default_stream_compression_algorithm = GRPC_STREAM_COMPRESS_NONE;
|
||||
}
|
||||
channeld->supported_message_compression_algorithms =
|
||||
grpc_compression_bitset_to_message_bitset(
|
||||
supported_compression_algorithms);
|
||||
|
||||
channeld->supported_stream_compression_algorithms =
|
||||
(((1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 1) &
|
||||
channeld->enabled_stream_compression_algorithms_bitset) |
|
||||
1u;
|
||||
grpc_compression_bitset_to_stream_bitset(
|
||||
supported_compression_algorithms);
|
||||
|
||||
GPR_ASSERT(!args->is_last);
|
||||
return GRPC_ERROR_NONE;
|
||||
|
|
|
|||
|
|
@ -222,21 +222,6 @@ grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
|
|||
return GRPC_COMPRESS_NONE;
|
||||
}
|
||||
|
||||
grpc_stream_compression_algorithm
|
||||
grpc_channel_args_get_stream_compression_algorithm(const grpc_channel_args* a) {
|
||||
size_t i;
|
||||
if (a == nullptr) return GRPC_STREAM_COMPRESS_NONE;
|
||||
for (i = 0; i < a->num_args; ++i) {
|
||||
if (a->args[i].type == GRPC_ARG_INTEGER &&
|
||||
!strcmp(GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM,
|
||||
a->args[i].key)) {
|
||||
return (grpc_stream_compression_algorithm)a->args[i].value.integer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return GRPC_STREAM_COMPRESS_NONE;
|
||||
}
|
||||
|
||||
grpc_channel_args* grpc_channel_args_set_compression_algorithm(
|
||||
grpc_channel_args* a, grpc_compression_algorithm algorithm) {
|
||||
GPR_ASSERT(algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT);
|
||||
|
|
@ -247,16 +232,6 @@ grpc_channel_args* grpc_channel_args_set_compression_algorithm(
|
|||
return grpc_channel_args_copy_and_add(a, &tmp, 1);
|
||||
}
|
||||
|
||||
grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
|
||||
grpc_channel_args* a, grpc_stream_compression_algorithm algorithm) {
|
||||
GPR_ASSERT(algorithm < GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT);
|
||||
grpc_arg tmp;
|
||||
tmp.type = GRPC_ARG_INTEGER;
|
||||
tmp.key = (char*)GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM;
|
||||
tmp.value.integer = algorithm;
|
||||
return grpc_channel_args_copy_and_add(a, &tmp, 1);
|
||||
}
|
||||
|
||||
/** Returns 1 if the argument for compression algorithm's enabled states bitset
|
||||
* was found in \a a, returning the arg's value in \a states. Otherwise, returns
|
||||
* 0. */
|
||||
|
|
@ -277,26 +252,6 @@ static int find_compression_algorithm_states_bitset(const grpc_channel_args* a,
|
|||
return 0; /* GPR_FALSE */
|
||||
}
|
||||
|
||||
/** Returns 1 if the argument for compression algorithm's enabled states bitset
|
||||
* was found in \a a, returning the arg's value in \a states. Otherwise, returns
|
||||
* 0. */
|
||||
static int find_stream_compression_algorithm_states_bitset(
|
||||
const grpc_channel_args* a, int** states_arg) {
|
||||
if (a != nullptr) {
|
||||
size_t i;
|
||||
for (i = 0; i < a->num_args; ++i) {
|
||||
if (a->args[i].type == GRPC_ARG_INTEGER &&
|
||||
!strcmp(GRPC_STREAM_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
|
||||
a->args[i].key)) {
|
||||
*states_arg = &a->args[i].value.integer;
|
||||
**states_arg |= 0x1; /* forcefully enable support for no compression */
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0; /* GPR_FALSE */
|
||||
}
|
||||
|
||||
grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
||||
grpc_channel_args** a, grpc_compression_algorithm algorithm, int state) {
|
||||
int* states_arg = nullptr;
|
||||
|
|
@ -337,48 +292,6 @@ grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
|||
return result;
|
||||
}
|
||||
|
||||
grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
|
||||
grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
|
||||
int state) {
|
||||
int* states_arg = nullptr;
|
||||
grpc_channel_args* result = *a;
|
||||
const int states_arg_found =
|
||||
find_stream_compression_algorithm_states_bitset(*a, &states_arg);
|
||||
|
||||
if (grpc_channel_args_get_stream_compression_algorithm(*a) == algorithm &&
|
||||
state == 0) {
|
||||
const char* algo_name = nullptr;
|
||||
GPR_ASSERT(grpc_stream_compression_algorithm_name(algorithm, &algo_name) !=
|
||||
0);
|
||||
gpr_log(GPR_ERROR,
|
||||
"Tried to disable default stream compression algorithm '%s'. The "
|
||||
"operation has been ignored.",
|
||||
algo_name);
|
||||
} else if (states_arg_found) {
|
||||
if (state != 0) {
|
||||
GPR_BITSET((unsigned*)states_arg, algorithm);
|
||||
} else if (algorithm != GRPC_STREAM_COMPRESS_NONE) {
|
||||
GPR_BITCLEAR((unsigned*)states_arg, algorithm);
|
||||
}
|
||||
} else {
|
||||
/* create a new arg */
|
||||
grpc_arg tmp;
|
||||
tmp.type = GRPC_ARG_INTEGER;
|
||||
tmp.key = (char*)GRPC_STREAM_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET;
|
||||
/* all enabled by default */
|
||||
tmp.value.integer = (1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 1;
|
||||
if (state != 0) {
|
||||
GPR_BITSET((unsigned*)&tmp.value.integer, algorithm);
|
||||
} else if (algorithm != GRPC_STREAM_COMPRESS_NONE) {
|
||||
GPR_BITCLEAR((unsigned*)&tmp.value.integer, algorithm);
|
||||
}
|
||||
result = grpc_channel_args_copy_and_add(*a, &tmp, 1);
|
||||
grpc_channel_args_destroy(*a);
|
||||
*a = result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
uint32_t grpc_channel_args_compression_algorithm_get_states(
|
||||
const grpc_channel_args* a) {
|
||||
int* states_arg;
|
||||
|
|
@ -389,17 +302,6 @@ uint32_t grpc_channel_args_compression_algorithm_get_states(
|
|||
}
|
||||
}
|
||||
|
||||
uint32_t grpc_channel_args_stream_compression_algorithm_get_states(
|
||||
const grpc_channel_args* a) {
|
||||
int* states_arg;
|
||||
if (find_stream_compression_algorithm_states_bitset(a, &states_arg)) {
|
||||
return (uint32_t)*states_arg;
|
||||
} else {
|
||||
return (1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) -
|
||||
1; /* All algs. enabled */
|
||||
}
|
||||
}
|
||||
|
||||
grpc_channel_args* grpc_channel_args_set_socket_mutator(
|
||||
grpc_channel_args* a, grpc_socket_mutator* mutator) {
|
||||
grpc_arg tmp = grpc_socket_mutator_to_arg(mutator);
|
||||
|
|
|
|||
|
|
@ -59,24 +59,12 @@ void grpc_channel_args_destroy(grpc_channel_args* a);
|
|||
grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
|
||||
const grpc_channel_args* a);
|
||||
|
||||
/** Returns the stream compression algorithm set in \a a. */
|
||||
grpc_stream_compression_algorithm
|
||||
grpc_channel_args_get_stream_compression_algorithm(const grpc_channel_args* a);
|
||||
|
||||
/** Returns a channel arg instance with compression enabled. If \a a is
|
||||
* non-NULL, its args are copied. N.B. GRPC_COMPRESS_NONE disables compression
|
||||
* for the channel. */
|
||||
grpc_channel_args* grpc_channel_args_set_compression_algorithm(
|
||||
grpc_channel_args* a, grpc_compression_algorithm algorithm);
|
||||
|
||||
/** Returns a channel arg instance with stream compression enabled. If \a a is
|
||||
* non-NULL, its args are copied. N.B. GRPC_STREAM_COMPRESS_NONE disables
|
||||
* stream compression for the channel. If a value other than
|
||||
* GRPC_STREAM_COMPRESS_NONE is set, it takes precedence over message-wise
|
||||
* compression algorithms. */
|
||||
grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
|
||||
grpc_channel_args* a, grpc_stream_compression_algorithm algorithm);
|
||||
|
||||
/** Sets the support for the given compression algorithm. By default, all
|
||||
* compression algorithms are enabled. It's an error to disable an algorithm set
|
||||
* by grpc_channel_args_set_compression_algorithm.
|
||||
|
|
@ -87,17 +75,6 @@ grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
|
|||
grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
||||
grpc_channel_args** a, grpc_compression_algorithm algorithm, int enabled);
|
||||
|
||||
/** Sets the support for the given stream compression algorithm. By default, all
|
||||
* stream compression algorithms are enabled. It's an error to disable an
|
||||
* algorithm set by grpc_channel_args_set_stream_compression_algorithm.
|
||||
*
|
||||
* Returns an instance with the updated algorithm states. The \a a pointer is
|
||||
* modified to point to the returned instance (which may be different from the
|
||||
* input value of \a a). */
|
||||
grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
|
||||
grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
|
||||
int enabled);
|
||||
|
||||
/** Returns the bitset representing the support state (true for enabled, false
|
||||
* for disabled) for compression algorithms.
|
||||
*
|
||||
|
|
@ -106,14 +83,6 @@ grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
|
|||
uint32_t grpc_channel_args_compression_algorithm_get_states(
|
||||
const grpc_channel_args* a);
|
||||
|
||||
/** Returns the bitset representing the support state (true for enabled, false
|
||||
* for disabled) for stream compression algorithms.
|
||||
*
|
||||
* The i-th bit of the returned bitset corresponds to the i-th entry in the
|
||||
* grpc_stream_compression_algorithm enum. */
|
||||
uint32_t grpc_channel_args_stream_compression_algorithm_get_states(
|
||||
const grpc_channel_args* a);
|
||||
|
||||
int grpc_channel_args_compare(const grpc_channel_args* a,
|
||||
const grpc_channel_args* b);
|
||||
|
||||
|
|
|
|||
|
|
@ -20,20 +20,27 @@
|
|||
#define GRPC_CORE_LIB_COMPRESSION_ALGORITHM_METADATA_H
|
||||
|
||||
#include <grpc/compression.h>
|
||||
#include "src/core/lib/compression/compression_internal.h"
|
||||
#include "src/core/lib/transport/metadata.h"
|
||||
|
||||
/** Return compression algorithm based metadata value */
|
||||
grpc_slice grpc_compression_algorithm_slice(
|
||||
grpc_compression_algorithm algorithm);
|
||||
|
||||
/** Return stream compression algorithm based metadata value */
|
||||
grpc_slice grpc_stream_compression_algorithm_slice(
|
||||
grpc_stream_compression_algorithm algorithm);
|
||||
/** Find compression algorithm based on passed in mdstr - returns
|
||||
* GRPC_COMPRESS_ALGORITHM_COUNT on failure */
|
||||
grpc_compression_algorithm grpc_compression_algorithm_from_slice(
|
||||
grpc_slice str);
|
||||
|
||||
/** Return compression algorithm based metadata element (grpc-encoding: xxx) */
|
||||
/** Return compression algorithm based metadata element */
|
||||
grpc_mdelem grpc_compression_encoding_mdelem(
|
||||
grpc_compression_algorithm algorithm);
|
||||
|
||||
/** Return message compression algorithm based metadata element (grpc-encoding:
|
||||
* xxx) */
|
||||
grpc_mdelem grpc_message_compression_encoding_mdelem(
|
||||
grpc_message_compression_algorithm algorithm);
|
||||
|
||||
/** Return stream compression algorithm based metadata element
|
||||
* (content-encoding: xxx) */
|
||||
grpc_mdelem grpc_stream_compression_encoding_mdelem(
|
||||
|
|
@ -41,8 +48,8 @@ grpc_mdelem grpc_stream_compression_encoding_mdelem(
|
|||
|
||||
/** Find compression algorithm based on passed in mdstr - returns
|
||||
* GRPC_COMPRESS_ALGORITHM_COUNT on failure */
|
||||
grpc_compression_algorithm grpc_compression_algorithm_from_slice(
|
||||
grpc_slice str);
|
||||
grpc_message_compression_algorithm
|
||||
grpc_message_compression_algorithm_from_slice(grpc_slice str);
|
||||
|
||||
/** Find stream compression algorithm based on passed in mdstr - returns
|
||||
* GRPC_STREAM_COMPRESS_ALGORITHM_COUNT on failure */
|
||||
|
|
|
|||
|
|
@ -23,40 +23,40 @@
|
|||
#include <grpc/support/useful.h>
|
||||
|
||||
#include "src/core/lib/compression/algorithm_metadata.h"
|
||||
#include "src/core/lib/compression/compression_internal.h"
|
||||
#include "src/core/lib/surface/api_trace.h"
|
||||
#include "src/core/lib/transport/static_metadata.h"
|
||||
|
||||
int grpc_compression_algorithm_is_message(
|
||||
grpc_compression_algorithm algorithm) {
|
||||
return (algorithm >= GRPC_COMPRESS_MESSAGE_DEFLATE &&
|
||||
algorithm <= GRPC_COMPRESS_MESSAGE_GZIP)
|
||||
? 1
|
||||
: 0;
|
||||
}
|
||||
|
||||
int grpc_compression_algorithm_is_stream(grpc_compression_algorithm algorithm) {
|
||||
return (algorithm == GRPC_COMPRESS_STREAM_GZIP) ? 1 : 0;
|
||||
}
|
||||
|
||||
int grpc_compression_algorithm_parse(grpc_slice name,
|
||||
grpc_compression_algorithm* algorithm) {
|
||||
/* we use strncmp not only because it's safer (even though in this case it
|
||||
* doesn't matter, given that we are comparing against string literals, but
|
||||
* because this way we needn't have "name" nil-terminated (useful for slice
|
||||
* data, for example) */
|
||||
if (grpc_slice_eq(name, GRPC_MDSTR_IDENTITY)) {
|
||||
*algorithm = GRPC_COMPRESS_NONE;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(name, GRPC_MDSTR_GZIP)) {
|
||||
*algorithm = GRPC_COMPRESS_GZIP;
|
||||
} else if (grpc_slice_eq(name, GRPC_MDSTR_MESSAGE_SLASH_DEFLATE)) {
|
||||
*algorithm = GRPC_COMPRESS_MESSAGE_DEFLATE;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(name, GRPC_MDSTR_DEFLATE)) {
|
||||
*algorithm = GRPC_COMPRESS_DEFLATE;
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int grpc_stream_compression_algorithm_parse(
|
||||
grpc_slice name, grpc_stream_compression_algorithm* algorithm) {
|
||||
if (grpc_slice_eq(name, GRPC_MDSTR_IDENTITY)) {
|
||||
*algorithm = GRPC_STREAM_COMPRESS_NONE;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(name, GRPC_MDSTR_GZIP)) {
|
||||
*algorithm = GRPC_STREAM_COMPRESS_GZIP;
|
||||
} else if (grpc_slice_eq(name, GRPC_MDSTR_MESSAGE_SLASH_GZIP)) {
|
||||
*algorithm = GRPC_COMPRESS_MESSAGE_GZIP;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(name, GRPC_MDSTR_STREAM_SLASH_GZIP)) {
|
||||
*algorithm = GRPC_COMPRESS_STREAM_GZIP;
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
|
||||
|
|
@ -67,11 +67,14 @@ int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
|
|||
case GRPC_COMPRESS_NONE:
|
||||
*name = "identity";
|
||||
return 1;
|
||||
case GRPC_COMPRESS_DEFLATE:
|
||||
*name = "deflate";
|
||||
case GRPC_COMPRESS_MESSAGE_DEFLATE:
|
||||
*name = "message/deflate";
|
||||
return 1;
|
||||
case GRPC_COMPRESS_GZIP:
|
||||
*name = "gzip";
|
||||
case GRPC_COMPRESS_MESSAGE_GZIP:
|
||||
*name = "message/gzip";
|
||||
return 1;
|
||||
case GRPC_COMPRESS_STREAM_GZIP:
|
||||
*name = "stream/gzip";
|
||||
return 1;
|
||||
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
||||
return 0;
|
||||
|
|
@ -79,101 +82,34 @@ int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int grpc_stream_compression_algorithm_name(
|
||||
grpc_stream_compression_algorithm algorithm, const char** name) {
|
||||
GRPC_API_TRACE(
|
||||
"grpc_stream_compression_algorithm_parse(algorithm=%d, name=%p)", 2,
|
||||
((int)algorithm, name));
|
||||
switch (algorithm) {
|
||||
case GRPC_STREAM_COMPRESS_NONE:
|
||||
*name = "identity";
|
||||
return 1;
|
||||
case GRPC_STREAM_COMPRESS_GZIP:
|
||||
*name = "gzip";
|
||||
return 1;
|
||||
case GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT:
|
||||
return 0;
|
||||
grpc_compression_algorithm grpc_compression_algorithm_for_level(
|
||||
grpc_compression_level level, uint32_t accepted_encodings) {
|
||||
grpc_compression_algorithm algo;
|
||||
if (level == GRPC_COMPRESS_LEVEL_NONE) {
|
||||
return GRPC_COMPRESS_NONE;
|
||||
} else if (level <= GRPC_COMPRESS_LEVEL_HIGH) {
|
||||
// TODO(mxyan): Design algorithm to select from all algorithms, including
|
||||
// stream compression algorithm
|
||||
if (!grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
||||
&algo,
|
||||
grpc_message_compression_algorithm_for_level(
|
||||
level,
|
||||
grpc_compression_bitset_to_message_bitset(accepted_encodings)),
|
||||
static_cast<grpc_stream_compression_algorithm>(0))) {
|
||||
gpr_log(GPR_ERROR, "Parse compression level error");
|
||||
return GRPC_COMPRESS_NONE;
|
||||
}
|
||||
return algo;
|
||||
} else {
|
||||
gpr_log(GPR_ERROR, "Unknown compression level: %d", level);
|
||||
return GRPC_COMPRESS_NONE;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
grpc_compression_algorithm grpc_compression_algorithm_from_slice(
|
||||
grpc_slice str) {
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_COMPRESS_NONE;
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_DEFLATE)) return GRPC_COMPRESS_DEFLATE;
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_COMPRESS_GZIP;
|
||||
return GRPC_COMPRESS_ALGORITHMS_COUNT;
|
||||
}
|
||||
|
||||
grpc_stream_compression_algorithm grpc_stream_compression_algorithm_from_slice(
|
||||
grpc_slice str) {
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_STREAM_COMPRESS_NONE;
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_STREAM_COMPRESS_GZIP;
|
||||
return GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT;
|
||||
}
|
||||
|
||||
grpc_slice grpc_compression_algorithm_slice(
|
||||
grpc_compression_algorithm algorithm) {
|
||||
switch (algorithm) {
|
||||
case GRPC_COMPRESS_NONE:
|
||||
return GRPC_MDSTR_IDENTITY;
|
||||
case GRPC_COMPRESS_DEFLATE:
|
||||
return GRPC_MDSTR_DEFLATE;
|
||||
case GRPC_COMPRESS_GZIP:
|
||||
return GRPC_MDSTR_GZIP;
|
||||
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
||||
return grpc_empty_slice();
|
||||
}
|
||||
return grpc_empty_slice();
|
||||
}
|
||||
|
||||
grpc_slice grpc_stream_compression_algorithm_slice(
|
||||
grpc_stream_compression_algorithm algorithm) {
|
||||
switch (algorithm) {
|
||||
case GRPC_STREAM_COMPRESS_NONE:
|
||||
return GRPC_MDSTR_IDENTITY;
|
||||
case GRPC_STREAM_COMPRESS_GZIP:
|
||||
return GRPC_MDSTR_GZIP;
|
||||
case GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT:
|
||||
return grpc_empty_slice();
|
||||
}
|
||||
return grpc_empty_slice();
|
||||
}
|
||||
|
||||
grpc_mdelem grpc_compression_encoding_mdelem(
|
||||
grpc_compression_algorithm algorithm) {
|
||||
switch (algorithm) {
|
||||
case GRPC_COMPRESS_NONE:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_IDENTITY;
|
||||
case GRPC_COMPRESS_DEFLATE:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_DEFLATE;
|
||||
case GRPC_COMPRESS_GZIP:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_GZIP;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return GRPC_MDNULL;
|
||||
}
|
||||
|
||||
grpc_mdelem grpc_stream_compression_encoding_mdelem(
|
||||
grpc_stream_compression_algorithm algorithm) {
|
||||
switch (algorithm) {
|
||||
case GRPC_STREAM_COMPRESS_NONE:
|
||||
return GRPC_MDELEM_CONTENT_ENCODING_IDENTITY;
|
||||
case GRPC_STREAM_COMPRESS_GZIP:
|
||||
return GRPC_MDELEM_CONTENT_ENCODING_GZIP;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return GRPC_MDNULL;
|
||||
}
|
||||
|
||||
void grpc_compression_options_init(grpc_compression_options* opts) {
|
||||
memset(opts, 0, sizeof(*opts));
|
||||
/* all enabled by default */
|
||||
opts->enabled_algorithms_bitset = (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1;
|
||||
opts->enabled_stream_compression_algorithms_bitset =
|
||||
(1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 1;
|
||||
}
|
||||
|
||||
void grpc_compression_options_enable_algorithm(
|
||||
|
|
@ -192,92 +128,48 @@ int grpc_compression_options_is_algorithm_enabled(
|
|||
return GPR_BITGET(opts->enabled_algorithms_bitset, algorithm);
|
||||
}
|
||||
|
||||
int grpc_compression_options_is_stream_compression_algorithm_enabled(
|
||||
const grpc_compression_options* opts,
|
||||
grpc_stream_compression_algorithm algorithm) {
|
||||
return GPR_BITGET(opts->enabled_stream_compression_algorithms_bitset,
|
||||
algorithm);
|
||||
grpc_slice grpc_compression_algorithm_slice(
|
||||
grpc_compression_algorithm algorithm) {
|
||||
switch (algorithm) {
|
||||
case GRPC_COMPRESS_NONE:
|
||||
return GRPC_MDSTR_IDENTITY;
|
||||
case GRPC_COMPRESS_MESSAGE_DEFLATE:
|
||||
return GRPC_MDSTR_MESSAGE_SLASH_DEFLATE;
|
||||
case GRPC_COMPRESS_MESSAGE_GZIP:
|
||||
return GRPC_MDSTR_MESSAGE_SLASH_GZIP;
|
||||
case GRPC_COMPRESS_STREAM_GZIP:
|
||||
return GRPC_MDSTR_STREAM_SLASH_GZIP;
|
||||
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
||||
return grpc_empty_slice();
|
||||
}
|
||||
return grpc_empty_slice();
|
||||
}
|
||||
|
||||
/* TODO(dgq): Add the ability to specify parameters to the individual
|
||||
* compression algorithms */
|
||||
grpc_compression_algorithm grpc_compression_algorithm_for_level(
|
||||
grpc_compression_level level, uint32_t accepted_encodings) {
|
||||
GRPC_API_TRACE("grpc_compression_algorithm_for_level(level=%d)", 1,
|
||||
((int)level));
|
||||
if (level > GRPC_COMPRESS_LEVEL_HIGH) {
|
||||
gpr_log(GPR_ERROR, "Unknown compression level %d.", (int)level);
|
||||
abort();
|
||||
}
|
||||
grpc_compression_algorithm grpc_compression_algorithm_from_slice(
|
||||
grpc_slice str) {
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_COMPRESS_NONE;
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_MESSAGE_SLASH_DEFLATE))
|
||||
return GRPC_COMPRESS_MESSAGE_DEFLATE;
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_MESSAGE_SLASH_GZIP))
|
||||
return GRPC_COMPRESS_MESSAGE_GZIP;
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_STREAM_SLASH_GZIP))
|
||||
return GRPC_COMPRESS_STREAM_GZIP;
|
||||
return GRPC_COMPRESS_ALGORITHMS_COUNT;
|
||||
}
|
||||
|
||||
const size_t num_supported =
|
||||
GPR_BITCOUNT(accepted_encodings) - 1; /* discard NONE */
|
||||
if (level == GRPC_COMPRESS_LEVEL_NONE || num_supported == 0) {
|
||||
return GRPC_COMPRESS_NONE;
|
||||
}
|
||||
|
||||
GPR_ASSERT(level > 0);
|
||||
|
||||
/* Establish a "ranking" or compression algorithms in increasing order of
|
||||
* compression.
|
||||
* This is simplistic and we will probably want to introduce other dimensions
|
||||
* in the future (cpu/memory cost, etc). */
|
||||
const grpc_compression_algorithm algos_ranking[] = {GRPC_COMPRESS_GZIP,
|
||||
GRPC_COMPRESS_DEFLATE};
|
||||
|
||||
/* intersect algos_ranking with the supported ones keeping the ranked order */
|
||||
grpc_compression_algorithm
|
||||
sorted_supported_algos[GRPC_COMPRESS_ALGORITHMS_COUNT];
|
||||
size_t algos_supported_idx = 0;
|
||||
for (size_t i = 0; i < GPR_ARRAY_SIZE(algos_ranking); i++) {
|
||||
const grpc_compression_algorithm alg = algos_ranking[i];
|
||||
for (size_t j = 0; j < num_supported; j++) {
|
||||
if (GPR_BITGET(accepted_encodings, alg) == 1) {
|
||||
/* if \a alg in supported */
|
||||
sorted_supported_algos[algos_supported_idx++] = alg;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (algos_supported_idx == num_supported) break;
|
||||
}
|
||||
|
||||
switch (level) {
|
||||
case GRPC_COMPRESS_LEVEL_NONE:
|
||||
abort(); /* should have been handled already */
|
||||
case GRPC_COMPRESS_LEVEL_LOW:
|
||||
return sorted_supported_algos[0];
|
||||
case GRPC_COMPRESS_LEVEL_MED:
|
||||
return sorted_supported_algos[num_supported / 2];
|
||||
case GRPC_COMPRESS_LEVEL_HIGH:
|
||||
return sorted_supported_algos[num_supported - 1];
|
||||
grpc_mdelem grpc_compression_encoding_mdelem(
|
||||
grpc_compression_algorithm algorithm) {
|
||||
switch (algorithm) {
|
||||
case GRPC_COMPRESS_NONE:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_IDENTITY;
|
||||
case GRPC_COMPRESS_MESSAGE_DEFLATE:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_DEFLATE;
|
||||
case GRPC_COMPRESS_MESSAGE_GZIP:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_GZIP;
|
||||
case GRPC_COMPRESS_STREAM_GZIP:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_GZIP;
|
||||
default:
|
||||
abort();
|
||||
};
|
||||
}
|
||||
|
||||
GRPCAPI grpc_stream_compression_algorithm
|
||||
grpc_stream_compression_algorithm_for_level(
|
||||
grpc_stream_compression_level level, uint32_t accepted_stream_encodings) {
|
||||
GRPC_API_TRACE("grpc_stream_compression_algorithm_for_level(level=%d)", 1,
|
||||
((int)level));
|
||||
if (level > GRPC_STREAM_COMPRESS_LEVEL_HIGH) {
|
||||
gpr_log(GPR_ERROR, "Unknown compression level %d.", (int)level);
|
||||
abort();
|
||||
}
|
||||
|
||||
switch (level) {
|
||||
case GRPC_STREAM_COMPRESS_LEVEL_NONE:
|
||||
return GRPC_STREAM_COMPRESS_NONE;
|
||||
case GRPC_STREAM_COMPRESS_LEVEL_LOW:
|
||||
case GRPC_STREAM_COMPRESS_LEVEL_MED:
|
||||
case GRPC_STREAM_COMPRESS_LEVEL_HIGH:
|
||||
if (GPR_BITGET(accepted_stream_encodings, GRPC_STREAM_COMPRESS_GZIP) ==
|
||||
1) {
|
||||
return GRPC_STREAM_COMPRESS_GZIP;
|
||||
} else {
|
||||
return GRPC_STREAM_COMPRESS_NONE;
|
||||
}
|
||||
default:
|
||||
abort();
|
||||
break;
|
||||
}
|
||||
return GRPC_MDNULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,273 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2015 gRPC authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <grpc/compression.h>
|
||||
#include <grpc/support/useful.h>
|
||||
|
||||
#include "src/core/lib/compression/algorithm_metadata.h"
|
||||
#include "src/core/lib/compression/compression_internal.h"
|
||||
#include "src/core/lib/surface/api_trace.h"
|
||||
#include "src/core/lib/transport/static_metadata.h"
|
||||
|
||||
/* Interfaces related to MD */
|
||||
|
||||
grpc_message_compression_algorithm
|
||||
grpc_message_compression_algorithm_from_slice(grpc_slice str) {
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY))
|
||||
return GRPC_MESSAGE_COMPRESS_NONE;
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_DEFLATE))
|
||||
return GRPC_MESSAGE_COMPRESS_DEFLATE;
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_MESSAGE_COMPRESS_GZIP;
|
||||
return GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT;
|
||||
}
|
||||
|
||||
grpc_stream_compression_algorithm grpc_stream_compression_algorithm_from_slice(
|
||||
grpc_slice str) {
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_STREAM_COMPRESS_NONE;
|
||||
if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_STREAM_COMPRESS_GZIP;
|
||||
return GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT;
|
||||
}
|
||||
|
||||
grpc_mdelem grpc_message_compression_encoding_mdelem(
|
||||
grpc_message_compression_algorithm algorithm) {
|
||||
switch (algorithm) {
|
||||
case GRPC_MESSAGE_COMPRESS_NONE:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_IDENTITY;
|
||||
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_DEFLATE;
|
||||
case GRPC_MESSAGE_COMPRESS_GZIP:
|
||||
return GRPC_MDELEM_GRPC_ENCODING_GZIP;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return GRPC_MDNULL;
|
||||
}
|
||||
|
||||
grpc_mdelem grpc_stream_compression_encoding_mdelem(
|
||||
grpc_stream_compression_algorithm algorithm) {
|
||||
switch (algorithm) {
|
||||
case GRPC_STREAM_COMPRESS_NONE:
|
||||
return GRPC_MDELEM_CONTENT_ENCODING_IDENTITY;
|
||||
case GRPC_STREAM_COMPRESS_GZIP:
|
||||
return GRPC_MDELEM_CONTENT_ENCODING_GZIP;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return GRPC_MDNULL;
|
||||
}
|
||||
|
||||
/* Interfaces performing transformation between compression algorithms and
|
||||
* levels. */
|
||||
grpc_message_compression_algorithm
|
||||
grpc_compression_algorithm_to_message_compression_algorithm(
|
||||
grpc_compression_algorithm algo) {
|
||||
switch (algo) {
|
||||
case GRPC_COMPRESS_MESSAGE_DEFLATE:
|
||||
return GRPC_MESSAGE_COMPRESS_DEFLATE;
|
||||
case GRPC_COMPRESS_MESSAGE_GZIP:
|
||||
return GRPC_MESSAGE_COMPRESS_GZIP;
|
||||
default:
|
||||
return GRPC_MESSAGE_COMPRESS_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
grpc_stream_compression_algorithm
|
||||
grpc_compression_algorithm_to_stream_compression_algorithm(
|
||||
grpc_compression_algorithm algo) {
|
||||
switch (algo) {
|
||||
case GRPC_COMPRESS_STREAM_GZIP:
|
||||
return GRPC_STREAM_COMPRESS_GZIP;
|
||||
default:
|
||||
return GRPC_STREAM_COMPRESS_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t grpc_compression_bitset_to_message_bitset(uint32_t bitset) {
|
||||
return bitset & ((1u << GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT) - 1);
|
||||
}
|
||||
|
||||
uint32_t grpc_compression_bitset_to_stream_bitset(uint32_t bitset) {
|
||||
uint32_t identity = (bitset & 1u);
|
||||
uint32_t other_bits =
|
||||
(bitset >> (GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT - 1)) &
|
||||
((1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 2);
|
||||
return identity | other_bits;
|
||||
}
|
||||
|
||||
uint32_t grpc_compression_bitset_from_message_stream_compression_bitset(
|
||||
uint32_t message_bitset, uint32_t stream_bitset) {
|
||||
uint32_t offset_stream_bitset =
|
||||
(stream_bitset & 1u) |
|
||||
((stream_bitset & (~1u)) << (GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT - 1));
|
||||
return message_bitset | offset_stream_bitset;
|
||||
}
|
||||
|
||||
int grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
||||
grpc_compression_algorithm* algorithm,
|
||||
grpc_message_compression_algorithm message_algorithm,
|
||||
grpc_stream_compression_algorithm stream_algorithm) {
|
||||
if (message_algorithm != GRPC_MESSAGE_COMPRESS_NONE &&
|
||||
stream_algorithm != GRPC_STREAM_COMPRESS_NONE) {
|
||||
*algorithm = GRPC_COMPRESS_NONE;
|
||||
return 0;
|
||||
}
|
||||
if (message_algorithm == GRPC_MESSAGE_COMPRESS_NONE) {
|
||||
switch (stream_algorithm) {
|
||||
case GRPC_STREAM_COMPRESS_NONE:
|
||||
*algorithm = GRPC_COMPRESS_NONE;
|
||||
return 1;
|
||||
case GRPC_STREAM_COMPRESS_GZIP:
|
||||
*algorithm = GRPC_COMPRESS_STREAM_GZIP;
|
||||
return 1;
|
||||
default:
|
||||
*algorithm = GRPC_COMPRESS_NONE;
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
switch (message_algorithm) {
|
||||
case GRPC_MESSAGE_COMPRESS_NONE:
|
||||
*algorithm = GRPC_COMPRESS_NONE;
|
||||
return 1;
|
||||
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
||||
*algorithm = GRPC_COMPRESS_MESSAGE_DEFLATE;
|
||||
return 1;
|
||||
case GRPC_MESSAGE_COMPRESS_GZIP:
|
||||
*algorithm = GRPC_COMPRESS_MESSAGE_GZIP;
|
||||
return 1;
|
||||
default:
|
||||
*algorithm = GRPC_COMPRESS_NONE;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Interfaces for message compression. */
|
||||
|
||||
int grpc_message_compression_algorithm_name(
|
||||
grpc_message_compression_algorithm algorithm, const char** name) {
|
||||
GRPC_API_TRACE(
|
||||
"grpc_message_compression_algorithm_parse(algorithm=%d, name=%p)", 2,
|
||||
((int)algorithm, name));
|
||||
switch (algorithm) {
|
||||
case GRPC_MESSAGE_COMPRESS_NONE:
|
||||
*name = "identity";
|
||||
return 1;
|
||||
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
||||
*name = "deflate";
|
||||
return 1;
|
||||
case GRPC_MESSAGE_COMPRESS_GZIP:
|
||||
*name = "gzip";
|
||||
return 1;
|
||||
case GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT:
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* TODO(dgq): Add the ability to specify parameters to the individual
|
||||
* compression algorithms */
|
||||
grpc_message_compression_algorithm grpc_message_compression_algorithm_for_level(
|
||||
grpc_compression_level level, uint32_t accepted_encodings) {
|
||||
GRPC_API_TRACE("grpc_message_compression_algorithm_for_level(level=%d)", 1,
|
||||
((int)level));
|
||||
if (level > GRPC_COMPRESS_LEVEL_HIGH) {
|
||||
gpr_log(GPR_ERROR, "Unknown message compression level %d.", (int)level);
|
||||
abort();
|
||||
}
|
||||
|
||||
const size_t num_supported =
|
||||
GPR_BITCOUNT(accepted_encodings) - 1; /* discard NONE */
|
||||
if (level == GRPC_COMPRESS_LEVEL_NONE || num_supported == 0) {
|
||||
return GRPC_MESSAGE_COMPRESS_NONE;
|
||||
}
|
||||
|
||||
GPR_ASSERT(level > 0);
|
||||
|
||||
/* Establish a "ranking" or compression algorithms in increasing order of
|
||||
* compression.
|
||||
* This is simplistic and we will probably want to introduce other dimensions
|
||||
* in the future (cpu/memory cost, etc). */
|
||||
const grpc_message_compression_algorithm algos_ranking[] = {
|
||||
GRPC_MESSAGE_COMPRESS_GZIP, GRPC_MESSAGE_COMPRESS_DEFLATE};
|
||||
|
||||
/* intersect algos_ranking with the supported ones keeping the ranked order */
|
||||
grpc_message_compression_algorithm
|
||||
sorted_supported_algos[GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT];
|
||||
size_t algos_supported_idx = 0;
|
||||
for (size_t i = 0; i < GPR_ARRAY_SIZE(algos_ranking); i++) {
|
||||
const grpc_message_compression_algorithm alg = algos_ranking[i];
|
||||
for (size_t j = 0; j < num_supported; j++) {
|
||||
if (GPR_BITGET(accepted_encodings, alg) == 1) {
|
||||
/* if \a alg in supported */
|
||||
sorted_supported_algos[algos_supported_idx++] = alg;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (algos_supported_idx == num_supported) break;
|
||||
}
|
||||
|
||||
switch (level) {
|
||||
case GRPC_COMPRESS_LEVEL_NONE:
|
||||
abort(); /* should have been handled already */
|
||||
case GRPC_COMPRESS_LEVEL_LOW:
|
||||
return sorted_supported_algos[0];
|
||||
case GRPC_COMPRESS_LEVEL_MED:
|
||||
return sorted_supported_algos[num_supported / 2];
|
||||
case GRPC_COMPRESS_LEVEL_HIGH:
|
||||
return sorted_supported_algos[num_supported - 1];
|
||||
default:
|
||||
abort();
|
||||
};
|
||||
}
|
||||
|
||||
int grpc_message_compression_algorithm_parse(
|
||||
grpc_slice value, grpc_message_compression_algorithm* algorithm) {
|
||||
if (grpc_slice_eq(value, GRPC_MDSTR_IDENTITY)) {
|
||||
*algorithm = GRPC_MESSAGE_COMPRESS_NONE;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(value, GRPC_MDSTR_DEFLATE)) {
|
||||
*algorithm = GRPC_MESSAGE_COMPRESS_DEFLATE;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(value, GRPC_MDSTR_GZIP)) {
|
||||
*algorithm = GRPC_MESSAGE_COMPRESS_GZIP;
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Interfaces for stream compression. */
|
||||
|
||||
int grpc_stream_compression_algorithm_parse(
|
||||
grpc_slice value, grpc_stream_compression_algorithm* algorithm) {
|
||||
if (grpc_slice_eq(value, GRPC_MDSTR_IDENTITY)) {
|
||||
*algorithm = GRPC_STREAM_COMPRESS_NONE;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(value, GRPC_MDSTR_GZIP)) {
|
||||
*algorithm = GRPC_STREAM_COMPRESS_GZIP;
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2017 gRPC authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef GRPC_CORE_LIB_COMPRESSION_COMPRESSION_INTERNAL_H
|
||||
#define GRPC_CORE_LIB_COMPRESSION_COMPRESSION_INTERNAL_H
|
||||
|
||||
#include <grpc/impl/codegen/compression_types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
GRPC_MESSAGE_COMPRESS_NONE = 0,
|
||||
GRPC_MESSAGE_COMPRESS_DEFLATE,
|
||||
GRPC_MESSAGE_COMPRESS_GZIP,
|
||||
/* TODO(ctiller): snappy */
|
||||
GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT
|
||||
} grpc_message_compression_algorithm;
|
||||
|
||||
/** Stream compresssion algorithms supported by gRPC */
|
||||
typedef enum {
|
||||
GRPC_STREAM_COMPRESS_NONE = 0,
|
||||
GRPC_STREAM_COMPRESS_GZIP,
|
||||
GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT
|
||||
} grpc_stream_compression_algorithm;
|
||||
|
||||
/* Interfaces performing transformation between compression algorithms and
|
||||
* levels. */
|
||||
|
||||
grpc_message_compression_algorithm
|
||||
grpc_compression_algorithm_to_message_compression_algorithm(
|
||||
grpc_compression_algorithm algo);
|
||||
|
||||
grpc_stream_compression_algorithm
|
||||
grpc_compression_algorithm_to_stream_compression_algorithm(
|
||||
grpc_compression_algorithm algo);
|
||||
|
||||
uint32_t grpc_compression_bitset_to_message_bitset(uint32_t bitset);
|
||||
|
||||
uint32_t grpc_compression_bitset_to_stream_bitset(uint32_t bitset);
|
||||
|
||||
uint32_t grpc_compression_bitset_from_message_stream_compression_bitset(
|
||||
uint32_t message_bitset, uint32_t stream_bitset);
|
||||
|
||||
int grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
||||
grpc_compression_algorithm* algorithm,
|
||||
grpc_message_compression_algorithm message_algorithm,
|
||||
grpc_stream_compression_algorithm stream_algorithm);
|
||||
|
||||
/* Interfaces for message compression. */
|
||||
|
||||
int grpc_message_compression_algorithm_name(
|
||||
grpc_message_compression_algorithm algorithm, const char** name);
|
||||
|
||||
grpc_message_compression_algorithm grpc_message_compression_algorithm_for_level(
|
||||
grpc_compression_level level, uint32_t accepted_encodings);
|
||||
|
||||
int grpc_message_compression_algorithm_parse(
|
||||
grpc_slice value, grpc_message_compression_algorithm* algorithm);
|
||||
|
||||
/* Interfaces for stream compression. */
|
||||
|
||||
int grpc_stream_compression_algorithm_parse(
|
||||
grpc_slice value, grpc_stream_compression_algorithm* algorithm);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* GRPC_CORE_LIB_COMPRESSION_COMPRESSION_INTERNAL_H */
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2017 gRPC authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <grpc/compression_ruby.h>
|
||||
#include <grpc/support/useful.h>
|
||||
|
||||
#include "src/core/lib/surface/api_trace.h"
|
||||
#include "src/core/lib/transport/static_metadata.h"
|
||||
|
||||
int grpc_compression_algorithm_parse_ruby(
|
||||
grpc_slice name, grpc_compression_algorithm* algorithm) {
|
||||
if (grpc_slice_eq(name, GRPC_MDSTR_IDENTITY)) {
|
||||
*algorithm = GRPC_COMPRESS_NONE;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(name, GRPC_MDSTR_DEFLATE)) {
|
||||
*algorithm = GRPC_COMPRESS_MESSAGE_DEFLATE;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(name, GRPC_MDSTR_GZIP)) {
|
||||
*algorithm = GRPC_COMPRESS_MESSAGE_GZIP;
|
||||
return 1;
|
||||
} else if (grpc_slice_eq(name, GRPC_MDSTR_STREAM_SLASH_GZIP)) {
|
||||
*algorithm = GRPC_COMPRESS_STREAM_GZIP;
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int grpc_compression_algorithm_name_ruby(grpc_compression_algorithm algorithm,
|
||||
const char** name) {
|
||||
GRPC_API_TRACE("grpc_compression_algorithm_parse(algorithm=%d, name=%p)", 2,
|
||||
((int)algorithm, name));
|
||||
switch (algorithm) {
|
||||
case GRPC_COMPRESS_NONE:
|
||||
*name = "identity";
|
||||
return 1;
|
||||
case GRPC_COMPRESS_MESSAGE_DEFLATE:
|
||||
*name = "deflate";
|
||||
return 1;
|
||||
case GRPC_COMPRESS_MESSAGE_GZIP:
|
||||
*name = "gzip";
|
||||
return 1;
|
||||
case GRPC_COMPRESS_STREAM_GZIP:
|
||||
*name = "stream/gzip";
|
||||
return 1;
|
||||
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -141,25 +141,25 @@ static int copy(grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int compress_inner(grpc_compression_algorithm algorithm,
|
||||
static int compress_inner(grpc_message_compression_algorithm algorithm,
|
||||
grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
||||
switch (algorithm) {
|
||||
case GRPC_COMPRESS_NONE:
|
||||
case GRPC_MESSAGE_COMPRESS_NONE:
|
||||
/* the fallback path always needs to be send uncompressed: we simply
|
||||
rely on that here */
|
||||
return 0;
|
||||
case GRPC_COMPRESS_DEFLATE:
|
||||
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
||||
return zlib_compress(input, output, 0);
|
||||
case GRPC_COMPRESS_GZIP:
|
||||
case GRPC_MESSAGE_COMPRESS_GZIP:
|
||||
return zlib_compress(input, output, 1);
|
||||
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
||||
case GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT:
|
||||
break;
|
||||
}
|
||||
gpr_log(GPR_ERROR, "invalid compression algorithm %d", algorithm);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int grpc_msg_compress(grpc_compression_algorithm algorithm,
|
||||
int grpc_msg_compress(grpc_message_compression_algorithm algorithm,
|
||||
grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
||||
if (!compress_inner(algorithm, input, output)) {
|
||||
copy(input, output);
|
||||
|
|
@ -168,16 +168,16 @@ int grpc_msg_compress(grpc_compression_algorithm algorithm,
|
|||
return 1;
|
||||
}
|
||||
|
||||
int grpc_msg_decompress(grpc_compression_algorithm algorithm,
|
||||
int grpc_msg_decompress(grpc_message_compression_algorithm algorithm,
|
||||
grpc_slice_buffer* input, grpc_slice_buffer* output) {
|
||||
switch (algorithm) {
|
||||
case GRPC_COMPRESS_NONE:
|
||||
case GRPC_MESSAGE_COMPRESS_NONE:
|
||||
return copy(input, output);
|
||||
case GRPC_COMPRESS_DEFLATE:
|
||||
case GRPC_MESSAGE_COMPRESS_DEFLATE:
|
||||
return zlib_decompress(input, output, 0);
|
||||
case GRPC_COMPRESS_GZIP:
|
||||
case GRPC_MESSAGE_COMPRESS_GZIP:
|
||||
return zlib_decompress(input, output, 1);
|
||||
case GRPC_COMPRESS_ALGORITHMS_COUNT:
|
||||
case GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT:
|
||||
break;
|
||||
}
|
||||
gpr_log(GPR_ERROR, "invalid compression algorithm %d", algorithm);
|
||||
|
|
|
|||
|
|
@ -19,19 +19,20 @@
|
|||
#ifndef GRPC_CORE_LIB_COMPRESSION_MESSAGE_COMPRESS_H
|
||||
#define GRPC_CORE_LIB_COMPRESSION_MESSAGE_COMPRESS_H
|
||||
|
||||
#include <grpc/compression.h>
|
||||
#include <grpc/slice_buffer.h>
|
||||
|
||||
#include "src/core/lib/compression/compression_internal.h"
|
||||
|
||||
/* compress 'input' to 'output' using 'algorithm'.
|
||||
On success, appends compressed slices to output and returns 1.
|
||||
On failure, appends uncompressed slices to output and returns 0. */
|
||||
int grpc_msg_compress(grpc_compression_algorithm algorithm,
|
||||
int grpc_msg_compress(grpc_message_compression_algorithm algorithm,
|
||||
grpc_slice_buffer* input, grpc_slice_buffer* output);
|
||||
|
||||
/* decompress 'input' to 'output' using 'algorithm'.
|
||||
On success, appends slices to output and returns 1.
|
||||
On failure, output is unchanged, and returns 0. */
|
||||
int grpc_msg_decompress(grpc_compression_algorithm algorithm,
|
||||
int grpc_msg_decompress(grpc_message_compression_algorithm algorithm,
|
||||
grpc_slice_buffer* input, grpc_slice_buffer* output);
|
||||
|
||||
#endif /* GRPC_CORE_LIB_COMPRESSION_MESSAGE_COMPRESS_H */
|
||||
|
|
|
|||
|
|
@ -40,24 +40,13 @@ namespace grpc_core {
|
|||
// ANY METHOD ADDED HERE MUST COMPLY WITH THE INTERFACE IN THE absl
|
||||
// IMPLEMENTATION!
|
||||
//
|
||||
// TODO(ctiller, nnoble, roth): Replace this with absl::InlinedVector
|
||||
// once we integrate absl into the gRPC build system in a usable way.
|
||||
// TODO(nnoble, roth): Replace this with absl::InlinedVector once we
|
||||
// integrate absl into the gRPC build system in a usable way.
|
||||
template <typename T, size_t N>
|
||||
class InlinedVector {
|
||||
public:
|
||||
InlinedVector() {}
|
||||
~InlinedVector() {
|
||||
for (size_t i = 0; i < size_ && i < N; ++i) {
|
||||
T& value = *reinterpret_cast<T*>(inline_ + i);
|
||||
value.~T();
|
||||
}
|
||||
if (size_ > N) { // Avoid subtracting two signed values.
|
||||
for (size_t i = 0; i < size_ - N; ++i) {
|
||||
dynamic_[i].~T();
|
||||
}
|
||||
}
|
||||
gpr_free(dynamic_);
|
||||
}
|
||||
InlinedVector() { init_data(); }
|
||||
~InlinedVector() { destroy_elements(); }
|
||||
|
||||
// For now, we do not support copying.
|
||||
InlinedVector(const InlinedVector&) = delete;
|
||||
|
|
@ -72,6 +61,15 @@ class InlinedVector {
|
|||
}
|
||||
}
|
||||
|
||||
const T& operator[](size_t offset) const {
|
||||
assert(offset < size_);
|
||||
if (offset < N) {
|
||||
return *reinterpret_cast<const T*>(inline_ + offset);
|
||||
} else {
|
||||
return dynamic_[offset - N];
|
||||
}
|
||||
}
|
||||
|
||||
template <typename... Args>
|
||||
void emplace_back(Args&&... args) {
|
||||
if (size_ < N) {
|
||||
|
|
@ -100,11 +98,35 @@ class InlinedVector {
|
|||
|
||||
size_t size() const { return size_; }
|
||||
|
||||
void clear() {
|
||||
destroy_elements();
|
||||
init_data();
|
||||
}
|
||||
|
||||
private:
|
||||
void init_data() {
|
||||
dynamic_ = nullptr;
|
||||
size_ = 0;
|
||||
dynamic_capacity_ = 0;
|
||||
}
|
||||
|
||||
void destroy_elements() {
|
||||
for (size_t i = 0; i < size_ && i < N; ++i) {
|
||||
T& value = *reinterpret_cast<T*>(inline_ + i);
|
||||
value.~T();
|
||||
}
|
||||
if (size_ > N) { // Avoid subtracting two signed values.
|
||||
for (size_t i = 0; i < size_ - N; ++i) {
|
||||
dynamic_[i].~T();
|
||||
}
|
||||
}
|
||||
gpr_free(dynamic_);
|
||||
}
|
||||
|
||||
typename std::aligned_storage<sizeof(T)>::type inline_[N];
|
||||
T* dynamic_ = nullptr;
|
||||
size_t size_ = 0;
|
||||
size_t dynamic_capacity_ = 0;
|
||||
T* dynamic_;
|
||||
size_t size_;
|
||||
size_t dynamic_capacity_;
|
||||
};
|
||||
|
||||
} // namespace grpc_core
|
||||
|
|
|
|||
|
|
@ -680,7 +680,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|||
pollset->begin_refs++;
|
||||
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, "PS:%p BEGIN_STARTS:%p", pollset, worker);
|
||||
gpr_log(GPR_DEBUG, "PS:%p BEGIN_STARTS:%p", pollset, worker);
|
||||
}
|
||||
|
||||
if (pollset->seen_inactive) {
|
||||
|
|
@ -699,7 +699,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|||
gpr_mu_lock(&neighborhood->mu);
|
||||
gpr_mu_lock(&pollset->mu);
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, "PS:%p BEGIN_REORG:%p kick_state=%s is_reassigning=%d",
|
||||
gpr_log(GPR_DEBUG, "PS:%p BEGIN_REORG:%p kick_state=%s is_reassigning=%d",
|
||||
pollset, worker, kick_state_string(worker->state),
|
||||
is_reassigning);
|
||||
}
|
||||
|
|
@ -751,7 +751,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|||
gpr_cv_init(&worker->cv);
|
||||
while (worker->state == UNKICKED && !pollset->shutting_down) {
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, "PS:%p BEGIN_WAIT:%p kick_state=%s shutdown=%d",
|
||||
gpr_log(GPR_DEBUG, "PS:%p BEGIN_WAIT:%p kick_state=%s shutdown=%d",
|
||||
pollset, worker, kick_state_string(worker->state),
|
||||
pollset->shutting_down);
|
||||
}
|
||||
|
|
@ -768,7 +768,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|||
}
|
||||
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR,
|
||||
gpr_log(GPR_DEBUG,
|
||||
"PS:%p BEGIN_DONE:%p kick_state=%s shutdown=%d "
|
||||
"kicked_without_poller: %d",
|
||||
pollset, worker, kick_state_string(worker->state),
|
||||
|
|
@ -1019,7 +1019,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
}
|
||||
tmp = gpr_strvec_flatten(&log, nullptr);
|
||||
gpr_strvec_destroy(&log);
|
||||
gpr_log(GPR_ERROR, "%s", tmp);
|
||||
gpr_log(GPR_DEBUG, "%s", tmp);
|
||||
gpr_free(tmp);
|
||||
}
|
||||
|
||||
|
|
@ -1030,7 +1030,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
GRPC_STATS_INC_POLLSET_KICKED_WITHOUT_POLLER();
|
||||
pollset->kicked_without_poller = true;
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. kicked_without_poller");
|
||||
gpr_log(GPR_DEBUG, " .. kicked_without_poller");
|
||||
}
|
||||
goto done;
|
||||
}
|
||||
|
|
@ -1038,14 +1038,14 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
if (root_worker->state == KICKED) {
|
||||
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. already kicked %p", root_worker);
|
||||
gpr_log(GPR_DEBUG, " .. already kicked %p", root_worker);
|
||||
}
|
||||
SET_KICK_STATE(root_worker, KICKED);
|
||||
goto done;
|
||||
} else if (next_worker->state == KICKED) {
|
||||
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. already kicked %p", next_worker);
|
||||
gpr_log(GPR_DEBUG, " .. already kicked %p", next_worker);
|
||||
}
|
||||
SET_KICK_STATE(next_worker, KICKED);
|
||||
goto done;
|
||||
|
|
@ -1056,7 +1056,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
&g_active_poller)) {
|
||||
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. kicked %p", root_worker);
|
||||
gpr_log(GPR_DEBUG, " .. kicked %p", root_worker);
|
||||
}
|
||||
SET_KICK_STATE(root_worker, KICKED);
|
||||
ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
|
||||
|
|
@ -1064,7 +1064,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
} else if (next_worker->state == UNKICKED) {
|
||||
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. kicked %p", next_worker);
|
||||
gpr_log(GPR_DEBUG, " .. kicked %p", next_worker);
|
||||
}
|
||||
GPR_ASSERT(next_worker->initialized_cv);
|
||||
SET_KICK_STATE(next_worker, KICKED);
|
||||
|
|
@ -1074,7 +1074,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
if (root_worker->state != DESIGNATED_POLLER) {
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(
|
||||
GPR_ERROR,
|
||||
GPR_DEBUG,
|
||||
" .. kicked root non-poller %p (initialized_cv=%d) (poller=%p)",
|
||||
root_worker, root_worker->initialized_cv, next_worker);
|
||||
}
|
||||
|
|
@ -1087,7 +1087,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
} else {
|
||||
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. non-root poller %p (root=%p)", next_worker,
|
||||
gpr_log(GPR_DEBUG, " .. non-root poller %p (root=%p)", next_worker,
|
||||
root_worker);
|
||||
}
|
||||
SET_KICK_STATE(next_worker, KICKED);
|
||||
|
|
@ -1103,7 +1103,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
} else {
|
||||
GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. kicked while waking up");
|
||||
gpr_log(GPR_DEBUG, " .. kicked while waking up");
|
||||
}
|
||||
goto done;
|
||||
}
|
||||
|
|
@ -1113,14 +1113,14 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
|
||||
if (specific_worker->state == KICKED) {
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. specific worker already kicked");
|
||||
gpr_log(GPR_DEBUG, " .. specific worker already kicked");
|
||||
}
|
||||
goto done;
|
||||
} else if (gpr_tls_get(&g_current_thread_worker) ==
|
||||
(intptr_t)specific_worker) {
|
||||
GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. mark %p kicked", specific_worker);
|
||||
gpr_log(GPR_DEBUG, " .. mark %p kicked", specific_worker);
|
||||
}
|
||||
SET_KICK_STATE(specific_worker, KICKED);
|
||||
goto done;
|
||||
|
|
@ -1128,7 +1128,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
(grpc_pollset_worker*)gpr_atm_no_barrier_load(&g_active_poller)) {
|
||||
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. kick active poller");
|
||||
gpr_log(GPR_DEBUG, " .. kick active poller");
|
||||
}
|
||||
SET_KICK_STATE(specific_worker, KICKED);
|
||||
ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
|
||||
|
|
@ -1136,7 +1136,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
} else if (specific_worker->initialized_cv) {
|
||||
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. kick waiting worker");
|
||||
gpr_log(GPR_DEBUG, " .. kick waiting worker");
|
||||
}
|
||||
SET_KICK_STATE(specific_worker, KICKED);
|
||||
gpr_cv_signal(&specific_worker->cv);
|
||||
|
|
@ -1144,7 +1144,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|||
} else {
|
||||
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
||||
if (grpc_polling_trace.enabled()) {
|
||||
gpr_log(GPR_ERROR, " .. kick non-waiting worker");
|
||||
gpr_log(GPR_DEBUG, " .. kick non-waiting worker");
|
||||
}
|
||||
SET_KICK_STATE(specific_worker, KICKED);
|
||||
goto done;
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@ struct grpc_pollset {
|
|||
pollable* active_pollable;
|
||||
bool kicked_without_poller;
|
||||
grpc_closure* shutdown_closure;
|
||||
bool already_shutdown;
|
||||
grpc_pollset_worker* root_worker;
|
||||
int containing_pollset_set_count;
|
||||
};
|
||||
|
|
@ -562,6 +563,7 @@ static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
|
|||
pollset->containing_pollset_set_count == 0) {
|
||||
GRPC_CLOSURE_SCHED(pollset->shutdown_closure, GRPC_ERROR_NONE);
|
||||
pollset->shutdown_closure = nullptr;
|
||||
pollset->already_shutdown = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -677,6 +679,11 @@ static grpc_error* pollset_kick_all(grpc_pollset* pollset) {
|
|||
static void pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
|
||||
gpr_mu_init(&pollset->mu);
|
||||
pollset->active_pollable = POLLABLE_REF(g_empty_pollable, "pollset");
|
||||
pollset->kicked_without_poller = false;
|
||||
pollset->shutdown_closure = nullptr;
|
||||
pollset->already_shutdown = false;
|
||||
pollset->root_worker = nullptr;
|
||||
pollset->containing_pollset_set_count = 0;
|
||||
*mu = &pollset->mu;
|
||||
}
|
||||
|
||||
|
|
@ -862,7 +869,8 @@ static worker_remove_result worker_remove(grpc_pollset_worker** root_worker,
|
|||
static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
||||
grpc_pollset_worker** worker_hdl,
|
||||
grpc_millis deadline) {
|
||||
bool do_poll = (pollset->shutdown_closure == nullptr);
|
||||
bool do_poll =
|
||||
(pollset->shutdown_closure == nullptr && !pollset->already_shutdown);
|
||||
if (worker_hdl != nullptr) *worker_hdl = worker;
|
||||
worker->initialized_cv = false;
|
||||
worker->kicked = false;
|
||||
|
|
|
|||
|
|
@ -56,24 +56,59 @@ static int slice_find_separator_offset(const grpc_slice str, const char* sep,
|
|||
return 0;
|
||||
}
|
||||
|
||||
void grpc_slice_split(grpc_slice str, const char* sep, grpc_slice_buffer* dst) {
|
||||
static void skip_leading_trailing_spaces(const uint8_t* str_buffer,
|
||||
size_t* begin, size_t* end) {
|
||||
while (*begin < *end && str_buffer[*begin] == ' ') {
|
||||
(*begin)++;
|
||||
}
|
||||
while (*begin < *end && str_buffer[*end - 1] == ' ') {
|
||||
(*end)--;
|
||||
}
|
||||
}
|
||||
|
||||
static void grpc_slice_split_inner(grpc_slice str, const char* sep,
|
||||
grpc_slice_buffer* dst, bool no_space) {
|
||||
const size_t sep_len = strlen(sep);
|
||||
size_t begin, end;
|
||||
const uint8_t* str_buffer = GRPC_SLICE_START_PTR(str);
|
||||
size_t sep_pos;
|
||||
|
||||
GPR_ASSERT(sep_len > 0);
|
||||
|
||||
if (slice_find_separator_offset(str, sep, 0, &begin, &end) != 0) {
|
||||
do {
|
||||
sep_pos = end;
|
||||
if (no_space) {
|
||||
skip_leading_trailing_spaces(str_buffer, &begin, &end);
|
||||
}
|
||||
grpc_slice_buffer_add_indexed(dst, grpc_slice_sub(str, begin, end));
|
||||
} while (slice_find_separator_offset(str, sep, end + sep_len, &begin,
|
||||
} while (slice_find_separator_offset(str, sep, sep_pos + sep_len, &begin,
|
||||
&end) != 0);
|
||||
grpc_slice_buffer_add_indexed(
|
||||
dst, grpc_slice_sub(str, end + sep_len, GRPC_SLICE_LENGTH(str)));
|
||||
begin = sep_pos + sep_len;
|
||||
end = GRPC_SLICE_LENGTH(str);
|
||||
if (no_space) {
|
||||
skip_leading_trailing_spaces(str_buffer, &begin, &end);
|
||||
}
|
||||
grpc_slice_buffer_add_indexed(dst, grpc_slice_sub(str, begin, end));
|
||||
} else { /* no sep found, add whole input */
|
||||
grpc_slice_buffer_add_indexed(dst, grpc_slice_ref_internal(str));
|
||||
begin = 0;
|
||||
end = GRPC_SLICE_LENGTH(str);
|
||||
if (no_space) {
|
||||
skip_leading_trailing_spaces(str_buffer, &begin, &end);
|
||||
}
|
||||
grpc_slice_buffer_add_indexed(dst, grpc_slice_sub(str, begin, end));
|
||||
}
|
||||
}
|
||||
|
||||
void grpc_slice_split(grpc_slice str, const char* sep, grpc_slice_buffer* dst) {
|
||||
grpc_slice_split_inner(str, sep, dst, false);
|
||||
}
|
||||
|
||||
void grpc_slice_split_without_space(grpc_slice str, const char* sep,
|
||||
grpc_slice_buffer* dst) {
|
||||
grpc_slice_split_inner(str, sep, dst, true);
|
||||
}
|
||||
|
||||
bool grpc_parse_slice_to_uint32(grpc_slice str, uint32_t* result) {
|
||||
return gpr_parse_bytes_to_uint32((const char*)GRPC_SLICE_START_PTR(str),
|
||||
GRPC_SLICE_LENGTH(str), result) != 0;
|
||||
|
|
|
|||
|
|
@ -35,6 +35,12 @@ char* grpc_dump_slice(grpc_slice slice, uint32_t flags);
|
|||
* should be a properly initialized instance. */
|
||||
void grpc_slice_split(grpc_slice str, const char* sep, grpc_slice_buffer* dst);
|
||||
|
||||
/** Split \a str by the separator \a sep and remove the leading and trailing
|
||||
* spaces of each resulting token. Results are stored in \a dst, which should be
|
||||
* a properly initialized instance. */
|
||||
void grpc_slice_split_without_space(grpc_slice str, const char* sep,
|
||||
grpc_slice_buffer* dst);
|
||||
|
||||
bool grpc_parse_slice_to_uint32(grpc_slice str, uint32_t* result);
|
||||
|
||||
#endif /* GRPC_CORE_LIB_SLICE_SLICE_STRING_HELPERS_H */
|
||||
|
|
|
|||
|
|
@ -49,9 +49,12 @@ int grpc_byte_buffer_reader_init(grpc_byte_buffer_reader* reader,
|
|||
case GRPC_BB_RAW:
|
||||
grpc_slice_buffer_init(&decompressed_slices_buffer);
|
||||
if (is_compressed(reader->buffer_in)) {
|
||||
if (grpc_msg_decompress(reader->buffer_in->data.raw.compression,
|
||||
&reader->buffer_in->data.raw.slice_buffer,
|
||||
&decompressed_slices_buffer) == 0) {
|
||||
if (grpc_msg_decompress(
|
||||
|
||||
grpc_compression_algorithm_to_message_compression_algorithm(
|
||||
reader->buffer_in->data.raw.compression),
|
||||
&reader->buffer_in->data.raw.slice_buffer,
|
||||
&decompressed_slices_buffer) == 0) {
|
||||
gpr_log(GPR_ERROR,
|
||||
"Unexpected error decompressing data for algorithm with enum "
|
||||
"value '%d'.",
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ struct grpc_call {
|
|||
grpc_call_final_info final_info;
|
||||
|
||||
/* Compression algorithm for *incoming* data */
|
||||
grpc_compression_algorithm incoming_compression_algorithm;
|
||||
grpc_message_compression_algorithm incoming_message_compression_algorithm;
|
||||
/* Stream compression algorithm for *incoming* data */
|
||||
grpc_stream_compression_algorithm incoming_stream_compression_algorithm;
|
||||
/* Supported encodings (compression algorithms), a bitset */
|
||||
|
|
@ -340,7 +340,7 @@ grpc_error* grpc_call_create(const grpc_call_create_args* args,
|
|||
call->cq = args->cq;
|
||||
call->start_time = gpr_now(GPR_CLOCK_MONOTONIC);
|
||||
/* Always support no compression */
|
||||
GPR_BITSET(&call->encodings_accepted_by_peer, GRPC_COMPRESS_NONE);
|
||||
GPR_BITSET(&call->encodings_accepted_by_peer, GRPC_MESSAGE_COMPRESS_NONE);
|
||||
call->is_client = args->server_transport_data == nullptr;
|
||||
if (call->is_client) {
|
||||
GRPC_STATS_INC_CLIENT_CALLS_CREATED();
|
||||
|
|
@ -449,9 +449,9 @@ grpc_error* grpc_call_create(const grpc_call_create_args* args,
|
|||
cancel_with_error(call, STATUS_FROM_API_OVERRIDE, GRPC_ERROR_CANCELLED);
|
||||
}
|
||||
if (args->cq != nullptr) {
|
||||
GPR_ASSERT(
|
||||
args->pollset_set_alternative == nullptr &&
|
||||
"Only one of 'cq' and 'pollset_set_alternative' should be non-NULL.");
|
||||
GPR_ASSERT(args->pollset_set_alternative == nullptr &&
|
||||
"Only one of 'cq' and 'pollset_set_alternative' should be "
|
||||
"non-nullptr.");
|
||||
GRPC_CQ_INTERNAL_REF(args->cq, "bind");
|
||||
call->pollent =
|
||||
grpc_polling_entity_create_from_pollset(grpc_cq_pollset(args->cq));
|
||||
|
|
@ -801,10 +801,10 @@ static void set_status_from_error(grpc_call* call, status_source source,
|
|||
* COMPRESSION
|
||||
*/
|
||||
|
||||
static void set_incoming_compression_algorithm(
|
||||
grpc_call* call, grpc_compression_algorithm algo) {
|
||||
GPR_ASSERT(algo < GRPC_COMPRESS_ALGORITHMS_COUNT);
|
||||
call->incoming_compression_algorithm = algo;
|
||||
static void set_incoming_message_compression_algorithm(
|
||||
grpc_call* call, grpc_message_compression_algorithm algo) {
|
||||
GPR_ASSERT(algo < GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT);
|
||||
call->incoming_message_compression_algorithm = algo;
|
||||
}
|
||||
|
||||
static void set_incoming_stream_compression_algorithm(
|
||||
|
|
@ -815,8 +815,10 @@ static void set_incoming_stream_compression_algorithm(
|
|||
|
||||
grpc_compression_algorithm grpc_call_test_only_get_compression_algorithm(
|
||||
grpc_call* call) {
|
||||
grpc_compression_algorithm algorithm;
|
||||
algorithm = call->incoming_compression_algorithm;
|
||||
grpc_compression_algorithm algorithm = GRPC_COMPRESS_NONE;
|
||||
grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
||||
&algorithm, call->incoming_message_compression_algorithm,
|
||||
call->incoming_stream_compression_algorithm);
|
||||
return algorithm;
|
||||
}
|
||||
|
||||
|
|
@ -826,13 +828,6 @@ static grpc_compression_algorithm compression_algorithm_for_level_locked(
|
|||
call->encodings_accepted_by_peer);
|
||||
}
|
||||
|
||||
static grpc_stream_compression_algorithm
|
||||
stream_compression_algorithm_for_level_locked(
|
||||
grpc_call* call, grpc_stream_compression_level level) {
|
||||
return grpc_stream_compression_algorithm_for_level(
|
||||
level, call->stream_encodings_accepted_by_peer);
|
||||
}
|
||||
|
||||
uint32_t grpc_call_test_only_get_message_flags(grpc_call* call) {
|
||||
uint32_t flags;
|
||||
flags = call->test_only_last_message_flags;
|
||||
|
|
@ -841,9 +836,11 @@ uint32_t grpc_call_test_only_get_message_flags(grpc_call* call) {
|
|||
|
||||
static void destroy_encodings_accepted_by_peer(void* p) { return; }
|
||||
|
||||
static void set_encodings_accepted_by_peer(grpc_call* call, grpc_mdelem mdel) {
|
||||
static void set_encodings_accepted_by_peer(grpc_call* call, grpc_mdelem mdel,
|
||||
uint32_t* encodings_accepted_by_peer,
|
||||
bool stream_encoding) {
|
||||
size_t i;
|
||||
grpc_compression_algorithm algorithm;
|
||||
uint32_t algorithm;
|
||||
grpc_slice_buffer accept_encoding_parts;
|
||||
grpc_slice accept_encoding_slice;
|
||||
void* accepted_user_data;
|
||||
|
|
@ -851,24 +848,33 @@ static void set_encodings_accepted_by_peer(grpc_call* call, grpc_mdelem mdel) {
|
|||
accepted_user_data =
|
||||
grpc_mdelem_get_user_data(mdel, destroy_encodings_accepted_by_peer);
|
||||
if (accepted_user_data != nullptr) {
|
||||
call->encodings_accepted_by_peer =
|
||||
*encodings_accepted_by_peer =
|
||||
(uint32_t)(((uintptr_t)accepted_user_data) - 1);
|
||||
return;
|
||||
}
|
||||
|
||||
*encodings_accepted_by_peer = 0;
|
||||
|
||||
accept_encoding_slice = GRPC_MDVALUE(mdel);
|
||||
grpc_slice_buffer_init(&accept_encoding_parts);
|
||||
grpc_slice_split(accept_encoding_slice, ",", &accept_encoding_parts);
|
||||
grpc_slice_split_without_space(accept_encoding_slice, ",",
|
||||
&accept_encoding_parts);
|
||||
|
||||
/* No need to zero call->encodings_accepted_by_peer: grpc_call_create already
|
||||
* zeroes the whole grpc_call */
|
||||
/* Always support no compression */
|
||||
GPR_BITSET(&call->encodings_accepted_by_peer, GRPC_COMPRESS_NONE);
|
||||
GPR_BITSET(encodings_accepted_by_peer, GRPC_COMPRESS_NONE);
|
||||
for (i = 0; i < accept_encoding_parts.count; i++) {
|
||||
int r;
|
||||
grpc_slice accept_encoding_entry_slice = accept_encoding_parts.slices[i];
|
||||
if (grpc_compression_algorithm_parse(accept_encoding_entry_slice,
|
||||
&algorithm)) {
|
||||
GPR_BITSET(&call->encodings_accepted_by_peer, algorithm);
|
||||
if (!stream_encoding) {
|
||||
r = grpc_message_compression_algorithm_parse(
|
||||
accept_encoding_entry_slice,
|
||||
(grpc_message_compression_algorithm*)&algorithm);
|
||||
} else {
|
||||
r = grpc_stream_compression_algorithm_parse(
|
||||
accept_encoding_entry_slice,
|
||||
(grpc_stream_compression_algorithm*)&algorithm);
|
||||
}
|
||||
if (r) {
|
||||
GPR_BITSET(encodings_accepted_by_peer, algorithm);
|
||||
} else {
|
||||
char* accept_encoding_entry_str =
|
||||
grpc_slice_to_c_string(accept_encoding_entry_slice);
|
||||
|
|
@ -883,52 +889,7 @@ static void set_encodings_accepted_by_peer(grpc_call* call, grpc_mdelem mdel) {
|
|||
|
||||
grpc_mdelem_set_user_data(
|
||||
mdel, destroy_encodings_accepted_by_peer,
|
||||
(void*)(((uintptr_t)call->encodings_accepted_by_peer) + 1));
|
||||
}
|
||||
|
||||
static void set_stream_encodings_accepted_by_peer(grpc_call* call,
|
||||
grpc_mdelem mdel) {
|
||||
size_t i;
|
||||
grpc_stream_compression_algorithm algorithm;
|
||||
grpc_slice_buffer accept_encoding_parts;
|
||||
grpc_slice accept_encoding_slice;
|
||||
void* accepted_user_data;
|
||||
|
||||
accepted_user_data =
|
||||
grpc_mdelem_get_user_data(mdel, destroy_encodings_accepted_by_peer);
|
||||
if (accepted_user_data != nullptr) {
|
||||
call->stream_encodings_accepted_by_peer =
|
||||
(uint32_t)(((uintptr_t)accepted_user_data) - 1);
|
||||
return;
|
||||
}
|
||||
|
||||
accept_encoding_slice = GRPC_MDVALUE(mdel);
|
||||
grpc_slice_buffer_init(&accept_encoding_parts);
|
||||
grpc_slice_split(accept_encoding_slice, ",", &accept_encoding_parts);
|
||||
|
||||
/* Always support no compression */
|
||||
GPR_BITSET(&call->stream_encodings_accepted_by_peer,
|
||||
GRPC_STREAM_COMPRESS_NONE);
|
||||
for (i = 0; i < accept_encoding_parts.count; i++) {
|
||||
grpc_slice accept_encoding_entry_slice = accept_encoding_parts.slices[i];
|
||||
if (grpc_stream_compression_algorithm_parse(accept_encoding_entry_slice,
|
||||
&algorithm)) {
|
||||
GPR_BITSET(&call->stream_encodings_accepted_by_peer, algorithm);
|
||||
} else {
|
||||
char* accept_encoding_entry_str =
|
||||
grpc_slice_to_c_string(accept_encoding_entry_slice);
|
||||
gpr_log(GPR_ERROR,
|
||||
"Invalid entry in accept encoding metadata: '%s'. Ignoring.",
|
||||
accept_encoding_entry_str);
|
||||
gpr_free(accept_encoding_entry_str);
|
||||
}
|
||||
}
|
||||
|
||||
grpc_slice_buffer_destroy_internal(&accept_encoding_parts);
|
||||
|
||||
grpc_mdelem_set_user_data(
|
||||
mdel, destroy_encodings_accepted_by_peer,
|
||||
(void*)(((uintptr_t)call->stream_encodings_accepted_by_peer) + 1));
|
||||
(void*)(((uintptr_t)(*encodings_accepted_by_peer)) + 1));
|
||||
}
|
||||
|
||||
uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call* call) {
|
||||
|
|
@ -937,13 +898,6 @@ uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call* call) {
|
|||
return encodings_accepted_by_peer;
|
||||
}
|
||||
|
||||
uint32_t grpc_call_test_only_get_stream_encodings_accepted_by_peer(
|
||||
grpc_call* call) {
|
||||
uint32_t stream_encodings_accepted_by_peer;
|
||||
stream_encodings_accepted_by_peer = call->stream_encodings_accepted_by_peer;
|
||||
return stream_encodings_accepted_by_peer;
|
||||
}
|
||||
|
||||
grpc_stream_compression_algorithm
|
||||
grpc_call_test_only_get_incoming_stream_encodings(grpc_call* call) {
|
||||
return call->incoming_stream_compression_algorithm;
|
||||
|
|
@ -1047,17 +1001,18 @@ static uint32_t decode_status(grpc_mdelem md) {
|
|||
return status;
|
||||
}
|
||||
|
||||
static grpc_compression_algorithm decode_compression(grpc_mdelem md) {
|
||||
grpc_compression_algorithm algorithm =
|
||||
grpc_compression_algorithm_from_slice(GRPC_MDVALUE(md));
|
||||
if (algorithm == GRPC_COMPRESS_ALGORITHMS_COUNT) {
|
||||
static grpc_message_compression_algorithm decode_message_compression(
|
||||
grpc_mdelem md) {
|
||||
grpc_message_compression_algorithm algorithm =
|
||||
grpc_message_compression_algorithm_from_slice(GRPC_MDVALUE(md));
|
||||
if (algorithm == GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT) {
|
||||
char* md_c_str = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
||||
gpr_log(GPR_ERROR,
|
||||
"Invalid incoming compression algorithm: '%s'. Interpreting "
|
||||
"incoming data as uncompressed.",
|
||||
"Invalid incoming message compression algorithm: '%s'. "
|
||||
"Interpreting incoming data as uncompressed.",
|
||||
md_c_str);
|
||||
gpr_free(md_c_str);
|
||||
return GRPC_COMPRESS_NONE;
|
||||
return GRPC_MESSAGE_COMPRESS_NONE;
|
||||
}
|
||||
return algorithm;
|
||||
}
|
||||
|
|
@ -1102,37 +1057,39 @@ static void publish_app_metadata(grpc_call* call, grpc_metadata_batch* b,
|
|||
|
||||
static void recv_initial_filter(grpc_call* call, grpc_metadata_batch* b) {
|
||||
if (b->idx.named.content_encoding != nullptr) {
|
||||
if (b->idx.named.grpc_encoding != nullptr) {
|
||||
gpr_log(GPR_ERROR,
|
||||
"Received both content-encoding and grpc-encoding header. "
|
||||
"Ignoring grpc-encoding.");
|
||||
grpc_metadata_batch_remove(b, b->idx.named.grpc_encoding);
|
||||
}
|
||||
GPR_TIMER_BEGIN("incoming_stream_compression_algorithm", 0);
|
||||
set_incoming_stream_compression_algorithm(
|
||||
call, decode_stream_compression(b->idx.named.content_encoding->md));
|
||||
GPR_TIMER_END("incoming_stream_compression_algorithm", 0);
|
||||
grpc_metadata_batch_remove(b, b->idx.named.content_encoding);
|
||||
} else if (b->idx.named.grpc_encoding != nullptr) {
|
||||
GPR_TIMER_BEGIN("incoming_compression_algorithm", 0);
|
||||
set_incoming_compression_algorithm(
|
||||
call, decode_compression(b->idx.named.grpc_encoding->md));
|
||||
GPR_TIMER_END("incoming_compression_algorithm", 0);
|
||||
}
|
||||
if (b->idx.named.grpc_encoding != nullptr) {
|
||||
GPR_TIMER_BEGIN("incoming_message_compression_algorithm", 0);
|
||||
set_incoming_message_compression_algorithm(
|
||||
call, decode_message_compression(b->idx.named.grpc_encoding->md));
|
||||
GPR_TIMER_END("incoming_message_compression_algorithm", 0);
|
||||
grpc_metadata_batch_remove(b, b->idx.named.grpc_encoding);
|
||||
}
|
||||
uint32_t message_encodings_accepted_by_peer = 1u;
|
||||
uint32_t stream_encodings_accepted_by_peer = 1u;
|
||||
if (b->idx.named.grpc_accept_encoding != nullptr) {
|
||||
GPR_TIMER_BEGIN("encodings_accepted_by_peer", 0);
|
||||
set_encodings_accepted_by_peer(call, b->idx.named.grpc_accept_encoding->md);
|
||||
set_encodings_accepted_by_peer(call, b->idx.named.grpc_accept_encoding->md,
|
||||
&message_encodings_accepted_by_peer, false);
|
||||
grpc_metadata_batch_remove(b, b->idx.named.grpc_accept_encoding);
|
||||
GPR_TIMER_END("encodings_accepted_by_peer", 0);
|
||||
}
|
||||
if (b->idx.named.accept_encoding != nullptr) {
|
||||
GPR_TIMER_BEGIN("stream_encodings_accepted_by_peer", 0);
|
||||
set_stream_encodings_accepted_by_peer(call,
|
||||
b->idx.named.accept_encoding->md);
|
||||
set_encodings_accepted_by_peer(call, b->idx.named.accept_encoding->md,
|
||||
&stream_encodings_accepted_by_peer, true);
|
||||
grpc_metadata_batch_remove(b, b->idx.named.accept_encoding);
|
||||
GPR_TIMER_END("stream_encodings_accepted_by_peer", 0);
|
||||
}
|
||||
call->encodings_accepted_by_peer =
|
||||
grpc_compression_bitset_from_message_stream_compression_bitset(
|
||||
message_encodings_accepted_by_peer,
|
||||
stream_encodings_accepted_by_peer);
|
||||
publish_app_metadata(call, b, false);
|
||||
}
|
||||
|
||||
|
|
@ -1270,6 +1227,7 @@ static void post_batch_completion(batch_control* bctl) {
|
|||
|
||||
if (bctl->op.send_initial_metadata) {
|
||||
grpc_metadata_batch_destroy(
|
||||
|
||||
&call->metadata_batch[0 /* is_receiving */][0 /* is_trailing */]);
|
||||
}
|
||||
if (bctl->op.send_message) {
|
||||
|
|
@ -1277,6 +1235,7 @@ static void post_batch_completion(batch_control* bctl) {
|
|||
}
|
||||
if (bctl->op.send_trailing_metadata) {
|
||||
grpc_metadata_batch_destroy(
|
||||
|
||||
&call->metadata_batch[0 /* is_receiving */][1 /* is_trailing */]);
|
||||
}
|
||||
if (bctl->op.recv_trailing_metadata) {
|
||||
|
|
@ -1425,9 +1384,15 @@ static void process_data_after_md(batch_control* bctl) {
|
|||
} else {
|
||||
call->test_only_last_message_flags = call->receiving_stream->flags;
|
||||
if ((call->receiving_stream->flags & GRPC_WRITE_INTERNAL_COMPRESS) &&
|
||||
(call->incoming_compression_algorithm > GRPC_COMPRESS_NONE)) {
|
||||
*call->receiving_buffer = grpc_raw_compressed_byte_buffer_create(
|
||||
nullptr, 0, call->incoming_compression_algorithm);
|
||||
(call->incoming_message_compression_algorithm >
|
||||
GRPC_MESSAGE_COMPRESS_NONE)) {
|
||||
grpc_compression_algorithm algo;
|
||||
GPR_ASSERT(
|
||||
grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
||||
&algo, call->incoming_message_compression_algorithm,
|
||||
(grpc_stream_compression_algorithm)0));
|
||||
*call->receiving_buffer =
|
||||
grpc_raw_compressed_byte_buffer_create(nullptr, 0, algo);
|
||||
} else {
|
||||
*call->receiving_buffer = grpc_raw_byte_buffer_create(nullptr, 0);
|
||||
}
|
||||
|
|
@ -1469,88 +1434,66 @@ static void receiving_stream_ready_in_call_combiner(void* bctlp,
|
|||
}
|
||||
|
||||
static void validate_filtered_metadata(batch_control* bctl) {
|
||||
grpc_compression_algorithm compression_algorithm;
|
||||
grpc_call* call = bctl->call;
|
||||
/* validate compression algorithms */
|
||||
if (call->incoming_stream_compression_algorithm !=
|
||||
GRPC_STREAM_COMPRESS_NONE) {
|
||||
const grpc_stream_compression_algorithm algo =
|
||||
call->incoming_stream_compression_algorithm;
|
||||
GRPC_STREAM_COMPRESS_NONE &&
|
||||
call->incoming_message_compression_algorithm !=
|
||||
GRPC_MESSAGE_COMPRESS_NONE) {
|
||||
char* error_msg = nullptr;
|
||||
const grpc_compression_options compression_options =
|
||||
grpc_channel_compression_options(call->channel);
|
||||
if (algo >= GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) {
|
||||
gpr_asprintf(&error_msg,
|
||||
"Invalid stream compression algorithm value '%d'.", algo);
|
||||
gpr_log(GPR_ERROR, "%s", error_msg);
|
||||
cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_UNIMPLEMENTED,
|
||||
error_msg);
|
||||
} else if (grpc_compression_options_is_stream_compression_algorithm_enabled(
|
||||
&compression_options, algo) == 0) {
|
||||
/* check if algorithm is supported by current channel config */
|
||||
const char* algo_name = nullptr;
|
||||
grpc_stream_compression_algorithm_name(algo, &algo_name);
|
||||
gpr_asprintf(&error_msg, "Stream compression algorithm '%s' is disabled.",
|
||||
algo_name);
|
||||
gpr_log(GPR_ERROR, "%s", error_msg);
|
||||
cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_UNIMPLEMENTED,
|
||||
error_msg);
|
||||
}
|
||||
gpr_asprintf(&error_msg,
|
||||
"Incoming stream has both stream compression (%d) and message "
|
||||
"compression (%d).",
|
||||
call->incoming_stream_compression_algorithm,
|
||||
call->incoming_message_compression_algorithm);
|
||||
gpr_log(GPR_ERROR, "%s", error_msg);
|
||||
cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_INTERNAL,
|
||||
error_msg);
|
||||
gpr_free(error_msg);
|
||||
|
||||
GPR_ASSERT(call->stream_encodings_accepted_by_peer != 0);
|
||||
if (!GPR_BITGET(call->stream_encodings_accepted_by_peer,
|
||||
call->incoming_stream_compression_algorithm)) {
|
||||
if (grpc_compression_trace.enabled()) {
|
||||
const char* algo_name = nullptr;
|
||||
grpc_stream_compression_algorithm_name(
|
||||
call->incoming_stream_compression_algorithm, &algo_name);
|
||||
gpr_log(
|
||||
GPR_ERROR,
|
||||
"Stream compression algorithm (content-encoding = '%s') not "
|
||||
"present in the bitset of accepted encodings (accept-encodings: "
|
||||
"'0x%x')",
|
||||
algo_name, call->stream_encodings_accepted_by_peer);
|
||||
}
|
||||
}
|
||||
} else if (call->incoming_compression_algorithm != GRPC_COMPRESS_NONE) {
|
||||
const grpc_compression_algorithm algo =
|
||||
call->incoming_compression_algorithm;
|
||||
} else if (
|
||||
grpc_compression_algorithm_from_message_stream_compression_algorithm(
|
||||
&compression_algorithm, call->incoming_message_compression_algorithm,
|
||||
call->incoming_stream_compression_algorithm) == 0) {
|
||||
char* error_msg = nullptr;
|
||||
gpr_asprintf(&error_msg,
|
||||
"Error in incoming message compression (%d) or stream "
|
||||
"compression (%d).",
|
||||
call->incoming_stream_compression_algorithm,
|
||||
call->incoming_message_compression_algorithm);
|
||||
cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_INTERNAL,
|
||||
error_msg);
|
||||
gpr_free(error_msg);
|
||||
} else {
|
||||
char* error_msg = nullptr;
|
||||
const grpc_compression_options compression_options =
|
||||
grpc_channel_compression_options(call->channel);
|
||||
/* check if algorithm is known */
|
||||
if (algo >= GRPC_COMPRESS_ALGORITHMS_COUNT) {
|
||||
if (compression_algorithm >= GRPC_COMPRESS_ALGORITHMS_COUNT) {
|
||||
gpr_asprintf(&error_msg, "Invalid compression algorithm value '%d'.",
|
||||
algo);
|
||||
compression_algorithm);
|
||||
gpr_log(GPR_ERROR, "%s", error_msg);
|
||||
cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_UNIMPLEMENTED,
|
||||
error_msg);
|
||||
} else if (grpc_compression_options_is_algorithm_enabled(
|
||||
&compression_options, algo) == 0) {
|
||||
&compression_options, compression_algorithm) == 0) {
|
||||
/* check if algorithm is supported by current channel config */
|
||||
const char* algo_name = nullptr;
|
||||
grpc_compression_algorithm_name(algo, &algo_name);
|
||||
grpc_compression_algorithm_name(compression_algorithm, &algo_name);
|
||||
gpr_asprintf(&error_msg, "Compression algorithm '%s' is disabled.",
|
||||
algo_name);
|
||||
gpr_log(GPR_ERROR, "%s", error_msg);
|
||||
cancel_with_status(call, STATUS_FROM_SURFACE, GRPC_STATUS_UNIMPLEMENTED,
|
||||
error_msg);
|
||||
} else {
|
||||
call->incoming_compression_algorithm = algo;
|
||||
}
|
||||
gpr_free(error_msg);
|
||||
|
||||
GPR_ASSERT(call->encodings_accepted_by_peer != 0);
|
||||
if (!GPR_BITGET(call->encodings_accepted_by_peer,
|
||||
call->incoming_compression_algorithm)) {
|
||||
if (!GPR_BITGET(call->encodings_accepted_by_peer, compression_algorithm)) {
|
||||
if (grpc_compression_trace.enabled()) {
|
||||
const char* algo_name = nullptr;
|
||||
grpc_compression_algorithm_name(call->incoming_compression_algorithm,
|
||||
&algo_name);
|
||||
grpc_compression_algorithm_name(compression_algorithm, &algo_name);
|
||||
gpr_log(GPR_ERROR,
|
||||
"Compression algorithm (grpc-encoding = '%s') not present in "
|
||||
"the bitset of accepted encodings (grpc-accept-encodings: "
|
||||
"'0x%x')",
|
||||
"Compression algorithm ('%s') not present in the bitset of "
|
||||
"accepted encodings ('0x%x')",
|
||||
algo_name, call->encodings_accepted_by_peer);
|
||||
}
|
||||
}
|
||||
|
|
@ -1693,56 +1636,28 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
|
|||
size_t additional_metadata_count = 0;
|
||||
grpc_compression_level effective_compression_level =
|
||||
GRPC_COMPRESS_LEVEL_NONE;
|
||||
grpc_stream_compression_level effective_stream_compression_level =
|
||||
GRPC_STREAM_COMPRESS_LEVEL_NONE;
|
||||
bool level_set = false;
|
||||
bool stream_compression = false;
|
||||
if (op->data.send_initial_metadata.maybe_stream_compression_level
|
||||
.is_set) {
|
||||
effective_stream_compression_level =
|
||||
op->data.send_initial_metadata.maybe_stream_compression_level
|
||||
.level;
|
||||
level_set = true;
|
||||
stream_compression = true;
|
||||
} else if (op->data.send_initial_metadata.maybe_compression_level
|
||||
.is_set) {
|
||||
if (op->data.send_initial_metadata.maybe_compression_level.is_set) {
|
||||
effective_compression_level =
|
||||
op->data.send_initial_metadata.maybe_compression_level.level;
|
||||
level_set = true;
|
||||
} else {
|
||||
const grpc_compression_options copts =
|
||||
grpc_channel_compression_options(call->channel);
|
||||
if (copts.default_stream_compression_level.is_set) {
|
||||
level_set = true;
|
||||
effective_stream_compression_level =
|
||||
copts.default_stream_compression_level.level;
|
||||
stream_compression = true;
|
||||
} else if (copts.default_level.is_set) {
|
||||
if (copts.default_level.is_set) {
|
||||
level_set = true;
|
||||
effective_compression_level = copts.default_level.level;
|
||||
}
|
||||
}
|
||||
if (level_set && !call->is_client) {
|
||||
if (stream_compression) {
|
||||
const grpc_stream_compression_algorithm calgo =
|
||||
stream_compression_algorithm_for_level_locked(
|
||||
call, effective_stream_compression_level);
|
||||
call->compression_md.key =
|
||||
GRPC_MDSTR_GRPC_INTERNAL_STREAM_ENCODING_REQUEST;
|
||||
call->compression_md.value =
|
||||
grpc_stream_compression_algorithm_slice(calgo);
|
||||
} else {
|
||||
const grpc_compression_algorithm calgo =
|
||||
compression_algorithm_for_level_locked(
|
||||
call, effective_compression_level);
|
||||
/* the following will be picked up by the compress filter and used
|
||||
* as the call's compression algorithm. */
|
||||
call->compression_md.key =
|
||||
GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST;
|
||||
call->compression_md.value =
|
||||
grpc_compression_algorithm_slice(calgo);
|
||||
additional_metadata_count++;
|
||||
}
|
||||
const grpc_compression_algorithm calgo =
|
||||
compression_algorithm_for_level_locked(
|
||||
call, effective_compression_level);
|
||||
/* the following will be picked up by the compress filter and used
|
||||
* as the call's compression algorithm. */
|
||||
call->compression_md.key = GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST;
|
||||
call->compression_md.value = grpc_compression_algorithm_slice(calgo);
|
||||
additional_metadata_count++;
|
||||
}
|
||||
|
||||
if (op->data.send_initial_metadata.count + additional_metadata_count >
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include <grpc/grpc.h>
|
||||
|
||||
/** Return the compression algorithm from \a call.
|
||||
/** Return the message compression algorithm from \a call.
|
||||
*
|
||||
* \warning This function should \b only be used in test code. */
|
||||
grpc_compression_algorithm grpc_call_test_only_get_compression_algorithm(
|
||||
|
|
@ -38,16 +38,4 @@ uint32_t grpc_call_test_only_get_message_flags(grpc_call* call);
|
|||
* To be indexed by grpc_compression_algorithm enum values. */
|
||||
uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call* call);
|
||||
|
||||
/** Returns a bitset for the stream encodings (stream compression algorithms)
|
||||
* supported by \a call's peer.
|
||||
*
|
||||
* To be indexed by grpc_stream_compression_algorithm enum values. */
|
||||
uint32_t grpc_call_test_only_get_stream_encodings_accepted_by_peer(
|
||||
grpc_call* call);
|
||||
|
||||
/** Returns the incoming stream compression algorithm (content-encoding header)
|
||||
* received by a call. */
|
||||
grpc_stream_compression_algorithm
|
||||
grpc_call_test_only_get_incoming_stream_encodings(grpc_call* call);
|
||||
|
||||
#endif /* GRPC_CORE_LIB_SURFACE_CALL_TEST_ONLY_H */
|
||||
|
|
|
|||
|
|
@ -151,50 +151,23 @@ grpc_channel* grpc_channel_create_with_builder(
|
|||
GRPC_COMPRESSION_CHANNEL_DEFAULT_LEVEL)) {
|
||||
channel->compression_options.default_level.is_set = true;
|
||||
channel->compression_options.default_level.level =
|
||||
(grpc_compression_level)grpc_channel_arg_get_integer(
|
||||
static_cast<grpc_compression_level>(grpc_channel_arg_get_integer(
|
||||
&args->args[i],
|
||||
{GRPC_COMPRESS_LEVEL_NONE, GRPC_COMPRESS_LEVEL_NONE,
|
||||
GRPC_COMPRESS_LEVEL_COUNT - 1});
|
||||
} else if (0 == strcmp(args->args[i].key,
|
||||
GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_LEVEL)) {
|
||||
channel->compression_options.default_stream_compression_level.is_set =
|
||||
true;
|
||||
channel->compression_options.default_stream_compression_level.level =
|
||||
(grpc_stream_compression_level)grpc_channel_arg_get_integer(
|
||||
&args->args[i],
|
||||
{GRPC_STREAM_COMPRESS_LEVEL_NONE, GRPC_STREAM_COMPRESS_LEVEL_NONE,
|
||||
GRPC_STREAM_COMPRESS_LEVEL_COUNT - 1});
|
||||
GRPC_COMPRESS_LEVEL_COUNT - 1}));
|
||||
} else if (0 == strcmp(args->args[i].key,
|
||||
GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM)) {
|
||||
channel->compression_options.default_algorithm.is_set = true;
|
||||
channel->compression_options.default_algorithm.algorithm =
|
||||
(grpc_compression_algorithm)grpc_channel_arg_get_integer(
|
||||
static_cast<grpc_compression_algorithm>(grpc_channel_arg_get_integer(
|
||||
&args->args[i], {GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE,
|
||||
GRPC_COMPRESS_ALGORITHMS_COUNT - 1});
|
||||
} else if (0 == strcmp(args->args[i].key,
|
||||
GRPC_STREAM_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM)) {
|
||||
channel->compression_options.default_stream_compression_algorithm.is_set =
|
||||
true;
|
||||
channel->compression_options.default_stream_compression_algorithm
|
||||
.algorithm =
|
||||
(grpc_stream_compression_algorithm)grpc_channel_arg_get_integer(
|
||||
&args->args[i],
|
||||
{GRPC_STREAM_COMPRESS_NONE, GRPC_STREAM_COMPRESS_NONE,
|
||||
GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT - 1});
|
||||
GRPC_COMPRESS_ALGORITHMS_COUNT - 1}));
|
||||
} else if (0 ==
|
||||
strcmp(args->args[i].key,
|
||||
GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET)) {
|
||||
channel->compression_options.enabled_algorithms_bitset =
|
||||
(uint32_t)args->args[i].value.integer |
|
||||
0x1; /* always support no compression */
|
||||
} else if (0 ==
|
||||
strcmp(
|
||||
args->args[i].key,
|
||||
GRPC_STREAM_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET)) {
|
||||
channel->compression_options
|
||||
.enabled_stream_compression_algorithms_bitset =
|
||||
(uint32_t)args->args[i].value.integer |
|
||||
0x1; /* always support no compression */
|
||||
} else if (0 ==
|
||||
strcmp(args->args[i].key, GRPC_ARG_CHANNEL_TRACING_MAX_NODES)) {
|
||||
GPR_ASSERT(channel_tracer_max_nodes == -1);
|
||||
|
|
|
|||
|
|
@ -57,51 +57,53 @@ static uint8_t g_bytes[] = {
|
|||
112, 111, 110, 115, 101, 95, 109, 101, 115, 115, 97, 103, 101, 95, 98,
|
||||
121, 116, 101, 115, 47, 103, 114, 112, 99, 46, 108, 98, 46, 118, 49,
|
||||
46, 76, 111, 97, 100, 66, 97, 108, 97, 110, 99, 101, 114, 47, 66,
|
||||
97, 108, 97, 110, 99, 101, 76, 111, 97, 100, 48, 49, 50, 105, 100,
|
||||
101, 110, 116, 105, 116, 121, 103, 122, 105, 112, 100, 101, 102, 108, 97,
|
||||
116, 101, 116, 114, 97, 105, 108, 101, 114, 115, 97, 112, 112, 108, 105,
|
||||
99, 97, 116, 105, 111, 110, 47, 103, 114, 112, 99, 80, 79, 83, 84,
|
||||
50, 48, 48, 52, 48, 52, 104, 116, 116, 112, 104, 116, 116, 112, 115,
|
||||
103, 114, 112, 99, 71, 69, 84, 80, 85, 84, 47, 47, 105, 110, 100,
|
||||
101, 120, 46, 104, 116, 109, 108, 50, 48, 52, 50, 48, 54, 51, 48,
|
||||
52, 52, 48, 48, 53, 48, 48, 97, 99, 99, 101, 112, 116, 45, 99,
|
||||
104, 97, 114, 115, 101, 116, 103, 122, 105, 112, 44, 32, 100, 101, 102,
|
||||
108, 97, 116, 101, 97, 99, 99, 101, 112, 116, 45, 108, 97, 110, 103,
|
||||
117, 97, 103, 101, 97, 99, 99, 101, 112, 116, 45, 114, 97, 110, 103,
|
||||
101, 115, 97, 99, 99, 101, 112, 116, 97, 99, 99, 101, 115, 115, 45,
|
||||
99, 111, 110, 116, 114, 111, 108, 45, 97, 108, 108, 111, 119, 45, 111,
|
||||
114, 105, 103, 105, 110, 97, 103, 101, 97, 108, 108, 111, 119, 97, 117,
|
||||
116, 104, 111, 114, 105, 122, 97, 116, 105, 111, 110, 99, 97, 99, 104,
|
||||
101, 45, 99, 111, 110, 116, 114, 111, 108, 99, 111, 110, 116, 101, 110,
|
||||
116, 45, 100, 105, 115, 112, 111, 115, 105, 116, 105, 111, 110, 99, 111,
|
||||
110, 116, 101, 110, 116, 45, 108, 97, 110, 103, 117, 97, 103, 101, 99,
|
||||
111, 110, 116, 101, 110, 116, 45, 108, 101, 110, 103, 116, 104, 99, 111,
|
||||
110, 116, 101, 110, 116, 45, 108, 111, 99, 97, 116, 105, 111, 110, 99,
|
||||
111, 110, 116, 101, 110, 116, 45, 114, 97, 110, 103, 101, 99, 111, 111,
|
||||
107, 105, 101, 100, 97, 116, 101, 101, 116, 97, 103, 101, 120, 112, 101,
|
||||
99, 116, 101, 120, 112, 105, 114, 101, 115, 102, 114, 111, 109, 105, 102,
|
||||
45, 109, 97, 116, 99, 104, 105, 102, 45, 109, 111, 100, 105, 102, 105,
|
||||
101, 100, 45, 115, 105, 110, 99, 101, 105, 102, 45, 110, 111, 110, 101,
|
||||
45, 109, 97, 116, 99, 104, 105, 102, 45, 114, 97, 110, 103, 101, 105,
|
||||
102, 45, 117, 110, 109, 111, 100, 105, 102, 105, 101, 100, 45, 115, 105,
|
||||
110, 99, 101, 108, 97, 115, 116, 45, 109, 111, 100, 105, 102, 105, 101,
|
||||
100, 108, 98, 45, 99, 111, 115, 116, 45, 98, 105, 110, 108, 105, 110,
|
||||
107, 108, 111, 99, 97, 116, 105, 111, 110, 109, 97, 120, 45, 102, 111,
|
||||
114, 119, 97, 114, 100, 115, 112, 114, 111, 120, 121, 45, 97, 117, 116,
|
||||
104, 101, 110, 116, 105, 99, 97, 116, 101, 112, 114, 111, 120, 121, 45,
|
||||
97, 117, 116, 104, 111, 114, 105, 122, 97, 116, 105, 111, 110, 114, 97,
|
||||
110, 103, 101, 114, 101, 102, 101, 114, 101, 114, 114, 101, 102, 114, 101,
|
||||
115, 104, 114, 101, 116, 114, 121, 45, 97, 102, 116, 101, 114, 115, 101,
|
||||
114, 118, 101, 114, 115, 101, 116, 45, 99, 111, 111, 107, 105, 101, 115,
|
||||
116, 114, 105, 99, 116, 45, 116, 114, 97, 110, 115, 112, 111, 114, 116,
|
||||
45, 115, 101, 99, 117, 114, 105, 116, 121, 116, 114, 97, 110, 115, 102,
|
||||
101, 114, 45, 101, 110, 99, 111, 100, 105, 110, 103, 118, 97, 114, 121,
|
||||
118, 105, 97, 119, 119, 119, 45, 97, 117, 116, 104, 101, 110, 116, 105,
|
||||
99, 97, 116, 101, 105, 100, 101, 110, 116, 105, 116, 121, 44, 100, 101,
|
||||
102, 108, 97, 116, 101, 105, 100, 101, 110, 116, 105, 116, 121, 44, 103,
|
||||
122, 105, 112, 100, 101, 102, 108, 97, 116, 101, 44, 103, 122, 105, 112,
|
||||
105, 100, 101, 110, 116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116,
|
||||
101, 44, 103, 122, 105, 112};
|
||||
97, 108, 97, 110, 99, 101, 76, 111, 97, 100, 109, 101, 115, 115, 97,
|
||||
103, 101, 47, 100, 101, 102, 108, 97, 116, 101, 109, 101, 115, 115, 97,
|
||||
103, 101, 47, 103, 122, 105, 112, 115, 116, 114, 101, 97, 109, 47, 103,
|
||||
122, 105, 112, 48, 49, 50, 105, 100, 101, 110, 116, 105, 116, 121, 103,
|
||||
122, 105, 112, 100, 101, 102, 108, 97, 116, 101, 116, 114, 97, 105, 108,
|
||||
101, 114, 115, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47,
|
||||
103, 114, 112, 99, 80, 79, 83, 84, 50, 48, 48, 52, 48, 52, 104,
|
||||
116, 116, 112, 104, 116, 116, 112, 115, 103, 114, 112, 99, 71, 69, 84,
|
||||
80, 85, 84, 47, 47, 105, 110, 100, 101, 120, 46, 104, 116, 109, 108,
|
||||
50, 48, 52, 50, 48, 54, 51, 48, 52, 52, 48, 48, 53, 48, 48,
|
||||
97, 99, 99, 101, 112, 116, 45, 99, 104, 97, 114, 115, 101, 116, 103,
|
||||
122, 105, 112, 44, 32, 100, 101, 102, 108, 97, 116, 101, 97, 99, 99,
|
||||
101, 112, 116, 45, 108, 97, 110, 103, 117, 97, 103, 101, 97, 99, 99,
|
||||
101, 112, 116, 45, 114, 97, 110, 103, 101, 115, 97, 99, 99, 101, 112,
|
||||
116, 97, 99, 99, 101, 115, 115, 45, 99, 111, 110, 116, 114, 111, 108,
|
||||
45, 97, 108, 108, 111, 119, 45, 111, 114, 105, 103, 105, 110, 97, 103,
|
||||
101, 97, 108, 108, 111, 119, 97, 117, 116, 104, 111, 114, 105, 122, 97,
|
||||
116, 105, 111, 110, 99, 97, 99, 104, 101, 45, 99, 111, 110, 116, 114,
|
||||
111, 108, 99, 111, 110, 116, 101, 110, 116, 45, 100, 105, 115, 112, 111,
|
||||
115, 105, 116, 105, 111, 110, 99, 111, 110, 116, 101, 110, 116, 45, 108,
|
||||
97, 110, 103, 117, 97, 103, 101, 99, 111, 110, 116, 101, 110, 116, 45,
|
||||
108, 101, 110, 103, 116, 104, 99, 111, 110, 116, 101, 110, 116, 45, 108,
|
||||
111, 99, 97, 116, 105, 111, 110, 99, 111, 110, 116, 101, 110, 116, 45,
|
||||
114, 97, 110, 103, 101, 99, 111, 111, 107, 105, 101, 100, 97, 116, 101,
|
||||
101, 116, 97, 103, 101, 120, 112, 101, 99, 116, 101, 120, 112, 105, 114,
|
||||
101, 115, 102, 114, 111, 109, 105, 102, 45, 109, 97, 116, 99, 104, 105,
|
||||
102, 45, 109, 111, 100, 105, 102, 105, 101, 100, 45, 115, 105, 110, 99,
|
||||
101, 105, 102, 45, 110, 111, 110, 101, 45, 109, 97, 116, 99, 104, 105,
|
||||
102, 45, 114, 97, 110, 103, 101, 105, 102, 45, 117, 110, 109, 111, 100,
|
||||
105, 102, 105, 101, 100, 45, 115, 105, 110, 99, 101, 108, 97, 115, 116,
|
||||
45, 109, 111, 100, 105, 102, 105, 101, 100, 108, 98, 45, 99, 111, 115,
|
||||
116, 45, 98, 105, 110, 108, 105, 110, 107, 108, 111, 99, 97, 116, 105,
|
||||
111, 110, 109, 97, 120, 45, 102, 111, 114, 119, 97, 114, 100, 115, 112,
|
||||
114, 111, 120, 121, 45, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97,
|
||||
116, 101, 112, 114, 111, 120, 121, 45, 97, 117, 116, 104, 111, 114, 105,
|
||||
122, 97, 116, 105, 111, 110, 114, 97, 110, 103, 101, 114, 101, 102, 101,
|
||||
114, 101, 114, 114, 101, 102, 114, 101, 115, 104, 114, 101, 116, 114, 121,
|
||||
45, 97, 102, 116, 101, 114, 115, 101, 114, 118, 101, 114, 115, 101, 116,
|
||||
45, 99, 111, 111, 107, 105, 101, 115, 116, 114, 105, 99, 116, 45, 116,
|
||||
114, 97, 110, 115, 112, 111, 114, 116, 45, 115, 101, 99, 117, 114, 105,
|
||||
116, 121, 116, 114, 97, 110, 115, 102, 101, 114, 45, 101, 110, 99, 111,
|
||||
100, 105, 110, 103, 118, 97, 114, 121, 118, 105, 97, 119, 119, 119, 45,
|
||||
97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 101, 105, 100, 101,
|
||||
110, 116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116, 101, 105, 100,
|
||||
101, 110, 116, 105, 116, 121, 44, 103, 122, 105, 112, 100, 101, 102, 108,
|
||||
97, 116, 101, 44, 103, 122, 105, 112, 105, 100, 101, 110, 116, 105, 116,
|
||||
121, 44, 100, 101, 102, 108, 97, 116, 101, 44, 103, 122, 105, 112};
|
||||
|
||||
static void static_ref(void* unused) {}
|
||||
static void static_unref(void* unused) {}
|
||||
|
|
@ -213,6 +215,9 @@ grpc_slice_refcount grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT] = {
|
|||
{&grpc_static_metadata_vtable, &static_sub_refcnt},
|
||||
{&grpc_static_metadata_vtable, &static_sub_refcnt},
|
||||
{&grpc_static_metadata_vtable, &static_sub_refcnt},
|
||||
{&grpc_static_metadata_vtable, &static_sub_refcnt},
|
||||
{&grpc_static_metadata_vtable, &static_sub_refcnt},
|
||||
{&grpc_static_metadata_vtable, &static_sub_refcnt},
|
||||
};
|
||||
|
||||
const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT] = {
|
||||
|
|
@ -245,77 +250,80 @@ const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT] = {
|
|||
{&grpc_static_metadata_refcounts[26], {{g_bytes + 333, 30}}},
|
||||
{&grpc_static_metadata_refcounts[27], {{g_bytes + 363, 31}}},
|
||||
{&grpc_static_metadata_refcounts[28], {{g_bytes + 394, 36}}},
|
||||
{&grpc_static_metadata_refcounts[29], {{g_bytes + 430, 1}}},
|
||||
{&grpc_static_metadata_refcounts[30], {{g_bytes + 431, 1}}},
|
||||
{&grpc_static_metadata_refcounts[31], {{g_bytes + 432, 1}}},
|
||||
{&grpc_static_metadata_refcounts[32], {{g_bytes + 433, 8}}},
|
||||
{&grpc_static_metadata_refcounts[33], {{g_bytes + 441, 4}}},
|
||||
{&grpc_static_metadata_refcounts[34], {{g_bytes + 445, 7}}},
|
||||
{&grpc_static_metadata_refcounts[35], {{g_bytes + 452, 8}}},
|
||||
{&grpc_static_metadata_refcounts[36], {{g_bytes + 460, 16}}},
|
||||
{&grpc_static_metadata_refcounts[37], {{g_bytes + 476, 4}}},
|
||||
{&grpc_static_metadata_refcounts[38], {{g_bytes + 480, 3}}},
|
||||
{&grpc_static_metadata_refcounts[39], {{g_bytes + 483, 3}}},
|
||||
{&grpc_static_metadata_refcounts[40], {{g_bytes + 486, 4}}},
|
||||
{&grpc_static_metadata_refcounts[41], {{g_bytes + 490, 5}}},
|
||||
{&grpc_static_metadata_refcounts[42], {{g_bytes + 495, 4}}},
|
||||
{&grpc_static_metadata_refcounts[43], {{g_bytes + 499, 3}}},
|
||||
{&grpc_static_metadata_refcounts[44], {{g_bytes + 502, 3}}},
|
||||
{&grpc_static_metadata_refcounts[45], {{g_bytes + 505, 1}}},
|
||||
{&grpc_static_metadata_refcounts[46], {{g_bytes + 506, 11}}},
|
||||
{&grpc_static_metadata_refcounts[47], {{g_bytes + 517, 3}}},
|
||||
{&grpc_static_metadata_refcounts[48], {{g_bytes + 520, 3}}},
|
||||
{&grpc_static_metadata_refcounts[49], {{g_bytes + 523, 3}}},
|
||||
{&grpc_static_metadata_refcounts[50], {{g_bytes + 526, 3}}},
|
||||
{&grpc_static_metadata_refcounts[51], {{g_bytes + 529, 3}}},
|
||||
{&grpc_static_metadata_refcounts[52], {{g_bytes + 532, 14}}},
|
||||
{&grpc_static_metadata_refcounts[53], {{g_bytes + 546, 13}}},
|
||||
{&grpc_static_metadata_refcounts[54], {{g_bytes + 559, 15}}},
|
||||
{&grpc_static_metadata_refcounts[55], {{g_bytes + 574, 13}}},
|
||||
{&grpc_static_metadata_refcounts[56], {{g_bytes + 587, 6}}},
|
||||
{&grpc_static_metadata_refcounts[57], {{g_bytes + 593, 27}}},
|
||||
{&grpc_static_metadata_refcounts[58], {{g_bytes + 620, 3}}},
|
||||
{&grpc_static_metadata_refcounts[59], {{g_bytes + 623, 5}}},
|
||||
{&grpc_static_metadata_refcounts[60], {{g_bytes + 628, 13}}},
|
||||
{&grpc_static_metadata_refcounts[61], {{g_bytes + 641, 13}}},
|
||||
{&grpc_static_metadata_refcounts[62], {{g_bytes + 654, 19}}},
|
||||
{&grpc_static_metadata_refcounts[63], {{g_bytes + 673, 16}}},
|
||||
{&grpc_static_metadata_refcounts[64], {{g_bytes + 689, 14}}},
|
||||
{&grpc_static_metadata_refcounts[65], {{g_bytes + 703, 16}}},
|
||||
{&grpc_static_metadata_refcounts[66], {{g_bytes + 719, 13}}},
|
||||
{&grpc_static_metadata_refcounts[67], {{g_bytes + 732, 6}}},
|
||||
{&grpc_static_metadata_refcounts[68], {{g_bytes + 738, 4}}},
|
||||
{&grpc_static_metadata_refcounts[69], {{g_bytes + 742, 4}}},
|
||||
{&grpc_static_metadata_refcounts[70], {{g_bytes + 746, 6}}},
|
||||
{&grpc_static_metadata_refcounts[71], {{g_bytes + 752, 7}}},
|
||||
{&grpc_static_metadata_refcounts[72], {{g_bytes + 759, 4}}},
|
||||
{&grpc_static_metadata_refcounts[73], {{g_bytes + 763, 8}}},
|
||||
{&grpc_static_metadata_refcounts[74], {{g_bytes + 771, 17}}},
|
||||
{&grpc_static_metadata_refcounts[75], {{g_bytes + 788, 13}}},
|
||||
{&grpc_static_metadata_refcounts[29], {{g_bytes + 430, 15}}},
|
||||
{&grpc_static_metadata_refcounts[30], {{g_bytes + 445, 12}}},
|
||||
{&grpc_static_metadata_refcounts[31], {{g_bytes + 457, 11}}},
|
||||
{&grpc_static_metadata_refcounts[32], {{g_bytes + 468, 1}}},
|
||||
{&grpc_static_metadata_refcounts[33], {{g_bytes + 469, 1}}},
|
||||
{&grpc_static_metadata_refcounts[34], {{g_bytes + 470, 1}}},
|
||||
{&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}},
|
||||
{&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}},
|
||||
{&grpc_static_metadata_refcounts[37], {{g_bytes + 483, 7}}},
|
||||
{&grpc_static_metadata_refcounts[38], {{g_bytes + 490, 8}}},
|
||||
{&grpc_static_metadata_refcounts[39], {{g_bytes + 498, 16}}},
|
||||
{&grpc_static_metadata_refcounts[40], {{g_bytes + 514, 4}}},
|
||||
{&grpc_static_metadata_refcounts[41], {{g_bytes + 518, 3}}},
|
||||
{&grpc_static_metadata_refcounts[42], {{g_bytes + 521, 3}}},
|
||||
{&grpc_static_metadata_refcounts[43], {{g_bytes + 524, 4}}},
|
||||
{&grpc_static_metadata_refcounts[44], {{g_bytes + 528, 5}}},
|
||||
{&grpc_static_metadata_refcounts[45], {{g_bytes + 533, 4}}},
|
||||
{&grpc_static_metadata_refcounts[46], {{g_bytes + 537, 3}}},
|
||||
{&grpc_static_metadata_refcounts[47], {{g_bytes + 540, 3}}},
|
||||
{&grpc_static_metadata_refcounts[48], {{g_bytes + 543, 1}}},
|
||||
{&grpc_static_metadata_refcounts[49], {{g_bytes + 544, 11}}},
|
||||
{&grpc_static_metadata_refcounts[50], {{g_bytes + 555, 3}}},
|
||||
{&grpc_static_metadata_refcounts[51], {{g_bytes + 558, 3}}},
|
||||
{&grpc_static_metadata_refcounts[52], {{g_bytes + 561, 3}}},
|
||||
{&grpc_static_metadata_refcounts[53], {{g_bytes + 564, 3}}},
|
||||
{&grpc_static_metadata_refcounts[54], {{g_bytes + 567, 3}}},
|
||||
{&grpc_static_metadata_refcounts[55], {{g_bytes + 570, 14}}},
|
||||
{&grpc_static_metadata_refcounts[56], {{g_bytes + 584, 13}}},
|
||||
{&grpc_static_metadata_refcounts[57], {{g_bytes + 597, 15}}},
|
||||
{&grpc_static_metadata_refcounts[58], {{g_bytes + 612, 13}}},
|
||||
{&grpc_static_metadata_refcounts[59], {{g_bytes + 625, 6}}},
|
||||
{&grpc_static_metadata_refcounts[60], {{g_bytes + 631, 27}}},
|
||||
{&grpc_static_metadata_refcounts[61], {{g_bytes + 658, 3}}},
|
||||
{&grpc_static_metadata_refcounts[62], {{g_bytes + 661, 5}}},
|
||||
{&grpc_static_metadata_refcounts[63], {{g_bytes + 666, 13}}},
|
||||
{&grpc_static_metadata_refcounts[64], {{g_bytes + 679, 13}}},
|
||||
{&grpc_static_metadata_refcounts[65], {{g_bytes + 692, 19}}},
|
||||
{&grpc_static_metadata_refcounts[66], {{g_bytes + 711, 16}}},
|
||||
{&grpc_static_metadata_refcounts[67], {{g_bytes + 727, 14}}},
|
||||
{&grpc_static_metadata_refcounts[68], {{g_bytes + 741, 16}}},
|
||||
{&grpc_static_metadata_refcounts[69], {{g_bytes + 757, 13}}},
|
||||
{&grpc_static_metadata_refcounts[70], {{g_bytes + 770, 6}}},
|
||||
{&grpc_static_metadata_refcounts[71], {{g_bytes + 776, 4}}},
|
||||
{&grpc_static_metadata_refcounts[72], {{g_bytes + 780, 4}}},
|
||||
{&grpc_static_metadata_refcounts[73], {{g_bytes + 784, 6}}},
|
||||
{&grpc_static_metadata_refcounts[74], {{g_bytes + 790, 7}}},
|
||||
{&grpc_static_metadata_refcounts[75], {{g_bytes + 797, 4}}},
|
||||
{&grpc_static_metadata_refcounts[76], {{g_bytes + 801, 8}}},
|
||||
{&grpc_static_metadata_refcounts[77], {{g_bytes + 809, 19}}},
|
||||
{&grpc_static_metadata_refcounts[78], {{g_bytes + 828, 13}}},
|
||||
{&grpc_static_metadata_refcounts[79], {{g_bytes + 841, 11}}},
|
||||
{&grpc_static_metadata_refcounts[80], {{g_bytes + 852, 4}}},
|
||||
{&grpc_static_metadata_refcounts[81], {{g_bytes + 856, 8}}},
|
||||
{&grpc_static_metadata_refcounts[82], {{g_bytes + 864, 12}}},
|
||||
{&grpc_static_metadata_refcounts[83], {{g_bytes + 876, 18}}},
|
||||
{&grpc_static_metadata_refcounts[84], {{g_bytes + 894, 19}}},
|
||||
{&grpc_static_metadata_refcounts[85], {{g_bytes + 913, 5}}},
|
||||
{&grpc_static_metadata_refcounts[86], {{g_bytes + 918, 7}}},
|
||||
{&grpc_static_metadata_refcounts[87], {{g_bytes + 925, 7}}},
|
||||
{&grpc_static_metadata_refcounts[88], {{g_bytes + 932, 11}}},
|
||||
{&grpc_static_metadata_refcounts[89], {{g_bytes + 943, 6}}},
|
||||
{&grpc_static_metadata_refcounts[90], {{g_bytes + 949, 10}}},
|
||||
{&grpc_static_metadata_refcounts[91], {{g_bytes + 959, 25}}},
|
||||
{&grpc_static_metadata_refcounts[92], {{g_bytes + 984, 17}}},
|
||||
{&grpc_static_metadata_refcounts[93], {{g_bytes + 1001, 4}}},
|
||||
{&grpc_static_metadata_refcounts[94], {{g_bytes + 1005, 3}}},
|
||||
{&grpc_static_metadata_refcounts[95], {{g_bytes + 1008, 16}}},
|
||||
{&grpc_static_metadata_refcounts[96], {{g_bytes + 1024, 16}}},
|
||||
{&grpc_static_metadata_refcounts[97], {{g_bytes + 1040, 13}}},
|
||||
{&grpc_static_metadata_refcounts[98], {{g_bytes + 1053, 12}}},
|
||||
{&grpc_static_metadata_refcounts[99], {{g_bytes + 1065, 21}}},
|
||||
{&grpc_static_metadata_refcounts[77], {{g_bytes + 809, 17}}},
|
||||
{&grpc_static_metadata_refcounts[78], {{g_bytes + 826, 13}}},
|
||||
{&grpc_static_metadata_refcounts[79], {{g_bytes + 839, 8}}},
|
||||
{&grpc_static_metadata_refcounts[80], {{g_bytes + 847, 19}}},
|
||||
{&grpc_static_metadata_refcounts[81], {{g_bytes + 866, 13}}},
|
||||
{&grpc_static_metadata_refcounts[82], {{g_bytes + 879, 11}}},
|
||||
{&grpc_static_metadata_refcounts[83], {{g_bytes + 890, 4}}},
|
||||
{&grpc_static_metadata_refcounts[84], {{g_bytes + 894, 8}}},
|
||||
{&grpc_static_metadata_refcounts[85], {{g_bytes + 902, 12}}},
|
||||
{&grpc_static_metadata_refcounts[86], {{g_bytes + 914, 18}}},
|
||||
{&grpc_static_metadata_refcounts[87], {{g_bytes + 932, 19}}},
|
||||
{&grpc_static_metadata_refcounts[88], {{g_bytes + 951, 5}}},
|
||||
{&grpc_static_metadata_refcounts[89], {{g_bytes + 956, 7}}},
|
||||
{&grpc_static_metadata_refcounts[90], {{g_bytes + 963, 7}}},
|
||||
{&grpc_static_metadata_refcounts[91], {{g_bytes + 970, 11}}},
|
||||
{&grpc_static_metadata_refcounts[92], {{g_bytes + 981, 6}}},
|
||||
{&grpc_static_metadata_refcounts[93], {{g_bytes + 987, 10}}},
|
||||
{&grpc_static_metadata_refcounts[94], {{g_bytes + 997, 25}}},
|
||||
{&grpc_static_metadata_refcounts[95], {{g_bytes + 1022, 17}}},
|
||||
{&grpc_static_metadata_refcounts[96], {{g_bytes + 1039, 4}}},
|
||||
{&grpc_static_metadata_refcounts[97], {{g_bytes + 1043, 3}}},
|
||||
{&grpc_static_metadata_refcounts[98], {{g_bytes + 1046, 16}}},
|
||||
{&grpc_static_metadata_refcounts[99], {{g_bytes + 1062, 16}}},
|
||||
{&grpc_static_metadata_refcounts[100], {{g_bytes + 1078, 13}}},
|
||||
{&grpc_static_metadata_refcounts[101], {{g_bytes + 1091, 12}}},
|
||||
{&grpc_static_metadata_refcounts[102], {{g_bytes + 1103, 21}}},
|
||||
};
|
||||
|
||||
uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {
|
||||
|
|
@ -325,16 +333,16 @@ uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {
|
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 6, 6, 8, 8, 2, 4, 4};
|
||||
|
||||
static const int8_t elems_r[] = {
|
||||
11, 9, -3, 0, 10, 27, -74, 28, 0, 14, -7, 0, 0, 0, 18, 8, -2,
|
||||
0, 0, 13, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, -50, 0, -33, -55, -56, -57, -58, -57, 0, 40, 39, 38, 37, 36, 35, 34,
|
||||
33, 32, 31, 30, 29, 28, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 22,
|
||||
21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 12, 11, 0};
|
||||
11, 9, -3, 0, 10, 25, -77, 26, 0, 11, -7, 0, 0, 0, 21, 14, 1,
|
||||
0, 0, 33, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, -56, 0, -36, -61, -60, -39, -63, -64, 0, 36, 35, 34, 33,
|
||||
34, 33, 32, 31, 31, 30, 29, 28, 27, 26, 26, 25, 25, 24, 23, 22, 21,
|
||||
20, 19, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 12, 11, 0};
|
||||
static uint32_t elems_phash(uint32_t i) {
|
||||
i -= 45;
|
||||
uint32_t x = i % 98;
|
||||
uint32_t y = i / 98;
|
||||
i -= 48;
|
||||
uint32_t x = i % 101;
|
||||
uint32_t y = i / 101;
|
||||
uint32_t h = x;
|
||||
if (y < GPR_ARRAY_SIZE(elems_r)) {
|
||||
uint32_t delta = (uint32_t)elems_r[y];
|
||||
|
|
@ -344,31 +352,31 @@ static uint32_t elems_phash(uint32_t i) {
|
|||
}
|
||||
|
||||
static const uint16_t elem_keys[] = {
|
||||
1032, 1033, 1034, 247, 248, 249, 250, 251, 1623, 143, 144, 45,
|
||||
46, 440, 441, 442, 1523, 1632, 1633, 932, 933, 934, 729, 730,
|
||||
1423, 1532, 1533, 535, 731, 1923, 2023, 2123, 5223, 5523, 5623, 5723,
|
||||
5823, 1436, 1653, 5923, 6023, 6123, 6223, 6323, 6423, 6523, 6623, 6723,
|
||||
6823, 6923, 7023, 7123, 7223, 5423, 7323, 7423, 7523, 7623, 7723, 7823,
|
||||
7923, 8023, 8123, 8223, 1096, 1097, 1098, 1099, 8323, 8423, 8523, 8623,
|
||||
8723, 8823, 8923, 9023, 9123, 9223, 9323, 323, 9423, 9523, 1697, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 137, 238, 239, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0};
|
||||
1065, 1066, 1067, 256, 257, 258, 259, 260, 1671, 149, 150, 48,
|
||||
49, 455, 456, 457, 962, 963, 964, 1568, 1683, 1684, 753, 754,
|
||||
1465, 553, 755, 2083, 2186, 5688, 5997, 1580, 1581, 6100, 6306, 6409,
|
||||
6512, 6615, 6718, 6821, 1481, 1704, 6924, 7027, 7130, 7233, 1980, 7336,
|
||||
7439, 7542, 7645, 7748, 7851, 5894, 7954, 8057, 6203, 8160, 8263, 8366,
|
||||
8469, 8572, 8675, 8778, 1129, 1130, 1131, 1132, 8881, 8984, 9087, 9190,
|
||||
9293, 9396, 9499, 9602, 9705, 9808, 9911, 332, 10014, 10117, 0, 0,
|
||||
0, 1748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 247,
|
||||
248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0};
|
||||
static const uint8_t elem_idxs[] = {
|
||||
76, 79, 77, 19, 20, 21, 22, 23, 25, 15, 16, 17, 18, 11,
|
||||
12, 13, 38, 83, 84, 3, 4, 5, 0, 1, 43, 36, 37, 6,
|
||||
2, 72, 50, 57, 24, 28, 29, 30, 31, 7, 26, 32, 33, 34,
|
||||
35, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 27, 51, 52,
|
||||
53, 54, 55, 56, 58, 59, 60, 61, 78, 80, 81, 82, 62, 63,
|
||||
64, 65, 66, 67, 68, 69, 70, 71, 73, 14, 74, 75, 85, 255,
|
||||
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||
255, 255, 255, 255, 255, 8, 9, 10};
|
||||
12, 13, 3, 4, 5, 38, 83, 84, 0, 1, 43, 6, 2, 50,
|
||||
57, 24, 28, 36, 37, 29, 31, 32, 33, 34, 35, 39, 7, 26,
|
||||
40, 41, 42, 44, 72, 45, 46, 47, 48, 49, 51, 27, 52, 53,
|
||||
30, 54, 55, 56, 58, 59, 60, 61, 78, 80, 81, 82, 62, 63,
|
||||
64, 65, 66, 67, 68, 69, 70, 71, 73, 14, 74, 75, 255, 255,
|
||||
255, 85, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||
255, 255, 255, 255, 255, 255, 255, 255, 8, 9, 10};
|
||||
|
||||
grpc_mdelem grpc_static_mdelem_for_static_strings(int a, int b) {
|
||||
if (a == -1 || b == -1) return GRPC_MDNULL;
|
||||
uint32_t k = (uint32_t)(a * 100 + b);
|
||||
uint32_t k = (uint32_t)(a * 103 + b);
|
||||
uint32_t h = elems_phash(k);
|
||||
return h < GPR_ARRAY_SIZE(elem_keys) && elem_keys[h] == k &&
|
||||
elem_idxs[h] != 255
|
||||
|
|
@ -379,177 +387,177 @@ grpc_mdelem grpc_static_mdelem_for_static_strings(int a, int b) {
|
|||
|
||||
grpc_mdelem_data grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT] = {
|
||||
{{&grpc_static_metadata_refcounts[7], {{g_bytes + 50, 11}}},
|
||||
{&grpc_static_metadata_refcounts[29], {{g_bytes + 430, 1}}}},
|
||||
{&grpc_static_metadata_refcounts[32], {{g_bytes + 468, 1}}}},
|
||||
{{&grpc_static_metadata_refcounts[7], {{g_bytes + 50, 11}}},
|
||||
{&grpc_static_metadata_refcounts[30], {{g_bytes + 431, 1}}}},
|
||||
{&grpc_static_metadata_refcounts[33], {{g_bytes + 469, 1}}}},
|
||||
{{&grpc_static_metadata_refcounts[7], {{g_bytes + 50, 11}}},
|
||||
{&grpc_static_metadata_refcounts[31], {{g_bytes + 432, 1}}}},
|
||||
{&grpc_static_metadata_refcounts[34], {{g_bytes + 470, 1}}}},
|
||||
{{&grpc_static_metadata_refcounts[9], {{g_bytes + 77, 13}}},
|
||||
{&grpc_static_metadata_refcounts[32], {{g_bytes + 433, 8}}}},
|
||||
{&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}}},
|
||||
{{&grpc_static_metadata_refcounts[9], {{g_bytes + 77, 13}}},
|
||||
{&grpc_static_metadata_refcounts[33], {{g_bytes + 441, 4}}}},
|
||||
{&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}}},
|
||||
{{&grpc_static_metadata_refcounts[9], {{g_bytes + 77, 13}}},
|
||||
{&grpc_static_metadata_refcounts[34], {{g_bytes + 445, 7}}}},
|
||||
{&grpc_static_metadata_refcounts[37], {{g_bytes + 483, 7}}}},
|
||||
{{&grpc_static_metadata_refcounts[5], {{g_bytes + 36, 2}}},
|
||||
{&grpc_static_metadata_refcounts[35], {{g_bytes + 452, 8}}}},
|
||||
{&grpc_static_metadata_refcounts[38], {{g_bytes + 490, 8}}}},
|
||||
{{&grpc_static_metadata_refcounts[14], {{g_bytes + 158, 12}}},
|
||||
{&grpc_static_metadata_refcounts[36], {{g_bytes + 460, 16}}}},
|
||||
{&grpc_static_metadata_refcounts[39], {{g_bytes + 498, 16}}}},
|
||||
{{&grpc_static_metadata_refcounts[1], {{g_bytes + 5, 7}}},
|
||||
{&grpc_static_metadata_refcounts[37], {{g_bytes + 476, 4}}}},
|
||||
{&grpc_static_metadata_refcounts[40], {{g_bytes + 514, 4}}}},
|
||||
{{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}},
|
||||
{&grpc_static_metadata_refcounts[38], {{g_bytes + 480, 3}}}},
|
||||
{&grpc_static_metadata_refcounts[41], {{g_bytes + 518, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}},
|
||||
{&grpc_static_metadata_refcounts[39], {{g_bytes + 483, 3}}}},
|
||||
{&grpc_static_metadata_refcounts[42], {{g_bytes + 521, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[4], {{g_bytes + 29, 7}}},
|
||||
{&grpc_static_metadata_refcounts[40], {{g_bytes + 486, 4}}}},
|
||||
{&grpc_static_metadata_refcounts[43], {{g_bytes + 524, 4}}}},
|
||||
{{&grpc_static_metadata_refcounts[4], {{g_bytes + 29, 7}}},
|
||||
{&grpc_static_metadata_refcounts[41], {{g_bytes + 490, 5}}}},
|
||||
{&grpc_static_metadata_refcounts[44], {{g_bytes + 528, 5}}}},
|
||||
{{&grpc_static_metadata_refcounts[4], {{g_bytes + 29, 7}}},
|
||||
{&grpc_static_metadata_refcounts[42], {{g_bytes + 495, 4}}}},
|
||||
{&grpc_static_metadata_refcounts[45], {{g_bytes + 533, 4}}}},
|
||||
{{&grpc_static_metadata_refcounts[3], {{g_bytes + 19, 10}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[1], {{g_bytes + 5, 7}}},
|
||||
{&grpc_static_metadata_refcounts[43], {{g_bytes + 499, 3}}}},
|
||||
{&grpc_static_metadata_refcounts[46], {{g_bytes + 537, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[1], {{g_bytes + 5, 7}}},
|
||||
{&grpc_static_metadata_refcounts[44], {{g_bytes + 502, 3}}}},
|
||||
{&grpc_static_metadata_refcounts[47], {{g_bytes + 540, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[0], {{g_bytes + 0, 5}}},
|
||||
{&grpc_static_metadata_refcounts[45], {{g_bytes + 505, 1}}}},
|
||||
{&grpc_static_metadata_refcounts[48], {{g_bytes + 543, 1}}}},
|
||||
{{&grpc_static_metadata_refcounts[0], {{g_bytes + 0, 5}}},
|
||||
{&grpc_static_metadata_refcounts[46], {{g_bytes + 506, 11}}}},
|
||||
{&grpc_static_metadata_refcounts[49], {{g_bytes + 544, 11}}}},
|
||||
{{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}},
|
||||
{&grpc_static_metadata_refcounts[47], {{g_bytes + 517, 3}}}},
|
||||
{&grpc_static_metadata_refcounts[50], {{g_bytes + 555, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}},
|
||||
{&grpc_static_metadata_refcounts[48], {{g_bytes + 520, 3}}}},
|
||||
{&grpc_static_metadata_refcounts[51], {{g_bytes + 558, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}},
|
||||
{&grpc_static_metadata_refcounts[49], {{g_bytes + 523, 3}}}},
|
||||
{&grpc_static_metadata_refcounts[52], {{g_bytes + 561, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}},
|
||||
{&grpc_static_metadata_refcounts[50], {{g_bytes + 526, 3}}}},
|
||||
{&grpc_static_metadata_refcounts[53], {{g_bytes + 564, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}},
|
||||
{&grpc_static_metadata_refcounts[51], {{g_bytes + 529, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[52], {{g_bytes + 532, 14}}},
|
||||
{&grpc_static_metadata_refcounts[54], {{g_bytes + 567, 3}}}},
|
||||
{{&grpc_static_metadata_refcounts[55], {{g_bytes + 570, 14}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}},
|
||||
{&grpc_static_metadata_refcounts[53], {{g_bytes + 546, 13}}}},
|
||||
{{&grpc_static_metadata_refcounts[54], {{g_bytes + 559, 15}}},
|
||||
{&grpc_static_metadata_refcounts[56], {{g_bytes + 584, 13}}}},
|
||||
{{&grpc_static_metadata_refcounts[57], {{g_bytes + 597, 15}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[55], {{g_bytes + 574, 13}}},
|
||||
{{&grpc_static_metadata_refcounts[58], {{g_bytes + 612, 13}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[56], {{g_bytes + 587, 6}}},
|
||||
{{&grpc_static_metadata_refcounts[59], {{g_bytes + 625, 6}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[57], {{g_bytes + 593, 27}}},
|
||||
{{&grpc_static_metadata_refcounts[60], {{g_bytes + 631, 27}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[58], {{g_bytes + 620, 3}}},
|
||||
{{&grpc_static_metadata_refcounts[61], {{g_bytes + 658, 3}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[59], {{g_bytes + 623, 5}}},
|
||||
{{&grpc_static_metadata_refcounts[62], {{g_bytes + 661, 5}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[60], {{g_bytes + 628, 13}}},
|
||||
{{&grpc_static_metadata_refcounts[63], {{g_bytes + 666, 13}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[61], {{g_bytes + 641, 13}}},
|
||||
{{&grpc_static_metadata_refcounts[64], {{g_bytes + 679, 13}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[62], {{g_bytes + 654, 19}}},
|
||||
{{&grpc_static_metadata_refcounts[65], {{g_bytes + 692, 19}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[15], {{g_bytes + 170, 16}}},
|
||||
{&grpc_static_metadata_refcounts[32], {{g_bytes + 433, 8}}}},
|
||||
{&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}}},
|
||||
{{&grpc_static_metadata_refcounts[15], {{g_bytes + 170, 16}}},
|
||||
{&grpc_static_metadata_refcounts[33], {{g_bytes + 441, 4}}}},
|
||||
{&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}}},
|
||||
{{&grpc_static_metadata_refcounts[15], {{g_bytes + 170, 16}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[63], {{g_bytes + 673, 16}}},
|
||||
{{&grpc_static_metadata_refcounts[66], {{g_bytes + 711, 16}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[64], {{g_bytes + 689, 14}}},
|
||||
{{&grpc_static_metadata_refcounts[67], {{g_bytes + 727, 14}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[65], {{g_bytes + 703, 16}}},
|
||||
{{&grpc_static_metadata_refcounts[68], {{g_bytes + 741, 16}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[66], {{g_bytes + 719, 13}}},
|
||||
{{&grpc_static_metadata_refcounts[69], {{g_bytes + 757, 13}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[14], {{g_bytes + 158, 12}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[67], {{g_bytes + 732, 6}}},
|
||||
{{&grpc_static_metadata_refcounts[70], {{g_bytes + 770, 6}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[68], {{g_bytes + 738, 4}}},
|
||||
{{&grpc_static_metadata_refcounts[71], {{g_bytes + 776, 4}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[69], {{g_bytes + 742, 4}}},
|
||||
{{&grpc_static_metadata_refcounts[72], {{g_bytes + 780, 4}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[70], {{g_bytes + 746, 6}}},
|
||||
{{&grpc_static_metadata_refcounts[73], {{g_bytes + 784, 6}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[71], {{g_bytes + 752, 7}}},
|
||||
{{&grpc_static_metadata_refcounts[74], {{g_bytes + 790, 7}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[72], {{g_bytes + 759, 4}}},
|
||||
{{&grpc_static_metadata_refcounts[75], {{g_bytes + 797, 4}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[20], {{g_bytes + 278, 4}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[73], {{g_bytes + 763, 8}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[74], {{g_bytes + 771, 17}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[75], {{g_bytes + 788, 13}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[76], {{g_bytes + 801, 8}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[77], {{g_bytes + 809, 19}}},
|
||||
{{&grpc_static_metadata_refcounts[77], {{g_bytes + 809, 17}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[78], {{g_bytes + 828, 13}}},
|
||||
{{&grpc_static_metadata_refcounts[78], {{g_bytes + 826, 13}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[79], {{g_bytes + 839, 8}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[80], {{g_bytes + 847, 19}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[81], {{g_bytes + 866, 13}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[21], {{g_bytes + 282, 8}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[79], {{g_bytes + 841, 11}}},
|
||||
{{&grpc_static_metadata_refcounts[82], {{g_bytes + 879, 11}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[80], {{g_bytes + 852, 4}}},
|
||||
{{&grpc_static_metadata_refcounts[83], {{g_bytes + 890, 4}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[81], {{g_bytes + 856, 8}}},
|
||||
{{&grpc_static_metadata_refcounts[84], {{g_bytes + 894, 8}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[82], {{g_bytes + 864, 12}}},
|
||||
{{&grpc_static_metadata_refcounts[85], {{g_bytes + 902, 12}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[83], {{g_bytes + 876, 18}}},
|
||||
{{&grpc_static_metadata_refcounts[86], {{g_bytes + 914, 18}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[84], {{g_bytes + 894, 19}}},
|
||||
{{&grpc_static_metadata_refcounts[87], {{g_bytes + 932, 19}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[85], {{g_bytes + 913, 5}}},
|
||||
{{&grpc_static_metadata_refcounts[88], {{g_bytes + 951, 5}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[86], {{g_bytes + 918, 7}}},
|
||||
{{&grpc_static_metadata_refcounts[89], {{g_bytes + 956, 7}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[87], {{g_bytes + 925, 7}}},
|
||||
{{&grpc_static_metadata_refcounts[90], {{g_bytes + 963, 7}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[88], {{g_bytes + 932, 11}}},
|
||||
{{&grpc_static_metadata_refcounts[91], {{g_bytes + 970, 11}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[89], {{g_bytes + 943, 6}}},
|
||||
{{&grpc_static_metadata_refcounts[92], {{g_bytes + 981, 6}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[90], {{g_bytes + 949, 10}}},
|
||||
{{&grpc_static_metadata_refcounts[93], {{g_bytes + 987, 10}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[91], {{g_bytes + 959, 25}}},
|
||||
{{&grpc_static_metadata_refcounts[94], {{g_bytes + 997, 25}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[92], {{g_bytes + 984, 17}}},
|
||||
{{&grpc_static_metadata_refcounts[95], {{g_bytes + 1022, 17}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[19], {{g_bytes + 268, 10}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[93], {{g_bytes + 1001, 4}}},
|
||||
{{&grpc_static_metadata_refcounts[96], {{g_bytes + 1039, 4}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[94], {{g_bytes + 1005, 3}}},
|
||||
{{&grpc_static_metadata_refcounts[97], {{g_bytes + 1043, 3}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[95], {{g_bytes + 1008, 16}}},
|
||||
{{&grpc_static_metadata_refcounts[98], {{g_bytes + 1046, 16}}},
|
||||
{&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}},
|
||||
{{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}},
|
||||
{&grpc_static_metadata_refcounts[32], {{g_bytes + 433, 8}}}},
|
||||
{&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}}},
|
||||
{{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}},
|
||||
{&grpc_static_metadata_refcounts[34], {{g_bytes + 445, 7}}}},
|
||||
{&grpc_static_metadata_refcounts[37], {{g_bytes + 483, 7}}}},
|
||||
{{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}},
|
||||
{&grpc_static_metadata_refcounts[96], {{g_bytes + 1024, 16}}}},
|
||||
{&grpc_static_metadata_refcounts[99], {{g_bytes + 1062, 16}}}},
|
||||
{{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}},
|
||||
{&grpc_static_metadata_refcounts[33], {{g_bytes + 441, 4}}}},
|
||||
{&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}}},
|
||||
{{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}},
|
||||
{&grpc_static_metadata_refcounts[97], {{g_bytes + 1040, 13}}}},
|
||||
{&grpc_static_metadata_refcounts[100], {{g_bytes + 1078, 13}}}},
|
||||
{{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}},
|
||||
{&grpc_static_metadata_refcounts[98], {{g_bytes + 1053, 12}}}},
|
||||
{&grpc_static_metadata_refcounts[101], {{g_bytes + 1091, 12}}}},
|
||||
{{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}},
|
||||
{&grpc_static_metadata_refcounts[99], {{g_bytes + 1065, 21}}}},
|
||||
{&grpc_static_metadata_refcounts[102], {{g_bytes + 1103, 21}}}},
|
||||
{{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}},
|
||||
{&grpc_static_metadata_refcounts[32], {{g_bytes + 433, 8}}}},
|
||||
{&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}}},
|
||||
{{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}},
|
||||
{&grpc_static_metadata_refcounts[33], {{g_bytes + 441, 4}}}},
|
||||
{&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}}},
|
||||
{{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}},
|
||||
{&grpc_static_metadata_refcounts[97], {{g_bytes + 1040, 13}}}},
|
||||
{&grpc_static_metadata_refcounts[100], {{g_bytes + 1078, 13}}}},
|
||||
};
|
||||
bool grpc_static_callout_is_default[GRPC_BATCH_CALLOUTS_COUNT] = {
|
||||
true, // :path
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
#include "src/core/lib/transport/metadata.h"
|
||||
|
||||
#define GRPC_STATIC_MDSTR_COUNT 100
|
||||
#define GRPC_STATIC_MDSTR_COUNT 103
|
||||
extern const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT];
|
||||
/* ":path" */
|
||||
#define GRPC_MDSTR_PATH (grpc_static_slice_table[0])
|
||||
|
|
@ -93,149 +93,155 @@ extern const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT];
|
|||
/* "/grpc.lb.v1.LoadBalancer/BalanceLoad" */
|
||||
#define GRPC_MDSTR_SLASH_GRPC_DOT_LB_DOT_V1_DOT_LOADBALANCER_SLASH_BALANCELOAD \
|
||||
(grpc_static_slice_table[28])
|
||||
/* "message/deflate" */
|
||||
#define GRPC_MDSTR_MESSAGE_SLASH_DEFLATE (grpc_static_slice_table[29])
|
||||
/* "message/gzip" */
|
||||
#define GRPC_MDSTR_MESSAGE_SLASH_GZIP (grpc_static_slice_table[30])
|
||||
/* "stream/gzip" */
|
||||
#define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table[31])
|
||||
/* "0" */
|
||||
#define GRPC_MDSTR_0 (grpc_static_slice_table[29])
|
||||
#define GRPC_MDSTR_0 (grpc_static_slice_table[32])
|
||||
/* "1" */
|
||||
#define GRPC_MDSTR_1 (grpc_static_slice_table[30])
|
||||
#define GRPC_MDSTR_1 (grpc_static_slice_table[33])
|
||||
/* "2" */
|
||||
#define GRPC_MDSTR_2 (grpc_static_slice_table[31])
|
||||
#define GRPC_MDSTR_2 (grpc_static_slice_table[34])
|
||||
/* "identity" */
|
||||
#define GRPC_MDSTR_IDENTITY (grpc_static_slice_table[32])
|
||||
#define GRPC_MDSTR_IDENTITY (grpc_static_slice_table[35])
|
||||
/* "gzip" */
|
||||
#define GRPC_MDSTR_GZIP (grpc_static_slice_table[33])
|
||||
#define GRPC_MDSTR_GZIP (grpc_static_slice_table[36])
|
||||
/* "deflate" */
|
||||
#define GRPC_MDSTR_DEFLATE (grpc_static_slice_table[34])
|
||||
#define GRPC_MDSTR_DEFLATE (grpc_static_slice_table[37])
|
||||
/* "trailers" */
|
||||
#define GRPC_MDSTR_TRAILERS (grpc_static_slice_table[35])
|
||||
#define GRPC_MDSTR_TRAILERS (grpc_static_slice_table[38])
|
||||
/* "application/grpc" */
|
||||
#define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table[36])
|
||||
#define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table[39])
|
||||
/* "POST" */
|
||||
#define GRPC_MDSTR_POST (grpc_static_slice_table[37])
|
||||
#define GRPC_MDSTR_POST (grpc_static_slice_table[40])
|
||||
/* "200" */
|
||||
#define GRPC_MDSTR_200 (grpc_static_slice_table[38])
|
||||
#define GRPC_MDSTR_200 (grpc_static_slice_table[41])
|
||||
/* "404" */
|
||||
#define GRPC_MDSTR_404 (grpc_static_slice_table[39])
|
||||
#define GRPC_MDSTR_404 (grpc_static_slice_table[42])
|
||||
/* "http" */
|
||||
#define GRPC_MDSTR_HTTP (grpc_static_slice_table[40])
|
||||
#define GRPC_MDSTR_HTTP (grpc_static_slice_table[43])
|
||||
/* "https" */
|
||||
#define GRPC_MDSTR_HTTPS (grpc_static_slice_table[41])
|
||||
#define GRPC_MDSTR_HTTPS (grpc_static_slice_table[44])
|
||||
/* "grpc" */
|
||||
#define GRPC_MDSTR_GRPC (grpc_static_slice_table[42])
|
||||
#define GRPC_MDSTR_GRPC (grpc_static_slice_table[45])
|
||||
/* "GET" */
|
||||
#define GRPC_MDSTR_GET (grpc_static_slice_table[43])
|
||||
#define GRPC_MDSTR_GET (grpc_static_slice_table[46])
|
||||
/* "PUT" */
|
||||
#define GRPC_MDSTR_PUT (grpc_static_slice_table[44])
|
||||
#define GRPC_MDSTR_PUT (grpc_static_slice_table[47])
|
||||
/* "/" */
|
||||
#define GRPC_MDSTR_SLASH (grpc_static_slice_table[45])
|
||||
#define GRPC_MDSTR_SLASH (grpc_static_slice_table[48])
|
||||
/* "/index.html" */
|
||||
#define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table[46])
|
||||
#define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table[49])
|
||||
/* "204" */
|
||||
#define GRPC_MDSTR_204 (grpc_static_slice_table[47])
|
||||
#define GRPC_MDSTR_204 (grpc_static_slice_table[50])
|
||||
/* "206" */
|
||||
#define GRPC_MDSTR_206 (grpc_static_slice_table[48])
|
||||
#define GRPC_MDSTR_206 (grpc_static_slice_table[51])
|
||||
/* "304" */
|
||||
#define GRPC_MDSTR_304 (grpc_static_slice_table[49])
|
||||
#define GRPC_MDSTR_304 (grpc_static_slice_table[52])
|
||||
/* "400" */
|
||||
#define GRPC_MDSTR_400 (grpc_static_slice_table[50])
|
||||
#define GRPC_MDSTR_400 (grpc_static_slice_table[53])
|
||||
/* "500" */
|
||||
#define GRPC_MDSTR_500 (grpc_static_slice_table[51])
|
||||
#define GRPC_MDSTR_500 (grpc_static_slice_table[54])
|
||||
/* "accept-charset" */
|
||||
#define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table[52])
|
||||
#define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table[55])
|
||||
/* "gzip, deflate" */
|
||||
#define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table[53])
|
||||
#define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table[56])
|
||||
/* "accept-language" */
|
||||
#define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table[54])
|
||||
#define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table[57])
|
||||
/* "accept-ranges" */
|
||||
#define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table[55])
|
||||
#define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table[58])
|
||||
/* "accept" */
|
||||
#define GRPC_MDSTR_ACCEPT (grpc_static_slice_table[56])
|
||||
#define GRPC_MDSTR_ACCEPT (grpc_static_slice_table[59])
|
||||
/* "access-control-allow-origin" */
|
||||
#define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table[57])
|
||||
#define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table[60])
|
||||
/* "age" */
|
||||
#define GRPC_MDSTR_AGE (grpc_static_slice_table[58])
|
||||
#define GRPC_MDSTR_AGE (grpc_static_slice_table[61])
|
||||
/* "allow" */
|
||||
#define GRPC_MDSTR_ALLOW (grpc_static_slice_table[59])
|
||||
#define GRPC_MDSTR_ALLOW (grpc_static_slice_table[62])
|
||||
/* "authorization" */
|
||||
#define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table[60])
|
||||
#define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table[63])
|
||||
/* "cache-control" */
|
||||
#define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table[61])
|
||||
#define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table[64])
|
||||
/* "content-disposition" */
|
||||
#define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table[62])
|
||||
#define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table[65])
|
||||
/* "content-language" */
|
||||
#define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table[63])
|
||||
#define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table[66])
|
||||
/* "content-length" */
|
||||
#define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table[64])
|
||||
#define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table[67])
|
||||
/* "content-location" */
|
||||
#define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table[65])
|
||||
#define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table[68])
|
||||
/* "content-range" */
|
||||
#define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table[66])
|
||||
#define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table[69])
|
||||
/* "cookie" */
|
||||
#define GRPC_MDSTR_COOKIE (grpc_static_slice_table[67])
|
||||
#define GRPC_MDSTR_COOKIE (grpc_static_slice_table[70])
|
||||
/* "date" */
|
||||
#define GRPC_MDSTR_DATE (grpc_static_slice_table[68])
|
||||
#define GRPC_MDSTR_DATE (grpc_static_slice_table[71])
|
||||
/* "etag" */
|
||||
#define GRPC_MDSTR_ETAG (grpc_static_slice_table[69])
|
||||
#define GRPC_MDSTR_ETAG (grpc_static_slice_table[72])
|
||||
/* "expect" */
|
||||
#define GRPC_MDSTR_EXPECT (grpc_static_slice_table[70])
|
||||
#define GRPC_MDSTR_EXPECT (grpc_static_slice_table[73])
|
||||
/* "expires" */
|
||||
#define GRPC_MDSTR_EXPIRES (grpc_static_slice_table[71])
|
||||
#define GRPC_MDSTR_EXPIRES (grpc_static_slice_table[74])
|
||||
/* "from" */
|
||||
#define GRPC_MDSTR_FROM (grpc_static_slice_table[72])
|
||||
#define GRPC_MDSTR_FROM (grpc_static_slice_table[75])
|
||||
/* "if-match" */
|
||||
#define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table[73])
|
||||
#define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table[76])
|
||||
/* "if-modified-since" */
|
||||
#define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table[74])
|
||||
#define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table[77])
|
||||
/* "if-none-match" */
|
||||
#define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table[75])
|
||||
#define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table[78])
|
||||
/* "if-range" */
|
||||
#define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table[76])
|
||||
#define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table[79])
|
||||
/* "if-unmodified-since" */
|
||||
#define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table[77])
|
||||
#define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table[80])
|
||||
/* "last-modified" */
|
||||
#define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table[78])
|
||||
#define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table[81])
|
||||
/* "lb-cost-bin" */
|
||||
#define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table[79])
|
||||
#define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table[82])
|
||||
/* "link" */
|
||||
#define GRPC_MDSTR_LINK (grpc_static_slice_table[80])
|
||||
#define GRPC_MDSTR_LINK (grpc_static_slice_table[83])
|
||||
/* "location" */
|
||||
#define GRPC_MDSTR_LOCATION (grpc_static_slice_table[81])
|
||||
#define GRPC_MDSTR_LOCATION (grpc_static_slice_table[84])
|
||||
/* "max-forwards" */
|
||||
#define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table[82])
|
||||
#define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table[85])
|
||||
/* "proxy-authenticate" */
|
||||
#define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table[83])
|
||||
#define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table[86])
|
||||
/* "proxy-authorization" */
|
||||
#define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table[84])
|
||||
#define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table[87])
|
||||
/* "range" */
|
||||
#define GRPC_MDSTR_RANGE (grpc_static_slice_table[85])
|
||||
#define GRPC_MDSTR_RANGE (grpc_static_slice_table[88])
|
||||
/* "referer" */
|
||||
#define GRPC_MDSTR_REFERER (grpc_static_slice_table[86])
|
||||
#define GRPC_MDSTR_REFERER (grpc_static_slice_table[89])
|
||||
/* "refresh" */
|
||||
#define GRPC_MDSTR_REFRESH (grpc_static_slice_table[87])
|
||||
#define GRPC_MDSTR_REFRESH (grpc_static_slice_table[90])
|
||||
/* "retry-after" */
|
||||
#define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table[88])
|
||||
#define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table[91])
|
||||
/* "server" */
|
||||
#define GRPC_MDSTR_SERVER (grpc_static_slice_table[89])
|
||||
#define GRPC_MDSTR_SERVER (grpc_static_slice_table[92])
|
||||
/* "set-cookie" */
|
||||
#define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table[90])
|
||||
#define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table[93])
|
||||
/* "strict-transport-security" */
|
||||
#define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table[91])
|
||||
#define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table[94])
|
||||
/* "transfer-encoding" */
|
||||
#define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table[92])
|
||||
#define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table[95])
|
||||
/* "vary" */
|
||||
#define GRPC_MDSTR_VARY (grpc_static_slice_table[93])
|
||||
#define GRPC_MDSTR_VARY (grpc_static_slice_table[96])
|
||||
/* "via" */
|
||||
#define GRPC_MDSTR_VIA (grpc_static_slice_table[94])
|
||||
#define GRPC_MDSTR_VIA (grpc_static_slice_table[97])
|
||||
/* "www-authenticate" */
|
||||
#define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table[95])
|
||||
#define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table[98])
|
||||
/* "identity,deflate" */
|
||||
#define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table[96])
|
||||
#define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table[99])
|
||||
/* "identity,gzip" */
|
||||
#define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table[97])
|
||||
#define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table[100])
|
||||
/* "deflate,gzip" */
|
||||
#define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table[98])
|
||||
#define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table[101])
|
||||
/* "identity,deflate,gzip" */
|
||||
#define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
|
||||
(grpc_static_slice_table[99])
|
||||
(grpc_static_slice_table[102])
|
||||
|
||||
extern const grpc_slice_refcount_vtable grpc_static_metadata_vtable;
|
||||
extern grpc_slice_refcount
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ void grpc_deadline_filter_init(void);
|
|||
void grpc_deadline_filter_shutdown(void);
|
||||
void grpc_client_channel_init(void);
|
||||
void grpc_client_channel_shutdown(void);
|
||||
void grpc_tsi_gts_init(void);
|
||||
void grpc_tsi_gts_shutdown(void);
|
||||
void grpc_tsi_alts_init(void);
|
||||
void grpc_tsi_alts_shutdown(void);
|
||||
void grpc_server_load_reporting_plugin_init(void);
|
||||
void grpc_server_load_reporting_plugin_shutdown(void);
|
||||
|
||||
|
|
@ -40,8 +40,8 @@ void grpc_register_built_in_plugins(void) {
|
|||
grpc_deadline_filter_shutdown);
|
||||
grpc_register_plugin(grpc_client_channel_init,
|
||||
grpc_client_channel_shutdown);
|
||||
grpc_register_plugin(grpc_tsi_gts_init,
|
||||
grpc_tsi_gts_shutdown);
|
||||
grpc_register_plugin(grpc_tsi_alts_init,
|
||||
grpc_tsi_alts_shutdown);
|
||||
grpc_register_plugin(grpc_server_load_reporting_plugin_init,
|
||||
grpc_server_load_reporting_plugin_shutdown);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ void grpc_http_filters_init(void);
|
|||
void grpc_http_filters_shutdown(void);
|
||||
void grpc_chttp2_plugin_init(void);
|
||||
void grpc_chttp2_plugin_shutdown(void);
|
||||
void grpc_tsi_gts_init(void);
|
||||
void grpc_tsi_gts_shutdown(void);
|
||||
void grpc_tsi_alts_init(void);
|
||||
void grpc_tsi_alts_shutdown(void);
|
||||
void grpc_deadline_filter_init(void);
|
||||
void grpc_deadline_filter_shutdown(void);
|
||||
void grpc_client_channel_init(void);
|
||||
|
|
@ -58,8 +58,8 @@ void grpc_register_built_in_plugins(void) {
|
|||
grpc_http_filters_shutdown);
|
||||
grpc_register_plugin(grpc_chttp2_plugin_init,
|
||||
grpc_chttp2_plugin_shutdown);
|
||||
grpc_register_plugin(grpc_tsi_gts_init,
|
||||
grpc_tsi_gts_shutdown);
|
||||
grpc_register_plugin(grpc_tsi_alts_init,
|
||||
grpc_tsi_alts_shutdown);
|
||||
grpc_register_plugin(grpc_deadline_filter_init,
|
||||
grpc_deadline_filter_shutdown);
|
||||
grpc_register_plugin(grpc_client_channel_init,
|
||||
|
|
|
|||
|
|
@ -16,25 +16,27 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include "src/core/tsi/gts_transport_security.h"
|
||||
#include "src/core/tsi/alts_transport_security.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
static gts_shared_resource g_gts_resource;
|
||||
static alts_shared_resource g_alts_resource;
|
||||
|
||||
gts_shared_resource* gts_get_shared_resource(void) { return &g_gts_resource; }
|
||||
|
||||
void grpc_tsi_gts_init() {
|
||||
memset(&g_gts_resource, 0, sizeof(gts_shared_resource));
|
||||
gpr_mu_init(&g_gts_resource.mu);
|
||||
alts_shared_resource* alts_get_shared_resource(void) {
|
||||
return &g_alts_resource;
|
||||
}
|
||||
|
||||
void grpc_tsi_gts_shutdown() {
|
||||
gpr_mu_destroy(&g_gts_resource.mu);
|
||||
if (g_gts_resource.cq == nullptr) {
|
||||
void grpc_tsi_alts_init() {
|
||||
memset(&g_alts_resource, 0, sizeof(alts_shared_resource));
|
||||
gpr_mu_init(&g_alts_resource.mu);
|
||||
}
|
||||
|
||||
void grpc_tsi_alts_shutdown() {
|
||||
gpr_mu_destroy(&g_alts_resource.mu);
|
||||
if (g_alts_resource.cq == nullptr) {
|
||||
return;
|
||||
}
|
||||
grpc_completion_queue_destroy(g_gts_resource.cq);
|
||||
grpc_channel_destroy(g_gts_resource.channel);
|
||||
gpr_thd_join(g_gts_resource.thread_id);
|
||||
grpc_completion_queue_destroy(g_alts_resource.cq);
|
||||
grpc_channel_destroy(g_alts_resource.channel);
|
||||
gpr_thd_join(g_alts_resource.thread_id);
|
||||
}
|
||||
|
|
@ -16,22 +16,22 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#ifndef GRPC_CORE_TSI_GTS_TRANSPORT_SECURITY_H
|
||||
#define GRPC_CORE_TSI_GTS_TRANSPORT_SECURITY_H
|
||||
#ifndef GRPC_CORE_TSI_ALTS_TRANSPORT_SECURITY_H
|
||||
#define GRPC_CORE_TSI_ALTS_TRANSPORT_SECURITY_H
|
||||
|
||||
#include <grpc/grpc.h>
|
||||
#include <grpc/support/sync.h>
|
||||
#include <grpc/support/thd.h>
|
||||
|
||||
typedef struct gts_shared_resource {
|
||||
typedef struct alts_shared_resource {
|
||||
gpr_thd_id thread_id;
|
||||
grpc_channel* channel;
|
||||
grpc_completion_queue* cq;
|
||||
gpr_mu mu;
|
||||
} gts_shared_resource;
|
||||
} alts_shared_resource;
|
||||
|
||||
/* This method returns the address of gts_shared_resource object shared by all
|
||||
/* This method returns the address of alts_shared_resource object shared by all
|
||||
* TSI handshakes. */
|
||||
gts_shared_resource* gts_get_shared_resource(void);
|
||||
alts_shared_resource* alts_get_shared_resource(void);
|
||||
|
||||
#endif /* GRPC_CORE_TSI_GTS_TRANSPORT_SECURITY_H */
|
||||
#endif /* GRPC_CORE_TSI_ALTS_TRANSPORT_SECURITY_H */
|
||||
|
|
@ -685,7 +685,7 @@ namespace Grpc.IntegrationTesting
|
|||
|
||||
private static Metadata CreateClientCompressionMetadata(bool compressed)
|
||||
{
|
||||
var algorithmName = compressed ? "gzip" : "identity";
|
||||
var algorithmName = compressed ? "message/gzip" : "identity";
|
||||
return new Metadata
|
||||
{
|
||||
{ new Metadata.Entry(Metadata.CompressionRequestAlgorithmMetadataKey, algorithmName) }
|
||||
|
|
|
|||
|
|
@ -46,10 +46,10 @@
|
|||
hostConfig.compressAlgorithm = GRPC_COMPRESS_NONE;
|
||||
break;
|
||||
case GRPCCompressDeflate:
|
||||
hostConfig.compressAlgorithm = GRPC_COMPRESS_DEFLATE;
|
||||
hostConfig.compressAlgorithm = GRPC_COMPRESS_MESSAGE_DEFLATE;
|
||||
break;
|
||||
case GRPCCompressGzip:
|
||||
hostConfig.compressAlgorithm = GRPC_COMPRESS_GZIP;
|
||||
hostConfig.compressAlgorithm = GRPC_COMPRESS_MESSAGE_GZIP;
|
||||
break;
|
||||
default:
|
||||
NSLog(@"Invalid compression algorithm");
|
||||
|
|
|
|||
|
|
@ -189,6 +189,7 @@ static grpc_channel_args *BuildChannelArgs(NSDictionary *dictionary) {
|
|||
timeout = 0;
|
||||
}
|
||||
grpc_slice host_slice;
|
||||
memset(&host_slice, 0, sizeof(host_slice));
|
||||
if (serverName) {
|
||||
host_slice = grpc_slice_from_copied_string(serverName.UTF8String);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,8 +68,6 @@
|
|||
_op.data.send_initial_metadata.metadata = metadata.grpc_metadataArray;
|
||||
_op.data.send_initial_metadata.maybe_compression_level.is_set = false;
|
||||
_op.data.send_initial_metadata.maybe_compression_level.level = 0;
|
||||
_op.data.send_initial_metadata.maybe_stream_compression_level.is_set = false;
|
||||
_op.data.send_initial_metadata.maybe_stream_compression_level.level = 0;
|
||||
_op.flags = flags;
|
||||
_handler = handler;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@
|
|||
# limitations under the License.
|
||||
"""Invocation-side implementation of gRPC Python."""
|
||||
|
||||
import logging
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
import logging
|
||||
|
||||
import grpc
|
||||
from grpc import _common
|
||||
|
|
@ -882,8 +882,12 @@ def _unsubscribe(state, callback):
|
|||
|
||||
|
||||
def _options(options):
|
||||
return list(options) + [(cygrpc.ChannelArgKey.primary_user_agent_string,
|
||||
_USER_AGENT)]
|
||||
return list(options) + [
|
||||
(
|
||||
cygrpc.ChannelArgKey.primary_user_agent_string,
|
||||
_USER_AGENT,
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
class Channel(grpc.Channel):
|
||||
|
|
@ -892,14 +896,13 @@ class Channel(grpc.Channel):
|
|||
def __init__(self, target, options, credentials):
|
||||
"""Constructor.
|
||||
|
||||
Args:
|
||||
target: The target to which to connect.
|
||||
options: Configuration options for the channel.
|
||||
credentials: A cygrpc.ChannelCredentials or None.
|
||||
"""
|
||||
Args:
|
||||
target: The target to which to connect.
|
||||
options: Configuration options for the channel.
|
||||
credentials: A cygrpc.ChannelCredentials or None.
|
||||
"""
|
||||
self._channel = cygrpc.Channel(
|
||||
_common.encode(target), _common.channel_args(_options(options)),
|
||||
credentials)
|
||||
_common.encode(target), _options(options), credentials)
|
||||
self._call_state = _ChannelCallState(self._channel)
|
||||
self._connectivity_state = _ChannelConnectivityState(self._channel)
|
||||
|
||||
|
|
|
|||
|
|
@ -79,16 +79,6 @@ def decode(b):
|
|||
return b.decode('latin1')
|
||||
|
||||
|
||||
def channel_args(options):
|
||||
cygrpc_args = []
|
||||
for key, value in options:
|
||||
if isinstance(value, six.string_types):
|
||||
cygrpc_args.append(cygrpc.ChannelArg(encode(key), encode(value)))
|
||||
else:
|
||||
cygrpc_args.append(cygrpc.ChannelArg(encode(key), value))
|
||||
return cygrpc.ChannelArgs(cygrpc_args)
|
||||
|
||||
|
||||
def _transform(message, transformer, exception_message):
|
||||
if transformer is None:
|
||||
return message
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
# Copyright 2018 gRPC authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
|
||||
cdef void* _copy_pointer(void* pointer)
|
||||
|
||||
|
||||
cdef void _destroy_pointer(void* pointer)
|
||||
|
||||
|
||||
cdef int _compare_pointer(void* first_pointer, void* second_pointer)
|
||||
|
||||
|
||||
cdef class _ArgumentProcessor:
|
||||
|
||||
cdef grpc_arg c_argument
|
||||
|
||||
cdef void c(self, argument, grpc_arg_pointer_vtable *vtable, references)
|
||||
|
||||
|
||||
cdef class _ArgumentsProcessor:
|
||||
|
||||
cdef readonly tuple _arguments
|
||||
cdef list _argument_processors
|
||||
cdef readonly list _references
|
||||
cdef grpc_channel_args _c_arguments
|
||||
|
||||
cdef grpc_channel_args *c(self, grpc_arg_pointer_vtable *vtable)
|
||||
cdef un_c(self)
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
# Copyright 2018 gRPC authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
cimport cpython
|
||||
|
||||
|
||||
cdef void* _copy_pointer(void* pointer):
|
||||
return pointer
|
||||
|
||||
|
||||
cdef void _destroy_pointer(void* pointer):
|
||||
pass
|
||||
|
||||
|
||||
cdef int _compare_pointer(void* first_pointer, void* second_pointer):
|
||||
if first_pointer < second_pointer:
|
||||
return -1
|
||||
elif first_pointer > second_pointer:
|
||||
return 1
|
||||
else:
|
||||
return 0
|
||||
|
||||
|
||||
cdef class _ArgumentProcessor:
|
||||
|
||||
cdef void c(self, argument, grpc_arg_pointer_vtable *vtable, references):
|
||||
key, value = argument
|
||||
cdef bytes encoded_key = _encode(key)
|
||||
if encoded_key is not key:
|
||||
references.append(encoded_key)
|
||||
self.c_argument.key = encoded_key
|
||||
if isinstance(value, int):
|
||||
self.c_argument.type = GRPC_ARG_INTEGER
|
||||
self.c_argument.value.integer = value
|
||||
elif isinstance(value, (bytes, str, unicode,)):
|
||||
self.c_argument.type = GRPC_ARG_STRING
|
||||
encoded_value = _encode(value)
|
||||
if encoded_value is not value:
|
||||
references.append(encoded_value)
|
||||
self.c_argument.value.string = encoded_value
|
||||
elif hasattr(value, '__int__'):
|
||||
# Pointer objects must override __int__() to return
|
||||
# the underlying C address (Python ints are word size). The
|
||||
# lifecycle of the pointer is fixed to the lifecycle of the
|
||||
# python object wrapping it.
|
||||
self.c_argument.type = GRPC_ARG_POINTER
|
||||
self.c_argument.value.pointer.vtable = vtable
|
||||
self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))
|
||||
else:
|
||||
raise TypeError(
|
||||
'Expected int, bytes, or behavior, got {}'.format(type(value)))
|
||||
|
||||
|
||||
cdef class _ArgumentsProcessor:
|
||||
|
||||
def __cinit__(self, arguments):
|
||||
self._arguments = () if arguments is None else tuple(arguments)
|
||||
self._argument_processors = []
|
||||
self._references = []
|
||||
|
||||
cdef grpc_channel_args *c(self, grpc_arg_pointer_vtable *vtable):
|
||||
self._c_arguments.arguments_length = len(self._arguments)
|
||||
if self._c_arguments.arguments_length == 0:
|
||||
return NULL
|
||||
else:
|
||||
self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
|
||||
self._c_arguments.arguments_length * sizeof(grpc_arg))
|
||||
for index, argument in enumerate(self._arguments):
|
||||
argument_processor = _ArgumentProcessor()
|
||||
argument_processor.c(argument, vtable, self._references)
|
||||
self._c_arguments.arguments[index] = argument_processor.c_argument
|
||||
self._argument_processors.append(argument_processor)
|
||||
return &self._c_arguments
|
||||
|
||||
cdef un_c(self):
|
||||
if self._arguments:
|
||||
gpr_free(self._c_arguments.arguments)
|
||||
|
|
@ -15,5 +15,7 @@
|
|||
|
||||
cdef class Channel:
|
||||
|
||||
cdef grpc_arg_pointer_vtable _vtable
|
||||
cdef grpc_channel *c_channel
|
||||
cdef list references
|
||||
cdef readonly _ArgumentsProcessor _arguments_processor
|
||||
|
|
|
|||
|
|
@ -17,26 +17,25 @@ cimport cpython
|
|||
|
||||
cdef class Channel:
|
||||
|
||||
def __cinit__(self, bytes target, ChannelArgs arguments,
|
||||
def __cinit__(self, bytes target, object arguments,
|
||||
ChannelCredentials channel_credentials=None):
|
||||
grpc_init()
|
||||
cdef grpc_channel_args *c_arguments = NULL
|
||||
cdef char *c_target = NULL
|
||||
self.c_channel = NULL
|
||||
self._vtable.copy = &_copy_pointer
|
||||
self._vtable.destroy = &_destroy_pointer
|
||||
self._vtable.cmp = &_compare_pointer
|
||||
cdef _ArgumentsProcessor arguments_processor = _ArgumentsProcessor(
|
||||
arguments)
|
||||
cdef grpc_channel_args *c_arguments = arguments_processor.c(&self._vtable)
|
||||
self.references = []
|
||||
if len(arguments) > 0:
|
||||
c_arguments = &arguments.c_args
|
||||
self.references.append(arguments)
|
||||
c_target = target
|
||||
if channel_credentials is None:
|
||||
with nogil:
|
||||
self.c_channel = grpc_insecure_channel_create(c_target, c_arguments,
|
||||
NULL)
|
||||
self.c_channel = grpc_insecure_channel_create(c_target, c_arguments, NULL)
|
||||
else:
|
||||
c_channel_credentials = channel_credentials.c()
|
||||
self.c_channel = grpc_secure_channel_create(
|
||||
c_channel_credentials, c_target, c_arguments, NULL)
|
||||
grpc_channel_credentials_release(c_channel_credentials)
|
||||
arguments_processor.un_c()
|
||||
self.references.append(target)
|
||||
self.references.append(arguments)
|
||||
|
||||
|
|
|
|||
|
|
@ -276,15 +276,10 @@ cdef extern from "grpc/grpc.h":
|
|||
uint8_t is_set
|
||||
grpc_compression_level level
|
||||
|
||||
ctypedef struct grpc_op_send_initial_metadata_maybe_stream_compression_level:
|
||||
uint8_t is_set
|
||||
grpc_stream_compression_level level
|
||||
|
||||
ctypedef struct grpc_op_data_send_initial_metadata:
|
||||
size_t count
|
||||
grpc_metadata *metadata
|
||||
grpc_op_send_initial_metadata_maybe_compression_level maybe_compression_level
|
||||
grpc_op_send_initial_metadata_maybe_stream_compression_level maybe_stream_compression_level
|
||||
|
||||
ctypedef struct grpc_op_data_send_status_from_server:
|
||||
size_t trailing_metadata_count
|
||||
|
|
@ -562,8 +557,9 @@ cdef extern from "grpc/compression.h":
|
|||
|
||||
ctypedef enum grpc_compression_algorithm:
|
||||
GRPC_COMPRESS_NONE
|
||||
GRPC_COMPRESS_DEFLATE
|
||||
GRPC_COMPRESS_GZIP
|
||||
GRPC_COMPRESS_MESSAGE_DEFLATE
|
||||
GRPC_COMPRESS_MESSAGE_GZIP
|
||||
GRPC_COMPRESS_STREAM_GZIP
|
||||
GRPC_COMPRESS_ALGORITHMS_COUNT
|
||||
|
||||
ctypedef enum grpc_compression_level:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ cdef class SendInitialMetadataOperation(Operation):
|
|||
self.c_op.data.send_initial_metadata.metadata = self._c_initial_metadata
|
||||
self.c_op.data.send_initial_metadata.count = self._c_initial_metadata_count
|
||||
self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0
|
||||
self.c_op.data.send_initial_metadata.maybe_stream_compression_level.is_set = 0
|
||||
|
||||
cdef void un_c(self):
|
||||
_release_c_metadata(
|
||||
|
|
|
|||
|
|
@ -29,19 +29,6 @@ cdef class SslPemKeyCertPair:
|
|||
cdef readonly object private_key, certificate_chain
|
||||
|
||||
|
||||
cdef class ChannelArg:
|
||||
|
||||
cdef grpc_arg c_arg
|
||||
cdef grpc_arg_pointer_vtable ptr_vtable
|
||||
cdef readonly object key, value
|
||||
|
||||
|
||||
cdef class ChannelArgs:
|
||||
|
||||
cdef grpc_channel_args c_args
|
||||
cdef list args
|
||||
|
||||
|
||||
cdef class CompressionOptions:
|
||||
|
||||
cdef grpc_compression_options c_options
|
||||
|
|
|
|||
|
|
@ -112,8 +112,8 @@ class OperationType:
|
|||
|
||||
class CompressionAlgorithm:
|
||||
none = GRPC_COMPRESS_NONE
|
||||
deflate = GRPC_COMPRESS_DEFLATE
|
||||
gzip = GRPC_COMPRESS_GZIP
|
||||
deflate = GRPC_COMPRESS_MESSAGE_DEFLATE
|
||||
gzip = GRPC_COMPRESS_MESSAGE_GZIP
|
||||
|
||||
|
||||
class CompressionLevel:
|
||||
|
|
@ -157,81 +157,6 @@ cdef class SslPemKeyCertPair:
|
|||
self.c_pair.certificate_chain = self.certificate_chain
|
||||
|
||||
|
||||
|
||||
cdef void* copy_ptr(void* ptr):
|
||||
return ptr
|
||||
|
||||
|
||||
cdef void destroy_ptr(void* ptr):
|
||||
pass
|
||||
|
||||
|
||||
cdef int compare_ptr(void* ptr1, void* ptr2):
|
||||
if ptr1 < ptr2:
|
||||
return -1
|
||||
elif ptr1 > ptr2:
|
||||
return 1
|
||||
else:
|
||||
return 0
|
||||
|
||||
|
||||
cdef class ChannelArg:
|
||||
|
||||
def __cinit__(self, bytes key, value):
|
||||
self.key = key
|
||||
self.value = value
|
||||
self.c_arg.key = self.key
|
||||
if isinstance(value, int):
|
||||
self.c_arg.type = GRPC_ARG_INTEGER
|
||||
self.c_arg.value.integer = self.value
|
||||
elif isinstance(value, bytes):
|
||||
self.c_arg.type = GRPC_ARG_STRING
|
||||
self.c_arg.value.string = self.value
|
||||
elif hasattr(value, '__int__'):
|
||||
# Pointer objects must override __int__() to return
|
||||
# the underlying C address (Python ints are word size). The
|
||||
# lifecycle of the pointer is fixed to the lifecycle of the
|
||||
# python object wrapping it.
|
||||
self.ptr_vtable.copy = ©_ptr
|
||||
self.ptr_vtable.destroy = &destroy_ptr
|
||||
self.ptr_vtable.cmp = &compare_ptr
|
||||
self.c_arg.type = GRPC_ARG_POINTER
|
||||
self.c_arg.value.pointer.vtable = &self.ptr_vtable
|
||||
self.c_arg.value.pointer.address = <void*>(<intptr_t>int(self.value))
|
||||
else:
|
||||
# TODO Add supported pointer types to this message
|
||||
raise TypeError('Expected int or bytes, got {}'.format(type(value)))
|
||||
|
||||
|
||||
cdef class ChannelArgs:
|
||||
|
||||
def __cinit__(self, args):
|
||||
grpc_init()
|
||||
self.args = list(args)
|
||||
for arg in self.args:
|
||||
if not isinstance(arg, ChannelArg):
|
||||
raise TypeError("expected list of ChannelArg")
|
||||
self.c_args.arguments_length = len(self.args)
|
||||
with nogil:
|
||||
self.c_args.arguments = <grpc_arg *>gpr_malloc(
|
||||
self.c_args.arguments_length*sizeof(grpc_arg))
|
||||
for i in range(self.c_args.arguments_length):
|
||||
self.c_args.arguments[i] = (<ChannelArg>self.args[i]).c_arg
|
||||
|
||||
def __dealloc__(self):
|
||||
with nogil:
|
||||
gpr_free(self.c_args.arguments)
|
||||
grpc_shutdown()
|
||||
|
||||
def __len__(self):
|
||||
# self.args is never stale; it's only updated from this file
|
||||
return len(self.args)
|
||||
|
||||
def __getitem__(self, size_t i):
|
||||
# self.args is never stale; it's only updated from this file
|
||||
return self.args[i]
|
||||
|
||||
|
||||
cdef class CompressionOptions:
|
||||
|
||||
def __cinit__(self):
|
||||
|
|
@ -254,8 +179,10 @@ cdef class CompressionOptions:
|
|||
return result
|
||||
|
||||
def to_channel_arg(self):
|
||||
return ChannelArg(GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
|
||||
self.c_options.enabled_algorithms_bitset)
|
||||
return (
|
||||
GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
|
||||
self.c_options.enabled_algorithms_bitset,
|
||||
)
|
||||
|
||||
|
||||
def compression_algorithm_name(grpc_compression_algorithm algorithm):
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@
|
|||
|
||||
cdef class Server:
|
||||
|
||||
cdef grpc_arg_pointer_vtable _vtable
|
||||
cdef readonly _ArgumentsProcessor _arguments_processor
|
||||
cdef grpc_server *c_server
|
||||
cdef bint is_started # start has been called
|
||||
cdef bint is_shutting_down # shutdown has been called
|
||||
|
|
|
|||
|
|
@ -57,16 +57,19 @@ cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapp
|
|||
|
||||
cdef class Server:
|
||||
|
||||
def __cinit__(self, ChannelArgs arguments):
|
||||
def __cinit__(self, object arguments):
|
||||
grpc_init()
|
||||
cdef grpc_channel_args *c_arguments = NULL
|
||||
self.references = []
|
||||
self.registered_completion_queues = []
|
||||
if len(arguments) > 0:
|
||||
c_arguments = &arguments.c_args
|
||||
self.references.append(arguments)
|
||||
with nogil:
|
||||
self.c_server = grpc_server_create(c_arguments, NULL)
|
||||
self._vtable.copy = &_copy_pointer
|
||||
self._vtable.destroy = &_destroy_pointer
|
||||
self._vtable.cmp = &_compare_pointer
|
||||
cdef _ArgumentsProcessor arguments_processor = _ArgumentsProcessor(
|
||||
arguments)
|
||||
cdef grpc_channel_args *c_arguments = arguments_processor.c(&self._vtable)
|
||||
self.c_server = grpc_server_create(c_arguments, NULL)
|
||||
arguments_processor.un_c()
|
||||
self.references.append(arguments)
|
||||
self.is_started = False
|
||||
self.is_shutting_down = False
|
||||
self.is_shutdown = False
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
include "_cygrpc/grpc.pxi"
|
||||
|
||||
include "_cygrpc/arguments.pxd.pxi"
|
||||
include "_cygrpc/call.pxd.pxi"
|
||||
include "_cygrpc/channel.pxd.pxi"
|
||||
include "_cygrpc/credentials.pxd.pxi"
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import sys
|
|||
# TODO(atash): figure out why the coverage tool gets confused about the Cython
|
||||
# coverage plugin when the following files don't have a '.pxi' suffix.
|
||||
include "_cygrpc/grpc_string.pyx.pxi"
|
||||
include "_cygrpc/arguments.pyx.pxi"
|
||||
include "_cygrpc/call.pyx.pxi"
|
||||
include "_cygrpc/channel.pyx.pxi"
|
||||
include "_cygrpc/credentials.pyx.pxi"
|
||||
|
|
|
|||
|
|
@ -797,7 +797,7 @@ class Server(grpc.Server):
|
|||
def __init__(self, thread_pool, generic_handlers, interceptors, options,
|
||||
maximum_concurrent_rpcs):
|
||||
completion_queue = cygrpc.CompletionQueue()
|
||||
server = cygrpc.Server(_common.channel_args(options))
|
||||
server = cygrpc.Server(options)
|
||||
server.register_completion_queue(completion_queue)
|
||||
self._state = _ServerState(completion_queue, server, generic_handlers,
|
||||
_interceptor.service_pipeline(interceptors),
|
||||
|
|
|
|||
|
|
@ -71,6 +71,8 @@ CORE_SOURCE_FILES = [
|
|||
'src/core/lib/channel/handshaker_registry.cc',
|
||||
'src/core/lib/channel/object_registry.cc',
|
||||
'src/core/lib/compression/compression.cc',
|
||||
'src/core/lib/compression/compression_internal.cc',
|
||||
'src/core/lib/compression/compression_ruby.cc',
|
||||
'src/core/lib/compression/message_compress.cc',
|
||||
'src/core/lib/compression/stream_compression.cc',
|
||||
'src/core/lib/compression/stream_compression_gzip.cc',
|
||||
|
|
@ -248,8 +250,8 @@ CORE_SOURCE_FILES = [
|
|||
'src/core/lib/security/transport/tsi_error.cc',
|
||||
'src/core/lib/security/util/json_util.cc',
|
||||
'src/core/lib/surface/init_secure.cc',
|
||||
'src/core/tsi/alts_transport_security.cc',
|
||||
'src/core/tsi/fake_transport_security.cc',
|
||||
'src/core/tsi/gts_transport_security.cc',
|
||||
'src/core/tsi/ssl_transport_security.cc',
|
||||
'src/core/tsi/transport_security_grpc.cc',
|
||||
'src/core/tsi/transport_security.cc',
|
||||
|
|
|
|||
|
|
@ -141,13 +141,16 @@ class CancelManyCallsTest(unittest.TestCase):
|
|||
test_constants.THREAD_CONCURRENCY)
|
||||
|
||||
server_completion_queue = cygrpc.CompletionQueue()
|
||||
server = cygrpc.Server(
|
||||
cygrpc.ChannelArgs([cygrpc.ChannelArg(b'grpc.so_reuseport', 0)]))
|
||||
server = cygrpc.Server([
|
||||
(
|
||||
b'grpc.so_reuseport',
|
||||
0,
|
||||
),
|
||||
])
|
||||
server.register_completion_queue(server_completion_queue)
|
||||
port = server.add_http2_port(b'[::]:0')
|
||||
server.start()
|
||||
channel = cygrpc.Channel('localhost:{}'.format(port).encode(),
|
||||
cygrpc.ChannelArgs([]))
|
||||
channel = cygrpc.Channel('localhost:{}'.format(port).encode(), None)
|
||||
|
||||
state = _State()
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ from tests.unit.framework.common import test_constants
|
|||
|
||||
|
||||
def _channel_and_completion_queue():
|
||||
channel = cygrpc.Channel(b'localhost:54321', cygrpc.ChannelArgs(()))
|
||||
channel = cygrpc.Channel(b'localhost:54321', ())
|
||||
completion_queue = cygrpc.CompletionQueue()
|
||||
return channel, completion_queue
|
||||
|
||||
|
|
|
|||
|
|
@ -96,13 +96,11 @@ class RpcTest(object):
|
|||
|
||||
def setUp(self):
|
||||
self.server_completion_queue = cygrpc.CompletionQueue()
|
||||
self.server = cygrpc.Server(
|
||||
cygrpc.ChannelArgs([cygrpc.ChannelArg(b'grpc.so_reuseport', 0)]))
|
||||
self.server = cygrpc.Server([(b'grpc.so_reuseport', 0)])
|
||||
self.server.register_completion_queue(self.server_completion_queue)
|
||||
port = self.server.add_http2_port(b'[::]:0')
|
||||
self.server.start()
|
||||
self.channel = cygrpc.Channel('localhost:{}'.format(port).encode(),
|
||||
cygrpc.ChannelArgs([]))
|
||||
self.channel = cygrpc.Channel('localhost:{}'.format(port).encode(), [])
|
||||
|
||||
self._server_shutdown_tag = 'server_shutdown_tag'
|
||||
self.server_condition = threading.Condition()
|
||||
|
|
|
|||
|
|
@ -111,13 +111,14 @@ class ReadSomeButNotAllResponsesTest(unittest.TestCase):
|
|||
|
||||
def testReadSomeButNotAllResponses(self):
|
||||
server_completion_queue = cygrpc.CompletionQueue()
|
||||
server = cygrpc.Server(
|
||||
cygrpc.ChannelArgs([cygrpc.ChannelArg(b'grpc.so_reuseport', 0)]))
|
||||
server = cygrpc.Server([(
|
||||
b'grpc.so_reuseport',
|
||||
0,
|
||||
)])
|
||||
server.register_completion_queue(server_completion_queue)
|
||||
port = server.add_http2_port(b'[::]:0')
|
||||
server.start()
|
||||
channel = cygrpc.Channel('localhost:{}'.format(port).encode(),
|
||||
cygrpc.ChannelArgs([]))
|
||||
channel = cygrpc.Channel('localhost:{}'.format(port).encode(), set())
|
||||
|
||||
server_shutdown_tag = 'server_shutdown_tag'
|
||||
server_driver = _ServerDriver(server_completion_queue,
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ class Test(unittest.TestCase):
|
|||
def test_lonely_server(self):
|
||||
server_call_completion_queue = cygrpc.CompletionQueue()
|
||||
server_shutdown_completion_queue = cygrpc.CompletionQueue()
|
||||
server = cygrpc.Server(cygrpc.ChannelArgs([]))
|
||||
server = cygrpc.Server(None)
|
||||
server.register_completion_queue(server_call_completion_queue)
|
||||
server.register_completion_queue(server_shutdown_completion_queue)
|
||||
port = server.add_http2_port(b'[::]:0')
|
||||
|
|
|
|||
|
|
@ -42,12 +42,16 @@ class TypeSmokeTest(unittest.TestCase):
|
|||
del completion_queue
|
||||
|
||||
def testServerUpDown(self):
|
||||
server = cygrpc.Server(
|
||||
cygrpc.ChannelArgs([cygrpc.ChannelArg(b'grpc.so_reuseport', 0)]))
|
||||
server = cygrpc.Server(set([
|
||||
(
|
||||
b'grpc.so_reuseport',
|
||||
0,
|
||||
),
|
||||
]))
|
||||
del server
|
||||
|
||||
def testChannelUpDown(self):
|
||||
channel = cygrpc.Channel(b'[::]:0', cygrpc.ChannelArgs([]))
|
||||
channel = cygrpc.Channel(b'[::]:0', None)
|
||||
del channel
|
||||
|
||||
def test_metadata_plugin_call_credentials_up_down(self):
|
||||
|
|
@ -55,8 +59,12 @@ class TypeSmokeTest(unittest.TestCase):
|
|||
b'test plugin name!')
|
||||
|
||||
def testServerStartNoExplicitShutdown(self):
|
||||
server = cygrpc.Server(
|
||||
cygrpc.ChannelArgs([cygrpc.ChannelArg(b'grpc.so_reuseport', 0)]))
|
||||
server = cygrpc.Server([
|
||||
(
|
||||
b'grpc.so_reuseport',
|
||||
0,
|
||||
),
|
||||
])
|
||||
completion_queue = cygrpc.CompletionQueue()
|
||||
server.register_completion_queue(completion_queue)
|
||||
port = server.add_http2_port(b'[::]:0')
|
||||
|
|
@ -66,8 +74,12 @@ class TypeSmokeTest(unittest.TestCase):
|
|||
|
||||
def testServerStartShutdown(self):
|
||||
completion_queue = cygrpc.CompletionQueue()
|
||||
server = cygrpc.Server(
|
||||
cygrpc.ChannelArgs([cygrpc.ChannelArg(b'grpc.so_reuseport', 0)]))
|
||||
server = cygrpc.Server([
|
||||
(
|
||||
b'grpc.so_reuseport',
|
||||
0,
|
||||
),
|
||||
])
|
||||
server.add_http2_port(b'[::]:0')
|
||||
server.register_completion_queue(completion_queue)
|
||||
server.start()
|
||||
|
|
@ -85,8 +97,12 @@ class ServerClientMixin(object):
|
|||
|
||||
def setUpMixin(self, server_credentials, client_credentials, host_override):
|
||||
self.server_completion_queue = cygrpc.CompletionQueue()
|
||||
self.server = cygrpc.Server(
|
||||
cygrpc.ChannelArgs([cygrpc.ChannelArg(b'grpc.so_reuseport', 0)]))
|
||||
self.server = cygrpc.Server([
|
||||
(
|
||||
b'grpc.so_reuseport',
|
||||
0,
|
||||
),
|
||||
])
|
||||
self.server.register_completion_queue(self.server_completion_queue)
|
||||
if server_credentials:
|
||||
self.port = self.server.add_http2_port(b'[::]:0',
|
||||
|
|
@ -96,16 +112,16 @@ class ServerClientMixin(object):
|
|||
self.server.start()
|
||||
self.client_completion_queue = cygrpc.CompletionQueue()
|
||||
if client_credentials:
|
||||
client_channel_arguments = cygrpc.ChannelArgs([
|
||||
cygrpc.ChannelArg(cygrpc.ChannelArgKey.ssl_target_name_override,
|
||||
host_override)
|
||||
])
|
||||
client_channel_arguments = ((
|
||||
cygrpc.ChannelArgKey.ssl_target_name_override,
|
||||
host_override,
|
||||
),)
|
||||
self.client_channel = cygrpc.Channel('localhost:{}'.format(
|
||||
self.port).encode(), client_channel_arguments,
|
||||
client_credentials)
|
||||
else:
|
||||
self.client_channel = cygrpc.Channel('localhost:{}'.format(
|
||||
self.port).encode(), cygrpc.ChannelArgs([]))
|
||||
self.port).encode(), set())
|
||||
if host_override:
|
||||
self.host_argument = None # default host
|
||||
self.expected_host = host_override
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ _TRAILING_METADATA = (
|
|||
_EXPECTED_TRAILING_METADATA = _TRAILING_METADATA
|
||||
|
||||
|
||||
def user_agent(metadata):
|
||||
def _user_agent(metadata):
|
||||
for key, val in metadata:
|
||||
if key == 'user-agent':
|
||||
return val
|
||||
|
|
@ -88,16 +88,14 @@ def user_agent(metadata):
|
|||
|
||||
|
||||
def validate_client_metadata(test, servicer_context):
|
||||
invocation_metadata = servicer_context.invocation_metadata()
|
||||
test.assertTrue(
|
||||
test_common.metadata_transmitted(
|
||||
_EXPECTED_INVOCATION_METADATA,
|
||||
servicer_context.invocation_metadata()))
|
||||
test_common.metadata_transmitted(_EXPECTED_INVOCATION_METADATA,
|
||||
invocation_metadata))
|
||||
user_agent = _user_agent(invocation_metadata)
|
||||
test.assertTrue(
|
||||
user_agent(servicer_context.invocation_metadata())
|
||||
.startswith('primary-agent ' + _channel._USER_AGENT))
|
||||
test.assertTrue(
|
||||
user_agent(servicer_context.invocation_metadata())
|
||||
.endswith('secondary-agent'))
|
||||
user_agent.startswith('primary-agent ' + _channel._USER_AGENT))
|
||||
test.assertTrue(user_agent.endswith('secondary-agent'))
|
||||
|
||||
|
||||
def handle_unary_unary(test, request, servicer_context):
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
#include "rb_grpc_imports.generated.h"
|
||||
|
||||
#include <grpc/compression.h>
|
||||
#include <grpc/compression_ruby.h>
|
||||
#include <grpc/grpc.h>
|
||||
#include <grpc/impl/codegen/compression_types.h>
|
||||
#include <grpc/impl/codegen/grpc_types.h>
|
||||
|
|
@ -174,7 +175,7 @@ void grpc_rb_compression_options_algorithm_name_to_value_internal(
|
|||
/* Raise an error if the name isn't recognized as a compression algorithm by
|
||||
* the algorithm parse function
|
||||
* in GRPC core. */
|
||||
if (!grpc_compression_algorithm_parse(name_slice, algorithm_value)) {
|
||||
if (!grpc_compression_algorithm_parse_ruby(name_slice, algorithm_value)) {
|
||||
tmp_str = grpc_slice_to_c_string(name_slice);
|
||||
rb_raise(rb_eNameError, "Invalid compression algorithm name: %s", tmp_str);
|
||||
}
|
||||
|
|
@ -286,7 +287,7 @@ VALUE grpc_rb_compression_options_algorithm_value_to_name_internal(
|
|||
grpc_compression_algorithm internal_value) {
|
||||
char* algorithm_name = NULL;
|
||||
|
||||
if (!grpc_compression_algorithm_name(internal_value, &algorithm_name)) {
|
||||
if (!grpc_compression_algorithm_name_ruby(internal_value, &algorithm_name)) {
|
||||
rb_raise(rb_eArgError, "Failed to convert algorithm value to name");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,16 +22,17 @@
|
|||
|
||||
#include "rb_grpc_imports.generated.h"
|
||||
|
||||
grpc_compression_algorithm_is_message_type grpc_compression_algorithm_is_message_import;
|
||||
grpc_compression_algorithm_is_stream_type grpc_compression_algorithm_is_stream_import;
|
||||
grpc_compression_algorithm_parse_type grpc_compression_algorithm_parse_import;
|
||||
grpc_compression_algorithm_name_type grpc_compression_algorithm_name_import;
|
||||
grpc_stream_compression_algorithm_name_type grpc_stream_compression_algorithm_name_import;
|
||||
grpc_compression_algorithm_for_level_type grpc_compression_algorithm_for_level_import;
|
||||
grpc_stream_compression_algorithm_for_level_type grpc_stream_compression_algorithm_for_level_import;
|
||||
grpc_compression_options_init_type grpc_compression_options_init_import;
|
||||
grpc_compression_options_enable_algorithm_type grpc_compression_options_enable_algorithm_import;
|
||||
grpc_compression_options_disable_algorithm_type grpc_compression_options_disable_algorithm_import;
|
||||
grpc_compression_options_is_algorithm_enabled_type grpc_compression_options_is_algorithm_enabled_import;
|
||||
grpc_compression_options_is_stream_compression_algorithm_enabled_type grpc_compression_options_is_stream_compression_algorithm_enabled_import;
|
||||
grpc_compression_algorithm_parse_ruby_type grpc_compression_algorithm_parse_ruby_import;
|
||||
grpc_compression_algorithm_name_ruby_type grpc_compression_algorithm_name_ruby_import;
|
||||
grpc_metadata_array_init_type grpc_metadata_array_init_import;
|
||||
grpc_metadata_array_destroy_type grpc_metadata_array_destroy_import;
|
||||
grpc_call_details_init_type grpc_call_details_init_import;
|
||||
|
|
@ -294,16 +295,17 @@ gpr_sleep_until_type gpr_sleep_until_import;
|
|||
gpr_timespec_to_micros_type gpr_timespec_to_micros_import;
|
||||
|
||||
void grpc_rb_load_imports(HMODULE library) {
|
||||
grpc_compression_algorithm_is_message_import = (grpc_compression_algorithm_is_message_type) GetProcAddress(library, "grpc_compression_algorithm_is_message");
|
||||
grpc_compression_algorithm_is_stream_import = (grpc_compression_algorithm_is_stream_type) GetProcAddress(library, "grpc_compression_algorithm_is_stream");
|
||||
grpc_compression_algorithm_parse_import = (grpc_compression_algorithm_parse_type) GetProcAddress(library, "grpc_compression_algorithm_parse");
|
||||
grpc_compression_algorithm_name_import = (grpc_compression_algorithm_name_type) GetProcAddress(library, "grpc_compression_algorithm_name");
|
||||
grpc_stream_compression_algorithm_name_import = (grpc_stream_compression_algorithm_name_type) GetProcAddress(library, "grpc_stream_compression_algorithm_name");
|
||||
grpc_compression_algorithm_for_level_import = (grpc_compression_algorithm_for_level_type) GetProcAddress(library, "grpc_compression_algorithm_for_level");
|
||||
grpc_stream_compression_algorithm_for_level_import = (grpc_stream_compression_algorithm_for_level_type) GetProcAddress(library, "grpc_stream_compression_algorithm_for_level");
|
||||
grpc_compression_options_init_import = (grpc_compression_options_init_type) GetProcAddress(library, "grpc_compression_options_init");
|
||||
grpc_compression_options_enable_algorithm_import = (grpc_compression_options_enable_algorithm_type) GetProcAddress(library, "grpc_compression_options_enable_algorithm");
|
||||
grpc_compression_options_disable_algorithm_import = (grpc_compression_options_disable_algorithm_type) GetProcAddress(library, "grpc_compression_options_disable_algorithm");
|
||||
grpc_compression_options_is_algorithm_enabled_import = (grpc_compression_options_is_algorithm_enabled_type) GetProcAddress(library, "grpc_compression_options_is_algorithm_enabled");
|
||||
grpc_compression_options_is_stream_compression_algorithm_enabled_import = (grpc_compression_options_is_stream_compression_algorithm_enabled_type) GetProcAddress(library, "grpc_compression_options_is_stream_compression_algorithm_enabled");
|
||||
grpc_compression_algorithm_parse_ruby_import = (grpc_compression_algorithm_parse_ruby_type) GetProcAddress(library, "grpc_compression_algorithm_parse_ruby");
|
||||
grpc_compression_algorithm_name_ruby_import = (grpc_compression_algorithm_name_ruby_type) GetProcAddress(library, "grpc_compression_algorithm_name_ruby");
|
||||
grpc_metadata_array_init_import = (grpc_metadata_array_init_type) GetProcAddress(library, "grpc_metadata_array_init");
|
||||
grpc_metadata_array_destroy_import = (grpc_metadata_array_destroy_type) GetProcAddress(library, "grpc_metadata_array_destroy");
|
||||
grpc_call_details_init_import = (grpc_call_details_init_type) GetProcAddress(library, "grpc_call_details_init");
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include <windows.h>
|
||||
|
||||
#include <grpc/compression.h>
|
||||
#include <grpc/compression_ruby.h>
|
||||
#include <grpc/grpc.h>
|
||||
#include <grpc/grpc_posix.h>
|
||||
#include <grpc/grpc_security.h>
|
||||
|
|
@ -45,21 +46,21 @@
|
|||
#include <grpc/support/thd.h>
|
||||
#include <grpc/support/time.h>
|
||||
|
||||
typedef int(*grpc_compression_algorithm_is_message_type)(grpc_compression_algorithm algorithm);
|
||||
extern grpc_compression_algorithm_is_message_type grpc_compression_algorithm_is_message_import;
|
||||
#define grpc_compression_algorithm_is_message grpc_compression_algorithm_is_message_import
|
||||
typedef int(*grpc_compression_algorithm_is_stream_type)(grpc_compression_algorithm algorithm);
|
||||
extern grpc_compression_algorithm_is_stream_type grpc_compression_algorithm_is_stream_import;
|
||||
#define grpc_compression_algorithm_is_stream grpc_compression_algorithm_is_stream_import
|
||||
typedef int(*grpc_compression_algorithm_parse_type)(grpc_slice value, grpc_compression_algorithm* algorithm);
|
||||
extern grpc_compression_algorithm_parse_type grpc_compression_algorithm_parse_import;
|
||||
#define grpc_compression_algorithm_parse grpc_compression_algorithm_parse_import
|
||||
typedef int(*grpc_compression_algorithm_name_type)(grpc_compression_algorithm algorithm, const char** name);
|
||||
extern grpc_compression_algorithm_name_type grpc_compression_algorithm_name_import;
|
||||
#define grpc_compression_algorithm_name grpc_compression_algorithm_name_import
|
||||
typedef int(*grpc_stream_compression_algorithm_name_type)(grpc_stream_compression_algorithm algorithm, const char** name);
|
||||
extern grpc_stream_compression_algorithm_name_type grpc_stream_compression_algorithm_name_import;
|
||||
#define grpc_stream_compression_algorithm_name grpc_stream_compression_algorithm_name_import
|
||||
typedef grpc_compression_algorithm(*grpc_compression_algorithm_for_level_type)(grpc_compression_level level, uint32_t accepted_encodings);
|
||||
extern grpc_compression_algorithm_for_level_type grpc_compression_algorithm_for_level_import;
|
||||
#define grpc_compression_algorithm_for_level grpc_compression_algorithm_for_level_import
|
||||
typedef grpc_stream_compression_algorithm(*grpc_stream_compression_algorithm_for_level_type)(grpc_stream_compression_level level, uint32_t accepted_stream_encodings);
|
||||
extern grpc_stream_compression_algorithm_for_level_type grpc_stream_compression_algorithm_for_level_import;
|
||||
#define grpc_stream_compression_algorithm_for_level grpc_stream_compression_algorithm_for_level_import
|
||||
typedef void(*grpc_compression_options_init_type)(grpc_compression_options* opts);
|
||||
extern grpc_compression_options_init_type grpc_compression_options_init_import;
|
||||
#define grpc_compression_options_init grpc_compression_options_init_import
|
||||
|
|
@ -72,9 +73,12 @@ extern grpc_compression_options_disable_algorithm_type grpc_compression_options_
|
|||
typedef int(*grpc_compression_options_is_algorithm_enabled_type)(const grpc_compression_options* opts, grpc_compression_algorithm algorithm);
|
||||
extern grpc_compression_options_is_algorithm_enabled_type grpc_compression_options_is_algorithm_enabled_import;
|
||||
#define grpc_compression_options_is_algorithm_enabled grpc_compression_options_is_algorithm_enabled_import
|
||||
typedef int(*grpc_compression_options_is_stream_compression_algorithm_enabled_type)(const grpc_compression_options* opts, grpc_stream_compression_algorithm algorithm);
|
||||
extern grpc_compression_options_is_stream_compression_algorithm_enabled_type grpc_compression_options_is_stream_compression_algorithm_enabled_import;
|
||||
#define grpc_compression_options_is_stream_compression_algorithm_enabled grpc_compression_options_is_stream_compression_algorithm_enabled_import
|
||||
typedef int(*grpc_compression_algorithm_parse_ruby_type)(grpc_slice value, grpc_compression_algorithm* algorithm);
|
||||
extern grpc_compression_algorithm_parse_ruby_type grpc_compression_algorithm_parse_ruby_import;
|
||||
#define grpc_compression_algorithm_parse_ruby grpc_compression_algorithm_parse_ruby_import
|
||||
typedef int(*grpc_compression_algorithm_name_ruby_type)(grpc_compression_algorithm algorithm, const char** name);
|
||||
extern grpc_compression_algorithm_name_ruby_type grpc_compression_algorithm_name_ruby_import;
|
||||
#define grpc_compression_algorithm_name_ruby grpc_compression_algorithm_name_ruby_import
|
||||
typedef void(*grpc_metadata_array_init_type)(grpc_metadata_array* array);
|
||||
extern grpc_metadata_array_init_type grpc_metadata_array_init_import;
|
||||
#define grpc_metadata_array_init grpc_metadata_array_init_import
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
%YAML 1.2
|
||||
--- |
|
||||
# Copyright 2015 gRPC authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM ubuntu:17.10
|
||||
|
||||
<%include file="../../apt_get_basic.include"/>
|
||||
<%include file="../../gcp_api_libraries.include"/>
|
||||
<%include file="../../python_deps.include"/>
|
||||
<%include file="../../cxx_deps.include"/>
|
||||
<%include file="../../run_tests_addons.include"/>
|
||||
|
||||
# Define the default command.
|
||||
CMD ["bash"]
|
||||
|
|
@ -62,8 +62,8 @@ static void test_set_compression_algorithm(void) {
|
|||
grpc_core::ExecCtx exec_ctx;
|
||||
grpc_channel_args* ch_args;
|
||||
|
||||
ch_args =
|
||||
grpc_channel_args_set_compression_algorithm(nullptr, GRPC_COMPRESS_GZIP);
|
||||
ch_args = grpc_channel_args_set_compression_algorithm(
|
||||
nullptr, GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
GPR_ASSERT(ch_args->num_args == 1);
|
||||
GPR_ASSERT(strcmp(ch_args->args[0].key,
|
||||
GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM) == 0);
|
||||
|
|
@ -74,7 +74,8 @@ static void test_set_compression_algorithm(void) {
|
|||
|
||||
static void test_compression_algorithm_states(void) {
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
grpc_channel_args *ch_args, *ch_args_wo_gzip, *ch_args_wo_gzip_deflate;
|
||||
grpc_channel_args *ch_args, *ch_args_wo_gzip, *ch_args_wo_gzip_deflate,
|
||||
*ch_args_wo_gzip_deflate_gzip;
|
||||
unsigned states_bitset;
|
||||
size_t i;
|
||||
|
||||
|
|
@ -87,33 +88,40 @@ static void test_compression_algorithm_states(void) {
|
|||
GPR_ASSERT(GPR_BITGET(states_bitset, i));
|
||||
}
|
||||
|
||||
/* disable gzip and deflate */
|
||||
/* disable message/gzip and message/deflate and stream/gzip */
|
||||
ch_args_wo_gzip = grpc_channel_args_compression_algorithm_set_state(
|
||||
&ch_args, GRPC_COMPRESS_GZIP, 0);
|
||||
&ch_args, GRPC_COMPRESS_MESSAGE_GZIP, 0);
|
||||
GPR_ASSERT(ch_args == ch_args_wo_gzip);
|
||||
ch_args_wo_gzip_deflate = grpc_channel_args_compression_algorithm_set_state(
|
||||
&ch_args_wo_gzip, GRPC_COMPRESS_DEFLATE, 0);
|
||||
&ch_args_wo_gzip, GRPC_COMPRESS_MESSAGE_DEFLATE, 0);
|
||||
GPR_ASSERT(ch_args_wo_gzip == ch_args_wo_gzip_deflate);
|
||||
ch_args_wo_gzip_deflate_gzip =
|
||||
grpc_channel_args_compression_algorithm_set_state(
|
||||
&ch_args_wo_gzip_deflate, GRPC_COMPRESS_STREAM_GZIP, 0);
|
||||
GPR_ASSERT(ch_args_wo_gzip_deflate == ch_args_wo_gzip_deflate_gzip);
|
||||
|
||||
states_bitset = (unsigned)grpc_channel_args_compression_algorithm_get_states(
|
||||
ch_args_wo_gzip_deflate);
|
||||
for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {
|
||||
if (i == GRPC_COMPRESS_GZIP || i == GRPC_COMPRESS_DEFLATE) {
|
||||
if (i == GRPC_COMPRESS_MESSAGE_GZIP || i == GRPC_COMPRESS_MESSAGE_DEFLATE ||
|
||||
i == GRPC_COMPRESS_STREAM_GZIP) {
|
||||
GPR_ASSERT(GPR_BITGET(states_bitset, i) == 0);
|
||||
} else {
|
||||
GPR_ASSERT(GPR_BITGET(states_bitset, i) != 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* re-enabled gzip only */
|
||||
/* re-enabled message/gzip and stream/gzip only */
|
||||
ch_args_wo_gzip = grpc_channel_args_compression_algorithm_set_state(
|
||||
&ch_args_wo_gzip_deflate, GRPC_COMPRESS_GZIP, 1);
|
||||
GPR_ASSERT(ch_args_wo_gzip == ch_args_wo_gzip_deflate);
|
||||
&ch_args_wo_gzip_deflate_gzip, GRPC_COMPRESS_MESSAGE_GZIP, 1);
|
||||
ch_args_wo_gzip = grpc_channel_args_compression_algorithm_set_state(
|
||||
&ch_args_wo_gzip, GRPC_COMPRESS_STREAM_GZIP, 1);
|
||||
GPR_ASSERT(ch_args_wo_gzip == ch_args_wo_gzip_deflate_gzip);
|
||||
|
||||
states_bitset = (unsigned)grpc_channel_args_compression_algorithm_get_states(
|
||||
ch_args_wo_gzip);
|
||||
for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {
|
||||
if (i == GRPC_COMPRESS_DEFLATE) {
|
||||
if (i == GRPC_COMPRESS_MESSAGE_DEFLATE) {
|
||||
GPR_ASSERT(GPR_BITGET(states_bitset, i) == 0);
|
||||
} else {
|
||||
GPR_ASSERT(GPR_BITGET(states_bitset, i) != 0);
|
||||
|
|
|
|||
|
|
@ -53,3 +53,15 @@ grpc_cc_test(
|
|||
"//test/core/util:grpc_test_util",
|
||||
],
|
||||
)
|
||||
|
||||
grpc_cc_test(
|
||||
name = "stream_compress_test",
|
||||
srcs = ["stream_compression_test.cc"],
|
||||
language = "C++",
|
||||
deps = [
|
||||
"//:gpr",
|
||||
"//:grpc",
|
||||
"//test/core/util:gpr_test_util",
|
||||
"//test/core/util:grpc_test_util",
|
||||
],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@
|
|||
#include "src/core/lib/transport/static_metadata.h"
|
||||
#include "test/core/util/test_config.h"
|
||||
|
||||
const uint32_t message_prefix_length = 8;
|
||||
const uint32_t stream_prefix_length = 7;
|
||||
static void test_algorithm_mesh(void) {
|
||||
int i;
|
||||
|
||||
|
|
@ -48,9 +50,26 @@ static void test_algorithm_mesh(void) {
|
|||
mdstr = grpc_slice_from_copied_string(name);
|
||||
GPR_ASSERT(grpc_slice_eq(mdstr, grpc_compression_algorithm_slice(parsed)));
|
||||
GPR_ASSERT(parsed == grpc_compression_algorithm_from_slice(mdstr));
|
||||
mdelem = grpc_compression_encoding_mdelem(parsed);
|
||||
GPR_ASSERT(grpc_slice_eq(GRPC_MDVALUE(mdelem), mdstr));
|
||||
GPR_ASSERT(grpc_slice_eq(GRPC_MDKEY(mdelem), GRPC_MDSTR_GRPC_ENCODING));
|
||||
if (parsed == 0) {
|
||||
continue;
|
||||
} else if (grpc_compression_algorithm_is_message(parsed)) {
|
||||
mdelem = grpc_message_compression_encoding_mdelem(
|
||||
grpc_compression_algorithm_to_message_compression_algorithm(parsed));
|
||||
grpc_slice value = GRPC_MDVALUE(mdelem);
|
||||
GPR_ASSERT(0 == memcmp(&name[message_prefix_length],
|
||||
GRPC_SLICE_START_PTR(value),
|
||||
GRPC_SLICE_LENGTH(value)));
|
||||
GPR_ASSERT(grpc_slice_eq(GRPC_MDKEY(mdelem), GRPC_MDSTR_GRPC_ENCODING));
|
||||
} else {
|
||||
mdelem = grpc_stream_compression_encoding_mdelem(
|
||||
grpc_compression_algorithm_to_stream_compression_algorithm(parsed));
|
||||
grpc_slice value = GRPC_MDVALUE(mdelem);
|
||||
GPR_ASSERT(0 == memcmp(&name[stream_prefix_length],
|
||||
GRPC_SLICE_START_PTR(value),
|
||||
GRPC_SLICE_LENGTH(value)));
|
||||
GPR_ASSERT(
|
||||
grpc_slice_eq(GRPC_MDKEY(mdelem), GRPC_MDSTR_CONTENT_ENCODING));
|
||||
}
|
||||
grpc_slice_unref_internal(mdstr);
|
||||
GRPC_MDELEM_UNREF(mdelem);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,9 +28,11 @@
|
|||
|
||||
static void test_compression_algorithm_parse(void) {
|
||||
size_t i;
|
||||
const char* valid_names[] = {"identity", "gzip", "deflate"};
|
||||
const char* valid_names[] = {"identity", "message/gzip", "message/deflate",
|
||||
"stream/gzip"};
|
||||
const grpc_compression_algorithm valid_algorithms[] = {
|
||||
GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_DEFLATE};
|
||||
GRPC_COMPRESS_NONE, GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
GRPC_COMPRESS_MESSAGE_DEFLATE, GRPC_COMPRESS_STREAM_GZIP};
|
||||
const char* invalid_names[] = {"gzip2", "foo", "", "2gzip"};
|
||||
|
||||
gpr_log(GPR_DEBUG, "test_compression_algorithm_parse");
|
||||
|
|
@ -59,9 +61,11 @@ static void test_compression_algorithm_name(void) {
|
|||
int success;
|
||||
const char* name;
|
||||
size_t i;
|
||||
const char* valid_names[] = {"identity", "gzip", "deflate"};
|
||||
const char* valid_names[] = {"identity", "message/gzip", "message/deflate",
|
||||
"stream/gzip"};
|
||||
const grpc_compression_algorithm valid_algorithms[] = {
|
||||
GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_DEFLATE};
|
||||
GRPC_COMPRESS_NONE, GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
GRPC_COMPRESS_MESSAGE_DEFLATE, GRPC_COMPRESS_STREAM_GZIP};
|
||||
|
||||
gpr_log(GPR_DEBUG, "test_compression_algorithm_name");
|
||||
|
||||
|
|
@ -106,21 +110,21 @@ static void test_compression_algorithm_for_level(void) {
|
|||
/* accept only gzip */
|
||||
uint32_t accepted_encodings = 0;
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_NONE); /* always */
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_GZIP);
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_NONE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_NONE,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_GZIP ==
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_LOW,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_GZIP ==
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_MED,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_GZIP ==
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_HIGH,
|
||||
accepted_encodings));
|
||||
}
|
||||
|
|
@ -129,21 +133,21 @@ static void test_compression_algorithm_for_level(void) {
|
|||
/* accept only deflate */
|
||||
uint32_t accepted_encodings = 0;
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_NONE); /* always */
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_DEFLATE);
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_DEFLATE);
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_NONE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_NONE,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_DEFLATE ==
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_LOW,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_DEFLATE ==
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_MED,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_DEFLATE ==
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_HIGH,
|
||||
accepted_encodings));
|
||||
}
|
||||
|
|
@ -152,22 +156,70 @@ static void test_compression_algorithm_for_level(void) {
|
|||
/* accept gzip and deflate */
|
||||
uint32_t accepted_encodings = 0;
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_NONE); /* always */
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_GZIP);
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_DEFLATE);
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_DEFLATE);
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_NONE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_NONE,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_GZIP ==
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_LOW,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_DEFLATE ==
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_MED,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_DEFLATE ==
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_HIGH,
|
||||
accepted_encodings));
|
||||
}
|
||||
|
||||
{
|
||||
/* accept stream gzip */
|
||||
uint32_t accepted_encodings = 0;
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_NONE); /* always */
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_STREAM_GZIP);
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_NONE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_NONE,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_NONE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_LOW,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_NONE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_MED,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_NONE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_HIGH,
|
||||
accepted_encodings));
|
||||
}
|
||||
|
||||
{
|
||||
/* accept all algorithms */
|
||||
uint32_t accepted_encodings = 0;
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_NONE); /* always */
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_DEFLATE);
|
||||
GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_STREAM_GZIP);
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_NONE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_NONE,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_LOW,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_MED,
|
||||
accepted_encodings));
|
||||
|
||||
GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE ==
|
||||
grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_HIGH,
|
||||
accepted_encodings));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ typedef enum {
|
|||
} compressability;
|
||||
|
||||
static void assert_passthrough(grpc_slice value,
|
||||
grpc_compression_algorithm algorithm,
|
||||
grpc_message_compression_algorithm algorithm,
|
||||
grpc_slice_split_mode uncompressed_split_mode,
|
||||
grpc_slice_split_mode compressed_split_mode,
|
||||
compressability compress_result_check) {
|
||||
|
|
@ -51,7 +51,8 @@ static void assert_passthrough(grpc_slice value,
|
|||
int was_compressed;
|
||||
const char* algorithm_name;
|
||||
|
||||
GPR_ASSERT(grpc_compression_algorithm_name(algorithm, &algorithm_name) != 0);
|
||||
GPR_ASSERT(
|
||||
grpc_message_compression_algorithm_name(algorithm, &algorithm_name) != 0);
|
||||
gpr_log(GPR_INFO,
|
||||
"assert_passthrough: value_length=%" PRIuPTR
|
||||
" value_hash=0x%08x "
|
||||
|
|
@ -92,7 +93,8 @@ static void assert_passthrough(grpc_slice value,
|
|||
{
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
GPR_ASSERT(grpc_msg_decompress(
|
||||
was_compressed ? algorithm : GRPC_COMPRESS_NONE, &compressed, &output));
|
||||
was_compressed ? algorithm : GRPC_MESSAGE_COMPRESS_NONE, &compressed,
|
||||
&output));
|
||||
}
|
||||
|
||||
final = grpc_slice_merge(output.slices, output.count);
|
||||
|
|
@ -112,8 +114,8 @@ static grpc_slice repeated(char c, size_t length) {
|
|||
}
|
||||
|
||||
static compressability get_compressability(
|
||||
test_value id, grpc_compression_algorithm algorithm) {
|
||||
if (algorithm == GRPC_COMPRESS_NONE) return SHOULD_NOT_COMPRESS;
|
||||
test_value id, grpc_message_compression_algorithm algorithm) {
|
||||
if (algorithm == GRPC_MESSAGE_COMPRESS_NONE) return SHOULD_NOT_COMPRESS;
|
||||
switch (id) {
|
||||
case ONE_A:
|
||||
return SHOULD_NOT_COMPRESS;
|
||||
|
|
@ -150,13 +152,13 @@ static void test_tiny_data_compress(void) {
|
|||
grpc_slice_buffer_init(&output);
|
||||
grpc_slice_buffer_add(&input, create_test_value(ONE_A));
|
||||
|
||||
for (int i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {
|
||||
if (i == GRPC_COMPRESS_NONE) continue;
|
||||
for (int i = 0; i < GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT; i++) {
|
||||
if (i == GRPC_MESSAGE_COMPRESS_NONE) continue;
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
GPR_ASSERT(0 ==
|
||||
grpc_msg_compress(static_cast<grpc_compression_algorithm>(i),
|
||||
&input, &output));
|
||||
GPR_ASSERT(0 == grpc_msg_compress(
|
||||
|
||||
static_cast<grpc_message_compression_algorithm>(i),
|
||||
&input, &output));
|
||||
GPR_ASSERT(1 == output.count);
|
||||
}
|
||||
|
||||
|
|
@ -178,7 +180,7 @@ static void test_bad_decompression_data_crc(void) {
|
|||
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
/* compress it */
|
||||
grpc_msg_compress(GRPC_COMPRESS_GZIP, &input, &corrupted);
|
||||
grpc_msg_compress(GRPC_MESSAGE_COMPRESS_GZIP, &input, &corrupted);
|
||||
/* corrupt the output by smashing the CRC */
|
||||
GPR_ASSERT(corrupted.count > 1);
|
||||
GPR_ASSERT(GRPC_SLICE_LENGTH(corrupted.slices[1]) > 8);
|
||||
|
|
@ -186,7 +188,8 @@ static void test_bad_decompression_data_crc(void) {
|
|||
memcpy(GRPC_SLICE_START_PTR(corrupted.slices[1]) + idx, &bad, 4);
|
||||
|
||||
/* try (and fail) to decompress the corrupted compresed buffer */
|
||||
GPR_ASSERT(0 == grpc_msg_decompress(GRPC_COMPRESS_GZIP, &corrupted, &output));
|
||||
GPR_ASSERT(0 == grpc_msg_decompress(GRPC_MESSAGE_COMPRESS_GZIP, &corrupted,
|
||||
&output));
|
||||
|
||||
grpc_slice_buffer_destroy(&input);
|
||||
grpc_slice_buffer_destroy(&corrupted);
|
||||
|
|
@ -206,7 +209,8 @@ static void test_bad_decompression_data_trailing_garbage(void) {
|
|||
|
||||
/* try (and fail) to decompress the invalid compresed buffer */
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
GPR_ASSERT(0 == grpc_msg_decompress(GRPC_COMPRESS_DEFLATE, &input, &output));
|
||||
GPR_ASSERT(
|
||||
0 == grpc_msg_decompress(GRPC_MESSAGE_COMPRESS_DEFLATE, &input, &output));
|
||||
|
||||
grpc_slice_buffer_destroy(&input);
|
||||
grpc_slice_buffer_destroy(&output);
|
||||
|
|
@ -223,7 +227,8 @@ static void test_bad_decompression_data_stream(void) {
|
|||
|
||||
/* try (and fail) to decompress the invalid compresed buffer */
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
GPR_ASSERT(0 == grpc_msg_decompress(GRPC_COMPRESS_DEFLATE, &input, &output));
|
||||
GPR_ASSERT(
|
||||
0 == grpc_msg_decompress(GRPC_MESSAGE_COMPRESS_DEFLATE, &input, &output));
|
||||
|
||||
grpc_slice_buffer_destroy(&input);
|
||||
grpc_slice_buffer_destroy(&output);
|
||||
|
|
@ -240,13 +245,14 @@ static void test_bad_compression_algorithm(void) {
|
|||
&input, grpc_slice_from_copied_string("Never gonna give you up"));
|
||||
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
was_compressed =
|
||||
grpc_msg_compress(GRPC_COMPRESS_ALGORITHMS_COUNT, &input, &output);
|
||||
was_compressed = grpc_msg_compress(GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT,
|
||||
&input, &output);
|
||||
GPR_ASSERT(0 == was_compressed);
|
||||
|
||||
was_compressed = grpc_msg_compress(static_cast<grpc_compression_algorithm>(
|
||||
GRPC_COMPRESS_ALGORITHMS_COUNT + 123),
|
||||
&input, &output);
|
||||
was_compressed =
|
||||
grpc_msg_compress(static_cast<grpc_message_compression_algorithm>(
|
||||
GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT + 123),
|
||||
&input, &output);
|
||||
GPR_ASSERT(0 == was_compressed);
|
||||
|
||||
grpc_slice_buffer_destroy(&input);
|
||||
|
|
@ -264,13 +270,13 @@ static void test_bad_decompression_algorithm(void) {
|
|||
grpc_slice_from_copied_string(
|
||||
"I'm not really compressed but it doesn't matter"));
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
was_decompressed =
|
||||
grpc_msg_decompress(GRPC_COMPRESS_ALGORITHMS_COUNT, &input, &output);
|
||||
was_decompressed = grpc_msg_decompress(GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT,
|
||||
&input, &output);
|
||||
GPR_ASSERT(0 == was_decompressed);
|
||||
|
||||
was_decompressed =
|
||||
grpc_msg_decompress(static_cast<grpc_compression_algorithm>(
|
||||
GRPC_COMPRESS_ALGORITHMS_COUNT + 123),
|
||||
grpc_msg_decompress(static_cast<grpc_message_compression_algorithm>(
|
||||
GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT + 123),
|
||||
&input, &output);
|
||||
GPR_ASSERT(0 == was_decompressed);
|
||||
|
||||
|
|
@ -289,17 +295,18 @@ int main(int argc, char** argv) {
|
|||
grpc_test_init(argc, argv);
|
||||
grpc_init();
|
||||
|
||||
for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {
|
||||
for (i = 0; i < GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT; i++) {
|
||||
for (j = 0; j < GPR_ARRAY_SIZE(uncompressed_split_modes); j++) {
|
||||
for (k = 0; k < GPR_ARRAY_SIZE(compressed_split_modes); k++) {
|
||||
for (m = 0; m < TEST_VALUE_COUNT; m++) {
|
||||
grpc_slice slice = create_test_value(static_cast<test_value>(m));
|
||||
assert_passthrough(
|
||||
slice, static_cast<grpc_compression_algorithm>(i),
|
||||
slice, static_cast<grpc_message_compression_algorithm>(i),
|
||||
static_cast<grpc_slice_split_mode>(j),
|
||||
static_cast<grpc_slice_split_mode>(k),
|
||||
get_compressability(static_cast<test_value>(m),
|
||||
static_cast<grpc_compression_algorithm>(i)));
|
||||
get_compressability(
|
||||
static_cast<test_value>(m),
|
||||
static_cast<grpc_message_compression_algorithm>(i)));
|
||||
grpc_slice_unref(slice);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ void chttp2_init_client_fullstack_compression(grpc_end2end_test_fixture* f,
|
|||
grpc_channel_args_destroy(ffd->client_args_compression);
|
||||
}
|
||||
ffd->client_args_compression = grpc_channel_args_set_compression_algorithm(
|
||||
client_args, GRPC_COMPRESS_GZIP);
|
||||
client_args, GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
f->client = grpc_insecure_channel_create(
|
||||
ffd->localaddr, ffd->client_args_compression, nullptr);
|
||||
}
|
||||
|
|
@ -84,7 +84,7 @@ void chttp2_init_server_fullstack_compression(grpc_end2end_test_fixture* f,
|
|||
grpc_channel_args_destroy(ffd->server_args_compression);
|
||||
}
|
||||
ffd->server_args_compression = grpc_channel_args_set_compression_algorithm(
|
||||
server_args, GRPC_COMPRESS_GZIP);
|
||||
server_args, GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
if (f->server) {
|
||||
grpc_server_destroy(f->server);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@
|
|||
"\x1Egrpc.max_request_message_bytes"
|
||||
"\x1Fgrpc.max_response_message_bytes"
|
||||
"$/grpc.lb.v1.LoadBalancer/BalanceLoad"
|
||||
"\x0Fmessage/deflate"
|
||||
"\x0Cmessage/gzip"
|
||||
"\x0Bstream/gzip"
|
||||
"\x010"
|
||||
"\x011"
|
||||
"\x012"
|
||||
|
|
|
|||
|
|
@ -272,6 +272,20 @@ static void drain_cq(grpc_completion_queue* cq) {
|
|||
|
||||
static void shutdown_server(grpc_end2end_test_fixture* f) {
|
||||
if (!f->server) return;
|
||||
/* Perform a completion queue next, so that any pending operations can be
|
||||
* finished, and resources can be released. This is so that, shutdown does not
|
||||
* hang. For example, the server might be stuck in the handshaking code, which
|
||||
* keeps a ref to a listener. Unless, it is unref'd, shutdown won't be able
|
||||
* to proceed.
|
||||
*
|
||||
* (If shutdown times out, it is probably because 100ms wasn't enough. In that
|
||||
* case, the deadline can be increased. Or, we could simply have another
|
||||
* thread for the server to poll the completion queue while the shutdown
|
||||
* progresses.)
|
||||
*/
|
||||
GPR_ASSERT(grpc_completion_queue_next(
|
||||
f->cq, grpc_timeout_milliseconds_to_deadline(100), nullptr)
|
||||
.type == GRPC_QUEUE_TIMEOUT);
|
||||
grpc_server_shutdown_and_notify(f->server, f->shutdown_cq, tag(1000));
|
||||
GPR_ASSERT(grpc_completion_queue_pluck(f->shutdown_cq, tag(1000),
|
||||
grpc_timeout_seconds_to_deadline(5),
|
||||
|
|
@ -288,8 +302,8 @@ static void shutdown_client(grpc_end2end_test_fixture* f) {
|
|||
}
|
||||
|
||||
static void end_test(grpc_end2end_test_fixture* f) {
|
||||
shutdown_server(f);
|
||||
shutdown_client(f);
|
||||
shutdown_server(f);
|
||||
|
||||
grpc_completion_queue_shutdown(f->cq);
|
||||
drain_cq(f->cq);
|
||||
|
|
|
|||
|
|
@ -383,9 +383,9 @@ static void request_with_payload_template(
|
|||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_NONE) != 0);
|
||||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_DEFLATE) != 0);
|
||||
GRPC_COMPRESS_MESSAGE_DEFLATE) != 0);
|
||||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_GZIP) != 0);
|
||||
GRPC_COMPRESS_MESSAGE_GZIP) != 0);
|
||||
|
||||
memset(ops, 0, sizeof(ops));
|
||||
op = ops;
|
||||
|
|
@ -550,8 +550,9 @@ static void test_invoke_request_with_exceptionally_uncompressed_payload(
|
|||
grpc_end2end_test_config config) {
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_exceptionally_uncompressed_payload",
|
||||
GRPC_WRITE_NO_COMPRESS, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP,
|
||||
GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, nullptr, false,
|
||||
GRPC_WRITE_NO_COMPRESS, GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_NONE,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP, nullptr, false,
|
||||
/* ignored */ GRPC_COMPRESS_LEVEL_NONE, false);
|
||||
}
|
||||
|
||||
|
|
@ -568,8 +569,8 @@ static void test_invoke_request_with_compressed_payload(
|
|||
grpc_end2end_test_config config) {
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_compressed_payload", 0,
|
||||
GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP,
|
||||
GRPC_COMPRESS_GZIP, nullptr, false,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP, nullptr, false,
|
||||
/* ignored */ GRPC_COMPRESS_LEVEL_NONE, false);
|
||||
}
|
||||
|
||||
|
|
@ -577,8 +578,8 @@ static void test_invoke_request_with_send_message_before_initial_metadata(
|
|||
grpc_end2end_test_config config) {
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_compressed_payload", 0,
|
||||
GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP,
|
||||
GRPC_COMPRESS_GZIP, nullptr, false,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP, nullptr, false,
|
||||
/* ignored */ GRPC_COMPRESS_LEVEL_NONE, true);
|
||||
}
|
||||
|
||||
|
|
@ -596,7 +597,8 @@ static void test_invoke_request_with_compressed_payload_md_override(
|
|||
grpc_metadata identity_compression_override;
|
||||
|
||||
gzip_compression_override.key = GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST;
|
||||
gzip_compression_override.value = grpc_slice_from_static_string("gzip");
|
||||
gzip_compression_override.value =
|
||||
grpc_slice_from_static_string("message/gzip");
|
||||
memset(&gzip_compression_override.internal_data, 0,
|
||||
sizeof(gzip_compression_override.internal_data));
|
||||
|
||||
|
|
@ -609,31 +611,32 @@ static void test_invoke_request_with_compressed_payload_md_override(
|
|||
/* Channel default NONE (aka IDENTITY), call override to GZIP */
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_compressed_payload_md_override_1", 0,
|
||||
GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP,
|
||||
GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
GRPC_COMPRESS_NONE, &gzip_compression_override, false,
|
||||
/*ignored*/ GRPC_COMPRESS_LEVEL_NONE, false);
|
||||
|
||||
/* Channel default DEFLATE, call override to GZIP */
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_compressed_payload_md_override_2", 0,
|
||||
GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP,
|
||||
GRPC_COMPRESS_NONE, &gzip_compression_override, false,
|
||||
GRPC_COMPRESS_MESSAGE_DEFLATE, GRPC_COMPRESS_NONE,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_NONE,
|
||||
&gzip_compression_override, false,
|
||||
/*ignored*/ GRPC_COMPRESS_LEVEL_NONE, false);
|
||||
|
||||
/* Channel default DEFLATE, call override to NONE (aka IDENTITY) */
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_compressed_payload_md_override_3", 0,
|
||||
GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE,
|
||||
GRPC_COMPRESS_MESSAGE_DEFLATE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE,
|
||||
GRPC_COMPRESS_NONE, &identity_compression_override, false,
|
||||
/*ignored*/ GRPC_COMPRESS_LEVEL_NONE, false);
|
||||
}
|
||||
|
||||
static void test_invoke_request_with_disabled_algorithm(
|
||||
grpc_end2end_test_config config) {
|
||||
request_for_disabled_algorithm(config,
|
||||
"test_invoke_request_with_disabled_algorithm",
|
||||
0, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP,
|
||||
GRPC_STATUS_UNIMPLEMENTED, nullptr);
|
||||
request_for_disabled_algorithm(
|
||||
config, "test_invoke_request_with_disabled_algorithm", 0,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
GRPC_STATUS_UNIMPLEMENTED, nullptr);
|
||||
}
|
||||
|
||||
void compressed_payload(grpc_end2end_test_config config) {
|
||||
|
|
|
|||
|
|
@ -95,8 +95,8 @@ static void end_test(grpc_end2end_test_fixture* f) {
|
|||
static void request_for_disabled_algorithm(
|
||||
grpc_end2end_test_config config, const char* test_name,
|
||||
uint32_t send_flags_bitmask,
|
||||
grpc_stream_compression_algorithm algorithm_to_disable,
|
||||
grpc_stream_compression_algorithm requested_client_compression_algorithm,
|
||||
grpc_compression_algorithm algorithm_to_disable,
|
||||
grpc_compression_algorithm requested_client_compression_algorithm,
|
||||
grpc_status_code expected_error, grpc_metadata* client_metadata) {
|
||||
grpc_call* c;
|
||||
grpc_call* s;
|
||||
|
|
@ -124,13 +124,13 @@ static void request_for_disabled_algorithm(
|
|||
request_payload_slice = grpc_slice_from_copied_string(str);
|
||||
request_payload = grpc_raw_byte_buffer_create(&request_payload_slice, 1);
|
||||
|
||||
client_args = grpc_channel_args_set_stream_compression_algorithm(
|
||||
client_args = grpc_channel_args_set_compression_algorithm(
|
||||
nullptr, requested_client_compression_algorithm);
|
||||
server_args = grpc_channel_args_set_stream_compression_algorithm(
|
||||
nullptr, GRPC_STREAM_COMPRESS_NONE);
|
||||
server_args =
|
||||
grpc_channel_args_set_compression_algorithm(nullptr, GRPC_COMPRESS_NONE);
|
||||
{
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
server_args = grpc_channel_args_stream_compression_algorithm_set_state(
|
||||
server_args = grpc_channel_args_compression_algorithm_set_state(
|
||||
&server_args, algorithm_to_disable, false);
|
||||
}
|
||||
|
||||
|
|
@ -229,11 +229,10 @@ static void request_for_disabled_algorithm(
|
|||
GPR_ASSERT(status == expected_error);
|
||||
|
||||
const char* algo_name = nullptr;
|
||||
GPR_ASSERT(
|
||||
grpc_stream_compression_algorithm_name(algorithm_to_disable, &algo_name));
|
||||
GPR_ASSERT(grpc_compression_algorithm_name(algorithm_to_disable, &algo_name));
|
||||
char* expected_details = nullptr;
|
||||
gpr_asprintf(&expected_details,
|
||||
"Stream compression algorithm '%s' is disabled.", algo_name);
|
||||
gpr_asprintf(&expected_details, "Compression algorithm '%s' is disabled.",
|
||||
algo_name);
|
||||
/* and we expect a specific reason for it */
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(details, expected_details));
|
||||
gpr_free(expected_details);
|
||||
|
|
@ -269,14 +268,12 @@ static void request_for_disabled_algorithm(
|
|||
static void request_with_payload_template(
|
||||
grpc_end2end_test_config config, const char* test_name,
|
||||
uint32_t client_send_flags_bitmask,
|
||||
grpc_stream_compression_algorithm
|
||||
default_client_channel_compression_algorithm,
|
||||
grpc_stream_compression_algorithm
|
||||
default_server_channel_compression_algorithm,
|
||||
grpc_stream_compression_algorithm expected_client_compression_algorithm,
|
||||
grpc_stream_compression_algorithm expected_server_compression_algorithm,
|
||||
grpc_compression_algorithm default_client_channel_compression_algorithm,
|
||||
grpc_compression_algorithm default_server_channel_compression_algorithm,
|
||||
grpc_compression_algorithm expected_client_compression_algorithm,
|
||||
grpc_compression_algorithm expected_server_compression_algorithm,
|
||||
grpc_metadata* client_init_metadata, bool set_server_level,
|
||||
grpc_stream_compression_level server_compression_level,
|
||||
grpc_compression_level server_compression_level,
|
||||
bool send_message_before_initial_metadata,
|
||||
bool set_default_server_message_compression_algorithm,
|
||||
grpc_compression_algorithm default_server_message_compression_algorithm) {
|
||||
|
|
@ -314,13 +311,13 @@ static void request_with_payload_template(
|
|||
grpc_slice response_payload_slice =
|
||||
grpc_slice_from_copied_string(response_str);
|
||||
|
||||
client_args = grpc_channel_args_set_stream_compression_algorithm(
|
||||
client_args = grpc_channel_args_set_compression_algorithm(
|
||||
nullptr, default_client_channel_compression_algorithm);
|
||||
if (set_default_server_message_compression_algorithm) {
|
||||
server_args = grpc_channel_args_set_compression_algorithm(
|
||||
nullptr, default_server_message_compression_algorithm);
|
||||
} else {
|
||||
server_args = grpc_channel_args_set_stream_compression_algorithm(
|
||||
server_args = grpc_channel_args_set_compression_algorithm(
|
||||
nullptr, default_server_channel_compression_algorithm);
|
||||
}
|
||||
|
||||
|
|
@ -393,26 +390,21 @@ static void request_with_payload_template(
|
|||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_NONE) != 0);
|
||||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_DEFLATE) != 0);
|
||||
GRPC_COMPRESS_MESSAGE_DEFLATE) != 0);
|
||||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_GZIP) != 0);
|
||||
GPR_ASSERT(
|
||||
GPR_BITCOUNT(grpc_call_test_only_get_stream_encodings_accepted_by_peer(
|
||||
s)) == GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT);
|
||||
GPR_ASSERT(
|
||||
GPR_BITGET(grpc_call_test_only_get_stream_encodings_accepted_by_peer(s),
|
||||
GRPC_STREAM_COMPRESS_NONE) != 0);
|
||||
GPR_ASSERT(
|
||||
GPR_BITGET(grpc_call_test_only_get_stream_encodings_accepted_by_peer(s),
|
||||
GRPC_STREAM_COMPRESS_GZIP) != 0);
|
||||
GRPC_COMPRESS_MESSAGE_GZIP) != 0);
|
||||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_STREAM_GZIP) != 0);
|
||||
GPR_ASSERT(GPR_BITCOUNT(grpc_call_test_only_get_encodings_accepted_by_peer(
|
||||
s)) == GRPC_COMPRESS_ALGORITHMS_COUNT);
|
||||
|
||||
memset(ops, 0, sizeof(ops));
|
||||
op = ops;
|
||||
op->op = GRPC_OP_SEND_INITIAL_METADATA;
|
||||
op->data.send_initial_metadata.count = 0;
|
||||
if (set_server_level) {
|
||||
op->data.send_initial_metadata.maybe_stream_compression_level.is_set = true;
|
||||
op->data.send_initial_metadata.maybe_stream_compression_level.level =
|
||||
op->data.send_initial_metadata.maybe_compression_level.is_set = true;
|
||||
op->data.send_initial_metadata.maybe_compression_level.level =
|
||||
server_compression_level;
|
||||
}
|
||||
op->flags = 0;
|
||||
|
|
@ -558,30 +550,20 @@ static void test_invoke_request_with_compressed_payload(
|
|||
grpc_end2end_test_config config) {
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_compressed_payload", 0,
|
||||
GRPC_STREAM_COMPRESS_GZIP, GRPC_STREAM_COMPRESS_GZIP,
|
||||
GRPC_STREAM_COMPRESS_GZIP, GRPC_STREAM_COMPRESS_GZIP, nullptr,
|
||||
GRPC_COMPRESS_STREAM_GZIP, GRPC_COMPRESS_STREAM_GZIP,
|
||||
GRPC_COMPRESS_STREAM_GZIP, GRPC_COMPRESS_STREAM_GZIP, nullptr,
|
||||
false, /* ignored */
|
||||
GRPC_STREAM_COMPRESS_LEVEL_NONE, false, false, GRPC_COMPRESS_NONE);
|
||||
GRPC_COMPRESS_LEVEL_NONE, false, false, GRPC_COMPRESS_NONE);
|
||||
}
|
||||
|
||||
static void test_invoke_request_with_send_message_before_initial_metadata(
|
||||
grpc_end2end_test_config config) {
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_send_message_before_initial_metadata",
|
||||
0, GRPC_STREAM_COMPRESS_GZIP, GRPC_STREAM_COMPRESS_GZIP,
|
||||
GRPC_STREAM_COMPRESS_GZIP, GRPC_STREAM_COMPRESS_GZIP, nullptr,
|
||||
0, GRPC_COMPRESS_STREAM_GZIP, GRPC_COMPRESS_STREAM_GZIP,
|
||||
GRPC_COMPRESS_STREAM_GZIP, GRPC_COMPRESS_STREAM_GZIP, nullptr,
|
||||
false, /* ignored */
|
||||
GRPC_STREAM_COMPRESS_LEVEL_NONE, true, false, GRPC_COMPRESS_NONE);
|
||||
}
|
||||
|
||||
static void test_invoke_request_with_server_level(
|
||||
grpc_end2end_test_config config) {
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_server_level", 0,
|
||||
GRPC_STREAM_COMPRESS_NONE, GRPC_STREAM_COMPRESS_NONE,
|
||||
GRPC_STREAM_COMPRESS_NONE, GRPC_STREAM_COMPRESS_GZIP,
|
||||
/* ignored */ nullptr, true, GRPC_STREAM_COMPRESS_LEVEL_HIGH, false,
|
||||
false, GRPC_COMPRESS_NONE);
|
||||
GRPC_COMPRESS_LEVEL_NONE, true, false, GRPC_COMPRESS_NONE);
|
||||
}
|
||||
|
||||
static void test_invoke_request_with_compressed_payload_md_override(
|
||||
|
|
@ -591,7 +573,8 @@ static void test_invoke_request_with_compressed_payload_md_override(
|
|||
|
||||
gzip_compression_override.key =
|
||||
GRPC_MDSTR_GRPC_INTERNAL_STREAM_ENCODING_REQUEST;
|
||||
gzip_compression_override.value = grpc_slice_from_static_string("gzip");
|
||||
gzip_compression_override.value =
|
||||
grpc_slice_from_static_string("stream/gzip");
|
||||
memset(&gzip_compression_override.internal_data, 0,
|
||||
sizeof(gzip_compression_override.internal_data));
|
||||
|
||||
|
|
@ -605,49 +588,31 @@ static void test_invoke_request_with_compressed_payload_md_override(
|
|||
/* Channel default NONE (aka IDENTITY), call override to stream GZIP */
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_compressed_payload_md_override_1", 0,
|
||||
GRPC_STREAM_COMPRESS_NONE, GRPC_STREAM_COMPRESS_NONE,
|
||||
GRPC_STREAM_COMPRESS_GZIP, GRPC_STREAM_COMPRESS_NONE,
|
||||
&gzip_compression_override, false,
|
||||
/*ignored*/ GRPC_STREAM_COMPRESS_LEVEL_NONE, false, false,
|
||||
GRPC_COMPRESS_NONE);
|
||||
GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_STREAM_GZIP,
|
||||
GRPC_COMPRESS_NONE, &gzip_compression_override, false,
|
||||
/*ignored*/ GRPC_COMPRESS_LEVEL_NONE, false, false, GRPC_COMPRESS_NONE);
|
||||
|
||||
/* Channel default stream GZIP, call override to NONE (aka IDENTITY) */
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_compressed_payload_md_override_3", 0,
|
||||
GRPC_STREAM_COMPRESS_GZIP, GRPC_STREAM_COMPRESS_NONE,
|
||||
GRPC_STREAM_COMPRESS_NONE, GRPC_STREAM_COMPRESS_NONE,
|
||||
&identity_compression_override, false,
|
||||
/*ignored*/ GRPC_STREAM_COMPRESS_LEVEL_NONE, false, false,
|
||||
GRPC_COMPRESS_NONE);
|
||||
GRPC_COMPRESS_STREAM_GZIP, GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE,
|
||||
GRPC_COMPRESS_NONE, &identity_compression_override, false,
|
||||
/*ignored*/ GRPC_COMPRESS_LEVEL_NONE, false, false, GRPC_COMPRESS_NONE);
|
||||
}
|
||||
|
||||
static void test_invoke_request_with_disabled_algorithm(
|
||||
grpc_end2end_test_config config) {
|
||||
request_for_disabled_algorithm(
|
||||
config, "test_invoke_request_with_disabled_algorithm", 0,
|
||||
GRPC_STREAM_COMPRESS_GZIP, GRPC_STREAM_COMPRESS_GZIP,
|
||||
GRPC_COMPRESS_STREAM_GZIP, GRPC_COMPRESS_STREAM_GZIP,
|
||||
GRPC_STATUS_UNIMPLEMENTED, nullptr);
|
||||
}
|
||||
|
||||
static void test_stream_compression_override_message_compression(
|
||||
grpc_end2end_test_config config) {
|
||||
grpc_stream_compression_level level = GRPC_STREAM_COMPRESS_LEVEL_MED;
|
||||
request_with_payload_template(
|
||||
config, "test_stream_compression_override_message_compression", 0,
|
||||
GRPC_STREAM_COMPRESS_NONE, GRPC_STREAM_COMPRESS_NONE,
|
||||
GRPC_STREAM_COMPRESS_NONE,
|
||||
grpc_stream_compression_algorithm_for_level(
|
||||
level, (1u << GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT) - 1),
|
||||
/* ignored */ nullptr, true, level, false, true, GRPC_COMPRESS_GZIP);
|
||||
}
|
||||
|
||||
void stream_compression_compressed_payload(grpc_end2end_test_config config) {
|
||||
test_invoke_request_with_compressed_payload(config);
|
||||
test_invoke_request_with_send_message_before_initial_metadata(config);
|
||||
test_invoke_request_with_server_level(config);
|
||||
test_invoke_request_with_compressed_payload_md_override(config);
|
||||
test_invoke_request_with_disabled_algorithm(config);
|
||||
test_stream_compression_override_message_compression(config);
|
||||
}
|
||||
|
||||
void stream_compression_compressed_payload_pre_init(void) {}
|
||||
|
|
|
|||
|
|
@ -264,12 +264,10 @@ static void request_response_with_payload(grpc_end2end_test_config config,
|
|||
payload and status. */
|
||||
static void test_invoke_request_response_with_payload(
|
||||
grpc_end2end_test_config config) {
|
||||
grpc_channel_args* client_args =
|
||||
grpc_channel_args_set_stream_compression_algorithm(
|
||||
nullptr, GRPC_STREAM_COMPRESS_GZIP);
|
||||
grpc_channel_args* server_args =
|
||||
grpc_channel_args_set_stream_compression_algorithm(
|
||||
nullptr, GRPC_STREAM_COMPRESS_GZIP);
|
||||
grpc_channel_args* client_args = grpc_channel_args_set_compression_algorithm(
|
||||
nullptr, GRPC_COMPRESS_STREAM_GZIP);
|
||||
grpc_channel_args* server_args = grpc_channel_args_set_compression_algorithm(
|
||||
nullptr, GRPC_COMPRESS_STREAM_GZIP);
|
||||
grpc_end2end_test_fixture f =
|
||||
begin_test(config, "test_invoke_request_response_with_payload",
|
||||
client_args, server_args);
|
||||
|
|
|
|||
|
|
@ -90,12 +90,10 @@ static void end_test(grpc_end2end_test_fixture* f) {
|
|||
/* Client pings and server pongs. Repeat messages rounds before finishing. */
|
||||
static void test_pingpong_streaming(grpc_end2end_test_config config,
|
||||
int messages) {
|
||||
grpc_channel_args* client_args =
|
||||
grpc_channel_args_set_stream_compression_algorithm(
|
||||
nullptr, GRPC_STREAM_COMPRESS_GZIP);
|
||||
grpc_channel_args* server_args =
|
||||
grpc_channel_args_set_stream_compression_algorithm(
|
||||
nullptr, GRPC_STREAM_COMPRESS_GZIP);
|
||||
grpc_channel_args* client_args = grpc_channel_args_set_compression_algorithm(
|
||||
nullptr, GRPC_COMPRESS_STREAM_GZIP);
|
||||
grpc_channel_args* server_args = grpc_channel_args_set_compression_algorithm(
|
||||
nullptr, GRPC_COMPRESS_STREAM_GZIP);
|
||||
grpc_end2end_test_fixture f =
|
||||
begin_test(config, "test_pingpong_streaming", client_args, server_args);
|
||||
grpc_call* c;
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ static void test(grpc_end2end_test_config config, bool request_status_early) {
|
|||
grpc_byte_buffer* response_payload1_recv = nullptr;
|
||||
grpc_byte_buffer* response_payload2_recv = nullptr;
|
||||
grpc_call_details call_details;
|
||||
grpc_status_code status;
|
||||
grpc_status_code status = GRPC_STATUS_OK;
|
||||
grpc_call_error error;
|
||||
grpc_slice details;
|
||||
int was_cancelled = 2;
|
||||
|
|
|
|||
|
|
@ -207,9 +207,9 @@ static void request_with_payload_template(
|
|||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_NONE) != 0);
|
||||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_DEFLATE) != 0);
|
||||
GRPC_COMPRESS_MESSAGE_DEFLATE) != 0);
|
||||
GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s),
|
||||
GRPC_COMPRESS_GZIP) != 0);
|
||||
GRPC_COMPRESS_MESSAGE_GZIP) != 0);
|
||||
|
||||
memset(ops, 0, sizeof(ops));
|
||||
op = ops;
|
||||
|
|
@ -365,16 +365,16 @@ typedef struct workaround_cronet_compression_config {
|
|||
} workaround_cronet_compression_config;
|
||||
|
||||
static workaround_cronet_compression_config workaround_configs[] = {
|
||||
{nullptr, GRPC_COMPRESS_GZIP},
|
||||
{nullptr, GRPC_COMPRESS_MESSAGE_GZIP},
|
||||
{const_cast<char*>(
|
||||
"grpc-objc/1.3.0-dev grpc-c/3.0.0-dev (ios; cronet_http; gentle)"),
|
||||
GRPC_COMPRESS_NONE},
|
||||
{const_cast<char*>(
|
||||
"grpc-objc/1.3.0-dev grpc-c/3.0.0-dev (ios; chttp2; gentle)"),
|
||||
GRPC_COMPRESS_GZIP},
|
||||
GRPC_COMPRESS_MESSAGE_GZIP},
|
||||
{const_cast<char*>(
|
||||
"grpc-objc/1.4.0 grpc-c/3.0.0-dev (ios; cronet_http; gentle)"),
|
||||
GRPC_COMPRESS_GZIP}};
|
||||
GRPC_COMPRESS_MESSAGE_GZIP}};
|
||||
static const size_t workaround_configs_num =
|
||||
sizeof(workaround_configs) / sizeof(*workaround_configs);
|
||||
|
||||
|
|
@ -383,7 +383,8 @@ static void test_workaround_cronet_compression(
|
|||
for (uint32_t i = 0; i < workaround_configs_num; i++) {
|
||||
request_with_payload_template(
|
||||
config, "test_invoke_request_with_compressed_payload", 0,
|
||||
GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
GRPC_COMPRESS_MESSAGE_GZIP,
|
||||
workaround_configs[i].expected_algorithm_from_server, nullptr, false,
|
||||
/* ignored */ GRPC_COMPRESS_LEVEL_NONE,
|
||||
workaround_configs[i].user_agent_override);
|
||||
|
|
|
|||
|
|
@ -64,6 +64,44 @@ TEST(InlinedVectorTest, EmplaceBack) {
|
|||
EXPECT_EQ(3, *v[0]);
|
||||
}
|
||||
|
||||
TEST(InlinedVectorTest, ClearAndRepopulate) {
|
||||
const int kNumElements = 10;
|
||||
InlinedVector<int, 5> v;
|
||||
EXPECT_EQ(0UL, v.size());
|
||||
for (int i = 0; i < kNumElements; ++i) {
|
||||
v.push_back(i);
|
||||
EXPECT_EQ(i + 1UL, v.size());
|
||||
}
|
||||
for (int i = 0; i < kNumElements; ++i) {
|
||||
EXPECT_EQ(i, v[i]);
|
||||
}
|
||||
v.clear();
|
||||
EXPECT_EQ(0UL, v.size());
|
||||
for (int i = 0; i < kNumElements; ++i) {
|
||||
v.push_back(kNumElements + i);
|
||||
EXPECT_EQ(i + 1UL, v.size());
|
||||
}
|
||||
for (int i = 0; i < kNumElements; ++i) {
|
||||
EXPECT_EQ(kNumElements + i, v[i]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(InlinedVectorTest, ConstIndexOperator) {
|
||||
const int kNumElements = 10;
|
||||
InlinedVector<int, 5> v;
|
||||
EXPECT_EQ(0UL, v.size());
|
||||
for (int i = 0; i < kNumElements; ++i) {
|
||||
v.push_back(i);
|
||||
EXPECT_EQ(i + 1UL, v.size());
|
||||
}
|
||||
auto const_func = [kNumElements](const InlinedVector<int, 5>& v) {
|
||||
for (int i = 0; i < kNumElements; ++i) {
|
||||
EXPECT_EQ(i, v[i]);
|
||||
}
|
||||
};
|
||||
const_func(v);
|
||||
}
|
||||
|
||||
} // namespace testing
|
||||
} // namespace grpc_core
|
||||
|
||||
|
|
|
|||
|
|
@ -289,6 +289,7 @@ int main(int argc, char** argv) {
|
|||
}
|
||||
// no break here since we want to continue to case
|
||||
// FLING_SERVER_SEND_STATUS_SNAPSHOT to destroy the snapshot call
|
||||
/* fallthrough */
|
||||
case FLING_SERVER_SEND_STATUS_SNAPSHOT:
|
||||
grpc_byte_buffer_destroy(payload_buffer);
|
||||
grpc_byte_buffer_destroy(terminal_buffer);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <grpc/grpc.h>
|
||||
#include <grpc/support/alloc.h>
|
||||
#include <grpc/support/log.h>
|
||||
#include <grpc/support/string_util.h>
|
||||
|
|
@ -129,11 +128,77 @@ static void test_strsplit(void) {
|
|||
gpr_free(parts);
|
||||
}
|
||||
|
||||
static void test_strsplit_nospace(void) {
|
||||
grpc_slice_buffer* parts;
|
||||
grpc_slice str;
|
||||
|
||||
LOG_TEST_NAME("test_strsplit_nospace");
|
||||
|
||||
parts =
|
||||
static_cast<grpc_slice_buffer*>(gpr_malloc(sizeof(grpc_slice_buffer)));
|
||||
grpc_slice_buffer_init(parts);
|
||||
|
||||
str = grpc_slice_from_copied_string("one ,two, three , four");
|
||||
grpc_slice_split_without_space(str, ",", parts);
|
||||
GPR_ASSERT(4 == parts->count);
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[0], "one"));
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[1], "two"));
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[2], "three"));
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[3], "four"));
|
||||
grpc_slice_buffer_reset_and_unref(parts);
|
||||
grpc_slice_unref(str);
|
||||
|
||||
/* separator not present in string */
|
||||
str = grpc_slice_from_copied_string("one two three four ");
|
||||
grpc_slice_split_without_space(str, ",", parts);
|
||||
GPR_ASSERT(1 == parts->count);
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[0], "one two three four"));
|
||||
grpc_slice_buffer_reset_and_unref(parts);
|
||||
grpc_slice_unref(str);
|
||||
|
||||
/* separator at the end */
|
||||
str = grpc_slice_from_copied_string("foo,");
|
||||
grpc_slice_split_without_space(str, ",", parts);
|
||||
GPR_ASSERT(2 == parts->count);
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[0], "foo"));
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[1], ""));
|
||||
grpc_slice_buffer_reset_and_unref(parts);
|
||||
grpc_slice_unref(str);
|
||||
|
||||
/* separator at the beginning */
|
||||
str = grpc_slice_from_copied_string(" , foo");
|
||||
grpc_slice_split_without_space(str, ",", parts);
|
||||
GPR_ASSERT(2 == parts->count);
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[0], ""));
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[1], "foo"));
|
||||
grpc_slice_buffer_reset_and_unref(parts);
|
||||
grpc_slice_unref(str);
|
||||
|
||||
/* standalone separator */
|
||||
str = grpc_slice_from_copied_string(", ");
|
||||
grpc_slice_split_without_space(str, ", ", parts);
|
||||
GPR_ASSERT(2 == parts->count);
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[0], ""));
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[1], ""));
|
||||
grpc_slice_buffer_reset_and_unref(parts);
|
||||
grpc_slice_unref(str);
|
||||
|
||||
/* empty input */
|
||||
str = grpc_slice_from_copied_string("");
|
||||
grpc_slice_split_without_space(str, ",", parts);
|
||||
GPR_ASSERT(1 == parts->count);
|
||||
GPR_ASSERT(0 == grpc_slice_str_cmp(parts->slices[0], ""));
|
||||
grpc_slice_buffer_reset_and_unref(parts);
|
||||
grpc_slice_unref(str);
|
||||
|
||||
grpc_slice_buffer_destroy(parts);
|
||||
gpr_free(parts);
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
grpc_test_init(argc, argv);
|
||||
grpc_init();
|
||||
test_dump_slice();
|
||||
test_strsplit();
|
||||
grpc_shutdown();
|
||||
test_strsplit_nospace();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ static void test_read_corrupted_slice(void) {
|
|||
LOG_TEST("test_read_corrupted_slice");
|
||||
slice = grpc_slice_from_copied_string("test");
|
||||
buffer = grpc_raw_byte_buffer_create(&slice, 1);
|
||||
buffer->data.raw.compression = GRPC_COMPRESS_GZIP; /* lies! */
|
||||
buffer->data.raw.compression = GRPC_COMPRESS_MESSAGE_GZIP; /* lies! */
|
||||
grpc_slice_unref(slice);
|
||||
GPR_ASSERT(!grpc_byte_buffer_reader_init(&reader, buffer));
|
||||
grpc_byte_buffer_destroy(buffer);
|
||||
|
|
@ -133,7 +133,10 @@ static void read_compressed_slice(grpc_compression_algorithm algorithm,
|
|||
grpc_slice_buffer_add(&sliceb_in, input_slice); /* takes ownership */
|
||||
{
|
||||
grpc_core::ExecCtx exec_ctx;
|
||||
GPR_ASSERT(grpc_msg_compress(algorithm, &sliceb_in, &sliceb_out));
|
||||
GPR_ASSERT(grpc_msg_compress(
|
||||
|
||||
grpc_compression_algorithm_to_message_compression_algorithm(algorithm),
|
||||
&sliceb_in, &sliceb_out));
|
||||
}
|
||||
|
||||
buffer = grpc_raw_compressed_byte_buffer_create(sliceb_out.slices,
|
||||
|
|
@ -158,13 +161,13 @@ static void read_compressed_slice(grpc_compression_algorithm algorithm,
|
|||
static void test_read_gzip_compressed_slice(void) {
|
||||
const size_t INPUT_SIZE = 2048;
|
||||
LOG_TEST("test_read_gzip_compressed_slice");
|
||||
read_compressed_slice(GRPC_COMPRESS_GZIP, INPUT_SIZE);
|
||||
read_compressed_slice(GRPC_COMPRESS_MESSAGE_GZIP, INPUT_SIZE);
|
||||
}
|
||||
|
||||
static void test_read_deflate_compressed_slice(void) {
|
||||
const size_t INPUT_SIZE = 2048;
|
||||
LOG_TEST("test_read_deflate_compressed_slice");
|
||||
read_compressed_slice(GRPC_COMPRESS_DEFLATE, INPUT_SIZE);
|
||||
read_compressed_slice(GRPC_COMPRESS_MESSAGE_DEFLATE, INPUT_SIZE);
|
||||
}
|
||||
|
||||
static void test_byte_buffer_from_reader(void) {
|
||||
|
|
@ -202,8 +205,8 @@ static void test_readall(void) {
|
|||
|
||||
LOG_TEST("test_readall");
|
||||
|
||||
memset(lotsa_as, 'a', 512);
|
||||
memset(lotsa_bs, 'b', 1024);
|
||||
memset(lotsa_as, 'a', 512 * sizeof(lotsa_as[0]));
|
||||
memset(lotsa_bs, 'b', 1024 * sizeof(lotsa_bs[0]));
|
||||
/* use slices large enough to overflow inlining */
|
||||
slices[0] = grpc_slice_malloc(512);
|
||||
memcpy(GRPC_SLICE_START_PTR(slices[0]), lotsa_as, 512);
|
||||
|
|
@ -237,8 +240,8 @@ static void test_byte_buffer_copy(void) {
|
|||
|
||||
LOG_TEST("test_byte_buffer_copy");
|
||||
|
||||
memset(lotsa_as, 'a', 512);
|
||||
memset(lotsa_bs, 'b', 1024);
|
||||
memset(lotsa_as, 'a', 512 * sizeof(lotsa_as[0]));
|
||||
memset(lotsa_bs, 'b', 1024 * sizeof(lotsa_bs[0]));
|
||||
/* use slices large enough to overflow inlining */
|
||||
slices[0] = grpc_slice_malloc(512);
|
||||
memcpy(GRPC_SLICE_START_PTR(slices[0]), lotsa_as, 512);
|
||||
|
|
@ -265,7 +268,6 @@ static void test_byte_buffer_copy(void) {
|
|||
|
||||
int main(int argc, char** argv) {
|
||||
grpc_test_init(argc, argv);
|
||||
grpc_init();
|
||||
test_read_one_slice();
|
||||
test_read_one_slice_malloc();
|
||||
test_read_none_compressed_slice();
|
||||
|
|
@ -275,6 +277,5 @@ int main(int argc, char** argv) {
|
|||
test_byte_buffer_from_reader();
|
||||
test_byte_buffer_copy();
|
||||
test_readall();
|
||||
grpc_shutdown();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
#include <grpc/byte_buffer_reader.h>
|
||||
#include <grpc/census.h>
|
||||
#include <grpc/compression.h>
|
||||
#include <grpc/compression_ruby.h>
|
||||
#include <grpc/fork.h>
|
||||
#include <grpc/grpc.h>
|
||||
#include <grpc/grpc_security.h>
|
||||
|
|
@ -66,16 +67,17 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
printf("%lx", (unsigned long) grpc_compression_algorithm_is_message);
|
||||
printf("%lx", (unsigned long) grpc_compression_algorithm_is_stream);
|
||||
printf("%lx", (unsigned long) grpc_compression_algorithm_parse);
|
||||
printf("%lx", (unsigned long) grpc_compression_algorithm_name);
|
||||
printf("%lx", (unsigned long) grpc_stream_compression_algorithm_name);
|
||||
printf("%lx", (unsigned long) grpc_compression_algorithm_for_level);
|
||||
printf("%lx", (unsigned long) grpc_stream_compression_algorithm_for_level);
|
||||
printf("%lx", (unsigned long) grpc_compression_options_init);
|
||||
printf("%lx", (unsigned long) grpc_compression_options_enable_algorithm);
|
||||
printf("%lx", (unsigned long) grpc_compression_options_disable_algorithm);
|
||||
printf("%lx", (unsigned long) grpc_compression_options_is_algorithm_enabled);
|
||||
printf("%lx", (unsigned long) grpc_compression_options_is_stream_compression_algorithm_enabled);
|
||||
printf("%lx", (unsigned long) grpc_compression_algorithm_parse_ruby);
|
||||
printf("%lx", (unsigned long) grpc_compression_algorithm_name_ruby);
|
||||
printf("%lx", (unsigned long) grpc_metadata_array_init);
|
||||
printf("%lx", (unsigned long) grpc_metadata_array_destroy);
|
||||
printf("%lx", (unsigned long) grpc_call_details_init);
|
||||
|
|
|
|||
|
|
@ -350,7 +350,7 @@ static void SendRpc(grpc::testing::EchoTestService::Stub* stub, int num_rpcs,
|
|||
char bytes[8] = {'\0', '\1', '\2', '\3', '\4', '\5', '\6', (char)i};
|
||||
context.AddMetadata("custom-bin", grpc::string(bytes, 8));
|
||||
}
|
||||
context.set_compression_algorithm(GRPC_COMPRESS_GZIP);
|
||||
context.set_compression_algorithm(GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
Status s = stub->Echo(&context, request, &response);
|
||||
EXPECT_EQ(response.message(), request.message());
|
||||
EXPECT_TRUE(s.ok());
|
||||
|
|
@ -706,7 +706,6 @@ TEST_P(End2endTest, ReconnectChannel) {
|
|||
if (GetParam().inproc) {
|
||||
return;
|
||||
}
|
||||
gpr_setenv("GRPC_CLIENT_CHANNEL_BACKUP_POLL_INTERVAL_MS", "200");
|
||||
int poller_slowdown_factor = 1;
|
||||
// It needs 2 pollset_works to reconnect the channel with polling engine
|
||||
// "poll"
|
||||
|
|
@ -1828,6 +1827,7 @@ INSTANTIATE_TEST_CASE_P(ResourceQuotaEnd2end, ResourceQuotaEnd2endTest,
|
|||
} // namespace grpc
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
gpr_setenv("GRPC_CLIENT_CHANNEL_BACKUP_POLL_INTERVAL_MS", "200");
|
||||
grpc_test_init(argc, argv);
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
|
|
|
|||
|
|
@ -265,7 +265,7 @@ TEST_F(FilterEnd2endTest, SimpleBidiStreaming) {
|
|||
GenericServerContext srv_ctx;
|
||||
GenericServerAsyncReaderWriter srv_stream(&srv_ctx);
|
||||
|
||||
cli_ctx.set_compression_algorithm(GRPC_COMPRESS_GZIP);
|
||||
cli_ctx.set_compression_algorithm(GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
send_request.set_message("Hello");
|
||||
std::unique_ptr<GenericClientAsyncReaderWriter> cli_stream =
|
||||
generic_stub_->Call(&cli_ctx, kMethodName, &cli_cq_, tag(1));
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ TEST_F(GenericEnd2endTest, SimpleBidiStreaming) {
|
|||
GenericServerContext srv_ctx;
|
||||
GenericServerAsyncReaderWriter srv_stream(&srv_ctx);
|
||||
|
||||
cli_ctx.set_compression_algorithm(GRPC_COMPRESS_GZIP);
|
||||
cli_ctx.set_compression_algorithm(GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
send_request.set_message("Hello");
|
||||
std::unique_ptr<GenericClientAsyncReaderWriter> cli_stream =
|
||||
generic_stub_->Call(&cli_ctx, kMethodName, &cli_cq_, tag(1));
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ TEST_P(ServerBuilderPluginTest, PluginWithServiceTest) {
|
|||
EchoResponse response;
|
||||
request.set_message("Hello hello hello hello");
|
||||
ClientContext context;
|
||||
context.set_compression_algorithm(GRPC_COMPRESS_GZIP);
|
||||
context.set_compression_algorithm(GRPC_COMPRESS_MESSAGE_GZIP);
|
||||
Status s = stub_->Echo(&context, request, &response);
|
||||
EXPECT_EQ(response.message(), request.message());
|
||||
EXPECT_TRUE(s.ok());
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue