-/* $OpenBSD: mux.c,v 1.5 2008/06/13 00:16:49 djm Exp $ */
+/* $OpenBSD: mux.c,v 1.9 2010/01/09 05:04:24 djm Exp $ */
/*
* Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org>
*
/* from ssh.c */
extern int tty_flag;
+extern int force_tty_flag;
extern Options options;
extern int stdin_null_flag;
extern char *host;
-int subsystem_flag;
+extern int subsystem_flag;
extern Buffer command;
/* Context for session open confirmation callback */
/* Get authorisation status and PID of controlee */
if (ssh_msg_recv(sock, &m) == -1) {
- error("%s: msg_recv", __func__);
+ error("%s: Did not receive reply from master", __func__);
goto muxerr;
}
if (buffer_get_char(&m) != SSHMUX_VER) {
- error("%s: wrong version", __func__);
+ error("%s: Master replied with wrong version", __func__);
goto muxerr;
}
if (buffer_get_int_ret(&allowed, &m) != 0) {
signal(SIGWINCH, control_client_sigrelay);
if (tty_flag)
- enter_raw_mode();
+ enter_raw_mode(force_tty_flag);
/*
* Stick around until the controlee closes the client_fd.
}
close(sock);
- leave_raw_mode();
+ leave_raw_mode(force_tty_flag);
if (i > (int)sizeof(int))
fatal("%s: master returned too much data (%d > %lu)",
- __func__, i, sizeof(int));
+ __func__, i, (u_long)sizeof(int));
if (muxclient_terminate) {
debug2("Exiting on signal %d", muxclient_terminate);
exitval[0] = 255;