aboutsummaryrefslogtreecommitdiff
path: root/lib/imap.c
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-03-05 19:52:11 +0000
committerSteve Holme <steve_holme@hotmail.com>2013-03-05 19:52:11 +0000
commitc29346613d4e3803d66da7b86eae752ba88b4bee (patch)
tree914d7f2bb7fff4b77c9fa846a966438d57e556b8 /lib/imap.c
parent172e6378f86962ea07e6cf9e6877c1791c3aa2f1 (diff)
imap: Moved mailbox check from the imap_do() function
In preparation for the addition of the LIST command, moved the mailbox check from imap_do() to imap_select() and imap_append().
Diffstat (limited to 'lib/imap.c')
-rw-r--r--lib/imap.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/imap.c b/lib/imap.c
index 503ed6d46..29784e9e8 100644
--- a/lib/imap.c
+++ b/lib/imap.c
@@ -692,6 +692,12 @@ static CURLcode imap_select(struct connectdata *conn)
Curl_safefree(imapc->mailbox);
Curl_safefree(imapc->mailbox_uidvalidity);
+ /* Check we have a mailbox */
+ if(!imap->mailbox) {
+ failf(conn->data, "Cannot SELECT without a mailbox.");
+ return CURLE_URL_MALFORMAT;
+ }
+
/* Make sure the mailbox is in the correct atom format */
mailbox = imap_atom(imap->mailbox);
if(!mailbox)
@@ -730,6 +736,12 @@ static CURLcode imap_append(struct connectdata *conn)
struct IMAP *imap = conn->data->state.proto.imap;
char *mailbox;
+ /* Check we have a mailbox */
+ if(!imap->mailbox) {
+ failf(conn->data, "Cannot APPEND without a mailbox.");
+ return CURLE_URL_MALFORMAT;
+ }
+
/* Check we know the size of the upload */
if(conn->data->set.infilesize < 0) {
failf(conn->data, "Cannot APPEND with unknown input file size\n");
@@ -1869,7 +1881,6 @@ static CURLcode imap_perform(struct connectdata *conn, bool *connected,
static CURLcode imap_do(struct connectdata *conn, bool *done)
{
CURLcode result = CURLE_OK;
- struct IMAP *imap;
*done = FALSE; /* default to false */
@@ -1882,8 +1893,6 @@ static CURLcode imap_do(struct connectdata *conn, bool *done)
if(result)
return result;
- imap = conn->data->state.proto.imap;
-
/* Parse the URL path */
result = imap_parse_url_path(conn);
if(result)
@@ -1894,12 +1903,6 @@ static CURLcode imap_do(struct connectdata *conn, bool *done)
if(result)
return result;
- /* Check we have a mailbox for FETCH and APPEND commands */
- if(!imap->custom && !imap->mailbox) {
- failf(conn->data, "FETCH and APPEND require a mailbox.");
- return CURLE_URL_MALFORMAT;
- }
-
result = imap_regular_transfer(conn, done);
return result;