Reformat ssh_connector_fd_out_cb

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 832b94a660)
This commit is contained in:
Jakub Jelen
2023-02-28 17:35:15 +01:00
parent 0c725d7602
commit 44ceeb4d53

View File

@@ -326,35 +326,40 @@ static void ssh_connector_fd_in_cb(ssh_connector connector)
/** @internal
* @brief Callback called when a poll event is received on an output fd
*/
static void ssh_connector_fd_out_cb(ssh_connector connector){
static void
ssh_connector_fd_out_cb(ssh_connector connector)
{
unsigned char buffer[CHUNKSIZE];
ssize_t r;
ssize_t w;
ssize_t total = 0;
SSH_LOG(SSH_LOG_TRACE, "connector POLLOUT event for fd %d", connector->out_fd);
SSH_LOG(SSH_LOG_TRACE, "connector POLLOUT event for fd %d",
connector->out_fd);
if(connector->in_available){
if (connector->in_channel != NULL){
r = ssh_channel_read_nonblocking(connector->in_channel, buffer, CHUNKSIZE, 0);
if(r == SSH_ERROR){
if (connector->in_available) {
if (connector->in_channel != NULL) {
r = ssh_channel_read_nonblocking(connector->in_channel, buffer,
CHUNKSIZE, 0);
if (r == SSH_ERROR) {
ssh_connector_except_channel(connector, connector->in_channel);
return;
} else if(r == 0 && ssh_channel_is_eof(connector->in_channel)){
} else if (r == 0 && ssh_channel_is_eof(connector->in_channel)) {
close(connector->out_fd);
connector->out_fd = SSH_INVALID_SOCKET;
return;
} else if(r>0) {
} else if (r > 0) {
/* loop around write in case the write blocks even for CHUNKSIZE bytes */
while (total != r){
w = ssh_connector_fd_write(connector, buffer + total, r - total);
if (w < 0){
while (total != r) {
w = ssh_connector_fd_write(connector, buffer + total,
r - total);
if (w < 0) {
ssh_connector_except(connector, connector->out_fd);
return;
}
total += w;
}
}
} else if (connector->in_fd != SSH_INVALID_SOCKET){
} else if (connector->in_fd != SSH_INVALID_SOCKET) {
/* fallback on the socket input callback */
connector->out_wontblock = 1;
ssh_connector_fd_in_cb(connector);