aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2001-08-07 10:39:28 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2001-08-07 10:39:28 +0800
commit83b2e9c05c490db58c558c17e39c59ec2a6915eb (patch)
tree603f31eb8b8583a358083e040139b32b47e3ab9d /camel/providers
parent7216ef812939353bc70951c2a46b272f62a99372 (diff)
downloadgsoc2013-evolution-83b2e9c05c490db58c558c17e39c59ec2a6915eb.tar.gz
gsoc2013-evolution-83b2e9c05c490db58c558c17e39c59ec2a6915eb.tar.zst
gsoc2013-evolution-83b2e9c05c490db58c558c17e39c59ec2a6915eb.zip
Modify to take a headers_only argument which will then only fetch message
2001-08-06 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_get_message_stream): Modify to take a headers_only argument which will then only fetch message headers. (pop3_generate_uids): Pass in TRUE for headers_only. (pop3_get_message): Pass in FALSE for headers_only and move the camel_operation() stuff out of get_message_stream and in to here instead. (pop3_generate_uids): We also need to be using i+ 1 as the id since we are starting at 0. svn path=/trunk/; revision=11722
Diffstat (limited to 'camel/providers')
-rw-r--r--camel/providers/pop3/camel-pop3-folder.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/camel/providers/pop3/camel-pop3-folder.c b/camel/providers/pop3/camel-pop3-folder.c
index 2648a48a5b..c8dc315ac3 100644
--- a/camel/providers/pop3/camel-pop3-folder.c
+++ b/camel/providers/pop3/camel-pop3-folder.c
@@ -52,7 +52,7 @@ static void pop3_sync (CamelFolder *folder, gboolean expunge,
static gint pop3_get_message_count (CamelFolder *folder);
static GPtrArray *pop3_get_uids (CamelFolder *folder);
static CamelStreamMem *pop3_get_message_stream (CamelFolder *folder, int id,
- CamelException *ex);
+ gboolean headers_only, CamelException *ex);
static CamelMimeMessage *pop3_get_message (CamelFolder *folder,
const char *uid,
CamelException *ex);
@@ -159,7 +159,7 @@ pop3_generate_uids (CamelFolder *folder, int count, CamelException *ex)
guchar digest[16];
char *uid;
- stream = pop3_get_message_stream (folder, i, ex);
+ stream = pop3_get_message_stream (folder, i + 1, TRUE, ex);
if (stream == NULL)
goto exception;
@@ -317,16 +317,14 @@ uid_to_number (CamelPop3Folder *pop3_folder, const char *uid)
}
static CamelStreamMem *
-pop3_get_message_stream (CamelFolder *folder, int id, CamelException *ex)
+pop3_get_message_stream (CamelFolder *folder, int id, gboolean headers_only, CamelException *ex)
{
CamelStream *stream;
char *result, *body;
int status, total;
- camel_operation_start_transient (NULL, _("Retrieving POP message %d"), id);
-
status = camel_pop3_command (CAMEL_POP3_STORE (folder->parent_store),
- &result, ex, "RETR %d", id);
+ &result, ex, headers_only ? "TOP %d 0" : "RETR %d", id);
switch (status) {
case CAMEL_POP3_ERR:
camel_exception_setv (ex, CAMEL_EXCEPTION_SERVICE_UNAVAILABLE,
@@ -356,8 +354,6 @@ pop3_get_message_stream (CamelFolder *folder, int id, CamelException *ex)
stream = camel_stream_mem_new_with_buffer (body, strlen (body));
g_free (body);
- camel_operation_end (NULL);
-
return CAMEL_STREAM_MEM (stream);
}
@@ -375,7 +371,9 @@ pop3_get_message (CamelFolder *folder, const char *uid, CamelException *ex)
return NULL;
}
- stream = pop3_get_message_stream (folder, id, ex);
+ camel_operation_start_transient (NULL, _("Retrieving POP message %d"), id);
+ stream = pop3_get_message_stream (folder, id, FALSE, ex);
+ camel_operation_end (NULL);
if (stream == NULL)
return NULL;