SSH1: handle exit-status message (channels would not close)
Этот коммит содержится в:
родитель
c4701a34d3
Коммит
68bab2a490
@ -103,6 +103,7 @@ void ssh_channel_do_free(ssh_channel channel);
|
|||||||
#ifdef WITH_SSH1
|
#ifdef WITH_SSH1
|
||||||
SSH_PACKET_CALLBACK(ssh_packet_data1);
|
SSH_PACKET_CALLBACK(ssh_packet_data1);
|
||||||
SSH_PACKET_CALLBACK(ssh_packet_close1);
|
SSH_PACKET_CALLBACK(ssh_packet_close1);
|
||||||
|
SSH_PACKET_CALLBACK(ssh_packet_exist_status1);
|
||||||
|
|
||||||
/* channels1.c */
|
/* channels1.c */
|
||||||
int channel_open_session1(ssh_channel channel);
|
int channel_open_session1(ssh_channel channel);
|
||||||
|
@ -267,6 +267,19 @@ SSH_PACKET_CALLBACK(ssh_packet_close1){
|
|||||||
return SSH_PACKET_USED;
|
return SSH_PACKET_USED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SSH_PACKET_CALLBACK(ssh_packet_exist_status1){
|
||||||
|
ssh_channel channel = ssh_get_channel1(session);
|
||||||
|
uint32_t status;
|
||||||
|
(void)type;
|
||||||
|
(void)user;
|
||||||
|
buffer_get_u32(packet, &status);
|
||||||
|
channel->state = SSH_CHANNEL_STATE_CLOSED;
|
||||||
|
channel->remote_eof = 1;
|
||||||
|
channel->exit_status = ntohl(status);
|
||||||
|
|
||||||
|
return SSH_PACKET_USED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int channel_write1(ssh_channel channel, const void *data, int len) {
|
int channel_write1(ssh_channel channel, const void *data, int len) {
|
||||||
ssh_session session = channel->session;
|
ssh_session session = channel->session;
|
||||||
|
@ -55,7 +55,7 @@ ssh_packet_callback default_packet_handlers1[]= {
|
|||||||
ssh_packet_data1, //SSH_SMSG_STDOUT_DATA 17
|
ssh_packet_data1, //SSH_SMSG_STDOUT_DATA 17
|
||||||
ssh_packet_data1, //SSH_SMSG_STDERR_DATA 18
|
ssh_packet_data1, //SSH_SMSG_STDERR_DATA 18
|
||||||
NULL, //SSH_CMSG_EOF 19
|
NULL, //SSH_CMSG_EOF 19
|
||||||
NULL, //SSH_SMSG_EXITSTATUS 20
|
ssh_packet_exist_status1, //SSH_SMSG_EXITSTATUS 20
|
||||||
NULL, //SSH_MSG_CHANNEL_OPEN_CONFIRMATION 21
|
NULL, //SSH_MSG_CHANNEL_OPEN_CONFIRMATION 21
|
||||||
NULL, //SSH_MSG_CHANNEL_OPEN_FAILURE 22
|
NULL, //SSH_MSG_CHANNEL_OPEN_FAILURE 22
|
||||||
NULL, //SSH_MSG_CHANNEL_DATA 23
|
NULL, //SSH_MSG_CHANNEL_DATA 23
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user