mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
Add os module and getHostname
This commit is contained in:
1 parent
dc65cbd2e9
commit
f1762ff815
9 files changed
+70
No files matched your search
@@ -32,6 +32,7 @@ set(node_sources
|
||||
src/node_stdio.cc
|
||||
src/node_timer.cc
|
||||
src/node_script.cc
|
||||
src/node_os.cc
|
||||
src/node_natives.h
|
||||
${node_extra_src})
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
* [Child Processes](child_processes.html)
|
||||
* [Assertion Testing](assert.html)
|
||||
* [TTY](tty.html)
|
||||
* [OS](os.html)
|
||||
* Appendixes
|
||||
* [Appendix 1: Recommended Third-party Modules](appendix_1.html)
|
||||
* [Appendix 2: Deprecated API's](appendix_2.html)
|
||||
@@ -0,0 +1,7 @@
|
||||
## os Module
|
||||
|
||||
Use `require('os')` to access this module.
|
||||
|
||||
### tls.getHostname
|
||||
|
||||
Returns the hostname of the operating system.
|
||||
@@ -0,0 +1,3 @@
|
||||
var binding = process.binding('os');
|
||||
|
||||
exports.getHostname = binding.getHostname;
|
||||
@@ -12,5 +12,6 @@ NODE_EXT_LIST_ITEM(node_net)
|
||||
NODE_EXT_LIST_ITEM(node_http_parser)
|
||||
NODE_EXT_LIST_ITEM(node_signal_watcher)
|
||||
NODE_EXT_LIST_ITEM(node_stdio)
|
||||
NODE_EXT_LIST_ITEM(node_os)
|
||||
NODE_EXT_LIST_END
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
#include <node_os.h>
|
||||
|
||||
#include <node.h>
|
||||
#include <v8.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h> // gethostname
|
||||
|
||||
namespace node {
|
||||
|
||||
using namespace v8;
|
||||
|
||||
static Handle<Value> GetHostname(const Arguments& args) {
|
||||
HandleScope scope;
|
||||
char s[255];
|
||||
int r = gethostname(s, 255);
|
||||
|
||||
if (r < 0) {
|
||||
return ThrowException(ErrnoException(errno, "gethostname"));
|
||||
}
|
||||
|
||||
return scope.Close(String::New(s));
|
||||
}
|
||||
|
||||
void OS::Initialize(v8::Handle<v8::Object> target) {
|
||||
HandleScope scope;
|
||||
|
||||
NODE_SET_METHOD(target, "getHostname", GetHostname);
|
||||
}
|
||||
|
||||
|
||||
} // namespace node
|
||||
|
||||
NODE_MODULE(node_os, node::OS::Initialize);
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef node_os_h
|
||||
#define node_os_h
|
||||
|
||||
#include <node.h>
|
||||
#include <v8.h>
|
||||
|
||||
namespace node {
|
||||
|
||||
class OS {
|
||||
public:
|
||||
static void Initialize (v8::Handle<v8::Object> target);
|
||||
};
|
||||
|
||||
|
||||
} // namespace node
|
||||
|
||||
#endif // node_os_h
|
||||
@@ -0,0 +1,5 @@
|
||||
var common = require('../common');
|
||||
var assert = require('assert');
|
||||
var os = require('os');
|
||||
|
||||
assert.ok(os.getHostname().length > 0);
|
||||
Reference in new issue
Block a user