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:
authorIgor Zinkovsky <igorzi@microsoft.com>2012-02-10 13:35:35 +0400
committerIgor Zinkovsky <igorzi@microsoft.com>2012-02-10 23:28:43 +0400
commitc7771bc2ec74afb8b9e239c34c183c92e10acd87 (patch)
tree9254cb797a13ac9e9f50c0c6d09803d7536834c4 /src/pipe_wrap.cc
parentc9f58cc5956840848532fe8804a8c77c734019c1 (diff)
set readable/writable for pipes
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;
}