libssh2_channel_close man page
libssh2_channel_close — close a channel
int libssh2_channel_close(LIBSSH2_CHANNEL *channel);
channel - active channel stream to set closed status on.
Close an active data channel. In practice this means sending an SSH_MSG_CLOSE packet to the remote host which serves as instruction that no further data will be sent to it. The remote host may still send data back until it sends its own close message in response. To wait for the remote end to close its connection as well, follow this command with libssh2_channel_wait_closed(3)
Return 0 on success or negative on failure. It returns LIBSSH2_ERROR_EAGAIN when it would otherwise block. While LIBSSH2_ERROR_EAGAIN is a negative number, it isn't really a failure per se.
LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket.
libssh2_channel_eof(3), libssh2_channel_free(3), libssh2_channel_wait_closed(3).