Skip to content
Snippets Groups Projects
Commit aba8a3e2 authored by Matt Johnston's avatar Matt Johnston
Browse files

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

always gets hit.

--HG--
extra : convert_revision : 3eb50d87fa6439d336b2238926fbed5066302d30
parent 545ce7d8
No related merge requests found
......@@ -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) {
......
......@@ -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();
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment