[Lldb-commits] [lldb] r371596 - [LLDB] Do not try to canonicalize gethostname() result

David Zarzycki via lldb-commits lldb-commits at lists.llvm.org
Wed Sep 11 01:32:37 PDT 2019


Author: davezarzycki
Date: Wed Sep 11 01:32:37 2019
New Revision: 371596

URL: http://llvm.org/viewvc/llvm-project?rev=371596&view=rev
Log:
[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

Modified:
    lldb/trunk/source/Host/posix/HostInfoPosix.cpp

Modified: lldb/trunk/source/Host/posix/HostInfoPosix.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/posix/HostInfoPosix.cpp?rev=371596&r1=371595&r2=371596&view=diff
==============================================================================
--- lldb/trunk/source/Host/posix/HostInfoPosix.cpp (original)
+++ lldb/trunk/source/Host/posix/HostInfoPosix.cpp Wed Sep 11 01:32:37 2019
@@ -18,7 +18,6 @@
 #include <grp.h>
 #include <limits.h>
 #include <mutex>
-#include <netdb.h>
 #include <pwd.h>
 #include <stdlib.h>
 #include <sys/types.h>
@@ -32,17 +31,7 @@ bool HostInfoPosix::GetHostname(std::str
   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;




More information about the lldb-commits mailing list