| 501 |
pvar->ssh_state.payloadlen = cur_decompressed_bytes; |
pvar->ssh_state.payloadlen = cur_decompressed_bytes; |
| 502 |
return cur_decompressed_bytes; |
return cur_decompressed_bytes; |
| 503 |
default: |
default: |
| 504 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_INVALID_COMPDATA_ERROR", pvar, |
| 505 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Invalid compressed data in received packet", _TRUNCATE); |
"Invalid compressed data in received packet"); |
|
UTIL_get_lang_msg("MSG_SSH_INVALID_COMPDATA_ERROR", pvar); |
|
| 506 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"Invalid compressed data in received packet"); |
|
|
#endif |
|
| 507 |
return -1; |
return -1; |
| 508 |
} |
} |
| 509 |
} |
} |
| 531 |
pvar->ssh_state.payload_grabbed += num_bytes; |
pvar->ssh_state.payload_grabbed += num_bytes; |
| 532 |
if (pvar->ssh_state.payload_grabbed > in_buffer) { |
if (pvar->ssh_state.payload_grabbed > in_buffer) { |
| 533 |
char buf[128]; |
char buf[128]; |
| 534 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_TRUNCATED_PKT_ERROR", pvar, |
| 535 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Received truncated packet (%ld > %d) @ grab_payload()", _TRUNCATE); |
"Received truncated packet (%ld > %d) @ grab_payload()"); |
|
UTIL_get_lang_msg("MSG_SSH_TRUNCATED_PKT_ERROR", pvar); |
|
| 536 |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, |
| 537 |
pvar->ssh_state.payload_grabbed, in_buffer); |
pvar->ssh_state.payload_grabbed, in_buffer); |
|
#else |
|
|
_snprintf(buf, sizeof(buf), "Received truncated packet (%ld > %d) @ grab_payload()", |
|
|
pvar->ssh_state.payload_grabbed, in_buffer); |
|
|
#endif |
|
| 538 |
notify_fatal_error(pvar, buf); |
notify_fatal_error(pvar, buf); |
| 539 |
return FALSE; |
return FALSE; |
| 540 |
} else { |
} else { |
| 555 |
} else { |
} else { |
| 556 |
if (pvar->ssh_state.payload_grabbed > in_buffer) { |
if (pvar->ssh_state.payload_grabbed > in_buffer) { |
| 557 |
char buf[128]; |
char buf[128]; |
| 558 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_TRUNCATED_PKT_LIM_ERROR", pvar, |
| 559 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Received truncated packet (%ld > %d) @ grab_payload_limited()", _TRUNCATE); |
"Received truncated packet (%ld > %d) @ grab_payload_limited()"); |
|
UTIL_get_lang_msg("MSG_SSH_TRUNCATED_PKT_LIM_ERROR", pvar); |
|
| 560 |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, |
| 561 |
pvar->ssh_state.payload_grabbed, in_buffer); |
pvar->ssh_state.payload_grabbed, in_buffer); |
|
#else |
|
|
_snprintf(buf, sizeof(buf), "Received truncated packet (%ld > %d) @ grab_payload_limited()", |
|
|
pvar->ssh_state.payload_grabbed, in_buffer); |
|
|
#endif |
|
| 562 |
notify_fatal_error(pvar, buf); |
notify_fatal_error(pvar, buf); |
| 563 |
return FALSE; |
return FALSE; |
| 564 |
} else { |
} else { |
| 589 |
|
|
| 590 |
if (SSHv1(pvar)) { |
if (SSHv1(pvar)) { |
| 591 |
if (CRYPT_detect_attack(pvar, pvar->ssh_state.payload, len)) { |
if (CRYPT_detect_attack(pvar, pvar->ssh_state.payload, len)) { |
| 592 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_COREINS_ERROR", pvar, |
| 593 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "'CORE insertion attack' detected. Aborting connection.", _TRUNCATE); |
"'CORE insertion attack' detected. Aborting connection."); |
|
UTIL_get_lang_msg("MSG_SSH_COREINS_ERROR", pvar); |
|
| 594 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"'CORE insertion attack' detected. Aborting connection."); |
|
|
return SSH_MSG_NONE; |
|
|
#endif |
|
| 595 |
} |
} |
| 596 |
|
|
| 597 |
CRYPT_decrypt(pvar, pvar->ssh_state.payload, len); |
CRYPT_decrypt(pvar, pvar->ssh_state.payload, len); |
| 598 |
/* PKT guarantees that the data is always 4-byte aligned */ |
/* PKT guarantees that the data is always 4-byte aligned */ |
| 599 |
if (do_crc(pvar->ssh_state.payload, len - 4) != |
if (do_crc(pvar->ssh_state.payload, len - 4) != |
| 600 |
get_uint32_MSBfirst(pvar->ssh_state.payload + len - 4)) { |
get_uint32_MSBfirst(pvar->ssh_state.payload + len - 4)) { |
| 601 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_CORRUPTDATA_ERROR", pvar, |
| 602 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Detected corrupted data; connection terminating.", _TRUNCATE); |
"Detected corrupted data; connection terminating."); |
|
UTIL_get_lang_msg("MSG_SSH_CORRUPTDATA_ERROR", pvar); |
|
| 603 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"Detected corrupted data; connection terminating."); |
|
|
#endif |
|
| 604 |
return SSH_MSG_NONE; |
return SSH_MSG_NONE; |
| 605 |
} |
} |
| 606 |
|
|
| 620 |
if (!CRYPT_verify_receiver_MAC |
if (!CRYPT_verify_receiver_MAC |
| 621 |
(pvar, pvar->ssh_state.receiver_sequence_number, data, len + 4, |
(pvar, pvar->ssh_state.receiver_sequence_number, data, len + 4, |
| 622 |
data + len + 4)) { |
data + len + 4)) { |
| 623 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_CORRUPTDATA_ERROR", pvar, |
| 624 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Detected corrupted data; connection terminating.", _TRUNCATE); |
"Detected corrupted data; connection terminating."); |
|
UTIL_get_lang_msg("MSG_SSH_CORRUPTDATA_ERROR", pvar); |
|
| 625 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"Detected corrupted data; connection terminating."); |
|
|
#endif |
|
| 626 |
return SSH_MSG_NONE; |
return SSH_MSG_NONE; |
| 627 |
} |
} |
| 628 |
|
|
| 635 |
if (SSHv1(pvar)) { |
if (SSHv1(pvar)) { |
| 636 |
if (pvar->ssh_state.decompressing) { |
if (pvar->ssh_state.decompressing) { |
| 637 |
if (pvar->ssh_state.decompress_stream.avail_in != 0) { |
if (pvar->ssh_state.decompress_stream.avail_in != 0) { |
| 638 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_DECOMPRESS_ERROR", pvar, |
| 639 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"Internal error: a packet was not fully decompressed.\n" |
| 640 |
"Internal error: a packet was not fully decompressed.\n" |
"This is a bug, please report it."); |
|
"This is a bug, please report it.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_DECOMPRESS_ERROR", pvar); |
|
| 641 |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_nonfatal_error(pvar, |
|
|
"Internal error: a packet was not fully decompressed.\n" |
|
|
"This is a bug, please report it."); |
|
|
#endif |
|
| 642 |
} |
} |
| 643 |
|
|
| 644 |
pvar->ssh_state.decompress_stream.next_in = |
pvar->ssh_state.decompress_stream.next_in = |
| 776 |
pvar->notification_msg, |
pvar->notification_msg, |
| 777 |
pvar->notification_events) == |
pvar->notification_events) == |
| 778 |
SOCKET_ERROR) { |
SOCKET_ERROR) { |
| 779 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_SEND_PKT_ERROR", pvar, |
| 780 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"A communications error occurred while sending an SSH packet.\n" |
| 781 |
"A communications error occurred while sending an SSH packet.\n" |
"The connection will close."); |
|
"The connection will close.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_SEND_PKT_ERROR", pvar); |
|
| 782 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"A communications error occurred while sending an SSH packet.\n" |
|
|
"The connection will close."); |
|
|
#endif |
|
| 783 |
return FALSE; |
return FALSE; |
| 784 |
} else { |
} else { |
| 785 |
return TRUE; |
return TRUE; |
| 811 |
|
|
| 812 |
if (deflate(&pvar->ssh_state.compress_stream, Z_SYNC_FLUSH) != |
if (deflate(&pvar->ssh_state.compress_stream, Z_SYNC_FLUSH) != |
| 813 |
Z_OK) { |
Z_OK) { |
| 814 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar, |
| 815 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"An error occurred while compressing packet data.\n" |
| 816 |
"An error occurred while compressing packet data.\n" |
"The connection will close."); |
|
"The connection will close.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar); |
|
| 817 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"An error occurred while compressing packet data.\n" |
|
|
"The connection will close."); |
|
|
#endif |
|
| 818 |
return; |
return; |
| 819 |
} |
} |
| 820 |
} |
} |
| 876 |
// 圧縮対象はヘッダを除くペイロードのみ。 |
// 圧縮対象はヘッダを除くペイロードのみ。 |
| 877 |
buffer_append(msg, "\0\0\0\0\0", 5); // 5 = packet-length(4) + padding(1) |
buffer_append(msg, "\0\0\0\0\0", 5); // 5 = packet-length(4) + padding(1) |
| 878 |
if (buffer_compress(&pvar->ssh_state.compress_stream, pvar->ssh_state.outbuf + 12, len, msg) == -1) { |
if (buffer_compress(&pvar->ssh_state.compress_stream, pvar->ssh_state.outbuf + 12, len, msg) == -1) { |
| 879 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar, |
| 880 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"An error occurred while compressing packet data.\n" |
| 881 |
"An error occurred while compressing packet data.\n" |
"The connection will close."); |
|
"The connection will close.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar); |
|
| 882 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"An error occurred while compressing packet data.\n" |
|
|
"The connection will close."); |
|
|
#endif |
|
| 883 |
return; |
return; |
| 884 |
} |
} |
| 885 |
data = buffer_ptr(msg); |
data = buffer_ptr(msg); |
| 1183 |
int description_len; |
int description_len; |
| 1184 |
char buf[2048]; |
char buf[2048]; |
| 1185 |
char FAR *explanation = ""; |
char FAR *explanation = ""; |
|
#ifndef NO_I18N |
|
| 1186 |
char uimsg[MAX_UIMSG]; |
char uimsg[MAX_UIMSG]; |
|
#endif |
|
| 1187 |
|
|
| 1188 |
if (SSHv1(pvar)) { |
if (SSHv1(pvar)) { |
| 1189 |
if (grab_payload(pvar, 4) |
if (grab_payload(pvar, 4) |
| 1217 |
} |
} |
| 1218 |
|
|
| 1219 |
if (get_handler(pvar, SSH_SMSG_FAILURE) == handle_forwarding_failure) { |
if (get_handler(pvar, SSH_SMSG_FAILURE) == handle_forwarding_failure) { |
| 1220 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_UNABLE_FWD_ERROR", pvar, |
| 1221 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"\nIt may have disconnected because it was unable to forward a port you requested to be forwarded from the server.\n" |
| 1222 |
"\nIt may have disconnected because it was unable to forward a port you requested to be forwarded from the server.\n" |
"This often happens when someone is already forwarding that port from the server."); |
|
"This often happens when someone is already forwarding that port from the server.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_UNABLE_FWD_ERROR", pvar); |
|
| 1223 |
strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE); |
strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE); |
| 1224 |
explanation = uimsg; |
explanation = uimsg; |
|
#else |
|
|
explanation = |
|
|
"\nIt may have disconnected because it was unable to forward a port you requested to be forwarded from the server.\n" |
|
|
"This often happens when someone is already forwarding that port from the server."; |
|
|
#endif |
|
| 1225 |
} |
} |
| 1226 |
|
|
| 1227 |
if (description != NULL) { |
if (description != NULL) { |
| 1228 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_SERVER_DISCON_ERROR", pvar, |
| 1229 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server disconnected with message '%s'.%s", _TRUNCATE); |
"Server disconnected with message '%s'.%s"); |
|
UTIL_get_lang_msg("MSG_SSH_SERVER_DISCON_ERROR", pvar); |
|
| 1230 |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
| 1231 |
pvar->ts->UIMsg, description, |
pvar->ts->UIMsg, description, |
| 1232 |
explanation); |
explanation); |
|
#else |
|
|
_snprintf(buf, sizeof(buf), |
|
|
"Server disconnected with message '%s'.%s", description, |
|
|
explanation); |
|
|
#endif |
|
| 1233 |
} else { |
} else { |
| 1234 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_SERVER_DISCON_NORES_ERROR", pvar, |
| 1235 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server disconnected (no reason given).%s", _TRUNCATE); |
"Server disconnected (no reason given).%s"); |
|
UTIL_get_lang_msg("MSG_SSH_SERVER_DISCON_NORES_ERROR", pvar); |
|
| 1236 |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
| 1237 |
pvar->ts->UIMsg, explanation); |
pvar->ts->UIMsg, explanation); |
|
#else |
|
|
_snprintf(buf, sizeof(buf), |
|
|
"Server disconnected (no reason given).%s", explanation); |
|
|
#endif |
|
| 1238 |
} |
} |
|
buf[sizeof(buf) - 1] = 0; |
|
| 1239 |
notify_fatal_error(pvar, buf); |
notify_fatal_error(pvar, buf); |
| 1240 |
|
|
| 1241 |
return TRUE; |
return TRUE; |
| 1514 |
pvar->ssh_state.server_ID = _strdup(ID); |
pvar->ssh_state.server_ID = _strdup(ID); |
| 1515 |
|
|
| 1516 |
if (!parse_protocol_ID(pvar, ID) || !negotiate_protocol(pvar)) { |
if (!parse_protocol_ID(pvar, ID) || !negotiate_protocol(pvar)) { |
| 1517 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_VERSION_ERROR", pvar, |
| 1518 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "This program does not understand the server's version of the protocol.", _TRUNCATE); |
"This program does not understand the server's version of the protocol."); |
|
UTIL_get_lang_msg("MSG_SSH_VERSION_ERROR", pvar); |
|
| 1519 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"This program does not understand the server's version of the protocol."); |
|
|
#endif |
|
| 1520 |
} else { |
} else { |
| 1521 |
char TTSSH_ID[1024]; |
char TTSSH_ID[1024]; |
| 1522 |
int TTSSH_ID_len; |
int TTSSH_ID_len; |
| 1542 |
|
|
| 1543 |
if ((pvar->Psend) (pvar->socket, TTSSH_ID, TTSSH_ID_len, |
if ((pvar->Psend) (pvar->socket, TTSSH_ID, TTSSH_ID_len, |
| 1544 |
0) != TTSSH_ID_len) { |
0) != TTSSH_ID_len) { |
| 1545 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_SEND_ID_ERROR", pvar, |
| 1546 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"An error occurred while sending the SSH ID string.\n" |
| 1547 |
"An error occurred while sending the SSH ID string.\n" |
"The connection will close."); |
|
"The connection will close.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_SEND_ID_ERROR", pvar); |
|
| 1548 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"An error occurred while sending the SSH ID string.\n" |
|
|
"The connection will close."); |
|
|
#endif |
|
| 1549 |
} else { |
} else { |
| 1550 |
// 改行コードの除去 (2004.8.4 yutaka) |
// 改行コードの除去 (2004.8.4 yutaka) |
| 1551 |
pvar->client_version_string[--TTSSH_ID_len] = 0; |
pvar->client_version_string[--TTSSH_ID_len] = 0; |
| 1771 |
if (!SSH2_dispatch_enabled_check(message) || handler == NULL) { |
if (!SSH2_dispatch_enabled_check(message) || handler == NULL) { |
| 1772 |
char buf[1024]; |
char buf[1024]; |
| 1773 |
|
|
| 1774 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_UNEXP_MSG2_ERROR", pvar, |
| 1775 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unexpected SSH2 message(%d) on current stage(%d)", _TRUNCATE); |
"Unexpected SSH2 message(%d) on current stage(%d)"); |
|
UTIL_get_lang_msg("MSG_SSH_UNEXP_MSG2_ERROR", pvar); |
|
| 1776 |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
| 1777 |
pvar->ts->UIMsg, message, handle_message_stage); |
pvar->ts->UIMsg, message, handle_message_stage); |
|
#else |
|
|
_snprintf(buf, sizeof(buf), |
|
|
"Unexpected SSH2 message(%d) on current stage(%d)", message, handle_message_stage); |
|
|
#endif |
|
| 1778 |
notify_fatal_error(pvar, buf); |
notify_fatal_error(pvar, buf); |
| 1779 |
// abort |
// abort |
| 1780 |
} |
} |
| 1784 |
if (SSHv1(pvar)) { |
if (SSHv1(pvar)) { |
| 1785 |
char buf[1024]; |
char buf[1024]; |
| 1786 |
|
|
| 1787 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_UNEXP_MSG_ERROR", pvar, |
| 1788 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unexpected packet type received: %d", _TRUNCATE); |
"Unexpected packet type received: %d"); |
|
UTIL_get_lang_msg("MSG_SSH_UNEXP_MSG_ERROR", pvar); |
|
| 1789 |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
| 1790 |
pvar->ts->UIMsg, message, handle_message_stage); |
pvar->ts->UIMsg, message, handle_message_stage); |
|
#else |
|
|
_snprintf(buf, sizeof(buf), |
|
|
"Unexpected packet type received: %d", message); |
|
|
buf[sizeof(buf) - 1] = 0; |
|
|
#endif |
|
| 1791 |
notify_fatal_error(pvar, buf); |
notify_fatal_error(pvar, buf); |
| 1792 |
} else { |
} else { |
| 1793 |
unsigned char FAR *outmsg = |
unsigned char FAR *outmsg = |
| 1824 |
|
|
| 1825 |
static BOOL handle_pty_failure(PTInstVar pvar) |
static BOOL handle_pty_failure(PTInstVar pvar) |
| 1826 |
{ |
{ |
| 1827 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_ALLOC_TERMINAL_ERROR", pvar, |
| 1828 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"The server cannot allocate a pseudo-terminal. " |
| 1829 |
"The server cannot allocate a pseudo-terminal. " |
"You may encounter some problems with the terminal."); |
|
"You may encounter some problems with the terminal.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_ALLOC_TERMINAL_ERROR", pvar); |
|
| 1830 |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_nonfatal_error(pvar, |
|
|
"The server cannot allocate a pseudo-terminal. " |
|
|
"You may encounter some problems with the terminal."); |
|
|
#endif |
|
| 1831 |
return handle_pty_success(pvar); |
return handle_pty_success(pvar); |
| 1832 |
} |
} |
| 1833 |
|
|
| 1881 |
if (deflateInit |
if (deflateInit |
| 1882 |
(&pvar->ssh_state.compress_stream, |
(&pvar->ssh_state.compress_stream, |
| 1883 |
pvar->ssh_state.compression_level) != Z_OK) { |
pvar->ssh_state.compression_level) != Z_OK) { |
| 1884 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_SETUP_COMP_ERROR", pvar, |
| 1885 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"An error occurred while setting up compression.\n" |
| 1886 |
"An error occurred while setting up compression.\n" |
"The connection will close."); |
|
"The connection will close.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_SETUP_COMP_ERROR", pvar); |
|
| 1887 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"An error occurred while setting up compression.\n" |
|
|
"The connection will close."); |
|
|
#endif |
|
| 1888 |
return; |
return; |
| 1889 |
} else { |
} else { |
| 1890 |
// SSH2では圧縮・展開処理をSSH1とは別に行うので、下記フラグは落としておく。(2005.7.9 yutaka) |
// SSH2では圧縮・展開処理をSSH1とは別に行うので、下記フラグは落としておく。(2005.7.9 yutaka) |
| 1910 |
pvar->ssh_state.decompress_stream.opaque = NULL; |
pvar->ssh_state.decompress_stream.opaque = NULL; |
| 1911 |
if (inflateInit(&pvar->ssh_state.decompress_stream) != Z_OK) { |
if (inflateInit(&pvar->ssh_state.decompress_stream) != Z_OK) { |
| 1912 |
deflateEnd(&pvar->ssh_state.compress_stream); |
deflateEnd(&pvar->ssh_state.compress_stream); |
| 1913 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_SETUP_COMP_ERROR", pvar, |
| 1914 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"An error occurred while setting up compression.\n" |
| 1915 |
"An error occurred while setting up compression.\n" |
"The connection will close."); |
|
"The connection will close.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_SETUP_COMP_ERROR", pvar); |
|
| 1916 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"An error occurred while setting up compression.\n" |
|
|
"The connection will close."); |
|
|
#endif |
|
| 1917 |
return; |
return; |
| 1918 |
} else { |
} else { |
| 1919 |
// SSH2では圧縮・展開処理をSSH1とは別に行うので、下記フラグは落としておく。(2005.7.9 yutaka) |
// SSH2では圧縮・展開処理をSSH1とは別に行うので、下記フラグは落としておく。(2005.7.9 yutaka) |
| 2019 |
|
|
| 2020 |
enque_simple_auth_handlers(pvar); |
enque_simple_auth_handlers(pvar); |
| 2021 |
} else { |
} else { |
| 2022 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_DECRYPT_RSA_ERROR", pvar, |
| 2023 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), |
"An error occurred while decrypting the RSA challenge.\n" |
| 2024 |
"An error occurred while decrypting the RSA challenge.\n" |
"Perhaps the key file is corrupted."); |
|
"Perhaps the key file is corrupted.", |
|
|
_TRUNCATE); |
|
|
UTIL_get_lang_msg("MSG_SSH_DECRYPT_RSA_ERROR", pvar); |
|
| 2025 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"An error occurred while decrypting the RSA challenge.\n" |
|
|
"Perhaps the key file is corrupted."); |
|
|
#endif |
|
| 2026 |
} |
} |
| 2027 |
} |
} |
| 2028 |
|
|
| 2168 |
break; |
break; |
| 2169 |
} |
} |
| 2170 |
default: |
default: |
| 2171 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_UNSUPPORT_AUTH_METHOD_ERROR", pvar, |
| 2172 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Internal error: unsupported authentication method", _TRUNCATE); |
"Internal error: unsupported authentication method"); |
|
UTIL_get_lang_msg("MSG_SSH_UNSUPPORT_AUTH_METHOD_ERROR", pvar); |
|
| 2173 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"Internal error: unsupported authentication method"); |
|
|
#endif |
|
| 2174 |
return; |
return; |
| 2175 |
} |
} |
| 2176 |
|
|
| 2482 |
|
|
| 2483 |
if (deflate(&pvar->ssh_state.compress_stream, Z_NO_FLUSH) != |
if (deflate(&pvar->ssh_state.compress_stream, Z_NO_FLUSH) != |
| 2484 |
Z_OK) { |
Z_OK) { |
| 2485 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar, |
| 2486 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Error compressing packet data", _TRUNCATE); |
"Error compressing packet data"); |
|
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar); |
|
| 2487 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, "Error compressing packet data"); |
|
|
#endif |
|
| 2488 |
return; |
return; |
| 2489 |
} |
} |
| 2490 |
|
|
| 2494 |
|
|
| 2495 |
if (deflate(&pvar->ssh_state.compress_stream, Z_SYNC_FLUSH) != |
if (deflate(&pvar->ssh_state.compress_stream, Z_SYNC_FLUSH) != |
| 2496 |
Z_OK) { |
Z_OK) { |
| 2497 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar, |
| 2498 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Error compressing packet data", _TRUNCATE); |
"Error compressing packet data"); |
|
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar); |
|
| 2499 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, "Error compressing packet data"); |
|
|
#endif |
|
| 2500 |
return; |
return; |
| 2501 |
} |
} |
| 2502 |
} else { |
} else { |
| 2568 |
|
|
| 2569 |
if (inflate(&pvar->ssh_state.decompress_stream, Z_SYNC_FLUSH) != |
if (inflate(&pvar->ssh_state.decompress_stream, Z_SYNC_FLUSH) != |
| 2570 |
Z_OK) { |
Z_OK) { |
| 2571 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_INVALID_COMPDATA_ERROR", pvar, |
| 2572 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Invalid compressed data in received packet", _TRUNCATE); |
"Invalid compressed data in received packet"); |
|
UTIL_get_lang_msg("MSG_SSH_INVALID_COMPDATA_ERROR", pvar); |
|
| 2573 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"Invalid compressed data in received packet"); |
|
|
#endif |
|
| 2574 |
return 0; |
return 0; |
| 2575 |
} |
} |
| 2576 |
} |
} |
| 2595 |
pvar->ssh_state.compress_stream.total_out; |
pvar->ssh_state.compress_stream.total_out; |
| 2596 |
|
|
| 2597 |
if (total_out > 0) { |
if (total_out > 0) { |
| 2598 |
#ifndef NO_I18N |
UTIL_get_lang_msg("DLG_ABOUT_COMP_INFO", pvar, |
| 2599 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "level %d; ratio %.1f (%ld:%ld)", _TRUNCATE); |
"level %d; ratio %.1f (%ld:%ld)"); |
|
UTIL_get_lang_msg("DLG_ABOUT_COMP_INFO", pvar); |
|
| 2600 |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, |
| 2601 |
pvar->ssh_state.compression_level, |
pvar->ssh_state.compression_level, |
| 2602 |
((double) total_in) / total_out, total_in, |
((double) total_in) / total_out, total_in, |
| 2603 |
total_out); |
total_out); |
|
#else |
|
|
_snprintf(buf, sizeof(buf), "level %d; ratio %.1f (%ld:%ld)", |
|
|
pvar->ssh_state.compression_level, |
|
|
((double) total_in) / total_out, total_in, |
|
|
total_out); |
|
|
#endif |
|
| 2604 |
} else { |
} else { |
| 2605 |
#ifndef NO_I18N |
UTIL_get_lang_msg("DLG_ABOUT_COMP_INFO2", pvar, "level %d"); |
|
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "level %d", _TRUNCATE); |
|
|
UTIL_get_lang_msg("DLG_ABOUT_COMP_INFO2", pvar); |
|
| 2606 |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, |
_snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, |
| 2607 |
pvar->ssh_state.compression_level); |
pvar->ssh_state.compression_level); |
|
#else |
|
|
_snprintf(buf, sizeof(buf), "level %d", |
|
|
pvar->ssh_state.compression_level); |
|
|
#endif |
|
| 2608 |
} |
} |
| 2609 |
} else { |
} else { |
| 2610 |
#ifndef NO_I18N |
UTIL_get_lang_msg("DLG_ABOUT_COMP_NONE", pvar, "none"); |
|
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "none", _TRUNCATE); |
|
|
UTIL_get_lang_msg("DLG_ABOUT_COMP_NONE", pvar); |
|
| 2611 |
strncpy_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE); |
strncpy_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE); |
|
#else |
|
|
strcpy(buf, "none"); |
|
|
#endif |
|
| 2612 |
} |
} |
|
#ifdef NO_I18N |
|
|
buf[sizeof(buf) - 1] = 0; |
|
|
#endif |
|
| 2613 |
|
|
| 2614 |
// support of "Compression delayed" (2006.6.23 maya) |
// support of "Compression delayed" (2006.6.23 maya) |
| 2615 |
if (pvar->ssh_state.decompressing || |
if (pvar->ssh_state.decompressing || |
| 2621 |
pvar->ssh_state.decompress_stream.total_out; |
pvar->ssh_state.decompress_stream.total_out; |
| 2622 |
|
|
| 2623 |
if (total_in > 0) { |
if (total_in > 0) { |
| 2624 |
#ifndef NO_I18N |
UTIL_get_lang_msg("DLG_ABOUT_COMP_INFO", pvar, |
| 2625 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "level %d; ratio %.1f (%ld:%ld)", _TRUNCATE); |
"level %d; ratio %.1f (%ld:%ld)"); |
|
UTIL_get_lang_msg("DLG_ABOUT_COMP_INFO", pvar); |
|
| 2626 |
_snprintf_s(buf2, sizeof(buf2), _TRUNCATE, pvar->ts->UIMsg, |
_snprintf_s(buf2, sizeof(buf2), _TRUNCATE, pvar->ts->UIMsg, |
| 2627 |
pvar->ssh_state.compression_level, |
pvar->ssh_state.compression_level, |
| 2628 |
((double) total_out) / total_in, total_out, |
((double) total_out) / total_in, total_out, |
| 2629 |
total_in); |
total_in); |
|
#else |
|
|
_snprintf(buf2, sizeof(buf2), "level %d; ratio %.1f (%ld:%ld)", |
|
|
pvar->ssh_state.compression_level, |
|
|
((double) total_out) / total_in, total_out, |
|
|
total_in); |
|
|
#endif |
|
| 2630 |
} else { |
} else { |
| 2631 |
#ifndef NO_I18N |
UTIL_get_lang_msg("DLG_ABOUT_COMP_INFO2", pvar, "level %d"); |
|
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "level %d", _TRUNCATE); |
|
|
UTIL_get_lang_msg("DLG_ABOUT_COMP_INFO2", pvar); |
|
| 2632 |
_snprintf_s(buf2, sizeof(buf2), _TRUNCATE, pvar->ts->UIMsg, |
_snprintf_s(buf2, sizeof(buf2), _TRUNCATE, pvar->ts->UIMsg, |
| 2633 |
pvar->ssh_state.compression_level); |
pvar->ssh_state.compression_level); |
|
#else |
|
|
_snprintf(buf2, sizeof(buf2), "level %d", |
|
|
pvar->ssh_state.compression_level); |
|
|
#endif |
|
| 2634 |
} |
} |
| 2635 |
} else { |
} else { |
| 2636 |
#ifndef NO_I18N |
UTIL_get_lang_msg("DLG_ABOUT_COMP_NONE", pvar, "none"); |
|
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "none", _TRUNCATE); |
|
|
UTIL_get_lang_msg("DLG_ABOUT_COMP_NONE", pvar); |
|
| 2637 |
strncpy_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
strncpy_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
|
#else |
|
|
strcpy(buf2, "none"); |
|
|
#endif |
|
| 2638 |
} |
} |
|
#ifdef NO_I18N |
|
|
buf2[sizeof(buf2) - 1] = 0; |
|
|
#endif |
|
| 2639 |
|
|
| 2640 |
#ifndef NO_I18N |
UTIL_get_lang_msg("DLG_ABOUT_COMP_UPDOWN", pvar, |
| 2641 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Upstream %s; Downstream %s", _TRUNCATE); |
"Upstream %s; Downstream %s"); |
|
UTIL_get_lang_msg("DLG_ABOUT_COMP_UPDOWN", pvar); |
|
| 2642 |
_snprintf_s(dest, len, _TRUNCATE, pvar->ts->UIMsg, buf, buf2); |
_snprintf_s(dest, len, _TRUNCATE, pvar->ts->UIMsg, buf, buf2); |
|
#else |
|
|
_snprintf(dest, len, "Upstream %s; Downstream %s", buf, buf2); |
|
|
dest[len - 1] = 0; |
|
|
#endif |
|
| 2643 |
} |
} |
| 2644 |
|
|
| 2645 |
void SSH_get_server_ID_info(PTInstVar pvar, char FAR * dest, int len) |
void SSH_get_server_ID_info(PTInstVar pvar, char FAR * dest, int len) |
| 2783 |
pvar->ssh_state.outbuflen - 12; |
pvar->ssh_state.outbuflen - 12; |
| 2784 |
|
|
| 2785 |
if (deflate(&pvar->ssh_state.compress_stream, Z_NO_FLUSH) != Z_OK) { |
if (deflate(&pvar->ssh_state.compress_stream, Z_NO_FLUSH) != Z_OK) { |
| 2786 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar, |
| 2787 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Error compressing packet data", _TRUNCATE); |
"Error compressing packet data"); |
|
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar); |
|
| 2788 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, "Error compressing packet data"); |
|
|
#endif |
|
| 2789 |
return; |
return; |
| 2790 |
} |
} |
| 2791 |
|
|
| 2795 |
|
|
| 2796 |
if (deflate(&pvar->ssh_state.compress_stream, Z_SYNC_FLUSH) != |
if (deflate(&pvar->ssh_state.compress_stream, Z_SYNC_FLUSH) != |
| 2797 |
Z_OK) { |
Z_OK) { |
| 2798 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar, |
| 2799 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Error compressing packet data", _TRUNCATE); |
"Error compressing packet data"); |
|
UTIL_get_lang_msg("MSG_SSH_COMP_ERROR", pvar); |
|
| 2800 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, "Error compressing packet data"); |
|
|
#endif |
|
| 2801 |
return; |
return; |
| 2802 |
} |
} |
| 2803 |
} else { |
} else { |
| 3170 |
if (c == NULL) { |
if (c == NULL) { |
| 3171 |
// 転送チャネル内にあるソケットの解放漏れを修正 (2007.7.26 maya) |
// 転送チャネル内にあるソケットの解放漏れを修正 (2007.7.26 maya) |
| 3172 |
FWD_free_channel(pvar, local_channel_num); |
FWD_free_channel(pvar, local_channel_num); |
| 3173 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_NO_FREE_CHANNEL", pvar, |
| 3174 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Could not open new channel. TTSSH is already opening too many channels.", _TRUNCATE); |
"Could not open new channel. TTSSH is already opening too many channels."); |
|
UTIL_get_lang_msg("MSG_SSH_NO_FREE_CHANNEL", pvar); |
|
| 3175 |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_nonfatal_error(pvar,"Could not open new channel. TTSSH is already opening too many channels."); |
|
|
#endif |
|
| 3176 |
return; |
return; |
| 3177 |
} |
} |
| 3178 |
|
|
| 6294 |
// changed window size from 64KB to 32KB. (2006.3.6 yutaka) |
// changed window size from 64KB to 32KB. (2006.3.6 yutaka) |
| 6295 |
c = ssh2_channel_new(CHAN_SES_PACKET_DEFAULT, CHAN_SES_PACKET_DEFAULT, TYPE_SHELL, -1); |
c = ssh2_channel_new(CHAN_SES_PACKET_DEFAULT, CHAN_SES_PACKET_DEFAULT, TYPE_SHELL, -1); |
| 6296 |
if (c == NULL) { |
if (c == NULL) { |
| 6297 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_NO_FREE_CHANNEL", pvar, |
| 6298 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Could not open new channel. TTSSH is already opening too many channels.", _TRUNCATE); |
"Could not open new channel. TTSSH is already opening too many channels."); |
|
UTIL_get_lang_msg("MSG_SSH_NO_FREE_CHANNEL", pvar); |
|
| 6299 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar,"Could not open new channel. TTSSH is already opening too many channels."); |
|
|
#endif |
|
| 6300 |
return FALSE; |
return FALSE; |
| 6301 |
} |
} |
| 6302 |
// シェルのIDを取っておく |
// シェルのIDを取っておく |
| 6395 |
|
|
| 6396 |
if (pvar->ssh2_autologin == 1) { |
if (pvar->ssh2_autologin == 1) { |
| 6397 |
// SSH2自動ログインが有効の場合は、リトライは行わない。(2004.12.4 yutaka) |
// SSH2自動ログインが有効の場合は、リトライは行わない。(2004.12.4 yutaka) |
| 6398 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_AUTH_FAILURE_ERROR", pvar, |
| 6399 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2 autologin error: user authentication failed", _TRUNCATE); |
"SSH2 autologin error: user authentication failed"); |
|
UTIL_get_lang_msg("MSG_SSH_AUTH_FAILURE_ERROR", pvar); |
|
| 6400 |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
notify_fatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_fatal_error(pvar, |
|
|
"SSH2 autologin error: user authentication failed"); |
|
|
#endif |
|
| 6401 |
return TRUE; |
return TRUE; |
| 6402 |
} |
} |
| 6403 |
|
|
| 6683 |
|
|
| 6684 |
cstring = buffer_get_string(&data, NULL); |
cstring = buffer_get_string(&data, NULL); |
| 6685 |
|
|
| 6686 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_CHANNEL_OPEN_ERROR", pvar, |
| 6687 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2_MSG_CHANNEL_OPEN_FAILURE was received.\r\nchannel [%d]: reason: %s(%d) message: %s", _TRUNCATE); |
"SSH2_MSG_CHANNEL_OPEN_FAILURE was received.\r\nchannel [%d]: reason: %s(%d) message: %s"); |
|
UTIL_get_lang_msg("MSG_SSH_CHANNEL_OPEN_ERROR", pvar); |
|
| 6688 |
_snprintf_s(tmpbuf, sizeof(tmpbuf), _TRUNCATE, pvar->ts->UIMsg, |
_snprintf_s(tmpbuf, sizeof(tmpbuf), _TRUNCATE, pvar->ts->UIMsg, |
| 6689 |
id, rmsg, reason, cstring); |
id, rmsg, reason, cstring); |
|
#else |
|
|
_snprintf(tmpbuf, sizeof(tmpbuf), |
|
|
"SSH2_MSG_CHANNEL_OPEN_FAILURE was received.\r\nchannel [%d]: reason: %s(%d) message: %s", |
|
|
id, rmsg, reason, cstring); |
|
|
#endif |
|
| 6690 |
notify_nonfatal_error(pvar, tmpbuf); |
notify_nonfatal_error(pvar, tmpbuf); |
| 6691 |
|
|
| 6692 |
free(cstring); |
free(cstring); |
| 7034 |
if (c == NULL) { |
if (c == NULL) { |
| 7035 |
// 転送チャネル内にあるソケットの解放漏れを修正 (2007.7.26 maya) |
// 転送チャネル内にあるソケットの解放漏れを修正 (2007.7.26 maya) |
| 7036 |
FWD_free_channel(pvar, chan_num); |
FWD_free_channel(pvar, chan_num); |
| 7037 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_NO_FREE_CHANNEL", pvar, |
| 7038 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Could not open new channel. TTSSH is already opening too many channels.", _TRUNCATE); |
"Could not open new channel. TTSSH is already opening too many channels."); |
|
UTIL_get_lang_msg("MSG_SSH_NO_FREE_CHANNEL", pvar); |
|
| 7039 |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_nonfatal_error(pvar,"Could not open new channel. TTSSH is already opening too many channels."); |
|
|
#endif |
|
| 7040 |
return FALSE; |
return FALSE; |
| 7041 |
} |
} |
| 7042 |
c->remote_id = remote_id; |
c->remote_id = remote_id; |
| 7063 |
if (c == NULL) { |
if (c == NULL) { |
| 7064 |
// 転送チャネル内にあるソケットの解放漏れを修正 (2007.7.26 maya) |
// 転送チャネル内にあるソケットの解放漏れを修正 (2007.7.26 maya) |
| 7065 |
FWD_free_channel(pvar, chan_num); |
FWD_free_channel(pvar, chan_num); |
| 7066 |
#ifndef NO_I18N |
UTIL_get_lang_msg("MSG_SSH_NO_FREE_CHANNEL", pvar, |
| 7067 |
strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Could not open new channel. TTSSH is already opening too many channels.", _TRUNCATE); |
"Could not open new channel. TTSSH is already opening too many channels."); |
|
UTIL_get_lang_msg("MSG_SSH_NO_FREE_CHANNEL", pvar); |
|
| 7068 |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
|
#else |
|
|
notify_nonfatal_error(pvar,"Could not open new channel. TTSSH is already opening too many channels."); |
|
|
#endif |
|
| 7069 |
return FALSE; |
return FALSE; |
| 7070 |
} |
} |
| 7071 |
c->remote_id = remote_id; |
c->remote_id = remote_id; |
| 7249 |
|
|
| 7250 |
/* |
/* |
| 7251 |
* $Log: not supported by cvs2svn $ |
* $Log: not supported by cvs2svn $ |
| 7252 |
|
* Revision 1.84 2007/08/08 16:25:10 maya |
| 7253 |
|
* no message |
| 7254 |
|
* |
| 7255 |
* Revision 1.83 2007/08/08 16:04:09 maya |
* Revision 1.83 2007/08/08 16:04:09 maya |
| 7256 |
* 安全な関数を使用するように変更した。 |
* 安全な関数を使用するように変更した。 |
| 7257 |
* |
* |