Commit 1fcdcb4f by Carlos Martín Nieto

ssh: read from stderr if stdout is empty

When we fail to read from stdout, it's typically because the URL was
wrong and the server process has sent some output over its stderr
output.

Read that output and set the error message to whatever we read from it.
parent c7606541
......@@ -125,10 +125,17 @@ static int ssh_stream_read(
return -1;
if ((rc = libssh2_channel_read(s->channel, buffer, buf_size)) < LIBSSH2_ERROR_NONE) {
ssh_error(s->session, "SSH could not read data");;
ssh_error(s->session, "SSH could not read data");
return -1;
}
/* Having something in stderr is typically a not-found error */
if (rc == 0 && (rc = libssh2_channel_read_stderr(s->channel, buffer, buf_size)) > 0) {
giterr_set(GITERR_SSH, "%*s", rc, buffer);
return -1;
}
*bytes_read = rc;
return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment