From add566eee58d26b6b8c8ace65d0fad42e570afdf Mon Sep 17 00:00:00 2001
From: cjihrig <cjihrig@gmail.com>
Date: Tue, 18 Dec 2018 13:48:47 -0500
Subject: [PATCH] os: use uv_os_gethostname() in hostname()

This commit changes the C++ implementation of os.hostname()
to use uv_os_gethostname().

PR-URL: https://github.com/nodejs/node/pull/25111
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
---
 src/node_os.cc | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/node_os.cc b/src/node_os.cc
index 77693a47ec901f..72719f2933728c 100644
--- a/src/node_os.cc
+++ b/src/node_os.cc
@@ -68,18 +68,15 @@ using v8::Value;
 static void GetHostname(const FunctionCallbackInfo<Value>& args) {
   Environment* env = Environment::GetCurrent(args);
   char buf[MAXHOSTNAMELEN + 1];
+  size_t size = sizeof(buf);
+  int r = uv_os_gethostname(buf, &size);
 
-  if (gethostname(buf, sizeof(buf))) {
-#ifdef __POSIX__
-    int errorno = errno;
-#else  // __MINGW32__
-    int errorno = WSAGetLastError();
-#endif  // __POSIX__
+  if (r != 0) {
     CHECK_GE(args.Length(), 1);
-    env->CollectExceptionInfo(args[args.Length() - 1], errorno, "gethostname");
+    env->CollectUVExceptionInfo(args[args.Length() - 1], r,
+                                "uv_os_gethostname");
     return args.GetReturnValue().SetUndefined();
   }
-  buf[sizeof(buf) - 1] = '\0';
 
   args.GetReturnValue().Set(OneByteString(env->isolate(), buf));
 }