From: David Zarzycki Date: Wed, 11 Sep 2019 08:32:37 +0000 (+0000) Subject: [LLDB] Do not try to canonicalize gethostname() result X-Git-Tag: llvmorg-11-init~9489 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b250d5ff5e7c5ebd9f3f5da6776ffc91cd01c614;p=platform%2Fupstream%2Fllvm.git [LLDB] Do not try to canonicalize gethostname() result This code is trying too hard and failing. Either the result of gethostname() is canonical or it is not. If it is not, then trying to canonicalize it is – for various reasons – a lost cause. For example, a given machine might have multiple network interfaces with multiple addresses per interface, each with a different canonical name. Separably, the result of HostInfoPosix::GetHostname() and latency thereof shouldn't depend on whether networking is up or down or what network the machine happened to be attached to at any given moment (like a laptop that travels between work and home). https://reviews.llvm.org/D67230 llvm-svn: 371596 --- diff --git a/lldb/source/Host/posix/HostInfoPosix.cpp b/lldb/source/Host/posix/HostInfoPosix.cpp index 78300fc..e7d0dee 100644 --- a/lldb/source/Host/posix/HostInfoPosix.cpp +++ b/lldb/source/Host/posix/HostInfoPosix.cpp @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -32,17 +31,7 @@ bool HostInfoPosix::GetHostname(std::string &s) { char hostname[PATH_MAX]; hostname[sizeof(hostname) - 1] = '\0'; if (::gethostname(hostname, sizeof(hostname) - 1) == 0) { - struct addrinfo hints; - struct addrinfo *res = nullptr; - std::memset(&hints, 0, sizeof(hints)); - hints.ai_flags = AI_CANONNAME; - int err = ::getaddrinfo(hostname, nullptr, &hints, &res); - if (err == 0) { - assert(res->ai_canonname && "getaddrinfo found a canonical name"); - s.assign(res->ai_canonname); - freeaddrinfo(res); - } else - s.assign(hostname); + s.assign(hostname); return true; } return false;