| 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); |
| 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); |
| 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 |
{ |
{ |
| 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 |
* |
* |