gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 148/173: sftp: improved checks for create dir failu


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 148/173: sftp: improved checks for create dir failures
Date: Fri, 24 Feb 2017 14:02:50 +0100

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to annotated tag gnurl-7.53.1
in repository gnurl.

commit af30f1152d43dcdb55978f0ee337775f43f2fd0b
Author: Jean Gressmann <address@hidden>
AuthorDate: Sun Feb 19 11:02:15 2017 +0100

    sftp: improved checks for create dir failures
    
    Since negative values are errors and not only -1. This makes SFTP upload
    with --create-dirs work (again).
    
    Closes #1269
---
 lib/ssh.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/ssh.c b/lib/ssh.c
index 5ed036a1e..086d40ecd 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -918,6 +918,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, 
bool *block)
                                          &err_msg, NULL, 0);
         infof(data, "SSH public key authentication failed: %s\n", err_msg);
         state(conn, SSH_AUTH_PASS_INIT);
+        rc = 0; /* clear rc and continue */
       }
       break;
 
@@ -928,6 +929,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, 
bool *block)
       }
       else {
         state(conn, SSH_AUTH_HOST_INIT);
+        rc = 0; /* clear rc and continue */
       }
       break;
 
@@ -989,6 +991,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, 
bool *block)
         if(rc < 0) {
           infof(data, "Failure connecting to agent\n");
           state(conn, SSH_AUTH_KEY_INIT);
+          rc = 0; /* clear rc and continue */
         }
         else {
           state(conn, SSH_AUTH_AGENT_LIST);
@@ -1008,6 +1011,7 @@ static CURLcode ssh_statemach_act(struct connectdata 
*conn, bool *block)
       if(rc < 0) {
         infof(data, "Failure requesting identities to agent\n");
         state(conn, SSH_AUTH_KEY_INIT);
+        rc = 0; /* clear rc and continue */
       }
       else {
         state(conn, SSH_AUTH_AGENT);
@@ -1800,6 +1804,7 @@ static CURLcode ssh_statemach_act(struct connectdata 
*conn, bool *block)
                   (data->set.ftp_create_missing_dirs &&
                    (strlen(sftp_scp->path) > 1))) {
             /* try to create the path remotely */
+            rc = 0; /* clear rc and continue */
             sshc->secondCreateDirs = 1;
             state(conn, SSH_SFTP_CREATE_DIRS_INIT);
             break;
@@ -1936,7 +1941,7 @@ static CURLcode ssh_statemach_act(struct connectdata 
*conn, bool *block)
       }
       *sshc->slash_pos = '/';
       ++sshc->slash_pos;
-      if(rc == -1) {
+      if(rc < 0) {
         /*
          * Abort if failure wasn't that the dir already exists or the
          * permission was denied (creation might succeed further down the
@@ -1951,6 +1956,9 @@ static CURLcode ssh_statemach_act(struct connectdata 
*conn, bool *block)
           sshc->actualcode = result?result:CURLE_SSH;
           break;
         }
+        else {
+          rc = 0; /* clear rc and continue */
+        }
       }
       state(conn, SSH_SFTP_CREATE_DIRS);
       break;

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]