given passwords in netrc must be respected accordingly
authorDaniel Stenberg <daniel@haxx.se>
Mon, 20 Jan 2003 12:00:46 +0000 (12:00 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 20 Jan 2003 12:00:46 +0000 (12:00 +0000)
lib/url.c

index f1f35cd6b1602344c189e00743f196a66093465f..c743ed818a8f64c011657660efaedeb0719a2791 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -2491,9 +2491,6 @@ static CURLcode CreateConnection(struct SessionHandle *data,
           /* no name given, get the password only */
           sscanf(userpass, ":%127[^@]", data->state.passwd);
 
-        /* we have set the password */
-        data->state.passwdgiven = TRUE;
-
         if(data->state.user[0]) {
           char *newname=curl_unescape(data->state.user, 0);
           if(strlen(newname) < sizeof(data->state.user)) {
@@ -2510,6 +2507,9 @@ static CURLcode CreateConnection(struct SessionHandle *data,
             strcpy(data->state.passwd, newpasswd);
           }
           free(newpasswd);
+
+          /* we have set the password */
+          data->state.passwdgiven = TRUE;
         }
       }
     }
@@ -2538,15 +2538,18 @@ static CURLcode CreateConnection(struct SessionHandle *data,
       sscanf(data->set.userpwd+1, "%127[^\n]", data->state.passwd);
   }
 
-  if (data->set.use_netrc != CURL_NETRC_IGNORED &&
+  if ((data->set.use_netrc != CURL_NETRC_IGNORED) &&
       !data->state.passwdgiven) {  /* need passwd */
     if(Curl_parsenetrc(conn->hostname,
                        data->state.user,
                        data->state.passwd)) {
       infof(data, "Couldn't find host %s in the .netrc file, using defaults",
             conn->hostname);
-    } else
+    }
+    else {
       conn->bits.user_passwd = 1; /* enable user+password */
+      data->state.passwdgiven = TRUE;
+    }
   }
 
   /* if we have a user but no password, ask for one */