|
@ -1081,6 +1081,9 @@ static Handle<Value> Cwd(const Arguments& args) { |
|
|
return scope.Close(cwd); |
|
|
return scope.Close(cwd); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __POSIX__ |
|
|
|
|
|
|
|
|
static Handle<Value> Umask(const Arguments& args){ |
|
|
static Handle<Value> Umask(const Arguments& args){ |
|
|
HandleScope scope; |
|
|
HandleScope scope; |
|
|
unsigned int old; |
|
|
unsigned int old; |
|
@ -1184,6 +1187,8 @@ static Handle<Value> SetUid(const Arguments& args) { |
|
|
return Undefined(); |
|
|
return Undefined(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endif // __POSIX__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v8::Handle<v8::Value> Exit(const v8::Arguments& args) { |
|
|
v8::Handle<v8::Value> Exit(const v8::Arguments& args) { |
|
|
HandleScope scope; |
|
|
HandleScope scope; |
|
@ -1252,6 +1257,7 @@ v8::Handle<v8::Value> MemoryUsage(const v8::Arguments& args) { |
|
|
return scope.Close(info); |
|
|
return scope.Close(info); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifdef __POSIX__ |
|
|
|
|
|
|
|
|
Handle<Value> Kill(const Arguments& args) { |
|
|
Handle<Value> Kill(const Arguments& args) { |
|
|
HandleScope scope; |
|
|
HandleScope scope; |
|
@ -1349,6 +1355,8 @@ Handle<Value> DLOpen(const v8::Arguments& args) { |
|
|
return Undefined(); |
|
|
return Undefined(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endif // __POSIX__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TODO remove me before 0.4
|
|
|
// TODO remove me before 0.4
|
|
|
Handle<Value> Compile(const Arguments& args) { |
|
|
Handle<Value> Compile(const Arguments& args) { |
|
@ -1573,7 +1581,11 @@ static Handle<Value> EnvSetter(Local<String> property, |
|
|
const AccessorInfo& info) { |
|
|
const AccessorInfo& info) { |
|
|
String::Utf8Value key(property); |
|
|
String::Utf8Value key(property); |
|
|
String::Utf8Value val(value); |
|
|
String::Utf8Value val(value); |
|
|
|
|
|
#ifdef __POSIX__ |
|
|
setenv(*key, *val, 1); |
|
|
setenv(*key, *val, 1); |
|
|
|
|
|
#else // __WIN32__
|
|
|
|
|
|
NO_IMPL_MSG(setenv) |
|
|
|
|
|
#endif |
|
|
return value; |
|
|
return value; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -1593,7 +1605,11 @@ static Handle<Boolean> EnvDeleter(Local<String> property, |
|
|
const AccessorInfo& info) { |
|
|
const AccessorInfo& info) { |
|
|
String::Utf8Value key(property); |
|
|
String::Utf8Value key(property); |
|
|
if (getenv(*key)) { |
|
|
if (getenv(*key)) { |
|
|
|
|
|
#ifdef __POSIX__ |
|
|
unsetenv(*key); // prototyped as `void unsetenv(const char*)` on some platforms
|
|
|
unsetenv(*key); // prototyped as `void unsetenv(const char*)` on some platforms
|
|
|
|
|
|
#else |
|
|
|
|
|
NO_IMPL_MSG(unsetenv) |
|
|
|
|
|
#endif |
|
|
return True(); |
|
|
return True(); |
|
|
} |
|
|
} |
|
|
return False(); |
|
|
return False(); |
|
@ -1711,6 +1727,8 @@ static void Load(int argc, char *argv[]) { |
|
|
NODE_SET_METHOD(process, "reallyExit", Exit); |
|
|
NODE_SET_METHOD(process, "reallyExit", Exit); |
|
|
NODE_SET_METHOD(process, "chdir", Chdir); |
|
|
NODE_SET_METHOD(process, "chdir", Chdir); |
|
|
NODE_SET_METHOD(process, "cwd", Cwd); |
|
|
NODE_SET_METHOD(process, "cwd", Cwd); |
|
|
|
|
|
|
|
|
|
|
|
#ifdef __POSIX__ |
|
|
NODE_SET_METHOD(process, "getuid", GetUid); |
|
|
NODE_SET_METHOD(process, "getuid", GetUid); |
|
|
NODE_SET_METHOD(process, "setuid", SetUid); |
|
|
NODE_SET_METHOD(process, "setuid", SetUid); |
|
|
|
|
|
|
|
@ -1720,6 +1738,8 @@ static void Load(int argc, char *argv[]) { |
|
|
NODE_SET_METHOD(process, "umask", Umask); |
|
|
NODE_SET_METHOD(process, "umask", Umask); |
|
|
NODE_SET_METHOD(process, "dlopen", DLOpen); |
|
|
NODE_SET_METHOD(process, "dlopen", DLOpen); |
|
|
NODE_SET_METHOD(process, "_kill", Kill); |
|
|
NODE_SET_METHOD(process, "_kill", Kill); |
|
|
|
|
|
#endif // __POSIX__
|
|
|
|
|
|
|
|
|
NODE_SET_METHOD(process, "memoryUsage", MemoryUsage); |
|
|
NODE_SET_METHOD(process, "memoryUsage", MemoryUsage); |
|
|
|
|
|
|
|
|
NODE_SET_METHOD(process, "binding", Binding); |
|
|
NODE_SET_METHOD(process, "binding", Binding); |
|
@ -1873,7 +1893,7 @@ static void SignalExit(int signal) { |
|
|
_exit(1); |
|
|
_exit(1); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifdef __POSIX__ |
|
|
static int RegisterSignalHandler(int signal, void (*handler)(int)) { |
|
|
static int RegisterSignalHandler(int signal, void (*handler)(int)) { |
|
|
struct sigaction sa; |
|
|
struct sigaction sa; |
|
|
|
|
|
|
|
@ -1882,6 +1902,7 @@ static int RegisterSignalHandler(int signal, void (*handler)(int)) { |
|
|
sigfillset(&sa.sa_mask); |
|
|
sigfillset(&sa.sa_mask); |
|
|
return sigaction(signal, &sa, NULL); |
|
|
return sigaction(signal, &sa, NULL); |
|
|
} |
|
|
} |
|
|
|
|
|
#endif // __POSIX__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int Start(int argc, char *argv[]) { |
|
|
int Start(int argc, char *argv[]) { |
|
@ -1921,10 +1942,12 @@ int Start(int argc, char *argv[]) { |
|
|
} |
|
|
} |
|
|
V8::SetFlagsFromCommandLine(&v8argc, v8argv, false); |
|
|
V8::SetFlagsFromCommandLine(&v8argc, v8argv, false); |
|
|
|
|
|
|
|
|
|
|
|
#ifdef __POSIX__ |
|
|
// Ignore SIGPIPE
|
|
|
// Ignore SIGPIPE
|
|
|
RegisterSignalHandler(SIGPIPE, SIG_IGN); |
|
|
RegisterSignalHandler(SIGPIPE, SIG_IGN); |
|
|
RegisterSignalHandler(SIGINT, SignalExit); |
|
|
RegisterSignalHandler(SIGINT, SignalExit); |
|
|
RegisterSignalHandler(SIGTERM, SignalExit); |
|
|
RegisterSignalHandler(SIGTERM, SignalExit); |
|
|
|
|
|
#endif // __POSIX__
|
|
|
|
|
|
|
|
|
#ifdef __MINGW32__ |
|
|
#ifdef __MINGW32__ |
|
|
// On windows, to use winsock it must be initialized
|
|
|
// On windows, to use winsock it must be initialized
|
|
|