From 8e855ea98957b1c6368c68d64c6e36bc67151073 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9my=20Lal?= Date: Thu, 4 Jun 2020 01:35:16 +0100 Subject: [PATCH] uv_os_uname is not available in libuv 1.24.1, restore node 10.15.2 way Last-Update: 2019-09-05 Forwarded: not-needed Gbp-Pq: Name uv_stable.patch --- src/node_os.cc | 38 +++++++++++++++++++++++++---- test/parallel/test-dgram-address.js | 2 +- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/node_os.cc b/src/node_os.cc index 2cdc4ea8d..1050125de 100644 --- a/src/node_os.cc +++ b/src/node_os.cc @@ -103,16 +103,44 @@ static void GetOSType(const FunctionCallbackInfo& args) { static void GetOSRelease(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); - uv_utsname_t info; - int err = uv_os_uname(&info); + const char* rval; - if (err != 0) { +#ifdef __POSIX__ + struct utsname info; + if (uname(&info) < 0) { CHECK_GE(args.Length(), 1); - env->CollectUVExceptionInfo(args[args.Length() - 1], err, "uv_os_uname"); + env->CollectExceptionInfo(args[args.Length() - 1], errno, "uname"); return args.GetReturnValue().SetUndefined(); } +# ifdef _AIX + char release[256]; + snprintf(release, sizeof(release), + "%s.%s", info.version, info.release); + rval = release; +# else + rval = info.release; +# endif +#else // Windows + char release[256]; + OSVERSIONINFOW info; + + info.dwOSVersionInfoSize = sizeof(info); + + // Don't complain that GetVersionEx is deprecated; there is no alternative. + #pragma warning(suppress : 4996) + if (GetVersionExW(&info) == 0) + return; + + snprintf(release, + sizeof(release), + "%d.%d.%d", + static_cast(info.dwMajorVersion), + static_cast(info.dwMinorVersion), + static_cast(info.dwBuildNumber)); + rval = release; +#endif // __POSIX__ - args.GetReturnValue().Set(OneByteString(env->isolate(), info.release)); + args.GetReturnValue().Set(OneByteString(env->isolate(), rval)); } diff --git a/test/parallel/test-dgram-address.js b/test/parallel/test-dgram-address.js index 2a41755e1..f14b910fc 100644 --- a/test/parallel/test-dgram-address.js +++ b/test/parallel/test-dgram-address.js @@ -77,5 +77,5 @@ if (common.hasIPv6) { assert.throws(() => { socket.address(); - }, /^Error: getsockname EBADF$/); + }, /^Error: getsockname EINVAL$/); } -- 2.30.2