diff options
author | Igor Zinkovsky <igorzi@microsoft.com> | 2012-02-10 13:35:35 +0400 |
---|---|---|
committer | Igor Zinkovsky <igorzi@microsoft.com> | 2012-02-10 23:28:43 +0400 |
commit | c7771bc2ec74afb8b9e239c34c183c92e10acd87 (patch) | |
tree | 9254cb797a13ac9e9f50c0c6d09803d7536834c4 /src/pipe_wrap.cc | |
parent | c9f58cc5956840848532fe8804a8c77c734019c1 (diff) |
set readable/writable for pipes
Diffstat (limited to 'src/pipe_wrap.cc')
-rw-r--r-- | src/pipe_wrap.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc index 1870837bcae..6c3887d84f6 100644 --- a/src/pipe_wrap.cc +++ b/src/pipe_wrap.cc @@ -53,6 +53,7 @@ using v8::TryCatch; using v8::Context; using v8::Arguments; using v8::Integer; +using v8::Boolean; Persistent<Function> pipeConstructor; @@ -224,17 +225,25 @@ void PipeWrap::AfterConnect(uv_connect_t* req, int status) { assert(req_wrap->object_.IsEmpty() == false); assert(wrap->object_.IsEmpty() == false); + bool readable, writable; + if (status) { SetErrno(uv_last_error(uv_default_loop())); + readable = writable = 0; + } else { + readable = uv_is_readable(req->handle) != 0; + writable = uv_is_writable(req->handle) != 0; } - Local<Value> argv[3] = { + Local<Value> argv[5] = { Integer::New(status), Local<Value>::New(wrap->object_), - Local<Value>::New(req_wrap->object_) + Local<Value>::New(req_wrap->object_), + Local<Value>::New(Boolean::New(readable)), + Local<Value>::New(Boolean::New(writable)) }; - MakeCallback(req_wrap->object_, "oncomplete", 3, argv); + MakeCallback(req_wrap->object_, "oncomplete", 5, argv); delete req_wrap; } |