1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-12-02 01:17:52 +03:00

session: Add brackets to ssh_handle_packets_termination().

This commit is contained in:
Andreas Schneider
2013-07-21 10:35:18 +02:00
parent c4937cedea
commit 461988b153

View File

@@ -515,34 +515,45 @@ int ssh_handle_packets(ssh_session session, int timeout) {
* @param[in] user User parameter to be passed to fct termination function. * @param[in] user User parameter to be passed to fct termination function.
* @return SSH_OK on success, SSH_ERROR otherwise. * @return SSH_OK on success, SSH_ERROR otherwise.
*/ */
int ssh_handle_packets_termination(ssh_session session, int timeout, int ssh_handle_packets_termination(ssh_session session,
ssh_termination_function fct, void *user){ int timeout,
int ret = SSH_OK; ssh_termination_function fct,
struct ssh_timestamp ts; void *user)
int tm; {
if (timeout == SSH_TIMEOUT_USER) { struct ssh_timestamp ts;
if (ssh_is_blocking(session)) int ret = SSH_OK;
timeout = ssh_make_milliseconds(session->opts.timeout, int tm;
session->opts.timeout_usec);
else if (timeout == SSH_TIMEOUT_USER) {
timeout = SSH_TIMEOUT_NONBLOCKING; if (ssh_is_blocking(session)) {
} else if (timeout == SSH_TIMEOUT_DEFAULT){ timeout = ssh_make_milliseconds(session->opts.timeout,
if(ssh_is_blocking(session)) session->opts.timeout_usec);
timeout = SSH_TIMEOUT_INFINITE; } else {
else timeout = SSH_TIMEOUT_NONBLOCKING;
timeout = SSH_TIMEOUT_NONBLOCKING; }
} } else if (timeout == SSH_TIMEOUT_DEFAULT) {
ssh_timestamp_init(&ts); if (ssh_is_blocking(session)) {
tm = timeout; timeout = SSH_TIMEOUT_INFINITE;
while(!fct(user)){ } else {
ret = ssh_handle_packets(session, tm); timeout = SSH_TIMEOUT_NONBLOCKING;
if(ret == SSH_ERROR) }
break; }
if(ssh_timeout_elapsed(&ts,timeout))
break; ssh_timestamp_init(&ts);
tm = ssh_timeout_update(&ts, timeout); tm = timeout;
} while(!fct(user)) {
return ret; ret = ssh_handle_packets(session, tm);
if (ret == SSH_ERROR) {
break;
}
if (ssh_timeout_elapsed(&ts,timeout)) {
break;
}
tm = ssh_timeout_update(&ts, timeout);
}
return ret;
} }
/** /**