| 906 |
|
|
| 907 |
static void add_host_key(PTInstVar pvar) |
static void add_host_key(PTInstVar pvar) |
| 908 |
{ |
{ |
|
char buf[FILENAME_MAX]; |
|
| 909 |
char FAR *name = pvar->hosts_state.file_names[0]; |
char FAR *name = pvar->hosts_state.file_names[0]; |
|
get_teraterm_dir_relative_name(buf, sizeof(buf), name); |
|
| 910 |
|
|
| 911 |
if (buf == NULL || buf[0] == 0) { |
if (name == NULL || name[0] == 0) { |
| 912 |
notify_nonfatal_error(pvar, |
notify_nonfatal_error(pvar, |
| 913 |
"The host and its key cannot be added, because no known-hosts file has been specified.\n" |
"The host and its key cannot be added, because no known-hosts file has been specified.\n" |
| 914 |
"Restart Teraterm and specify a read/write known-hosts file in the TTSSH Setup dialog box."); |
"Restart Teraterm and specify a read/write known-hosts file in the TTSSH Setup dialog box."); |
| 915 |
} else { |
} else { |
| 916 |
char FAR *keydata = format_host_key(pvar); |
char FAR *keydata = format_host_key(pvar); |
| 917 |
int length = strlen(keydata); |
int length = strlen(keydata); |
| 918 |
int fd = |
int fd; |
|
_open(buf, |
|
|
_O_APPEND | _O_CREAT | _O_WRONLY | _O_SEQUENTIAL | |
|
|
_O_BINARY, |
|
|
_S_IREAD | _S_IWRITE); |
|
| 919 |
int amount_written; |
int amount_written; |
| 920 |
int close_result; |
int close_result; |
| 921 |
|
char buf[FILENAME_MAX]; |
| 922 |
|
|
| 923 |
|
get_teraterm_dir_relative_name(buf, sizeof(buf), name); |
| 924 |
|
fd = _open(buf, |
| 925 |
|
_O_APPEND | _O_CREAT | _O_WRONLY | _O_SEQUENTIAL | |
| 926 |
|
_O_BINARY, |
| 927 |
|
_S_IREAD | _S_IWRITE); |
| 928 |
if (fd == -1) { |
if (fd == -1) { |
| 929 |
if (errno == EACCES) { |
if (errno == EACCES) { |
| 930 |
notify_nonfatal_error(pvar, |
notify_nonfatal_error(pvar, |
| 968 |
// |
// |
| 969 |
static void delete_different_key(PTInstVar pvar) |
static void delete_different_key(PTInstVar pvar) |
| 970 |
{ |
{ |
|
char buf[FILENAME_MAX]; |
|
| 971 |
char FAR *name = pvar->hosts_state.file_names[0]; |
char FAR *name = pvar->hosts_state.file_names[0]; |
|
get_teraterm_dir_relative_name(buf, sizeof(buf), name); |
|
| 972 |
|
|
| 973 |
if (buf == NULL || buf[0] == 0) { |
if (name == NULL || name[0] == 0) { |
| 974 |
notify_nonfatal_error(pvar, |
notify_nonfatal_error(pvar, |
| 975 |
"The host and its key cannot be added, because no known-hosts file has been specified.\n" |
"The host and its key cannot be added, because no known-hosts file has been specified.\n" |
| 976 |
"Restart Teraterm and specify a read/write known-hosts file in the TTSSH Setup dialog box."); |
"Restart Teraterm and specify a read/write known-hosts file in the TTSSH Setup dialog box."); |
| 983 |
int amount_written = 0; |
int amount_written = 0; |
| 984 |
int close_result; |
int close_result; |
| 985 |
int data_index = 0; |
int data_index = 0; |
| 986 |
|
char buf[FILENAME_MAX]; |
| 987 |
|
|
| 988 |
// 書き込み一時ファイルを開く |
// 書き込み一時ファイルを開く |
| 989 |
tmpnam(filename); |
tmpnam(filename); |
| 1126 |
} |
} |
| 1127 |
|
|
| 1128 |
// 書き込み一時ファイルからリネーム |
// 書き込み一時ファイルからリネーム |
| 1129 |
|
get_teraterm_dir_relative_name(buf, sizeof(buf), name); |
| 1130 |
_unlink(buf); |
_unlink(buf); |
| 1131 |
rename(filename, buf); |
rename(filename, buf); |
| 1132 |
|
|
| 1384 |
|
|
| 1385 |
/* |
/* |
| 1386 |
* $Log: not supported by cvs2svn $ |
* $Log: not supported by cvs2svn $ |
| 1387 |
|
* Revision 1.8 2006/06/29 15:27:00 yutakakn |
| 1388 |
|
* ssh_known_filesファイルを常にTeraTermインストールディレクトリへ保存するようにした。 |
| 1389 |
|
* |
| 1390 |
* Revision 1.7 2006/04/04 13:52:52 yutakakn |
* Revision 1.7 2006/04/04 13:52:52 yutakakn |
| 1391 |
* known_hostsファイルにおいてキー種別の異なる同一ホストのエントリがあった場合、古いキーを削除する機能を追加した。 |
* known_hostsファイルにおいてキー種別の異なる同一ホストのエントリがあった場合、古いキーを削除する機能を追加した。 |
| 1392 |
* |
* |