aboutsummaryrefslogtreecommitdiffstats
path: root/camel/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* Set the IS_SOURCE provider flag.Jeffrey Stedfast2002-07-051-0/+3
| | | | | | | | | 2002-07-04 Jeffrey Stedfast <fejj@ximian.com> * providers/nntp/camel-nntp-provider.c: Set the IS_SOURCE provider flag. svn path=/trunk/; revision=17369
* Change all exceptions to report which POP server failed (and tried to makeJeffrey Stedfast2002-07-051-0/+6
| | | | | | | | | | 2002-07-04 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-store.c: Change all exceptions to report which POP server failed (and tried to make a few of the exceptions a bit more clear). svn path=/trunk/; revision=17367
* If we get an exception from the child sync, update the exception string soNot Zed2002-07-031-0/+16
| | | | | | | | | | | | | | | | | | | | 2002-07-03 Not Zed <NotZed@Ximian.com> * camel-vee-folder.c (vee_sync): If we get an exception from the child sync, update the exception string so we know where it really was. * camel-vee-store.c (change_folder): Util to emit created/deleted events. (vee_get_folder): If the folder has path elements, and its parents dont exist, create dummy no-select nodes. This is for bug #4246. (vee_delete_folder): Use change_folder() to save code. * providers/local/camel-mbox-folder.c (mbox_set_message_flags): Only set xevchange if we're storing status headers in pine format, so we dont do a full sync every time any flag changes. svn path=/trunk/; revision=17360
* Take a void object arg. (camel_object_remove_event): "Not Zed2002-07-031-0/+9
| | | | | | | | | | | | 2002-06-27 Not Zed <NotZed@Ximian.com> * camel-object.c (camel_object_hook_event): Take a void object arg. (camel_object_remove_event): " (camel_object_unhook_event): " (camel_object_trigger_event): ", also, execute events in the same order they were added, i.e. reverse hook-list order. svn path=/trunk/; revision=17359
* Don't use --no-auto-key-retrieve, this option has apparently beenJeffrey Stedfast2002-06-291-0/+6
| | | | | | | | | | 2002-06-28 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_get_argv): Don't use --no-auto-key-retrieve, this option has apparently been deprecated in gpg 1.0.7. svn path=/trunk/; revision=17321
* Loop on our reads while errno is EINTR or EAGAIN. Also make sure toJeffrey Stedfast2002-06-281-0/+4
| | | | | | | | | | | | | | | | | 2002-06-27 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_op_step): Loop on our reads while errno is EINTR or EAGAIN. Also make sure to completely read stdout and stderr by keeping better state. (gpg_ctx_parse_status): In the case of a NODATA response from gpg, try to use the diagnostics that gpg may have written to its stderr. (gpg_verify): Check that the gpg process has not exited. (gpg_ctx_op_wait): Make sure we haven't already exited (as by gpg_ctx_op_is_exited()) and if we have, retrieve the exit status from the gpg context. svn path=/trunk/; revision=17320
* Loop on our reads while errno is EINTR or EAGAIN. Also make sure toJeffrey Stedfast2002-06-281-0/+3
| | | | | | | | | | | | | 2002-06-27 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_op_step): Loop on our reads while errno is EINTR or EAGAIN. Also make sure to completely read stdout and stderr by keeping better state. (gpg_ctx_parse_status): In the case of a NODATA response from gpg, try to use the diagnostics that gpg may have written to its stderr. svn path=/trunk/; revision=17319
* Loop on our reads while errno is EINTR or EAGAIN. Also make sure toJeffrey Stedfast2002-06-281-1/+2
| | | | | | | | | | 2002-06-27 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_op_step): Loop on our reads while errno is EINTR or EAGAIN. Also make sure to completely read stdout and stderr by keeping better state. svn path=/trunk/; revision=17311
* Loop on our reads while errno is EINTR or EAGAIN.Jeffrey Stedfast2002-06-271-0/+5
| | | | | | | | | 2002-06-27 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_op_step): Loop on our reads while errno is EINTR or EAGAIN. svn path=/trunk/; revision=17307
* Removed.Jeffrey Stedfast2002-06-271-0/+13
| | | | | | | | | | | | | | | | | 2002-06-26 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.[c,h]: Removed. * camel-pgp-mime.c (pgp_mime_part_sign_restore_part): Removed. (pgp_mime_part_sign_prepare_part): Removed. (camel_pgp_mime_part_sign): Removed. (camel_pgp_mime_part_verify): Removed. (camel_pgp_mime_part_encrypt): Removed. (camel_pgp_mime_part_decrypt): Removed. (camel_pgp_mime_is_rfc2015_signed): Documented. (camel_pgp_mime_is_rfc2015_encrypted): Same. svn path=/trunk/; revision=17303
* Oops, this needs to take a userid argument.Jeffrey Stedfast2002-06-271-0/+3
| | | | | | | | | 2002-06-26 Jeffrey Stedfast <fejj@ximian.com> * camel-multipart-encrypted.c (camel_multipart_encrypted_encrypt): Oops, this needs to take a userid argument. svn path=/trunk/; revision=17299
* Removed (never did anything anyway).Jeffrey Stedfast2002-06-271-0/+8
| | | | | | | | | | | | | | 2002-06-26 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_clearsign): Removed (never did anything anyway). * camel-pgp-context.c (pgp_clearsign): Removed. * camel-cipher-context.c (camel_cipher_clearsign): Removed unused method. svn path=/trunk/; revision=17297
* New class implementing the multipart/encrypted content type. ContainsJeffrey Stedfast2002-06-271-0/+4
| | | | | | | | | | 2002-06-26 Jeffrey Stedfast <fejj@ximian.com> * camel-multipart-encrypted.[c,h]: New class implementing the multipart/encrypted content type. Contains methods for encrypting and decrypting a multipart/encrypted MIME object. svn path=/trunk/; revision=17296
* Check for NODATA too.Jeffrey Stedfast2002-06-271-0/+5
| | | | | | | | | 2002-06-26 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_parse_status): Check for NODATA too. svn path=/trunk/; revision=17295
* Remove the #include for camel-spoold-store.hJeffrey Stedfast2002-06-261-0/+5
| | | | | | | | | 2002-06-25 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-local-provider.c: Remove the #include for camel-spoold-store.h svn path=/trunk/; revision=17285
* Include <sys/time.h> for struct timeval.Not Zed2002-06-261-0/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-06-26 Not Zed <NotZed@Ximian.com> * camel-gpg-context.c: Include <sys/time.h> for struct timeval. * providers/local/camel-local-provider.c (camel_provider_module_init): Removed spoold provider. The spool provider does it now. 2002-06-25 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-folder.c (camel_spool_folder_new): Support a new xstatus option - folders update/honour the Status/X-Status headers in addition to X-Evolution. * providers/local/camel-local-summary.c (camel_local_summary_write_headers): If supplied with an additional status or xstatus arg, write a Status header and/or X-Status. Also fix the case of properly terminating the headers if an xev line isn't supplied. * providers/local/Makefile.am (libcamellocalinclude_HEADERS,SOURCES): Removed spoold-store.[ch]. * providers/local/camel-local-provider.c (camel_provider_module_init): For the spoold type, just use the spool store instead. * providers/local/camel-spool-store.h: Added a type field, so the 1 store can implement different types without having to subclass. * providers/local/camel-spool-store.c (camel_spool_store_get_toplevel_dir): Removed, inherits from local store now. (construct): If we're pointing to a file, treat it as mbox mode, otherwise treat it as 'elm' mode. (get_folder): Only test for INBOX in mbox mode. (get_folder_info_elm): (get_folder_info_mbox): Two alternatives for getting folder info, depending on the type of folder we're looking at. (get_folder_info_mbox): Make the url include the protocol. (scan_dir): " * providers/local/camel-spoold-store.c (camel_spoold_store_get_toplevel_dir): Removed, inherits from local store now. * camel-folder.c (get_message_user_tag): Dont use a g_return_if_fail for info==NULL. This is not an error. (set_message_user_tag): And same here. (set_message_user_flag): Sigh, and here. (get_message_user_flag): And here. (set_message_flags): and here ... (get_message_flags): Dum de dum, de done at last. * providers/local/camel-mbox-folder.c (mbox_get_message): Check for new messages whenever we retrieve one. In the common no-update case, this is a single stat. (mbox_get_message): If we need to rescan, then force a full rescan to make sure it does the right thing. (mbox_get_message): Cleanup the exception handling a bit, if we do get an error, propagate any folder changes anyway as well. (mbox_set_message_user_flag): Argh more of these stupid g_returns taht shouldn't be. (mbox_set_message_user_tag): Here too. (mbox_set_message_flags): If the read flag is being changed, mark it as an xevchange (i.e. Status line change). * providers/local/camel-mbox-summary.c (summary_rebuild): Merged into summary_update. (summary_update): Changed to allow it to update existing lists of messages without clearing out the summary. (mbox_summary_check): Dont clear the summary, just re-scan. (message_info_new): Attempt to support the 'Status: RO' elm/pine thing. (camel_mbox_summary_encode_status): (camel_mbox_summary_decode_status): Util functions for creating/parsing the Status line. (camel_mbox_summary_sync_mbox): Write out the status line if we're going to try support it. (camel_mbox_summary_xstatus): Implement option to control read/write of (x-)status. (message_info_new): Do x-status stuff based on run-time option. (camel_mbox_summary_sync_mbox): " (mbox_summary_add): If x-status enabled, then always add status/x-status headers to message. * camel-folder-summary.c (summary_assign_uid): If the messageinfo is already in the summary, AND is the same messageinfo, dont do anything, return a value to indicate this. (camel_folder_summary_add): Do nothing if this info already in the summary, so we can perform updates. 2002-06-24 Not Zed <NotZed@Ximian.com> * providers/local/camel-local-summary.c (camel_local_summary_check_force): New method to force the next summary check to be a full check, set if a mismatch occurs. * camel-folder-summary.c (camel_folder_summary_load): If we have no summary path set, dont do any i/o, rather than abort. (camel_folder_summary_save): " (camel_folder_summary_header_load): " * providers/local/camel-spool-store.h: Inherit from camel mbox store, even if we override almost everything. * providers/local/camel-local-folder.c (camel_local_folder_construct): If the base path points to a file, use that as the folder path as well. * providers/local/camel-spool-folder.h: Inherit from camel-mbox-folder. * providers/local/camel-spool-summary.c (spool_summary_sync_full): Use camel_mbox_summary_sync_mbox to do most of the work. * providers/local/camel-spool-summary.[ch]: Make spool-summary inherit from mbox summary rather than foldersummary. * providers/local/camel-mbox-summary.c (mbox_summary_sync): Make sync_full/quick virtual methods. (camel_mbox_summary_sync_mbox): The full sync method put into a simple function that sync's from fd to fd. (mbox_summary_sync_full): Use summary_sync_mbox to do the real work. (mbox_summary_check): Create removed events if the folder gets cleared. Also, dont clear the summary before a rebuild, try to merge. svn path=/trunk/; revision=17284
* #include <sys/time.h>Jeffrey Stedfast2002-06-261-0/+4
| | | | | | | | 2002-06-25 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c: #include <sys/time.h> svn path=/trunk/; revision=17283
* Return the option as --digest-algo=<micalg> (gpg_ctx_parse_status): DecodeJeffrey Stedfast2002-06-251-0/+12
| | | | | | | | | | | | | | | | 2002-06-25 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_hash_str): Return the option as --digest-algo=<micalg> (gpg_ctx_parse_status): Decode more status information and keep track of trust and such. (gpg_ctx_op_complete): Make sure we aren't waiting for gpg to write data to stdout (such as encrypted/decrypted data or a signature). (gpg_encrypt): Remove the fejj@stampede.org hard-coded value (which had only meant to be for testing). svn path=/trunk/; revision=17271
* implemented camel_gpg_context_set_always_trust()Jeffrey Stedfast2002-06-251-0/+1
| | | | svn path=/trunk/; revision=17269
* Use --command-fd rather than --passphrase-fd since what we really want isJeffrey Stedfast2002-06-251-0/+2
| | | | | | | | | | | | | 2002-06-24 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_get_argv): Use --command-fd rather than --passphrase-fd since what we really want is an interactive mode (besides, --passphrase-fd requires a passphrase to be sent before --status-fd will send a NEED_PASSPHRASE status message). (gpg_ctx_parse_status): When we encounter a BAD_PASSPHRASE, tell the session to uncache it. svn path=/trunk/; revision=17268
* Use --command-fd rather than --passphrase-fd since what we really want isJeffrey Stedfast2002-06-251-0/+7
| | | | | | | | | | | 2002-06-24 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_get_argv): Use --command-fd rather than --passphrase-fd since what we really want is an interactive mode (besides, --passphrase-fd requires a passphrase to be sent before --status-fd will send a NEED_PASSPHRASE status message). svn path=/trunk/; revision=17267
* Check for ERRSIG also. (gpg_ctx_op_step): Don't try writing a passphraseJeffrey Stedfast2002-06-241-0/+7
| | | | | | | | | | | 2002-06-23 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_parse_status): Check for ERRSIG also. (gpg_ctx_op_step): Don't try writing a passphrase unless our operation requires it. svn path=/trunk/; revision=17263
* Return -1 on error. (gpg_decrypt): Same. (gpg_sign): Again here.Jeffrey Stedfast2002-06-231-0/+11
| | | | | | | | | | | | | | | 2002-06-22 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_encrypt): Return -1 on error. (gpg_decrypt): Same. (gpg_sign): Again here. (gpg_ctx_op_step): Only attenmpt to read from the status-fd if we are not already 'complete'. * camel-pgp-mime.c (camel_pgp_mime_part_encrypt): Flush the filtered stream. svn path=/trunk/; revision=17257
* New source files implementing the CamelCipherContext class for gnupg.Jeffrey Stedfast2002-06-221-0/+15
| | | | | | | | | | | | | | | | | | | 2002-06-21 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.[c,h]: New source files implementing the CamelCipherContext class for gnupg. * camel-pgp-context.c (camel_pgp_context_new): Return a CamelCipherContext. * camel-pgp-mime.c (camel_pgp_mime_part_decrypt): Take a CamelCipherContext argument rather than a CamelPgpContext since we now have a CamelGpgContext also. (camel_pgp_mime_part_encrypt): Same. (camel_pgp_mime_part_verify): Same. (camel_pgp_mime_part_sign): Same. svn path=/trunk/; revision=17251
* Updated to support searching as well as making it use CamelDigestSummary.Jeffrey Stedfast2002-06-211-0/+6
| | | | | | | | | | | | | | | | | 2002-06-20 Jeffrey Stedfast <fejj@ximian.com> * camel-digest-folder.c: Updated to support searching as well as making it use CamelDigestSummary. * camel-digest-summary.[c,h]: New class to handle the summary for CamelDigestFolder. * camel-tcp-stream-ssl.c (set_errno): PR_IO_TIMEOUT_ERROR should map to ETIMEDOUT and not EAGAIN. (stream_connect): Reset the PR_Poll() timeout back to 2 minutes as this wasn't the problem afterall. svn path=/trunk/; revision=17249
* PR_IO_TIMEOUT_ERROR should map to ETIMEDOUT and not EAGAIN.Jeffrey Stedfast2002-06-201-0/+7
| | | | | | | | | | | 2002-06-20 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (set_errno): PR_IO_TIMEOUT_ERROR should map to ETIMEDOUT and not EAGAIN. (stream_connect): Reset the PR_Poll() timeout back to 2 minutes as this wasn't the problem afterall. svn path=/trunk/; revision=17246
* Drop back to initial state if we came from eof state.Not Zed2002-06-201-0/+5
| | | | | | | | | 2002-06-19 Not Zed <NotZed@Ximian.com> * camel-mime-parser.c (folder_scan_drop_step): Drop back to initial state if we came from eof state. svn path=/trunk/; revision=17245
* Set the poll timeout to be PR_INTERVAL_MIN, this one shouldn't need to beJeffrey Stedfast2002-06-201-0/+4
| | | | | | | | | | 2002-06-19 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (stream_connect): Set the poll timeout to be PR_INTERVAL_MIN, this one shouldn't need to be 2 minutes (plus it blocks my connection at home for far too long). svn path=/trunk/; revision=17234
* Make sure we hold the command_lock before accessing current_folder.Jeffrey Stedfast2002-06-201-0/+15
| | | | | | | | | | | | | | | | | | | 2002-06-19 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_refresh_info): Make sure we hold the command_lock before accessing current_folder. (imap_append_online): Same. (imap_transfer_online): Same. * providers/imap/camel-imap-store.c (delete_folder): We need to hold the command_lock before we can set the current_folder to NULL. (rename_folder): Same. (get_folder_info_online): We need to make sure we hold the command_lock in order to use current_folder. (everywhere): Same. svn path=/trunk/; revision=17233
* Don't bother trying to authenticate (and thus don't throw up an errorJeffrey Stedfast2002-06-191-0/+12
| | | | | | | | | | | | | | | | 2002-06-19 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_connect): Don't bother trying to authenticate (and thus don't throw up an error dialog) unless the server is an ESMTP server and supports authentication. * camel-sasl-plain.c: Change the user-friendly name to PLAIN, this is what it should be. Not "Password" because user's immediately think that they need authentication when they see "Password" even if they don't need it at all. svn path=/trunk/; revision=17232
* Update the freeze state of the new source folder.Jeffrey Stedfast2002-06-181-0/+7
| | | | | | | | | | | 2002-06-17 Jeffrey Stedfast <fejj@ximian.com> * camel-vee-folder.c (camel_vee_folder_add_folder): Update the freeze state of the new source folder. (camel_vee_folder_remove_folder): Undo any freeze state that we have imposed on this source folder. svn path=/trunk/; revision=17216
* Freeze source folders. (vee_thaw): Thaw all source folders. Fixes bugJeffrey Stedfast2002-06-151-0/+3
| | | | | | | | | 2002-06-14 Jeffrey Stedfast <fejj@ximian.com> * camel-vee-folder.c (vee_freeze): Freeze source folders. (vee_thaw): Thaw all source folders. Fixes bug #24317. svn path=/trunk/; revision=17189
* Unlock the command_lock after each UID STORE command so that otherJeffrey Stedfast2002-06-151-0/+4
| | | | | | | | | | 2002-06-14 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_sync_online): Unlock the command_lock after each UID STORE command so that other (probably more important) threads can send their requests. svn path=/trunk/; revision=17188
* Fixed compiler warnings.Jeffrey Stedfast2002-06-151-0/+9
| | | | | | | | | | | | | | | 2002-06-14 Jeffrey Stedfast <fejj@ximian.com> * camel-arg.c: * camel-disco-diary.c: * camel-index-control.c: * camel-mime-part.c: * camel-pgp-mime.c: * camel-store.c: * camel-tcp-stream-ssl.c: * camel-text-index.c: Fixed compiler warnings. svn path=/trunk/; revision=17187
* Updated to use ctx->sign_protocol rather than ctx->protocol.Jeffrey Stedfast2002-06-151-0/+10
| | | | | | | | | | | | | | 2002-06-14 Jeffrey Stedfast <fejj@ximian.com> * camel-multipart-signed.c: Updated to use ctx->sign_protocol rather than ctx->protocol. * camel-cipher-context.h: Add an ecnryption protocol member. * camel-pgp-context.c (camel_pgp_context_init): Set the encryption protocol. svn path=/trunk/; revision=17186
* Our parent class is camel_vee_folder, not camel_folder, fix setting ofNot Zed2002-06-111-0/+25
| | | | | | | | | | | | | | | | | | | | | | | 2002-06-11 Not Zed <NotZed@Ximian.com> * camel-vtrash-folder.c (camel_vtrash_folder_class_init): Our parent class is camel_vee_folder, not camel_folder, fix setting of parent folder (unused anyway, but removes a run-time warning). 2002-06-06 Not Zed <NotZed@Ximian.com> * camel-folder-thread.c (thread_summary): Do the work here. (camel_folder_thread_messages_remove): Implement. Remove some uid's from the tree. Disalbe from build, for now. (remove_uid_node_rec): Actually do the work. (camel_folder_thread_messages_add): Implement. Add some summary items to the tree. Disable from build though. (camel_folder_thread_messages_apply): Make a thread tree built using camel_folder_thread_new() map to a new set of uids, preserving some order. Meant primarily to manage deleted + added uids in a user-friendly manner. svn path=/trunk/; revision=17164
* Use CAMEL_EXCEPTION_SYSTEM rather than '1' for clarity.Jeffrey Stedfast2002-06-091-0/+5
| | | | | | | | | 2002-06-09 Jeffrey Stedfast <fejj@ximian.com> * camel-multipart-signed.c (camel_multipart_signed_verify): Use CAMEL_EXCEPTION_SYSTEM rather than '1' for clarity. svn path=/trunk/; revision=17151
* Up the timeout on the connect code to 2 minutes.Jeffrey Stedfast2002-06-071-0/+5
| | | | | | | | | 2002-06-07 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (stream_connect): Up the timeout on the connect code to 2 minutes. svn path=/trunk/; revision=17140
* Parse "From: Dan Winship <danw>" (with no domain) in the way the senderDan Winship2002-06-071-0/+6
| | | | | | | | * camel-mime-utils.c (header_decode_mailbox): Parse "From: Dan Winship <danw>" (with no domain) in the way the sender meant it, even though it's completely wrong. svn path=/trunk/; revision=17137
* Remove the CONF_DEFAULT_PATH entry, as this is handled by the url configNot Zed2002-06-061-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-06-04 Not Zed <NotZed@Ximian.com> * providers/local/camel-local-provider.c: Remove the CONF_DEFAULT_PATH entry, as this is handled by the url config stuff. This made it basically impossible to configure any local folder from the gui. * providers/local/camel-local-folder.c (local_refresh_info): Force a refresh. Should work for all local folders to force them to refresh. * providers/local/camel-maildir-folder.c (maildir_refresh_info): Removed, moved into camel-local-folder. * providers/local/camel-mh-summary.c (mh_summary_next_uid_string): Once we assign or get a uid, tell the summary of this, so the next uid we get will be higher than any previously. * camel-object.c (camel_object_ref, camel_object_unref): I got sick of casting, these now take void * like they should, and perform their own run-time type checking. * providers/local/camel-mh-store.c (recursive_scan): Changed to use stat, not lstat (*shrug* maybe someone wants to softlink their maildir tree?). (inode_hash): (inode_equal): (inode_free): Copied from camel-maildir store (should put into camel-local-store or utils?). (recursive_scan): Changed to check for re-visiting inodes. Also, it builds the tree itself, rather than using folder_info_build. (add_folder): Changed to folder_info_new. (recursive_scan): Properly honour the recursive flag. Also, lookup unread count from folder. (folder_info_new): Init unread message count to -1, since we dont know yet. (folder_info_new): Take the name as an argument, and perform the merging here. (folders_update): Util func to add/remove folders from .folders file. I'm assuming its sorted. (get_folder): Add the folder to .folders if we created a new one, and if it exists. (delete_folder): Remove from .folders, etc. (folders_scan): If we have a .folders file, read and use that instead. (recursive_scan): Handle scanning from a particular directory properly. (rename_folder): Implement so we can track any changes to the .folders file if its turned on. ** Applied patch below from Greg Hudson. 2002-05-10 Greg Hudson <ghudson@mit.edu> * camel-mh-store.c (get_inbox, get_folder_info, recursive_scan, add_folder): Implement support for MH stores. * camel-mh-summary.c (mh_summary_check, sort_uid_cmp): Sort MH messages by message number (uid), like we sort maildir messages by date. * camel-local-provider.c (mh_provider): Turn on source and store flags. svn path=/trunk/; revision=17130
* Check that any unmatched operation is not concerning any vfolder. OtherNot Zed2002-06-031-0/+10
| | | | | | | | | | | | | | 2002-06-03 Not Zed <NotZed@Ximian.com> * camel-vee-folder.c (camel_vee_folder_add_folder): (folder_changed_change): (folder_changed_remove_uid): (folder_changed_add_uid): (vee_folder_build_folder): Check that any unmatched operation is not concerning any vfolder. Other vfolders should never be part of any unmatched handling. For #24615, and others probably. svn path=/trunk/; revision=17075
* setup/free the mech string.Not Zed2002-06-031-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-06-02 Not Zed <NotZed@Ximian.com> * camel-sasl.c (camel_sasl_new): (camel_sasl_finalize): setup/free the mech string. * camel-sasl.h: Added 'mech' mechanism string. 2002-06-01 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (imap_getv): Implement. Only the object_description arg. (camel_imap_folder_get_type): Init parent_class holder. * providers/local/camel-local-folder.c (local_getv): Implement, object_description arg. * camel-folder.c (folder_getv): Implement, add a bunch of args you can get -> camel_folder_get_unread_count etc will be going RSN i hope. (camel_folder_finalize): Free cached description string. * camel-object.c (cobject_getv): Implement CAMEL_OBJECT_ARG_DESCRIPTION, just return the classname of the object. (camel_object_getv): (camel_object_get): (camel_object_setv): (camel_object_set): Take object = void *, to simplify usage. (camel_object_setv): Removed unecessary locals. (camel_object_getv): Same. (camel_object_free): New method, free an arg, upto implementations whether args are static/const or not. (cobject_free): Implement a dummy do nothing free. 2002-05-31 Not Zed <NotZed@Ximian.com> * camel-vee-folder.c (camel_vee_folder_get_location): new function to get the real location (folder) (and uid) of a vfolder object. Using the folderinfo, since we already have it, maybe it should use the uid. svn path=/trunk/; revision=17073
* When the part is a multipart/signed, make sure to free the part_specJeffrey Stedfast2002-06-011-0/+4
| | | | | | | | | | 2002-05-31 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (get_content): When the part is a multipart/signed, make sure to free the part_spec before returning (the other types already did this properly). svn path=/trunk/; revision=17066
* Free the path buffer when we're done with it.Jeffrey Stedfast2002-06-011-0/+7
| | | | | | | | | | | | | 2002-05-31 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-message-cache.c (camel_imap_message_cache_get): Free the path buffer when we're done with it. * providers/imap/camel-imap-folder.c (imap_update_summary): Free the final tagged response buffer. svn path=/trunk/; revision=17065
* If we fail to read a literal, free the temporary string buffer.Jeffrey Stedfast2002-06-011-5/+3
| | | | | | | | | 2002-05-31 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-command.c (imap_read_untagged): If we fail to read a literal, free the temporary string buffer. svn path=/trunk/; revision=17063
* Revert my fix from the other day since camel_imap_command_response()Jeffrey Stedfast2002-06-011-0/+9
| | | | | | | | | | | | | | | 2002-05-31 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_rescan): Revert my fix from the other day since camel_imap_command_response() doesn't guarentee that resp will be set to NULL on error. * providers/imap/camel-imap-command.c (camel_imap_command_response): Use a different variable to get the return of imap_parse_untagged so that we don't lose the pointer to the original malloc'd respbuf buffer. svn path=/trunk/; revision=17061
* If we fail to be able to create a stream to insert into the cache, thenJeffrey Stedfast2002-06-011-0/+6
| | | | | | | | | | 2002-05-31 Jeffrey Stedfast <fejj@ximian.com> * camel-data-cache.c (camel_data_cache_get): If we fail to be able to create a stream to insert into the cache, then free the 'real' path. svn path=/trunk/; revision=17060
* Added a protocol field for users to use.Not Zed2002-05-311-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* On error, don't leak the GByteArray buffer.Jeffrey Stedfast2002-05-311-0/+3
| | | | | | | | | 2002-05-30 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (camel_imap_store_readline): On error, don't leak the GByteArray buffer. svn path=/trunk/; revision=17054
* Free the response before checking for errors. I'm not sure this'llJeffrey Stedfast2002-05-311-2/+9
| | | | | | | | | | | | | 2002-05-30 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_rescan): Free the response before checking for errors. I'm not sure this'll actually fix the memory leak here, but it might? Certainly can't hurt. * camel-block-file.c (camel_block_file_finalise): Destroy the blocks hash table. svn path=/trunk/; revision=17053
* Only free the LOGOUT response if it is non-NULL.Jeffrey Stedfast2002-05-301-0/+5
| | | | | | | | | 2002-05-29 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (connect_to_server): Only free the LOGOUT response if it is non-NULL. svn path=/trunk/; revision=17036
* Implement. Run a summary check to update for any newly arrived messages.Not Zed2002-05-291-0/+11
| | | | | | | | | | | | | 2002-05-28 Not Zed <NotZed@Ximian.com> * providers/local/camel-maildir-folder.c (maildir_refresh_info): Implement. Run a summary check to update for any newly arrived messages. * providers/local/camel-maildir-store.c (scan_dir): If we have a folder, execute a refresh_info on it, to suck in any new stuff. svn path=/trunk/; revision=17029
* Use the CamelMessageInfo rather than the CamelMimeMessage because theJeffrey Stedfast2002-05-291-0/+6
| | | | | | | | | | 2002-05-28 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_log): Use the CamelMessageInfo rather than the CamelMimeMessage because the message may not have been loaded (thus NULL). svn path=/trunk/; revision=17025
* On connection failure, unref the tcp stream.Jeffrey Stedfast2002-05-281-0/+19
| | | | | | | | | | | | | | | | | | | | | | | 2002-05-27 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (connect_to_server): On connection failure, unref the tcp stream. * providers/pop3/camel-pop3-store.c (connect_to_server): On connection failure, unref the tcp stream. * providers/imap/camel-imap-store.c (connect_to_server): On connection failure, unref the tcp stream. * providers/nntp/camel-nntp-store.c (nntp_store_query_auth_types): Our parent class is no longer CamelRemoteStore. (nntp_store_init): Same. (camel_nntp_store_get_type): Here too. (nntp_connect): Rewritten to try to connect via SSL. Also remove code using CamelRemoteStore. (camel_nntp_command): Don't call camel_remote_store_connected(). svn path=/trunk/; revision=17022
* Helps if we allocate enough space here. Also, start smoking the sameJeffrey Stedfast2002-05-251-0/+8
| | | | | | | | | | | | 2002-05-24 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (content_info_get_part_spec): Helps if we allocate enough space here. Also, start smoking the same purple flavoured IMAP crack when counting parts (parts don't count if their parent part is a message/* part with a parent part). Fixes bug #25260. svn path=/trunk/; revision=17014
* Use the new readline function.Jeffrey Stedfast2002-05-251-0/+13
| | | | | | | | | | | | | | | | | 2002-05-24 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-command.c (imap_read_untagged): Use the new readline function. * providers/imap/camel-imap-store.c (connect_to_server): Use the new camel_imap_store_readline() function which doesn't suck quite as bad as the original camel_remote_store_recv_line() function. (camel_imap_store_readline): New function to replace camel_remote_store_recv_line(). This function is at least safe with embedded nul chars. Not that any of our callers use it *sigh*. svn path=/trunk/; revision=17012
* Added some NULL protection fixes.Jeffrey Stedfast2002-05-241-0/+5
| | | | | | | | | 2002-05-24 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (connect_to_server): Added some NULL protection fixes. svn path=/trunk/; revision=16997
* Removed from the build. Glory glory hallelujah.Jeffrey Stedfast2002-05-231-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-05-22 Jeffrey Stedfast <fejj@ximian.com> * camel-remote-store.c: Removed from the build. Glory glory hallelujah. * camel-disco-store.c: Updated to inherit from CamelStore rather than CamelRemoteStore. * providers/imap/camel-imap-command.c (imap_command_start): Don't use the camel-remote-store shit to send a string. Just use camel_stream_printf for chrissakes. * providers/imap/camel-imap-store.c: Updated to not depend on CamelRemoteStore and to handle STARTTLS. (imap_disconnect_online): Unref the streams. (imap_keepalive): Removed. (camel_imap_store_connected): New function to replace camel_remote_store_connected(). (camel_imap_store_finalize): Unref the streams. (camel_imap_store_recv_line): New function to replace camel_remote_store_recv_line(). (imap_get_capability): Renamed from connect_to_server (connect_to_server): New function to try and connect to the server. (connect_to_server_wrapper): New wrapper function around connect_to_server that takes the ssl modes into consideration. (query_auth_types): Don't bother calling our parent's implementation of query_auth_types() since CamelDiscoStore doesn't have any anyway. (imap_get_name): New method to implement CamelService::get_name svn path=/trunk/; revision=16975
* Don't call some retarded function to simply set an exception.Jeffrey Stedfast2002-05-221-0/+3
| | | | | | | | | 2002-05-16 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (get_folder_offline): Don't call some retarded function to simply set an exception. svn path=/trunk/; revision=16970
* If we get an invalid start char, just ignore it and goto the nextNot Zed2002-05-211-0/+5
| | | | | | | | | 2002-05-18 Not Zed <NotZed@Ximian.com> * camel-search-private.c (camel_utf8_getc): If we get an invalid start char, just ignore it and goto the next character. svn path=/trunk/; revision=16960
* New e-sexp callback function to get a user_tag label value.Jeffrey Stedfast2002-05-171-0/+5
| | | | | | | | | 2002-05-16 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-search.c (get_label): New e-sexp callback function to get a user_tag label value. svn path=/trunk/; revision=16937
* New function to parse a NAMESPACE response properly.Jeffrey Stedfast2002-05-161-0/+8
| | | | | | | | | | | | 2002-05-15 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_parse_namespace_response): New function to parse a NAMESPACE response properly. (imap_namespaces_destroy): New function to destroy the returned structure from the above function. svn path=/trunk/; revision=16927
* Only reconnect if we are already connected, if we are in a disconnectedJeffrey Stedfast2002-05-161-0/+4
| | | | | | | | | | 2002-05-15 Jeffrey Stedfast <fejj@ximian.com> * camel-service.c (service_setv): Only reconnect if we are already connected, if we are in a disconnected state then no need to reconnect. svn path=/trunk/; revision=16924
* If the part_spec is an empty string for a leaft part, use "1" since weJeffrey Stedfast2002-05-161-0/+6
| | | | | | | | | | 2002-05-15 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (get_content): If the part_spec is an empty string for a leaft part, use "1" since we don't actually want to get the raw message headers too. svn path=/trunk/; revision=16923
* removed. (imap_store_refresh_folders): Copy the folders first, thenNot Zed2002-05-151-0/+15
| | | | | | | | | | | | | | | | | | | 2002-05-15 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (refresh_folder_info): removed. (imap_store_refresh_folders): Copy the folders first, then refresh them, outside of the cache_lock, which could cause deadlocks because of a workaround for crappo exchange. (imap_disconnect_online): Dont pass an exception to LOGOUT command. The required response 'BYE' always sets an exception when we call LOGOUT. This also interfered with a lot of other processing causing partial failures and messed up offline/online state. * camel-disco-folder.c (disco_prepare_for_offline): Do progress reporting. svn path=/trunk/; revision=16797
* Fixes bug #24136.Jeffrey Stedfast2002-05-151-0/+16
| | | | | | | | | | | | | | | | | | | | 2002-05-14 Jeffrey Stedfast <fejj@ximian.com> Fixes bug #24136. * providers/imap/camel-imap-folder.c (content_info_get_part_spec): New function to take a CamelMessageContentInfo and generate a part-specification string. (get_content): Stop passing around part_spec strings and use content_info_get_part_spec instead. * camel-folder-summary.c (camel_content_info_dump): Made this into a public debugging function. * providers/imap/camel-imap-utils.c (imap_parse_body): Make sure to set the parent of any message/rfc822 subparts. svn path=/trunk/; revision=16793
* Previous fix reverted.Jeffrey Stedfast2002-05-151-2/+0
| | | | | | | | | 2002-05-13 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_get_message): Previous fix reverted. svn path=/trunk/; revision=16790
* Previous fix reverted. (get_content): Handle the case where a multipart'sJeffrey Stedfast2002-05-151-0/+7
| | | | | | | | | | | 2002-05-13 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_get_message): Previous fix reverted. (get_content): Handle the case where a multipart's parent is a message/rfc822 part. Fixes bug #24136. svn path=/trunk/; revision=16789
* Overload the setv/getv CamelObject virtual methods. (imap_setv):Jeffrey Stedfast2002-05-141-1/+8
| | | | | | | | | | | 2002-05-13 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (camel_imap_store_class_init): Overload the setv/getv CamelObject virtual methods. (imap_setv): Implemented. (imap_getv): Implemented. svn path=/trunk/; revision=16771
* Add a "char **appended_uid" argument, for the caller to optionally pass inDan Winship2002-05-141-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * camel-folder.c (camel_folder_append_message): Add a "char **appended_uid" argument, for the caller to optionally pass in a variable to receive the UID of the appended message (if the provider knows it). (camel_folder_transfer_messages_to): Likewise, add "GPtrArray **transferred_uids" (transfer_messages_to): Update default implementation to handle transferred_uids. * camel-disco-folder.c (disco_append_message, disco_transfer_messages_to): Update for API changes. * camel-disco-diary.c (camel_disco_diary_replay): Update the diary's temporary uid->real uid map when replaying appends and transfers. * providers/imap/camel-imap-folder.c (imap_append_offline, imap_append_online, imap_transfer_offline): Pass back the new UIDs, when requested and available. (imap_append_resyncing): Pass back the new UIDs when requested and available. Remove the diary uidmap managing code since CamelDiscoDiary can handle that itself now. (imap_transfer_online, imap_transfer_resyncing): Update for new APIs, but don't actually pass back the new UIDs yet. (It's tricky since the COPYUID response may not be in the same order as the input uids.) * providers/local/camel-maildir-folder.c (maildir_append_message): Pass back the new UID if requested. * providers/local/camel-mbox-folder.c (mbox_append_message): Likewise. * providers/local/camel-mh-folder.c (mh_append_message): Likewise. * providers/local/camel-spool-folder.c (spool_append_message): Likewise. * camel-digest-folder.c (digest_append_message, digest_transfer_messages_to): Update for API changes. * camel-filter-driver.c (camel_filter_driver_filter_message, do_copy, do_move): Update for API changes. * camel-vee-folder.c (vee_append_message, vee_transfer_messages_to): Likewise. * camel-vtrash-folder.c (vtrash_append_message, vtrash_transfer_messages_to): Likewise. svn path=/trunk/; revision=16765
* Since the fix for #3357 uses 'order=0' to indicate tree structure nodes,Not Zed2002-05-131-0/+9
| | | | | | | | | | | | | 2002-05-13 Not Zed <NotZed@Ximian.com> * camel-folder-thread.c (camel_folder_thread_messages_new_summary): (camel_folder_thread_messages_new): Since the fix for #3357 uses 'order=0' to indicate tree structure nodes, make sure we dont actually set order=0 for valid messages, otherwise we silently lose duplicates of the first message (i==0). Fixes #19920. svn path=/trunk/; revision=16764
* Fetch the BODYSTRUCTURE rather than BODY since BODY seems to be lackingJeffrey Stedfast2002-05-111-0/+4
| | | | | | | | | | 2002-05-10 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_get_message): Fetch the BODYSTRUCTURE rather than BODY since BODY seems to be lacking some of the data we need. This fixes bug #24131. svn path=/trunk/; revision=16762
* Might help if we called camel_transport_class_init.Jeffrey Stedfast2002-05-111-0/+5
| | | | | | | | | 2002-05-10 Jeffrey Stedfast <fejj@ximian.com> * camel-transport.c (camel_transport_get_type): Might help if we called camel_transport_class_init. svn path=/trunk/; revision=16761
* Replace copy_messages_to and move_messages_to with a single function thatDan Winship2002-05-111-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * camel-folder.c (camel_folder_transfer_messages_to): Replace copy_messages_to and move_messages_to with a single function that just takes a "delete_originals" flag. Also, use the vtrash implementation if *either* folder is a vtrash. (transfer_messages_to): Make this use camel_operation_progress (previously move_messages_to did but copy_messages_to didn't), and freeze/thaw the folder(s) if doing multiple messages. * camel-vtrash-folder.c (vtrash_transfer_messages_to): Update for move/copy merge. Move the "move messages into vtrash" code here from mail-ops.c. Now all of the vtrash move/copy special casing is in camel instead of half of it being here and half in mail/. (This should also make it so that "Move to Trash" will work in filter rules.) * camel-vee-folder.c (vee_transfer_messages_to): Make this just return an exception, since it will only be called when trying to move/copy messages from one vfolder to another. (vee_append_message): Add this too so we get a nicer error message than the default "unimplemented" one in camel-folder.c. * camel-digest-folder.c: Replace copy_messages_to and move_messages_to with transfer_messages_to. * camel-disco-folder.c: Likewise * camel-disco-diary.c (camel_disco_diary_log, camel_disco_diary_replay): replace MOVE/COPY with TRANSFER. * providers/imap/camel-imap-folder.c (imap_transfer_offline, imap_transfer_online, imap_transfer_resyncing): Update for changes. (This ends up being a bit more complicated than it was before for now, but later disconnected operation changes should resimplify it.) * camel-filter-driver.c (camel_filter_driver_filter_message, do_copy, do_move): Use transfer_messages_to instead of copy. svn path=/trunk/; revision=16744
* New filter function to pipe a message to another program. (run_command):Jeffrey Stedfast2002-05-101-0/+1
| | | | | | | | | | 2002-05-09 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-search.c (shell_exec): New filter function to pipe a message to another program. (run_command): Fixed some bugs to make this work. svn path=/trunk/; revision=16742
* New filter function to pipe a message to another program.Jeffrey Stedfast2002-05-101-0/+5
| | | | | | | | | 2002-05-09 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-search.c (shell_exec): New filter function to pipe a message to another program. svn path=/trunk/; revision=16740
* Instead of testing for SERVICE_CONNECTED, we need to also handleNot Zed2002-05-091-0/+9
| | | | | | | | | | | | | 2002-05-09 Not Zed <NotZed@Ximian.com> * camel-service.c (camel_service_disconnect): Instead of testing for SERVICE_CONNECTED, we need to also handle SERVICE_CONNECTING too, as it will often have setup some details before it failed. Make it !DISCONNECTED (and !DISCONNECTING for recursive calls, which happen). Fixes #23782, and maybe also #21604 and many other random crashes. svn path=/trunk/; revision=16730
* Implemented. (digest_getv): Implemented.Jeffrey Stedfast2002-05-091-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | 2002-05-08 Jeffrey Stedfast <fejj@ximian.com> * camel-digest-store.c (digest_setv): Implemented. (digest_getv): Implemented. * camel-disco-store.c (disco_setv): Implemented. (disco_getv): Implemented. * camel-remote-store.c (remote_store_setv): Implemented. (remote_store_getv): Implemented. * camel-transport.c (camel_transport_class_init): Implemented. (transport_setv): Implemented. (transport_getv): Implemented. * camel-store.c (store_setv): Implemented. (store_getv): Implemented. * camel-service.c (service_setv): Implemented. (service_getv): Implemented. svn path=/trunk/; revision=16729
* camel_pop3_engine_iterate doesn't return the state, it returns -1 on fail,Jeffrey Stedfast2002-05-081-0/+8
| | | | | | | | | | | | 2002-05-08 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-store.c (pop3_try_authenticate): camel_pop3_engine_iterate doesn't return the state, it returns -1 on fail, 0 when finished processing request or >0 if more ops are in the queue, so don't check status against CAMEL_POP3_STATE_OK, instead check pcp->state against that. svn path=/trunk/; revision=16719
* s/class/klass for arguments so that c++ developers don't complain later.Jeffrey Stedfast2002-05-081-0/+5
| | | | | | | | | 2002-05-07 Jeffrey Stedfast <fejj@ximian.com> * camel-object.h: s/class/klass for arguments so that c++ developers don't complain later. svn path=/trunk/; revision=16712
* Fix a crash in a g_warning.Dan Winship2002-05-081-0/+5
| | | | | | | * camel-object.c (camel_object_class_cast): Fix a crash in a g_warning. svn path=/trunk/; revision=16705
* Check for LOGIN xxxx as well if debug is on, so we dont print passwords toNot Zed2002-05-071-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-05-07 Not Zed <NotZed@Ximian.com> * camel-remote-store.c (remote_send_string): Check for LOGIN xxxx as well if debug is on, so we dont print passwords to evolution logs. * providers/imap/camel-imap-utils.c (imap_is_atom_char): This was really broken. 1. isprint() is locale dependent, and 2. it looked up an 8 bit value in a 7 bit table without truncating it. I've removed the isprint() stuff and just put it directly into the special table, which i've expanded to the right size too. * providers/imap/*: Applied patch from Preston Elder <prez@magick.tm> to make camel only use literals if it needs to for simple strings. Changed slightly to use imap_is_atom() and more consistent formatting. providers/imap/camel-imap-utils.c (imap_is_atom): Chagned from imap_needs_quoting(). ** Merged in camel-object2 branch. Simpler camelobject implementation + object args interface. * camel.c (camel_init): Call camel_object_get_type() to make sure camel_object_type is initialised. * camel-object.h (CAMEL_OBJECT_TYPE): Changed to return global camel_object_type pointer, not call camel_object_get_type. svn path=/trunk/; revision=16701
* If the pop3 command status is -1, then we probably have a TCP error (?) soJeffrey Stedfast2002-05-071-0/+7
| | | | | | | | | | | | | 2002-05-06 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-store.c (pop3_try_authenticate): If the pop3 command status is -1, then we probably have a TCP error (?) so set a SYSTEM exception so our caller can distinguish between a "bad password" and a "tcp error". (pop3_connect): Only uncache the password on "bad password" errors. svn path=/trunk/; revision=16700
* Use CamelMimeFilterBestenc to get a more appropriate encoding rather thanJeffrey Stedfast2002-05-071-0/+4
| | | | | | | | | | 2002-05-06 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-mime.c (pgp_mime_part_sign_prepare_part): Use CamelMimeFilterBestenc to get a more appropriate encoding rather than just blindling assigning QP. svn path=/trunk/; revision=16699
* Call camel_mime_message_encode_8bit_parts() which fixes bug #10885.Jeffrey Stedfast2002-05-071-0/+3
| | | | | | | | | 2002-05-06 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (do_append): Call camel_mime_message_encode_8bit_parts() which fixes bug #10885. svn path=/trunk/; revision=16698
* Don't bother with counting down the timeout.Jeffrey Stedfast2002-05-071-0/+5
| | | | | | | | | 2002-05-06 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-raw.c (socket_connect): Don't bother with counting down the timeout. svn path=/trunk/; revision=16690
* Same fix as the tcp stream. (stream_write): Again here. Just like tcpJeffrey Stedfast2002-05-031-0/+12
| | | | | | | | | | | | | | | | 2002-05-02 Jeffrey Stedfast <fejj@ximian.com> * camel-stream-fs.c (stream_read): Same fix as the tcp stream. (stream_write): Again here. Just like tcp stream's stream_write(), also make sure to save errno before calling fcntl to restore the fd flags. * camel-tcp-stream-raw.c (stream_read): Handle EINTR errors for select(). (stream_write): Same and also preserve errno when setting the fd flags back. If w == -1, return -1. svn path=/trunk/; revision=16673
* Fixed the fix for stupidly-broken-mailer bug #5 to work when multipleJeffrey Stedfast2002-05-031-0/+7
| | | | | | | | | | 2002-05-02 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_decode_mailbox): Fixed the fix for stupidly-broken-mailer bug #5 to work when multiple unescaped characters were in a row. Fixes bug #24140. svn path=/trunk/; revision=16672
* Change the order of some code so that we check if the select() failedJeffrey Stedfast2002-05-031-0/+15
| | | | | | | | | | | | | | 2002-05-02 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (crypto_exec_with_passwd): Change the order of some code so that we check if the select() failed before we check for user-cancellation. * camel-service.c (camel_gethostbyname): Check for EINTR when select()ing. (camel_gethostbyaddr): Same. svn path=/trunk/; revision=16666
* We want to set unread_count to get_unread_message_count, notNot Zed2002-04-291-0/+7
| | | | | | | | | | | 2002-04-29 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-store.c (get_folder_info): We want to set unread_count to get_unread_message_count, not get_message_count(). Might fix #17174. Also removed FIXME: as it was fixed. svn path=/trunk/; revision=16629
* Don't link to libibex.a anymore.Jeffrey Stedfast2002-04-271-0/+6
| | | | | | | | | | | | 2002-04-26 Jeffrey Stedfast <fejj@ximian.com> * providers/local/Makefile.am: Don't link to libibex.a anymore. * providers/nntp/Makefile.am: Same. * providers/imap/Makefile.am: And again here. svn path=/trunk/; revision=16609
* No longer want to #include <libibex/ibex.h>Jeffrey Stedfast2002-04-271-0/+3
| | | | | | | | | 2002-04-26 Jeffrey Stedfast <fejj@ximian.com> * camel-store-summary.h: No longer want to #include <libibex/ibex.h> svn path=/trunk/; revision=16608
* New function to auto-detect configuration settings.Jeffrey Stedfast2002-04-271-0/+5
| | | | | | | | | 2002-04-26 Jeffrey Stedfast <fejj@ximian.com> * camel-provider.c (camel_provider_auto_detect): New function to auto-detect configuration settings. svn path=/trunk/; revision=16599
* Remove the excessive \n's, after printfs.Not Zed2002-04-261-0/+11
| | | | | | | | | | | | | | | 2002-04-26 Not Zed <NotZed@Ximian.com> * camel-block-file.c (block_file_validate_root): Remove the excessive \n's, after printfs. * camel-text-index.c (text_index_compress_nosync): @!#$@#$!@$#!. Since the rename op was fixed, this broke compression's rename, resulting in the index 'vanishing' after every compress (i.e. after every reindex). Fix this code to account for the fixed rename operation. svn path=/trunk/; revision=16591
* Don't put a space between the "RCPT TO:" and the "<recipient>" strings -Jeffrey Stedfast2002-04-261-0/+8
| | | | | | | | | | | | 2002-04-25 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_rcpt): Don't put a space between the "RCPT TO:" and the "<recipient>" strings - rfc0821 was not clear on this but it seems rfc2821 defines a grammar excluding that SP. (smtp_mail): Same. svn path=/trunk/; revision=16588
* Configure the default paths for mh, mbox, maildir, spools, etc.Jeffrey Stedfast2002-04-251-1/+6
| | | | | | | | | | | | | 2002-04-24 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-local-provider.c (camel_provider_module_init): Configure the default paths for mh, mbox, maildir, spools, etc. * camel-provider.h: Add a CAMEL_PROVIDER_CONF_LABEL enum and define some default CamelProviderConfEntry macros. svn path=/trunk/; revision=16580
* Add a CAMEL_PROVIDER_CONF_LABEL enum.Jeffrey Stedfast2002-04-251-0/+4
| | | | | | | | 2002-04-24 Jeffrey Stedfast <fejj@ximian.com> * camel-provider.h: Add a CAMEL_PROVIDER_CONF_LABEL enum. svn path=/trunk/; revision=16575
* Free the LIST pop3 command.Jeffrey Stedfast2002-04-201-0/+5
| | | | | | | | | | | 2002-04-19 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_refresh_info): Free the LIST pop3 command. * camel-data-cache.c (data_cache_finalise): Free the cdc->path. svn path=/trunk/; revision=16550
* Don't g_return_val_if_fail here if the boundary is an empty string. SeeJeffrey Stedfast2002-04-201-0/+13
| | | | | | | | | | | | | | | | | 2002-04-19 Jeffrey Stedfast <fejj@ximian.com> * camel-multipart.c (write_to_stream): Don't g_return_val_if_fail here if the boundary is an empty string. See bug #23676 for details. The way I see it, we have 2 options: 1) leave this fix the way it is, thus allowing multipart boundaries to be empty-strings; or 2) make camel_multipart_get_boundary() change the boundary to something legal if the boundary is an empty-string. Since the parser should be able to handle an empty-string boundary *and* more importantly because we want to keep the same boundaries as the original raw message so as to be able to verify multipart/signed parts, I vote for solution #1. svn path=/trunk/; revision=16539
* Start of a white-paperish document describing camel-index and olderNot Zed2002-04-191-0/+5
| | | | | | | | | 2002-04-19 Not Zed <NotZed@Ximian.com> * devel-docs/camel-index.txt: Start of a white-paperish document describing camel-index and older libibex. svn path=/trunk/; revision=16531
* If we get a failure, make sure we set an exception.Not Zed2002-04-181-0/+8
| | | | | | | | | | | | | | 2002-04-18 Not Zed <NotZed@Ximian.com> * providers/local/camel-local-store.c (rename_folder): If we get a failure, make sure we set an exception. * camel-text-index.c (camel_text_index_rename): If the file doesn't exist, just assume it never did, dont return failure. (text_index_rename): Add '.index' to the path name we're using, since we dont get it passed in. svn path=/trunk/; revision=16505
* When doing a contains match, split the words and perform an and on it.Not Zed2002-04-181-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-04-18 Not Zed <NotZed@Ximian.com> * camel-folder-search.c (check_header): When doing a contains match, split the words and perform an and on it. (match_words_messages): If we have an index, but were forced to do a full search, first lookup a subset of messages using the index and a simplified word set. Only do a manual search of this subset. 2002-04-17 Not Zed <NotZed@Ximian.com> * camel-folder-search.c (match_message_index): Changed to take a utf8 string not a regex pattern. (match_words_index): Matches against a camel_search_words list. (match_words_1message): Matches a single message against a camel_search_words list. (match_words_message): Same, but gets the message from the folder for you. (match_words_messages): Matches a list of messages against a words list. (search_body_contains): Rewritten to handle multiple word searches. For #23371. * providers/imap/camel-imap-search.c (sync_match): Split words when searching, to support multiple search words. Also, try searching specifying charset of utf8 if we can, if that fails, fall back to not specifying charset. TODO: It should translate the strings into the locale default charset? * providers/imap/camel-imap-store.c (connect_to_server): Added new cap - utf8_search, if set, we tell the server we're searching using utf8, otherwise we dont (incorrectly, since we always use utf8 to search). * camel-search-private.c (camel_ustrstrcase): Make this class public. (camel_search_words_split): Split a word into multiple words based on whitespace, and keep track of whether the word is simple (indexable directly), or not. (camel_search_words_free): Free 'em. svn path=/trunk/; revision=16501
* If the vee-folder is the unmatched, we don't have our own expression so weJeffrey Stedfast2002-04-181-0/+7
| | | | | | | | | | | 2002-04-17 Jeffrey Stedfast <fejj@ximian.com> * camel-vee-folder.c (vee_search_by_expression): If the vee-folder is the unmatched, we don't have our own expression so we cannot merge them. Instead, just use the expression passed in. This fixes a Null-Pointer-Read crash on Solaris systems at least. svn path=/trunk/; revision=16500
* Get rid of an unused variable.Jeffrey Stedfast2002-04-171-0/+15
| | | | | | | | | | | | | | | | | | | 2002-04-16 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_folder): Get rid of an unused variable. * providers/smtp/camel-smtp-transport.c (smtp_helo): Use camel_gethostbyaddr since gethostbyaddr is not reentrant. * camel-http-stream.c (http_connect): Updated after the rename of camel_get_host_byname. * camel-service.c (camel_gethostbyname): Renamed. (camel_gethostbyaddr): New cancellable/reentrant version of gethostbyaddr. svn path=/trunk/; revision=16484
* Added #include <sys/types.h> for dirent.h which needs it on MacOS X.Jeffrey Stedfast2002-04-151-2/+10
| | | | | | | | | | | | | | | | | | | 2002-04-14 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-spoold-store.c: Added #include <sys/types.h> for dirent.h which needs it on MacOS X. * providers/local/camel-maildir-store.c: Same. * providers/nntp/camel-nntp-store.c: Same. * providers/imap/camel-imap-message-cache.c: Same. * camel-provider.c: Same. * camel-data-cache.c: Same. svn path=/trunk/; revision=16466
* Added #include <sys/types.h> for dirent.h which needs it on MacOS X.Jeffrey Stedfast2002-04-141-0/+7
| | | | | | | | | | | 2002-04-14 Jeffrey Stedfast <fejj@ximian.com> * camel-provider.c: Added #include <sys/types.h> for dirent.h which needs it on MacOS X. * camel-data-cache.c: Same. svn path=/trunk/; revision=16463
* Treat commas as token delimeters. (WEEKDAY_CHARS): Use full weekday namesJeffrey Stedfast2002-04-131-0/+8
| | | | | | | | | | | | 2002-04-12 Jeffrey Stedfast <fejj@ximian.com> * broken-date-parser.c (datetok): Treat commas as token delimeters. (WEEKDAY_CHARS): Use full weekday names in case the broken mailer used the full names. (MONTH_CHARS): Same as above but for months. svn path=/trunk/; revision=16456
* If the last message(s) were deleted, and we had any messages output,Not Zed2002-04-111-0/+13
| | | | | | | | | | | | | | | | | 2002-04-11 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-summary.c (spool_summary_sync_full): If the last message(s) were deleted, and we had any messages output, account for the lost \n of the following From line by adding an extra \n. fix for #8214. 2002-04-10 Not Zed <NotZed@Ximian.com> * camel-mime-part-utils.c (convert_buffer): If we get a 0 length input, return a 0 lenght output as valid - fixes bugs with some iconv impl and its simpler anyway. svn path=/trunk/; revision=16438
* Set the UID_SET_LIMIT value to 4096. I ran into an issue tonight whereJeffrey Stedfast2002-04-111-0/+11
| | | | | | | | | | | | | | | 2002-04-11 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c: Set the UID_SET_LIMIT value to 4096. I ran into an issue tonight where apparently the IMAP server changed the UIDVALIDITY and so Evo needed to re-fetch all headers and it was trying to send a uid set of some 25k (yes, I have a very large INBOX). Anyways, it was set to unlimited before. Courier IMAPd can safely handle up to ~16k per token, but UW IMAPd can only handle 8k per command-line, so I set it to 4k just to be safe. svn path=/trunk/; revision=16436
* Fixed a bug that would miscalculate how much data to copy into theJeffrey Stedfast2002-04-111-0/+7
| | | | | | | | | | | 2002-04-10 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (convert_buffer): Fixed a bug that would miscalculate how much data to copy into the GByteArray (negative value) thus causing a segfault. Also optimized it while I was at it. svn path=/trunk/; revision=16428
* Make the folder_lock recursive. See bug #22363 for details. Basically,Jeffrey Stedfast2002-04-101-0/+6
| | | | | | | | | | | | 2002-04-09 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (camel_store_init): Make the folder_lock recursive. See bug #22363 for details. Basically, get_folder_info() is requesting a diary folder which in turn connects which requests then calls get_folder() but deadlocks because get_folder_info already holds the lock. svn path=/trunk/; revision=16419
* Don't adjust the timezone offset if we used tm.tm_gmtoff because it isJeffrey Stedfast2002-04-101-0/+6
| | | | | | | | | | 2002-04-09 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-message.c (camel_mime_message_set_date): Don't adjust the timezone offset if we used tm.tm_gmtoff because it is already adjusted. svn path=/trunk/; revision=16412
* If we get multiple Content-Type header values, change subsequent headersNot Zed2002-04-091-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-04-09 Not Zed <NotZed@Ximian.com> * camel-mime-part.c (construct_from_parser): If we get multiple Content-Type header values, change subsequent headers to X-Invalid-Content-Type so it doesn't wreck processing. This fixes the reported case in #18929, but i dont know if it fixes the original posters problems. 2002-04-08 Not Zed <NotZed@Ximian.com> * camel-vtrash-folder.c (vtrash_move_messages_to): If we find we're moving from the vtrash to another folder, we need to convert the uid from a vfolder uid to the source uid (+8). Fix for #20886. Also changed to batch multiple moves to different folders so they are done as efficiently as possible rather than one at a time. * camel-mime-utils.c (base64_decode_step): If we only get passed '=', we back track only if we actually output any data. Fix for #21716. (quoted_decode): Pass out size_t instead of int, and use 0 instead of -1 for error since its not signed. This will fix similar bug to above in different circumstances since the result is taken as unsigned. This is only an internal func. (quoted_encode): Return size_t just for consistency. * camel-block-file.c (block_file_validate_root): Comment out the debug and move it into a warning when the validation fails. svn path=/trunk/; revision=16394
* Don't count our filler when encoding our line-length octet.Jeffrey Stedfast2002-04-091-0/+5
| | | | | | | | | 2002-04-08 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (uuencode_close): Don't count our filler when encoding our line-length octet. svn path=/trunk/; revision=16390
* Don't get the statuscode here anymore. (http_method_invoke): Use aJeffrey Stedfast2002-04-061-0/+16
| | | | | | | | | | | | | | | | | | | | 2002-04-05 Jeffrey Stedfast <fejj@ximian.com> * camel-http-stream.c (http_get_headers): Don't get the statuscode here anymore. (http_method_invoke): Use a User-Agent header and do basic proxy authentication. (stream_read): Handle redirects. (camel_http_stream_set_user_agent): New function to allow client to set the User-Agent string. (camel_http_stream_set_proxy): New function for setting the proxy server. (camel_http_stream_set_proxy_authrealm): New function for setting the proxy auth realm. (camel_http_stream_set_proxy_authpass): New function for setting the proxy auth password. svn path=/trunk/; revision=16367
* If (body-contains) is not passed any arguments, return empty/false. FixesNot Zed2002-04-051-0/+4
| | | | | | | | | | 2002-04-04 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-search.c (imap_body_contains): If (body-contains) is not passed any arguments, return empty/false. Fixes a crash exposed by #15001. svn path=/trunk/; revision=16362
* Simplified since we can now decode in-reply-to without getting extraJeffrey Stedfast2002-04-051-0/+13
| | | | | | | | | | | | | | | | | 2002-04-04 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.c (message_info_new): Simplified since we can now decode in-reply-to without getting extra cruft. Get rid of the FIXME about having to check scan->id because of the possibility of it being NULL, this can no longer happen. * camel-mime-utils.c (header_references_inreplyto_decode): New function to decode in-reply-to headers. Only grabs the first thing that looks like a message-id and then returns. (header_references_decode): Loop calling header_references_decode_single (a new internal function). svn path=/trunk/; revision=16361
* Reset the keepalive timeout to 10 minutes rather than the 30 seconds I wasNot Zed2002-04-041-0/+6
| | | | | | | | | | 2002-04-04 Not Zed <NotZed@Ximian.com> * camel-remote-store.c (remote_connect): Reset the keepalive timeout to 10 minutes rather than the 30 seconds I was using for testing. svn path=/trunk/; revision=16336
* make service_cache be an array of CAMEL_NUM_PROVIDER_TYPES elements so youDan Winship2002-04-041-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * camel-provider.h (CamelProvider): make service_cache be an array of CAMEL_NUM_PROVIDER_TYPES elements so you can have a single provider offer both stores and transports. (Eg, Exchange, NNTP) * providers/imap/camel-imap-provider.c: Don't initialize service_cache here. (The session code can do it itself since the url_hash and url_equal functions are stored as part of the provider.) * providers/nntp/camel-nntp-provider.c: Likewise. * providers/local/camel-local-provider.c: Likewise. * providers/pop3/camel-pop3-provider.c: Likewise. * providers/sendmail/camel-sendmail-provider.c: Likewise. * providers/smtp/camel-smtp-provider.c: Likewise. * camel-session.c (register_provider): Initialize the provider's service cache(s) here. (camel_session_class_init): Don't initialize. vee_provider.service_cache here. (camel_session_destroy_provider): Update to destroy multiple service_caches. (service_cache_remove, get_service): Tweak these a bit to deal with multiple service_caches. svn path=/trunk/; revision=16330
* Turn indexing back on, fingers crossed ...Not Zed2002-04-031-0/+13
| | | | | | | | | | | | | | | | | | | | | | | 2002-04-03 Not Zed <NotZed@Ximian.com> * providers/local/camel-local-folder.c (camel_local_folder_construct): Turn indexing back on, fingers crossed ... * camel-block-file.c (sync_nolock): #!@$@$#@~#$ DF@#$!Q@$#!@$#!#%. Well it helps if we're iterating a list to iterate the node pointer ... * camel-text-index.c (text_index_sync): Sync the key tables explcitly. (text_index_sync): Debug out frag info. (camel_text_index_dump): Added a (rather large, but optional) raw dumping mode for debugging purposes. * camel-partition-table.c (camel_key_table_finalise): Sync root block when done. svn path=/trunk/; revision=16329
* Handle a ton more nspr i/o errno's. (stream_connect): Act as if we areJeffrey Stedfast2002-04-031-0/+18
| | | | | | | | | | | | | | | | | | | | | | 2002-04-02 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (set_errno): Handle a ton more nspr i/o errno's. (stream_connect): Act as if we are doing a non-blocking connect. This is to try and work around bug #15120 where users get an EINPROGRESS error. Maybe importing a PRFileDesc into SSL mode automagically makes it non-blocking? I dunno. 2002-04-01 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.c (message_info_new): Updated the construction of the references to match JWZ's updated algorithm initialization (ie, append any In-Reply-To reference onto any References header and never take more than a single message-id from the In-Reply-To header since anything after the first will probably just be email addresses). Fixes bug #1336. svn path=/trunk/; revision=16327
* Sync the key tables explcitly.Not Zed2002-04-031-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-04-03 Not Zed <NotZed@Ximian.com> * camel-text-index.c (text_index_sync): Sync the key tables explcitly. * camel-partition-table.c (camel_key_table_finalise): Sync root block when done. (camel_key_table_sync): New function, sync key table (root) explicitly. 2002-04-02 Not Zed <NotZed@Ximian.com> * camel-block-file.c (camel_block_file_free_block): Mark root block dirty when we change it (this function isn't used yet anyway). * camel-text-index.c (text_index_add_name_to_word): Touch the root block when we modify the counts. Also, abort processing on any errors. (text_index_sync): Fix typo in comments. Sync the block file inside the lock. (text_index_compress_nosync): Lock the old index while we're compressing. (text_index_compress_nosync): Remove the bogus while() at the end of the while() loops! Also plug a memleak - records weren't freed. (text_index_rename): Lock around rename op. (text_index_add_name): More typos. (text_index_sync): Touch root when changing it. (text_index_add_name): " (text_index_delete_name): " (camel_text_index_new): Touch root if we change it. (text_index_cursor_reset): Make sure we NULL pointers after we free them (nothing uses this yet). * camel-partition-table.c (hash_key): Remove some debug accidentally left in. (camel_partition_table_add): When linking in the next block list, set the right previous pointer. (camel_key_table_add): Simplify the 'left' calculation (it was already ok though). (camel_key_table_next): Initialise returns before processing. Broaden the lock slightly, and simplify validity calculations. svn path=/trunk/; revision=16323
* Put back in the exception setup stuff i disabled for debugging.Not Zed2002-04-021-0/+3
| | | | | | | | | 2002-04-02 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (imap_keepalive): Put back in the exception setup stuff i disabled for debugging. svn path=/trunk/; revision=16320
* Temporarily disable indexing.Not Zed2002-04-021-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-04-02 Not Zed <NotZed@Ximian.com> * providers/local/camel-local-folder.c (camel_local_folder_construct): Temporarily disable indexing. 2002-03-28 Not Zed <NotZed@Ximian.com> * camel-partition-table.c (camel_key_table_lookup): Change range checking assert to a warning. * providers/pop3/camel-pop3-folder.c (pop3_finalize): Make sure we flush out all outstanding commands before finalising, stops being finalised while outsanding requests are processed by the store finalise. (pop3_get_message): Instead of pre-fetching all messages, just pre-fetch a maxiumum number at any one time, stops us running out of cache fd's. * providers/nntp/camel-nntp-folder.c (nntp_folder_init/finalise): Setup priv data + locks, & free. * providers/imap/camel-imap-folder.c (imap_rescan): Batch all message_chagned events into a single folder_changed event (otherwise updates can be >>> expensive, like >5 hours for 80K messages changing!). Alternately it could use folder freeze/unfreeze perhaps. 2002-03-27 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (imap_keepalive): Pass an exception to called code so it behaves properly since it uses the passed exception to check returns. svn path=/trunk/; revision=16319
* Use -avoid-version instead of -version-info 0:0:0, and specify -module.Dan Winship2002-04-021-0/+19
| | | | | | | | | | | | | | | | | | | | | * providers/imap/Makefile.am (libcamelimap_la_LDFLAGS): Use -avoid-version instead of -version-info 0:0:0, and specify -module. (From Max Horn <max@quendi.de>). * providers/local/Makefile.am (libcamellocal_la_LDFLAGS): Likewise. * providers/nntp/Makefile.am (libcamelnntp_la_LDFLAGS): Likewise. * providers/sendmail/Makefile.am (libcamelsendmail_la_LDFLAGS): Likewise. * providers/smtp/Makefile.am (libcamelsmtp_la_LDFLAGS): Likewise. * providers/pop3/Makefile.am (libcamelpop3_la_LDFLAGS): Likewise. Also remove $(KRB4_LDFLAGS) since KPOP is gone. (INCLUDES): and $(KRB4_CFLAGS) svn path=/trunk/; revision=16305
* We now have to check to make sure that p->message is non-NULL because weJeffrey Stedfast2002-03-291-0/+7
| | | | | | | | | | | 2002-03-28 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (do_copy): We now have to check to make sure that p->message is non-NULL because we only load the message when we have to. (do_move): Same here. svn path=/trunk/; revision=16280
* Change the message arg to a CamelMimeMessage instead of a CamelMedium.Dan Winship2002-03-291-0/+21
| | | | | | | | | | | | | | | | | | | | | | | * camel-transport.c (camel_transport_send_to): Change the message arg to a CamelMimeMessage instead of a CamelMedium. Even the NNTP provider returns CamelMimeMessages, and we're never going to support anything more exotic than that. Also do a few more g_return_if_fails here instead of in the providers. (camel_transport_can_send): No longer needed. (camel_transport_send): Remove this too. It wasn't being used any more, and it doesn't behave exactly the same in sendmail and smtp. * providers/smtp/camel-smtp-transport.c (smtp_send, smtp_can_send): Gone. (smtp_send_to): Update for arg change. (smtp_data): Make this take a CamelMimeMessage too. * providers/sendmail/camel-sendmail-transport.c (sendmail_send, sendmail_can_send): Gone. (sendmail_send_to): Update for arg change, and merge in the part that used to be shared with sendmail_send. svn path=/trunk/; revision=16278
* Construct the source_url the right way. The previous way was generatingJeffrey Stedfast2002-03-281-0/+7
| | | | | | | | | | | 2002-03-27 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_folder): Construct the source_url the right way. The previous way was generating urls like pop://fejj@ximian.com;keep_on_server/inbox which is wrong. svn path=/trunk/; revision=16260
* Changed to use just g_utf8_strdown instead of utf8_normalise, to match theNot Zed2002-03-261-0/+7
| | | | | | | | | | | 2002-03-26 Not Zed <NotZed@Ximian.com> * camel-text-index.c (text_index_normalise): Changed to use just g_utf8_strdown instead of utf8_normalise, to match the indexing code. utf8_normalise is just far too expensive (saves approx 25% total processing). svn path=/trunk/; revision=16250
* When we add a new name, up all of the cache limits, because we're probablyNot Zed2002-03-251-0/+130
| | | | | | | | | | | | | | | | | | | 2002-03-25 Not Zed <NotZed@Ximian.com> * camel-text-index.c (text_index_add_name): When we add a new name, up all of the cache limits, because we're probably going to be adding more. (text_index_sync): Drop the cache limits back down again, we dont need them when looking words up. ** MERGE camel_index branch. * camel-text-index.[ch]: Added files i forgot to add (eep nearly lost all this work!) * camel-block-file.c (sync_nolock): Fix an infinite loop in syncing. svn path=/trunk/; revision=16242
* Use the date in the received header for the received_date.Jeffrey Stedfast2002-03-221-0/+5
| | | | | | | | | 2002-03-21 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.c (camel_message_info_new_from_header): Use the date in the received header for the received_date. svn path=/trunk/; revision=16225
* Fix this to work right. We need to convert the input buffer to the charsetJeffrey Stedfast2002-03-201-0/+6
| | | | | | | | | | 2002-03-19 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_encode_param): Fix this to work right. We need to convert the input buffer to the charset we claim in the encoded param (duh). svn path=/trunk/; revision=16214
* Updated to use the same logic as the POP code.Jeffrey Stedfast2002-03-191-0/+4
| | | | | | | | | | 2002-03-18 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (connect_to_server_wrapper): Updated to use the same logic as the POP code. svn path=/trunk/; revision=16203
* No longer takes a stls_supported argument since we no longer need it withJeffrey Stedfast2002-03-191-0/+12
| | | | | | | | | | | | | | 2002-03-18 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-store.c (connect_to_server): No longer takes a stls_supported argument since we no longer need it with the new logic. (connect_to_server_wrapper): New logic: First try connecting to the SSL port (995 by default), if that fails with SERVICE_UNAVAILABLE, then we attempt to connect (to port 110 by default) and try to use STARTTLS. svn path=/trunk/; revision=16202
* Don't allow any empty structs. If !ENABLE_THREADS, provide a gpointerJeffrey Stedfast2002-03-161-0/+5
| | | | | | | | | 2002-03-15 Jeffrey Stedfast <fejj@ximian.com> * camel-private.h: Don't allow any empty structs. If !ENABLE_THREADS, provide a gpointer dummy member. Fixes bug #6382. svn path=/trunk/; revision=16174
* Added a work-around for SMTP servers that can't read the RFCs and thusJeffrey Stedfast2002-03-141-0/+7
| | | | | | | | | | | 2002-03-13 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_auth): Added a work-around for SMTP servers that can't read the RFCs and thus implement SASL incorrectly. Oh well, that's life in the world of mail clients I guess. svn path=/trunk/; revision=16152
* reverted my USER/PASS quoting fixJeffrey Stedfast2002-03-141-6/+0
| | | | svn path=/trunk/; revision=16148
* Quote the USER and PASS arguments since some people have spaces in theirJeffrey Stedfast2002-03-141-0/+6
| | | | | | | | | | 2002-03-13 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-store.c (pop3_try_authenticate): Quote the USER and PASS arguments since some people have spaces in their user-names and/or passwords. svn path=/trunk/; revision=16144
* Now takes a url argument.Jeffrey Stedfast2002-03-131-0/+15
| | | | | | | | | | | | | | | | | | | 2002-03-12 Jeffrey Stedfast <fejj@ximian.com> * camel-digest-store.c (camel_digest_store_new): Now takes a url argument. * camel-digest-folder.c (digest_add_multipart): Fixed some memory corruption and also modified to use CAMEL_IS_MIME_MESSAGE() rather than comparing content-type strings. (digest_get_message): Fixed a logic blooper. * camel-folder-summary.c (camel_message_info_new_from_header): Set the date fields of the CamelMessageInfo as well. This may even fix some filter-related bugs where the user was trying to compare dates. svn path=/trunk/; revision=16126
* A pretty empty store implementation to be the parent store of aJeffrey Stedfast2002-03-121-0/+7
| | | | | | | | | | | 2002-03-11 Jeffrey Stedfast <fejj@ximian.com> * camel-digest-store.c: A pretty empty store implementation to be the parent store of a CamelDigestFolder. * camel-digest-folder.c: Updated to reference it's parent store. svn path=/trunk/; revision=16113
* Allow any leaf part to be a message/rfc822 part. (digest_get_uids):Jeffrey Stedfast2002-03-121-0/+9
| | | | | | | | | | | | | 2002-03-11 Jeffrey Stedfast <fejj@ximian.com> * camel-digest-folder.c (camel_digest_folder_new): Allow any leaf part to be a message/rfc822 part. (digest_get_uids): Recurse the mime structure and add all message/rfc822 parts and use a uid scheme similar to IMAP's mime part naming convention. (digest_get_message): Decode the uid to get the correct mime part. svn path=/trunk/; revision=16111
* Change the order of the mailing list magic patterns so that the moreEttore Perazzoli2002-03-121-0/+6
| | | | | | | | * camel-mime-utils.c: Change the order of the mailing list magic patterns so that the more mailing-list specific ones are on the top. svn path=/trunk/; revision=16101
* These fixes should fix bug #21737.Jeffrey Stedfast2002-03-121-0/+12
| | | | | | | | | | | | | | | | 2002-03-11 Jeffrey Stedfast <fejj@ximian.com> These fixes should fix bug #21737. * providers/smtp/camel-smtp-transport.c (connect_to_server_wrapper): Same as with the POP code. * providers/pop3/camel-pop3-store.c (connect_to_server_wrapper): Slight restructuring of the if-statements for the USE_SSL_ALWAYS case so that we can't possibly return TRUE unless we really did connect successfully. svn path=/trunk/; revision=16097
* Rename the OpenSSL implementation of things to match the NSSDan Winship2002-03-111-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implementation so that callers don't need to care which one is being used. * camel-tcp-stream-openssl.c: Implement CamelTcpStreamSSL, not CamelTcpStreamOpenSSL. Rename methods as well. Replace the camel-tcp-stream-openssl.h include with camel-tcp-stream-ssl.h. * camel-tcp-stream-openssl.h: Gone. * camel-tcp-stream-ssl.c: Add a note explaining that this implementation is only used for NSS, and that OpenSSL's implementation is in another file. (Should probably do some CVS renaming magic at some point.) * camel-http-stream.c (http_connect): Remove OpenSSL refs; the previously-NSS-specific code works for both now. * camel-remote-store.c: Likewise. * providers/smtp/camel-smtp-transport.c: Likewise. * providers/pop3/camel-pop3-store.c: Likewise. * Makefile.am (libcamelinclude_HEADERS): Remove camel-tcp-stream-openssl.h svn path=/trunk/; revision=16093
* Remove this: it couldn't be generically used, because different subclassesDan Winship2002-03-111-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * camel-tcp-stream.c (camel_tcp_stream_get_socket): Remove this: it couldn't be generically used, because different subclasses returned entirely different types of data. (camel_tcp_stream_get_local_address, camel_tcp_stream_get_remote_address): Add these to replace what get_socket was being used for. (camel_tcp_address_new, camel_tcp_address_free): Utility functions for get_{local,remote}_address. * providers/smtp/camel-smtp-transport.c: Change localaddr to a CamelTcpAddress *. (connect_to_server): Call camel_tcp_stream_get_local_address to get the local IP address. (smtp_disconnect): free localaddr. (smtp_helo): Update for localaddr change. * camel-tcp-stream-raw.c (stream_get_socket): Remove (stream_get_local_address, stream_get_remote_address): Implement. * camel-tcp-stream-ssl.c (stream_get_socket): Remove (stream_get_local_address, stream_get_remote_address): Implement. * camel-tcp-stream-openssl.c (stream_get_socket): Remove (stream_get_local_address, stream_get_remote_address): Implement. svn path=/trunk/; revision=16092
* Don't call camel_remote_store_get_authtypes since we no longer subclassJeffrey Stedfast2002-03-091-0/+18
| | | | | | | | | | | | | | | | | | | | | | 2002-03-08 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-provider.c (camel_provider_module_init): Don't call camel_remote_store_get_authtypes since we no longer subclass camel-remote-store. * providers/pop3/camel-pop3-engine.c: Added STARTTLS to the capabilities to look for. (camel_pop3_engine_reget_capabilities): New function to re-get capabilities. * providers/pop3/camel-pop3-store.c: Updated to not subclass CamelRemoteStore. (connect_to_server): Rewritten to not depend on CamelRemoteStore's connect implementation. Also added support for STLS (aka STARTTLS). svn path=/trunk/; revision=15998
* Add support for hash type RIPEMD160.Jeffrey Stedfast2002-03-081-0/+9
| | | | | | | | | | | | | | | 2002-03-07 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-mime.c (camel_pgp_mime_part_sign): Add support for hash type RIPEMD160. * camel-cipher-context.h: Add RIPEMD160 hash type. * camel-pgp-context.c (pgp_sign): Updated to consider hash function for pgp5 and pgp6. (pgp_clearsign): Same. svn path=/trunk/; revision=15969
* Add a timeout on the select. (stream_write): Same.Jeffrey Stedfast2002-03-081-0/+6
| | | | | | | | | | 2002-03-07 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-openssl.c (stream_read): Add a timeout on the select. (stream_write): Same. svn path=/trunk/; revision=15963
* Fix to work with OpenSSL.Jeffrey Stedfast2002-03-071-0/+3
| | | | | | | | | 2002-03-06 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (connect_to_server): Fix to work with OpenSSL. svn path=/trunk/; revision=15959
* compile fixes. (camel_tcp_stream_openssl_enable_ssl): Check to make sureJeffrey Stedfast2002-03-071-0/+8
| | | | | | | | | | | | 2002-03-06 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-openssl.c: compile fixes. (camel_tcp_stream_openssl_enable_ssl): Check to make sure that the sockfd != -1, it's not enough to check that it is non-zero. Also set the sockfd to -1 on fail (open_ssl_connection will close the sockfd on fail). svn path=/trunk/; revision=15953
* Make this compile.Dan Winship2002-03-071-0/+5
| | | | | | | * providers/smtp/camel-smtp-transport.c (smtp_construct): Make this compile. svn path=/trunk/; revision=15946
* Removed. Glory glory hallelujah! (ssl_bad_cert): No longer callsJeffrey Stedfast2002-03-061-0/+7
| | | | | | | | | | | 2002-03-05 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (save_ssl_cert): Removed. Glory glory hallelujah! (ssl_bad_cert): No longer calls ssl_save_cert or ssl_cert_is_saved. svn path=/trunk/; revision=15938
* Start the ssl stream off in non-ssl mode (useful for STARTTLS).Jeffrey Stedfast2002-03-061-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-03-05 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-openssl.c (camel_tcp_stream_openssl_new_raw): Start the ssl stream off in non-ssl mode (useful for STARTTLS). (camel_tcp_stream_openssl_enable_ssl): New function to toggle an ssl stream into ssl mode. (open_ssl_connection): Close the sockfd on fail so our caller doesn't have to - this also allows us to save the original errno. (stream_connect): If we want ssl mode, do our ssl stuff. (camel_tcp_stream_openssl_class_init): Init some SSL stuff here instead of in open_ssl_connection since these only ever need to be called once. (stream_read): Only use SSL_read if we are in ssl mode. (stream_write): Only use SSL_write if we are in ssl mode. * providers/smtp/camel-smtp-transport.c (smtp_helo): Check for the STARTTLS extension. (connect_to_server): Try to use STARTTLS whenever possible rather than the old way of doing things. (connect_to_server_wrapper): Wrapper around connect_to_server() to first try STARTTLS and then attempt normal SSL mode if we can't connect via STARTTLS. * camel-tcp-stream-ssl.c (camel_tcp_stream_ssl_enable_ssl): New function to toggle an ssl stream into ssl mode. (camel_tcp_stream_ssl_new_raw): Start the ssl stream off in non-ssl mode (useful for STARTTLS). (stream_connect): Only connect in SSL mode if required. svn path=/trunk/; revision=15937
* Add c++ armoring.Jeffrey Stedfast2002-03-021-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-03-01 Jeffrey Stedfast <fejj@ximian.com> * camel-vtrash-folder.h: * camel-vee-store.h: * camel-vee-folder.h: * camel-stream-null.h: * camel-stream-filter.h: * camel-store-summary.h: * camel-news-address.h: * camel-mime-utils.h: * camel-mime-parser.h: * camel-mime-filter-save.h: * camel-mime-filter-linewrap.h: * camel-mime-filter-index.h: * camel-mime-filter-html.h: * camel-mime-filter.h: * camel-mime-filter-from.h: * camel-mime-filter-crlf.h: * camel-mime-filter-chomp.h: * camel-mime-filter-charset.h: * camel-mime-filter-bestenc.h: * camel-mime-filter-basic.h: * camel-internet-address.h: * camel-folder-thread.h: * camel-folder-summary.h: * camel-folder-search.h: * camel-filter-driver.h: * camel-charset-map.h: * camel-address.h: Add c++ armoring. * camel-object.h: s/class/klass svn path=/trunk/; revision=15885
* Reverted my pgp/mime fixes here too.Jeffrey Stedfast2002-03-021-0/+10
| | | | | | | | | | | | | | 2002-03-01 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (camel_mime_part_construct_content_from_parser): Reverted my pgp/mime fixes here too. * camel-mime-part.c (write_to_stream): Removed my pgp/mime raw stream hack, this is causing problems such as some messages to not displaying, view->source not working at all, etc. svn path=/trunk/; revision=15883
* Changed offset variables from int's to off_t's since the system mayJeffrey Stedfast2002-03-011-0/+3
| | | | | | | | | 2002-02-28 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-parser.c: Changed offset variables from int's to off_t's since the system may support large files. svn path=/trunk/; revision=15874
* Rearrange the save filter stuff so that we save raw streams for all mimeJeffrey Stedfast2002-03-011-0/+9
| | | | | | | | | | | | | 2002-02-28 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (camel_mime_part_construct_content_from_parser): Rearrange the save filter stuff so that we save raw streams for all mime parts. If the mime part turns out to be a multupart, then don't bother saving the raw stream, we only need to save the raw stream for leaf parts. svn path=/trunk/; revision=15873
* Don't #include camel-mime-filter-save.h, we don't use it.Jeffrey Stedfast2002-02-281-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | 2002-02-27 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.h: Don't #include camel-mime-filter-save.h, we don't use it. * camel-file-utils.c: Fixed a few 'might be used uninitialized' warnings which were real problems. * camel-mime-part-utils.c (camel_mime_part_construct_content_from_parser): Save the raw mime stream for any/all signed parts. * camel-mime-part.c (camel_mime_part_init): Initialize our raw stream to NULL. (camel_mime_part_finalize): Unref our raw stream, if we have one. (write_to_stream): If we have a raw stream, write that out instead of re-encoding. * camel-mime-filter-save.[c,h]: Rewritten to save to a stream rather than a file. svn path=/trunk/; revision=15867
* Use the FOLD_SIZE as a recommended folding size, but add a newNot Zed2002-02-281-0/+6
| | | | | | | | | | 2002-02-28 Not Zed <NotZed@Ximian.com> * camel-mime-utils.c (header_fold): Use the FOLD_SIZE as a recommended folding size, but add a new FOLD_MAX_SIZE (=998, the smtp max line size) as the hard limit for any output. svn path=/trunk/; revision=15866
* New stream filter that chomps excess trailing whitespace from the end ofJeffrey Stedfast2002-02-281-0/+13
| | | | | | | | | | | | | | | | | 2002-02-27 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-chomp.c (camel_mime_filter_chomp_new): New stream filter that chomps excess trailing whitespace from the end of the stream. This is needed to update the PGP/MIME code to comply with rfc3156. * camel-pgp-mime.c (camel_pgp_mime_part_verify): Don't attach a from filter, if it ain't from-filtered already, then we'll just be breaking stuff. To become rfc3156 compliant, add a chomp filter here. (camel_pgp_mime_part_sign): Add a chomp filter here too. svn path=/trunk/; revision=15863
* Changed header formatted table to contain a pointer to an output function,Not Zed2002-02-271-0/+18
| | | | | | | | | | | | | | | | | | | | | | 2002-02-27 Not Zed <NotZed@Ximian.com> * camel-mime-part.c (init_header_name_table): Changed header formatted table to contain a pointer to an output function, and added in-reply-to and references headers. (write_references): New function to write out references header, folded properly. It only approximates based on the last >, but it should be adequate and will also handle invalid headers. (write_fold): Function to write out headers folded. Since this is the default it isn't required. (write_raw): Write out an already formatted header, e.g. most of the rest. (write_to_stream): Lookup header output function, if we have one, use that, otherwise fold header using basic (dumb) function. This is all for #14779. A better fix is probably do have the headers always stored formatted, but that can wait. svn path=/trunk/; revision=15852
* Allow all multiparts that contain message/rfc822 attachments.Jeffrey Stedfast2002-02-261-0/+6
| | | | | | | | | | 2002-02-25 Jeffrey Stedfast <fejj@ximian.com> * camel-digest-folder.c (camel_digest_folder_new): Allow all multiparts that contain message/rfc822 attachments. (digest_get_uids): Only assign uids to message parts. svn path=/trunk/; revision=15836
* Set the 'name' parameter on the Content-Type too. Fixes bug #20779.Jeffrey Stedfast2002-02-231-0/+5
| | | | | | | | | 2002-02-22 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part.c (camel_mime_part_set_filename): Set the 'name' parameter on the Content-Type too. Fixes bug #20779. svn path=/trunk/; revision=15805
* Pass --always-trust to gpg (requested by users). (pgp_clearsign): Same.Jeffrey Stedfast2002-02-151-0/+7
| | | | | | | | | | | 2002-02-14 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_sign): Pass --always-trust to gpg (requested by users). (pgp_clearsign): Same. (pgp_encrypt): Here too. svn path=/trunk/; revision=15731
* Since the AUTH token sometimes uses '=' instead of whitespace, don't useJeffrey Stedfast2002-02-131-0/+6
| | | | | | | | | | 2002-02-12 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_helo): Since the AUTH token sometimes uses '=' instead of whitespace, don't use smtp_token_next here. svn path=/trunk/; revision=15688
* Duh, when we grab the apop stamp it needs to include the <> as well, INot Zed2002-02-091-0/+10
| | | | | | | | | | | | | | 2002-02-09 Not Zed <NotZed@Ximian.com> * providers/pop3/camel-pop3-engine.c (get_capabilities): Duh, when we grab the apop stamp it needs to include the <> as well, I even read the rfc, silly me. * providers/pop3/camel-pop3-store.c (pop3_try_authenticate): Doh, when iterating the authtype list, it helps to goto the next node. Found with help from miles. svn path=/trunk/; revision=15636
* Removed some <<< stuff i missed.Michael Zucci2002-02-081-1/+0
| | | | svn path=/trunk/; revision=15607
* The day number has to be 2 chars wide, space filled to work properly withNot Zed2002-02-081-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-02-08 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-summary.c (camel_spool_summary_build_from): The day number has to be 2 chars wide, space filled to work properly with pine, etc. * providers/local/camel-spoold-store.[ch]: new type of provider 'spool directory', which lets you view external mbox dirs without adding any extra cruft. Perhaps it should use . files to store summaries? Still a bit experimental, there's a warning when you select it in the account editor. Finished off most of #1185. Can't rename or move folders. * camel-mime-utils.c (header_decode_date): If the date is 100->1900 then we actually want to use it as the year in the tm struct, not year+100. e.g. year 102 -> 2002, not 2102. 2002-02-07 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-store.c (get_folder): Pass path into spool_folder_new. * providers/local/camel-spool-folder.c (camel_spool_folder_new): (camel_spool_folder_construct): Take the full path to the folder and use that as the file path, independent of the full_name we use. 2002-02-07 Not Zed <NotZed@Ximian.com> * providers/local/camel-local-provider.c: Added new type, spoold provider, spoold: for local directories. * providers/imap/camel-imap-store.c (get_one_folder_offline): Create offline uri's in a compatible manner to online ones. svn path=/trunk/; revision=15606
* Implementation of NTLM (aka "Secure Password Authentication") auth, takenDan Winship2002-02-081-0/+15
| | | | | | | | | | | | | | | | | * camel-sasl-ntlm.c: Implementation of NTLM (aka "Secure Password Authentication") auth, taken from soup. * Makefile.am (libcamel_la_SOURCES, libcamel_la_HEADERS): Add camel-sasl-ntlm. * camel-sasl.c: Add refs to camel-sasl-ntlm. * providers/imap/camel-imap-store.c (try_auth): Use imap_next_word() to skip over the "+ " of the continuation rather than just "resp + 2" since Exchange (incorrectly) returns "+" instead of "+ " for an empty continuation response. svn path=/trunk/; revision=15605
* Remove the CAMEL_MESSAGE_NEEDS_REPLY flag, we no longer will be usingJeffrey Stedfast2002-02-071-0/+5
| | | | | | | | | 2002-02-06 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.h: Remove the CAMEL_MESSAGE_NEEDS_REPLY flag, we no longer will be using this. svn path=/trunk/; revision=15586
* Use camel_mime_parser_read to read internal parser data.Jeffrey Stedfast2002-02-051-0/+1
| | | | | | | | | | | 2002-02-04 Jeffrey Stedfast <fejj@ximian.com> * camel-http-stream.c (stream_read): Use camel_mime_parser_read to read internal parser data. (camel_http_stream_get_content_type): Implemented. (http_method_invoke): Use HTTP/1.0 instead of 1.1 svn path=/trunk/; revision=15572
* Use camel_mime_parser_read to read internal parser data.Jeffrey Stedfast2002-02-051-0/+6
| | | | | | | | | | | | 2002-02-04 Jeffrey Stedfast <fejj@ximian.com> * camel-http-stream.c (stream_read): Use camel_mime_parser_read to read internal parser data. (camel_http_stream_get_content_type): Implemented. * camel-mime-utils.c (header_decode_int): Made public. svn path=/trunk/; revision=15571
* Added. New stream for HTTP requests (currently supported are GET andJeffrey Stedfast2002-02-051-0/+3
| | | | | | | | | | | | 2002-02-04 Jeffrey Stedfast <fejj@ximian.com> * camel-http-stream.[c,h]: Added. New stream for HTTP requests (currently supported are GET and HEAD). * camel-tcp-stream-ssl.c (stream_connect): Call set_errno appropriately. svn path=/trunk/; revision=15567
* Call set_errno appropriately.Jeffrey Stedfast2002-02-051-0/+5
| | | | | | | | | 2002-02-04 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (stream_connect): Call set_errno appropriately. svn path=/trunk/; revision=15566
* Oops, this was converting foo@[blah] to foo@[ blah ], fixed.Not Zed2002-01-311-0/+5
| | | | | | | | | 2002-01-31 Not Zed <NotZed@Ximian.com> * camel-mime-utils.c (header_decode_domain): Oops, this was converting foo@[blah] to foo@[ blah ], fixed. svn path=/trunk/; revision=15535
* Use "pop" instead of "pop3" so current configurations continue to work.Jeffrey Stedfast2002-01-311-0/+5
| | | | | | | | | 2002-01-30 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-provider.c: Use "pop" instead of "pop3" so current configurations continue to work. svn path=/trunk/; revision=15532
* Changed name from "NT Login" to simply "Login".Not Zed2002-01-301-0/+20
| | | | | | | | | | | | | | | | | | | | | | | 2002-01-30 Not Zed <NotZed@Ximian.com> * camel-sasl-login.c: Changed name from "NT Login" to simply "Login". * providers/pop3/*: Entirely new pop implmentation, supporting pipelining. 2002-01-29 Not Zed <NotZed@Ximian.com> * camel-data-cache.c (free_busy): We dont want to unref the stream, instead, stop listening to the finalised events, and free the path only. 2002-01-25 Not Zed <NotZed@Ximian.com> * camel-data-cache.c (stream_finalised): Remove the object from the busy_stream hashtable, not the busy_path hashtable. svn path=/trunk/; revision=15521
* Added more kludge to an existing Exchange IMAP 5.5 kludge to work aroundJeffrey Stedfast2002-01-301-0/+6
| | | | | | | | | | 2002-01-29 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): Added more kludge to an existing Exchange IMAP 5.5 kludge to work around it returning multiple messages with the same UIDs. svn path=/trunk/; revision=15513
* Handle Resent headers too.Jeffrey Stedfast2002-01-291-0/+3
| | | | | | | | | | | 2002-01-28 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-message.c (process_header): Handle Resent headers too. * camel-mime-message.h: Added Resent-* #defines. svn path=/trunk/; revision=15504
* Added Resent-* #defines.Jeffrey Stedfast2002-01-291-0/+2
| | | | | | | | 2002-01-28 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-message.h: Added Resent-* #defines. svn path=/trunk/; revision=15503
* Use while (node->next) instead of while (node)Jeffrey Stedfast2002-01-291-0/+3
| | | | | | | | | 2002-01-28 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_remove_rule_by_name): Use while (node->next) instead of while (node) svn path=/trunk/; revision=15502
* New function to decode an enhanced status code. (smtp_set_exception): SetsJeffrey Stedfast2002-01-291-0/+14
| | | | | | | | | | | | | | | | | | 2002-01-28 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_decode_status_code): New function to decode an enhanced status code. (smtp_set_exception): Sets an exception based on the Enhanced-Status-Code. (esmtp_get_authtypes): Don't diplicate the key in the hash since the key and value are the same. (smtp_rcpt): Include the failed recipient in the error message to be more helpful to the user. * camel-mime-utils.c (hex_decode): Make sure to allocate enough for the NUL byte. svn path=/trunk/; revision=15500
* Use flags rather than a bunch of gboolean variables. (smtp_connect): Same.Jeffrey Stedfast2002-01-291-0/+17
| | | | | | | | | | | | | | | | | | | | | 2002-01-28 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_construct): (connect_to_server): Use flags rather than a bunch of gboolean variables. (smtp_connect): Same. (smtp_mail): Here too. Use the enhanced status codes if available. (smtp_data): And again here. (smtp_helo): Finally here. Also detect the ENHANCEDSTATUSCODES extension. (smtp_rcpt): Use the enhanced status codes if available. (smtp_rset): Here too. (smtp_quit): And finally here. * camel-transport.h: Removed gboolean supports_8bit since this is pretty local to only SMTP for now. svn path=/trunk/; revision=15498
* Remove some old cruft.Ettore Perazzoli2002-01-251-0/+4
| | | | | | * Makefile.am: Remove some old cruft. svn path=/trunk/; revision=15463
* Clean up some of the Makefiles so we dont' link every library multipleEttore Perazzoli2002-01-251-0/+9
| | | | | | times, causing big libtool 1.4 pain. svn path=/trunk/; revision=15461
* Call the beep callback function.Jeffrey Stedfast2002-01-251-0/+7
| | | | | | | | | | | 2002-01-24 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (do_beep): Call the beep callback function. (camel_filter_driver_set_system_beep_func): New function to set the beep callback. svn path=/trunk/; revision=15459
* New function to remove a filter rule by name.Jeffrey Stedfast2002-01-231-0/+5
| | | | | | | | | 2002-01-22 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_remove_rule_by_name): New function to remove a filter rule by name. svn path=/trunk/; revision=15425
* As a temporary solution, just printf ("\a"); to make a beep :-)Jeffrey Stedfast2002-01-221-0/+13
| | | | | | | | | | | | | | | | | 2002-01-21 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (do_beep): As a temporary solution, just printf ("\a"); to make a beep :-) * providers/imap/camel-imap-command.c (imap_command_strdup_vprintf): Encode the mailbox to UTF-7 here. * providers/imap/camel-imap-utils.c (imap_parse_list_response): Decode the mailbox name as we parse the list response. (imap_mailbox_decode): It's only an illegal mailbox name if it didn't switch back to US-ASCII mode. svn path=/trunk/; revision=15421
* New function to decode an IMAP mailbox name from modified UTF-7 encodingJeffrey Stedfast2002-01-191-0/+8
| | | | | | | | | | | | 2002-01-18 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_mailbox_decode): New function to decode an IMAP mailbox name from modified UTF-7 encoding to UTF-8. (imap_mailbox_encode): New function to convert a mailbox name from UTF-8 to IMAP's modified UTF-7 encoding. svn path=/trunk/; revision=15361
* Stop uudecoding once the CAMEL_UUDECODE_STATE_END state bit gets set. SetJeffrey Stedfast2002-01-181-0/+15
| | | | | | | | | | | | | | | | | | | 2002-01-17 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-basic.c (filter): Stop uudecoding once the CAMEL_UUDECODE_STATE_END state bit gets set. Set the CAMEL_UUDECODE_STATE_BEGIN state bit once we find the begin line. (reset): No longer have uu_begin or uulen state variables, these are now stuffed into a single state variable. * camel-mime-utils.c (uudecode_step): No longer needs a uulen argument and also keeps track of whether or not the end of the encoded data has been found in 'state'. (uuencode_step): Now stuffs uulen into state so that the uulen argument is no longer needed. (uuencode_close): Same. svn path=/trunk/; revision=15349
* If we don't want to corrupt the uuencoded data by overwriting it withJeffrey Stedfast2002-01-171-0/+10
| | | | | | | | | | | | | | 2002-01-16 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-basic.c (filter): If we don't want to corrupt the uuencoded data by overwriting it with base64 decoded data afterward, we need to add a break statement! * camel-folder-summary.c (summary_build_content_info): Add code to add a uu filter. (camel_folder_summary_finalize): Unref the uuencode filter. svn path=/trunk/; revision=15347
* Fixed slight logic error to find the uuencode begin line. Fixes bugJeffrey Stedfast2002-01-171-0/+5
| | | | | | | | | 2002-01-16 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-basic.c (filter): Fixed slight logic error to find the uuencode begin line. Fixes bug #18754. svn path=/trunk/; revision=15346
* Updated to match the new send_to API. (smtp_send): Get the from addressJeffrey Stedfast2002-01-161-0/+11
| | | | | | | | | | | | | | | | | 2002-01-15 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_send_to): Updated to match the new send_to API. (smtp_send): Get the from address and pass that along to smtp_send_to(). * providers/sendmail/camel-sendmail-transport.c (sendmail_send_to): Updated to match the new send_to API. * camel-transport.c (camel_transport_send_to): Now takes a from argument too. svn path=/trunk/; revision=15328
* Sort the needheaders UID array and fixed to respect the UID_SET_LIMIT.Jeffrey Stedfast2002-01-161-0/+15
| | | | | | | | | | | | | | 2002-01-15 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): Sort the needheaders UID array and fixed to respect the UID_SET_LIMIT. This should now finish the fixification of bug #2529. There's still the possible issue that a command-line (The only command-line I can think of that can still be too long is a SEARCH command, but this can't possibly be fixed until we rewrite the imap code to use Zucchi's ImapEngine idea). svn path=/trunk/; revision=15327
* Updated to use the new imap_uid_array_to_set() interface.Jeffrey Stedfast2002-01-151-0/+17
| | | | | | | | | | | | | | | | | | | | | 2002-01-14 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_expunge_uids_online): Updated to use the new imap_uid_array_to_set() interface. (imap_expunge_uids_resyncing): Same. (do_copy): Here too. (imap_update_summary): Added a FIXME comment to rewrite allowing for a uid-set limitation. (get_matching): Copy some of the logic over from imap_uid_adday_to_set() to limit the length of the uid-set string. (imap_sync_online): Added a comment to explain what is going on with get_matching() since the behavior has changed slightly. * providers/imap/camel-imap-utils.c (imap_uid_array_to_set): Modify the interface so that we can limit the size of the uid set string returned. svn path=/trunk/; revision=15318
* Rewritten to use a cache for body searches when online. Will need someNot Zed2002-01-141-0/+16
| | | | | | | | | | | | | | | | | | | | 2002-01-14 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-search.c (imap_body_contains): Rewritten to use a cache for body searches when online. Will need some heavy testing but so far seems to be beneficial. * providers/imap/camel-imap-folder.c (imap_search_by_expression, search_by_uids): dont initialise search object here. (camel_imap_folder_new): Setup search object here with pointer to cache dir. 2001-12-01 Not Zed <NotZed@Ximian.com> * camel-store-summary.[ch]: New class to store a store's folder list in. Not yet completed. svn path=/trunk/; revision=15314
* Kludge around a bug in Exchange 5.5 that reports 2 messages with the sameJeffrey Stedfast2002-01-121-0/+6
| | | | | | | | | | 2002-01-11 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): Kludge around a bug in Exchange 5.5 that reports 2 messages with the same UID. Fixes bug #17694. Replaces the fix from yesterday. svn path=/trunk/; revision=15298
* If PATH_MAX doesn't exist, use _POSIX_PATH_MAX.Jeffrey Stedfast2002-01-111-0/+3
| | | | | | | | | 2002-01-10 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-local-folder.c: If PATH_MAX doesn't exist, use _POSIX_PATH_MAX. svn path=/trunk/; revision=15291
* If mi is NULL, don't bother updating it. Should fix bug #17694.Jeffrey Stedfast2002-01-111-0/+5
| | | | | | | | | 2002-01-10 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): If mi is NULL, don't bother updating it. Should fix bug #17694. svn path=/trunk/; revision=15290
* #include camel-mime-filter-tohtml.hJeffrey Stedfast2002-01-111-0/+2
| | | | | | | | 2002-01-10 Jeffrey Stedfast <fejj@ximian.com> * camel.h: #include camel-mime-filter-tohtml.h svn path=/trunk/; revision=15285
* Kludge around Microsoft Exchange 5.5 (bug #5348) by forgetting ourJeffrey Stedfast2002-01-111-0/+7
| | | | | | | | | | | 2002-01-10 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): Kludge around Microsoft Exchange 5.5 (bug #5348) by forgetting our currently selected folder and re-SELECTing it so that the Exchange server has a chance to realise it has new messages. svn path=/trunk/; revision=15284
* fixed changelogJeffrey Stedfast2002-01-101-4/+5
| | | | svn path=/trunk/; revision=15277
* If the mbox file is a symlink, follow the symlink and get the One TrueJeffrey Stedfast2002-01-101-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-01-09 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-mbox-folder.c (camel_mbox_folder_new): If the mbox file is a symlink, follow the symlink and get the One True Path so that we can rewrite the mbox later without worrying about clobbering the symlink. 2002-01-08 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-search.c (TODO): There are a few sexp callbacks that could be modified to use fms->info rather than using a message object (like date and possibly mlist stuff) but *only* if the date exists on the CamelMessageInfo object (since it may be blank except for message flags). (camel_filter_search_get_message): New internal convenience function to make sure that the FilterMessageSearch has loaded the message (and to load the message if this isn't the case). (check_header): Call camel_filter_search_get_message(). (header_exists): Same. (header_regex): Here too. (header_full_regex): And here. (body_contains): Again here. (body_regex): Here too. (get_sent_date): Here also. (get_received_date): Same. (get_source): Here if we need to. (camel_filter_search_match): Now takes a callback function/data pair for on-demand message loading so that we don't necessarily have to load the message if the defined filter rules don't require it. * camel-filter-driver.c (camel_filter_driver_filter_folder): Don't bother fetching the message here, let camel_filter_driver_filter_message() worry about this. (get_message_cb): New utility callback to fetch a message. (camel_filter_driver_filter_message): Only fetch the message if we absolutely need it to get a CamelMessageInfo. Instead of passing a message object to camel_filter_search_match(), pass get_message_cb and some user_data so that the matching code can fetch the message on demand. svn path=/trunk/; revision=15276
* Flush the only-once actions.Jeffrey Stedfast2002-01-081-0/+13
| | | | | | | | | | | | | | | | | | | 2002-01-07 Jeffrey Stedfast <fejj@ximian.com> * camel-folder.c (filter_filter): Flush the only-once actions. * camel-filter-driver.c (camel_filter_driver_filter_message): Don't increment a filtered_count here any longer. (camel_filter_driver_reset_filtered_count): Removed. (camel_filter_driver_get_filtered_count): Removed. (do_beep): New action. (play_sound): New action to play a sound (do_only_once): Another new action. (camel_filter_driver_finalise): Free the only_once hash if the driver has not been "flushed". (camel_filter_driver_flush): Flush all of the only-once actions. svn path=/trunk/; revision=15262
* Moved windows-1251 to the end of the list since it contains the euro andJeffrey Stedfast2002-01-081-0/+8
| | | | | | | | | | | | 2002-01-07 Jeffrey Stedfast <fejj@ximian.com> * camel-charset-map.c: Moved windows-1251 to the end of the list since it contains the euro and we'd prefer to use iso-8859-15 when the euro is requested than a windows charset if possible. * camel-charset-map-private.h: Regenerated. svn path=/trunk/; revision=15256
* Don't try setting a content-type parameter if either the name or value isJeffrey Stedfast2002-01-051-0/+7
| | | | | | | | | | | 2001-12-12 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.c (content_info_load): Don't try setting a content-type parameter if either the name or value is NULL. * camel-mime-utils.c (header_set_param): NULL-protection. svn path=/trunk/; revision=15248
* Do more like what mutt does so hopefully this'll fix bug #16363 andJeffrey Stedfast2002-01-031-0/+5
| | | | | | | | | 2002-01-02 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (ssl_bad_cert): Do more like what mutt does so hopefully this'll fix bug #16363 and #16300. svn path=/trunk/; revision=15226
* Completely rewritten. It is now a load faster and a heck of a lot moreJeffrey Stedfast2001-12-221-0/+12
| | | | | | | | | | | | | | | | 2001-12-21 Jeffrey Stedfast <fejj@ximian.com> * broken-date-parser.c (parse_broken_date): Completely rewritten. It is now a load faster and a heck of a lot more accurate, also now returns a time_t and sets the saveoffset variable rather than returning a new char* buffer for the normal camel date parser to re-parse. This saves a fair number of cpu cycles :-) * camel-mime-utils.c (header_decode_date): Cleanup the broken date parsing code. svn path=/trunk/; revision=15205
* Change the prototype for camel_address_get_type to return a CamelTypeJeffrey Stedfast2001-12-211-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | 2001-12-20 Jeffrey Stedfast <fejj@ximian.com> * camel-address.h: Change the prototype for camel_address_get_type to return a CamelType (since internally this is what it returns and also in case we decide to write a replacement for the current CamelObject it'd be easier to drop in). * camel-internet-address.h: Same but for camel_internet_address_get_type() * providers/smtp/camel-smtp-transport.c (smtp_send_to): Updated to use a CamelAddress of recipients. (smtp_send): Since smtp_send_to now takes a CamelAddress recipients argument, our lives have been simplified and we can now just concat To/Cc/Bcc into a recipients addr and send away. * providers/sendmail/camel-sendmail-transport.c (sendmail_send_to): Updated to use a CamelAddress of recipients. * camel-transport.c (camel_transport_send_to): Now takes a CamelAddress argument for the recipient list rather than a GList. svn path=/trunk/; revision=15197
* New function to map ISO charsets to the Windows charsets.Jeffrey Stedfast2001-12-181-5/+21
| | | | | | | | | | | | | | | 2001-12-17 Jeffrey Stedfast <fejj@ximian.com> * camel-charset-map.c (camel_charset_iso_to_windows): New function to map ISO charsets to the Windows charsets. * camel-mime-part-utils.c (broken_windows_charset): Detect Windows charsets. (simple_data_wrapper_construct_from_parser): Simplify a tad and also check for iso-8859-* charsets that are really Windows charsets. Fixes bug #12631. svn path=/trunk/; revision=15144
* only use major and minor version in the camel providerdir, not micro and nanoDan Winship2001-12-181-0/+16
| | | | svn path=/trunk/; revision=15121
* Reverted my previous changes here since it doesn't actually work afterall.Jeffrey Stedfast2001-12-171-0/+8
| | | | | | | | | | | | 2001-12-16 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (get_content): Reverted my previous changes here since it doesn't actually work afterall. * providers/imap/camel-imap-wrapper.c (imap_wrapper_hydrate): Update to do uudecoding when appropriate. svn path=/trunk/; revision=15098
* Try to use the original boundary so luis will stop bugging me about "dataJeffrey Stedfast2001-12-171-1/+3
| | | | | | | | | | | | 2001-12-16 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (get_content): Try to use the original boundary so luis will stop bugging me about "data corruption". Also preserve other params in the multipart content-type by dumping it to a string and setting it on the mime part. svn path=/trunk/; revision=15094
* Try to use the original boundary so luis will stop bugging me about "dataJeffrey Stedfast2001-12-171-0/+6
| | | | | | | | | | 2001-12-16 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (get_content): Try to use the original boundary so luis will stop bugging me about "data corruption". svn path=/trunk/; revision=15093
* Reset the filtered_count to zero.Jeffrey Stedfast2001-12-151-0/+13
| | | | | | | | | | | | | | | | | 2001-12-14 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_reset_filtered_count): Reset the filtered_count to zero. (camel_filter_driver_get_filtered_count): Return the private filtered_count value. (camel_filter_driver_filter_message): Increment the filtered_count. (camel_filter_driver_set_shell_exec_func): New function to set the shell-exec func. (shell_exec): New ESExp filter action callback. svn path=/trunk/; revision=15087
* Removed x-inline-pgp-hack kludge because it doesn't work.Jeffrey Stedfast2001-12-151-0/+6
| | | | | | | | | | 2001-12-14 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-mime.c (camel_pgp_mime_part_verify): Removed x-inline-pgp-hack kludge because it doesn't work. (camel_pgp_mime_part_decrypt): Same. svn path=/trunk/; revision=15077
* include stdlib.h (for alloca on freebsd) and only include alloca.h ifChris Toshok2001-12-141-0/+5
| | | | | | | | | 2001-12-13 Chris Toshok <toshok@ximian.com> * camel-data-cache.c: include stdlib.h (for alloca on freebsd) and only include alloca.h if HAVE_ALLOCA_H is defined. svn path=/trunk/; revision=15033
* Fixes #17085Zbigniew Chyla2001-12-141-0/+9
| | | | | | | | | | | | | 2001-12-11 Zbigniew Chyla <cyba@gnome.pl> Fixes #17085 * camel-charset-map.c: Added #include <errno.h>. * camel-charset-map-private.h: Recreated (following instructions from camel-charset-map.c) svn path=/trunk/; revision=15029
* Keep a name-to-type hash so that we can make sure that the type has notJeffrey Stedfast2001-12-141-0/+9
| | | | | | | | | | | | | 2001-12-11 Jeffrey Stedfast <fejj@ximian.com> * camel-object.c (camel_type_register): Keep a name-to-type hash so that we can make sure that the type has not yet been registered (prevents a race condition such as the one in bug #16559). * camel-service.c (camel_service_connect): Make sure that the connect_op is non-NULL before unregistering/unreffing it. svn path=/trunk/; revision=15021
* Protect against either of the types being NULL.Jeffrey Stedfast2001-12-111-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-12-04 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_content_type_simple): Protect against either of the types being NULL. 2001-12-05 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-basic.c (filter): If complete() allocates len+2 bytes for the out buffer, so should this. See bug #16371 for an example case. 2001-12-05 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl-digest-md5.c: iconv() returns a size_t, not an int. * camel-pgp-context.c: The return value of iconv() is a size_t, not an int. * camel-mime-part-utils.c (convert_buffer): Always use size_t args for iconv(). * camel-mime-filter-charset.c (complete): Always use size_t args for iconv(). (filter): Same. * camel-mime-utils.c (header_address_fold): Make headerlen a size_t instead of an int. (header_fold): Same. (base64_encode_close): We should be returning a size_t and inlen should also be a size_t. (base64_encode_step): Same here. (base64_decode_step): Here too. (base64_encode_simple): And here... (base64_decode_simple): Same. (uuencode_close): We should also use size_t's here... (uuencode_step): And here too. (uudecode_step): And also here. (quoted_encode_close): Same idea here. (quoted_encode_step): Again here. (quoted_decode_step): Here too. (quoted_encode): Input length should be a size_t. (rfc2047_decode_word): Same. (g_string_append_len): Here too. (append_8bit): " (rfc2047_encode_word): " (quote_word): " (hex_decode): " (rfc2184_decode): Use size_t's with iconv(). (header_decode_param): Same. svn path=/trunk/; revision=14956
* Fix the tm_gmtoff case (its sign is the opposite of "timezone"). FixesDan Winship2001-12-101-0/+6
| | | | | | | | * camel-mime-message.c (camel_mime_message_set_date): Fix the tm_gmtoff case (its sign is the opposite of "timezone"). Fixes #14678 svn path=/trunk/; revision=14948
* Implements marking messages as "Need Reply".Jon Trowbridge2001-12-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements marking messages as "Need Reply". 2001-12-09 Jon Trowbridge <trow@ximian.com> * mail-need-reply.xpm: Added a really, really ugly and awful icon to symbolize "message needs a reply". * Makefile.am (EXTRA_DIST): Added mail-need-reply.xpm. 2001-12-09 Jon Trowbridge <trow@ximian.com> * camel-folder-summary.c: Add "NeedsReply" to the flag_names array for CAMEL_MESSAGE_NEEDS_REPLY. * camel-folder-summary.h: Added CAMEL_MESSAGE_NEEDS_REPLY flag. 2001-12-09 Jon Trowbridge <trow@ximian.com> * vfoldertypes.xml: Add "Needs Reply" option to different status types. * filtertypes.xml: Add "Needs Reply" option to different status types. 2001-12-09 Jon Trowbridge <trow@ximian.com> * message-list.c: #include "art/mail-need-reply.xpm". (ml_tree_value_at): Adjust magic numbers, show "Need Reply" icon if the message needs reply. (message_list_create_extras): Adjust magic numbers to add new icon. (on_click): Changed to toggle between unread, read, and need reply when the status icon is clicked. * mail-callbacks.c (mark_as_needing_reply): Added. (mark_as_not_needing_reply): Added. Add "set" value to struct post_send_data. (composer_sent_cb): Use both "flags" and "set" elements of post_send_data when setting message flags. (mail_reply): Clear "Needs Reply" flag when we actually reply to a message. * folder-browser.c: Changed flag values to be given by bit-shifting (1<<5) vs. base-ten (32). Added CAN_MARK_DOESNT_NEED_REPLY flag. Added "Mark as Needing Reply" and "Mark as Not Needing Reply" elements to context menu. (on_right_click): Hide "Mark as (Not) Needing Reply" context menu elements as appropriate. svn path=/trunk/; revision=14946
* Don't use regex matching. Fixes bug #16227.Jeffrey Stedfast2001-12-011-5/+22
| | | | | | | | | | | | | | | | | | | | 2001-11-29 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-search.c (search_body_contains): Don't use regex matching. Fixes bug #16227. * camel-mime-message.c (best_encoding): Check the content-object's mime type, not the mime part types. Should fix bug #15843. 2001-11-27 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (get_content): Return NULL if construct_from_stream fails. (get_message): Same. (get_message_simple): Here too. (add_message_from_data): And here. svn path=/trunk/; revision=14834
* Use the uid rather than vuid for unmatched. Also add the uid to unmatched42001-12-011-1/+15
| | | | | | | | | | | | | | | | | | 2001-11-14 <NotZed@Ximian.com> * camel-vee-folder.c (folder_changed_remove_uid): Use the uid rather than vuid for unmatched. Also add the uid to unmatched if it wasn't in the unmatched_uids table at all. (folder_changed_change): If checking for added, if the new ones dont match, then try to add them to unmatched. Fixes #6893. * camel-folder-summary.c (camel_folder_summary_index): Change lock order, always summary_lock before ref_lock. (camel_folder_summary_array): " (camel_folder_summary_uid): " (camel_folder_summary_remove_uid): " Fixes a deadlock. svn path=/trunk/; revision=14831
* Completely new implementation of NNTP.Not Zed2001-11-301-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-11-30 Not Zed <NotZed@Ximian.com> * providers/nntp/camel-nntp-*.c: Completely new implementation of NNTP. Doesn't support subscriptions yet (lists all folders), but should be more reliable (faster?), and has an integrated cache. * camel-exception.c (camel_exception_new): Use e_memchunks for exception blocks. (camel_exception_free): Same. * camel-data-cache.[ch]: New object for managing on-disk caches of anything that can be stored in a camel-stream. * camel-file-utils.c (camel_file_util_mkdir): New function, just a nicer place to put this (than camel-store), should be removed from camel-store. (camel_file_util_safe_filename): New function to url-encode a filename. * camel-mime-parser.c (drop_states): New func to drop the parser state to initial state. (folder_scan_init_with_fd): (folder_scan_init_with_stream): Call above func to reset state if the stream is changed on us so we can change streams to reuse a parser object. svn path=/trunk/; revision=14822
* If the uid doesn't have a ',' in it, fail to crash.Not Zed2001-11-281-0/+16
| | | | | | | | | | | | | | | | | | | | 2001-11-25 Not Zed <NotZed@Ximian.com> * providers/nntp/camel-nntp-folder.c (nntp_folder_get_message): If the uid doesn't have a ',' in it, fail to crash. * providers/nntp/camel-nntp-newsrc.c (camel_nntp_newsrc_article_is_read): check group != NULL before scanning. (camel_nntp_newsrc_get_highest_article_read): " (camel_nntp_newsrc_get_num_articles_read): " (camel_nntp_newsrc_mark_range_read): " * providers/nntp/camel-nntp-store.c (camel_nntp_store_get_overview_fmt): IF we dont have nntp_list_follows, dont try and get a list response. (nntp_store_get_folder_info): Set path part of folderinfo. svn path=/trunk/; revision=14799
* Check to see that errno is non-zero before returning g_strerror. If it'sJeffrey Stedfast2001-11-271-0/+6
| | | | | | | | | | 2001-11-20 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (get_smtp_error_string): Check to see that errno is non-zero before returning g_strerror. If it's 0, then we have an unknown error. svn path=/trunk/; revision=14790
* For the uudecoding mode, garble up the "begin <mode> <filename>" lineJeffrey Stedfast2001-11-271-0/+12
| | | | | | | | | | | | | | | | 2001-11-26 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-basic.c: For the uudecoding mode, garble up the "begin <mode> <filename>" line before decoding. * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): Add a uudecoder if the transfer encoding is x-uuencode. * camel-mime-part.c (write_to_stream): Handle x-uuencoded content too. svn path=/trunk/; revision=14789
* Added a check to see if the operation has been cancelled. (stream_write):Jeffrey Stedfast2001-11-201-0/+6
| | | | | | | | | | 2001-11-19 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (stream_read): Added a check to see if the operation has been cancelled. (stream_write): Same. svn path=/trunk/; revision=14751
* Updates for compliance with rfc2231Jeffrey Stedfast2001-11-201-0/+16
| | | | | | | | | | | | | | | | | | | | 2001-11-19 Jeffrey Stedfast <fejj@ximian.com> Updates for compliance with rfc2231 * camel-mime-utils.c (header_encode_param): camel_mime_special_table[c] & IS_ESAFE should have been !(camel_mime_special_table[c] & IS_ESAFE). Also added a few comments for how to improve the code at some future date. (header_decode_param): Now takes an argument rfc2184_part so our caller can get this information as well. (header_decode_param_list): Pass an rfc2184_part argument to header_decode_param and also added a few comments on where to improve on rfc2184/rfc2231 compliance. (rfc2047_decode_word): Updated to respect the updated ABNF syntax of rfc2047 encoded words, yay. svn path=/trunk/; revision=14750
* Abort if body == NULL.Jeffrey Stedfast2001-11-171-0/+3
| | | | | | | | | 2001-11-16 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_parse_body): Abort if body == NULL. svn path=/trunk/; revision=14738
* New mime filter to convert plain text to html.Jeffrey Stedfast2001-11-171-0/+5
| | | | | | | | | 2001-11-16 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-tohtml.c (camel_mime_filter_tohtml_new): New mime filter to convert plain text to html. svn path=/trunk/; revision=14737
* see the ChangeLog, I forgetJeffrey Stedfast2001-11-171-0/+9
| | | | svn path=/trunk/; revision=14736
* If we get a BYE response, call camel_service_disconnect() and set anJeffrey Stedfast2001-11-171-0/+9
| | | | | | | | | | | | | 2001-11-14 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-command.c (camel_imap_command_response): If we get a BYE response, call camel_service_disconnect() and set an exception. Also do the check for "* BYE" first instead of passing it off imap_read_untagged() since we'll just waste time in there mallocing left and right only to arrive at the single response line "* BYE" again :-) svn path=/trunk/; revision=14735
* If we have no source string, then use undefined, which should always32001-11-141-0/+6
| | | | | | | | | | 2001-11-13 <NotZed@Ximian.com> * camel-filter-search.c (get_source): If we have no source string, then use undefined, which should always evaluate to FALSE. Fix for #15267. svn path=/trunk/; revision=14688
* Added a g_return_val_if_fail for folder_name != NULL.Jeffrey Stedfast2001-11-131-0/+5
| | | | | | | | | 2001-11-12 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (camel_store_get_folder): Added a g_return_val_if_fail for folder_name != NULL. svn path=/trunk/; revision=14676
* If any of the pipe()'s fail, clean up any pipes that may have succeeded.Jeffrey Stedfast2001-11-101-0/+6
| | | | | | | | | | 2001-11-08 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (crypto_exec_with_passwd): If any of the pipe()'s fail, clean up any pipes that may have succeeded. Also close the password fds. svn path=/trunk/; revision=14649
* If we get a user cancel and that causes us to fail to authenticate, abort92001-11-101-0/+6
| | | | | | | | | | 2001-11-09 <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (imap_auth_loop): If we get a user cancel and that causes us to fail to authenticate, abort rather than loop forever. Fix for #14951. svn path=/trunk/; revision=14648
* Now takes a command-length argument so we can 1) avoid duping the commandJeffrey Stedfast2001-11-091-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | 2001-11-06 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-command.c (camel_imap_command_continuation): Now takes a command-length argument so we can 1) avoid duping the command string yet again, yay. 2) we now don't have to worry about embedded nul-chars screwing us over (we still need to avoid allowing them into the string but at least now it won't mess us up). * providers/imap/camel-imap-folder.c (do_append): Instead of appending a nul char to the end of the byte array and then passing that off as if it were a string to camel_imap_command_continuation, instead pass the byte-array length since that function now takes a length argument. Yay. Also encode any 8bit parts to avoid the possibility of sending embedded nul chars to the imap server. * providers/imap/camel-imap-store.c (try_auth): Updated to pass a command-length argument to camel_imap_command_continuation(). svn path=/trunk/; revision=14637
* Oops, pass a mode argument to the open() call.Jeffrey Stedfast2001-11-091-0/+8
| | | | | | | | | | | | 2001-11-07 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (save_ssl_cert): Oops, pass a mode argument to the open() call. * camel-tcp-stream-openssl.c (save_ssl_cert): Oops, pass a mode argument to the open() call. svn path=/trunk/; revision=14636
* Add code to kludge around any x-inline-pgp-hacks by prepending someJeffrey Stedfast2001-11-081-0/+6
| | | | | | | | | | 2001-11-07 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-mime.c (camel_pgp_mime_part_decrypt): Add code to kludge around any x-inline-pgp-hacks by prepending some content headers to the decrypted data. svn path=/trunk/; revision=14620
* Initialize our private mutex. (camel_data_wrapper_finalize): Destroy ourJeffrey Stedfast2001-11-031-0/+9
| | | | | | | | | | | | | 2001-11-02 Jeffrey Stedfast <fejj@ximian.com> * camel-data-wrapper.c (camel_data_wrapper_init): Initialize our private mutex. (camel_data_wrapper_finalize): Destroy our private mutex. (write_to_stream): Lock around camel_stream_write_to_stream() so that we don't get 2 threads trying to read from our stream at the same time. svn path=/trunk/; revision=14573
* Move all searching operations outside of any locks except subfolder lock,12001-11-031-0/+6
| | | | | | | | | | 2001-11-01 <NotZed@Ximian.com> * camel-vee-folder.c (folder_changed_change): Move all searching operations outside of any locks except subfolder lock, same as build_folder. Fix for #14294. svn path=/trunk/; revision=14571
* Same as below.12001-11-011-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-31 <NotZed@Ximian.com> * providers/local/camel-spool-folder.c (spool_get_message): Same as below. * providers/local/camel-maildir-folder.c (maildir_get_message): Same as below. * providers/local/camel-mbox-folder.c (mbox_get_message): Set USER_CANCEL if failed due to EINTR. * camel-filter-driver.c (camel_filter_driver_filter_mbox): If construct from parser fails due to user cancel, set USER_CANCEL on exception. * camel-mime-part.c (construct_from_parser): Return error if the parser had an io error. * camel-mime-message.c (construct_from_parser): Check error on parser/return error. * camel-mime-parser.c (folder_scan_init): Init error number. (camel_mime_parser_errno): New function, return errno of any io failures. (folder_read): Set errno if a failure occured. (folder_seek): Same. (folder_scan_init_with_fd): Setup errno depeding on ok/failure. (folder_scan_init_with_stream): Same. svn path=/trunk/; revision=14559
* Dont setup cancel_fd. (camel_operation_cancel_fd): If cancel_fd not02001-10-311-0/+5
| | | | | | | | | | | 2001-10-30 <NotZed@Ximian.com> * camel-operation.c (camel_operation_new): Dont setup cancel_fd. (camel_operation_cancel_fd): If cancel_fd not created, set it up. (camel_operation_cancel): Set cancel flag before sending message. (cancel_thread): Same. svn path=/trunk/; revision=14469
* Make sure we unref the mimeparse when we're done (successfully). This was02001-10-311-0/+7
| | | | | | | | | | | | | 2001-10-30 <NotZed@Ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_mbox): Make sure we unref the mimeparse when we're done (successfully). This was leaking an fd every get-mail! :( * camel-lock-client.c (camel_lock_helper_init): Close all fd's above 2. svn path=/trunk/; revision=14468
* Remove the X-Evolution header before anyone else gets to see this private02001-10-301-0/+5
| | | | | | | | | | | 2001-10-30 <NotZed@Ximian.com> * providers/local/camel-mbox-folder.c (mbox_get_message): Remove the X-Evolution header before anyone else gets to see this private thing. Shoudl fix 11676 since we were inheriting flags from X-Evolution headers we didn't want to. svn path=/trunk/; revision=14453
* If we can't retrieve the message, ignore it, it can't match.02001-10-301-0/+14
| | | | | | | | | | | | | | | | | | 2001-10-30 <NotZed@Ximian.com> * camel-folder-search.c (match_message): If we can't retrieve the message, ignore it, it can't match. * providers/imap/camel-imap-search.c (camel_imap_search_class_init): Setup parent class pointer. (imap_body_contains): If offline, just use the parent body_contains method which will get the messages and search them manually. * providers/imap/camel-imap-folder.c (imap_search_by_expression, imap_search_by_uids): Remove offline check. svn path=/trunk/; revision=14442
* Fix this to match get_headers.Dan Winship2001-10-301-0/+4
| | | | | | * camel-mime-part.c (free_headers): Fix this to match get_headers. svn path=/trunk/; revision=14432
* Dont try to move ibex if we have none.02001-10-301-0/+3
| | | | | | | | | 2001-10-30 <NotZed@Ximian.com> * providers/local/camel-local-store.c (rename_folder): Dont try to move ibex if we have none. svn path=/trunk/; revision=14429