diff cli-session.c @ 99:0247fbd9379d

Move the revert-to-non-blocking-stdin code to cli-session so it always gets hit.
author Matt Johnston <matt@ucc.asn.au>
date Sun, 22 Aug 2004 09:23:59 +0000
parents e3adf4cf5465
children c72f5c10125d
line wrap: on
line diff
--- a/cli-session.c	Sun Aug 22 09:23:11 2004 +0000
+++ b/cli-session.c	Sun Aug 22 09:23:59 2004 +0000
@@ -112,6 +112,11 @@
 	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 @@
 	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();
 
 }