Revision: 7374 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/7374 Author: zmatsuo Date: 2018-12-27 23:12:40 +0900 (Thu, 27 Dec 2018) Log Message: ----------- Merge branch 'trunk' r7370 into cmake Revision Links: -------------- http://sourceforge.jp/projects/ttssh2/scm/svn/commits/7370 Modified Paths: -------------- branches/cmake/doc/en/html/about/history.html branches/cmake/doc/en/html/commandline/ttssh.html branches/cmake/doc/ja/html/about/history.html branches/cmake/doc/ja/html/commandline/ttssh.html branches/cmake/teraterm/common/ttlib.c branches/cmake/teraterm/common/ttlib.h branches/cmake/teraterm/ttpmacro/ttl.cpp branches/cmake/ttssh2/ttxssh/ssh.c branches/cmake/ttssh2/ttxssh/ttxssh.c branches/cmake/ttssh2/ttxssh/ttxssh.h -------------- next part -------------- Modified: branches/cmake/doc/en/html/about/history.html =================================================================== --- branches/cmake/doc/en/html/about/history.html 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/doc/en/html/about/history.html 2018-12-27 14:12:40 UTC (rev 7374) @@ -31,6 +31,27 @@ <h2 id="teraterm">Tera Term</h2> +<h3 id="teraterm_4.102">2019.xx.xx (Ver 4.102)</h3> +<ul class="history"> + <!-- li>Changes + <ul> + <li></li> + </ul> + </li --> + + <!-- li>Bug fixes + <ul> + <li></li> + </ul> + </li --> + + <li>Misc + <ul> + <li>upgraded TTSSH to <a href="#ttssh_2.88">2.88</a>.</li> + </ul> + </li> +</ul> + <h3 id="teraterm_4.101">2018.11.30 (Ver 4.101)</h3> <ul class="history"> <li>Changes @@ -3063,6 +3084,15 @@ <h2 id="ttssh">TTSSH</h2> +<h3 id="ttssh_2.88">2019.xx.xx (Ver 2.88)</h3> +<ul class="history"> + <li>Changes + <ul> + <li>added <a href="../commandline/ttssh.html#ssh-N">/ssh-N commandline option</a> to disable a shell session when starting a connection.</li> + </ul> + </li> +</ul> + <h3 id="ttssh_2.87">2018.11.30 (Ver 2.87)</h3> <ul class="history"> <li>Misc Modified: branches/cmake/doc/en/html/commandline/ttssh.html =================================================================== --- branches/cmake/doc/en/html/commandline/ttssh.html 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/doc/en/html/commandline/ttssh.html 2018-12-27 14:12:40 UTC (rev 7374) @@ -168,6 +168,9 @@ <dt id="ssh-subsystem">/ssh-subsystem=<subsystem></dt> <dd>invoke the subsystem that is specified by <subsystem> instead of shell.</dd> + <dt id="ssh-N">/ssh-N</dt> + <dd>don't start a shell session when starting a connection.</dd> + <dt id="nosecuritywarning">/nosecuritywarning</dt> <dd>suppress SSH security warning. THIS OPTION PROHIBITED.</dd> Modified: branches/cmake/doc/ja/html/about/history.html =================================================================== --- branches/cmake/doc/ja/html/about/history.html 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/doc/ja/html/about/history.html 2018-12-27 14:12:40 UTC (rev 7374) @@ -31,6 +31,27 @@ <h2 id="teraterm">Tera Term</h2> +<h3 id="teraterm_4.102">2019.xx.xx (Ver 4.102)</h3> +<ul class="history"> + <!-- li>\x95ύX + <ul> + <li></li> + </ul> + </li --> + + <!-- li>\x83o\x83O\x8FC\x90\xB3 + <ul> + <li></li> + </ul> + </li --> + + <li>\x82\xBB\x82̑\xBC + <ul> + <li><a href="#ttssh_2.88">TTSSH(2.88)</a>\x82֍\xB7\x82\xB5\x91ւ\xA6\x82\xBD\x81B</li> + </ul> + </li> +</ul> + <h3 id="teraterm_4.101">2018.11.30 (Ver 4.101)</h3> <ul class="history"> <li>\x95ύX @@ -41,7 +62,7 @@ <li>13;2: \x83E\x83B\x83\x93\x83h\x83E\x88ʒu\x95\xFB\x8C\xFC(\x83e\x83L\x83X\x83g\x97̈\xE6)</li> <li>14;2: \x83E\x83C\x83\x93\x83h\x83E\x83T\x83C\x83Y\x95\xF1\x8D\x90(\x83E\x83B\x83\x93\x83h\x83E\x91S\x91\xCC)</li> <li>15: \x83\x8B\x81[\x83g\x83E\x83B\x83\x93\x83h\x83E\x83T\x83C\x83Y\x95\xF1\x8D\x90(\x83s\x83N\x83Z\x83\x8B)</li> - <li>16: \x95\xB6\x8E\x9A\x83T\x83C\x83Y\x95\xF1\x8D\x90(\x83s\x83N\x83Z\x83\x8B)</li> + <li>16: \x95\xB6\x8E\x9A\x83T\x83C\x83Y\x95\xF1\x8D\x90(\x83s\x83N\x83Z\x83\x8B)</li> </ul></li> <li>\x88ȉ\xBA\x82\xCC dtterm \x82̃E\x83B\x83\x93\x83h\x83E\x91\x80\x8D\xEC\x83V\x81[\x83P\x83\x93\x83X\x82̓\xAE\x8D\xEC\x82\xF0\x95ύX\x82\xB5\x82\xBD\x81B <ul> @@ -3069,6 +3090,15 @@ <h2 id="ttssh">TTSSH</h2> +<h3 id="ttssh_2.88">2019.xx.xx (Ver 2.88)</h3> +<ul class="history"> + <li>\x95ύX + <ul> + <li>\x90ڑ\xB1\x8AJ\x8En\x8E\x9E\x82ɃV\x83F\x83\x8B\x83Z\x83b\x83V\x83\x87\x83\x93\x82\xF0\x8AJ\x8En\x82\xB5\x82Ȃ\xA2\x88ׂ\xCC <a href="../commandline/ttssh.html#ssh-N">/ssh-N</a> \x83R\x83}\x83\x93\x83h\x83\x89\x83C\x83\x93\x83I\x83v\x83V\x83\x87\x83\x93\x82\xF0\x92lj\xC1\x82\xB5\x82\xBD\x81B</li> + </ul> + </li> +</ul> + <h3 id="ttssh_2.87">2018.11.30 (Ver 2.87)</h3> <ul class="history"> <li>\x82\xBB\x82̑\xBC Modified: branches/cmake/doc/ja/html/commandline/ttssh.html =================================================================== --- branches/cmake/doc/ja/html/commandline/ttssh.html 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/doc/ja/html/commandline/ttssh.html 2018-12-27 14:12:40 UTC (rev 7374) @@ -168,6 +168,9 @@ <dt id="ssh-subsystem">/ssh-subsystem=<subsystem></dt> <dd>\x83V\x83F\x83\x8B\x82ł͂Ȃ\xAD<subsystem>\x82Ŏw\x92肵\x82\xBD\x83T\x83u\x83V\x83X\x83e\x83\x80\x82\xF0\x8BN\x93\xAE\x82\xB7\x82\xE9\x81B</dd> + <dt id="ssh-N">/ssh-N</td> + <dd>\x90ڑ\xB1\x8E\x9E\x82ɃV\x83F\x83\x8B\x83Z\x83b\x83V\x83\x87\x83\x93\x82\xF0\x8AJ\x8En\x82\xB5\x82Ȃ\xA2\x81B</dd> + <dt id="nosecuritywarning">/nosecuritywarning</dt> <dd>SSH\x83Z\x83L\x83\x85\x83\x8A\x83e\x83B\x8Cx\x8D\x90\x82\x8B\x82\xB7\x82\xE9\x81B\x8C\xB4\x91\xA5\x81A\x8Eg\x97p\x8B֎~\x81B</dd> Modified: branches/cmake/teraterm/common/ttlib.c =================================================================== --- branches/cmake/teraterm/common/ttlib.c 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/teraterm/common/ttlib.c 2018-12-27 14:12:40 UTC (rev 7374) @@ -1433,11 +1433,6 @@ // OS\x82\xAA WindowsNT4.0 \x82\xA9\x82ǂ\xA4\x82\xA9\x82ʂ\xB7\x82\xE9\x81B BOOL IsWindowsNT4() { - return IsWindowsVer(VER_PLATFORM_WIN32_NT, 4, 0); -} - -BOOL is_NT4() -{ // VS2013\x88ȏゾ\x82\xC6 GetVersionEx() \x82\xAA\x8Cx\x8D\x90\x82ƂȂ邽\x82߁AVerifyVersionInfo() \x82\xF0\x8Eg\x82\xA4\x81B // \x82\xB5\x82\xA9\x82\xB5\x81AVS2013\x82Ńr\x83\x8B\x83h\x82\xB5\x82\xBD\x83v\x83\x8D\x83O\x83\x89\x83\x80\x82́A\x82\xBB\x82\xE0\x82\xBB\x82\xE0 NT4.0 \x82ł͓\xAE\x8D삵\x82Ȃ\xA2\x82\xBD\x82߁A // \x96\xB3\x8F\xF0\x8C\x8F\x82\xC9 FALSE \x82\xF0\x95Ԃ\xB5\x82Ă\xE0\x82悢\x82\xA9\x82\xE0\x82\xB5\x82\xEA\x82Ȃ\xA2\x81B @@ -1524,17 +1519,20 @@ return IsWindows2000OrLater() || IsWindowsMe(); } +// OPENFILENAMEA.lStructSize \x82ɑ\xE3\x93\xFC\x82\xB7\x82\xE9\x92l +DWORD get_OPENFILENAME_SIZEA() +{ +#if (_WIN32_WINNT >= 0x0500) #if !defined(OPENFILENAME_SIZE_VERSION_400A) #define OPENFILENAME_SIZE_VERSION_400A 76 #endif - -// OPENFILENAMEA.lStructSize \x82ɑ\xE3\x93\xFC\x82\xB7\x82\xE9\x92l -DWORD get_OPENFILENAME_SIZEA() -{ if (IsWindows2000OrLater()) { return sizeof(OPENFILENAMEA); } return OPENFILENAME_SIZE_VERSION_400A; +#else + return sizeof(OPENFILENAMEA); +#endif } #if defined(UNICODE) Modified: branches/cmake/teraterm/common/ttlib.h =================================================================== --- branches/cmake/teraterm/common/ttlib.h 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/teraterm/common/ttlib.h 2018-12-27 14:12:40 UTC (rev 7374) @@ -98,7 +98,6 @@ DllExport void OutputDebugPrintf(const char *fmt, ...); DllExport DWORD get_OPENFILENAME_SIZEA(); DllExport DWORD get_OPENFILENAME_SIZEW(); -DllExport BOOL is_NT4(); DllExport BOOL IsWindows95(); DllExport BOOL IsWindowsMe(); DllExport BOOL IsWindowsNT4(); Modified: branches/cmake/teraterm/ttpmacro/ttl.cpp =================================================================== --- branches/cmake/teraterm/ttpmacro/ttl.cpp 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/teraterm/ttpmacro/ttl.cpp 2018-12-27 14:12:40 UTC (rev 7374) @@ -1644,11 +1644,11 @@ FH = CreateFile(FNameT, GENERIC_WRITE|GENERIC_READ, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + if (FH == INVALID_HANDLE_VALUE) + FH = CreateFile(FNameT, + GENERIC_WRITE, FILE_SHARE_WRITE, NULL, + CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); } - if (FH == INVALID_HANDLE_VALUE) - FH = CreateFile(FNameT, - GENERIC_WRITE, FILE_SHARE_WRITE, NULL, - CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (FH == INVALID_HANDLE_VALUE) { SetIntVal(VarId, -1); return ErrCantOpen; @@ -2444,7 +2444,7 @@ Err = ErrSyntax; if (Err!=0) return Err; - GetAbsPath(Filename, sizeof(Filename)); // @@ TODO + GetAbsPath(Filename, sizeof(Filename)); SetResult(GetFileAttributes(tc::fromUtf8(Filename))); return Err; Modified: branches/cmake/ttssh2/ttxssh/ssh.c =================================================================== --- branches/cmake/ttssh2/ttxssh/ssh.c 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/ttssh2/ttxssh/ssh.c 2018-12-27 14:12:40 UTC (rev 7374) @@ -2923,6 +2923,7 @@ pvar->tryed_ssh2_authlist = FALSE; pvar->agentfwd_enable = FALSE; pvar->use_subsystem = FALSE; + pvar->nosession = FALSE; } @@ -3417,6 +3418,7 @@ &pvar->ssh_state.postdecompress_inbuflen); pvar->agentfwd_enable = FALSE; pvar->use_subsystem = FALSE; + pvar->nosession = FALSE; // support of "Compression delayed" (2006.6.23 maya) if (pvar->ssh_state.compressing || @@ -6902,16 +6904,25 @@ // \x94F\x8F\xD8OK pvar->userauth_success = 1; - // \x83`\x83\x83\x83l\x83\x8B\x90ݒ\xE8 - // FWD_prep_forwarding()\x82\xC5shell ID\x82\xF0\x8Eg\x82\xA4\x82̂ŁA\x90\xE6\x82ɐݒ\xE8\x82\xF0\x8E\x9D\x82\xC1\x82Ă\xAD\x82\xE9\x81B(2005.7.3 yutaka) - // changed window size from 64KB to 32KB. (2006.3.6 yutaka) - // changed window size from 32KB to 128KB. (2007.10.29 maya) - if (pvar->use_subsystem) { - c = ssh2_channel_new(CHAN_SES_WINDOW_DEFAULT, CHAN_SES_PACKET_DEFAULT, TYPE_SUBSYSTEM_GEN, -1); + // \x83f\x83B\x83X\x83p\x83b\x83`\x83\x8B\x81[\x83`\x83\x93\x82̍Đݒ\xE8 + do_SSH2_dispatch_setup_for_transfer(pvar); + + if (pvar->nosession) { + // start forwarding + FWD_prep_forwarding(pvar); + FWD_enter_interactive_mode(pvar); } else { - c = ssh2_channel_new(CHAN_SES_WINDOW_DEFAULT, CHAN_SES_PACKET_DEFAULT, TYPE_SHELL, -1); - } + // \x83`\x83\x83\x83l\x83\x8B\x90ݒ\xE8 + // FWD_prep_forwarding()\x82\xC5shell ID\x82\xF0\x8Eg\x82\xA4\x82̂ŁA\x90\xE6\x82ɐݒ\xE8\x82\xF0\x8E\x9D\x82\xC1\x82Ă\xAD\x82\xE9\x81B(2005.7.3 yutaka) + // changed window size from 64KB to 32KB. (2006.3.6 yutaka) + // changed window size from 32KB to 128KB. (2007.10.29 maya) + if (pvar->use_subsystem) { + c = ssh2_channel_new(CHAN_SES_WINDOW_DEFAULT, CHAN_SES_PACKET_DEFAULT, TYPE_SUBSYSTEM_GEN, -1); + } + else { + c = ssh2_channel_new(CHAN_SES_WINDOW_DEFAULT, CHAN_SES_PACKET_DEFAULT, TYPE_SHELL, -1); + } if (c == NULL) { char uimsg[MAX_UIMSG]; @@ -6924,29 +6935,27 @@ // \x83V\x83F\x83\x8B\x82\xCCID\x82\xF0\x8E\xE6\x82\xC1\x82Ă\xA8\x82\xAD pvar->shell_id = c->self_id; - // \x83f\x83B\x83X\x83p\x83b\x83`\x83\x8B\x81[\x83`\x83\x93\x82̍Đݒ\xE8 - do_SSH2_dispatch_setup_for_transfer(pvar); + // \x83V\x83F\x83\x8B\x83I\x81[\x83v\x83\x93 + msg = buffer_init(); + if (msg == NULL) { + // TODO: error check + logputs(LOG_LEVEL_ERROR, __FUNCTION__ ": buffer_init returns NULL."); + return FALSE; + } + s = "session"; + buffer_put_string(msg, s, strlen(s)); // ctype + buffer_put_int(msg, c->self_id); // self(channel number) + buffer_put_int(msg, c->local_window); // local_window + buffer_put_int(msg, c->local_maxpacket); // local_maxpacket + len = buffer_len(msg); + outmsg = begin_send_packet(pvar, SSH2_MSG_CHANNEL_OPEN, len); + memcpy(outmsg, buffer_ptr (msg), len); + finish_send_packet(pvar); + buffer_free(msg); - // \x83V\x83F\x83\x8B\x83I\x81[\x83v\x83\x93 - msg = buffer_init(); - if (msg == NULL) { - // TODO: error check - logputs(LOG_LEVEL_ERROR, __FUNCTION__ ": buffer_init returns NULL."); - return FALSE; + logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_CHANNEL_OPEN was sent at handle_SSH2_userauth_success()."); } - s = "session"; - buffer_put_string(msg, s, strlen(s)); // ctype - buffer_put_int(msg, c->self_id); // self(channel number) - buffer_put_int(msg, c->local_window); // local_window - buffer_put_int(msg, c->local_maxpacket); // local_maxpacket - len = buffer_len(msg); - outmsg = begin_send_packet(pvar, SSH2_MSG_CHANNEL_OPEN, len); - memcpy(outmsg, buffer_ptr (msg), len); - finish_send_packet(pvar); - buffer_free(msg); - logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_CHANNEL_OPEN was sent at handle_SSH2_userauth_success()."); - // \x83n\x81[\x83g\x83r\x81[\x83g\x81E\x83X\x83\x8C\x83b\x83h\x82̊J\x8En (2004.12.11 yutaka) start_ssh_heartbeat_thread(pvar); Modified: branches/cmake/ttssh2/ttxssh/ttxssh.c =================================================================== --- branches/cmake/ttssh2/ttxssh/ttxssh.c 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/ttssh2/ttxssh/ttxssh.c 2018-12-27 14:12:40 UTC (rev 7374) @@ -1985,6 +1985,8 @@ strncpy_s(pvar->subsystem_name, sizeof(pvar->subsystem_name), option + 15, _TRUNCATE); + } else if (strcmp(option + 4, "-N") == 0) { + pvar->nosession = TRUE; // /ssh1 と /ssh2 オプションの新規追加 (2006.9.16 maya) } else if (strcmp(option + 4, "1") == 0) { Modified: branches/cmake/ttssh2/ttxssh/ttxssh.h =================================================================== --- branches/cmake/ttssh2/ttxssh/ttxssh.h 2018-12-27 10:54:03 UTC (rev 7373) +++ branches/cmake/ttssh2/ttxssh/ttxssh.h 2018-12-27 14:12:40 UTC (rev 7374) @@ -329,6 +329,8 @@ BOOL use_subsystem; char subsystem_name[256]; + + BOOL nosession; } TInstVar; // \x83o\x81[\x83W\x83\x87\x83\x93\x82ɍ\x87\x82킹\x82Ď\xA9\x93\xAE\x95ύX\x82\xB3\x82\xEA\x82\xE9\x81B \x97\xE1: TTSSH_2-81_TS_data