The unified diff between revisions [833d0ade..] and [6bbab836..] is displayed below. It can also be downloaded as a raw diff.

This diff has been restricted to the following files: 'cli-session.c'

#
#
# patch "cli-session.c"
#  from [7c6dc26c6d23f92785979f9e89da6e42630b15e1]
#    to [32a8c16817cf01a78c969e53d98073352e5692a5]
#
============================================================
--- cli-session.c	7c6dc26c6d23f92785979f9e89da6e42630b15e1
+++ cli-session.c	32a8c16817cf01a78c969e53d98073352e5692a5
@@ -77,13 +77,13 @@ static const struct ChanType *cli_chanty
 	NULL /* Null termination */
 };

-void cli_session(int sock, char* remotehost) {
+void cli_session(int sock_in, int sock_out, char* remotehost) {

 	seedrandom();

 	crypto_init();

-	common_session_init(sock, remotehost);
+	common_session_init(sock_in, sock_out, remotehost);

 	chaninitialise(cli_chantypes);

@@ -200,22 +200,8 @@ static void cli_sessionloop() {
 			TRACE(("leave cli_sessionloop: cli_auth_try"))
 			return;

-			/*
 		case USERAUTH_SUCCESS_RCVD:
-			send_msg_service_request(SSH_SERVICE_CONNECTION);
-			cli_ses.state = SERVICE_CONN_REQ_SENT;
-			TRACE(("leave cli_sessionloop: sent ssh-connection service req"))
-			return;

-		case SERVICE_CONN_ACCEPT_RCVD:
-			cli_send_chansess_request();
-			TRACE(("leave cli_sessionloop: cli_send_chansess_request"))
-			cli_ses.state = SESSION_RUNNING;
-			return;
-			*/
-
-		case USERAUTH_SUCCESS_RCVD:
-
 			if (cli_opts.backgrounded) {
 				int devnull;
 				/* keeping stdin open steals input from the terminal and
@@ -238,7 +224,13 @@ static void cli_sessionloop() {
 #ifdef ENABLE_CLI_REMOTETCPFWD
 			setup_remotetcp();
 #endif
-			if (!cli_opts.no_cmd) {
+
+#ifdef ENABLE_CLI_NETCAT
+			if (cli_opts.netcat_host) {
+				cli_send_netcat_request();
+			} else
+#endif
+				if (!cli_opts.no_cmd) {
 				cli_send_chansess_request();
 			}
 			TRACE(("leave cli_sessionloop: running"))
@@ -297,8 +289,10 @@ static void cli_remoteclosed() {

 	/* XXX TODO perhaps print a friendlier message if we get this but have
 	 * already sent/received disconnect message(s) ??? */
-	close(ses.sock);
-	ses.sock = -1;
+	m_close(ses.sock_in);
+	m_close(ses.sock_out);
+	ses.sock_in = -1;
+	ses.sock_out = -1;
 	dropbear_exit("remote closed the connection");
 }