summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2010-08-28 18:39:43 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2010-08-28 19:57:49 +0300
commiteea4191dbfe090237da49c01fb3b9924a1216621 (patch)
treef6c19fe92b053b8c31112be14340720beb836281
parent54602578633b24e84b0caf5be588cdeda8a3bd5c (diff)
downloadmailutils-eea4191dbfe090237da49c01fb3b9924a1216621.tar.gz
mailutils-eea4191dbfe090237da49c01fb3b9924a1216621.tar.bz2
pop3d: bugfixes.
* include/mailutils/message.h (mu_message_set_stream): Mark as deprecated. * pop3d/retr.c (pop3d_retr): Rewind the stream obtained from mu_message_get_stream. * pop3d/top.c (pop3d_top): Rewind the streams obtained from mu_body_get_stream and mu_header_get_stream.
-rw-r--r--include/mailutils/message.h4
-rw-r--r--pop3d/retr.c5
-rw-r--r--pop3d/top.c8
3 files changed, 13 insertions, 4 deletions
diff --git a/include/mailutils/message.h b/include/mailutils/message.h
index fcc4e5dbe..8a2416ff5 100644
--- a/include/mailutils/message.h
+++ b/include/mailutils/message.h
@@ -55,7 +55,9 @@ extern int mu_message_set_body (mu_message_t, mu_body_t, void *);
extern int mu_message_get_stream (mu_message_t, mu_stream_t *)
__attribute__((deprecated));
extern int mu_message_get_streamref (mu_message_t, mu_stream_t *);
-extern int mu_message_set_stream (mu_message_t, mu_stream_t, void *);
+
+extern int mu_message_set_stream (mu_message_t, mu_stream_t, void *)
+ __attribute__((deprecated));
extern int mu_message_get_attribute (mu_message_t, mu_attribute_t *);
extern int mu_message_set_attribute (mu_message_t, mu_attribute_t, void *);
diff --git a/pop3d/retr.c b/pop3d/retr.c
index 8d3030de8..c5e44f501 100644
--- a/pop3d/retr.c
+++ b/pop3d/retr.c
@@ -45,7 +45,10 @@ pop3d_retr (char *arg)
return ERR_MESG_DELE;
/* FIXME: Use crlf filter + mu_stream_copy instead of the loop below */
- mu_message_get_stream (msg, &stream);
+ if (mu_message_get_stream (msg, &stream)
+ || mu_stream_seek (stream, 0, MU_SEEK_SET, NULL))
+ return ERR_UNKNOWN;
+
pop3d_outf ("+OK\r\n");
prev_nl = 1;
diff --git a/pop3d/top.c b/pop3d/top.c
index 0506a6429..c51356d84 100644
--- a/pop3d/top.c
+++ b/pop3d/top.c
@@ -60,7 +60,9 @@ pop3d_top (char *arg)
/* Header. */
mu_message_get_header (msg, &hdr);
/* FIXME: Use crlf filter + mu_stream_copy instead of the below loop */
- mu_header_get_stream (hdr, &stream);
+ if (mu_header_get_stream (hdr, &stream)
+ || mu_stream_seek (stream, 0, MU_SEEK_SET, NULL))
+ return ERR_UNKNOWN;
n = 0;
while (mu_stream_readline (stream, buf, sizeof(buf), &n) == 0
&& n > 0)
@@ -82,7 +84,9 @@ pop3d_top (char *arg)
mu_message_get_body (msg, &body);
/* FIXME: Use the crlf filter + mu_stream_copy */
- mu_body_get_stream (body, &stream);
+ if (mu_body_get_stream (body, &stream)
+ || mu_stream_seek (stream, 0, MU_SEEK_SET, NULL))
+ return ERR_UNKNOWN;
n = 0;
while (mu_stream_readline (stream, buf, sizeof(buf), &n) == 0
&& n > 0 && lines > 0)

Return to:

Send suggestions and report system problems to the System administrator.