diff options
author | Not Zed <NotZed@Ximian.com> | 2002-05-31 09:05:47 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2002-05-31 09:05:47 +0800 |
commit | 1c309b14c41ba3305bc72404fa290769251fda4a (patch) | |
tree | 6eb6042a5fe1d8695cd1508e2b7c1c0e98b5e0ef /camel/camel-stream-filter.c | |
parent | 29a8c80e9323ef2406c2b237a6a6058639fd4cb2 (diff) | |
download | gsoc2013-evolution-1c309b14c41ba3305bc72404fa290769251fda4a.tar.gz gsoc2013-evolution-1c309b14c41ba3305bc72404fa290769251fda4a.tar.zst gsoc2013-evolution-1c309b14c41ba3305bc72404fa290769251fda4a.zip |
Added a protocol field for users to use.
2002-05-30 Not Zed <NotZed@Ximian.com>
* camel-cipher-context.h: Added a protocol field for users to use.
* camel-stream-filter.c (do_read): Sigh, the pre-size is READ_PAD
not READ_SIZE. Big difference.
(READ_PAD): Bumped upto 128 from 64, so we can fit a typical line
in full.
* providers/imap/camel-imap-folder.c (get_content): Changed to
load multipart/signed as an opaque block into the right kind of
object.
* camel-multipart.h (struct _CamelMultipart): Removed the boundary
field. It wans't actually used anywhere.
* camel-seekable-substream.c
(camel_seekable_substream_new_with_seekable_stream_and_bounds):
Shortened this stupidly long name to just :new(), its the only way
its ever used. Fixed all callers.
* camel-multipart-signed.[ch]: new wrapper for multipart/signed
types. We need to treat the entire content as a blob of data for
transport purposes. This also cleans up a lot of the sign/verify
handling.
* camel-mime-part-utils.c
(camel_mime_part_construct_content_from_parser): Just call
camel_multipart_construct_from_parser for multipart parts, also
use a multipart_signed for multipart/signed types.
* camel-multipart.c (camel_multipart_construct_from_parser): New
virtual function for multiparts to buld themselves.
(construct_from_parser): Implement for normal multiparts.
(toplevel): Got rid of a warning, it'll never be an abstract
class.
* camel-pgp-context.c (pgp_hash_to_id):
(pgp_id_to_hash): Implement.
(camel_pgp_context_init): Init the pgp protocol specifier.
* camel-cipher-context.c (camel_cipher_id_to_hash):
(camel_cipher_hash_to_id): Util virtual methods to handle the
cipher id string.
* camel-mime-filter-canon.[ch]: A new filter, end/start of line
canonicalisation filter. Can escape "From " and strip trailing
whitespace, and canonicalise the end of line to crlf or to lf.
2002-05-29 Not Zed <NotZed@Ximian.com>
* camel-multipart.h (struct _CamelMultipart): Removed the
'parent', nothing used it, anywhere. Cleaned up some formatting
slightly.
svn path=/trunk/; revision=17057
Diffstat (limited to 'camel/camel-stream-filter.c')
-rw-r--r-- | camel/camel-stream-filter.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/camel/camel-stream-filter.c b/camel/camel-stream-filter.c index b325aea1f1..bcb572278d 100644 --- a/camel/camel-stream-filter.c +++ b/camel/camel-stream-filter.c @@ -25,6 +25,10 @@ #define d(x) /*#include <stdio.h>*/ +/* use my malloc debugger? */ +/*extern void g_check(void *mp);*/ +#define g_check(x) + struct _filter { struct _filter *next; int id; @@ -44,7 +48,7 @@ struct _CamelStreamFilterPrivate { int last_was_read; /* was the last op read or write? */ }; -#define READ_PAD (64) /* bytes padded before buffer */ +#define READ_PAD (128) /* bytes padded before buffer */ #define READ_SIZE (4096) #define _PRIVATE(o) (((CamelStreamFilter *)(o))->priv) @@ -211,8 +215,10 @@ do_read (CamelStream *stream, char *buffer, size_t n) p->last_was_read = TRUE; + g_check(p->realbuffer); + if (p->filteredlen<=0) { - int presize = READ_SIZE; + int presize = READ_PAD; size = camel_stream_read(filter->source, p->buffer, READ_SIZE); if (size <= 0) { @@ -224,6 +230,7 @@ do_read (CamelStream *stream, char *buffer, size_t n) while (f) { camel_mime_filter_complete(f->filter, p->filtered, p->filteredlen, presize, &p->filtered, &p->filteredlen, &presize); + g_check(p->realbuffer); f = f->next; } size = p->filteredlen; @@ -242,6 +249,7 @@ do_read (CamelStream *stream, char *buffer, size_t n) while (f) { camel_mime_filter_filter(f->filter, p->filtered, p->filteredlen, presize, &p->filtered, &p->filteredlen, &presize); + g_check(p->realbuffer); d(printf ("Filtered content (%s): '", camel_type_to_name(((CamelObject *)f->filter)->s.type))); @@ -258,6 +266,8 @@ do_read (CamelStream *stream, char *buffer, size_t n) p->filteredlen -= size; p->filtered += size; + g_check(p->realbuffer); + return size; } @@ -280,11 +290,15 @@ do_write (CamelStream *stream, const char *buf, size_t n) d(fwrite(buffer, sizeof(char), len, stdout)); d(printf("'\n")); + g_check(p->realbuffer); + f = p->filters; presize = 0; while (f) { camel_mime_filter_filter(f->filter, buffer, len, presize, &buffer, &len, &presize); + g_check(p->realbuffer); + d(printf ("Filtered content (%s): '", camel_type_to_name(((CamelObject *)f->filter)->s.type))); d(fwrite(buffer, sizeof(char), len, stdout)); @@ -296,6 +310,8 @@ do_write (CamelStream *stream, const char *buf, size_t n) if (camel_stream_write(filter->source, buffer, len) != len) return -1; + g_check(p->realbuffer); + return n; } |