Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ssh.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2993 by maya, Wed Aug 8 16:25:10 2007 UTC revision 2994 by maya, Mon Aug 13 22:30:03 2007 UTC
# Line 501  static int buffer_packet_data(PTInstVar Line 501  static int buffer_packet_data(PTInstVar
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                  }                  }
# Line 536  static BOOL grab_payload(PTInstVar pvar, Line 531  static BOOL grab_payload(PTInstVar pvar,
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 {
# Line 565  static BOOL grab_payload_limited(PTInstV Line 555  static BOOL grab_payload_limited(PTInstV
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 {
# Line 604  static int prep_packet(PTInstVar pvar, c Line 589  static int prep_packet(PTInstVar pvar, c
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    
# Line 646  static int prep_packet(PTInstVar pvar, c Line 620  static int prep_packet(PTInstVar pvar, c
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    
# Line 666  static int prep_packet(PTInstVar pvar, c Line 635  static int prep_packet(PTInstVar pvar, c
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 =
# Line 815  static BOOL send_packet_blocking(PTInstV Line 776  static BOOL send_packet_blocking(PTInstV
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;
# Line 858  static void finish_send_packet_special(P Line 811  static void finish_send_packet_special(P
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                  }                  }
# Line 931  static void finish_send_packet_special(P Line 876  static void finish_send_packet_special(P
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);
# Line 1246  static BOOL handle_disconnect(PTInstVar Line 1183  static BOOL handle_disconnect(PTInstVar
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)
# Line 1282  static BOOL handle_disconnect(PTInstVar Line 1217  static BOOL handle_disconnect(PTInstVar
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;
# Line 1599  BOOL SSH_handle_server_ID(PTInstVar pvar Line 1514  BOOL SSH_handle_server_ID(PTInstVar pvar
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;
# Line 1632  BOOL SSH_handle_server_ID(PTInstVar pvar Line 1542  BOOL SSH_handle_server_ID(PTInstVar pvar
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;
# Line 1869  void SSH_handle_packet(PTInstVar pvar, c Line 1771  void SSH_handle_packet(PTInstVar pvar, c
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                          }                          }
# Line 1887  void SSH_handle_packet(PTInstVar pvar, c Line 1784  void SSH_handle_packet(PTInstVar pvar, c
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 =
# Line 1933  static BOOL handle_pty_success(PTInstVar Line 1824  static BOOL handle_pty_success(PTInstVar
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    
# Line 1998  static void enable_send_compression(PTIn Line 1881  static void enable_send_compression(PTIn
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)
# Line 2035  static void enable_recv_compression(PTIn Line 1910  static void enable_recv_compression(PTIn
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)
# Line 2152  static BOOL handle_rsa_challenge(PTInstV Line 2019  static BOOL handle_rsa_challenge(PTInstV
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    
# Line 2309  static void try_send_credentials(PTInstV Line 2168  static void try_send_credentials(PTInstV
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    
# Line 2628  void SSH_send(PTInstVar pvar, unsigned c Line 2482  void SSH_send(PTInstVar pvar, unsigned c
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    
# Line 2644  void SSH_send(PTInstVar pvar, unsigned c Line 2494  void SSH_send(PTInstVar pvar, unsigned c
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 {
# Line 2722  int SSH_extract_payload(PTInstVar pvar, Line 2568  int SSH_extract_payload(PTInstVar pvar,
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          }          }
# Line 2754  void SSH_get_compression_info(PTInstVar Line 2595  void SSH_get_compression_info(PTInstVar
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 ||
# Line 2801  void SSH_get_compression_info(PTInstVar Line 2621  void SSH_get_compression_info(PTInstVar
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)
# Line 2989  void SSH_channel_send(PTInstVar pvar, in Line 2783  void SSH_channel_send(PTInstVar pvar, in
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    
# Line 3005  void SSH_channel_send(PTInstVar pvar, in Line 2795  void SSH_channel_send(PTInstVar pvar, in
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 {
# Line 3384  void SSH_open_channel(PTInstVar pvar, ui Line 3170  void SSH_open_channel(PTInstVar pvar, ui
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    
# Line 6512  static BOOL handle_SSH2_userauth_success Line 6294  static BOOL handle_SSH2_userauth_success
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を取っておく
# Line 6617  static BOOL handle_SSH2_userauth_failure Line 6395  static BOOL handle_SSH2_userauth_failure
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    
# Line 6910  static BOOL handle_SSH2_open_failure(PTI Line 6683  static BOOL handle_SSH2_open_failure(PTI
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);
# Line 7267  static BOOL handle_SSH2_channel_open(PTI Line 7034  static BOOL handle_SSH2_channel_open(PTI
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;
# Line 7300  static BOOL handle_SSH2_channel_open(PTI Line 7063  static BOOL handle_SSH2_channel_open(PTI
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;
# Line 7490  static BOOL handle_SSH2_window_adjust(PT Line 7249  static BOOL handle_SSH2_window_adjust(PT
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   *   *

Legend:
Removed from v.2993  
changed lines
  Added in v.2994

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26