From 1f38046b516a8aee14654b9a1a048b9618cacf5b Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Mon, 10 Jan 2011 16:25:13 -0800 Subject: [PATCH] tty.open() returns stream instead of slaveFD Also is run in its own session. --- lib/tty.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/tty.js b/lib/tty.js index ebbb41617b6..714031b2c98 100644 --- a/lib/tty.js +++ b/lib/tty.js @@ -10,17 +10,26 @@ exports.getColumns = binding.getColumns; exports.open = function(path, args) { var fds = binding.openpty(); - var masterFD = fds[1]; var slaveFD = fds[0]; + var masterFD = fds[1]; var env = { TERM: 'vt100' }; for (var k in process.env) { env[k] = process.env[k]; } - child = spawn(path, args, env, [masterFD, masterFD, masterFD]); + var stream = require('net').Stream(slaveFD); + stream.readable = stream.writable = true; + stream.resume(); - return [slaveFD, child]; + + child = spawn(path, args, { + env: env, + customFds: [masterFD, masterFD, masterFD], + setuid: true + }); + + return [stream, child]; };