[ttssh2-commit] [10969] SSH2 の Rekey 中に発生した SSH_MSG_CHANNEL_DATA の送信を破棄せず、バッファに入れるようにした

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2023年 10月 8日 (日) 23:12:11 JST


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;


ttssh2-commit メーリングリストの案内
Back to archive index