mirror of
https://git.proxmox.com/git/libgit2
synced 2025-06-06 09:24:42 +00:00
Merge pull request #2456 from libgit2/cmn/ssh-send-everything
ssh: libssh2_channel_write() behaves like send()
This commit is contained in:
commit
de3cf801ce
@ -132,11 +132,22 @@ static int ssh_stream_write(
|
||||
size_t len)
|
||||
{
|
||||
ssh_stream *s = (ssh_stream *)stream;
|
||||
size_t off = 0;
|
||||
ssize_t ret = 0;
|
||||
|
||||
if (!s->sent_command && send_command(s) < 0)
|
||||
return -1;
|
||||
|
||||
if (libssh2_channel_write(s->channel, buffer, len) < LIBSSH2_ERROR_NONE) {
|
||||
do {
|
||||
ret = libssh2_channel_write(s->channel, buffer + off, len - off);
|
||||
if (ret < 0)
|
||||
break;
|
||||
|
||||
off += ret;
|
||||
|
||||
} while (off < len);
|
||||
|
||||
if (ret < 0) {
|
||||
ssh_error(s->session, "SSH could not write data");
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user