diff --git a/lib/net.js b/lib/net.js index 5746b1c55cb..d28483dd3cc 100644 --- a/lib/net.js +++ b/lib/net.js @@ -684,6 +684,9 @@ Socket.prototype._write = function(data, encoding, cb) { function createWriteReq(req, handle, data, encoding) { switch (encoding) { + case 'binary': + return handle.writeBinaryString(req, data); + case 'buffer': return handle.writeBuffer(req, data); diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc index 03156cc8f52..05472de5d92 100644 --- a/src/pipe_wrap.cc +++ b/src/pipe_wrap.cc @@ -104,6 +104,9 @@ void PipeWrap::Initialize(Handle target, StreamWrap::WriteAsciiString); NODE_SET_PROTOTYPE_METHOD(t, "writeUtf8String", StreamWrap::WriteUtf8String); NODE_SET_PROTOTYPE_METHOD(t, "writeUcs2String", StreamWrap::WriteUcs2String); + NODE_SET_PROTOTYPE_METHOD(t, + "writeBinaryString", + StreamWrap::WriteBinaryString); NODE_SET_PROTOTYPE_METHOD(t, "bind", Bind); NODE_SET_PROTOTYPE_METHOD(t, "listen", Listen); diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc index 5d6435101e4..0f4da42ad05 100644 --- a/src/stream_wrap.cc +++ b/src/stream_wrap.cc @@ -499,6 +499,10 @@ void StreamWrap::WriteUcs2String(const FunctionCallbackInfo& args) { WriteStringImpl(args); } +void StreamWrap::WriteBinaryString(const FunctionCallbackInfo& args) { + WriteStringImpl(args); +} + void StreamWrap::SetBlocking(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args.GetIsolate()); HandleScope scope(env->isolate()); diff --git a/src/stream_wrap.h b/src/stream_wrap.h index 3a7f6f86383..05b828ef8b8 100644 --- a/src/stream_wrap.h +++ b/src/stream_wrap.h @@ -125,6 +125,8 @@ class StreamWrap : public HandleWrap { static void WriteAsciiString(const v8::FunctionCallbackInfo& args); static void WriteUtf8String(const v8::FunctionCallbackInfo& args); static void WriteUcs2String(const v8::FunctionCallbackInfo& args); + static void WriteBinaryString( + const v8::FunctionCallbackInfo& args); static void SetBlocking(const v8::FunctionCallbackInfo& args); diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc index 702dd4d805d..09671d0095e 100644 --- a/src/tcp_wrap.cc +++ b/src/tcp_wrap.cc @@ -111,6 +111,9 @@ void TCPWrap::Initialize(Handle target, StreamWrap::WriteAsciiString); NODE_SET_PROTOTYPE_METHOD(t, "writeUtf8String", StreamWrap::WriteUtf8String); NODE_SET_PROTOTYPE_METHOD(t, "writeUcs2String", StreamWrap::WriteUcs2String); + NODE_SET_PROTOTYPE_METHOD(t, + "writeBinaryString", + StreamWrap::WriteBinaryString); NODE_SET_PROTOTYPE_METHOD(t, "writev", StreamWrap::Writev); NODE_SET_PROTOTYPE_METHOD(t, "open", Open); diff --git a/src/tty_wrap.cc b/src/tty_wrap.cc index dba545b5f45..34ee14dec70 100644 --- a/src/tty_wrap.cc +++ b/src/tty_wrap.cc @@ -78,6 +78,9 @@ void TTYWrap::Initialize(Handle target, StreamWrap::WriteAsciiString); NODE_SET_PROTOTYPE_METHOD(t, "writeUtf8String", StreamWrap::WriteUtf8String); NODE_SET_PROTOTYPE_METHOD(t, "writeUcs2String", StreamWrap::WriteUcs2String); + NODE_SET_PROTOTYPE_METHOD(t, + "writeBinaryString", + StreamWrap::WriteBinaryString); NODE_SET_PROTOTYPE_METHOD(t, "getWindowSize", TTYWrap::GetWindowSize); NODE_SET_PROTOTYPE_METHOD(t, "setRawMode", SetRawMode);