Wait for the exit status before returning.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@712 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
родитель
61ebfcfa5c
Коммит
6c51183f0e
@ -1638,9 +1638,24 @@ SSH_SESSION *channel_get_session(CHANNEL *channel) {
|
||||
*
|
||||
* @param channel The channel to get the status from.
|
||||
*
|
||||
* @return -1 if no exit status has been returned, the exit status othewise.
|
||||
* @return -1 if no exit status has been returned or eof not sent,
|
||||
* the exit status othewise.
|
||||
*/
|
||||
int channel_get_exit_status(CHANNEL *channel) {
|
||||
if (channel->local_eof == 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
while (channel->remote_eof == 0 || channel->exit_status == -1) {
|
||||
/* Parse every incoming packet */
|
||||
if (packet_wait(channel->session, 0, 0) != SSH_OK) {
|
||||
return -1;
|
||||
}
|
||||
if (channel->open == 0) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return channel->exit_status;
|
||||
}
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user