[Ttssh2-commit] [6031] TERATERM.INI の設定値に現れない鍵交換・ホスト鍵・暗号化・MAC・圧縮方式の追加位置を変更

svnno****@sourc***** svnno****@sourc*****
2015年 9月 25日 (金) 11:27:17 JST


Revision: 6031
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6031
Author:   maya
Date:     2015-09-25 11:27:17 +0900 (Fri, 25 Sep 2015)
Log Message:
-----------
TERATERM.INI の設定値に現れない鍵交換・ホスト鍵・暗号化・MAC・圧縮方式の追加位置を変更
  https://osdn.jp/ticket/browse.php?group_id=1412&tid=35201

  末尾に追加
  ↓
  デフォルトで有効な方式...使用される方式の末尾に追加
  デフォルトで無効な方式...使用されない方式の末尾に追加

Modified Paths:
--------------
    trunk/ttssh2/ttxssh/ttxssh.c

-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/ttxssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ttxssh.c	2015-09-23 09:49:38 UTC (rev 6030)
+++ trunk/ttssh2/ttxssh/ttxssh.c	2015-09-25 02:27:17 UTC (rev 6031)
@@ -185,7 +185,7 @@
 {
 	char listed[max(KEX_DH_MAX,max(SSH_CIPHER_MAX,max(KEY_MAX,max(HMAC_MAX,COMP_MAX)))) + 1];
 	char allowed[max(KEX_DH_MAX,max(SSH_CIPHER_MAX,max(KEY_MAX,max(HMAC_MAX,COMP_MAX)))) + 1];
-	int i, j;
+	int i, j, k=-1;
 
 	memset(listed, 0, sizeof(listed));
 	memset(allowed, 0, sizeof(allowed));
@@ -204,8 +204,38 @@
 		} else {
 			listed[num] = 1;
 		}
+
+		if (num == 0) {
+			k = i;
+		}
 	}
 
+#if 1
+	for (j = 0; j < default_strings_len && default_strings[j] != 0; j++) {
+		int num = default_strings[j];
+
+		if (!listed[num] && k >= 0) {
+			memmove(buf + k + 1, buf + k, strlen(buf + k + 1) + 1);
+			buf[k] = num + '0';
+			k++;
+			i++;
+		}
+	}
+	if (k < 0) {
+		j = 0;
+	}
+	else {
+		j++;
+	}
+	for (; j < default_strings_len ; j++) {
+		int num = default_strings[j];
+
+		if (!listed[num]) {
+			buf[i] = num + '0';
+			i++;
+		}
+	}
+#else
 	for (j = 0; j < default_strings_len ; j++) {
 		int num = default_strings[j];
 
@@ -214,6 +244,7 @@
 			i++;
 		}
 	}
+#endif
 
 	buf[i] = 0;
 }



Ttssh2-commit メーリングリストの案内