diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2011-09-13 01:59:51 +0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2011-09-13 02:09:44 +0400 |
commit | caaa59c559f4ed8b26ab1438f4104f4e93adb098 (patch) | |
tree | 75fc658a6b126d597985dc0ac05e6333a4b8f391 /src | |
parent | 51f2e8439e4e26f7f3b58193112916c711085c91 (diff) |
Wrap uv_pipe_open, implement net.Stream(fd);
Fixes simple/test-child-process-ipc on unix.
Diffstat (limited to 'src')
-rw-r--r-- | src/pipe_wrap.cc | 14 | ||||
-rw-r--r-- | src/pipe_wrap.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc index 247d715df64..f8a8c84990f 100644 --- a/src/pipe_wrap.cc +++ b/src/pipe_wrap.cc @@ -70,6 +70,7 @@ void PipeWrap::Initialize(Handle<Object> target) { NODE_SET_PROTOTYPE_METHOD(t, "bind", Bind); NODE_SET_PROTOTYPE_METHOD(t, "listen", Listen); NODE_SET_PROTOTYPE_METHOD(t, "connect", Connect); + NODE_SET_PROTOTYPE_METHOD(t, "open", Open); pipeConstructor = Persistent<Function>::New(t->GetFunction()); @@ -195,6 +196,19 @@ void PipeWrap::AfterConnect(uv_connect_t* req, int status) { } +Handle<Value> PipeWrap::Open(const Arguments& args) { + HandleScope scope; + + UNWRAP + + int fd = args[0]->IntegerValue(); + + uv_pipe_open(&wrap->handle_, fd); + + return scope.Close(v8::Null()); +} + + Handle<Value> PipeWrap::Connect(const Arguments& args) { HandleScope scope; diff --git a/src/pipe_wrap.h b/src/pipe_wrap.h index 65bec64315d..1ec51c71f63 100644 --- a/src/pipe_wrap.h +++ b/src/pipe_wrap.h @@ -18,6 +18,7 @@ class PipeWrap : StreamWrap { static v8::Handle<v8::Value> Bind(const v8::Arguments& args); static v8::Handle<v8::Value> Listen(const v8::Arguments& args); static v8::Handle<v8::Value> Connect(const v8::Arguments& args); + static v8::Handle<v8::Value> Open(const v8::Arguments& args); static void OnConnection(uv_stream_t* handle, int status); static void AfterConnect(uv_connect_t* req, int status); |