diff options
author | cjihrig <cjihrig@gmail.com> | 2019-01-18 13:37:29 -0500 |
---|---|---|
committer | cjihrig <cjihrig@gmail.com> | 2019-01-21 10:28:17 -0500 |
commit | f698386c7e988ef45027a75b2ff988899ee2af1d (patch) | |
tree | 37d9c39baf7fb03e472701436410e8e461086174 /deps/uv/src/unix/core.c | |
parent | 27871c35b685dd599710e57e76a66ee3a82c1e6d (diff) | |
download | android-node-v8-f698386c7e988ef45027a75b2ff988899ee2af1d.tar.gz android-node-v8-f698386c7e988ef45027a75b2ff988899ee2af1d.tar.bz2 android-node-v8-f698386c7e988ef45027a75b2ff988899ee2af1d.zip |
deps: upgrade to libuv 1.25.0
PR-URL: https://github.com/nodejs/node/pull/25571
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Diffstat (limited to 'deps/uv/src/unix/core.c')
-rw-r--r-- | deps/uv/src/unix/core.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/deps/uv/src/unix/core.c b/deps/uv/src/unix/core.c index 0830c74a16..cd57ce20ba 100644 --- a/deps/uv/src/unix/core.c +++ b/deps/uv/src/unix/core.c @@ -40,6 +40,7 @@ #include <sys/uio.h> /* writev */ #include <sys/resource.h> /* getrusage */ #include <pwd.h> +#include <sys/utsname.h> #ifdef __sun # include <netdb.h> /* MAXHOSTNAMELEN on Solaris */ @@ -1357,3 +1358,59 @@ int uv_os_setpriority(uv_pid_t pid, int priority) { return 0; } + + +int uv_os_uname(uv_utsname_t* buffer) { + struct utsname buf; + int r; + + if (buffer == NULL) + return UV_EINVAL; + + if (uname(&buf) == -1) { + r = UV__ERR(errno); + goto error; + } + + r = uv__strscpy(buffer->sysname, buf.sysname, sizeof(buffer->sysname)); + if (r == UV_E2BIG) + goto error; + +#ifdef _AIX + r = snprintf(buffer->release, + sizeof(buffer->release), + "%s.%s", + buf.version, + buf.release); + if (r >= sizeof(buffer->release)) { + r = UV_E2BIG; + goto error; + } +#else + r = uv__strscpy(buffer->release, buf.release, sizeof(buffer->release)); + if (r == UV_E2BIG) + goto error; +#endif + + r = uv__strscpy(buffer->version, buf.version, sizeof(buffer->version)); + if (r == UV_E2BIG) + goto error; + +#if defined(_AIX) || defined(__PASE__) + r = uv__strscpy(buffer->machine, "ppc64", sizeof(buffer->machine)); +#else + r = uv__strscpy(buffer->machine, buf.machine, sizeof(buffer->machine)); +#endif + + if (r == UV_E2BIG) + goto error; + + return 0; + +error: + buffer->sysname[0] = '\0'; + buffer->release[0] = '\0'; + buffer->version[0] = '\0'; + buffer->machine[0] = '\0'; + return r; +} |