[Lldb-commits] [lldb] Fix connecting via abstract socket (PR #136466)
Emre Kultursay via lldb-commits
lldb-commits at lists.llvm.org
Wed Apr 23 22:09:22 PDT 2025
================
@@ -182,3 +191,22 @@ std::vector<std::string> DomainSocket::GetListeningConnectionURI() const {
return {llvm::formatv("unix-connect://{0}", addr.sun_path)};
}
+
+Socket *DomainSocket::Create(NativeSocket sockfd, bool should_close,
+ Status &error) {
+#ifdef __linux__
+ // Check if fd represents domain socket or abstract socket.
+ struct sockaddr_un addr;
+ socklen_t addr_len = sizeof(addr);
+ if (getsockname(sockfd, (struct sockaddr *)&addr, &addr_len) == -1) {
+ error = Status::FromErrorString(
+ "lldb-platform child: not a socket or error occurred");
+ return nullptr;
+ }
+
+ if (addr.sun_family == AF_UNIX && addr.sun_path[0] == '\0') {
+ return new AbstractSocket(sockfd, should_close);
+ }
+#endif
+ return new DomainSocket(sockfd, should_close);
+}
----------------
emrekultursay wrote:
Done.
https://github.com/llvm/llvm-project/pull/136466
More information about the lldb-commits
mailing list