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 2826 by yutakakn, Sat Jul 2 07:56:13 2005 UTC revision 2827 by yutakakn, Sat Jul 2 08:43:32 2005 UTC
# Line 73  static BOOL handle_SSH2_userauth_success Line 73  static BOOL handle_SSH2_userauth_success
73  static BOOL handle_SSH2_userauth_failure(PTInstVar pvar);  static BOOL handle_SSH2_userauth_failure(PTInstVar pvar);
74  static BOOL handle_SSH2_userauth_banner(PTInstVar pvar);  static BOOL handle_SSH2_userauth_banner(PTInstVar pvar);
75  static BOOL handle_SSH2_open_confirm(PTInstVar pvar);  static BOOL handle_SSH2_open_confirm(PTInstVar pvar);
76    static BOOL handle_SSH2_open_failure(PTInstVar pvar);
77  static BOOL handle_SSH2_request_success(PTInstVar pvar);  static BOOL handle_SSH2_request_success(PTInstVar pvar);
78  static BOOL handle_SSH2_request_failure(PTInstVar pvar);  static BOOL handle_SSH2_request_failure(PTInstVar pvar);
79  static BOOL handle_SSH2_channel_success(PTInstVar pvar);  static BOOL handle_SSH2_channel_success(PTInstVar pvar);
# Line 1283  static void init_protocol(PTInstVar pvar Line 1284  static void init_protocol(PTInstVar pvar
1284  //              enque_handler(pvar, SSH2_MSG_CHANNEL_EXTENDED_DATA, handle_SSH2_channel_extended_data);  //              enque_handler(pvar, SSH2_MSG_CHANNEL_EXTENDED_DATA, handle_SSH2_channel_extended_data);
1285                  enque_handler(pvar, SSH2_MSG_CHANNEL_OPEN, handle_SSH2_channel_open);                  enque_handler(pvar, SSH2_MSG_CHANNEL_OPEN, handle_SSH2_channel_open);
1286                  enque_handler(pvar, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, handle_SSH2_open_confirm);                  enque_handler(pvar, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, handle_SSH2_open_confirm);
1287  //              enque_handler(pvar, SSH2_MSG_CHANNEL_OPEN_FAILURE, handle_unimplemented);                  enque_handler(pvar, SSH2_MSG_CHANNEL_OPEN_FAILURE, handle_SSH2_open_failure);
1288                  enque_handler(pvar, SSH2_MSG_CHANNEL_REQUEST, handle_SSH2_channel_request);                  enque_handler(pvar, SSH2_MSG_CHANNEL_REQUEST, handle_SSH2_channel_request);
1289                  enque_handler(pvar, SSH2_MSG_CHANNEL_WINDOW_ADJUST, handle_SSH2_window_adjust);                  enque_handler(pvar, SSH2_MSG_CHANNEL_WINDOW_ADJUST, handle_SSH2_window_adjust);
1290                  enque_handler(pvar, SSH2_MSG_CHANNEL_SUCCESS, handle_SSH2_channel_success);                  enque_handler(pvar, SSH2_MSG_CHANNEL_SUCCESS, handle_SSH2_channel_success);
# Line 5585  static BOOL handle_SSH2_open_confirm(PTI Line 5586  static BOOL handle_SSH2_open_confirm(PTI
5586          return TRUE;          return TRUE;
5587  }  }
5588    
5589    
5590    // SSH2 port-forwarding においてセッションがオープンできない場合のサーバからのリプライ(失敗)
5591    static BOOL handle_SSH2_open_failure(PTInstVar pvar)
5592    {      
5593            int len;
5594            char *data;
5595            int id;
5596            Channel_t *c;
5597            int reason;
5598            char *cstring;
5599            char tmpbuf[256];
5600            char *rmsg;
5601    
5602            // 6byte(サイズ+パディング+タイプ)を取り除いた以降のペイロード
5603            data = pvar->ssh_state.payload;
5604            // パケットサイズ - (パディングサイズ+1);真のパケットサイズ
5605            len = pvar->ssh_state.payloadlen;
5606    
5607            id = get_uint32_MSBfirst(data);
5608            data += 4;
5609    
5610            c = ssh2_channel_lookup(id);
5611            if (c == NULL) {
5612                    // TODO: SSH2_MSG_DISCONNECTを送る
5613                    return FALSE;
5614            }
5615    
5616            reason = get_uint32_MSBfirst(data);
5617            data += 4;
5618    
5619            if (reason == SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED) {
5620                    rmsg = "administratively prohibited";
5621            } else if (reason == SSH2_OPEN_CONNECT_FAILED) {
5622                    rmsg = "connect failed";
5623            } else if (reason == SSH2_OPEN_UNKNOWN_CHANNEL_TYPE) {
5624                    rmsg = "unknown channel type";
5625            } else if (reason == SSH2_OPEN_RESOURCE_SHORTAGE) {
5626                    rmsg = "resource shortage";
5627            } else {
5628                    rmsg = "unknown reason";
5629            }
5630    
5631            cstring = buffer_get_string(&data, NULL);
5632    
5633            _snprintf(tmpbuf, sizeof(tmpbuf),
5634                    "SSH2_MSG_CHANNEL_OPEN_FAILURE was received.\r\nchannel [%d]: reason: %s(%d) message: %s",
5635                    id, rmsg, reason, cstring);
5636            notify_nonfatal_error(pvar, tmpbuf);
5637    
5638            free(cstring);
5639    
5640            return TRUE;
5641    }
5642    
5643    
5644  // SSH2 port-forwarding (remote -> local)に対するリプライ(成功)  // SSH2 port-forwarding (remote -> local)に対するリプライ(成功)
5645  static BOOL handle_SSH2_request_success(PTInstVar pvar)  static BOOL handle_SSH2_request_success(PTInstVar pvar)
5646  {        {      
# Line 6061  static BOOL handle_SSH2_window_adjust(PT Line 6117  static BOOL handle_SSH2_window_adjust(PT
6117    
6118  /*  /*
6119   * $Log: not supported by cvs2svn $   * $Log: not supported by cvs2svn $
6120     * Revision 1.30  2005/07/02 07:56:13  yutakakn
6121     * update SSH2 port-forwading(remote to local)
6122     *
6123   * Revision 1.29  2005/06/26 14:26:24  yutakakn   * Revision 1.29  2005/06/26 14:26:24  yutakakn
6124   * update: SSH2 port-forwarding (remote to local)   * update: SSH2 port-forwarding (remote to local)
6125   *   *

Legend:
Removed from v.2826  
changed lines
  Added in v.2827

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