int shell(int argc, char ** argv) {
int fd = -1;
+ int sync_winsz_support = SYNCWINSZ_UNSUPPORTED;
+ sync_winsz_support = check_syncwinsz_support();
if(argc < 2) {
fd = shell_connect();
} else {
return 1;
}
- sdb_execute_shell(fd, SDB_STDIN_ON);
+ sdb_execute_shell(fd, SDB_STDIN_ON, sync_winsz_support);
sdb_close(fd);
return 0;
return matched;
}
-static int check_syncwinsz_support() {
+int check_syncwinsz_support() {
char full_cmd[16] = {0,};
char cap_buffer[CAPBUF_SIZE] = {0,};
uint16_t len = 0;
return supported;
}
-static void stdin_info_init(int fd)
+static void stdin_info_init(int fd, int enable_sync_winsz)
{
g_stdin_info.stdin_fd = INPUT_FD;
g_stdin_info.remote_fd = fd;
- g_stdin_info.enable_sync_winsz = check_syncwinsz_support();
+ g_stdin_info.enable_sync_winsz = enable_sync_winsz;
}
-void sdb_execute_shell(int fd, int stdin_on)
+void sdb_execute_shell(int fd, int stdin_on, int enable_sync_winsz)
{
- stdin_info_init(fd);
+ stdin_info_init(fd, enable_sync_winsz);
if (stdin_on == SDB_STDIN_ON) {
sdb_thread_t thr;
int interactive_shell();
int is_support_eshell(struct sdb_version *pversion);
int get_screensize(int* lines, int* columns);
-void sdb_execute_shell(int fd, int stdin_on);
+void sdb_execute_shell(int fd, int stdin_on, int enable_sync_winsz);
+int check_syncwinsz_support(void);
int get_server_port();
int get_platform_version(struct sdb_version *pversion);
int __sdb_command(const char* cmd);