aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ftp.c5
-rw-r--r--lib/imap.c4
-rw-r--r--lib/url.c2
-rw-r--r--lib/urldata.h4
4 files changed, 9 insertions, 6 deletions
diff --git a/lib/ftp.c b/lib/ftp.c
index 52322dfaf..a0e928087 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -181,7 +181,7 @@ const struct Curl_handler Curl_handler_ftp = {
ZERO_NULL, /* readwrite */
PORT_FTP, /* defport */
CURLPROTO_FTP, /* protocol */
- PROTOPT_DUAL | PROTOPT_CLOSEACTION /* flags */
+ PROTOPT_DUAL | PROTOPT_CLOSEACTION | PROTOPT_NEEDSPWD /* flags */
};
@@ -206,7 +206,8 @@ const struct Curl_handler Curl_handler_ftps = {
ZERO_NULL, /* readwrite */
PORT_FTPS, /* defport */
CURLPROTO_FTP | CURLPROTO_FTPS, /* protocol */
- PROTOPT_SSL | PROTOPT_DUAL | PROTOPT_CLOSEACTION /* flags */
+ PROTOPT_SSL | PROTOPT_DUAL | PROTOPT_CLOSEACTION |
+ PROTOPT_NEEDSPWD /* flags */
};
#endif
diff --git a/lib/imap.c b/lib/imap.c
index 67f0328e4..b135443d3 100644
--- a/lib/imap.c
+++ b/lib/imap.c
@@ -129,7 +129,7 @@ const struct Curl_handler Curl_handler_imap = {
ZERO_NULL, /* readwrite */
PORT_IMAP, /* defport */
CURLPROTO_IMAP, /* protocol */
- PROTOPT_CLOSEACTION /* flags */
+ PROTOPT_CLOSEACTION | PROTOPT_NEEDSPWD /* flags */
};
@@ -154,7 +154,7 @@ const struct Curl_handler Curl_handler_imaps = {
ZERO_NULL, /* readwrite */
PORT_IMAPS, /* defport */
CURLPROTO_IMAP | CURLPROTO_IMAPS, /* protocol */
- PROTOPT_CLOSEACTION | PROTOPT_SSL /* flags */
+ PROTOPT_CLOSEACTION | PROTOPT_SSL | PROTOPT_NEEDSPWD /* flags */
};
#endif
diff --git a/lib/url.c b/lib/url.c
index 4771b3b97..038a02d43 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -4452,7 +4452,7 @@ static CURLcode set_userpass(struct connectdata *conn,
const char *user, const char *passwd)
{
/* If our protocol needs a password and we have none, use the defaults */
- if((conn->handler->protocol & (CURLPROTO_FTP|CURLPROTO_IMAP)) &&
+ if((conn->handler->flags & PROTOPT_NEEDSPWD) &&
!conn->bits.user_passwd) {
conn->user = strdup(CURL_DEFAULT_USER);
diff --git a/lib/urldata.h b/lib/urldata.h
index e78dbbf3c..f4b4bcc6c 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -703,7 +703,9 @@ struct Curl_handler {
the send function might need to be called while uploading, or vice versa.
*/
#define PROTOPT_DIRLOCK (1<<3)
-#define PROTOPT_NONETWORK (1<<4) /* protocol doesn't use the network! */
+#define PROTOPT_NONETWORK (1<<4) /* protocol doesn't use the network! */
+#define PROTOPT_NEEDSPWD (1<<5) /* needs a password, and if none is set it
+ gets a default */
/* return the count of bytes sent, or -1 on error */