Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/pipe_wrap.cc')
-rw-r--r--src/pipe_wrap.cc15
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;
}