1
0
mirror of https://github.com/clearml/dropbear synced 2025-04-24 16:14:11 +00:00

Make sure client exit messages don't get lost

This commit is contained in:
Matt Johnston 2014-07-09 00:13:17 +08:00
parent 50a5d3756f
commit 1ccac01cee
2 changed files with 13 additions and 10 deletions

View File

@ -107,9 +107,10 @@ static void cli_dropbear_exit(int exitcode, const char* format, va_list param) {
/* Do the cleanup first, since then the terminal will be reset */
session_cleanup();
/* Avoid printing onwards from terminal cruft */
fprintf(stderr, "\n");
_dropbear_log(LOG_INFO, fmtbuf, param);
exit(exitcode);
}
@ -121,7 +122,7 @@ static void cli_dropbear_log(int UNUSED(priority),
vsnprintf(printbuf, sizeof(printbuf), format, param);
fprintf(stderr, "%s: %s\n", cli_opts.progname, printbuf);
fflush(stderr);
}
static void exec_proxy_cmd(void *user_data_cmd) {

View File

@ -574,14 +574,16 @@ static void remove_channel(struct Channel * channel) {
}
/* close the FDs in case they haven't been done
* yet (they might have been shutdown etc) */
TRACE(("CLOSE writefd %d", channel->writefd))
close(channel->writefd);
TRACE(("CLOSE readfd %d", channel->readfd))
close(channel->readfd);
TRACE(("CLOSE errfd %d", channel->errfd))
close(channel->errfd);
if (IS_DROPBEAR_SERVER || (channel->writefd != STDOUT_FILENO)) {
/* close the FDs in case they haven't been done
* yet (they might have been shutdown etc) */
TRACE(("CLOSE writefd %d", channel->writefd))
close(channel->writefd);
TRACE(("CLOSE readfd %d", channel->readfd))
close(channel->readfd);
TRACE(("CLOSE errfd %d", channel->errfd))
close(channel->errfd);
}
if (!channel->close_handler_done
&& channel->type->closehandler) {