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 5039 by yutakapon, Sat Oct 13 16:18:29 2012 UTC revision 5191 by yutakapon, Fri Apr 5 13:35:09 2013 UTC
# Line 8031  reply: Line 8031  reply:
8031          return TRUE;          return TRUE;
8032  }  }
8033    
8034    // cf. response()#scp.c
8035  static void SSH2_scp_response(PTInstVar pvar, Channel_t *c, unsigned char *data, unsigned int buflen)  static void SSH2_scp_response(PTInstVar pvar, Channel_t *c, unsigned char *data, unsigned int buflen)
8036  {  {
8037          if (c->scp.dir == FROMREMOTE) {          if (c->scp.dir == FROMREMOTE) {
# Line 8051  error: Line 8051  error:
8051          {  // error          {  // error
8052                  char msg[2048];                  char msg[2048];
8053                  unsigned int i, max;                  unsigned int i, max;
8054                    int offset, resp;
8055    
8056                    resp = data[0];
8057    
8058                    // エラーコードにより文字列の格納場所が若干異なる。
8059                    if (resp == 1 || /* error, followed by error msg */
8060                            resp == 2) {  /* fatal error, "" */
8061                            offset = 1;
8062                    } else {
8063                            offset = 0;
8064                    }
8065    
8066                  if (buflen > sizeof(msg))                  if (buflen > sizeof(msg))
8067                          max = sizeof(msg);                          max = sizeof(msg);
8068                  else                  else
8069                          max = buflen - 1;                          max = buflen - 1;
8070                  for (i = 0 ; i < max ; i++) {                  for (i = 0 ; i < max ; i++) {
8071                          msg[i] = data[i + 1];                          msg[i] = data[i + offset];
8072                  }                  }
8073                  msg[i] = '\0';                  msg[i] = '\0';
8074    
8075                  ssh2_channel_send_close(pvar, c);                  // よく分からないエラーの場合は、自身でチャネルをクローズする。
8076                  //ssh2_channel_delete(c);  // free channel                  // .bashrc に"stty stop undef"が定義されていると、TTSSHが落ちる問題への暫定処置。
8077                    // 落ちる原因は分かっていない。
8078                    // (2013.4.5 yutaka)
8079                    if (resp == 1) {
8080                            ssh2_channel_send_close(pvar, c);
8081                    } else {
8082                            ssh2_channel_delete(c);  // free channel
8083                    }
8084    
8085                  MessageBox(NULL, msg, "TTSSH: SCP error", MB_OK | MB_ICONEXCLAMATION);                  MessageBox(NULL, msg, "TTSSH: SCP error", MB_OK | MB_ICONEXCLAMATION);
8086          }          }

Legend:
Removed from v.5039  
changed lines
  Added in v.5191

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