Revision: 10969 https://osdn.net/projects/ttssh2/scm/svn/commits/10969 Author: nmaya Date: 2023-10-08 23:12:11 +0900 (Sun, 08 Oct 2023) Log Message: ----------- SSH2 の Rekey 中に発生した SSH_MSG_CHANNEL_DATA の送信を破棄せず、バッファに入れるようにした issue: https://github.com/TeraTermProject/osdn-download/issues/18 MFT: r10957, r10968 Revision Links: -------------- https://osdn.net/projects/ttssh2/scm/svn/commits/10957 https://osdn.net/projects/ttssh2/scm/svn/commits/10968 Modified Paths: -------------- branches/4-stable/doc/en/html/about/history.html branches/4-stable/doc/ja/html/about/history.html branches/4-stable/ttssh2/ttxssh/ssh.c -------------- next part -------------- Modified: branches/4-stable/doc/en/html/about/history.html =================================================================== --- branches/4-stable/doc/en/html/about/history.html 2023-10-08 13:39:49 UTC (rev 10968) +++ branches/4-stable/doc/en/html/about/history.html 2023-10-08 14:12:11 UTC (rev 10969) @@ -3352,6 +3352,7 @@ <ul> <li>when SSH2 dynamic port forwarding is used, an application fault occurs.</li> <li>when receiving SCP with fast network, received data is not written until finish receiving and memory usage increases, or no response.</li> + <li>stop discarding SSH_MSG_CHANNEL_DATA send that occurs while key re-exchange, send them after finish key exchange.</li> <li>when <a href="../menu/setup-sshauth.html">Authentication Setup dialog</a> is opened, username setting value is "Use default username" (DefaultUserType=1), nevertheless "Do not enter username" is selected.</li> </ul> </li> Modified: branches/4-stable/doc/ja/html/about/history.html =================================================================== --- branches/4-stable/doc/ja/html/about/history.html 2023-10-08 13:39:49 UTC (rev 10968) +++ branches/4-stable/doc/ja/html/about/history.html 2023-10-08 14:12:11 UTC (rev 10969) @@ -3358,6 +3358,7 @@ <ul> <li>SSH2\x83_\x83C\x83i\x83~\x83b\x83N\x83|\x81[\x83g\x83t\x83H\x83\x8F\x81[\x83f\x83B\x83\x93\x83O\x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9\x82ƈُ\xED\x8FI\x97\xB9\x82\xB7\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li> <li>\x83l\x83b\x83g\x83\x8F\x81[\x83N\x82\xAA\x8D\x82\x91\xAC\x82ȏꍇ\x82ɁASCP \x82̎\xF3\x90M\x82\xAA\x8FI\x82\xED\x82\xE9\x82܂Ńt\x83@\x83C\x83\x8B\x82ւ̏\x91\x82\xAB\x8D\x9E\x82݂\xAA\x8Ds\x82\xED\x82ꂸ\x81A\x83\x81\x83\x82\x83\x8A\x8Eg\x97p\x97ʂ\xAA\x91\x9D\x89\xC1\x82\xB5\x82\xBD\x82艞\x93\x9A\x82\xAA\x82Ȃ\xAD\x82Ȃ\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li> + <li>\x8C\xAE\x8DČ\xF0\x8A\xB7\x82̍Œ\x86\x82ɔ\xAD\x90\xB6\x82\xB5\x82\xBD SSH_MSG_CHANNEL_DATA \x82̑\x97\x90M\x82\xF0\x94j\x8A\xFC\x82\xB9\x82\xB8\x81A\x8C\xAE\x8C\xF0\x8A\xB7\x8A\xAE\x97\xB9\x8C\xE3\x82ɂ܂Ƃ߂đ\x97\x90M\x82\xB7\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li> <li><a href="../menu/setup-sshauth.html">Authentication Setup \x83_\x83C\x83A\x83\x8D\x83O</a>\x82\xF0\x8AJ\x82\xA2\x82\xBD\x82Ƃ\xAB\x82ɁASSH \x94F\x8FɎg\x97p\x82\xB7\x82郆\x81[\x83U\x96\xBC\x90ݒ肪 "Use default username" (DefaultUserType=1) \x82Ȃ̂\xC9 "Do not enter username" \x82\xAA\x91I\x91\xF0\x82\xB3\x82\xEA\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li> </ul> </li> Modified: branches/4-stable/ttssh2/ttxssh/ssh.c =================================================================== --- branches/4-stable/ttssh2/ttxssh/ssh.c 2023-10-08 13:39:49 UTC (rev 10968) +++ branches/4-stable/ttssh2/ttxssh/ssh.c 2023-10-08 14:12:11 UTC (rev 10969) @@ -3540,14 +3540,9 @@ unsigned char *outmsg; unsigned int len; - // SSH2\x8C\xAE\x8C\xF0\x8A\xB7\x92\x86\x82̏ꍇ\x81A\x83p\x83P\x83b\x83g\x82\xF0\x8ÊĂ\xE9\x81B(2005.6.19 yutaka) + // SSH2\x8C\xAE\x8C\xF0\x8A\xB7\x92\x86\x82̏ꍇ\x82́A\x83p\x83P\x83b\x83g\x82𑗂\xEA\x82Ȃ\xA2\x82̂ł\xA2\x82\xC1\x82\xBD\x82\xF1\x95ۑ\xB6\x82\xB5\x82Ă\xA8\x82\xAD if (pvar->kex_status & KEX_FLAG_REKEYING) { - // TODO: \x97\x9D\x91z\x82Ƃ\xB5\x82Ă̓p\x83P\x83b\x83g\x94j\x8A\xFC\x82ł͂Ȃ\xAD\x81A\x83p\x83P\x83b\x83g\x93ǂݎ\xE6\x82\xE8\x92x\x89\x84\x82ɂ\xB5\x82\xBD\x82\xA2\x82Ƃ\xB1\x82낾\x82\xAA\x81A - // \x8F\xAB\x97\x88\x92\xBC\x82\xB7\x82\xB1\x82Ƃɂ\xB7\x82\xE9\x81B - logprintf(LOG_LEVEL_INFO, "%s: now rekeying. data is not sent.", __FUNCTION__); - - c = NULL; - + ssh2_channel_add_bufchain(pvar, c, buf, buflen); return; } @@ -6108,7 +6103,18 @@ // SSH2_MSG_NEWKEYS \x82\xF0\x8A\xF9\x82ɑ\x97\x82\xC1\x82Ă\xA2\x82\xBD\x82\xE7KEX\x82͊\xAE\x97\xB9\x81B\x8E\x9F\x82̏\x88\x97\x9D\x82Ɉڂ\xE9\x81B if (pvar->kex_status & KEX_FLAG_NEWKEYS_SENT) { if (pvar->kex_status & KEX_FLAG_REKEYING) { + int i; + Channel_t *c; + do_SSH2_dispatch_setup_for_transfer(pvar); + + // \x91\x97\x82炸\x83o\x83b\x83t\x83@\x82ɕۑ\xB6\x82\xB5\x82Ă\xA8\x82\xA2\x82\xBD\x83f\x81[\x83^\x82𑗂\xE9 + for (i = 0 ; i < CHANNEL_MAX ; i++) { + c = &channels[i]; + if (c->used) { + ssh2_channel_retry_send_bufchain(pvar, c); + } + } } else { // \x8F\x89\x89\xF1\x82\xCC SSH2_MSG_NEWKEYS \x82̑\x97\x8E\xF3\x90M\x82\xAA\x8A\xAE\x97\xB9\x82\xB5\x81A\x88ȍ~\x82̒ʐM\x82͈Í\x86\x89\xBB\x82\xB3\x82ꂽ\x8F\xF3\x91ԂɂȂ\xE9 @@ -9324,7 +9330,7 @@ // window size\x82̒\xB2\x90\xAE c->remote_window += adjust; - // \x91\x97\x82\xE8\x8Ec\x82\xB5 + // \x91\x97\x82炸\x83o\x83b\x83t\x83@\x82ɕۑ\xB6\x82\xB5\x82Ă\xA8\x82\xA2\x82\xBD\x83f\x81[\x83^\x82𑗂\xE9 ssh2_channel_retry_send_bufchain(pvar, c); return TRUE;