mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
set readable/writable for pipes
This commit is contained in:
@@ -593,7 +593,7 @@ Socket.prototype.connect = function(port /* [host], [cb] */) {
|
||||
};
|
||||
|
||||
|
||||
function afterConnect(status, handle, req) {
|
||||
function afterConnect(status, handle, req, readable, writable) {
|
||||
var self = handle.socket;
|
||||
|
||||
// callback may come after call to destroy
|
||||
@@ -609,10 +609,13 @@ function afterConnect(status, handle, req) {
|
||||
self._connecting = false;
|
||||
|
||||
if (status == 0) {
|
||||
self.readable = self.writable = true;
|
||||
self.readable = readable;
|
||||
self.writable = writable;
|
||||
timers.active(self);
|
||||
|
||||
handle.readStart();
|
||||
if (self.readable) {
|
||||
handle.readStart();
|
||||
}
|
||||
|
||||
self.emit('connect');
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -396,13 +396,15 @@ void TCPWrap::AfterConnect(uv_connect_t* req, int status) {
|
||||
SetErrno(uv_last_error(uv_default_loop()));
|
||||
}
|
||||
|
||||
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(v8::True()),
|
||||
Local<Value>::New(v8::True())
|
||||
};
|
||||
|
||||
MakeCallback(req_wrap->object_, "oncomplete", 3, argv);
|
||||
MakeCallback(req_wrap->object_, "oncomplete", 5, argv);
|
||||
|
||||
delete req_wrap;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user