diff --git a/src/ftp.c b/src/ftp.c index 39f20fa..359cbce 100644 --- a/src/ftp.c +++ b/src/ftp.c @@ -360,11 +360,10 @@ getftp (struct url *u, struct url *original_url, *qtyread = restval; user = u->user; - passwd = u->passwd; - search_netrc (u->host, (const char **)&user, (const char **)&passwd, 1); user = user ? user : (opt.ftp_user ? opt.ftp_user : opt.user); + passwd = opt.passwd ? opt.passwd : (u->passwd ? u->passwd : opt.ftp_passwd); + if(!user && !passwd) search_netrc (u->host, (const char **)&user, (const char **)&passwd, 1); if (!user) user = "anonymous"; - passwd = passwd ? passwd : (opt.ftp_passwd ? opt.ftp_passwd : opt.passwd); if (!passwd) passwd = "-wget@"; dtsock = -1; diff --git a/src/http.c b/src/http.c index 7e2c4ec..9de5cc0 100644 --- a/src/http.c +++ b/src/http.c @@ -1877,10 +1877,9 @@ initialize_request (const struct url *u, struct http_stat *hs, int *dt, struct u /* Find the username and password for authentication. */ *user = u->user; - *passwd = u->passwd; - search_netrc (u->host, (const char **)user, (const char **)passwd, 0); *user = *user ? *user : (opt.http_user ? opt.http_user : opt.user); - *passwd = *passwd ? *passwd : (opt.http_passwd ? opt.http_passwd : opt.passwd); + *passwd = opt.passwd ? opt.passwd : (u->passwd ? u->passwd : opt.http_passwd); + if (!*user && !*passwd) search_netrc (u->host, (const char **)user, (const char **)passwd, 0); /* We only do "site-wide" authentication with "global" user/password * values unless --auth-no-challange has been requested; URL user/password