aboutsummaryrefslogtreecommitdiffstats
path: root/camel
Commit message (Collapse)AuthorAgeFilesLines
* Use camel_mkdir().Jeffrey Stedfast2003-07-0815-277/+252
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-07-07 Jeffrey Stedfast <fejj@ximian.com> * providers/nntp/camel-nntp-folder.c (camel_nntp_folder_new): Use camel_mkdir(). * providers/imap/camel-imap-folder.c (camel_imap_folder_new): Use camel_mkdir(). * camel-session.c (get_storage_path): Use camel_mkdir(). * camel-store.c (camel_mkdir_hier): Removed. * camel-data-cache.c (camel_data_cache_new): Updated to use camel_mkdir(). (data_cache_path): Same. * camel-file-utils.c (camel_mkdir): Renamed and documented. (camel_file_util_safe_filename): Documented. (camel_read): Moved here from camel-io.c (camel_write): Same. * camel-io.[c,h]: Removed. * camel-uid-cache.c (camel_uid_cache_new): Use the camel-file-utils.c version of mkdir. svn path=/trunk/; revision=21753
* removed debug printfsJeffrey Stedfast2003-07-081-18/+0
| | | | svn path=/trunk/; revision=21752
* Updated for string-utils namespace changes.Jeffrey Stedfast2003-07-0828-62/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-07-07 Jeffrey Stedfast <fejj@ximian.com> * camel-session.c (camel_session_init): Updated for string-utils namespace changes. * camel-provider.c: Updated for string-utils namespace changes. * camel-mime-part.c (init_header_name_table): Updated for string-utils namespace changes. * camel-mime-message.c (camel_mime_message_class_init): Updated for string-utils namespace changes. (camel_mime_message_init): Same. * camel-mime-filter-enriched.c (camel_mime_filter_enriched_class_init): Updated for string-utils namespace changes. * camel-folder-summary.c (camel_folder_summary_init): Updated for string-utils namespace changes. * camel-string-utils.[c,h]: Renamed from string-utils.[c,h] and also namespaced all functions. svn path=/trunk/; revision=21751
* Don't quote the charset value, the qop value, nor the response value.Jeffrey Stedfast2003-07-032-6/+12
| | | | | | | | | | 2003-07-01 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl-digest-md5.c (digest_response): Don't quote the charset value, the qop value, nor the response value. Fixes bug #45712. svn path=/trunk/; revision=21730
* Use gmtime_r() instead of using gmtime() and memcpy() to try and beJeffrey Stedfast2003-07-032-3/+8
| | | | | | | | | 2003-07-01 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_format_date): Use gmtime_r() instead of using gmtime() and memcpy() to try and be "atomic". svn path=/trunk/; revision=21725
* free the summary hashDan Winship2003-07-022-0/+7
| | | | | | | * camel-folder-search.c (camel_folder_search_finalize): free the summary hash svn path=/trunk/; revision=21713
* Put day of week into outgoing email.David Woodhouse2003-07-022-1/+11
| | | | | | | | | 2003-06-24 David Woodhouse <dwmw2@infradead.org> * camel-mime-utils.c (header_format_date): Put day of week into outgoing email. svn path=/trunk/; revision=21710
* Added prototype for camel_folder_summary_remove_range().Jeffrey Stedfast2003-06-253-17/+38
| | | | | | | | | | | | | | | | 2003-06-25 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.h: Added prototype for camel_folder_summary_remove_range(). 2003-06-25 Not Zed <NotZed@Ximian.com> ** See bug #45386 * camel-service.c (camel_gethostbyname, camel_gethostbyaddr): Make sure we have an exception that we test against. svn path=/trunk/; revision=21534
* ** See bug #43887Not Zed2003-06-253-0/+27
| | | | | | | | | | | 2003-06-20 Not Zed <NotZed@Ximian.com> ** See bug #43887 * camel-mime-filter-enriched.c (camel_enriched_to_html): simple wrapper to convert enriched to html in one go. svn path=/trunk/; revision=21529
* ** See bug #31745Not Zed2003-06-201-6/+9
| | | | | | | | | | | | 2003-06-16 Not Zed <NotZed@Ximian.com> ** See bug #31745 * providers/imap/camel-imap-store-summary.c (camel_imap_store_summary_namespace_new): Workaround a shell bug - if the namespace has '#' in it, then strip it. svn path=/trunk/; revision=21491
* if we got cancelled, the message is floating, so free it. (structNot Zed2003-06-202-61/+105
| | | | | | | | | | | | | | 2003-06-18 Not Zed <NotZed@Ximian.com> * camel-service.c (get_hostbyaddr, get_hostbyname): if we got cancelled, the message is floating, so free it. (struct _lookup_msg): Add a cancelled tag. (camel_gethostbyname, camel_gethostbyaddr): if we get a failure/cancel, cancel the lookup thread and detach, so we dont have to wait for it to return. cleanup changed to handle the case where we didn't get a reply message. svn path=/trunk/; revision=21489
* Made static (to match the prototype).Jeffrey Stedfast2003-06-192-2/+7
| | | | | | | | | 2003-06-13 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_finalize): Made static (to match the prototype). svn path=/trunk/; revision=21468
* don't leak the summary when reloading it. Fixes a very large leak.Larry Ewing2003-06-182-1/+11
| | | | | | | | | | 2003-06-13 Larry Ewing <lewing@ximian.com> * camel-folder-thread.c (camel_folder_thread_messages_apply): don't leak the summary when reloading it. Fixes a very large leak. svn path=/trunk/; revision=21465
* Calculate ranges to remove folder info's more efficiently. affectsNot Zed2003-06-183-8/+96
| | | | | | | | | | | | | | | 2003-06-17 Not Zed <NotZed@Ximian.com> * camel-vee-folder.c (vee_folder_remove_folder): Calculate ranges to remove folder info's more efficiently. affects shutdown performance on big vfolders signifinantly. (vee_folder_build_folder): do the same here, when rebuilding a folder's definition. * camel-folder-summary.c (camel_folder_summary_remove_index): new function to drop a range of index entries in one hit. svn path=/trunk/; revision=21462
* ** See bug #44322Not Zed2003-06-173-7/+23
| | | | | | | | | | | | | | | | | 2003-06-16 Not Zed <NotZed@Ximian.com> ** See bug #44322 * providers/imap/camel-imap-command.c (imap_command_strdup_vprintf): If we are outputting a folder name, make sure we calculate buffer size based on the raw/utf7 version ** See bug #44121 * camel-multipart-signed.c (signed_get_part): If we can't parse the content, but we have a stream, just use that as the content. svn path=/trunk/; revision=21454
* Fix for bug #40788.Jeffrey Stedfast2003-06-145-21/+56
| | | | | | | | | | | | | | | | | | | | | | 2003-06-05 Jeffrey Stedfast <fejj@ximian.com> Fix for bug #40788. * providers/pop3/camel-pop3-engine.c (camel_pop3_engine_new): Now takes a flags argument. Currently there is only 1 flag which can be used to disable Pop3 server extensions. (get_capabilities): Don't check for Pop3 server extensions if the DISABLE_EXTENSIONS flag is set on the engine. (camel_pop3_engine_iterate): If we get a response that is neither +OK nor -ERR, default to treating it like a -ERR. * providers/pop3/camel-pop3-store.c (connect_to_server): Check for the disable_extensions param. * providers/pop3/camel-pop3-provider.c: Define a checkbox to disable all POP3 extension support. svn path=/trunk/; revision=21438
* Put the ChangeLog.pre-1-4 in the Makefiles.Ettore Perazzoli2003-06-131-0/+1
| | | | svn path=/trunk/; revision=21426
* Partial fix for bug #44457.Jeffrey Stedfast2003-06-123-2/+17
| | | | | | | | | | | | | | | | | 2003-06-11 Jeffrey Stedfast <fejj@ximian.com> Partial fix for bug #44457. * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): Make sure to set rawtext to FALSE if we successfully convert the text to UTF-8. * camel-data-wrapper.c (camel_data_wrapper_init): Default the value of rawtext to TRUE instead of FALSE. This way if the mailer decides to try displaying a non-textual part as text, it knows that it needs to convert the content to UTF-8. svn path=/trunk/; revision=21420
* some days you just wish you had that subatomic 100 megaton kill-o-zap bomb.Jeffrey Stedfast2003-06-125-54/+155
| | | | | | | | | | | | | | | | | | | | | | | | 2003-06-04 Jeffrey Stedfast <fejj@ximian.com> * camel-uid-cache.c (camel_uid_cache_new): Create the directory with mode 0777 and the cache file itself with mode 0666. Let the user's umask filter the permissions. Instead of saving the fd on the Cache object, instead save the filename. Use camel_read() instead of expecting read() to just always work without getting an EINTR/etc. (maybe_write_uid): Don't do anything if cache->fd == -1, this means an error has occured in a previous callback. Replace the 2 calls to write() with camel_write() and check their return values. If either of them fails, set cache->fd to -1 (GHashTable doesn't give us a way to abort foreach'ing thru the table). (camel_uid_cache_save): Save to a temp file instead of overwriting the original. Do proper error checking, etc. Also added some smarts about whether to try and overwrite the old cache even if we haven't successfully saved all the uids in the cache. (camel_uid_cache_destroy): Free the cache->filename, no longer need to close (cache->fd). svn path=/trunk/; revision=21416
* use g_utf8_strdown properly.Larry Ewing2003-06-122-2/+6
| | | | | | | | 2003-06-11 Larry Ewing <lewing@ximian.com> * camel-text-index.c (text_index_normalise): use g_utf8_strdown properly. svn path=/trunk/; revision=21415
* Add the CAMEL_BESTENC_TEXT bit to enctype if the part is a text part.Jeffrey Stedfast2003-06-114-7/+26
| | | | | | | | | | | | | | 2003-06-09 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-message.c (find_best_encoding): Add the CAMEL_BESTENC_TEXT bit to enctype if the part is a text part. * camel-mime-filter-bestenc.c (camel_mime_filter_bestenc_get_best_encoding): If we have any nul-bytes or if the content is non-text and contains any 8bit octets, we need to use base64. Fixes bug #44344. svn path=/trunk/; revision=21409
* Roll over ChangeLogs.Ettore Perazzoli2003-06-102-22083/+22083
| | | | svn path=/trunk/; revision=21387
* Turn off debugging.Jeffrey Stedfast2003-06-023-4/+12
| | | | | | | | | | | | 2003-06-01 Jeffrey Stedfast <fejj@ximian.com> * broken-date-parser.c (d): Turn off debugging. * providers/pop3/camel-pop3-engine.c (get_capabilities): Move the code that prepends the 'password' authtype to the auth list so that we don't add it again when regetting the capabilities. svn path=/trunk/; revision=21360
* Turned off a debugging printf.Jeffrey Stedfast2003-05-302-1/+6
| | | | | | | | | 2003-05-30 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (run_only_once): Turned off a debugging printf. svn path=/trunk/; revision=21351
* This should finish fixing all variations of bug #42854, which, funnilyJeffrey Stedfast2003-05-282-20/+44
| | | | | | | | | | | | | | | | | | | | 2003-05-27 Jeffrey Stedfast <fejj@ximian.com> This should finish fixing all variations of bug #42854, which, funnily enough specified "copying" as the scenario for reproducing this bug, but somehow I found/fixed it only for expunging for some reason? I can't even guess as to how this happened. Oh well, expunging needed fixing either way. * providers/imap/camel-imap-folder.c (imap_transfer_online): Sort the uids here too (just like I had fixed for expunge a week or so ago). (imap_transfer_resyncing): Sort them here too. (imap_search_by_uids): Sort here too, even though I don't think it is necessary. Can't hurt. (imap_expunge_uids_offline): Might as well sort here too. svn path=/trunk/; revision=21341
* Lets try this again. We don't actually want to free the key here, becauseJeffrey Stedfast2003-05-232-12/+8
| | | | | | | | | | | 2003-05-22 Jeffrey Stedfast <fejj@ximian.com> * camel-object.c (camel_object_bag_destroy): Lets try this again. We don't actually want to free the key here, because camel_object_bag_remove() does that for us. This should fix bug #43406 properly. svn path=/trunk/; revision=21327
* Create a second GPtrArray for the keys. We don't want to useJeffrey Stedfast2003-05-212-2/+18
| | | | | | | | | | 2003-05-20 Jeffrey Stedfast <fejj@ximian.com> * camel-object.c (camel_object_bag_destroy): Create a second GPtrArray for the keys. We don't want to use bag->free_key() on the object. Fixes bug #43406. svn path=/trunk/; revision=21300
* Only display a warning if errno != EINVAL (EINVAL means there was aJeffrey Stedfast2003-05-202-8/+21
| | | | | | | | | | | | | | | 2003-05-19 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.c (camel_folder_summary_load): Only display a warning if errno != EINVAL (EINVAL means there was a version mismatch, so we don't really need to warn here since we are supposed to be able to handle this situation). (perform_content_info_load): Turn off debugging message. (summary_assign_uid): Turn off uid-clash warning. (camel_folder_summary_decode_token): Turn off debug messages. (summary_header_load): Turn off version-mismatch warning. svn path=/trunk/; revision=21284
* fixed ChangeLogJeffrey Stedfast2003-05-201-82/+81
| | | | svn path=/trunk/; revision=21258
* Ensure cmdbuf is initialized to avoid compiler warning.Jeremy Katz2003-05-1724-68/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-05-16 Jeremy Katz <katzj@redhat.com> * providers/smtp/camel-smtp-transport.c (smtp_helo): Ensure cmdbuf is initialized to avoid compiler warning. * providers/local/camel-mbox-summary.c (summary_header_load): Cast folder_size to uint32 to fix warning. (camel_mbox_summary_sync_mbox): Update for new API. * providers/imap/camel-imap-utils.c (parse_params): imap_parse_nstring expects size_t, not int (imap_body_decode): Likewise. * camel-stream-filter.c (do_read): presize needs to be size_t instead of int. (do_write): Likewise. * camel-seekable-substream.c (stream_read): Return ssize_t instead of int to match prototypes. (stream_write): Likewise. * camel-mime-part.c (construct_from_parser): len needs to be size_t instead of int. * camel-mime-parser.c (folder_scan_step): datalength needs to be a size_t* instead of an int* to make dependent APIs safe. (camel_mime_parser_step): Likewise. (folder_scan_content): Likewise. * camel-mime-parser.h: Likewise. * camel-mime-message.c (camel_mime_message_class_init): Use glib macro for pointer/int conversions. (construct_from_parser): Update for new API. * camel-folder-summary.c (camel_folder_summary_info_new_from_parser): Update len to be size_t for new API. (summary_build_content_info): Likewise. * camel-http-stream.c (http_get_headers): Likewise. * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): Likewise. * camel-multipart-signed.c (signed_construct_from_parser): Likewise. * camel-multipart.c (construct_from_parser): Likewise. * camel-folder-search.c (match_words_index): Use glib macros for pointer/int conversions. * camel-html-parser.c (tokenise_setup): Likewise. (convert_entity): Likewise. * camel-block-file.c (block_hash_func): Likewise. (camel_block_file_get_block): Likewise. (camel_block_file_get_block): Likewise. (camel_block_file_detach_block): Likewise. * camel-session.c (session_thread_msg_new): Likewise. (session_thread_msg_free): Likewise. (session_thread_wait): Likewise. * camel-text-index.c (text_index_compress_nosync): Likewise. (text_index_compress_nosync): Likewise. (camel_text_index_validate): Likewise. * camel-vee-folder.c (vee_folder_remove_folder): Likewise. (unmatched_check_uid): Likewise. (folder_added_uid): Likewise. (vee_folder_build_folder): Likewise. (folder_changed_add_uid): Likewise. (folder_changed_remove_uid): Likewise. * providers/imap/camel-imap-search.c (imap_body_contains): Likewise. * providers/pop3/camel-pop3-folder.c (cmd_list): Likewise. (cmd_uidl): Likewise. * camel-data-cache.c (data_cache_init): Cast to CamelCopyFunc. Fixes a warning. svn path=/trunk/; revision=21220
* Simplistic quick-fix for #42710. Add a charset argument. If the data is 8Not Zed2003-05-162-21/+47
| | | | | | | | | | | | 2003-05-15 Not Zed <NotZed@Ximian.com> * camel-mime-utils.c (header_decode_word): Simplistic quick-fix for #42710. Add a charset argument. If the data is 8 bit, try to decode into the passed in charset (i.e. the message header?), at worst, fall back to latin1, similarly to header_decode_text. Fixed all callers to pass in a charset if available, or NULL. svn path=/trunk/; revision=21202
* Only delete the index if it is non-NULL. Fixes bug #42763.Jeffrey Stedfast2003-05-162-2/+8
| | | | | | | | | 2003-05-13 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-local-folder.c (local_delete): Only delete the index if it is non-NULL. Fixes bug #42763. svn path=/trunk/; revision=21193
* ** See bug #42540Not Zed2003-05-152-3/+14
| | | | | | | | | | | | | 2003-05-14 Not Zed <NotZed@Ximian.com> ** See bug #42540 * camel-service.c (camel_gethostbyname): pre-initialise the error return to invalid, so if we cancel, we definetly get a bad result. Also, for a valid return against result, not herr. (camel_gethostbyaddr): Likewise. svn path=/trunk/; revision=21187
* Added a note to the comment block for this function noting that uids MUSTJeffrey Stedfast2003-05-154-20/+35
| | | | | | | | | | | | | | | | | | 2003-05-13 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_uid_array_to_set): Added a note to the comment block for this function noting that uids MUST be in sorted order. * providers/imap/camel-imap-folder.c (imap_expunge_uids_online): Sort the uids before splitting them into UID set chunks. The code that splits the uid array into sets expects the uids to be in sorted order. Fixes bug #42854. * providers/imap/camel-imap-command.c (imap_command_start): Re-enable camel_verbose_debug logging. svn path=/trunk/; revision=21173
* If host->h_name is NULL or an empty string, default back to using the IPJeffrey Stedfast2003-05-142-5/+12
| | | | | | | | | | 2003-05-12 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_helo): If host->h_name is NULL or an empty string, default back to using the IP address rather than the hostname in the EHLO command. svn path=/trunk/; revision=21159
* Disable debugging.Ettore Perazzoli2003-05-144-3/+11
| | | | | | | | | | * providers/imap/camel-imap-folder.c (d): Disable debugging. * providers/imap/camel-imap-command.c (d): Disable debugging. * providers/imap/camel-imap-search.c (d): Disable debugging. svn path=/trunk/; revision=21153
* Don't call g_utf8_validate on an empty message. Fixes a warning.Dan Winship2003-05-052-1/+7
| | | | | | | | * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): Don't call g_utf8_validate on an empty message. Fixes a warning. svn path=/trunk/; revision=21099
* Workaround for POS mailers like the one in bug #42045.Jeffrey Stedfast2003-05-033-1/+19
| | | | | | | | | | | | | | 2003-05-01 Jeffrey Stedfast <fejj@ximian.com> Workaround for POS mailers like the one in bug #42045. * camel-mime-utils.c (header_decode_date): Make sure the numeric timezone is between -1200 and 1200, otherwise it is invalid. * broken-date-parser.c (get_tzone): Make sure the numeric timezone is between -1200 and 1200, otherwise it is invalid. svn path=/trunk/; revision=21048
* Remove camel-lock.c from here because it upsets automake 1.6 for someDan Winship2003-04-302-3/+8
| | | | | | | | * Makefile.am (camel_lock_helper_SOURCES): Remove camel-lock.c from here because it upsets automake 1.6 for some reason (camel_lock_helper_LDADD): Add camel-lock.o here svn path=/trunk/; revision=21033
* body_len needs to be a size_t instead of intJeremy Katz2003-04-302-1/+6
| | | | | | | | | 2003-04-29 Jeremy Katz <katzj@redhat.com> * providers/imap/camel-imap-folder.c (parse_fetch_response): body_len needs to be a size_t instead of int svn path=/trunk/; revision=21027
* Disable debugging printfs.Jeffrey Stedfast2003-04-252-3/+7
| | | | | | | | 2003-04-22 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c: Disable debugging printfs. svn path=/trunk/; revision=20957
* only free the host if it was set. removes a run-time warning.Not Zed2003-04-242-5/+8
| | | | | | | | | 2003-04-23 Not Zed <NotZed@Ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_helo): only free the host if it was set. removes a run-time warning. svn path=/trunk/; revision=20949
* fixed merge conflicts in ChangeLogJeffrey Stedfast2003-04-241-1/+0
| | | | svn path=/trunk/; revision=20937
* #if 0 out some code that parsed the namespaces since the results aren'tJeffrey Stedfast2003-04-242-1/+10
| | | | | | | | | | 2003-04-22 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (imap_connect_online): #if 0 out some code that parsed the namespaces since the results aren't used and they generate debugging output. svn path=/trunk/; revision=20936
* oops, the service owns the url after we construct it.Not Zed2003-04-232-2/+5
| | | | | | | | | 2003-04-23 Not Zed <NotZed@Ximian.com> * camel-session.c (get_service): oops, the service owns the url after we construct it. svn path=/trunk/; revision=20931
* ** Should fix #41629, #41448, et al.Not Zed2003-04-2312-50/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-04-22 Not Zed <NotZed@Ximian.com> ** Should fix #41629, #41448, et al. * tests/folder/test10.c: a new torture test for object bag creation/unreffing. * camel-url.c (camel_url_copy): new function to copy a url. * camel-object.c (camel_object_bag_new): add arguments for key copy and key free functions. Fixed all callers. (camel_object_bag_destroy): fix a memleak, free the bag key. (camel_object_bag_get, camel_object_bag_reserve) (camel_object_bag_abort, save_bag, save_object): Make the key a void type, rather than char *. (camel_object_bag_add): As above, and also copy the key. (camel_object_bag_remove_unlocked): free the key using bag->free_key. * camel-session.c (register_provider) (camel_session_destroy_provider, get_service): Changed to use an object bag instead of a hash table for the service 'cache'. (service_cache_remove): Removed, no longer required. svn path=/trunk/; revision=20930
* Don't set seen_eof1 here anymore once we get a trust metric.Jeffrey Stedfast2003-04-232-16/+32
| | | | | | | | | | | | | | | 2003-04-21 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_parse_status): Don't set seen_eof1 here anymore once we get a trust metric. (gpg_ctx_new): Init seen_eof1 to TRUE here. (gpg_ctx_set_ostream): Change seen_eof1 to FALSE here this way we only ever have to set this if we are expecting output. (gpg_ctx_parse_status): Don't set seen_eof1 for importing either. (gpg_ctx_op_step): Only FD_SET() those fd's that we have not yet finished reading. svn path=/trunk/; revision=20922
* ** for #40989Not Zed2003-04-195-8/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-04-17 Not Zed <NotZed@Ximian.com> ** for #40989 * camel-text-index.c (text_index_delete): delete the block file/key file directly, not just its files. * providers/local/camel-local-folder.c (local_delete): implement, just delete the index file if it exists. camel-store-delete-folder will delete other data (maybe it all should be done here). * camel-block-file.c (camel_key_file_finalise): keep lock around decrementing key file use count. (camel_key_file_delete): new function to delete the key file (& close it off). (key_file_use): if we've been deleted, always fail. (camel_block_file_finalise): only close the file if its a valid fd. (block_file_use): if we've been deleted, always fail. (camel_block_file_delete): delete the block file & close. (struct _CamelBlockFilePrivate): fix the !ENABLE_THREADS case to still compile this. svn path=/trunk/; revision=20894
* Urls are unlikely to end with punctuation or closing braces, so strip anyJeffrey Stedfast2003-04-184-5/+30
| | | | | | | | | | | | | | | | | | | 2003-04-16 Jeffrey Stedfast <fejj@ximian.com> * camel-url-scanner.c (camel_url_web_end): Urls are unlikely to end with punctuation or closing braces, so strip any of those off the end of the url. Fixes bug #41461. * tests/mime-filter/data/html.1.out: Removed a trailing \n at the end of the file, this is incorrect (since out input file does not contain one). * camel-mime-filter-tohtml.c (html_convert): Only output a <br> if we found an eoln in the input. Along the same lines, don't write a '\n' to the output buffer unless we've encountered that eoln in the input. Fixes bug #41407. svn path=/trunk/; revision=20882
* Dont assume adding 1 to line length will go to the next line. e.g. for dosNot Zed2003-04-173-26/+46
| | | | | | | | | | | 2003-04-17 Not Zed <NotZed@Ximian.com> * camel-multipart-signed.c (parse_content): Dont assume adding 1 to line length will go to the next line. e.g. for dos lines that end in \r\n. Fix for #41163. (parse_boundary): util function to help above. svn path=/trunk/; revision=20874
* The gpg child process exiting does not necessarily mean that we've readyJeffrey Stedfast2003-04-172-6/+27
| | | | | | | | | | | | | | | | | | | | | | | 2003-04-15 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_verify): The gpg child process exiting does not necessarily mean that we've ready everything that we can from its pipes, so don't use gpg_ctx_op_exited() as a loop-exit condition. If for some reason the gpg child process does exit (due to an error), gpg_ctx_op_step() will eventually fail (as soon as it has finished reading any data in the pipes) and cause the loop to be terminated anyway. This fixes truncation of the gpg --verify stderr output that Evolution displays as the "validity report" (for lack of a better description). (gpg_ctx_op_step): Removed some debugging printf's (gpg_ctx_get_diagnostics): Use a bitfield to decide if we've already flushed the diagnostics stream, much simpler (plus we have plenty of bits to spare so might as well use them). (gpg_ctx_new): Fixed another logic bug which determined whether or not we should convert the gpg output from the locale charset into UTF-8. svn path=/trunk/; revision=20865
* Turn off debugging if CAMEL_VERBOSE_DEBUG isn't set.Jeffrey Stedfast2003-04-112-1/+8
| | | | | | | | | 2003-04-10 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c: Turn off debugging if CAMEL_VERBOSE_DEBUG isn't set. svn path=/trunk/; revision=20803
* filter data test cases.Not Zed2003-04-109-17/+205
| | | | | | | | | | | | | | | 2003-04-10 Not Zed <NotZed@Ximian.com> * tests/mime-filter/data: filter data test cases. * tests/mime-filter/test-tohtml.c: New test for html filter. ** See bug #40969 * camel-mime-filter-tohtml.c (html_convert): Change the logic slightly, scan a whole line within the main loop. svn path=/trunk/; revision=20799
* Removed. I just realised that we ALWAYS want to get gpg's stderr in UTF-8,Jeffrey Stedfast2003-04-102-113/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-04-09 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_get_utf8_diagnostics): Removed. I just realised that we ALWAYS want to get gpg's stderr in UTF-8, so the better solution (plus less code duplication) is to just have the diagnostics buffer be a CamelStreamMem with a charset filter. (gpg_ctx_new): Setup a filter stream to convert our gpg stderr diagnostics into UTF-8 if needed. (gpg_ctx_free): Unref the diagnostcis stream. (gpg_ctx_parse_status): Flush the diagnostics stream if we are going to use the data in an exception. (gpg_ctx_op_step): Use camel_stream_write() to append to the diagnostics stream rather than appending the buffer to a GByteArray like we used to do. (gpg_ctx_op_step): Flush the diagnostics stream here too. (gpg_verify): Use a const char *diagnostics string here, forcing a slight rearrangement of calls - use the const char *dignostics before we gpg_ctx_free, otherwise we'll be passing free'd memory off to the cipher_validity. (gpg_ctx_get_diagnostics): Do the work here to flush the diagnostics stream and nul-terminate the buffer. Also return const now, instead of strdupping. No need for that. (gpg_ctx_parse_status): Convert the user hint to UTF-8. svn path=/trunk/; revision=20798
* Changed my mind a bit on how I wanted this to work. Instead of aborting onJeffrey Stedfast2003-04-102-29/+45
| | | | | | | | | | | | 2003-04-09 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_get_utf8_diagnostics): Changed my mind a bit on how I wanted this to work. Instead of aborting on an illegal sequence, do like we do with camel-mime-filter-charset and just skip over invalid sequences. Also, in the noop failure case, close the iconv_t so we don't leak it. svn path=/trunk/; revision=20796
* Save the content size in a temp variable until after we've successfullyJeffrey Stedfast2003-04-102-1/+19
| | | | | | | | | | | | | | | 2003-04-09 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_body_decode): Save the content size in a temp variable until after we've successfully parsed all of the body_type_1part expr. Also fixed a type-o in the body_type_mpart case that caused the parser to fail. (imap_parse_body): On failure to parse the body, as we iterate through the child nodes, set their children/parent/next nodes to NULL so that content_info_free() won't double-free any of the other nodes we have already free'd (or are about to free). svn path=/trunk/; revision=20795
* New function to get the UTF-8 version of the diagnostics (if the localeJeffrey Stedfast2003-04-102-3/+81
| | | | | | | | | | | | 2003-04-09 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_get_utf8_diagnostics): New function to get the UTF-8 version of the diagnostics (if the locale isn't already UTF-8 safe). (gpg_verify): Use the utf-8 diagnostics here. Also fixed a memleak in the exception case. svn path=/trunk/; revision=20792
* NULL-protect the to/from charsets in the g_warning call.Jeffrey Stedfast2003-04-092-1/+9
| | | | | | | | | | 2003-04-09 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-charset.c (camel_mime_filter_charset_new_convert): NULL-protect the to/from charsets in the g_warning call. svn path=/trunk/; revision=20774
* Fixes for bug #40778. Probably others as well.Jeffrey Stedfast2003-04-092-122/+225
| | | | | | | | | | | | | | | | 2003-04-08 Jeffrey Stedfast <fejj@ximian.com> Fixes for bug #40778. Probably others as well. * providers/imap/camel-imap-utils.c (parse_params): Return 0 on success, or -1 on fail. The other small utility functions should probably do the same, but I was too lazy to fix them. Setting inptr to NULL is just lame. (imap_body_decode): New function to correctly parse a BODY response. (imap_parse_body): Rewritten to use the above function. svn path=/trunk/; revision=20773
* Make sure host->h_name is not an empty string too? Apparently for one userJeffrey Stedfast2003-04-092-1/+6
| | | | | | | | | | | 2003-04-08 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_helo): Make sure host->h_name is not an empty string too? Apparently for one user his resolved hostname is "". Go figure. Probably a broken system, but easy enough to work around. svn path=/trunk/; revision=20768
* If store->engine->line is NULL, use _("Unknown error") as the error stringJeffrey Stedfast2003-04-092-4/+12
| | | | | | | | | | 2003-04-08 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-store.c (pop3_try_authenticate): If store->engine->line is NULL, use _("Unknown error") as the error string instead. svn path=/trunk/; revision=20765
* use g_strerror, and use errno directly rather than ferrno().Not Zed2003-04-082-1/+8
| | | | | | | | | | 2003-04-08 Not Zed <NotZed@Ximian.com> * camel-folder-summary.c (camel_folder_summary_load): use g_strerror, and use errno directly rather than ferrno(). (summary_header_load): set errno when we get a version mismatch. svn path=/trunk/; revision=20739
* Disable debug printf'sJeffrey Stedfast2003-04-082-1/+5
| | | | | | | | 2003-04-07 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c: Disable debug printf's svn path=/trunk/; revision=20733
* If we are using the heimdal krb5 implementation, don't free outbuf ever.Jeffrey Stedfast2003-04-022-0/+16
| | | | | | | | | | 2003-03-28 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl-gssapi.c (gssapi_challenge): If we are using the heimdal krb5 implementation, don't free outbuf ever. Seems to segfault if we do. svn path=/trunk/; revision=20624
* Use strncasecmp for matching the nofill and /nofill tags. Also fixed toJeffrey Stedfast2003-04-012-41/+243
| | | | | | | | | | 2003-03-31 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-enriched.c (enriched_to_html): Use strncasecmp for matching the nofill and /nofill tags. Also fixed to handle enriched tags that require <param> tags. svn path=/trunk/; revision=20603
* remove unused var.Not Zed2003-03-2816-37/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-03-28 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-store.c (get_folder): remove unused var. * providers/imap/camel-imap-utils.c (imap_parse_list_response): moved an unused var to the #if 0'd out block. * providers/imap/camel-imap-store.c (parse_list_response_as_folder_info): remove unused vars. * camel-index-control.c (main): deifne camel_init() before using it. * camel-vee-store.c (vee_get_folder): removed unused var. * camel-stream-mem.c (stream_write): warning -> fixme. * camel-stream-filter.c (_CamelStreamFilterPrivate): Add a ; to the end of the struct definition. * camel-store.c (camel_store_delete_folder): remove unused var. (camel_store_rename_folder): " (camel_store_unsubscribe_folder): " * camel-mime-part.c (write_to_stream): Changed warning into a TODO. (construct_from_parser): removed warning, the code was fixed. * camel-mime-message.c (construct_from_parser): Remove the warning, the code was fixed. * camel-mime-filter-enriched.c (camel_mime_filter_enriched_new): Remove unused var. * camel-medium.c (camel_medium_get_header): Removed warning, and changed docs to reflect it. * camel-gpg-context.c (gpg_ctx_parse_status): handle MODE_EXPORT as a noop (warning). * camel-folder.c (get_message_user_tag): changed a warning into a fixme (its not that important). (camel_folder_get_message_user_tag): " * camel-data-cache.c (data_cache_finalise): removed unused vars. (data_cache_expire): " svn path=/trunk/; revision=20556
* Get rid of debug printf's that are no longer needed. In the case ofJeffrey Stedfast2003-03-282-9/+8
| | | | | | | | | | | 2003-03-27 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl-gssapi.c (gssapi_challenge): Get rid of debug printf's that are no longer needed. In the case of errors, don't release the outbuf gss_buffer_t since it shouldn't be set. Also g_free (str) when we are done with it. svn path=/trunk/; revision=20551
* When we remove a node from the list, make sure to g_list_free_1().Jeffrey Stedfast2003-03-282-1/+15
| | | | | | | | | | | | | | 2003-03-27 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_encode_phrase_merge_words): When we remove a node from the list, make sure to g_list_free_1(). (header_encode_phrase_merge_words): Don't use CAMEL_FOLD_PREENCODED as the upper-bound for merged-word length if the merged-word will not be an rfc2047 encoded word. Instead, use CAMEL_FOLD_SIZE-8 (which is the value we use in other places for determining upper-bound lengths). Solves bug #38659. svn path=/trunk/; revision=20549
* Like camel_url_encode, but works directly on an existing GString.Dan Winship2003-03-276-79/+117
| | | | | | | | | | | | | | | | | | * camel-url.c (append_url_encoded): Like camel_url_encode, but works directly on an existing GString. (camel_url_to_string, output_param): Use it. (camel_url_encode): Likewise. Remove "escape_unsafe" arg since the "unsafe" chars are the ones that should *always* be escaped, and the places we were passing FALSE were wrong. (camel_url_decode): replace with a new version * camel-file-utils.c (camel_file_util_safe_filename): Remove extra arg to camel_url_encode. * tests/misc/url.c (main): Add tests of basic URL parsing and unparsing svn path=/trunk/; revision=20545
* Do a more thorough check for html marked as text/plain. Check that theNot Zed2003-03-272-2/+11
| | | | | | | | | | | | 2003-03-28 Not Zed <NotZed@Ximian.com> * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): Do a more thorough check for html marked as text/plain. Check that the text starts with <html or <!doctype. More complete fix for #16817. svn path=/trunk/; revision=20544
* Pass in the addresses of the second args to the delete/release functions.Jeffrey Stedfast2003-03-272-81/+81
| | | | | | | | | 2003-03-26 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl-gssapi.c (camel_sasl_gssapi_finalize): Pass in the addresses of the second args to the delete/release functions. svn path=/trunk/; revision=20517
* Ignore whether or not the bag is currently reserved. We'll miss the newNot Zed2003-03-262-17/+8
| | | | | | | | | | 2003-03-27 Not Zed <NotZed@Ximian.com> * camel-object.c (camel_object_bag_list): Ignore whether or not the bag is currently reserved. We'll miss the new potential object, but only 1. Should address #40103. svn path=/trunk/; revision=20514
* Don't use setv when we don't need the stdarg interface.Jeffrey Stedfast2003-03-262-5/+13
| | | | | | | | | | 2003-03-25 Jeffrey Stedfast <fejj@ximian.com> * camel-service.c (camel_gethostbyaddr): Don't use setv when we don't need the stdarg interface. (camel_gethostbyname): Same. svn path=/trunk/; revision=20506
* This expression can never return an array. We must always return a stringJeffrey Stedfast2003-03-252-16/+16
| | | | | | | | | 2003-03-24 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-search.c (search_user_tag): This expression can never return an array. We must always return a string value. svn path=/trunk/; revision=20487
* removed invisible 8bit charsJeffrey Stedfast2003-03-251-1/+1
| | | | svn path=/trunk/; revision=20485
* camel-imap-command.c (imap_read_untagged) Integer overflow fix. If server  Timo Sirainen 2003-03-252-2/+10
| | | | | | | | | | | 2003-03-24  Timo Sirainen  <tss@iki.fi> * camel-imap-command.c (imap_read_untagged) Integer overflow fix. If server sent a huge literal length, only a few bytes of memory was allocated to it, but server could write as much data there as it wanted. svn path=/trunk/; revision=20484
* Camel part of the fix for Lewing's bug #39204. Second half of the patchJeffrey Stedfast2003-03-222-8/+39
| | | | | | | | | | | | | | | | | | | | | | 2003-03-21 Jeffrey Stedfast <fejj@ximian.com> Camel part of the fix for Lewing's bug #39204. Second half of the patch should also fix it so that text/plain parts that are detected as being text/html are rendered as html (not that I agree with this mind you, but corporate customers want this "feature"). * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): If the part is text/html and doesn't have a charset and we are able to find a charset in the meta tags of the html content, set the charset param on the content-type. (camel_mime_part_construct_content_from_parser): After setting the content object on the mime part, re-set the content-type of the content object back to the one from the parser (as it may contain changes from the original - see changes made to the ct in simple_data_wrapper_construct_from_parser for details). svn path=/trunk/; revision=20463
* continue reading the cert file until we've read it all or get a non-EINTRJeffrey Stedfast2003-03-222-7/+25
| | | | | | | | | | 2003-03-21 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (camel_certdb_nss_cert_get): continue reading the cert file until we've read it all or get a non-EINTR errno. svn path=/trunk/; revision=20457
* #include <com_err.h> instead of #include <et/com_err.h>Jeffrey Stedfast2003-03-212-1/+6
| | | | | | | | | 2003-03-21 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl-gssapi.c: #include <com_err.h> instead of #include <et/com_err.h> svn path=/trunk/; revision=20453
* Plug in GSSAPI support.Jeffrey Stedfast2003-03-215-28/+69
| | | | | | | | | | | 2003-03-20 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl.c: Plug in GSSAPI support. * camel-sasl-gssapi.[c,h]: Various fixes to make it compile (fixed type-o's mostly). svn path=/trunk/; revision=20438
* Handle raw 8-bit From data "correctly". (The same way we handleDan Winship2003-03-2111-98/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raw 8-bit Subject data.) * camel-mime-utils.c (header_decode_mailbox): Take a charset arg and pass it to header_decode_string. (header_decode_address): Take a charset arg and pass it to header_decode_mailbox. (header_mailbox_decode): Likewise. (header_address_decode): Take a charset arg and pass it to header_decode_address. * camel-folder-summary.c (summary_format_address): Take a charset arg and pass to header_address_decode. (message_info_new, camel_message_info_new_from_header): Pass charset to summary_format_address * camel-internet-address.c (internet_decode): Update for header_address_decode change. (Unfortunately we don't have a charset to pass here.) * camel-mime-message.c (camel_mime_message_build_mbox_from): Move this here from camel-mbox-summary since the same functionality is needed by evolution-mail too (and update for header_address_decode change) * providers/local/camel-mbox-summary.c (camel_mbox_summary_build_from): Moved to CamelMimeMessage svn path=/trunk/; revision=20430
* Removed unused variable left over from my previous fix.Jeffrey Stedfast2003-03-183-15/+20
| | | | | | | | | | | | | | | 2003-03-17 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part.c (process_header): Removed unused variable left over from my previous fix. * providers/smtp/camel-smtp-transport.c (smtp_send_to): Don't pass 'has_8bit_parts' to smtp_data() anymore. (smtp_data): No longer takes 'has_8bit_parts' argument. Ignore whether or not the message has 8bit parts when deciding what the required encoding type we need to enforce. Fixes bug #39744. svn path=/trunk/; revision=20312
* Use header_contentid_decode() as this new function should be safer thanJeffrey Stedfast2003-03-154-15/+82
| | | | | | | | | | | | | | | | | 2003-03-13 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part.c (process_header): Use header_contentid_decode() as this new function should be safer than the hack that we had before. * camel-mime-utils.c (header_contentid_decode): New function to try and parse a content-id string in such a way as to work around some of the known bugs in other MIME implementations. Try to be as "safe" as we can - ie. don't allow for more than 1 @ (since the mailer uses "@@@%d" as a fake content-id value for parts without content-ids) and don't allow for invalid content-type chars. svn path=/trunk/; revision=20295
* Don't add bogus uids to the uid array. Might fix bug #38868 (it's the onlyJeffrey Stedfast2003-03-142-8/+14
| | | | | | | | | | | 2003-03-13 Jeffrey Stedfast <fejj@ximian.com> * camel-folder.c (get_uids): Don't add bogus uids to the uid array. Might fix bug #38868 (it's the only way I can figure that camel_folder_get_message_info() could possibly return NULL for the Outbox folder). svn path=/trunk/; revision=20280
* removed, it was double-freeing the key. (save_object): Just save theNot Zed2003-03-122-11/+21
| | | | | | | | | | | | | | | 2003-03-12 Not Zed <NotZed@Ximian.com> * camel-object.c (remove_bag): removed, it was double-freeing the key. (save_object): Just save the object in an array. (camel_object_bag_destroy): first save the object bag's objects in a list, then remove them one at a time from the bag since we can't remove hash table entries while we're in a foreach (PITA glib shit). For #39486. (camel_object_bag_*): killed some warnings. svn path=/trunk/; revision=20258
* added a commentJeffrey Stedfast2003-03-111-0/+2
| | | | svn path=/trunk/; revision=20241
* Doh! If inptr == pos + 1, then return FALSE (before it was checking forJeffrey Stedfast2003-03-102-1/+7
| | | | | | | | | | 2003-03-09 Jeffrey Stedfast <fejj@ximian.com> * camel-url-scanner.c (camel_url_addrspec_end): Doh! If inptr == pos + 1, then return FALSE (before it was checking for inptr == pos, but it will never be pos). svn path=/trunk/; revision=20225
* handle a null return from search_by_expression, for bug #33786.Not Zed2003-03-072-9/+17
| | | | | | | | | 2003-03-07 Not Zed <NotZed@Ximian.com> * camel-vee-folder.c (vee_search_by_expression): handle a null return from search_by_expression, for bug #33786. svn path=/trunk/; revision=20215
* s/g_strncasecmp/strncasecmp/gJeffrey Stedfast2003-03-0710-282/+366
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-03-06 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_next_word): s/g_strncasecmp/strncasecmp/g * camel-iconv.c: Updated to be an exact copy of e-iconv (except names changed). We don't use this yet, but we may in the future. * camel-url.c (camel_url_new_with_base): Here too. * camel-sasl-kerberos4.c (krb4_challenge): Use camel_strdown() here instead of g_strdown() since the latter has been deprecated. * providers/imap/camel-imap-utils.c (imap_parse_body): Use camel_strdown() since g_ascii_strdown() does not do what we thought. * providers/imap/camel-imap-store.c: s/strstrcase/camel_strstrcase/g * providers/imap/camel-imap-folder.c (do_append): s/strstrcase/camel_strstrcase/ (handle_copyuid): Same. * string-utils.c (camel_strdown): New function because the g_ascii_strdown interface sucks. (camel_strstrcase): Renamed from strstrcase. svn path=/trunk/; revision=20213
* Same as below.Jeffrey Stedfast2003-03-063-2/+9
| | | | | | | | | | | 2003-03-06 Jeffrey Stedfast <fejj@ximian.com> * camel-text-index.c (camel_utf8_next): Same as below. * camel-search-private.c (camel_utf8_getc): Updated since not all platforms/compiles support __inline__. svn path=/trunk/; revision=20192
* Get rid of the const return - it mismatches the prototype and we don'tJeffrey Stedfast2003-03-062-1/+7
| | | | | | | | | | 2003-03-06 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part.c (camel_mime_part_get_encoding): Get rid of the const return - it mismatches the prototype and we don't need it anyway. Fixes bug #39173. svn path=/trunk/; revision=20191
* Fixes for bug #39170Jeffrey Stedfast2003-03-064-4/+17
| | | | | | | | | | | | | | | | | 2003-03-06 Jeffrey Stedfast <fejj@ximian.com> Fixes for bug #39170 * camel-store-summary.c (camel_store_info_set_string): Remove return keyword. * camel-session.c (camel_session_thread_msg_free): Remove return keyword. (camel_session_thread_wait): Same. * camel-index.c (camel_index_cursor_reset): Remove return keyword. svn path=/trunk/; revision=20188
* Fixes for bug #39168Jeffrey Stedfast2003-03-0610-46/+43
| | | | | | | | | | | | | | | | | | | | | | | | | 2003-03-06 Jeffrey Stedfast <fejj@ximian.com> Fixes for bug #39168 * providers/local/camel-spool-summary.c: Get rid of the empty private struct. * providers/local/camel-mbox-summary.c: Get rid of the empty private struct. * camel-vee-store.c: Get rid of the empty private struct. * camel-mime-filter-from.c: Get rid of the empty private struct. 2003-03-05 Jeffrey Stedfast <fejj@ximian.com> * providers/sendmail/camel-sendmail-transport.c (sendmail_send_to): Add a CRLF filter to the output stream to convert any CRLF sequences into plain old line-feeds to work around a bug in some local transport programs. svn path=/trunk/; revision=20187
* s/class/klass in one place so that the header is c++-safe.Jeffrey Stedfast2003-03-052-1/+6
| | | | | | | | | 2003-03-04 Jeffrey Stedfast <fejj@ximian.com> * camel-object.h: s/class/klass in one place so that the header is c++-safe. svn path=/trunk/; revision=20140
* Updated to use the new API from a fe commits ago for the NSS stream. ThisJeffrey Stedfast2003-03-047-4/+434
| | | | | | | | | | | | | | | | | | | | | | | | 2003-03-03 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-openssl.c (camel_tcp_stream_ssl_new): Updated to use the new API from a fe commits ago for the NSS stream. This is just to make it compile, but does not update the behaviour to act like the NSS stream. Note that people shouldn't be using OpenSSL anyway. (camel_tcp_stream_ssl_new_raw): Same. * camel-process.[c,h]: New source file containing convenience functions for process creation/termination mainly for use with Pipe filters but should be usable for anything we want. * camel-io.[c,h]: New source files implementing read/write system calls with proper error checking and cancellation (ie. StreamFs::read/write and CamelTcpStreamRaw::read/write). No sense duplicating the same code over and over. Now I can use this same code easily in other i/o code (such as Pipe filters and gpg code?). svn path=/trunk/; revision=20132
* Do similar folder != NULL checking as for delete_folder before passing aNot Zed2003-03-032-3/+10
| | | | | | | | | | 2003-03-03 Not Zed <NotZed@Ximian.com> * camel-store.c (camel_store_unsubscribe_folder): Do similar folder != NULL checking as for delete_folder before passing a NULL to object_bag_remove. svn path=/trunk/; revision=20121
* Same as IMAP and POP.Jeffrey Stedfast2003-03-017-17/+71
| | | | | | | | | | | | | | | | | | | | | | 2003-02-28 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (connect_to_server): Same as IMAP and POP. * providers/imap/camel-imap-store.c (connect_to_server): Same as the POP3 code. * providers/pop3/camel-pop3-store.c (connect_to_server): Pass in appropriate flags for camel_tcp_stream_ssl_new*() functions. * camel-tcp-stream-ssl.c (enable_ssl): Not all ssl/tls streams will want to allow each of SSLv2, SSLv3 and TLSv1 so use flags to decide which to enable/disable. (camel_tcp_stream_ssl_new): Now takes a flags argument to mask out which SSL/TLS versions the stream should be compatable with. (camel_tcp_stream_ssl_new_raw): Same. svn path=/trunk/; revision=20111
* Add a 'flushed' state variable to the private struct. (do_read): SetJeffrey Stedfast2003-02-283-5/+40
| | | | | | | | | | | | | | | | | | | | 2003-02-27 Jeffrey Stedfast <fejj@ximian.com> * camel-stream-filter.c: Add a 'flushed' state variable to the private struct. (do_read): Set p->flushed to TRUE after we call camel_mime_filter_complete() on all the filters. (do_reset): Set p->flushed to FALSE. (do_eos): Make sure the filters have been flushed before returning that the stream is at EOS. * camel-mime-filter-canon.c (complete): Don't add a eol - otherwise we will fail to verify some mutt signatures that do not have a blank line before the boundary line (and note that the last \n before the boundary really belongs to the boundary anyway) so #if 0 this code out for now. svn path=/trunk/; revision=20096
* Undo jeff's changes.Not Zed2003-02-273-5/+20
| | | | | | | | | | | 2003-02-27 Not Zed <NotZed@Ximian.com> * camel-multipart-signed.c: Undo jeff's changes. * providers/local/camel-spool-store.c (scan_dir): Fix a paste-o in the object_bag_get key. svn path=/trunk/; revision=20084
* Updated to use g_alloca instead of alloca so that we can skip all theJeffrey Stedfast2003-02-272-2/+6
| | | | | | | | | | 2003-02-26 Jeffrey Stedfast <fejj@ximian.com> * camel-multipart-signed.c: Updated to use g_alloca instead of alloca so that we can skip all the #ifdef checks and skip checking for alloca in configure.in and all that foo. svn path=/trunk/; revision=20081
* don't #include camel-iconv.hJeffrey Stedfast2003-02-271-1/+0
| | | | svn path=/trunk/; revision=20075
* Make sure the folder is non-NULL before trying to remove it from theJeffrey Stedfast2003-02-262-6/+13
| | | | | | | | | | 2003-02-26 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (camel_store_delete_folder): Make sure the folder is non-NULL before trying to remove it from the store's object-bag. svn path=/trunk/; revision=20067
* removed unused filter code that was wrong anywayJeffrey Stedfast2003-02-264-214/+0
| | | | svn path=/trunk/; revision=20058
* canonicalise the charset name (if it is an iso charset) so that ourJeffrey Stedfast2003-02-262-2/+70
| | | | | | | | | | | | | | | | | | 2003-02-25 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): canonicalise the charset name (if it is an iso charset) so that our strncasecmp to see if it is an iso-8859-# charset will be guarenteed to work on all systems. (canon_charset_name): New function to return the canonical iso charset name. (simple_data_wrapper_construct_from_parser): If the charset is NULL *or* the charset == "us-ascii" then check that it is 7bit clean to decide if it is rawtext (we did not check the case where charset was "us-ascii" before). svn path=/trunk/; revision=20057
* Same as the ones below.Jeffrey Stedfast2003-02-2615-254/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-02-25 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-message.c: Same as the ones below. * camel-mime-part.c: Reverted back to pre-camel-iconv * camel-filter-search.c: Same as below. * camel-folder-summary.c: Reverted back to pre-camel-iconv * camel.c (camel_init): Reverted to pre-camel-iconv * camel-charset-map.c (camel_charset_locale_name): Removed (part of the revert). (camel_charset_canonical_name): Same. * camel-mime-filter-charset.c: Revert back to using e_iconv from GAL. * camel-mime-part-utils.c: Revert back to using e_iconv from GAL. * camel-mime-utils.c: Revert back to using e_iconv from GAL. * camel-sasl-digest-md5.c: Revert back to using e-iconv from GAL. svn path=/trunk/; revision=20056
* g_alloca (strlen (charset) + 1) so we don't overflow the buffer.Jeffrey Stedfast2003-02-252-1/+4
| | | | | | | | | 2003-02-24 Jeffrey Stedfast <fejj@ximian.com> * camel-charset-map.c (camel_charset_canonical_name): g_alloca (strlen (charset) + 1) so we don't overflow the buffer. svn path=/trunk/; revision=20047
* Don't write the passwd, fixes "bug" #38601.Jeffrey Stedfast2003-02-252-3/+9
| | | | | | | | | 2003-02-24 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-stream.c (stream_write): Don't write the passwd, fixes "bug" #38601. svn path=/trunk/; revision=20045
* Make bucket->refcount 31 bits and bucket->used 1 bit instead of havingJeffrey Stedfast2003-02-252-4/+6
| | | | | | | | | 2003-02-24 Jeffrey Stedfast <fejj@ximian.com> * camel-iconv.c: Make bucket->refcount 31 bits and bucket->used 1 bit instead of having each use their own 32bit int. svn path=/trunk/; revision=20035
* Use g_iconv_close() here, missed this before. (camel_iconv): Might as wellJeffrey Stedfast2003-02-252-2/+9
| | | | | | | | | | | 2003-02-24 Jeffrey Stedfast <fejj@ximian.com> * camel-iconv.c (iconv_cache_bucket_expire): Use g_iconv_close() here, missed this before. (camel_iconv): Might as well call g_iconv here even though it just calls iconv directly. svn path=/trunk/; revision=20034
* New function...back from the depths of hell from whence it cameJeffrey Stedfast2003-02-255-7/+194
| | | | | | | | | | | | | | | | | | | | | 2003-02-21 Jeffrey Stedfast <fejj@ximian.com> * camel-iconv.c (camel_iconv_charset_name): New function...back from the depths of hell from whence it came originally. Turns out that g_iconv_open() is lame and can't handle all the stuff we used to handle in e_iconv_charset_name(). (camel_iconv_open): Use camel_iconv_charset_name() on the to/from charsets rather than camel_charset_canonical_name(). Now maybe g_iconv_open will work for charsets such as "ks_c_5601-1987". * providers/pop3/camel-pop3-store.c (pop3_connect): Reget the capabilities after a successful authentication. * providers/pop3/camel-pop3-engine.c (get_capabilities): If we are in the TRANSACTION state and CAPA did not list UIDL as a supported command, try checking for it the hard way. svn path=/trunk/; revision=20033
* fixed a type-o that causes a segfaultJeffrey Stedfast2003-02-242-2/+2
| | | | svn path=/trunk/; revision=20031
* Do it the same way we just made the sendmail code do it.Jeffrey Stedfast2003-02-243-60/+61
| | | | | | | | | | | | 2003-02-23 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_data): Do it the same way we just made the sendmail code do it. * providers/sendmail/camel-sendmail-transport.c (sendmail_send_to): My last change but in a better way. svn path=/trunk/; revision=20023
* s/g_slist_free1/g_slist_free_1Jeffrey Stedfast2003-02-232-3/+5
| | | | svn path=/trunk/; revision=20001
* Remove all Bcc headers before sending to the smtp server.Jeffrey Stedfast2003-02-233-14/+62
| | | | | | | | | | | | | 2003-02-22 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_data): Remove all Bcc headers before sending to the smtp server. * providers/sendmail/camel-sendmail-transport.c (sendmail_send_to): Remove all Bcc headers before sending to sendmail. svn path=/trunk/; revision=20000
* fixJeffrey Stedfast2003-02-211-1/+1
| | | | svn path=/trunk/; revision=19983
* fuck ICONV_CONST, we can add that foo later...if we care.Jeffrey Stedfast2003-02-211-1/+1
| | | | svn path=/trunk/; revision=19981
* would help to include our header, eh?Jeffrey Stedfast2003-02-211-0/+1
| | | | svn path=/trunk/; revision=19980
* Call camel_iconv_init(). (camel_shutdown): Call camel_iconv_shutdown().Jeffrey Stedfast2003-02-2116-119/+757
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-02-20 Jeffrey Stedfast <fejj@ximian.com> * camel.c (camel_init): Call camel_iconv_init(). (camel_shutdown): Call camel_iconv_shutdown(). * camel-sasl-digest-md5.c (digest_response): Updated to use camel-iconv and the new camel-charset-map functions. * camel-mime-utils.c: Updated to use camel-iconv and the new camel-charset-map functions. * camel-mime-part-utils.c (check_html_charset): Use camel_charset_canonical_name() instead of e_iconv_charset_name() which is longer available. (convert_buffer): Use camel-iconv. (simple_data_wrapper_construct_from_parser): Since camel_charset_iso_to_windows() returns the charset in it's canonical format, no need to re-canonicalise it. * camel-mime-part.c (process_header): Use camel_charset_canonical_name() instead of e_iconv_charset_name() which is longer available. * camel-mime-message.c (process_header): Use camel_charset_canonical_name() instead of e_iconv_charset_name() which is longer available. * camel-mime-filter-charset.c: Use camel-iconv. * camel-folder-summary.c (message_info_new): Use camel_charset_canonical_name() instead of e_iconv_charset_name() which is longer available. (content_info_new): Use camel_charset_locale_name(). (camel_message_info_new_from_header): Same as message_info_new(). * camel-search-private.c: Use g_alloca() instead of alloca(). * camel-filter-search.c (check_header): Use camel_charset_canonical_name() instead of e_iconv_charset_name() which is longer available. * camel-charset-map.c (camel_charset_locale_name): New function, replaces e_iconv_locale_charset(). (camel_charset_canonical_name): New function, similar to e_iconv_charset_name() but instead of returning the iconv-friendly name, it returns the canonical name. (g_iconv will do the iconv-friendly name conversions for us). svn path=/trunk/; revision=19977
* Redirect program's stdout and stderr to /dev/nullJeffrey Stedfast2003-02-213-12/+32
| | | | | | | | | | | | | | | | 2003-02-20 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-search.c (run_command): Redirect program's stdout and stderr to /dev/null * camel-filter-driver.c (pipe_to_system): Redirect the program's stderr to /dev/null (pipe_to_system): Write the pipe to a mem stream and use the mem stream in the parser. Also, when setting an exception get the errno from the parser so we can give more info about the error to the user. svn path=/trunk/; revision=19974
* Redirect the program's stderr to /dev/nullJeffrey Stedfast2003-02-212-2/+11
| | | | | | | | | 2003-02-20 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (pipe_to_system): Redirect the program's stderr to /dev/null svn path=/trunk/; revision=19973
* use argv[0] instead of argv[i], doh!Jeffrey Stedfast2003-02-201-1/+1
| | | | svn path=/trunk/; revision=19957
* Fixed a type-o in the ENABLE_IPv6 ifdef section.Jeffrey Stedfast2003-02-202-1/+6
| | | | | | | | | 2003-02-19 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (stream_connect): Fixed a type-o in the ENABLE_IPv6 ifdef section. svn path=/trunk/; revision=19954
* New filter action that pipes the message source to the user-program andJeffrey Stedfast2003-02-202-13/+21
| | | | | | | | | | | | | | | | | | | | | 2003-02-19 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (pipe_message): New filter action that pipes the message source to the user-program and reads back the modified message and replaces driver->priv->message with the new message object. (do_copy): Check p->modified to make sure the message hasn't been modified by the pipe-message action - if it has been modified, default to the slower camel_folder_append_message() way of copying. (do_move): Same. (pipe_to_system): Set p->modified to TRUE if the user-program gave us back a message stream and we were able to parse it. (camel_filter_driver_filter_message): If the message has been modified, always use camel_folder_append_message() when appending it to the default folder. svn path=/trunk/; revision=19951
* New filter action that pipes the message source to the user-program andJeffrey Stedfast2003-02-202-2/+154
| | | | | | | | | | | 2003-02-19 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (pipe_message): New filter action that pipes the message source to the user-program and reads back the modified message and replaces driver->priv->message with the new message object. svn path=/trunk/; revision=19950
* Added a (get-size ) function to fix bug #38073. (search_get_size):Jeffrey Stedfast2003-02-153-1/+32
| | | | | | | | | | 2003-02-14 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-search.c: Added a (get-size ) function to fix bug #38073. (search_get_size): Implemented. svn path=/trunk/; revision=19915
* watch for <>'s tooJeffrey Stedfast2003-02-151-1/+2
| | | | svn path=/trunk/; revision=19914
* Mark chars with the high-bit set as CTRL chars. (camel_url_web_end): IfJeffrey Stedfast2003-02-152-11/+50
| | | | | | | | | | | | 2003-02-14 Jeffrey Stedfast <fejj@ximian.com> * camel-url-scanner.c (url_scanner_table_init): Mark chars with the high-bit set as CTRL chars. (camel_url_web_end): If the char before the start of the url is an open-brace, watch out for the matching close-brace. (camel_url_file_end): Same. svn path=/trunk/; revision=19913
* Same as the gpg and pkcs7 contexts.Jeffrey Stedfast2003-02-1510-37/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-02-14 Jeffrey Stedfast <fejj@ximian.com> * camel-smime-context.c (smime_get_password): Same as the gpg and pkcs7 contexts. * camel-sasl-popb4smtp.c (popb4smtp_challenge): Updated for camel_session_get_password(). * camel-pkcs7-context.c (get_password): Same as the gpg code. * camel-gpg-context.c (gpg_ctx_parse_status): Updated for camel_session_get_password(). * providers/smtp/camel-smtp-transport.c (smtp_connect): No need to set USER_CANCEL exception here as it is done by camel_session_get_password(). Also updated for the new get_password() API change. * providers/imap/camel-imap-store.c (imap_auth_loop): Updated for camel_session_get_password() changes. We don't need to play the "bad passwd" game here too, do we? Bah, probably should but I don't feel like it for now. Maybe when we rewrite the IMAP provider. * camel-session.c (camel_session_get_password): Now takes a 'reprompt' argument that will force user-input to be given even if we have the passwd cached. * providers/pop3/camel-pop3-store.c (pop3_connect): Instead of uncaching the passwd after we receive a -ERR from the POP server, set 'reprompt' to TRUE to force user-input for the next password prompt (ie, make sure the front-end knows not to just return the cached value). The front-end can then decide to fill-in the user-input field with the last passwd that the user supplied. (pop3_try_authenticate): Now takes a reprompt argument which we pass into camel_session_get_password(). svn path=/trunk/; revision=19912
* Define in terms of privincludedir. (camellibexecdir): Define in terms ofDan Winship2003-02-068-15/+25
| | | | | | | | | | | | | | | | | | * Makefile.am (libcamelincludedir): Define in terms of privincludedir. (camellibexecdir): Define in terms of privlibexecdir (libcamel_la_LDFLAGS): Remove -rpath. (automake will add that) * providers/imap/Makefile.am (libcamelimapincludedir): Define in terms of privincludedir. (INCLUDES): Remove -I$(includedir) * 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 svn path=/trunk/; revision=19775
* Init bag->owner to 0.Not Zed2003-02-052-63/+76
| | | | | | | | | | | | | | 2003-02-04 Not Zed <NotZed@Ximian.com> * camel-object.c (camel_object_bag_new): Init bag->owner to 0. 2003-01-31 Not Zed <NotZed@Ximian.com> * camel-object.c (camel_object_bag_*): Changed to use a posix semaphore instead of a condition variable + flag to reserve the object bag because e_mutex_cond is broken. svn path=/trunk/; revision=19754
* Use g_ascii_strdown() instead of g_strdown, since g_strdown is deprecated.Jeffrey Stedfast2003-02-058-41/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-02-04 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_parse_body): Use g_ascii_strdown() instead of g_strdown, since g_strdown is deprecated. (imap_parse_body): Same. * providers/imap/camel-imap-folder.c (decode_internaldate): Use strncasecmp() here too. (parse_fetch_response): And here. (camel_imap_folder_selected): Here too. * providers/imap/camel-imap-utils.c (imap_namespace_decode): Use strncasecmp() instead of g_strncasecmp() because the latter is deprecated. * providers/imap/camel-imap-store.c (imap_get_capability): Again here. (hash_folder_name): Here too. (compare_folder_name): And here. (get_folder_online): Again. (get_folder_offline): And again. * providers/imap/camel-imap-folder.c (camel_imap_folder_selected): Same as below again. * providers/imap/camel-imap-command.c (camel_imap_response_free): Same as below. * providers/smtp/camel-smtp-transport.c (smtp_data): Use strcasecmp() because g_strcasecmp() is deprecated. * camel-url.c (camel_url_new_with_base): Use g_ascii_strdown() instead of g_strdown, since g_strdown is deprecated. 2003-01-28 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl-gssapi.c (gssapi_challenge): Pass in some default flags to gss_init_sec_context() (these default flags are defined as a MUST in rfc1964). svn path=/trunk/; revision=19748
* Pass in some default flags to gss_init_sec_context() (these default flagsJeffrey Stedfast2003-01-292-1/+9
| | | | | | | | | | 2003-01-28 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl-gssapi.c (gssapi_challenge): Pass in some default flags to gss_init_sec_context() (these default flags are defined as a MUST in rfc1964). svn path=/trunk/; revision=19676
* $(libexec) -> $(libexecdir)Hans Petter Jansson2003-01-232-1/+5
| | | | | | | | 2003-01-22 Hans Petter Jansson <hpj@ximan.com> * Makefile.am: $(libexec) -> $(libexecdir) svn path=/trunk/; revision=19573
* Update to the new $(BASE_VERSION)-versioned path. Likewise. Likewise.Ettore Perazzoli2003-01-239-17/+41
| | | | | | | | | | | | | | | | | | | | | | | | | * providers/imap/Makefile.am (libcamelimapincludedir): Update to the new $(BASE_VERSION)-versioned path. * providers/smtp/Makefile.am (libcamelsmtpincludedir): Likewise. * providers/sendmail/Makefile.am (libcamelsendmailincludedir): Likewise. * providers/pop3/Makefile.am (libcamelpop3includedir): Likewise. * providers/nntp/Makefile.am (libcamelnntpincludedir): Likewise. * providers/local/Makefile.am (libcamellocalincludedir): Likewise. * camel-lock-client.c (camel_lock_helper_init): Use CAMEL_LIBEXECDIR instead of CAMEL_SBINDIR to find camel-lock-helper. * Makefile.am: Install camel-lock-helper and camel-index-control in $(libexec)/evolution/$(BASE_VERSION)/camel. Install libcamel.la in $privlibdir. (install-exec-hook): Update for the new location of camel-lock-helper. (libcamelincludedir): Version using $(BASE_VERSION). (INCLUDES): Define CAMEL_LIBEXECDIR. svn path=/trunk/; revision=19554
* Set the backbuflen to 0 so that calling us again won't re-flush the sameJeffrey Stedfast2003-01-222-2/+9
| | | | | | | | | 2003-01-21 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-canon.c (complete): Set the backbuflen to 0 so that calling us again won't re-flush the same data. svn path=/trunk/; revision=19538
* only grow the buffer when we are out of space.Larry Ewing2003-01-182-9/+16
| | | | | | | | | 2003-01-17 Larry Ewing <lewing@ximian.com> * camel-mime-filter-enriched.c (enriched_to_html): only grow the buffer when we are out of space. svn path=/trunk/; revision=19513
* If we have no content-type header, set it to text/plain explcitly, ratherNot Zed2003-01-142-0/+8
| | | | | | | | | | 2003-01-14 Not Zed <NotZed@Ximian.com> * camel-mime-parser.c (folder_scan_step): If we have no content-type header, set it to text/plain explcitly, rather than NULL, because some code doesn't handle NULL. svn path=/trunk/; revision=19438
* New source files implementing the GSSAPI SASL mechanism.Jeffrey Stedfast2003-01-144-1/+380
| | | | | | | | | 2003-01-14 Jeffrey Stedfast <fejj@ximian.com> * camel-sasl-gssapi.[c,h]: New source files implementing the GSSAPI SASL mechanism. svn path=/trunk/; revision=19437
* fix header include order.Not Zed2003-01-133-4/+16
| | | | | | | | | | | | | | 2003-01-13 Not Zed <NotZed@Ximian.com> * camel-mime-filter-tohtml.c: fix header include order. * camel-object.c (camel_object_bag_reserve): Add an assert to check we're not trying to reserve the bag more than once in a given thread. (camel_object_bag_list): If we have reserved the bag, dont try and cond wait. Fixes a deadlock. svn path=/trunk/; revision=19424
* Read the characters as utf8, rather than as 8 bit bytes. Remove theNot Zed2003-01-133-17/+87
| | | | | | | | | | | | | | 2003-01-13 Not Zed <NotZed@Ximian.com> * camel-mime-filter-tohtml.c (writeln): Read the characters as utf8, rather than as 8 bit bytes. Remove the PRESERVE_8BIT as it has no meaning. Also change the default logic slightly so that 8 bit or greater characters are properly converted to entities. * camel-utf8.c (camel_utf8_getc_limit): new function, gets a utf8 char, bounded by an end pointer. svn path=/trunk/; revision=19421
* add a "translation_domain" field. (NULL for all providers in the camelDan Winship2003-01-083-5/+21
| | | | | | | | | | * camel-provider.h (CamelProvider): add a "translation_domain" field. (NULL for all providers in the camel source tree itself). * camel-session.c (register_provider): Translate provider strings in the correct domain svn path=/trunk/; revision=19265
* init local exception before doing anything. fixes a crash.Not Zed2003-01-062-0/+6
| | | | | | | | | 2003-01-06 Not Zed <NotZed@Ximian.com> * camel-store.c (store_sync): init local exception before doing anything. fixes a crash. svn path=/trunk/; revision=19238
* spell-checkJeffrey Stedfast2003-01-051-5/+5
| | | | svn path=/trunk/; revision=19237
* Instead of checking recipients != NULL, check that camel_address_lengthJeffrey Stedfast2003-01-052-2/+9
| | | | | | | | | | | 2003-01-04 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_send_to): Instead of checking recipients != NULL, check that camel_address_length (recipients) != 0 since it is illegal for recipients to be NULL (camel_transport_send_to already checks this). svn path=/trunk/; revision=19235
* commit this tooJeffrey Stedfast2002-12-181-1/+2
| | | | svn path=/trunk/; revision=19155
* Replace calls to g_string_sprintfa() with g_string_append_printf() sinceJeffrey Stedfast2002-12-1820-117/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-12-17 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c: Replace calls to g_string_sprintfa() with g_string_append_printf() since the former seems to have been deprecated. * providers/imap/camel-imap-search.c: Same. * providers/imap/camel-imap-folder.c: Here too. * providers/local/camel-mbox-summary.c: And here. * providers/local/camel-local-summary.c: Replace g_string_sprintf() with g_string_printf(). * camel-data-cache.c (data_cache_expire): Replace g_string_sprintf() with g_string_printf(). * camel-url.c: Replace calls to g_string_sprintfa() with g_string_append_printf() since the former seems to have been deprecated. * camel-service.c: Same. * camel-mime-utils.c: Here too. svn path=/trunk/; revision=19154
* Replace calls to g_string_sprintfa() with g_string_append_printf() sinceJeffrey Stedfast2002-12-184-80/+92
| | | | | | | | | | | | | | 2002-12-17 Jeffrey Stedfast <fejj@ximian.com> * camel-url.c: Replace calls to g_string_sprintfa() with g_string_append_printf() since the former seems to have been deprecated. * camel-service.c: Same. * camel-mime-utils.c: Here too. svn path=/trunk/; revision=19153
* Detect text/html parts that were marked as text/plain and re-tag them asJeffrey Stedfast2002-12-172-14/+39
| | | | | | | | | | | | | 2002-12-16 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): Detect text/html parts that were marked as text/plain and re-tag them as text/html parts. Note: currently just checks if the first non-lwsp char is a '<' - but we might need to be smarter about this? *sigh* Stupid Windows mailers. svn path=/trunk/; revision=19143
* New convenience function to replace calls to e_text_to_html() in theJeffrey Stedfast2002-12-173-0/+32
| | | | | | | | | | 2002-12-16 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-tohtml.c (camel_text_to_html): New convenience function to replace calls to e_text_to_html() in the mailer/composer etc. svn path=/trunk/; revision=19128
* #include some headers we had forgotten to add previously, also addedJeffrey Stedfast2002-12-166-1/+455
| | | | | | | | | | | | 2002-12-16 Jeffrey Stedfast <fejj@ximian.com> * camel.h: #include some headers we had forgotten to add previously, also added camel-mime-filter-enriched.h. * camel-mime-filter-enriched.[c,h]: New stream filter to convert text/enriched and text/richtext into HTML. svn path=/trunk/; revision=19124
* Don't apply the CANON_STRIP filter here, since we are verifying whateverJeffrey Stedfast2002-12-162-3/+11
| | | | | | | | | | | 2002-12-15 Jeffrey Stedfast <fejj@ximian.com> * camel-multipart-signed.c (camel_multipart_signed_verify): Don't apply the CANON_STRIP filter here, since we are verifying whatever raw data we received (all we want to do is convert o the canonical CRLF format). svn path=/trunk/; revision=19122
* Use camel-url-scanner instead of regex.Jeffrey Stedfast2002-12-113-90/+43
| | | | | | | | | 2002-12-10 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-tohtml.c (html_convert): Use camel-url-scanner instead of regex. svn path=/trunk/; revision=19087
* Fixed to not be fooled in the case where the address is followedJeffrey Stedfast2002-12-102-35/+60
| | | | | | | | | | | | | | 2002-12-09 Jeffrey Stedfast <fejj@ximian.com> * camel-url-scanner.c (camel_url_addrspec_end): Fixed to not be fooled in the case where the address is followed immediately by a period. (camel_url_web_end): Made more robust. (camel_url_scanner_scan): Oops. We need to set the match->pattern string pointer to the correct pattern before executing the start/end methods (as some of them rely on this info). svn path=/trunk/; revision=19077
* New code to scan for patterns (used only for url pattern matching atm, butJeffrey Stedfast2002-12-104-0/+477
| | | | | | | | | | 2002-12-09 Jeffrey Stedfast <fejj@ximian.com> * camel-url-scanner.c: New code to scan for patterns (used only for url pattern matching atm, but we may find other uses for this and thus rename it? I dunno). Uses ETrie. svn path=/trunk/; revision=19075
* Use a bag instead of a hashtable to track the cache streams.Not Zed2002-12-0913-449/+608
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-12-07 Not Zed <NotZed@Ximian.com> * camel-data-cache.c (data_cache_init): Use a bag instead of a hashtable to track the cache streams. (data_cache_finalise): Same. (free_busy): No longer needed. (data_cache_expire): use bag instead of hashtable. (stream_finalised): No longer required. (camel_data_cache_add): objectbagise (camel_data_cache_get): " (camel_data_cache_remove): " (data_cache_path): Set the now expired date before running expiry, so it plays better with multiple threads. Still a couple of harmless races. 2002-12-06 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-store.c (scan_dir): folders -> object bag. (get_folder_info_mbox): folders -> object bag. * providers/local/camel-mh-store.c (folder_info_new): folders -> object bag. * providers/local/camel-maildir-store.c (scan_dir): folders -> object bag. * providers/local/camel-local-store.c (rename_folder): folders -> object bag. * camel-private.h (CamelStorePrivate): Remove 'cache' lock, handled by the objectbag. * providers/imap/camel-imap-store.c (copy_folder): Removed. (imap_store_refresh_folders): folders -> object bag. (get_folder_counts): folders -> object bag. * camel-vee-store.c (vee_get_folder): changes for folders objectbag. (vee_get_folder_info): Change to use folders objectbag. Also, dont refresh the base folder if we're in FAST mode. (build_info): Removed, no longer needed. (vee_rename_folder): Fixed for folders objectbag. * camel-store.c (camel_store_init): init the folders objectbag. (camel_store_finalize): Destroy the folders object bag. (folder_matches): (folder_finalize): Removed, now handled implicitly by the objectbag. (camel_store_get_folder): object bag changes. (camel_store_delete_folder): " (get_subfolders): Removed, now handled without a callback. (camel_store_rename_folder): Changed to use object bag of folders. (trash_add_folder): Removed. (init_trash): use folders object bag. (copy_folder_cache): (sync_folder): Removed, no longer needed. Weird arsed code anyway. (store_sync): Use folder object bag instead of hashtable. (camel_store_unsubscribe_folder): " (camel_store_init): remove cache_lock init, no longer used. (camel_store_finalize): Same for cleanup. 2002-12-05 Not Zed <NotZed@Ximian.com> * camel-store.h (struct _CamelStore): change folders from a hashtable into a CamelObjectBag. * camel-object.c (camel_object_ref): Use type_lock instead of class lock for ref counting. (camel_object_unref): Use type_lock instead of class lock for unref. (camel_object_unref): If the object is 'bagged', then also look hooks, and remove it from any bags. (camel_object_bag_new): (camel_object_bag_destroy): (camel_object_bag_add): (camel_object_bag_get): (camel_object_bag_remove_unlocked): (camel_object_bag_list): (camel_object_bag_abort): (camel_object_bag_remove): New functions to implement a utility object which can manage a 'bag' of weakly ref'd children in an atomic & threadsafe way. svn path=/trunk/; revision=19056
* Properly handle the case where the namespace is "". Fixes bug #34975Jeffrey Stedfast2002-12-053-5/+14
| | | | | | | | | | 2002-12-04 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store-summary.c (camel_imap_store_summary_add_from_full): Properly handle the case where the namespace is "". Fixes bug #34975 svn path=/trunk/; revision=19002
* Fixed to not get false positives when the token is shorter than the actualJeffrey Stedfast2002-12-042-12/+34
| | | | | | | | | | | | | 2002-12-03 Jeffrey Stedfast <fejj@ximian.com> * broken-date-parser.c (get_tzone): Fixed to not get false positives when the token is shorter than the actual timezone string (but matches the first little bit of it). (datetok): Modified to properly handle when the first char of a token is a special char (such as a '-') that is also used as a token delimiter. svn path=/trunk/; revision=18996
* Use the new camel_operation_cancel_prfd() function to get the cancellationJeffrey Stedfast2002-11-234-20/+201
| | | | | | | | | | | | | | | | | 2002-11-21 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (stream_read): Use the new camel_operation_cancel_prfd() function to get the cancellation fd so we can poll on it for cancellation stuff. (stream_write): Same. 2002-11-22 Not Zed <NotZed@Ximian.com> * camel-operation.c (camel_operation_cancel_prfd): Implement, gets a nspr pr filedesc to poll/wait on (struct _CamelOperation): include a pr filedesc. svn path=/trunk/; revision=18894
* If we have a namespace of "", then always match any path.Not Zed2002-11-222-4/+14
| | | | | | | | | | | | 2002-11-21 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store-summary.c (camel_imap_store_summary_namespace_find_path): If we have a namespace of "", then always match any path. (camel_imap_store_summary_namespace_find_full): Same, for full names. Should address #33309 & friends. svn path=/trunk/; revision=18884
* applied plain_signature_fix.patchRadek Doulik2002-11-203-1/+7
| | | | svn path=/trunk/; revision=18841
* Removed $(GNOME_LIBDIR) and $(GNOMEUI_LIBS)Rodney Dawes2002-11-207-12/+4
| | | | | | * tests/*/Makefile.am: Removed $(GNOME_LIBDIR) and $(GNOMEUI_LIBS) svn path=/trunk/; revision=18839
* If the namespace is at/below INBOX, check for the INBOX explicitly (sinceJeffrey Stedfast2002-11-182-20/+73
| | | | | | | | | | | | 2002-11-15 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (imap_connect_online): If the namespace is at/below INBOX, check for the INBOX explicitly (since it obviously won't show up in a LSUB INBOX.*). If either INBOX is not returned in the response or if the folder flags contain \NoSelect, subscribe to INBOX and then try LSUB again. svn path=/trunk/; revision=18824
* Rewritten. Much much much cleaner implementation now, though usesJeffrey Stedfast2002-11-113-332/+263
| | | | | | | | | | 2002-11-11 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-tohtml.c (html_convert): Rewritten. Much much much cleaner implementation now, though uses malloc/free more often than I'd like. svn path=/trunk/; revision=18691
* Use g_strerror when setting an exception string (we need it to be inJeffrey Stedfast2002-11-116-12/+36
| | | | | | | | | | | | | | | | | | | 2002-11-11 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (get_message_simple): Use g_strerror when setting an exception string (we need it to be in UTF-8). * providers/pop3/camel-pop3-store.c (pop3_try_authenticate): Use g_strerror when setting an exception string (we need it to be in UTF-8). * providers/pop3/camel-pop3-folder.c (pop3_refresh_info): Use g_strerror when setting an exception string (we need it to be in UTF-8). (pop3_get_message): Same. svn path=/trunk/; revision=18690
* Use g_strerror when setting an exception string (we need it to be inJeffrey Stedfast2002-11-1132-255/+404
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-11 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-spool-summary.c (spool_summary_sync_full): Use g_strerror when setting an exception string (we need it to be in UTF-8). (spool_summary_check): Here too. * providers/local/camel-spool-store.c (construct): Use g_strerror when setting an exception string (we need it to be in UTF-8). (get_folder): Same. (scan_dir): Here too. * providers/local/camel-spool-folder.c (spool_lock): Use g_strerror when setting an exception string (we need it to be in UTF-8). * providers/local/camel-mh-summary.c (mh_summary_check): Use g_strerror when setting an exception string (we need it to be in UTF-8). * providers/local/camel-mh-store.c (delete_folder): Use g_strerror when setting an exception string (we need it to be in UTF-8). * providers/local/camel-mbox-summary.c (summary_update): Use g_strerror when setting an exception string (we need it to be in UTF-8). (mbox_summary_sync_full): Here too. (mbox_summary_sync_quick): Same. (mbox_summary_sync): Also here. (camel_mbox_summary_sync_mbox): Again here. * providers/local/camel-mbox-folder.c (mbox_lock): Use g_strerror when setting an exception string (we need it to be in UTF-8). (mbox_append_message): Same. (mbox_get_message): Here too. * providers/local/camel-maildir-summary.c (maildir_summary_load): Use g_strerror when setting an exception string (we need it to be in UTF-8). (maildir_summary_check): Same. * providers/local/camel-maildir-store.c (get_folder): Use g_strerror when setting an exception string (we need it to be in UTF-8). (delete_folder): Same. (delete_folder): Here too. * providers/local/camel-local-summary.c (local_summary_sync): Use g_strerror when setting an exception string (we need it to be in UTF-8). * providers/local/camel-local-store.c (get_folder): Use g_strerror when setting an exception string (we need it to be in UTF-8). (create_folder): Same. (xrename): Here too. (rename_folder): And here. (delete_folder): Also here. * camel-provider.c (camel_provider_init): For debugging printfs, we want to use normal strerror (we want locale charset, not UTF-8). * camel-movemail.c (camel_movemail): Use g_strerror when setting an exception string (we need it to be in UTF-8). (movemail_external): Same. (camel_movemail_copy_file): Here too. (camel_movemail_solaris): Also here. * camel-mime-utils.c (rfc2047_decode_word): For debugging printfs, we want to use normal strerror (we want locale charset, not UTF-8). (header_encode_param): Same. * camel-mime-part-utils.c (convert_buffer): For debugging printfs, we want to use normal strerror (we want locale charset, not UTF-8). * camel-lock-client.c (camel_lock_helper_init): Use g_strerror when setting an exception string (we need it to be in UTF-8). * camel-data-cache.c (camel_data_cache_remove): Use g_strerror when setting an exception string (we need it to be in UTF-8). * camel-tcp-stream-raw.c (flaky_tcp_write): For debugging printfs, we want to use normal strerror (we want locale charset, not UTF-8). (flaky_tcp_read): Same. * camel-gpg-context.c (gpg_ctx_op_step): For debugging printfs, we want to use normal strerror (we want locale charset, not UTF-8). * camel-service.c (camel_gethostbyname): Use g_strerror when setting an exception string (we need it to be in UTF-8). * camel-lock.c (camel_lock_dot): Use g_strerror when setting an exception string (we need it to be in UTF-8). (camel_lock_fcntl): Same. svn path=/trunk/; revision=18689
* constify the content_type.Not Zed2002-11-083-2/+7
| | | | | | | | | 2002-11-07 Not Zed <NotZed@Ximian.com> * camel-mime-part.c (camel_mime_part_set_content_type): constify the content_type. svn path=/trunk/; revision=18660
* don't #include <gtk/gtk.h>Jeffrey Stedfast2002-11-082-3/+1
| | | | svn path=/trunk/; revision=18639
* Added.Jeffrey Stedfast2002-11-085-5/+74
| | | | | | | | | | | | 2002-11-07 Jeffrey Stedfast <fejj@ximian.com> * camel-i18n.h: Added. * camel-object.h: #include camel-i18n.h instead of gnome-i18n.h * camel-lock.c: Same. svn path=/trunk/; revision=18638
* removed gnome-defs.h, it does not exist.Rodrigo Moya2002-11-082-1/+4
| | | | | | | | 2002-11-07 Rodrigo Moya <rodrigo@ximian.com> * camel-object.h: removed gnome-defs.h, it does not exist. svn path=/trunk/; revision=18633
* Created temporary link list, we need to link with something for gettext.Not Zed2002-11-0510-12/+34
| | | | | | | | | | | | | | | | | | | | | | | | 2002-11-05 Not Zed <NotZed@Ximian.com> * Makefile.am (camel_lock_helper_LDADD): Created temporary link list, we need to link with something for gettext. * camel.h: Remove gstring-util.h and hash-table-utils.h. * camel-text-index.c: (text_index_normalise): Changed for g_utf8_strdown api change. * camel-search-private.c: * camel-mime-utils.c: * camel-mime-part-utils.c: * camel-html-parser.c: * camel-charset-map.c: Include glib/gunicode.h from glib instead of gal. * camel-filter-driver.c: Remove include of gtk/gtk.h, should never have been there. svn path=/trunk/; revision=18542
* Removed. Glib2 has this function.Jeffrey Stedfast2002-11-022-12/+3
| | | | | | | | | 2002-11-01 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (g_string_append_len): Removed. Glib2 has this function. svn path=/trunk/; revision=18499
* Use g_path_get_basename instead of g_strdup (g_basename (filename)).Jeffrey Stedfast2002-11-022-1/+4
| | | | | | | | | 2002-11-01 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-local-store.c (delete_folder): Use g_path_get_basename instead of g_strdup (g_basename (filename)). svn path=/trunk/; revision=18498
* Use g_path_get_dirname since g_dirname has been deprecated.Jeffrey Stedfast2002-11-022-1/+6
| | | | | | | | | 2002-11-01 Jeffrey Stedfast <fejj@ximian.com> * camel-uid-cache.c (camel_uid_cache_new): Use g_path_get_dirname since g_dirname has been deprecated. svn path=/trunk/; revision=18497
* Set the virtual method pointers to the import/export methods.Jeffrey Stedfast2002-11-015-36/+277
| | | | | | | | | | | | | | | | | | | | | | 2002-10-31 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (camel_gpg_context_class_init): Set the virtual method pointers to the import/export methods. (camel_gpg_context_init): Set the key_protocol string. (gpg_hash_to_id): Handle 2 more hash types. (gpg_id_to_hash): Same. (gpg_ctx_op_step): Slight fixes to support import/export. (gpg_ctx_parse_status): Fix to hack around the fact that importing keys doesn't write to stdout. (gpg_import_keys): Implemented. (gpg_export_keys): Implemented. * camel-cipher-context.c (camel_cipher_context_class_init): Hook up default virtual methods for import/export. (camel_cipher_import_keys): Implemented. (camel_cipher_export_keys): Implemented. svn path=/trunk/; revision=18475
* oops, commit this tooJeffrey Stedfast2002-11-011-0/+1
| | | | svn path=/trunk/; revision=18474
* Removed hash-table-utils.[c,h] from the build.Jeffrey Stedfast2002-11-0115-119/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-10-31 Jeffrey Stedfast <fejj@ximian.com> * Makefile.am: Removed hash-table-utils.[c,h] from the build. * hash-table-utils.[c,h]: Removed. * string-util.c: Imported g_strcase[hash,equal] into here so we can remove hash-table-utils.[c,h]. * camel-medium.c: Removed #include "hash-table-utils.h" * camel-mime-message.c: Same here. * camel-mime-part.c: And here. * camel-session.c: Here too. * providers/imap/camel-imap-store-summary.c: #include string-utils.h instead of hash-table-utils.h * camel-charset-map.c: Same. * camel-folder-summary.c: Here too. * camel-provider.c: Again here. * camel-store-summary.c: And again... svn path=/trunk/; revision=18473
* Remove a ton of useless snot.Jeffrey Stedfast2002-11-0113-550/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-10-31 Jeffrey Stedfast <fejj@ximian.com> Remove a ton of useless snot. * Makefile.am: Remove gstring-util.[c,h] from the build. * gstring-util.[c,h]: Removed. * string-utils.c (string_equal_for_glist): Removed. (string_split): Removed. (string_trim): Removed. (string_prefix): Removed. (string_unquote): Removed. (strip): Removed. * hash-table-utils.c (g_hash_table_generic_free): Removed. g_str[n]casecmp functions are deprecated in glib2. * string-utils.c (strstrcase): Use strncasecmp instead of g_strncasecmp. * hash-table-utils.c (g_strcase_equal): Use strcasecmp instead of g_strcasecmp. * camel-smime-utils.c (camel_smime_is_smime_v3_signed): Same. (camel_smime_is_smime_v3_encrypted): Here too. * camel-sasl-digest-md5.c (decode_data_type): And here. (parse_server_challenge): Again here. * camel-pgp-mime.c (camel_pgp_mime_is_rfc2015_signed): Same. (camel_pgp_mime_is_rfc2015_encrypted): Same * camel-mime-part-utils.c (check_html_charset): Here too. * camel-folder-summary.c (camel_system_flag): Same. svn path=/trunk/; revision=18472
* Don't prematurely set gpg->complete to TRUE. Let gpg_ctx_op_step () set itJeffrey Stedfast2002-10-282-9/+10
| | | | | | | | | | 2002-10-25 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_ctx_parse_status): Don't prematurely set gpg->complete to TRUE. Let gpg_ctx_op_step () set it to TRUE when gpg closes the status-fd instead. svn path=/trunk/; revision=18448
* ** For bug #31647 and bug #31456.Not Zed2002-10-247-87/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-10-24 Not Zed <NotZed@Ximian.com> ** For bug #31647 and bug #31456. * camel-store-summary.c (store_info_string): for STORE_INFO_NAME, skip the leading /. * providers/imap/camel-imap-store.c (parse_list_response_as_folder_info): Remove jeff's last patch, and use the store summary to create the name and path of the folderinfo so it manages namespace issues. (get_folder_info_online): Just pass @top directly to build_folder_info always, since namespace is mapped to 1 tree level. (imap_build_folder_info): Remove jeff's last patch, dont strip leading /'s, they shouldn't exist. (imap_connect_online): Remove adding the INBOX here, we add it later. (get_subscribed_folders): Make sure INBOX is always in the list. some imap servers dont seem to let you subscribe to it(?), so always have it act as subscribed. * camel-store.c (camel_folder_info_build): back out the last 2 patches from Jeff (for #31456) to get the original behaviour. (camel_folder_info_build): When creating a fake parent, dont strip the namespace from the full_name. malloc keys in hash since we dont have them anymore. (free_name): Helper to free names. * providers/imap/camel-imap-store-summary.c (camel_imap_store_summary_namespace_new): Canonicalise the namespace (strip trailing dir_sep), and change the path to remove any /'s. (camel_imap_store_summary_namespace_find_path): (camel_imap_store_summary_namespace_find_full): new, find namespace by path/full name. (camel_imap_store_summary_full_from_path): Changed to a simple wrapper around path_to_full, after checking namespace. (camel_imap_store_summary_add_from_full): map the namespace if present. (camel_imap_store_summary_path_to_full): If namespace exists, unmap it. svn path=/trunk/; revision=18424
* Canonicalise the source_uri to not have a path. Fixes bug #32268.Jeffrey Stedfast2002-10-233-43/+52
| | | | | | | | | | | | | | | | | | | | | | 2002-10-18 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_folder): Canonicalise the source_uri to not have a path. Fixes bug #32268. 2002-10-17 Jeffrey Stedfast <fejj@ximian.com> Possible fix for bug #32270 * providers/pop3/camel-pop3-store.c (try_sasl): If we get an I/O error, we should not be setting the CANT_AUTH exception but should instead be setting the SYSTEM exception. Also check for EINTR which signifies a USER_CANCEL exception. (pop3_try_authenticate): If the auth mechanism isn't supported, don't set the CANT_AUTH exception since then we will loop and try again with the same data which will just cause an infinite loop. (pop3_connect): Simplified a bit. svn path=/trunk/; revision=18412
* #include "camel-stream-fs.h" for writing out the certs to diskJeffrey Stedfast2002-10-191-0/+1
| | | | svn path=/trunk/; revision=18395
* Do the filtering ourselves. This is so a problem like a missing uid (whichNot Zed2002-10-181-3/+41
| | | | | | | | | | | | 2002-10-03 Not Zed <NotZed@Ximian.com> * camel-folder.c (filter_filter): Do the filtering ourselves. This is so a problem like a missing uid (which can happen legitemitely) doesn't prematurely abort filtering. Stop on all other errors. See #31667. svn path=/trunk/; revision=18392
* If ~/.camel_certs doesn't exist, create it.Jeffrey Stedfast2002-10-182-6/+20
| | | | | | | | | 2002-10-17 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (camel_certdb_nss_cert_set): If ~/.camel_certs doesn't exist, create it. svn path=/trunk/; revision=18391
* helper, build fingerprint. (camel_certdb_nss_cert_get): Helper for nssNot Zed2002-10-175-93/+381
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-10-15 Not Zed <NotZed@Ximian.com> * camel-tcp-stream-ssl.c (cert_fingerprint): helper, build fingerprint. (camel_certdb_nss_cert_get): Helper for nss certs. Lookup cert. As well as fingerprint, the whole raw cert is checked for validity. (camel_certdb_nss_cert_add): Add an nss cert to a certdb, also saves the cert by fingerprint in ~/.camel_certs/. (ssl_bad_cert): Changed to use above functions to simplify logic. (ssl_bad_cert): Also added non-compiled code which mimics what mozilla does, but it doesn't work right :-/ (camel_certdb_nss_cert_set): Save the raw cert associated with a cert. * camel-certdb.c (certdb_cert_free): Free the raw cert data if set. 2002-10-14 Not Zed <NotZed@Ximian.com> * camel-file-utils.c (camel_file_util_encode_string): Encode a length of 0 as 1, not 0, to match the decode code. svn path=/trunk/; revision=18385
* No longer takes a path argument. (camel_gpg_context_fianlise): No need toJeffrey Stedfast2002-10-173-32/+25
| | | | | | | | | | | | | | | | | | | | 2002-10-16 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (camel_gpg_context_new): No longer takes a path argument. (camel_gpg_context_fianlise): No need to free ctx->path. (gpg_ctx_new): No longer takes a path argument either. (gpg_ctx_free): No need to free ctx->path, it's no longer used. (gpg_ctx_op_start): Don't stat the path anymore and change the first arg to execvp to "gpg" so that we use the shell's environment to find gpg. (gpg_sign): Updated. (gpg_verify): Updated. (gpg_encrypt): Updated. (gpg_decrypt): Updated. (gpg_ctx_get_argv): Removed some debug printfs. svn path=/trunk/; revision=18383
* If the hash id is NULL, return CAMEL_CIPHER_HASH_DEFAULT. Fixes bugJeffrey Stedfast2002-10-162-8/+15
| | | | | | | | | 2002-10-15 Jeffrey Stedfast <fejj@ximian.com> * camel-gpg-context.c (gpg_id_to_hash): If the hash id is NULL, return CAMEL_CIPHER_HASH_DEFAULT. Fixes bug #32229. svn path=/trunk/; revision=18371
* If the response from the IMAP server is "No", don't set theJeffrey Stedfast2002-10-102-2/+11
| | | | | | | | | | | | | 2002-10-08 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-command.c (imap_read_response): If the response from the IMAP server is "No", don't set the SERVICE_UNAVAILABLE exception, this makes error reporting in the UI for deleting IMAP folders that cannot be deleted inaccurate (ie, it reports "Cannot delete in offline mode" which is not the problem). svn path=/trunk/; revision=18356
* Fixes bug #31752Jeffrey Stedfast2002-10-083-12/+39
| | | | | | | | | | | | | | 2002-10-07 Jeffrey Stedfast <fejj@ximian.com> Fixes bug #31752 * providers/smtp/camel-smtp-transport.c (connect_to_server): Don't forget to send another EHLO command to the server once we toggle into STARTTLS mode. (smtp_helo): Reset any flags set using the EHLO response and also any authtypes. svn path=/trunk/; revision=18334
* Fix all mailing list regex patterns to allow any number of spaces *or*Jeffrey Stedfast2002-10-082-11/+17
| | | | | | | | | | 2002-10-06 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c: Fix all mailing list regex patterns to allow any number of spaces *or* tabs as pre-padding for the header values. svn path=/trunk/; revision=18333
* Use the content-object's rawtext flag to decide if it needs to be filteredJeffrey Stedfast2002-10-052-1/+8
| | | | | | | | | | | 2002-10-03 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part.c (write_to_stream): Use the content-object's rawtext flag to decide if it needs to be filtered through the charset filter instead of using the mime part's rawtext flag since this will never be set. Partial fix for bug #31655. svn path=/trunk/; revision=18323
* Dont get the filter driver inside the change_lock. Its not necessary, andNot Zed2002-10-042-5/+16
| | | | | | | | | | | 2002-10-03 Not Zed <NotZed@Ximian.com> * camel-folder.c (folder_changed): Dont get the filter driver inside the change_lock. Its not necessary, and can cause deadlock with the way the mailer gets the filter driver via g_mainloop. Should fix #31572. svn path=/trunk/; revision=18321
* Map us-ascii to windows-1252 also.Jeffrey Stedfast2002-10-042-1/+7
| | | | | | | | | 2002-10-02 Jeffrey Stedfast <fejj@ximian.com> * camel-charset-map.c (camel_charset_iso_to_windows): Map us-ascii to windows-1252 also. svn path=/trunk/; revision=18318
* Add missing ;.Michael Zucci2002-10-031-1/+1
| | | | svn path=/trunk/; revision=18315
* /home/notzed/gnome/head/evolution/camelNot Zed2002-10-035-22/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-10-02 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (get_matching): Set *set to NULL if we dont get any matches. (imap_sync_online): If we get no matches, skip any work, also reorder some code to make it easier to skip. See #31031. * providers/imap/camel-imap-store.c (imap_check_folder_still_extant): Default to "TRUE", if the list command failed, it probably means a server problem, assume the worst. This makes imap_refresh_info not clear the exception and crash. Fixes crash of #31000. 2002-10-01 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (imap_refresh_info): Make sure we pass the exception to imap_folder_selected(), otherwise failures can be lost. See bug #31000. 2002-10-01 Not Zed <NotZed@Ximian.com> * camel-folder.c (thaw): Add an assertion that the frozen count>0. (freeze): Same for >= 0. * camel-vee-folder.c (camel_vee_folder_remove_folder): Use the unmatched freeze_count when thawing folders removed from unmatched, rather than the folder's freeze_count. Might be related to #27391. svn path=/trunk/; revision=18314
* Use strtol when decoding the timezone (since it can be negative) and don'tJeffrey Stedfast2002-10-022-1/+10
| | | | | | | | | | | | 2002-10-01 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (decode_internaldate): Use strtol when decoding the timezone (since it can be negative) and don't forget to increment inptr to the start of the time (ie, don't leave inptr pointing to the year when decoding the hour:min:sec). svn path=/trunk/; revision=18283
* Fixes bug #31456.Jeffrey Stedfast2002-10-013-43/+79
| | | | | | | | | | | | | | | | | | | | | | | | 2002-09-30 Jeffrey Stedfast <fejj@ximian.com> Fixes bug #31456. * providers/imap/camel-imap-store.c (imap_connect_online): Don't LSUB "" "*", instead get both an LSUB containing the subfolders of the namespace and an LSUB of INBOX (assuming namespace was non-empty). This fix really has nothing to do with bug #31456 but is what should have been done in the first place. (parse_list_response_as_folder_info): Simplify a tad and strip extra leading /'s from fi->path. (imap_build_folder_info): Strip extra leading /'s from fi->path. * camel-store.c (camel_folder_info_build): Don't strip the namespace from the fi->full_name when hashing or creating fake parent folder-infos. Fixes a bug I found while trying to reproduce bug #31456. (camel_folder_info_build_path): Strip off extra leading dir_sep chars from the path. svn path=/trunk/; revision=18273
* Don't strip the namespace from the fi->full_name when hasing or creatingJeffrey Stedfast2002-10-013-15/+11
| | | | | | | | | | | 2002-09-30 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (camel_folder_info_build): Don't strip the namespace from the fi->full_name when hasing or creating fake parent folders. Fixes a bug I found while trying to reproduce bug #31456. svn path=/trunk/; revision=18270
* Remove debug content_info_dump, could cause a crash, and not really neededNot Zed2002-09-303-4/+14
| | | | | | | | | | | | | 2002-09-30 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (imap_get_message): Remove debug content_info_dump, could cause a crash, and not really needed anymore. * camel-folder-summary.c (camel_content_info_dump): Check ci->type != NULL before dereferencing it. Should fix crash #31331. svn path=/trunk/; revision=18259
* New function to decode the INTERNALDATE response from an IMAP server so weJeffrey Stedfast2002-09-285-22/+152
| | | | | | | | | | | | | | | | | | | | 2002-09-27 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (decode_internaldate): New function to decode the INTERNALDATE response from an IMAP server so we don't have to use my broken-date-parser routines. 2002-09-27 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (connect_to_server): NULL-check the streams before unreffing them in the case of a failure during ssl negotiations. * camel-tcp-stream-ssl.c (camel_tcp_stream_ssl_enable_ssl): Check SSL_ResetHandshake() for errors. Also force a handshake after we've reset the handshake state on the socket. svn path=/trunk/; revision=18252
* Use the summary's last uid as the one to fetch from, ignoring the cache.Not Zed2002-09-273-22/+43
| | | | | | | | | | | | | | | 2002-09-27 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): Use the summary's last uid as the one to fetch from, ignoring the cache. Use strotul instead of atoi as well. * providers/imap/camel-imap-store.c (get_folder_counts): If we have the folder open, and the unread count has changed, refresh it. Should fix #30399 enough. Also in non-check-all mode, if we have the folder open, use it anyway. svn path=/trunk/; revision=18242
* Treat spool as a local folder, so the ref checks work right.Not Zed2002-09-263-4/+6
| | | | | | | | | | | | 2002-09-26 Not Zed <NotZed@Ximian.com> * tests/folder/test2.c (main): Treat spool as a local folder, so the ref checks work right. * providers/local/camel-spool-store.c (get_folder): Use creat() instead of open() to create file. svn path=/trunk/; revision=18231
* Implement FOLDER_CREATE flag. (scan_dir): Dont free name on exception, itsNot Zed2002-09-264-20/+101
| | | | | | | | | | | | | | | | | | | | 2002-09-26 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-store.c (get_folder): Implement FOLDER_CREATE flag. (scan_dir): Dont free name on exception, its alloca'd. (scan_dir): If we start scanning from a file, just add that directly. (scan_dir): Allow empty files to also show up in folder list, as well as files starting with "From ". * providers/local/camel-spool-folder.c (camel_spool_folder_new): Check folder != NULL before writing to it. * providers/local/camel-local-store.c (create_folder): Handle a parent of NULL for creating top-level dirs. Part of #31186. svn path=/trunk/; revision=18230
* Store the folder flags in the store summary. (get_one_folder_offline): SetNot Zed2002-09-262-3/+27
| | | | | | | | | | | | 2002-09-26 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (parse_list_response_as_folder_info): Store the folder flags in the store summary. (get_one_folder_offline): Set the noselect url parameter if this is a noselect folder, from the stored summary flags. #30877. svn path=/trunk/; revision=18229
* Handle EILSEQ by eating bytes in the input buffer until conversion isJeffrey Stedfast2002-09-262-88/+115
| | | | | | | | | | | 2002-09-23 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-charset.c (complete): Handle EILSEQ by eating bytes in the input buffer until conversion is successful. The old behaviour aborted when it got EILSEQ and just dumped the raw data. (filter): Same. Fixes bug #30873. svn path=/trunk/; revision=18228
* Added a test suite for camel-mime-filter-charset and added a few test cases ↵Jeffrey Stedfast2002-09-268-11/+1059
| | | | | | for it. input charset files should be in the form "charset-%s.%d.in" where %s is the charset name that the file is in and %d is just some number as in a sequence id. Mostly just so we can have multiple test files per charset svn path=/trunk/; revision=18227
* Changed the Mailing-List rule to get the complete domain (* in wrongNot Zed2002-09-242-1/+4
| | | | | | | | | 2002-09-24 Not Zed <NotZed@Ximian.com> * camel-mime-utils.c (mail_list_magic[]): Changed the Mailing-List rule to get the complete domain (* in wrong spot). #31087. svn path=/trunk/; revision=18192
* If we have no data written to a key, dont add it, or its partition header.Not Zed2002-09-246-24/+123
| | | | | | | | | | | | | | | | | | | | | | | | 2002-09-24 Not Zed <NotZed@Ximian.com> * camel-text-index.c (text_index_compress_nosync): If we have no data written to a key, dont add it, or its partition header. 2002-09-23 Not Zed <NotZed@Ximian.com> * camel-block-file.c (sync_nolock): Mark root block dirty if we're going to sync it. (camel_key_file_finalise): de-count the active list if we close it. * camel-text-index.c (text_index_delete): Implement. (text_index_compress_nosync): Use index_delete when we're finished with the old one, so it is properly deactivated. * camel-index.c (camel_index_delete): Remove api call. Mark index deleted in new state variable. (camel_index_*): Wrap all calls in check for deleted state. svn path=/trunk/; revision=18189
* If the original message is deleted, reset the deleted flag when we'reJeffrey Stedfast2002-09-242-3/+8
| | | | | | | | | 2002-09-23 Jeffrey Stedfast <fejj@ximian.com> * camel-folder.c (transfer_message_to): If the original message is deleted, reset the deleted flag when we're done. Fixes bug #30876. svn path=/trunk/; revision=18181
* Decode the INTERNALDATE if we've got one. (imap_update_summary): InsteadJeffrey Stedfast2002-09-242-5/+34
| | | | | | | | | | | | | | | | 2002-09-23 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (add_message_from_data): Decode the INTERNALDATE if we've got one. (imap_update_summary): Instead of requesting a list of specific headers, request HEADER.FIELDS.NOT (RECEIVED) to reduce bandwidth usage even more. (parse_fetch_response): Change slightly to allow HEADER.FIELDS or HEADER.FIELDS.NOT so that we can make changes in imap_update_summary and not need to keep changing this function to match. Also parse an INTERNALDATE response. svn path=/trunk/; revision=18178
* fix non-ANSI switch statement.Dan Winship2002-09-235-0/+15
| | | | | | | | | | | | | * camel-mime-parser.c (folder_scan_drop_step): fix non-ANSI switch statement. * camel-service.c (service_getv): Likewise. * providers/imap/camel-imap-store.c (imap_getv): Likewise. * providers/pop3/camel-pop3-folder.c (cmd_builduid): Likewise. svn path=/trunk/; revision=18157
* New regression test for word splitting/search input parsing code.Not Zed2002-09-206-29/+187
| | | | | | | | | | | | | | | 2002-09-20 Not Zed <NotZed@Ximian.com> * tests/misc/split.c: New regression test for word splitting/search input parsing code. * tests/folder/test9.c (main): Fix for filter_driver api change. * camel-search-private.c (camel_search_words_split): Handle "'s and \'s to escape characters. For fat, lazy, slobs who dont like anything changing. svn path=/trunk/; revision=18130
* Take new session arg. Update callers. (symbols[]): changed get-source toNot Zed2002-09-195-39/+70
| | | | | | | | | | | | | | | | | | 2002-09-19 Not Zed <NotZed@Ximian.com> * camel-filter-search.c (camel_filter_search_match): Take new session arg. Update callers. (symbols[]): changed get-source to header-source (header_source): Chagned from get_source. Now a boolean, returns true if source matches one of the arguments. Uses the provider url comparison directly for accurate checking. Makes 'filter on source' work. * camel-filter-driver.c (camel_filter_driver_new): Take new arg, session. (camel_filter_driver_finalise): Free session. svn path=/trunk/; revision=18112
* Don't increment the response pointer when deciding what type of headerJeffrey Stedfast2002-09-192-4/+17
| | | | | | | | | | | | | 2002-09-19 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (parse_fetch_response): Don't increment the response pointer when deciding what type of header response we got, this screws up the string that we strdup into the part_spec string later. Also, instead of using the entire blob of HEADER.FIELDS that we get in the response, shorten it to just HEADER.FIELDS to use as the part_spec key. svn path=/trunk/; revision=18111
* fixed a merge conflictJeffrey Stedfast2002-09-191-1/+0
| | | | svn path=/trunk/; revision=18109
* Include MIME-VERSION and CONTENT-TYPE.Jeffrey Stedfast2002-09-192-1/+6
| | | | | | | | | 2002-09-18 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (CAMEL_MESSAGE_INFO_HEADERS): Include MIME-VERSION and CONTENT-TYPE. svn path=/trunk/; revision=18108
* If we get an ALERT, pass it to the user. An rfc2060 MUST, and bug #22496.Not Zed2002-09-192-0/+16
| | | | | | | | | | 2002-09-18 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-command.c (camel_imap_command_response): If we get an ALERT, pass it to the user. An rfc2060 MUST, and bug #22496. svn path=/trunk/; revision=18107
* Handle when the response is from a HEADER.FIELDS (if so, we don't want toJeffrey Stedfast2002-09-192-5/+26
| | | | | | | | | | | | 2002-09-17 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (parse_fetch_response): Handle when the response is from a HEADER.FIELDS (if so, we don't want to cache the result). (imap_update_summary): Request specific headers when building the CamelMessageInfo's rather than fetching the full headers. svn path=/trunk/; revision=18102
* If header_msgid_decode fails for the content-id field, just grab whateverJeffrey Stedfast2002-09-152-4/+6
| | | | | | | | | | | 2002-09-13 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part.c (process_header): If header_msgid_decode fails for the content-id field, just grab whatever is between the <>'s (yes, this means that the content-id is invalid - but what can ya do?). Addresses bug #21027. svn path=/trunk/; revision=18071
* If header_msgid_decode fails for the content-id field, just grab whateverJeffrey Stedfast2002-09-142-2/+22
| | | | | | | | | | | 2002-09-13 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part.c (process_header): If header_msgid_decode fails for the content-id field, just grab whatever is between the <>'s (yes, this means that the content-id is invalid - but what can ya do?). Addresses bug #21027. svn path=/trunk/; revision=18070
* Revert a patch that I had not meant to commit that was aimed at fixing bugJeffrey Stedfast2002-09-112-30/+13
| | | | | | | | | 2002-09-11 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_encode_string): Revert a patch that I had not meant to commit that was aimed at fixing bug #29234. svn path=/trunk/; revision=18040
* Same as below. Also save errno before closing the file so our caller canJeffrey Stedfast2002-09-114-6/+34
| | | | | | | | | | | | | | | | | | | | 2002-09-10 Jeffrey Stedfast <fejj@ximian.com> * camel-store-summary.c (camel_store_summary_load): Same as below. Also save errno before closing the file so our caller can figure out why we failed. (camel_store_summary_save): Same here, but also flush the output stream to disk. * camel-folder-summary.c (camel_folder_summary_load): s/fclose(in) == -1/fclose(in) != 0/ since fclose doesn't necessarily return -1 on fail, all we really know is that it returns 0 on success and non-zero on fail. * camel-certdb.c (camel_certdb_save): fsync() the stream after we fflush it. svn path=/trunk/; revision=18037
* Do proper error checking and return -1 on fail.Jeffrey Stedfast2002-09-114-42/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | 2002-09-10 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.c (perform_content_info_save): Do proper error checking and return -1 on fail. (camel_folder_summary_save): Check the return of perform_content_info_save and a few other output calls within the message_info_save loop. If any of them fail, save errno, close the file, and return -1. If we finish the loop without fail, fflush the stream and then fsync (fflush only flushes user-space buffers, you still need to fsync afterward to flush the data to disk). If either fail, treat it as an exception by saving errno, closing the stream, and returning -1. I suspect that this also fixes bug #30150 because the old code would fclose if fflush or fclose failed in the check after the loop (man fclose(3) states that any further calls using the stream (even another call to fclose) will have undefined behaviour no matter what the first fclose call returned). * providers/local/camel-local-summary.c (camel_local_summary_init): Don't malloc a private struct of 0 size. svn path=/trunk/; revision=18036
* Clear the exception even if we failed to get the message (part) from theJeffrey Stedfast2002-09-112-0/+8
| | | | | | | | | | | 2002-09-10 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (camel_imap_folder_fetch_data): Clear the exception even if we failed to get the message (part) from the imap-message-cache if we are online and able to try fetching it from the IMAP server. svn path=/trunk/; revision=18035
* Remove the hash table entry using the right path. Related to #29731.Not Zed2002-09-102-2/+8
| | | | | | | | | | 2002-09-10 Not Zed <NotZed@Ximian.com> * camel-data-cache.c (data_cache_expire): Remove the hash table entry using the right path. Related to #29731. (camel_data_cache_remove): " svn path=/trunk/; revision=18031
* Fixes bug #4224Jeffrey Stedfast2002-09-106-23/+73
| | | | | | | | | | | | | | | | | | 2002-09-09 Jeffrey Stedfast <fejj@ximian.com> Fixes bug #4224 * providers/imap/camel-imap-folder.c (camel_imap_folder_fetch_data): Pass ex into camel_imap_message_cache_get(). * providers/imap/camel-imap-message-cache.c (camel_imap_message_cache_get): Now takes an exception and sets it on fail. (camel_imap_message_cache_copy): Updated to properly handle cache_get error conditions. svn path=/trunk/; revision=18027
* Use e_mktime_utc.Dan Winship2002-09-054-29/+18
| | | | | | | | | | | * camel-mime-utils.c (header_decode_date): Use e_mktime_utc. * camel-mime-message.c (camel_mime_message_set_date): Use e_localtime_with_offset. * broken-date-parser.c (decode_broken_date): Use e_mktime_utc. svn path=/trunk/; revision=17986
* clear nonfatal stuff.Not Zed2002-09-0410-45/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-09-04 Not Zed <NotZed@Ximian.com> * tests/folder/test4.c (main): clear nonfatal stuff. * tests/folder/test6.c (main): check inbox and 'another folder' because some servers do different things w/ inbox. * providers/imap/camel-imap-message-cache.c (camel_imap_message_cache_get): Dont try to open the directory instead of an empty "" uid. * providers/imap/camel-imap-folder.c (imap_get_message): we dont want to g_return_if_fail, we need to set an exception and always handle the case. (get_message_simple): Set an exception if we get a construct failure. (imap_refresh_info): if we're refreshing inbox, force a reselect. this is required for at least cryus. CHECK doesnt work either :( * tests/lib/folders.c (test_folder_basic): for non-local stores, the folder will have an extra ref for selection, take this into account when checking ref leaks. (test_folder_message_ops): Dont try to delete folder with messages in it, it works generally with imap. also, change params so we can test different mailbox types. (test_folder_message_ops): disconnect remote services before finishing off. doesn't need to stricly but makes ref count checking more accurate. (test_folder_message_ops): removed explicit remote sync, imap does it itself now ... * providers/imap/camel-imap-store.c: (camel_imap_store_finalize): call service_disconnect, so it isn't called later in the finalise chain, to properly cleanup on exit. svn path=/trunk/; revision=17962
* If we fake the from eof file boundary, also make sure we say we matchedNot Zed2002-09-042-3/+15
| | | | | | | | | | | 2002-09-04 Not Zed <NotZed@Ximian.com> * camel-mime-parser.c (folder_scan_content): If we fake the from eof file boundary, also make sure we say we matched nothing. Also make the end case a little more robust to make sure we expired all hope of finding a sub-boundary. svn path=/trunk/; revision=17961
* Lots of changes, too numerous to list. Changed to useNot Zed2002-09-0313-574/+1379
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-09-04 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c, providers/imap/camel-imap-folder.c: Lots of changes, too numerous to list. Changed to use camel-imap-store-summary to cache list requests. Changed to use a canonicalised url path with / instead of per-store directory separator. Indirects folder name so invalid folder names can still be accessed. Summary now stored in a new expandable format in .ev-store-summary. 2002-08-28 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (construct): Load store summary if it exists. (can_work_offline): Just see if we have any folders to say whether we can work offline or not. Should probably always just return true. 2002-08-27 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store-summary.[ch]: New files to handle offline definition of folders, etc. * camel-url.h: Define CamelURL to be struct _CamelURL rather than anonymous struct. * camel-store-summary.[ch]: a few api tweaks. Also, the summary header is versioned separately at each level, so that version upgrades can be handled separately. Renamed FolderInfo -> StoreInfo to avoid namespace with current FolderInfo code. This should be reversed when the FolderInfo code is rationalised to this new base. 2002-08-23 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-command.c (camel_imap_command): domt encode folder name. * providers/imap/camel-imap-folder.c (do_copy): dont encode folder name. (do_append): dont encode folder name. * providers/imap/camel-imap-store.c (get_folder_status): don encode folder name in imap request. (get_folder_online): here too for creating folder. (rename_folder): Assume the incoming 'new name' is a utf8 path, whereas the 'old name' is as from get folder info (raw). (create_folder): Dont encode parent_name, assume its the raw thing. 2002-08-22 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (get_folder_online): Select based on unconverted name. (imap_build_folder_info): New function to create a folderinfo properly based on raw name. (subscribe_folder): Use above helper. (imap_folder_effectively_unsubscribed): Same here. (imap_forget_folder): Same here. (get_one_folder_offline): " 2002-08-21 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (parse_list_response_as_folder_info): Setup path properly, as decoded path with / separator. Setup full_name as non-decoded raw name. Keep url as decoded path but with server separator ... (ick). (create_folder): Dont call build_path anymore, get_folders() does it for us. (subscribe_folder): Build the path ourself. (imap_folder_effectively_unsubscribed): Same here. (get_subscribed_folders): list using %S not %F, we're using the raw server provided name directly. (subscribe_folder): As above, for SUBSCRIBE. (unsubscribe_folder): Same here. (delete_folder): Same. (rename_folder_info): Same here for source name. (rename_folder): And here? (get_folders_online): Amd here. * providers/imap/camel-imap-utils.c: (imap_parse_list_response): Dont decode the mailbox. * camel-utf8.[ch]: some new utf8 & utf7 utilities. * providers/imap/camel-imap-utils.c (imap_mailbox_encode): (imap_mailbox_decode): use camel_utf7/8* functions instead. : Add config.h and alloca.h headers. svn path=/trunk/; revision=17943
* Change the case sensitive search of subject to expect case insensitiveNot Zed2002-08-297-84/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-08-29 Not Zed <NotZed@Ximian.com> * tests/folder/test3.c: Change the case sensitive search of subject to expect case insensitive results, as the behaviour has changed. (main): Made the search content before sync nonfatal. its something that needs to be fixed but not practical concern in evolution. * camel-block-file.c (block_file_validate_root): Only spit out the invalid root warnings if the file isn't empty. * camel-text-index.c (text_index_compress_nosync): Swap the path as well when we compress. * camel-mime-parser.c (folder_scan_content): Treat the end of file as a boundary if we're scanning From lines, and drop the last \n. (folder_scan_init_with_fd): Dont pre-read from the fd, and init eof. (folder_scan_init_with_stream): Similar. (folder_read): Handle eof, and set eof on 0 read. (folder_seek): Dont pre-read after a seek, and reset eof flag. (camel_mime_parser_init_with_fd): Fix doco, no pre-read occurs anymore. (camel_mime_parser_init_with_stream): Same. * providers/local/camel-mbox-summary.c (camel_mbox_summary_sync_mbox): Add a \n to end of content of each message, not at start. * providers/local/camel-mbox-folder.c (mbox_append_message): Instead of appending "\nFrom " to a mailbox, start with "From ", and append a \n after the message always. For better mutt/elm compatability. Also, unlock after we've stat'd. (mbox_append_message): Set the message's from_pos exactly as the mbox size. svn path=/trunk/; revision=17921
* updated readmeMichael Zucci2002-08-291-0/+1
| | | | svn path=/trunk/; revision=17919
* Fixed `set' to hold the correct value when setting the flags.Jeffrey Stedfast2002-08-292-8/+11
| | | | | | | | | 2002-08-28 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-openssl.c (stream_setsockopt): Fixed `set' to hold the correct value when setting the flags. svn path=/trunk/; revision=17913
* simplifiedJeffrey Stedfast2002-08-291-1/+1
| | | | svn path=/trunk/; revision=17912
* Fixed `set' to hold the correct value when setting the flags.Jeffrey Stedfast2002-08-292-2/+5
| | | | | | | | | 2002-08-28 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-raw.c (stream_setsockopt): Fixed `set' to hold the correct value when setting the flags. svn path=/trunk/; revision=17911
* Match file: urls too.Jeffrey Stedfast2002-08-292-1/+6
| | | | | | | | 2002-08-28 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-tohtml.c (is_protocol): Match file: urls too. svn path=/trunk/; revision=17900
* fix exposes a regression in mbox :-/Not Zed2002-08-282-5/+9
| | | | | | | | | | 2002-08-28 Not Zed <NotZed@Ximian.com> * tests/folder/test8.c (test_add_message): Change message number to use hex, so its properly unique. (worker): Same here. svn path=/trunk/; revision=17891
* some utf7/utf8 tests.Not Zed2002-08-283-2/+111
| | | | | | | | 2002-08-28 Not Zed <NotZed@Ximian.com> * tests/misc/utf7.c: some utf7/utf8 tests. svn path=/trunk/; revision=17890
* fixes a crash on systems that dont have utf7 in iconv.Not Zed2002-08-285-251/+300
| | | | | | | | | | | | | | 2002-08-28 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-utils.c (imap_mailbox_encode): Chagned to use camel_utf8_utf7 code. (imap_mailbox_decode): As above, using camel_utf8_utf7. 'UTF-7' isn't a widely support iconv() codeset, and besides the new code is simpler. * camel-utf8.[ch]: robust utilities for working with utf8 and utf7. svn path=/trunk/; revision=17886
* Now takes a third argument to specify whether or not to group messages byJeffrey Stedfast2002-08-283-9/+26
| | | | | | | | | | | | | 2002-08-27 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-thread.c (camel_folder_thread_messages_new): Now takes a third argument to specify whether or not to group messages by subject when threading. It seems some people don't want this feature (see bug #22791 for details). (thread_summary): If thread_by_subject is enabled, group un-threaded messages by subject otherwise don't bother. svn path=/trunk/; revision=17880
* oops, my deadlock fix wasn't quite right. this should work nowJeffrey Stedfast2002-08-271-19/+19
| | | | svn path=/trunk/; revision=17868
* If the response is NULL, just return. (now works the same way asJeffrey Stedfast2002-08-272-0/+10
| | | | | | | | | | | 2002-08-26 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-command.c (camel_imap_response_free_without_processing): If the response is NULL, just return. (now works the same way as imap_response_free which allowed a NULL response argument). Fixes bug #25491. svn path=/trunk/; revision=17863
* removed a no-longer needed #defineJeffrey Stedfast2002-08-271-3/+0
| | | | svn path=/trunk/; revision=17862
* Lock the CamelService->priv->connect_lock instead of using our ownJeffrey Stedfast2002-08-277-103/+98
| | | | | | | | | | | | | | 2002-08-26 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c: * providers/imap/camel-imap-folder.c: * providers/imap/camel-imap-command.c: Lock the CamelService->priv->connect_lock instead of using our own command_lock. This fixes bug #28177. svn path=/trunk/; revision=17861
* If we fail to send the EHLO/HELO command successfully, setJeffrey Stedfast2002-08-242-3/+38
| | | | | | | | | | | | | | | | | | 2002-08-23 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_helo): If we fail to send the EHLO/HELO command successfully, set transport->connected to FALSE when we close the tcp connection. Also updated to work on an IPv6 network. (smtp_connect): transport->authtypes can be NULL, so NULL-protect the call to g_hash_table_size() - this should fix a warning that was reported on the evolution@ximian.com mailing list. (smtp_set_exception): If the status message is multi-line, add a \n between lines. (connect_to_server): If we are going to ignore the EHLO/HELO error as if it were non-fatal, then we should clear the exception. svn path=/trunk/; revision=17852
* If current_folder is not NULL and the summary for that folder is dirty,Jeffrey Stedfast2002-08-233-8/+36
| | | | | | | | | | 2002-08-22 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (imap_noop): If current_folder is not NULL and the summary for that folder is dirty, sync the flags rather than sending a NOOP. svn path=/trunk/; revision=17842
* Workaround for Courier imap's brokeness when LSUBing the INBOX folder whenJeffrey Stedfast2002-08-233-11/+43
| | | | | | | | | | 2002-08-22 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_parse_list_response): Workaround for Courier imap's brokeness when LSUBing the INBOX folder when it isn't subscribed to. Fixes bug #28929. svn path=/trunk/; revision=17841
* Don't register the noop timeout here anymore, we're gonna handle all thisJeffrey Stedfast2002-08-224-109/+11
| | | | | | | | | | | 2002-08-21 Jeffrey Stedfast <fejj@ximian.com> * camel-session.c (get_service): Don't register the noop timeout here anymore, we're gonna handle all this in the mailer now. (camel_session_register_timeout): Removed. (camel_session_remove_timeout): Removed. svn path=/trunk/; revision=17830
* up the timeout to 10 minutesJeffrey Stedfast2002-08-211-1/+1
| | | | svn path=/trunk/; revision=17823
* Override the default noop implementation.Jeffrey Stedfast2002-08-215-3/+100
| | | | | | | | | | | | | | | 2002-08-20 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (imap_noop): Override the default noop implementation. * camel-store.c (camel_store_noop): New virtual method to ping a store. * camel-session.c (get_service): Register a timeout that calls camel_store_noop() every 10 minutes. svn path=/trunk/; revision=17822
* Plug some large leaks in the indexing code.Peter Williams2002-08-213-4/+18
| | | | | | | | | | | | | | | | | 2002-08-19 Peter Williams <peterw@ximian.com> Plug some large leaks in the indexing code. * camel-mime-filter-index.c (camel_mime_filter_index_set_index): Unref the old index if necessary. * camel-text-index.c (camel_text_index_get_type): Give it the correct parent type so that finalize handlers chain. (camel_text_index_name_get_type): Here too. (camel_text_index_cursor_get_type): Here too. (camel_text_index_key_cursor_get_type): Here too. svn path=/trunk/; revision=17820