]> granicus.if.org Git - curl/commitdiff
ssh-libssh: reduce excessive verbose output about pubkey auth
authorKamil Dudka <kdudka@redhat.com>
Tue, 14 Aug 2018 11:14:49 +0000 (13:14 +0200)
committerKamil Dudka <kdudka@redhat.com>
Tue, 14 Aug 2018 13:55:16 +0000 (15:55 +0200)
The verbose message "Authentication using SSH public key file" was
printed each time the ssh_userauth_publickey_auto() was called, which
meant each time a packet was transferred over network because the API
operates in non-blocking mode.

This patch makes sure that the verbose message is printed just once
(when the authentication state is entered by the SSH state machine).

lib/ssh-libssh.c

index cecf477ac344f2e60efc59ce7886a7c31ce2d584..f40f074b9877a823cee22058386be139baa61c03 100644 (file)
@@ -618,6 +618,7 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block)
         sshc->auth_methods = ssh_userauth_list(sshc->ssh_session, NULL);
         if(sshc->auth_methods & SSH_AUTH_METHOD_PUBLICKEY) {
           state(conn, SSH_AUTH_PKEY_INIT);
+          infof(data, "Authentication using SSH public key file\n");
         }
         else if(sshc->auth_methods & SSH_AUTH_METHOD_GSSAPI_MIC) {
           state(conn, SSH_AUTH_GSSAPI);
@@ -670,8 +671,6 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block)
 
       }
       else {
-        infof(data, "Authentication using SSH public key file\n");
-
         rc = ssh_userauth_publickey_auto(sshc->ssh_session, NULL,
                                          data->set.ssl.key_passwd);
         if(rc == SSH_AUTH_AGAIN) {