================ @@ -182,3 +191,20 @@ std::vector<std::string> DomainSocket::GetListeningConnectionURI() const { return {llvm::formatv("unix-connect://{0}", addr.sun_path)}; } + +llvm::Expected<std::unique_ptr<DomainSocket>> +DomainSocket::FromBoundNativeSocket(NativeSocket sockfd, bool should_close) { +#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) + return llvm::createStringError("not a socket or error occurred"); + if (addr.sun_family != AF_UNIX) + return llvm::createStringError("Bad socket type"); ---------------- labath wrote:
Moving the ifdef around to get a bit more consistent experience when passing an invalid (or unbound?) socket to this function ```suggestion // 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) return llvm::createStringError("not a socket or error occurred"); if (addr.sun_family != AF_UNIX) return llvm::createStringError("Bad socket type"); #ifdef __linux__ ``` https://github.com/llvm/llvm-project/pull/136466 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits