From c1e5af49dc197c22f125caf33d9fd8fba0fd8351 Mon Sep 17 00:00:00 2001 From: John Safranek Date: Tue, 23 Jan 2024 17:44:21 -0800 Subject: [PATCH 1/2] Echoserver Refresh 1. Add the code from wolfsshd that initially sets up the terminal settings to the echoserver. 2. Add the WOLFSSH_TERM flag to the build of the echoserver. --- examples/echoserver/echoserver.c | 19 +++++++++++++++++++ examples/echoserver/include.am | 2 +- tests/include.am | 9 +++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/examples/echoserver/echoserver.c b/examples/echoserver/echoserver.c index 4c8e0f8d9..e43711325 100644 --- a/examples/echoserver/echoserver.c +++ b/examples/echoserver/echoserver.c @@ -864,6 +864,25 @@ static int ssh_worker(thread_ctx_t* threadCtx) ChildRunning = 1; #endif +#if defined(WOLFSSH_TERM) && defined(WOLFSSH_SHELL) + /* set initial size of terminal based on saved size */ +#if defined(HAVE_SYS_IOCTL_H) + wolfSSH_DoModes(ssh->modes, ssh->modesSz, childFd); + { + struct winsize s = {0}; + + s.ws_col = ssh->widthChar; + s.ws_row = ssh->heightRows; + s.ws_xpixel = ssh->widthPixels; + s.ws_ypixel = ssh->heightPixels; + + ioctl(childFd, TIOCSWINSZ, &s); + } +#endif /* HAVE_SYS_IOCTL_H */ + + wolfSSH_SetTerminalResizeCtx(ssh, (void*)&childFd); +#endif /* WOLFSSH_TERM && WOLFSSH_SHELL */ + while (ChildRunning) { fd_set readFds; WS_SOCKET_T maxFd; diff --git a/examples/echoserver/include.am b/examples/echoserver/include.am index 532f0f7bb..4192d605c 100644 --- a/examples/echoserver/include.am +++ b/examples/echoserver/include.am @@ -7,5 +7,5 @@ examples_echoserver_echoserver_SOURCES = examples/echoserver/echoserver.c \ examples/echoserver/echoserver.h examples_echoserver_echoserver_LDADD = src/libwolfssh.la examples_echoserver_echoserver_DEPENDENCIES = src/libwolfssh.la -examples_echoserver_echoserver_CFLAGS = $(AM_CFLAGS) +examples_echoserver_echoserver_CFLAGS = $(AM_CFLAGS) ${AM_CPPFLAGS} endif diff --git a/tests/include.am b/tests/include.am index c3d7e7508..e8b1b548e 100644 --- a/tests/include.am +++ b/tests/include.am @@ -18,6 +18,9 @@ endif if BUILD_SFTP tests_unit_test_CPPFLAGS += -DWOLFSSH_SFTP endif +if BUILD_TERM +tests_unit_test_CPPFLAGS += -DWOLFSSH_TERM +endif if BUILD_SHELL tests_unit_test_CPPFLAGS += -DWOLFSSH_SHELL endif @@ -45,6 +48,9 @@ endif if BUILD_SFTP tests_api_test_CPPFLAGS += -DWOLFSSH_SFTP endif +if BUILD_TERM +tests_api_test_CPPFLAGS += -DWOLFSSH_TERM +endif if BUILD_SHELL tests_api_test_CPPFLAGS += -DWOLFSSH_SHELL endif @@ -77,6 +83,9 @@ endif if BUILD_SFTP tests_testsuite_test_CPPFLAGS += -DWOLFSSH_SFTP endif +if BUILD_TERM +tests_testsuite_test_CPPFLAGS += -DWOLFSSH_TERM +endif if BUILD_SHELL tests_testsuite_test_CPPFLAGS += -DWOLFSSH_SHELL endif From 63a3068dc7c7a433a73e1b677d692c918ed3c8bb Mon Sep 17 00:00:00 2001 From: John Safranek Date: Thu, 20 Jun 2024 15:52:53 -0700 Subject: [PATCH 2/2] Configure Updates 1. Update the configure.ac for an incorrect PTERM flag. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index cf95d02fb..04c60c587 100644 --- a/configure.ac +++ b/configure.ac @@ -313,7 +313,7 @@ AM_CONDITIONAL([BUILD_KEYGEN],[test "x$ENABLED_KEYGEN" = "xyes"]) AM_CONDITIONAL([BUILD_SCP],[test "x$ENABLED_SCP" = "xyes"]) AM_CONDITIONAL([BUILD_SFTP],[test "x$ENABLED_SFTP" = "xyes"]) AM_CONDITIONAL([BUILD_FWD],[test "x$ENABLED_FWD" = "xyes"]) -AM_CONDITIONAL([BUILD_TERM],[test "x$ENABLED_TERM" = "xyes"]) +AM_CONDITIONAL([BUILD_TERM],[test "x$ENABLED_PTERM" = "xyes"]) AM_CONDITIONAL([BUILD_SHELL],[test "x$ENABLED_SHELL" = "xyes"]) AM_CONDITIONAL([BUILD_AGENT],[test "x$ENABLED_AGENT" = "xyes"]) AM_CONDITIONAL([BUILD_SSHD],[test "x$ENABLED_SSHD" = "xyes"])