Move the revert-to-non-blocking-stdin code to cli-session so it

always gets hit.

--HG--
extra : convert_revision : 3eb50d87fa6439d336b2238926fbed5066302d30
This commit is contained in:
Matt Johnston 2004-08-22 09:23:59 +00:00
parent 545ce7d8bf
commit aba8a3e2d4
2 changed files with 12 additions and 9 deletions

View File

@ -63,10 +63,6 @@ static void cli_closechansess(struct Channel *channel) {
cli_tty_cleanup(); /* Restore tty modes etc */
/* Set stdin back to non-blocking - busybox ash dies nastily
* if we don't revert the flags */
fcntl(cli_ses.stdincopy, F_SETFL, cli_ses.stdinflags);
}
static void start_channel_request(struct Channel *channel,
@ -317,13 +313,9 @@ static void send_chansess_shell_req(struct Channel *channel) {
static int cli_initchansess(struct Channel *channel) {
/* We store stdin's flags, so we can set them back on exit (otherwise
* busybox's ash isn't happy */
cli_ses.stdincopy = dup(STDIN_FILENO);
cli_ses.stdinflags = fcntl(STDIN_FILENO, F_GETFL, 0);
channel->infd = STDOUT_FILENO;
//channel->outfd = STDIN_FILENO;
channel->outfd = STDIN_FILENO;
//channel->errfd = STDERR_FILENO;
if (cli_opts.wantpty) {

View File

@ -112,6 +112,11 @@ static void cli_session_init() {
cli_ses.tty_raw_mode = 0;
cli_ses.winchange = 0;
/* We store stdin's flags, so we can set them back on exit (otherwise
* busybox's ash isn't happy */
cli_ses.stdincopy = dup(STDIN_FILENO);
cli_ses.stdinflags = fcntl(STDIN_FILENO, F_GETFL, 0);
/* Auth */
cli_ses.lastpubkey = NULL;
cli_ses.lastauthtype = NULL;
@ -240,6 +245,12 @@ void cli_session_cleanup() {
if (!sessinitdone) {
return;
}
/* Set stdin back to non-blocking - busybox ash dies nastily
* if we don't revert the flags */
TRACE(("close stdincopy = %d", cli_ses.stdincopy));
//fcntl(cli_ses.stdincopy, F_SETFL, cli_ses.stdinflags);
cli_tty_cleanup();
}