summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/transports/ssh.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/transports/ssh.c b/src/transports/ssh.c
index f2480b2cd..bb3843886 100644
--- a/src/transports/ssh.c
+++ b/src/transports/ssh.c
@@ -353,24 +353,31 @@ static int _git_ssh_setup_conn(
t->owner->cred_acquire_payload) < 0)
goto on_error;
} else {
- goto on_error;
- }
+ giterr_set(GITERR_NET, "Cannot set up SSH connection without credentials");
+ goto on_error;
+ }
assert(t->cred);
if (!user) {
user = git__strdup(default_user);
}
- if (_git_ssh_session_create(&session, s->socket) < 0)
+ if (_git_ssh_session_create(&session, s->socket) < 0) {
+ giterr_set(GITERR_NET, "Failed to initialize SSH session");
goto on_error;
-
- if (_git_ssh_authenticate_session(session, user, t->cred) < 0)
+ }
+
+ if (_git_ssh_authenticate_session(session, user, t->cred) < 0) {
+ giterr_set(GITERR_NET, "Failed to authenticate SSH session");
goto on_error;
-
+ }
+
channel = libssh2_channel_open_session(session);
- if (!channel)
- goto on_error;
-
+ if (!channel) {
+ giterr_set(GITERR_NET, "Failed to open SSH channel");
+ goto on_error;
+ }
+
libssh2_channel_set_blocking(channel, 1);
s->session = session;