diff options
Diffstat (limited to 'camel/ChangeLog')
-rw-r--r-- | camel/ChangeLog | 2166 |
1 files changed, 76 insertions, 2090 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 6292842097..e9dad199ff 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,77 +1,15 @@ -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. - 2002-06-05 Dan Winship <danw@ximian.com> * 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. -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. +2002-06-05 Jeffrey Stedfast <fejj@ximian.com> - * 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. + * providers/imap/*: Revert the UID set patch, it seems to have + been slightly broken in the 1.0.6 release (missed a mutex_lock() + call) and so rather than risk further embarassment, we are just + removing it entirely. If you need this fix, use HEAD. 2002-06-03 Not Zed <NotZed@Ximian.com> @@ -80,362 +18,32 @@ (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. - -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. - -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). - - * 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. - - * providers/imap/camel-imap-command.c (imap_read_untagged): If we - fail to read a literal, free the temporary string buffer. - - * 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. - - * 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. - -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. - -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. - - * 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. - -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. - -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. - -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). - -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(). - -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. - -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*. - -2002-05-24 Jeffrey Stedfast <fejj@ximian.com> - - * providers/imap/camel-imap-store.c (connect_to_server): Added - some NULL protection fixes. - -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 - -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. - -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. - - * camel-filter-search.c (get_label): New e-sexp callback function - to get a user_tag label value. - -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. - -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. - - * 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. - -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. - -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. + not concerning any vfolder. Other vfolders should never be part + of any unmatched handling. For #24615, and others probably. 2002-05-13 Jeffrey Stedfast <fejj@ximian.com> - * providers/imap/camel-imap-folder.c (imap_get_message): Previous - fix reverted. - -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. - -2002-05-13 Dan Winship <danw@ximian.com> - - * 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/imap/camel-imap-search.c (imap_body_contains): Use the + new imap_uid_array_to_set() API. Pass in -1 as the maxuid value + since fixing this right would be more than just a simple backport + and so may run into problems. - * providers/local/camel-mh-folder.c (mh_append_message): Likewise. + Backported some fixes from HEAD branch to fix sending long commands. - * 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. + * 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. - * camel-vtrash-folder.c (vtrash_append_message, - vtrash_transfer_messages_to): Likewise. + * 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. 2002-05-13 Not Zed <NotZed@Ximian.com> @@ -446,61 +54,6 @@ actually set order=0 for valid messages, otherwise we silently lose duplicates of the first message (i==0). Fixes #19920. -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 #24136. - - * camel-transport.c (camel_transport_get_type): Might help if we - called camel_transport_class_init. - -2002-05-10 Dan Winship <danw@ximian.com> - - * 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. - -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. - 2002-05-09 Not Zed <NotZed@Ximian.com> * camel-service.c (camel_service_disconnect): Instead of testing @@ -510,124 +63,12 @@ which happen). Fixes #23782, and maybe also #21604 and many other random crashes. -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. - - * 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. - -2002-05-07 Jeffrey Stedfast <fejj@ximian.com> - - * camel-object.h: s/class/klass for arguments so that c++ - developers don't complain later. - -2002-05-07 Dan Winship <danw@ximian.com> - - * camel-object.c (camel_object_class_cast): Fix a crash in a - g_warning. - -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. - -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. - - * camel-pgp-mime.c (pgp_mime_part_sign_prepare_part): Use - CamelMimeFilterBestenc to get a more appropriate encoding rather - than just blindling assigning QP. - - * providers/imap/camel-imap-folder.c (do_append): Call - camel_mime_message_encode_8bit_parts() which fixes bug #10885. - - * camel-tcp-stream-raw.c (socket_connect): Don't bother with - counting down the timeout. - -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. - 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. - * camel-tcp-stream-raw.c (socket_connect): Check select() for - EINTR errors. - - * 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. - -2002-04-29 Jeffrey Stedfast <fejj@ximian.com> - - * camel-provider.c (camel_provider_auto_detect): Now takes a - CamelURL argument rather than a GHashTable *settings argument. - 2002-04-29 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-store.c (get_folder_info): We want @@ -635,222 +76,34 @@ get_message_count(). Might fix #17174. Also removed FIXME: as it was fixed. -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. - - * camel-store-summary.h: No longer want to #include - <libibex/ibex.h> - - * camel-provider.c (camel_provider_auto_detect): New function to - auto-detect configuration settings. - -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. - -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. - -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. - -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. - - * 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. - -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. - -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. - - * 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. - -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. - -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. - -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. - -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. - -2002-04-15 Not Zed <NotZed@Ximian.com> - - * *.c: Fix callers for api changes to camel-object, mainly - declare_event->add_event, and classfuncs->klass, and a couple - of missing #include <config.h>'s - - * camel-arg.[ch], Makefile.am: New support code for - camel_object_get/set arg. - - * *.h: Fixed all uses of get_type to return a CamelType rather - than a guint (now a pointer). - - * camel-object.[ch]: Major cleanup of object implementation. Also - added a get/set interface, and some debugging options. - -2002-04-11 Not Zed <NotZed@Ximian.com> +2002-04-16 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. - -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. - -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. + Backport from head. 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. + (camel_spool_summary_build_from): Backport from head. The day + number has to be 2 chars wide, space filled to work properly with + pine, etc. 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. + connects which then calls get_folder() but deadlocks because + get_folder_info already holds the lock. * 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. +2002-04-09 Jeffrey Stedfast <fejj@ximian.com> + + * camel-tcp-stream-ssl.c (stream_connect): Backport non-blocking + connect code. Hopefully this fixes the Operation In Progress + errors. + 2002-04-09 Not Zed <NotZed@Ximian.com> * camel-mime-part.c (construct_from_parser): If we get multiple @@ -861,13 +114,6 @@ 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. @@ -877,1058 +123,36 @@ 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. - -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. - -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. - -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). - -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. - - * camel-remote-store.c (remote_connect): Reset the keepalive - timeout to 10 minutes rather than the 30 seconds I was using for - testing. - -2002-04-03 Dan Winship <danw@ximian.com> - - * 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. - -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. - -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. - (camel_key_table_sync): New function, sync key table (root) explicitly. - (camel_partition_table_sync): Method to explicitly sync the - partition table. - -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. - - * providers/imap/camel-imap-store.c (imap_keepalive): Put back in - the exception setup stuff i disabled for debugging. - - * 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. - -2002-04-01 Dan Winship <danw@ximian.com> - - * 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) - -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. - -2002-03-28 Dan Winship <danw@ximian.com> - - * 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. - -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. - -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). - -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. - -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. - -2002-03-22 Not Zed <NotZed@Ximian.com> - - * providers/local/camel-local-folder.c - (camel_local_folder_construct): Use the right option to remove the - index file and reset the index file on creation. - (camel_local_folder_construct): Remove any existing '.ibex' files - - these are the old format index files. - - * camel-block-file.c (camel_block_file_rename): Lock io lock while - renaming. - (camel_key_file_rename): Lock around rename. - (block_file_validate_root): Implement sync flag checking. - (camel_block_file_touch_block): Turn off the sync flag if we're - touching any non-root block and write it to disk. Shoudl this - fsync()? - (sync_nolock): sync the root block only if we need to. - - * providers/local/camel-local-store.c (rename_folder): Re-enable - index rename code. Not sure how race-free it is though. - (delete_folder): Delete the index file properly. - - * camel-partition-table.c (camel_key_table_lookup): Initialise - output values to 0 before doing anything. - (camel_key_table_add): Do some range-checking on values. - - * camel-text-index.c (text_index_compress): Changed to call sync here. - (text_index_compress_nolock): and not here - stops a recursive - sync call when sync performs a compress also. - (text_index_compress_nolock): Change to _nosync, since the locking - is irrelevent (recursive lock). Fixed callers. - (text_index_add_name_to_word): If we get a failure with key table - ops, fail immediately. - (text_index_compress_nosync): Likewise. - (text_index_write_name): If the nameid is 0, do nothing. - (text_index_add_name): If we can't get a keyid, dont add it to the - partition table. - (camel_text_index_remove): Function to delete an index file. - (text_index_compress_nosync): Clean up temp files when done. - - * camel-folder-search.c (match_messages_index): New function, - split from body_contains, matches a regex against all words in an - index. - (match_message_index): Similar to above but matches against an - individual message. - (search_body_contains): Changed to use above functions for - matching - substring matches should now work on indexed data. - -2002-03-21 Not Zed <NotZed@Ximian.com> - - * camel-index.c (camel_index_words/names): New virtual - methods/stubs to get a cursor of all words and names. - - * camel-text-index.c (text_index_compress_nolock): Split from - text_index_compress, so we can call the compressor while locked - also, removed lock calls. - (text_index_compress): Changed to stub which calls - text_index_compress_nolock. - (camel_text_index_key_cursor_new): New object to iterate through - a key table. - (text_index_words, text_index_names): Implement virtual functions - for iterating through all words or names. - - * camel-block-file.c: Turn off some debug. - -2002-03-20 Not Zed <NotZed@Ximian.com> - - ** New body index implementation. - - * camel-index*: Code for camel index, a new class to replace ibex. - - * camel-block-file.[ch]: block-based and link based - filesystem-in-a-file classes. - - * camel-partition-table.[ch]: An implementation of a partition - table (automatically extending on-disk hash-table using ideal - hash), and a key-table, a key<>name mapping table. Used by - camelindex. - - * providers/local/*, camel-folder-summary.[ch]: Changed to use - camel-index interface rather than ibex. - -2002-03-05 Not Zed <NotZed@Ximian.com> - - * providers/local/camel-maildir-summary.c (maildir_summary_check): - Do progress reporting of operations. - (maildir_summary_sync): Same here. - -2002-03-04 Not Zed <NotZed@Ximian.com> - - * providers/local/camel-spoold-store.c (scan_dir): Kill a warning - with a cast. - - * providers/local/camel-*.c: Changed for ibex->camelindex. - - * camel-folder-search.c (camel_folder_search_set_summary): Init - summary_hash to point to 'static' uid strings. - (search_body_contains): Use the static uid memory to return - results rather than the values from the index library. - - * camel-folder-search.[ch]: Changed to use camelindex object. - - * camel-folder-summary.c (summary_build_content_info_message): - Use a stream to index content, also filter html mail first. - (camel_folder_summary_info_new_from_message): Use a stream - filtered to index content. - (main): Removed the test main code. Added headers for open call - (ibex must've had them before). - - * camel-folder-summary.[ch]: Changed from ibex to CamelIndex. - - * camel-mime-filter-index.c (camel_mime_filter_index_finalize): - Unref index. - - * camel-mime-filter-index.[ch]: Changed from ibex to CamelIndex. - -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). - -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. - - * 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. - -2002-03-15 Jeffrey Stedfast <fejj@ximian.com> - - * camel-folder.h: - - * camel-private.h: Don't allow any empty structs. If - !ENABLE_THREADS, provide a gpointer dummy member. Fixes bug #6382. - -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. - -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. - -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. - -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. - -2002-03-11 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -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. - -2002-03-10 Dan Winship <danw@ximian.com> - - Rename the OpenSSL implementation of things to match the NSS - 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 - -2002-03-10 Dan Winship <danw@ximian.com> - - * 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. - -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). - -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. - - * camel-tcp-stream-openssl.c (stream_read): Add a timeout on the - select. - (stream_write): Same. - -2002-03-06 Jeffrey Stedfast <fejj@ximian.com> - - * providers/smtp/camel-smtp-transport.c (connect_to_server): Fix - to work with OpenSSL. - - * 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). - -2002-03-06 Dan Winship <danw@ximian.com> - - * providers/smtp/camel-smtp-transport.c (smtp_construct): Make - this compile. - -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. - -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. - -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 - -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. - -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. - - * 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. - -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. - -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. - -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. - -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. - -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. - 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. -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. - -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. - -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. - -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. - -2002-02-07 Dan Winship <danw@ximian.com> - - * 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. - -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. - -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 - - * camel-mime-utils.c (header_decode_int): Made public. - - * 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. - -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. - -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. - -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. - -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. - -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. - - * camel-filter-driver.c (camel_filter_driver_remove_rule_by_name): - Use while (node->next) instead of while (node) - - * 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. - -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. - -2002-01-24 Ettore Perazzoli <ettore@ximian.com> +2002-03-13 Ettore Perazzoli <ettore@ximian.com> - * Makefile.am: Remove some old cruft. + [Unfix #21655.] -2002-01-24 Ettore Perazzoli <ettore@ximian.com> + * camel-mime-utils.c: Revert to the old order, as the new one + could break mailing list names for existing users. - * tests/folder/Makefile.am: s/MAILER_LIBS/EVOLUTION_MAIL_LIBS/. - * tests/message/Makefile.am: Likewise. - * tests/mime-filter/Makefile.am: Likewise. - * tests/misc/Makefile.am: Likewise. - * tests/smime/Makefile.am: Likewise. - * tests/stream/Makefile.am: Likewise. - -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. - -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. - -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. - -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. - -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. - -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. - -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. - -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. - - * 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). - -2002-01-14 Jeffrey Stedfast <fejj@ximian.com> - - * providers/imap/camel-imap-folder.c (imap_expunge_uids_online): - Move the command-lock outside the loop. - -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. +2002-03-11 Ettore Perazzoli <ettore@ximian.com> -2002-01-14 Not Zed <NotZed@Ximian.com> + [Fix #21655.] - * 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. + * 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. -2001-12-01 Not Zed <NotZed@Ximian.com> +2002-02-06 Not Zed <NotZed@Ximian.com> - * camel-store-summary.[ch]: New class to store a store's folder - list in. Not yet completed. + * camel-service.c (camel_service_connect): Always set the + connect_op to NULL when we're done with it. Fix for #19564. 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. - -2002-01-10 Jeffrey Stedfast <fejj@ximian.com> - - * providers/local/camel-local-folder.c: If PATH_MAX doesn't exist, - use _POSIX_PATH_MAX. - - * providers/imap/camel-imap-folder.c (imap_update_summary): If mi - is NULL, don't bother updating it. Should fix bug #17694. - -2002-01-10 Jeffrey Stedfast <fejj@ximian.com> - - * camel.h: #include camel-mime-filter-tohtml.h - - * 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. + UID. Fixes bug #17694. 2002-01-09 Jeffrey Stedfast <fejj@ximian.com> @@ -1938,60 +162,10 @@ 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. - -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. - - * 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. +2001-12-11 Jeffrey Stedfast <fejj@ximian.com> - * camel-charset-map-private.h: Regenerated. + * camel-service.c (camel_service_connect): Make sure that the + connect_op is non-NULL before unregistering/unreffing it. 2001-12-12 Jeffrey Stedfast <fejj@ximian.com> @@ -2000,62 +174,6 @@ * camel-mime-utils.c (header_set_param): NULL-protection. -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. - -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. - -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. - -2001-12-19 Jeffrey Stedfast <fejj@ximian.com> - - * providers/smtp/Makefile.am: Remove the providerdir variable. - - * providers/sendmail/Makefile.am: Same. - -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. - 2001-12-17 Dan Winship <danw@ximian.com> * Makefile.am (INCLUDES): define CAMEL_PROVIDERDIR to be the @@ -2065,58 +183,13 @@ * providers/imap/Makefile.am (camel_provider_LTLIBRARIES, camel_provider_DATA): renamed from provider_LTLIBRARIES, - provider_DATA. - - * providers/local/Makefile.am: Likewise - - * providers/nntp/Makefile.am: Likewise - - * providers/pop3/Makefile.am: Likewise - - * providers/sendmail/Makefile.am: Likewise - + provider_DATA. + * providers/local/Makefile.am: Likewise + * providers/nntp/Makefile.am: Likewise + * providers/pop3/Makefile.am: Likewise + * providers/sendmail/Makefile.am: Likewise * providers/smtp/Makefile.am: Likewise -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. - -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. - -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. - -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. - -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. - 2001-12-11 Zbigniew Chyla <cyba@gnome.pl> Fixes #17085 @@ -2135,17 +208,6 @@ * camel-service.c (camel_service_connect): Make sure that the connect_op is non-NULL before unregistering/unreffing it. -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. @@ -2185,19 +247,23 @@ (rfc2184_decode): Use size_t's with iconv(). (header_decode_param): Same. -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-07 Dan Winship <danw@ximian.com> * camel-mime-message.c (camel_mime_message_set_date): Fix the tm_gmtoff case (its sign is the opposite of "timezone"). Fixes #14678 +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-11-29 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-search.c (search_body_contains): Don't use regex @@ -2226,52 +292,12 @@ order, always summary_lock before ref_lock. (camel_folder_summary_array): " (camel_folder_summary_uid): " - (camel_folder_summary_remove_uid): " Fixes a deadlock. - -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_folder_summary_remove_uid): " Fixes a deadlock. - * 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. +2001-11-21 Jeffrey Stedfast <fejj@ximian.com> -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. + * Makefile.am: Remove OpenSSL library includes/LDFLAGS from the + build. 2001-11-20 Jeffrey Stedfast <fejj@ximian.com> @@ -2279,48 +305,17 @@ Check to see that errno is non-zero before returning g_strerror. If it's 0, then we have an unknown error. -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. - 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. -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. - 2001-11-16 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_parse_body): Abort if body == NULL. - * camel-mime-filter-tohtml.c (camel_mime_filter_tohtml_new): New - mime filter to convert plain text to html. - 2001-11-16 Jeffrey Stedfast <fejj@ximian.com> Since some mail clients like Outlook are broken, we need to set a @@ -2330,15 +325,6 @@ parameter. (camel_pgp_mime_part_sign): Same. -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 :-) - 2001-11-13 <NotZed@Ximian.com> * camel-filter-search.c (get_source): If we have no source string, |