diff options
author | Krzysztof KosiĆski <krzysio@google.com> | 2023-10-28 03:40:58 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-10-28 03:40:58 +0000 |
commit | ba0b863b3acf952eac2c12f3f4174ea59dbf32bf (patch) | |
tree | fd4d92596d2bd979e7098a76f2ed4963e00ca569 | |
parent | 9f27dc84d426e6d492a0104d9d76fe47b2df26d8 (diff) | |
parent | 06fb97455fd5336cebfa9a1eb44d4fac6d054608 (diff) | |
download | grpc-grpc-ba0b863b3acf952eac2c12f3f4174ea59dbf32bf.tar.gz |
Fix some issues with the VSOCK patch. am: 06fb97455f
Original change: https://android-review.googlesource.com/c/platform/external/grpc-grpc/+/2808536
Change-Id: Ib03dfd0e54cbc06a16371a4c9f2bf018f3070e72
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc | 4 | ||||
-rw-r--r-- | src/core/lib/address_utils/parse_address.cc | 6 | ||||
-rw-r--r-- | src/core/lib/address_utils/sockaddr_utils.cc | 12 | ||||
-rw-r--r-- | src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc | 6 | ||||
-rw-r--r-- | src/core/lib/iomgr/port.h | 12 | ||||
-rw-r--r-- | src/core/lib/iomgr/sockaddr_posix.h | 8 | ||||
-rw-r--r-- | src/core/lib/iomgr/unix_sockets_posix.cc | 6 | ||||
-rw-r--r-- | test/core/address_utils/parse_address_test.cc | 6 | ||||
-rw-r--r-- | test/core/address_utils/sockaddr_utils_test.cc | 6 | ||||
-rw-r--r-- | test/core/event_engine/posix/tcp_posix_socket_utils_test.cc | 3 |
10 files changed, 29 insertions, 40 deletions
diff --git a/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc b/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc index 4d924d1782..143468ac0e 100644 --- a/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +++ b/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc @@ -172,7 +172,7 @@ class UnixAbstractResolverFactory : public ResolverFactory { }; #endif // GRPC_HAVE_UNIX_SOCKET -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK class VSockResolverFactory : public ResolverFactory { public: absl::string_view scheme() const override { return "vsock"; } @@ -204,7 +204,7 @@ void RegisterSockaddrResolver(CoreConfiguration::Builder* builder) { builder->resolver_registry()->RegisterResolverFactory( std::make_unique<UnixAbstractResolverFactory>()); #endif -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK builder->resolver_registry()->RegisterResolverFactory( std::make_unique<grpc_core::VSockResolverFactory>()); #endif diff --git a/src/core/lib/address_utils/parse_address.cc b/src/core/lib/address_utils/parse_address.cc index 1c837b8ff0..42b9cae4ba 100644 --- a/src/core/lib/address_utils/parse_address.cc +++ b/src/core/lib/address_utils/parse_address.cc @@ -144,7 +144,7 @@ grpc_error_handle UnixAbstractSockaddrPopulate( } // namespace grpc_core #endif /* GRPC_HAVE_UNIX_SOCKET */ -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK bool grpc_parse_vsock(const grpc_core::URI& uri, grpc_resolved_address* resolved_addr) { @@ -181,7 +181,7 @@ grpc_error_handle VSockaddrPopulate(absl::string_view path, } // namespace grpc_core -#else /* GRPC_HAVE_LINUX_VSOCK */ +#else /* GRPC_HAVE_VSOCK */ bool grpc_parse_vsock(const grpc_core::URI& /* uri */, grpc_resolved_address* /* resolved_addr */) { @@ -195,7 +195,7 @@ grpc_error_handle VSockaddrPopulate( abort(); } -#endif /* GRPC_HAVE_LINUX_VSOCK */ +#endif /* GRPC_HAVE_VSOCK */ bool grpc_parse_ipv4_hostport(absl::string_view hostport, grpc_resolved_address* addr, bool log_errors) { diff --git a/src/core/lib/address_utils/sockaddr_utils.cc b/src/core/lib/address_utils/sockaddr_utils.cc index f2bfe763eb..1a7b47ddef 100644 --- a/src/core/lib/address_utils/sockaddr_utils.cc +++ b/src/core/lib/address_utils/sockaddr_utils.cc @@ -75,7 +75,7 @@ static absl::StatusOr<std::string> grpc_sockaddr_to_uri_unix_if_possible( } #endif -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK static absl::StatusOr<std::string> grpc_sockaddr_to_uri_vsock_if_possible( const grpc_resolved_address* resolved_addr) { const grpc_sockaddr* addr = @@ -87,12 +87,12 @@ static absl::StatusOr<std::string> grpc_sockaddr_to_uri_vsock_if_possible( const auto* vsock_addr = reinterpret_cast<const struct sockaddr_vm*>(addr); return absl::StrCat("vsock:", vsock_addr->svm_cid, ":", vsock_addr->svm_port); } -#else /* GRPC_HAVE_LINUX_VSOCK */ +#else /* GRPC_HAVE_VSOCK */ static absl::StatusOr<std::string> grpc_sockaddr_to_uri_vsock_if_possible( const grpc_resolved_address* /* addr */) { return absl::InvalidArgumentError("VSOCK is not supported."); } -#endif /* GRPC_HAVE_LINUX_VSOCK */ +#endif /* GRPC_HAVE_VSOCK */ static const uint8_t kV4MappedPrefix[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff}; @@ -241,7 +241,7 @@ absl::StatusOr<std::string> grpc_sockaddr_to_string( } #endif -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK if (addr->sa_family == GRPC_AF_VSOCK) { const sockaddr_vm* addr_vm = reinterpret_cast<const sockaddr_vm*>(addr); out = absl::StrCat(addr_vm->svm_cid, ":", addr_vm->svm_port); @@ -348,10 +348,10 @@ int grpc_sockaddr_get_port(const grpc_resolved_address* resolved_addr) { case AF_UNIX: return 1; #endif -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK case GRPC_AF_VSOCK: return 1; -#endif /* GRPC_HAVE_LINUX_VSOCK */ +#endif /* GRPC_HAVE_VSOCK */ default: gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_get_port", addr->sa_family); diff --git a/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc b/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc index 5bd6755c29..141b1ef810 100644 --- a/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +++ b/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc @@ -324,10 +324,10 @@ absl::StatusOr<std::string> SockaddrToString( } #endif -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK if (addr->sa_family == AF_VSOCK) { const sockaddr_vm* addr_vm = reinterpret_cast<const sockaddr_vm*>(addr); - return absl::StrCat("vsock:", addr_vm->svm_cid, ":", addr_vm->svm_port); + return absl::StrCat(addr_vm->svm_cid, ":", addr_vm->svm_port); } #endif @@ -403,7 +403,7 @@ int SockaddrGetPort(const EventEngine::ResolvedAddress& resolved_addr) { case AF_UNIX: return 1; #endif -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK case AF_VSOCK: return 1; #endif diff --git a/src/core/lib/iomgr/port.h b/src/core/lib/iomgr/port.h index 88f2a0321e..f84890c6b6 100644 --- a/src/core/lib/iomgr/port.h +++ b/src/core/lib/iomgr/port.h @@ -37,11 +37,7 @@ #define GRPC_HAVE_IP_PKTINFO 1 #define GRPC_HAVE_MSG_NOSIGNAL 1 #define GRPC_HAVE_UNIX_SOCKET 1 -#ifdef LINUX_VERSION_CODE -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) -#define GRPC_HAVE_LINUX_VSOCK -#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) */ -#endif /* LINUX_VERSION_CODE */ +#define GRPC_HAVE_VSOCK 1 #define GRPC_LINUX_EVENTFD 1 #define GRPC_POSIX_SOCKET 1 #define GRPC_POSIX_SOCKETUTILS 1 @@ -53,6 +49,7 @@ #define GRPC_HAVE_IP_PKTINFO 1 #define GRPC_HAVE_MSG_NOSIGNAL 1 #define GRPC_HAVE_UNIX_SOCKET 1 +#define GRPC_HAVE_VSOCK 1 /* Linux has TCP_INQ support since 4.18, but it is safe to set the socket option on older kernels. */ #define GRPC_HAVE_TCP_INQ 1 @@ -61,11 +58,6 @@ #define GRPC_LINUX_ERRQUEUE 1 #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0) */ #endif /* LINUX_VERSION_CODE */ -#ifdef LINUX_VERSION_CODE -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) -#define GRPC_HAVE_LINUX_VSOCK -#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) */ -#endif /* LINUX_VERSION_CODE */ #define GRPC_LINUX_MULTIPOLL_WITH_EPOLL 1 #define GRPC_POSIX_FORK 1 #define GRPC_POSIX_HOST_NAME_MAX 1 diff --git a/src/core/lib/iomgr/sockaddr_posix.h b/src/core/lib/iomgr/sockaddr_posix.h index ef8ab46815..a70b8f48fa 100644 --- a/src/core/lib/iomgr/sockaddr_posix.h +++ b/src/core/lib/iomgr/sockaddr_posix.h @@ -50,14 +50,10 @@ typedef struct in6_addr grpc_in6_addr; #define GRPC_AF_INET AF_INET #define GRPC_AF_INET6 AF_INET6 -#ifdef GRPC_HAVE_LINUX_VSOCK -#include <linux/vm_sockets.h> // Needs to come after sys/socket.h -#define GRPC_AF_VSOCK AF_VSOCK -#elif GPR_ANDROID +#ifdef GRPC_HAVE_VSOCK // HACK(chenhaosjtuacm): when building host services for run_cvd, the glibc version of Android // toolchain is too low, using the header copied from bionic libc instead -#include "vm_sockets.h" -#define GRPC_HAVE_LINUX_VSOCK +#include "src/core/lib/iomgr/vm_sockets.h" #define GRPC_AF_VSOCK AF_VSOCK #endif diff --git a/src/core/lib/iomgr/unix_sockets_posix.cc b/src/core/lib/iomgr/unix_sockets_posix.cc index 6634d6e374..9bd87bfe01 100644 --- a/src/core/lib/iomgr/unix_sockets_posix.cc +++ b/src/core/lib/iomgr/unix_sockets_posix.cc @@ -85,13 +85,13 @@ int grpc_is_unix_socket(const grpc_resolved_address* resolved_addr) { } int grpc_is_vsock(const grpc_resolved_address* resolved_addr) { -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK const grpc_sockaddr* addr = reinterpret_cast<const grpc_sockaddr*>(resolved_addr->addr); return addr->sa_family == AF_VSOCK; -#else /* GRPC_HAVE_LINUX_VSOCK */ +#else /* GRPC_HAVE_VSOCK */ return 0; -#endif /* GRPC_HAVE_LINUX_VSOCK */ +#endif /* GRPC_HAVE_VSOCK */ } void grpc_unlink_if_unix_domain_socket( diff --git a/test/core/address_utils/parse_address_test.cc b/test/core/address_utils/parse_address_test.cc index 1a2d8f0f7b..ef125bd8d7 100644 --- a/test/core/address_utils/parse_address_test.cc +++ b/test/core/address_utils/parse_address_test.cc @@ -80,7 +80,7 @@ static void test_grpc_parse_unix_abstract(const char* uri_text, #endif /* GRPC_HAVE_UNIX_SOCKET */ -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK static void test_grpc_parse_vsock(const char* uri_text, uint32_t cid, uint32_t port) { @@ -100,11 +100,11 @@ static void test_grpc_parse_vsock(const char* uri_text, uint32_t cid, ASSERT_EQ(addr_vm->svm_port, port); } -#else // GRPC_HAVE_LINUX_VSOCK +#else // GRPC_HAVE_VSOCK static void test_grpc_parse_vsock(const char* /* uri_text */, ...) {} -#endif // GRPC_HAVE_LINUX_VSOCK +#endif // GRPC_HAVE_VSOCK static void test_grpc_parse_ipv4(const char* uri_text, const char* host, unsigned short port) { diff --git a/test/core/address_utils/sockaddr_utils_test.cc b/test/core/address_utils/sockaddr_utils_test.cc index c5d613632b..c538ee8674 100644 --- a/test/core/address_utils/sockaddr_utils_test.cc +++ b/test/core/address_utils/sockaddr_utils_test.cc @@ -265,7 +265,7 @@ TEST(SockAddrUtilsTest, SockAddrToString) { absl::InvalidArgumentError("empty UDS abstract path")); #endif -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK grpc_resolved_address inputvm; ASSERT_EQ(grpc_core::VSockaddrPopulate("-1:12345", &inputvm), absl::OkStatus()); @@ -295,7 +295,7 @@ TEST(SockAddrUtilsTest, UnixSockAddrToUri) { #endif /* GRPC_HAVE_UNIX_SOCKET */ -#ifdef GRPC_HAVE_LINUX_VSOCK +#ifdef GRPC_HAVE_VSOCK TEST(SockAddrUtilsTest, VSockAddrToUri) { grpc_resolved_address addr; @@ -305,7 +305,7 @@ TEST(SockAddrUtilsTest, VSockAddrToUri) { absl::StrCat("vsock:", (uint32_t)-1, ":12345")); } -#endif // GRPC_HAVE_LINUX_VSOCK +#endif // GRPC_HAVE_VSOCK TEST(SockAddrUtilsTest, SockAddrSetGetPort) { grpc_resolved_address input4 = MakeAddr4(kIPv4, sizeof(kIPv4)); diff --git a/test/core/event_engine/posix/tcp_posix_socket_utils_test.cc b/test/core/event_engine/posix/tcp_posix_socket_utils_test.cc index 5a021c1bfa..2a38c90a22 100644 --- a/test/core/event_engine/posix/tcp_posix_socket_utils_test.cc +++ b/test/core/event_engine/posix/tcp_posix_socket_utils_test.cc @@ -28,6 +28,7 @@ #include <grpc/grpc.h> #include "src/core/lib/iomgr/port.h" +#include "src/core/lib/iomgr/sockaddr.h" // IWYU pragma: no_include <arpa/inet.h> @@ -406,7 +407,7 @@ TEST(TcpPosixSocketUtilsTest, SockAddrToStringTest) { #ifdef GRPC_HAVE_VSOCK EventEngine::ResolvedAddress inputvm = *VSockaddrPopulate("-1:12345"); - EXPECT_EQ(ResolvedAddressToNormalizedString(inputvm).value(), + EXPECT_EQ(SockaddrToString(&inputvm, true).value(), absl::StrCat((uint32_t)-1, ":12345")); #endif } |