Dan Winship [Sat, 17 Jun 2000 19:12:47 +0000 (19:12 +0000)]
Add some debugging printfs when rebulding summary to help figure out why
* providers/mbox/camel-mbox-summary.c: Add some debugging printfs
when rebulding summary to help figure out why people's summaries
are always being rebuilt.
Jeffrey Stedfast [Sat, 17 Jun 2000 19:00:58 +0000 (19:00 +0000)]
removed imap.c/h from providers/imap
began implementing search functionality
Jeffrey Stedfast [Sat, 17 Jun 2000 05:29:55 +0000 (05:29 +0000)]
Added code to expunge if called for (still need to finish coding this).
2000-06-16 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_sync): Added code
to expunge if called for (still need to finish coding this).
(imap_get_uids): Implemented.
(imap_get_summary): Found a way to get the date
(imap_summary_get_by_uid): Same.
(imap_free_summary): Implemented.
* string-utils.c (strstrcase): Fixed a compile warning
* providers/imap/camel-imap-summary.c: Removed - we don't
need a CamelImapSummary structure.
Dan Winship [Fri, 16 Jun 2000 23:09:43 +0000 (23:09 +0000)]
Move flag handling from CamelMimeMessage to CamelFolder. This
simplifies several flag-handling pieces of code in the mailer, and
lets you change a message's flags without having to fetch the
message body. It also means that fully-constructed
CamelMimeMessages are now essentially constant, which will help
simplify locking issues later since it means two threads
interested in the same message can just work with separate copies
of it.
* camel-mime-message.h (struct _CamelMimeMessage): Removed flags
and user_flags (moved to summary). Removed expunged and
message_number which were unused. Removed message_uid and folder
which are no longer needed in the new scheme.
(struct CamelMimeMessageClass): Removed message_changed signal and
get/set_message_number methods.
* camel-mime-message.c: Updates for CamelMimeMessage changes.
(camel_mime_message_get/set_flags,
camel_mime_message_get/set_user_flag): Replaced with methods in
CamelFolder.
(camel_flag_get, camel_flag_set, camel_flag_list_size,
camel_flag_list_free): Moved verbatim to camel-folder-summary.c
* camel-folder.c (camel_folder_get/set_message_flags,
camel_folder_get/set_message_user_flag): New methods (and
corresponding useless default implementations)
(camel_folder_class_init): add a message_changed signal
* camel-folder-summary.c (camel_flag_get, camel_flag_set,
camel_flag_list_size, camel_flag_list_free): Moved here from
camel-mime-message.c
* providers/mbox/camel-mbox-folder.c (message_changed): Removed.
(mbox_get_message_flags, mbox_set_message_flags,
mbox_get_message_user_flag, mbox_set_message_user_flag): Tweak
summary bits as appropriate. (Functionality moved here from
message_changed.)
(mbox_get_message_by_uid): Update for CamelMimeMessage changes
(less stuff to initialize).
* providers/imap/camel-imap-folder.c (message_changed): Remove
this. It was just copied from the mbox provider and doesn't deal
with the real IMAP flag stuff anyway. (So there's currently no
flag support in the IMAP provider.)
(imap_get_message_by_uid): Update for CamelMimeMessage changes.
* providers/vee/camel-vee-folder.c: (message_changed): Remove old
one. Add a new one to listen for message_changed on each folder
and re-emit message_changed signals that correspond to messages in
the vfolder.
(vee_get/set_message_flags, vee_get/set_message_user_flag): Proxy
flag setting to the underlying real messages.
(vee_append_message): Removed for now; there's no way to translate
this into the new CamelMimeMessage/CamelFolder scheme, but (a)
there's also no code which would ever call it and (b) we're
probably going want a better interface than append_message for
message drag and drop to work anyway. To be revisited.
Dan Winship [Fri, 16 Jun 2000 22:42:12 +0000 (22:42 +0000)]
KLUDGE! Since neither ETable nor GtkHTML supports UTF-8 yet, output
* camel-mime-utils.c (rfc2047_decode_word):
* camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser):
* camel-folder-summary.c (summary_build_content_info):
KLUDGE! Since neither ETable nor GtkHTML supports UTF-8 yet,
output ISO-8859-1 instead, so Ettore can read his Italian mail. :)
This will be reverted later.
Dan Winship [Fri, 16 Jun 2000 01:27:55 +0000 (01:27 +0000)]
document camel_folder_search_by_expression
Jeffrey Stedfast [Fri, 16 Jun 2000 00:20:45 +0000 (00:20 +0000)]
Started to code the imap summary stuff
Dan Winship [Thu, 15 Jun 2000 23:05:18 +0000 (23:05 +0000)]
Remove camel_service_connect_with_url. (URLs must be specified when the
* camel-service.c: Remove camel_service_connect_with_url. (URLs
must be specified when the service is requested from the session,
so that there can only ever be one service for any URL.)
Dan Winship [Thu, 15 Jun 2000 22:19:44 +0000 (22:19 +0000)]
Kill. Folders are now always open, and handle "closing" sorts of
* camel-folder.c: (camel_folder_open, camel_folder_is_open,
camel_folder_get_mode): Kill. Folders are now always open, and
handle "closing" sorts of operations at sync or finalize time.
(camel_folder_sync): renamed from camel_folder_close. Syncs state
to the store but doesn't necessarily close/disconnect.
* providers/*/camel-*-folder.c: Merge "open" methods into "init"
methods. Rename close to sync and update appropriately.
* providers/imap/camel-imap-store.c: Remove camel_imap_store_open
and camel_imap_store_close, which should not have been copied from
the POP provider (where the exist to work around limitations of
the POP protocol).
Dan Winship [Thu, 15 Jun 2000 22:18:48 +0000 (22:18 +0000)]
fix a bug. (don't expunge deleted messages if called with expunge ==
* providers/mbox/camel-mbox-summary.c: fix a bug. (don't expunge
deleted messages if called with expunge == FALSE)
Dan Winship [Thu, 15 Jun 2000 19:38:00 +0000 (19:38 +0000)]
Check server for various interesting extensions.
* providers/pop3/camel-pop3-store.c (connect_to_server): Check
server for various interesting extensions.
* providers/pop3/camel-pop3-folder.c (get_uids): If the server
supports UIDL, use real UIDs rather than fake ones.
(etc): Map uids back to numbers appropriately
Dan Winship [Thu, 15 Jun 2000 17:52:06 +0000 (17:52 +0000)]
Fix to previous change: make sure the "seek" variable ends up with the
* providers/mbox/camel-mbox-folder.c (mbox_append_message): Fix to
previous change: make sure the "seek" variable ends up with the
value it should.
* providers/mbox/camel-mbox-summary.c (summary_rebuild): Update
summary mtime as well as size.
Jeffrey Stedfast [Wed, 14 Jun 2000 05:10:53 +0000 (05:10 +0000)]
IMAP will now allow you to login, and on some IMAP providers it will actually allow you to get mail - however there are some things that might need to be rewritten in Camel to allow all IMAP providers to work
right now, it wants to open /INBOX which isn't always the same as INBOX
Camel won't seem to allow me to just have it open "INBOX" if I specify '/' as the separator
*sigh*
Jeffrey Stedfast [Wed, 14 Jun 2000 05:10:53 +0000 (05:10 +0000)]
Updated: a separator is now a char* rather than a single char because IMAP
2000-06-14 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (init): Updated: a separator is now a char* rather than
a single char because IMAP can have a string for a directory separator.
Also, since IMAP does not begin with a directory separator, there is a new
argument (path_begins_with_sep) which decides if a directory should begin
with a directory separator.
* providers/imap/camel-imap-store.c (imap_create): Since, on connect,
Camel tries to create INBOX (which already exists on every IMAP provider)
we can return TRUE when the folder name is "INBOX".
* providers/vee/camel-vee-folder.c (vee_init): Updated.
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Updated.
* providers/mbox/camel-mbox-store.c (get_folder): Updated.
* providers/mbox/camel-mbox-folder.c (mbox_init): Updated.
* providers/pop3/camel-pop3-folder.c (camel_pop3_folder_new): Updated.
Jeffrey Stedfast [Wed, 14 Jun 2000 05:10:53 +0000 (05:10 +0000)]
IMAP will now allow you to login, and on some IMAP providers it will actually allow you to get mail - however there are some things that might need to be rewritten in Camel to allow all IMAP providers to work
right now, it wants to open /INBOX which isn't always the same as INBOX
Camel won't seem to allow me to just have it open "INBOX" if I specify '/' as the separator
*sigh*
Dan Winship [Wed, 14 Jun 2000 05:10:52 +0000 (05:10 +0000)]
if the mbox doesn't end with a '\n', write one before appending the new
* providers/mbox/camel-mbox-folder.c (mbox_append_message): if the
mbox doesn't end with a '\n', write one before appending the new
message.
Jeffrey Stedfast [Wed, 14 Jun 2000 05:10:52 +0000 (05:10 +0000)]
updated the crlf filter:
encoder: allocate more memory (3 * len instead of 2 * len)
decoder: prevent p from pointing beyond the end of the buffer
Jeffrey Stedfast [Wed, 14 Jun 2000 05:10:52 +0000 (05:10 +0000)]
Took out the filter code ( we already filter in
* providers/pop3/camel-pop3-folder.c (get_message_by_uid): Took out the
filter code ( we already filter in camel_pop3_command_get_additional_data)
Jeffrey Stedfast [Wed, 14 Jun 2000 05:10:52 +0000 (05:10 +0000)]
Updated: a separator is now a char* rather than a single char because IMAP
2000-06-14 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (init): Updated: a separator is now a char* rather than
a single char because IMAP can have a string for a directory separator.
Also, since IMAP does not begin with a directory separator, there is a new
argument (path_begins_with_sep) which decides if a directory should begin
with a directory separator.
* providers/imap/camel-imap-store.c (imap_create): Since, on connect,
Camel tries to create INBOX (which already exists on every IMAP provider)
we can return TRUE when the folder name is "INBOX".
* providers/vee/camel-vee-folder.c (vee_init): Updated.
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Updated.
* providers/mbox/camel-mbox-store.c (get_folder): Updated.
* providers/mbox/camel-mbox-folder.c (mbox_init): Updated.
* providers/pop3/camel-pop3-folder.c (camel_pop3_folder_new): Updated.
Dan Winship [Wed, 14 Jun 2000 05:10:52 +0000 (05:10 +0000)]
Renamed from camel_mbox_summary_expunge. Takes a gboolean saying whether
* providers/mbox/camel-mbox-summary.c (camel_mbox_summary_sync):
Renamed from camel_mbox_summary_expunge. Takes a gboolean saying
whether to expunge or just sync the mbox file. Change some
g_errors to g_warning so we don't abort. Make the quick
X-Evolution updating code lseek around correctly. Update the
mbox mtime in the summary file even in the quick case.
* providers/mbox/camel-mbox-summary.h: make
CAMEL_MESSAGE_FOLDER_NOXEV not conflict with
CAMEL_MESSAGE_FOLDER_FLAGGED defined in camel-mime-message.h
* providers/mbox/camel-mbox-folder.c (mbox_close): call
camel_mbox_summary_sync to save flag state if not expunging.
(mbox_expunge): Update for camel_mbox_summary_expunge rename.
Jeffrey Stedfast [Wed, 14 Jun 2000 05:10:52 +0000 (05:10 +0000)]
IMAP will now allow you to login, and on some IMAP providers it will actually allow you to get mail - however there are some things that might need to be rewritten in Camel to allow all IMAP providers to work
right now, it wants to open /INBOX which isn't always the same as INBOX
Camel won't seem to allow me to just have it open "INBOX" if I specify '/' as the separator
*sigh*
Jeffrey Stedfast [Tue, 13 Jun 2000 00:27:30 +0000 (00:27 +0000)]
implemented a temp hack for the imap fetch by uid code
(works something like the POP code, should be fixed to work like we originally planned)
Jeffrey Stedfast [Mon, 12 Jun 2000 23:20:16 +0000 (23:20 +0000)]
Took out the filter code ( we already filter in
* providers/pop3/camel-pop3-folder.c (get_message_by_uid): Took out the
filter code ( we already filter in camel_pop3_command_get_additional_data)
Jeffrey Stedfast [Mon, 12 Jun 2000 23:20:16 +0000 (23:20 +0000)]
Updated: a separator is now a char* rather than a single char because IMAP
2000-06-14 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (init): Updated: a separator is now a char* rather than
a single char because IMAP can have a string for a directory separator.
Also, since IMAP does not begin with a directory separator, there is a new
argument (path_begins_with_sep) which decides if a directory should begin
with a directory separator.
* providers/imap/camel-imap-store.c (imap_create): Since, on connect,
Camel tries to create INBOX (which already exists on every IMAP provider)
we can return TRUE when the folder name is "INBOX".
* providers/vee/camel-vee-folder.c (vee_init): Updated.
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Updated.
* providers/mbox/camel-mbox-store.c (get_folder): Updated.
* providers/mbox/camel-mbox-folder.c (mbox_init): Updated.
* providers/pop3/camel-pop3-folder.c (camel_pop3_folder_new): Updated.
Jeffrey Stedfast [Mon, 12 Jun 2000 23:20:16 +0000 (23:20 +0000)]
pop provider now uses the crlf filter
Jeffrey Stedfast [Mon, 12 Jun 2000 23:20:16 +0000 (23:20 +0000)]
updated the crlf filter:
encoder: allocate more memory (3 * len instead of 2 * len)
decoder: prevent p from pointing beyond the end of the buffer
Jeffrey Stedfast [Mon, 12 Jun 2000 23:20:16 +0000 (23:20 +0000)]
pop provider now uses the crlf filter
Jeffrey Stedfast [Mon, 12 Jun 2000 22:34:28 +0000 (22:34 +0000)]
Removed the camel-mime-filter-smtp.h entry from Makefile.am - oops!
Jeffrey Stedfast [Mon, 12 Jun 2000 22:32:54 +0000 (22:32 +0000)]
Deprecated.
2000-06-12 Jeffrey Stedfast <fejj@helixcode.com>
* camel-mime-filter-smtp.c: Deprecated.
* providers/smtp/camel-smtp-transport.c (smtp_data): Updated to use
camel-mime-filter-crlf with my 'dot' extension in place of
camel-mime-filter-smtp
* camel-mime-part.c (write_to_stream): Updated to reflect changes
made to camel-mime-filter-crlf.c
* camel-mime-filter-crlf.c (filter): Modified to be able to
encode/decode dots ("\n.\n"<->"\n..\n"). Also fixed the decoder
so that it should no longer get caught in an infinite loop.
Dan Winship [Mon, 12 Jun 2000 20:59:32 +0000 (20:59 +0000)]
don't pass a second (incorrect) -rpath in addition to the (correct) one
* providers/*/Makefile.am: don't pass a second (incorrect) -rpath
in addition to the (correct) one automatically provided by
automake.
Dan Winship [Mon, 12 Jun 2000 16:49:59 +0000 (16:49 +0000)]
New filter to do CRLF<->LF conversion. (Currently only tested in the
* camel-mime-filter-crlf.c: New filter to do CRLF<->LF conversion.
(Currently only tested in the LF->CRLF direction.)
* camel-mime-part.c (write_to_stream): if content-type is text,
and it's QP or B64 encoded, pass through the CRLF filter before
the other filter to satisfy the "canonical encoding" rules in the
MIME spec.
Dan Winship [Fri, 9 Jun 2000 22:00:53 +0000 (22:00 +0000)]
Add another argument, "mode", which can be CAMEL_AUTHENTICATOR_ASK or
* camel-session.c (camel_session_query_authenticator): Add another
argument, "mode", which can be CAMEL_AUTHENTICATOR_ASK or
CAMEL_AUTHENTICATOR_TELL, so callers can get the app to un-cache
bad info.
* providers/pop3/camel-pop3-store.c (pop3_connect): uncache the
password if it doesn't work.
Jeffrey Stedfast [Fri, 9 Jun 2000 21:19:57 +0000 (21:19 +0000)]
Updated to reflect changes made in camel-imap-store.c
2000-06-09 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-stream.c (stream_read): Updated to reflect
changes made in camel-imap-store.c
* providers/imap/camel-imap-store.c (imap_create): No longer checks to
make sure a folder doesn't already exists (as this is no longer needed)
(camel_imap_command): Now takes a CamelFolder argument so it can detect
whether or not it needs to SELECT a folder or not
(camel_imap_command_extended): Same.
Jeffrey Stedfast [Fri, 9 Jun 2000 18:58:57 +0000 (18:58 +0000)]
Will now always send EHLO first, if that fails it will fall back on HELO.
2000-06-09 Jeffrey Stedfast <fejj@helixcode.com>
* providers/smtp/camel-smtp-transport.c (smtp_connect): Will now always
send EHLO first, if that fails it will fall back on HELO.
(esmtp_get_authtypes): Should now correctly parse authtypes.
Michael Zucci [Wed, 7 Jun 2000 23:57:18 +0000 (23:57 +0000)]
Initial datawrapper diagram.
Michael Zucci [Wed, 7 Jun 2000 23:55:26 +0000 (23:55 +0000)]
Parser state diagram.
Jeffrey Stedfast [Wed, 7 Jun 2000 23:00:34 +0000 (23:00 +0000)]
providers/imap/camel-imap-summary.c now builds
Jeffrey Stedfast [Wed, 7 Jun 2000 21:57:27 +0000 (21:57 +0000)]
Added rules to build camel-imap-stream
2000-06-07 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/Makefile.am: Added rules to build
camel-imap-stream
* providers/imap/camel-imap-store.c (get_folder): Update.
Moved imap_create here.
* providers/imap/camel-imap-folder.c (delete_messages): Remove.
(imap_create): Removed.
(imap_delete): Removed.
(imap_exists): Removed.
* providers/imap/camel-imap-stream.h: Added typedef's for the stream
* providers/imap/camel-imap-stream.c: Modified to build cleanly
Not Zed [Wed, 7 Jun 2000 21:40:52 +0000 (21:40 +0000)]
Properly dereference warning/debug messages. (header_references_decode):
2000-06-07 Not Zed <NotZed@HelixCode.com>
* camel-mime-utils.c (header_msgid_decode_internal): Properly
dereference warning/debug messages.
(header_references_decode): Check we actually have msgid stuff
before trying to decode it ...
Jeffrey Stedfast [Wed, 7 Jun 2000 00:37:10 +0000 (00:37 +0000)]
moved camel-imap-stream.* to providers/imap
added providers/imap/camel-imap-summary.c
Dan Winship [Wed, 7 Jun 2000 00:06:29 +0000 (00:06 +0000)]
Remove exists, create, delete. A CamelFolder now always references an
* camel-folder.c: Remove exists, create, delete. A CamelFolder
now always references an existing folder. Remove delete_messages
too since it wasn't being used. Add a "create" flag to
get_subfolder saying whether or not to create the subfolder if it
doesn't yet exist.
* camel-store.c (camel_store_get_folder): Add a "create" flag to
say whether or not to create the folder if it doesn't yet exist.
(camel_store_delete_folder): New method, moved from CamelFolder.
(cache_folder, uncache_folder): Fix up a bit.
(get_folder_name): Explain what this is for.
* providers/mbox/camel-mbox-folder.c:
* providers/mbox/camel-mbox-store.c: Update. Remove support for
hierarchical folders to simplify this for now, since we're not
using it, and it's not completely clear how they should work in an
ELocalStorage world. Needs to be revisited.
* providers/pop3/camel-pop3-folder.c (delete_messages): Remove.
* providers/pop3/camel-pop3-store.c (get_folder): Update.
* providers/vee/camel-vee-folder.c (exists): Remove.
* providers/vee/camel-vee-store.c (vee_get_folder): Update.
Jeffrey Stedfast [Wed, 7 Jun 2000 00:06:29 +0000 (00:06 +0000)]
Updated: a separator is now a char* rather than a single char because IMAP
2000-06-14 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (init): Updated: a separator is now a char* rather than
a single char because IMAP can have a string for a directory separator.
Also, since IMAP does not begin with a directory separator, there is a new
argument (path_begins_with_sep) which decides if a directory should begin
with a directory separator.
* providers/imap/camel-imap-store.c (imap_create): Since, on connect,
Camel tries to create INBOX (which already exists on every IMAP provider)
we can return TRUE when the folder name is "INBOX".
* providers/vee/camel-vee-folder.c (vee_init): Updated.
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Updated.
* providers/mbox/camel-mbox-store.c (get_folder): Updated.
* providers/mbox/camel-mbox-folder.c (mbox_init): Updated.
* providers/pop3/camel-pop3-folder.c (camel_pop3_folder_new): Updated.
Dan Winship [Wed, 7 Jun 2000 00:06:29 +0000 (00:06 +0000)]
Remove exists, create, delete. A CamelFolder now always references an
* camel-folder.c: Remove exists, create, delete. A CamelFolder
now always references an existing folder. Remove delete_messages
too since it wasn't being used. Add a "create" flag to
get_subfolder saying whether or not to create the subfolder if it
doesn't yet exist.
* camel-store.c (camel_store_get_folder): Add a "create" flag to
say whether or not to create the folder if it doesn't yet exist.
(camel_store_delete_folder): New method, moved from CamelFolder.
(cache_folder, uncache_folder): Fix up a bit.
(get_folder_name): Explain what this is for.
* providers/mbox/camel-mbox-folder.c:
* providers/mbox/camel-mbox-store.c: Update. Remove support for
hierarchical folders to simplify this for now, since we're not
using it, and it's not completely clear how they should work in an
ELocalStorage world. Needs to be revisited.
* providers/pop3/camel-pop3-folder.c (delete_messages): Remove.
* providers/pop3/camel-pop3-store.c (get_folder): Update.
* providers/vee/camel-vee-folder.c (exists): Remove.
* providers/vee/camel-vee-store.c (vee_get_folder): Update.
Dan Winship [Wed, 7 Jun 2000 00:06:28 +0000 (00:06 +0000)]
if the mbox doesn't end with a '\n', write one before appending the new
* providers/mbox/camel-mbox-folder.c (mbox_append_message): if the
mbox doesn't end with a '\n', write one before appending the new
message.
Jeffrey Stedfast [Wed, 7 Jun 2000 00:06:28 +0000 (00:06 +0000)]
Updated: a separator is now a char* rather than a single char because IMAP
2000-06-14 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder.c (init): Updated: a separator is now a char* rather than
a single char because IMAP can have a string for a directory separator.
Also, since IMAP does not begin with a directory separator, there is a new
argument (path_begins_with_sep) which decides if a directory should begin
with a directory separator.
* providers/imap/camel-imap-store.c (imap_create): Since, on connect,
Camel tries to create INBOX (which already exists on every IMAP provider)
we can return TRUE when the folder name is "INBOX".
* providers/vee/camel-vee-folder.c (vee_init): Updated.
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): Updated.
* providers/mbox/camel-mbox-store.c (get_folder): Updated.
* providers/mbox/camel-mbox-folder.c (mbox_init): Updated.
* providers/pop3/camel-pop3-folder.c (camel_pop3_folder_new): Updated.
Dan Winship [Wed, 7 Jun 2000 00:06:28 +0000 (00:06 +0000)]
Renamed from camel_mbox_summary_expunge. Takes a gboolean saying whether
* providers/mbox/camel-mbox-summary.c (camel_mbox_summary_sync):
Renamed from camel_mbox_summary_expunge. Takes a gboolean saying
whether to expunge or just sync the mbox file. Change some
g_errors to g_warning so we don't abort. Make the quick
X-Evolution updating code lseek around correctly. Update the
mbox mtime in the summary file even in the quick case.
* providers/mbox/camel-mbox-summary.h: make
CAMEL_MESSAGE_FOLDER_NOXEV not conflict with
CAMEL_MESSAGE_FOLDER_FLAGGED defined in camel-mime-message.h
* providers/mbox/camel-mbox-folder.c (mbox_close): call
camel_mbox_summary_sync to save flag state if not expunging.
(mbox_expunge): Update for camel_mbox_summary_expunge rename.
Dan Winship [Wed, 7 Jun 2000 00:06:28 +0000 (00:06 +0000)]
Remove exists, create, delete. A CamelFolder now always references an
* camel-folder.c: Remove exists, create, delete. A CamelFolder
now always references an existing folder. Remove delete_messages
too since it wasn't being used. Add a "create" flag to
get_subfolder saying whether or not to create the subfolder if it
doesn't yet exist.
* camel-store.c (camel_store_get_folder): Add a "create" flag to
say whether or not to create the folder if it doesn't yet exist.
(camel_store_delete_folder): New method, moved from CamelFolder.
(cache_folder, uncache_folder): Fix up a bit.
(get_folder_name): Explain what this is for.
* providers/mbox/camel-mbox-folder.c:
* providers/mbox/camel-mbox-store.c: Update. Remove support for
hierarchical folders to simplify this for now, since we're not
using it, and it's not completely clear how they should work in an
ELocalStorage world. Needs to be revisited.
* providers/pop3/camel-pop3-folder.c (delete_messages): Remove.
* providers/pop3/camel-pop3-store.c (get_folder): Update.
* providers/vee/camel-vee-folder.c (exists): Remove.
* providers/vee/camel-vee-store.c (vee_get_folder): Update.
Jeffrey Stedfast [Tue, 6 Jun 2000 22:55:06 +0000 (22:55 +0000)]
Changed the read and write method prototypes to return an ssize_t type
2000-06-06 Jeffrey Stedfast <fejj@helixcode.com>
* camel-stream.[c,h]: Changed the read and write method prototypes
to return an ssize_t type rather than an int and also changed
the 'number of bytes' to read or write to a size_t type
* camel-stream-fs.c: same as above
* camel-stream-mem.c: again, same as above
* camel-stream-buffer.c: same
* camel-imap-stream.[c,h]: Added this new stream, cache's previously
read data so each successive call will instead read from the cache
Jeffrey Stedfast [Tue, 6 Jun 2000 18:55:45 +0000 (18:55 +0000)]
worked on getting providers/imap/* to build cleanly, fixed a number of stupid errors and things like that
am commit'ing code since there are some volunteers that would like to work on imap
Dan Winship [Mon, 5 Jun 2000 19:04:03 +0000 (19:04 +0000)]
fix typo/braino (set "Content-Disposition", not "Content-Description")
* camel-mime-part.c (camel_mime_part_set_disposition): fix
typo/braino (set "Content-Disposition", not "Content-Description")
(camel_mime_part_set_filename): const poison
Not Zed [Fri, 2 Jun 2000 22:57:31 +0000 (22:57 +0000)]
Ick, damn signs! Fix a bug with sign extended bytes.
2000-06-02 Not Zed <NotZed@HelixCode.com>
* camel-mime-utils.c (base64_encode_step): Ick, damn signs! Fix a
bug with sign extended bytes.
* camel-mime-filter-smtp.c (filter): Changed layout/logic slightly
(to match From filter)
Jeffrey Stedfast [Fri, 2 Jun 2000 20:47:56 +0000 (20:47 +0000)]
Jeffrey Stedfast <fejj@helixcode.com>
* camel-mime-filter-smtp.c (filter): Fixed the filter so that it wouldn't
insert garbage under certain conditions.
Christopher James Lahey [Fri, 2 Jun 2000 19:15:22 +0000 (19:15 +0000)]
Don't ref the services in the cache.
2000-06-02 Christopher James Lahey <clahey@helixcode.com>
* camel-session.c: Don't ref the services in the cache.
Jeffrey Stedfast [Fri, 2 Jun 2000 19:07:21 +0000 (19:07 +0000)]
moved some debug print statements to better locations
Not Zed [Fri, 2 Jun 2000 18:09:18 +0000 (18:09 +0000)]
If we get a funny result, just throw it out. Basically a fix for the one
2000-06-02 Not Zed <NotZed@HelixCode.com>
* camel-mime-utils.c (header_decode_date): If we get a funny
result, just throw it out. Basically a fix for the one true
broken TradeClient.
2000-06-01 Not Zed <NotZed@HelixCode.com>
* camel-folder-summary.c (message_info_free): Free
references/messsage id.
(message_info_save): Save them.
(message_info_load): Load them.
(message_info_new): And get them from the new message.
(CAMEL_FOLDER_SUMMARY_VERSION): Bumped for new changes.
* camel-folder-summary.h: Added references and messageid to
summary.
Christopher James Lahey [Fri, 2 Jun 2000 16:12:26 +0000 (16:12 +0000)]
Ref and unref objects in the service cache properly.
2000-06-02 Christopher James Lahey <clahey@helixcode.com>
* camel-session.c: Ref and unref objects in the service cache
properly.
* camel-store.c: Ref the folder when returning it using
lookup_folder. Used the folder's full name for the key for the
folder cache since that's used to uncache it.
Dan Winship [Fri, 2 Jun 2000 06:34:58 +0000 (06:34 +0000)]
Fun with purify.
* providers/pop3/camel-pop3-store.c (pop3_connect): free msg on
success as well as failure.
(camel_pop3_command_get_additional_data): free buf after reading
the last line (".").
* providers/pop3/camel-pop3-folder.c (get_message_by_uid): free
body data after creating the memstream from it (which will copy
the data).
* providers/mbox/camel-mbox-folder.c (mbox_finalize): free summary
and index paths.
* camel-data-wrapper.c (finalize): unref the stream, if it exists.
Not Zed [Thu, 1 Jun 2000 22:08:07 +0000 (22:08 +0000)]
Fixes Bug 192.
2000-06-01 Not Zed <NotZed@HelixCode.com>
* camel-mime-part.c (construct_from_parser): For a message part,
set the default content-type to message/rfc822. Maybe needs to be
done for multiparts too?
2000-05-31 Not Zed <NotZed@HelixCode.com>
* camel-mime-message.c (construct_from_parser): Typo in assersion.
* camel-mime-parser.c (folder_scan_step): Use a default type of
message/rfc822 for multipart/digest. Bug Z192.
(folder_scan_drop_step): Remove warning.
Not Zed [Tue, 30 May 2000 22:35:40 +0000 (22:35 +0000)]
Init filter_from to NULL, for exception case. (mbox_get_message_by_uid):
2000-05-30 Not Zed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-folder.c (mbox_append_message): Init
filter_from to NULL, for exception case.
(mbox_get_message_by_uid): Cast off_t to long int for diagnostics.
* camel-url.c (camel_url_hash): Hash funciton for using camel
url's as hash keys.
(camel_url_equal): equal function for same.
* camel-session.c (camel_session_finalise): Free cached services.
(camel_session_init): Init service cache.
(service_cache_remove): destroy callback to remove a service from
the cache.
* camel-store.c (get_folder_internal): Remove the extra ref of the
folder. That seems the right behaviour ...?
(camel_store_get_type): Doh, actually call store init, so the
cache works.
(cache_folder): strdup the folder name! no wonder it never found
it again.
Dan Winship [Tue, 30 May 2000 22:35:40 +0000 (22:35 +0000)]
Renamed from camel_mbox_summary_expunge. Takes a gboolean saying whether
* providers/mbox/camel-mbox-summary.c (camel_mbox_summary_sync):
Renamed from camel_mbox_summary_expunge. Takes a gboolean saying
whether to expunge or just sync the mbox file. Change some
g_errors to g_warning so we don't abort. Make the quick
X-Evolution updating code lseek around correctly. Update the
mbox mtime in the summary file even in the quick case.
* providers/mbox/camel-mbox-summary.h: make
CAMEL_MESSAGE_FOLDER_NOXEV not conflict with
CAMEL_MESSAGE_FOLDER_FLAGGED defined in camel-mime-message.h
* providers/mbox/camel-mbox-folder.c (mbox_close): call
camel_mbox_summary_sync to save flag state if not expunging.
(mbox_expunge): Update for camel_mbox_summary_expunge rename.
Not Zed [Tue, 30 May 2000 22:35:40 +0000 (22:35 +0000)]
Init filter_from to NULL, for exception case. (mbox_get_message_by_uid):
2000-05-30 Not Zed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-folder.c (mbox_append_message): Init
filter_from to NULL, for exception case.
(mbox_get_message_by_uid): Cast off_t to long int for diagnostics.
* camel-url.c (camel_url_hash): Hash funciton for using camel
url's as hash keys.
(camel_url_equal): equal function for same.
* camel-session.c (camel_session_finalise): Free cached services.
(camel_session_init): Init service cache.
(service_cache_remove): destroy callback to remove a service from
the cache.
* camel-store.c (get_folder_internal): Remove the extra ref of the
folder. That seems the right behaviour ...?
(camel_store_get_type): Doh, actually call store init, so the
cache works.
(cache_folder): strdup the folder name! no wonder it never found
it again.
Jeffrey Stedfast [Tue, 30 May 2000 17:41:31 +0000 (17:41 +0000)]
Implemented a few more imap functions in providers/imap/camel-imap-folder.c
Michael Zucci [Tue, 30 May 2000 01:05:18 +0000 (01:05 +0000)]
diff -r1.206 ChangeLog
2a3,9
> * camel-store.c (camel_store_init): Move it to here. If this
> level is going to maintain it, it should set it up. Lets see what
> caching folders breaks :(
>
> * providers/pop3/camel-pop3-store.c (camel_pop3_store_init): Dont
> init folder cache here.
>
7a15,16
> (camel_mbox_summary_expunge): Remove some debug, and dont offset
> frompos?
Not Zed [Tue, 30 May 2000 00:50:23 +0000 (00:50 +0000)]
Make sure we copy messages which are still intact to the new folder.
2000-05-29 Not Zed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-summary.c
(camel_mbox_summary_expunge): Make sure we copy messages which are
still intact to the new folder.
(camel_mbox_summary_expunge): Update the frompos as well when
moving the content.
Michael Zucci [Mon, 29 May 2000 23:29:44 +0000 (23:29 +0000)]
> (message_changed): Track changes to the source message in the
> summary.
> (folder_changed): Track folder changes, re-query the folder that
> changed, and cascade the changed event as well.
> (camel_vee_folder_finalise): Free subfolder and subfolder summary.
Not Zed [Mon, 29 May 2000 20:38:55 +0000 (20:38 +0000)]
Check the searched folder is open before trying to search it.
2000-05-29 Not Zed <NotZed@HelixCode.com>
* providers/vee/camel-vee-folder.c (vee_folder_build): Check the
searched folder is open before trying to search it.
Dan Winship [Mon, 29 May 2000 19:32:29 +0000 (19:32 +0000)]
Fix up some glib precondition stuff. Try to set the URL in
* camel-service.c (camel_service_new): Fix up some glib
precondition stuff. Try to set the URL in camel_service_new before
checking whether or not it's "empty" so that you can successfully
set "sendmail:" as a URL.
Ross Golder [Mon, 29 May 2000 11:09:32 +0000 (11:09 +0000)]
Typo
Dan Winship [Sun, 28 May 2000 21:29:28 +0000 (21:29 +0000)]
Add a domain field to CamelProvider, to say what kind of data it provides.
* camel-provider.h: Add a domain field to CamelProvider, to say
what kind of data it provides.
* providers/imap/camel-imap-provider.c:
* providers/mbox/camel-mbox-provider.c:
* providers/pop3/camel-pop3-provider.c:
* providers/sendmail/camel-sendmail-provider.c:
* providers/smtp/camel-smtp-provider.c: Set domain to "mail".
* providers/nntp/camel-nntp-provider.c: Set domain to "news".
* providers/vee/camel-vee-provider.c: Set domain to "vfolder". (So
it doesn't end up being listed as a potential mail source in the
mail config wizard.)
Dan Winship [Sun, 28 May 2000 20:03:05 +0000 (20:03 +0000)]
(connect_to_server): Remove port number from error message since
it's not terribly useful and we were getting it from the wrong
place anyway.
Dan Winship [Sun, 28 May 2000 18:05:23 +0000 (18:05 +0000)]
Split apart password and APOP auth, since some servers seem to do both,
* providers/pop3/camel-pop3-store.c: Split apart password and APOP
auth, since some servers seem to do both, but don't really.
(connect_to_server): Renamed from try_connect. Now actually does
the connection up to the point of checking the greeting for APOP
support.
(query_auth_types): Return APOP, if appropriate. Call
pop3_disconnect after connect_to_server since we don't really want
to be connected.
(pop3_connect): Use connect_to_server rather than duplicating
code. Fix a one-byte buffer overrun in the APOP code.
(pop3_disconnect): Make this able to clean up after a partial
connect.
Dan Winship [Sun, 28 May 2000 17:36:54 +0000 (17:36 +0000)]
Use `foo@bar' rather than `"" <foo@bar>' for email addresses with no name
* camel-mime-utils.c (header_address_list_format_append): Use
`foo@bar' rather than `"" <foo@bar>' for email addresses with no
name component.
Ross Golder [Sun, 28 May 2000 11:56:20 +0000 (11:56 +0000)]
Added a missing smtp-related file to the dist.
Jeffrey Stedfast [Sat, 27 May 2000 21:57:41 +0000 (21:57 +0000)]
Ripped out camel_imap_command_get_additional_data() from camel-imap-store and implemented a number of methods in camel-imap-folder
Dan Winship [Fri, 26 May 2000 14:46:13 +0000 (14:46 +0000)]
Don't set a default boundary. Require the caller to do that.
* camel-multipart.c (camel_multipart_init): Don't set a default
boundary. Require the caller to do that.
(set_boundary): if boundary is NULL, generate a "random" boundary.
* camel-mime-part-utils.c
(camel_mime_part_construct_content_from_parser): Add a call to
camel_multipart_set_boundary after creating a new multipart.
Jeffrey Stedfast [Fri, 26 May 2000 01:10:54 +0000 (01:10 +0000)]
updated changelog to reflect changes I made in providers/imap
Jeffrey Stedfast [Fri, 26 May 2000 01:06:35 +0000 (01:06 +0000)]
Added initial code to camel-imap-folder.c
Jeffrey Stedfast [Fri, 26 May 2000 01:05:49 +0000 (01:05 +0000)]
Updated several imap source files
NotZed [Thu, 25 May 2000 23:25:35 +0000 (23:25 +0000)]
Replace simple data wrapper here too, oops.
2000-05-25 NotZed <NotZed@HelixCode.com>
* camel-mime-part-utils.c
(camel_mime_part_construct_content_from_parser): Replace simple
data wrapper here too, oops.
NotZed [Thu, 25 May 2000 21:40:58 +0000 (21:40 +0000)]
Removed camel-simple-data-wrapper again. Less code to maintain == better
2000-05-25 NotZed <NotZed@HelixCode.com>
* Makefile.am (libcamel_la_SOURCES): Removed
camel-simple-data-wrapper again. Less code to maintain == better
code.
* camel-data-wrapper.c (construct_from_stream): Fixes for bug
where text attachments dont work. Made data-wrapper concrete for
the second time.
Jeffrey Stedfast [Thu, 25 May 2000 17:42:53 +0000 (17:42 +0000)]
Took out code that had been there to reconnect to the server if it was not
2000-05-25 Jeffrey Stedfast <fejj@helixcode.com>
* providers/smtp/camel-smtp-transport.c (_send_to): Took out code
that had been there to reconnect to the server if it was not
already connected - Mailer code was fixed so that this should not
be needed.
* providers/imap/camel-imap-store.[c,h]: Initial code.
Dan Winship [Thu, 25 May 2000 00:46:02 +0000 (00:46 +0000)]
Re-add camel-simple-data-wrapper.h, which was removed for some reason.
* camel.h: Re-add camel-simple-data-wrapper.h, which was removed
for some reason.
Jeffrey Stedfast [Thu, 25 May 2000 00:04:11 +0000 (00:04 +0000)]
Added more files to the imap provider to use as an outline - will likely need heavy editing later in development
This is mostly meant as guidance to both me and any volunteers that start working on imap
EDT 2000 Jeffrey Stedfast [Wed, 24 May 2000 22:10:27 +0000 (22:10 +0000)]
Fixes to make the SMTP transport thread-safe
Wed May 24 18:09:26 EDT 2000 Jeffrey Stedfast <fejj@helixcode.com>
* providers/smtp/camel-smtp-transport.[c,h]: Fixes to make the
SMTP transport thread-safe
EDT 2000 Jeffrey Stedfast [Tue, 23 May 2000 21:54:35 +0000 (21:54 +0000)]
Added debug fprintfs, tested with a few messages (smtp_data): Fixed to use
Tue May 23 17:49:21 EDT 2000 Jeffrey Stedfast <fejj@helixcode.com>
* providers/smtp/camel-smtp-transport.c: Added debug fprintfs, tested with a few messages
(smtp_data): Fixed to use data_wrapper_write_to_stream()
* camel-mime-filter-smtp.c (filter): Modified to escape all lines
beginning with a '.' and to place \r before each \n if one did
not previously exist. Removed code to escape "From " as it was found to not be needed
* providers/imap/.cvsignore: added file
Ettore Perazzoli [Tue, 23 May 2000 10:23:05 +0000 (10:23 +0000)]
Shut up.
Jeffrey Stedfast [Tue, 23 May 2000 06:11:04 +0000 (06:11 +0000)]
stuff
Jeffrey Stedfast [Tue, 23 May 2000 04:48:13 +0000 (04:48 +0000)]
stuff
Jeffrey Stedfast [Tue, 23 May 2000 04:08:36 +0000 (04:08 +0000)]
stuff dude
Jeffrey Stedfast [Tue, 23 May 2000 03:47:23 +0000 (03:47 +0000)]
junk
Jeffrey Stedfast [Tue, 23 May 2000 03:28:09 +0000 (03:28 +0000)]
changelog
Jeffrey Stedfast [Tue, 23 May 2000 03:26:36 +0000 (03:26 +0000)]
more stuff
Jeffrey Stedfast [Tue, 23 May 2000 03:05:19 +0000 (03:05 +0000)]
changelog
Jeffrey Stedfast [Tue, 23 May 2000 03:04:19 +0000 (03:04 +0000)]
stuff
Jeffrey Stedfast [Tue, 23 May 2000 02:57:31 +0000 (02:57 +0000)]
dude, just stuff
Jeffrey Stedfast [Mon, 22 May 2000 18:14:39 +0000 (18:14 +0000)]
added camel-mime-filter-smtp.[c,h] and made mods to camel-mime-filter-from.c
NotZed [Fri, 19 May 2000 19:58:41 +0000 (19:58 +0000)]
> searchpart = strchr(namepart, '?');
2000-05-19 NotZed <NotZed@HelixCode.com>
* camel-simple-data-wrapper.c (construct_from_stream): If we
already have been constructed, unref our content.
(write_to_stream): Check we've been constructued, and change for
stream api changes.
* camel-mime-parser.c: Removed exception stuff.
* md5-utils.c (md5_get_digest_from_stream): repaired.
* camel-mime-message.c: Remove exception from write_to_stream, and
fix, and fix formatting.
* providers/sendmail/camel-sendmail-transport.c (_send_internal):
Fix for stream changes.
* providers/pop3/camel-pop3-store.c (camel_pop3_command): Fixes
for stream changes.
* providers/mbox/camel-mbox-folder.c, and elsewhere, fix all
stream api changes.
(mbox_append_message): Use stream_close() now its back.
(mbox_append_message): unref the from filter.
* camel-stream-mem.c: And here.
* camel-stream-fs.[ch]: Here too.
* camel-stream-filter.c: Likewise. This is getting tedious.
* camel-stream-buffer.c (stream_write): Fix a few little problems.
(stream_close): Reimplmeent.
(camel_stream_buffer_read_line): Slightly more efficient version,
that also only allocates the right amount of memory for strings.
* camel-seekable-substream.c: Likewise.
* camel-seekable-stream.[ch]: Remove exceptions, fix formatting,
changes for stream (re)fixes. set_bounds returns an error.
* camel-stream.[ch]: Remove exceptions. Make flush and reset return
an error code, repair all the screwed up formatting, and put back
close.
* camel-mime-part-utils.c
(camel_mime_part_construct_content_from_parser): And here.
* camel-mime-part.c (camel_mime_part_set_content): And this too.
(write_to_stream): Fixed for stream changes.
* camel.h: Fixed.
* providers/vee/camel-vee-folder.c (vee_search_by_expression):
Implement. Performs an intersection of the two searches.
(camel_vee_folder_finalise): Unref search folders.
(vee_append_message): Implement append.
Dan Winship [Fri, 19 May 2000 00:47:36 +0000 (00:47 +0000)]
remove message_number_capability and require uid capatibility.
* camel-folder.c: remove message_number_capability and require uid
capatibility.
(camel_folder_list_subfolders, camel_folder_get_uid_list,
camel_folder_get_subfolder_info, camel_folder_get_message_info):
removed
(camel_folder_get_subfolder_names,
camel_folder_free_subfolder_names): new subfolder interfaces.
(camel_folder_get_uids, camel_folder_free_uids): new uid
interfaces
(camel_folder_get_summary, camel_folder_free_summary): new summary
interfaces
* providers/mbox/camel-mbox-folder.c,
* providers/nntp/camel-nntp-folder.c:
* providers/vee/camel-vee-folder.c: Update for changes
* providers/pop3/camel-pop3-folder.c: Implement get_uids, update
for other changes.
Dan Winship [Thu, 18 May 2000 23:39:57 +0000 (23:39 +0000)]
add urls file
NotZed [Thu, 18 May 2000 22:40:24 +0000 (22:40 +0000)]
Guess!
2000-05-18 NotZed <NotZed@HelixCode.com>
* providers/vee/camel-vee-folder.c: Guess!
* camel-folder-search.c (search_user_flag): Implement user_flag
search term.
* camel-folder-search.h: Added user_flag search capability
(user-flag "blah")
* providers/mbox/camel-mbox-folder.c (mbox_init): Set USER flag in
permanent flags for the folder.