aboutsummaryrefslogtreecommitdiffstats
path: root/camel
Commit message (Collapse)AuthorAgeFilesLines
...
* Implemented uuencoding and decoding. (complete): Implemented uuencodingJeffrey Stedfast2001-10-065-3/+199
| | | | | | | | | | | | | | 2001-10-06 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-basic.c (filter): Implemented uuencoding and decoding. (complete): Implemented uuencoding and decoding. * camel-mime-utils.c (uuencode_close): New function to flush the uu encoder. (uuencode_step): New function to uuencode a block of data. svn path=/trunk/; revision=13476
* Use a folder_subscribed event rather than a folder_created one.52001-10-063-8/+41
| | | | | | | | | | | | | | | | | | 2001-10-05 <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (subscribe_folder): Use a folder_subscribed event rather than a folder_created one. (unsubscribe_folder): Similarly for unsubscribed/deleted. (create_folder): Emit a folder_created event on the folders we added. Not sure hsould probably check which ones are new and which ones are just existing ones? (delete_folder): Emit a folder_deletd event when we've deleted the folder. Part of fix for #11831. * camel-store.c (camel_store_class_init): Added folder_subscribed/unsubscribed events. svn path=/trunk/; revision=13471
* Turn off warnings. (get_name): Same.Jeffrey Stedfast2001-10-066-55/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-05 Jeffrey Stedfast <fejj@ximian.com> * camel-service.c (camel_service_finalize): Turn off warnings. (get_name): Same. * camel-sasl.c (sasl_challenge): Turn off warnings. * camel-tcp-stream.c (tcp_connect): Turn off warnings. (tcp_getsockopt): Same. (tcp_setsockopt): Here too. (tcp_get_socket): And here. * camel-folder.c (folder_sync): Turn off warnings. (expunge): Same. (append_message): Here too. (get_message): And here. (search_by_expression): And again here. (folder_changed): Here too. * camel-store.c (get_folder): Set an exception and turn off debugging g_warnings. (create_folder): Same. (delete_folder): Here too. (rename_folder): And here. (get_trash): And here. (get_folder_info): Same. (free_folder_info): And again here. (camel_folder_info_build): Here too. (folder_subscribed): Same. (subscribe_folder): Here too. (unsubscribe_folder): And here. svn path=/trunk/; revision=13458
* Try harder to get broken names out of addresses. Unencoded ,'s in names52001-10-062-7/+46
| | | | | | | | | | | | | 2001-10-05 <NotZed@Ximian.com> * camel-mime-utils.c (header_decode_mailbox): Try harder to get broken names out of addresses. Unencoded ,'s in names will still break it, but well what can you do eh? (header_decode_mailbox): Always add .'s into address we've scanned past a '.', even if we can't decode the next part. Fix for some annoying bug #. svn path=/trunk/; revision=13453
* Change the order of execution slightly. We delete the folder first, then42001-10-063-14/+28
| | | | | | | | | | | | 2001-10-04 <NotZed@Ximian.com> * camel-store.c (camel_store_delete_folder): Change the order of execution slightly. We delete the folder first, then call the classes delete folder, then cleanup the hashtable afterwards. This is so deletes of vfolders work, since vee-store uses the folder hashtable to store all of is vfolders :-/ svn path=/trunk/; revision=13448
* tedfast <fejj@ximian.com>Jeffrey Stedfast2001-10-051-0/+5
| | | | | | | | | tedfast <fejj@ximian.com> * camel-service.c (camel_service_connect): Unregister the operation before unreffing it. svn path=/trunk/; revision=13413
* Unregister the operation before unreffing it.Jeffrey Stedfast2001-10-051-0/+4
| | | | | | | | | 2001-10-04 Jeffrey Stedfast <fejj@ximian.com> * camel-service.c (camel_service_connect): Unregister the operation before unreffing it. svn path=/trunk/; revision=13412
* Remove now unused 'recents' array/freeing func.32001-10-043-11/+17
| | | | | | | | | | | | | | 2001-10-03 <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (camel_imap_folder_changed): Remove now unused 'recents' array/freeing func. * camel-object.c (camel_object_trigger_event): Oops, always run the prep function, even if we have no hooks listening. Causes incoming imap recents to get ignored bythe camel-folder filter inbox code. svn path=/trunk/; revision=13398
* Dont explicitly save metadata, its saved in summary_sync.32001-10-046-50/+43
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-03 <NotZed@Ximian.com> * providers/local/camel-local-folder.c (local_sync): Dont explicitly save metadata, its saved in summary_sync. * providers/local/camel-mh-summary.c: Call superclass. (mh_summary_check): Dont save ibex. * providers/local/camel-maildir-summary.c: Call superclass method. (maildir_summary_check): Dont save ibex explictly. * providers/local/camel-mbox-summary.c: Call super-class sync when done, saves summary/ibex, etc. (mbox_summary_check): Dont save ibex. (mbox_summary_sync): Call summary_check rather than trying to update from our known position. * providers/local/camel-local-summary.c (camel_local_summary_check): Dont save the summary or index here. (local_summary_sync): Save the summary/index here. svn path=/trunk/; revision=13397
* Added MATCH_NEWLINE flag, -> REG_NEWLINE.32001-10-045-7/+25
| | | | | | | | | | | | | | | | | | 2001-10-03 <NotZed@Ximian.com> * camel-search-private.c (camel_search_build_match_regex): Added MATCH_NEWLINE flag, -> REG_NEWLINE. * camel-lock-helper.c: Include <string.h> to kill some warnings. * camel-filter-search.c (get_full_header): Put \n's between each line we generate. (header_full_regex): Dont drop the first argument to the command -> empty matches! (header_full_regex): Set match_newline for building regex. (body_regex): And here too. These all fix #9877. svn path=/trunk/; revision=13392
* Call camel_folder_delete() on the folder if it's "alive".Jeffrey Stedfast2001-10-044-23/+83
| | | | | | | | | | | | | | | | 2001-10-03 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (camel_store_delete_folder): Call camel_folder_delete() on the folder if it's "alive". * camel-folder.c (camel_folder_delete): Mark the folder as deleted, perform any folder specific cleanup and emit the deleted event. (camel_folder_sync): Only sync the folder if it hasn't been deleted. (camel_folder_expunge): Same. svn path=/trunk/; revision=13388
* Strange are the ways of alloca. Fixes 11543.Dan Winship2001-10-032-1/+9
| | | | | | | * providers/local/camel-local-provider.c (local_url_equal): Strange are the ways of alloca. Fixes 11543. svn path=/trunk/; revision=13375
* remove unused variableJeffrey Stedfast2001-10-031-1/+0
| | | | svn path=/trunk/; revision=13364
* Import the certificate if the user accepts it.Jeffrey Stedfast2001-10-032-20/+16
| | | | | | | | | 2001-10-02 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (ssl_bad_cert): Import the certificate if the user accepts it. svn path=/trunk/; revision=13363
* for hashing/comparing local url's, we ignore trailing /'s in paths (maybe22001-10-032-12/+99
| | | | | | | | | | | 2001-10-02 <NotZed@Ximian.com> * providers/local/camel-local-provider.c (local_url_hash, local_url_equal): for hashing/comparing local url's, we ignore trailing /'s in paths (maybe shuld handle multiple /'s too). (camel_provider_module_init): Use local_url_hash/equal for all functions. svn path=/trunk/; revision=13362
* Change to camel_charset_iconv_open/close.22001-10-038-22/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-02 <NotZed@Ximian.com> * camel-sasl-digest-md5.c (digest_response): Change to camel_charset_iconv_open/close. * camel-pgp-context.c (pgp_verify): Change to camel_charset_iconv_open/close. * camel-mime-part-utils.c (convert_buffer): Change to camel_charset_iconv_open(). * camel-mime-filter-charset.c (camel_mime_filter_charset_new_convert, finalise): Change to camel_charset_iconv_open, etc. * camel-mime-utils.c: Use the camel_charset_iconv_open/close() functions to open/close it. * camel-charset-map.c (camel_charset_iconv_open): New function, wrap iconv_open, so we can cache ic's. (camel_charset_iconv_close): Likewise for close. (camel_charset_map_init,shutdown): Init/free iconv cache. svn path=/trunk/; revision=13361
* Revert my x-unknown special-case hack - this may mask other problems.Jeffrey Stedfast2001-10-033-8/+24
| | | | | | | | | | | | | 2001-10-02 Jeffrey Stedfast <fejj@ximian.com> * camel-charset-map.c (camel_charset_to_iconv): Revert my x-unknown special-case hack - this may mask other problems. * camel-mime-utils.c (rfc2047_decode_word): If the iconv conversion fails, for whatever reason, retry using the user's locale charset. svn path=/trunk/; revision=13359
* Go back to using the store url's path, not the toplevel_dir thing.22001-10-033-4/+10
| | | | | | | | | | | | 2001-10-02 <NotZed@Ximian.com> * providers/local/camel-maildir-store.c (get_folder_info): Go back to using the store url's path, not the toplevel_dir thing. * camel-operation.c (camel_operation_progress): Fix the progress logic, so we dont update too often. svn path=/trunk/; revision=13354
* Change the lock to a recursive e-mutex. (camel_object_hook_event):22001-10-032-136/+89
| | | | | | | | | | | | | | | | | | | | | 2001-10-02 <NotZed@Ximian.com> * camel-object.c (camel_object_get_hooks): Change the lock to a recursive e-mutex. (camel_object_hook_event): Maintain list length of hook list. (camel_object_unhook_event): " (camel_object_unhook_event): If we are in an event, just mark the pair as removed, without removing it. (camel_object_trigger_event): Before running events, copy the list, and also ignore 'removed' events. After running events, if we're all out of events, then free up any pending-removed events. (camel_object_free_hooks): Add some new assertions on the state of the hook structure. Removed the #error if threads not defined. It _should_ actually work without threads. (camel_object_free_hooks): Free mutex when done. svn path=/trunk/; revision=13347
* Shoo! Shoo!Dan Winship2001-10-031-6/+0
| | | | svn path=/trunk/; revision=13310
* Remove any cached messages that belonged to the deleted folder.Jeffrey Stedfast2001-10-022-6/+63
| | | | | | | | | | | | | 2001-10-01 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (delete_folder): Remove any cached messages that belonged to the deleted folder. (subscribe_folder): Don't ever let the info->name be NULL and don't use the stupid concat kludge to generate the URL, just use a CamelURL to do it. This way we don't risk breaking stuff by having a url like imap://fejj@imap//folder svn path=/trunk/; revision=13288
* If the charset is x-unknown, return the locale_charset.Jeffrey Stedfast2001-10-022-1/+10
| | | | | | | | | 2001-10-01 Jeffrey Stedfast <fejj@ximian.com> * camel-charset-map.c (camel_charset_to_iconv): If the charset is x-unknown, return the locale_charset. svn path=/trunk/; revision=13281
* Fix up the provider flags to specify things more completely so we don'tDan Winship2001-10-024-9/+32
| | | | | | | | | | | | | | * camel-provider.h: Fix up the provider flags to specify things more completely so we don't have to hardcode provider names in the mailer. * providers/local/camel-local-provider.c: MH, mbox, and Maildir are LOCAL. MH and mbox are no longer STORAGE by the new definition. * camel-session.c (vee_provider): The vfolder store is a STORAGE. svn path=/trunk/; revision=13276
* Don't munge the URL; CamelSession's caching relies on it not changing.Dan Winship2001-10-027-42/+49
| | | | | | | | | | | | | | | | | | | | * providers/local/camel-local-store.c (construct): Don't munge the URL; CamelSession's caching relies on it not changing. Instead, add a toplevel_dir field to CamelLocalStore, and set that to the path, but always ending with /. (camel_local_store_finalize): Free toplevel_dir (camel_local_store_get_toplevel_dir): Return toplevel_dir rather than url->path. * providers/local/*: Lots of s/url->path/toplevel_dir/ * providers/local/camel-spool-store.c (construct): Likewise, don't try to strip a trailing / from url->path here, but I didn't make the corresponding toplevel_dir change, because there's no good reason someone should expect "/var/spool/mail/danw/" to work since that's not a directory. svn path=/trunk/; revision=13264
* if STAT returns 0, don't bother sending UIDL. Speeds things up slightlyDan Winship2001-10-012-0/+14
| | | | | | | | | * providers/pop3/camel-pop3-folder.c (pop3_refresh_info): if STAT returns 0, don't bother sending UIDL. Speeds things up slightly and also works around a bug in a particular random POP server. (ximian bug 11369). svn path=/trunk/; revision=13257
* Add --no-secmem-warning and --no-greeting to the gpg command-line options.Jeffrey Stedfast2001-09-302-0/+20
| | | | | | | | | | | | | 2001-09-29 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_sign): Add --no-secmem-warning and --no-greeting to the gpg command-line options. (pgp_clearsign): Same. (pgp_verify): Here too. (pgp_encrypt): And here. (pgp_decrypt): And finally here. svn path=/trunk/; revision=13251
* Same here.Jeffrey Stedfast2001-09-293-14/+34
| | | | | | | | | | | 2001-09-28 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-search.c (get_source): Same here. * camel-mime-message.c (camel_mime_message_set_source): Don't use the e_url_shroud hack, use CamelURL functions instead. svn path=/trunk/; revision=13240
* Init the nntp url hash and url_equal functions.Jeffrey Stedfast2001-09-299-7/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-28 Jeffrey Stedfast <fejj@ximian.com> * providers/nntp/camel-nntp-provider.c (camel_provider_module_init): Init the nntp url hash and url_equal functions. * providers/sendmail/camel-sendmail-provider.c (camel_provider_module_init): Init the sendmail url hash and url_equal functions. * providers/smtp/camel-smtp-provider.c (camel_provider_module_init): Init the smtp url hash and url_equal functions. * providers/pop3/camel-pop3-provider.c (camel_provider_module_init): Init the pop3 url hash and url_equal functions. * providers/imap/camel-imap-provider.c (camel_provider_module_init): Init the imap url hash and url_equal functions. * providers/local/camel-local-provider.c (camel_provider_module_init): Init the local url hash and url_equal functions. * camel-session.c (camel_session_class_init): Init the vfolder url hash and url_equal functions. * camel-provider.h: Added url_hash and url_equal function pointers to the structure. * camel-vtrash-folder.c (vtrash_move_messages_to): Oops, a CamelFolder is not a CamelFolderClass. svn path=/trunk/; revision=13237
* Oops, a CamelFolder is not a CamelFolderClass.Jeffrey Stedfast2001-09-292-3/+11
| | | | | | | | | 2001-09-28 Jeffrey Stedfast <fejj@ximian.com> * camel-vtrash-folder.c (vtrash_move_messages_to): Oops, a CamelFolder is not a CamelFolderClass. svn path=/trunk/; revision=13217
* Make this take an SSL * instead of a CamelTcpStreamSSL *, since it can getDan Winship2001-09-282-5/+12
| | | | | | | | | * camel-tcp-stream-openssl.c (ssl_error_to_errno): Make this take an SSL * instead of a CamelTcpStreamSSL *, since it can get called from open_ssl_connection, when the CamelTcpStreamSSL isn't set up right yet. Fixes a crash on connection failure. svn path=/trunk/; revision=13213
* Grab the store's command_lock before grabbing the folder's cache_lock toDan Winship2001-09-282-2/+29
| | | | | | | | | | | | | | | | * providers/imap/camel-imap-folder.c (camel_imap_folder_fetch_data): Grab the store's command_lock before grabbing the folder's cache_lock to prevent deadlock if another thread is processing an EXPUNGE response. * providers/imap/camel-imap-folder.c (imap_expunge_uids_resyncing): Fix a compiler warning that might point out a real bug... * providers/imap/camel-imap-folder.c (get_content): and one that doesn't svn path=/trunk/; revision=13209
* Minor style change to operation_registered.Michael Zucci2001-09-281-6/+4
| | | | svn path=/trunk/; revision=13206
* Dont re-register the connect_op if we got it by calling72001-09-282-4/+12
| | | | | | | | | | | | 2001-09-27 <NotZed@Ximian.com> * camel-service.c (camel_service_connect): Dont re-register the connect_op if we got it by calling 'operation_registered', which returns an already-registered one. (camel_service_disconnect): Likewise here. This removes all the re-registered warnings. svn path=/trunk/; revision=13205
* Fill the finalised data with nonsense, rather than 0's - more easily72001-09-283-28/+218
| | | | | | | | | | | | | | | | | 2001-09-27 <NotZed@Ximian.com> * camel-object.c (camel_object_unref): Fill the finalised data with nonsense, rather than 0's - more easily detect bad data. (camel_object_new): Clear instance data when we retrieve it off the list. * camel-object.h (_CamelObject): Added an event lock pointer for uh, locking event stuff. Also change the hooklist hashtable into a list. Changed all the code to handle it. Result: thread-safe events, event-hooks, and save memory too, and SHOULD FINALLY FIX THAT UNREAD COUNT PROBLEM. svn path=/trunk/; revision=13201
* CRLF decode the stream before parsing it into a MIME part. This fixes bugJeffrey Stedfast2001-09-283-3/+35
| | | | | | | | | | | 2001-09-27 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-mime.c (camel_pgp_mime_part_decrypt): CRLF decode the stream before parsing it into a MIME part. This fixes bug #10521. * camel-store.c: Remove the old folder from the vTrash folder. svn path=/trunk/; revision=13199
* Change "gboolean connected" to "CamelServiceConnectionStatus status",Dan Winship2001-09-278-29/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * camel-service.c: Change "gboolean connected" to "CamelServiceConnectionStatus status", which can be disconnected, connecting, connected, or disconnecting. (camel_service_init, camel_service_finalize): create/destroy the connect_op_lock. Refer to service->status rather than service->connected. (camel_service_connect): When connecting, note the current operation (and create a new one if there's none registered) and mark the connection "connecting" until we succeed or fail. (camel_service_disconnect): Likewise in reverse. (camel_service_cancel_connect): New function to cancel a connection attempt. (cancel_connect): Default implementation: Call camel_operation_cancel on the connect_op. * camel-disco-store.c (disco_connect): Only call CamelRemoteStore's connect func if we're online. (disco_cancel_connect): Fall back to offline if a connection gets cancelled. (disco_get_folder_info): Kludge: call connect explicitly before deciding whether to do the online or offline version, so if the connect fails, we fall back correctly. * camel-session.c (camel_session_get_service_connected): s/svc->connected/svc->status/ * camel-remote-store.c (camel_remote_store_finalise): Change service->connected check to service->status check. (remote_connect): Don't set service->connected here: camel_service_connect() itself does that. * camel-operation.c (camel_operation_registered): Deal with the possibility that there's no registered op. svn path=/trunk/; revision=13191
* If we get a search error, just abort, dont try and fall back and copy to62001-09-272-22/+63
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-26 <NotZed@Ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_message): If we get a search error, just abort, dont try and fall back and copy to inbox. (camel_filter_driver_filter_message): Make sure we ALWAYS use exceptions for important things - like moving messages to inbox! (camel_filter_driver_filter_message): If we have the source folder, use camel_folder_set_message_flags rather then poking the info directly, which skips changed events. This means filtering immediate doesn't lose changed events. (do_flag): Same here. (do_colour): Same thing but using set_tag. (do_score): Same again. (camel_filter_driver_filter_folder): Use ~0 as the 'set' arg to set_flags, just saves typing. (open_folder): We cache folders that we couldn't open as well as those ones we could. Use magic token FOLDER_INVALID = (void *)~0 as the marker. (close_folder): Handle FOLDER_INVALID case properly. svn path=/trunk/; revision=13169
* New function to convenience Larry ;-) (check_content_id): Oops, returnJeffrey Stedfast2001-09-272-4/+7
| | | | | | | | | | | | | | | | 2001-09-26 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-message.c (camel_mime_message_get_part_by_content_id): New function to convenience Larry ;-) (check_content_id): Oops, return !found instead of found. This callback has to return whether or not to keep searching, not whether or not it found what it's looking for. Do'h! * camel-pgp-mime.c (camel_pgp_mime_is_rfc2015_signed): block out some code if ENABLE_PEDANTIC_PGPMIME is not defined. svn path=/trunk/; revision=13168
* fixed merge conflictsJeffrey Stedfast2001-09-271-1/+0
| | | | svn path=/trunk/; revision=13166
* New function to convenience Larry ;-)Jeffrey Stedfast2001-09-274-4/+64
| | | | | | | | | | | | | 2001-09-26 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-message.c (camel_mime_message_get_part_by_content_id): New function to convenience Larry ;-) * camel-pgp-mime.c (camel_pgp_mime_is_rfc2015_signed): block out some code if ENABLE_PEDANTIC_PGPMIME is not defined. svn path=/trunk/; revision=13165
* Emptied VeeStorePrivate, member wasn't used.62001-09-274-23/+38
| | | | | | | | | | | | | | | | | | | | | | 2001-09-26 <NotZed@Ximian.com> * camel-vee-store.c: Emptied VeeStorePrivate, member wasn't used. * camel-vee-folder.c (camel_vee_folder_set_expression): Lock changed list separately. (camel_vee_folder_remove_folder): " (camel_vee_folder_set_folders): Use changed_lock for changed list. (vee_refresh_info): Use changed_lock, also just grab the list, reset it in the lock, and do the work unlocked. (vee_sync): Use changed lock for changed list. (folder_changed): ". All this kills a deadlock with sync/expunge. * camel-private.h (CamelVeeFolderPrivate): Added a new lock for the folders-changed list. (CamelVeeStorePrivate): Removed, defined in camel-vee-store.c, thanks to a pedantic. svn path=/trunk/; revision=13163
* Fix Ettore's fix.Jeffrey Stedfast2001-09-272-6/+10
| | | | | | | | 2001-09-26 Jeffrey Stedfast <fejj@ximian.com> * Makefile.am: Fix Ettore's fix. svn path=/trunk/; revision=13154
* No longer takes a remember argument. (pgp_sign): Only uncache theJeffrey Stedfast2001-09-263-24/+30
| | | | | | | | | | | | | | | 2001-09-25 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (camel_pgp_context_new): No longer takes a remember argument. (pgp_sign): Only uncache the passphrase on failure. (pgp_clearsign): Same. (pgp_encrypt): Here too. (pgp_decrypt): And here. (pass_free): New function to zero the passphrase before freeing it. svn path=/trunk/; revision=13138
* [Patch for Automake 1.5 compatibility pointed out by RichardEttore Perazzoli2001-09-263-13/+12
| | | | | | | | | | | | Boulton <richard@tartarus.org>, as per #9258.] * providers/nntp/Makefile.am: Remove some commented parts that make Automake 1.5 choke. * Makefile.am (camel-lock-helper): Add $(EXEEXT) for Automake 1.5 compatibility. svn path=/trunk/; revision=13137
* Only unref info if we got it.52001-09-262-4/+8
| | | | | | | | | 2001-09-25 <NotZed@Ximian.com> * camel-folder.c (get_unread_message_count): Only unref info if we got it. svn path=/trunk/; revision=13130
* Fix for !threads enabled not ccompiling. (camel_operation_ref): Assert52001-09-263-159/+166
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-25 <NotZed@Ximian.com> * camel-operation.c (camel_operation_unref): Fix for !threads enabled not ccompiling. (camel_operation_ref): Assert refcount > 0. (struct _CamelOperation): Removed the lock. On further investigation, I dont think this will always work, the registration operations assume that a lookup in the operation_active table will return a ref, that will remain valid until we ref it, which needn't be the case. So now i'm using a single global lock, since we'd need to do that for unref anyway, and every operation is fast & memory-bound. Changed all the code to handle this. (camel_operation_progress_count): Since the code is identical, just call progress() for now. (camel_operation_register): No longer refcount, use unref to check/clear the active table. (camel_operation_unregister): Same here. (camel_operation_unref): Check if operation is in active table, if so, warn, remove. svn path=/trunk/; revision=13125
* call SSL_read/write, looping on SSL_ERROR_WANT_READ/WRITE. I'm sureDan Winship2001-09-262-4/+41
| | | | | | | | | | | | * camel-tcp-stream-openssl.c (my_SSL_read, my_SSL_write): call SSL_read/write, looping on SSL_ERROR_WANT_READ/WRITE. I'm sure there's a perfectly good reason that the API works this way. No, really. (stream_read, stream_write): use my_SSL_read and my_SSL_write. Fixes at least ximian 8593, and probably 6024 and maybe 10366, at least for OpenSSL. There may be a parallel NSS bug? svn path=/trunk/; revision=13121
* A "safe write" function that always writes out all data asked of it, till52001-09-262-31/+50
| | | | | | | | | | | | 2001-09-25 <NotZed@Ximian.com> * camel-stream-buffer.c (stream_write_all): A "safe write" function that always writes out all data asked of it, till finished. (stream_write): Rewritten. What was i on when i wrote that originally, how did it ever work with tcp streams ... svn path=/trunk/; revision=13115
* Set the exception to FOLDER_INVALID rather than making out it worked. A42001-09-252-0/+12
| | | | | | | | | | 2001-09-24 <NotZed@Ximian.com> * camel-folder.c (append_message): Set the exception to FOLDER_INVALID rather than making out it worked. A fix for #7025. (search_by_expression): Here too. svn path=/trunk/; revision=13106
* In the 'lose' case, free messages, not fetch_data twice!42001-09-252-1/+4
| | | | | | | | | 2001-09-24 <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): In the 'lose' case, free messages, not fetch_data twice! svn path=/trunk/; revision=13101
* If the type is encoded, get the fallback charset from the message42001-09-2512-140/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-24 <NotZed@Ximian.com> * camel-filter-search.c (check_header): If the type is encoded, get the fallback charset from the message content-type. * camel-mime-part-utils.c (check_html_charset): Dont check for charset==null before calling charset_to_iconv. (simple_data_wrapper_construct_from_parser): " * camel-mime-message.c (process_header): Try use content-type charset param as the fallback charset. * camel-charset-map.c (camel_charset_to_iconv): Handle name == NULL, return NULL. * camel-folder-summary.c (camel_folder_summary_format_address): (camel_folder_summary_format_string): Made private again, removed #warning about it. Renamed to s/camel_folder//. (summary_format_string): Take default charset param. (camel_message_info_new_from_header, message_info_new): Decode content-type field to get the charset parameter to use as the default charset for decoding strings. * camel-search-private.c (camel_search_header_match): Pass NULL as the charset, the locale charset is always tried. (camel_search_header_match): Supply a default_charset parameter to be used with TYPE_ENCODED params. * camel-mime-utils.c (header_param): get rid of the g_strcasecmp crap. (header_set_param): Same here. (header_decode_param_list): And here. (header_decode_text): Totally rewritten. 30% of its size. If the word is not rfc2047 encoded, always try default_charset if supplied, if that fails, try locale charset if it exists, if that fails then assume latin1/7 bit ascii. (append_8bit): Changed to return FALSE if we can't convert for whatever reason, and dont append anything. * camel-mime-part.h (struct _CamelMimePart): Move content_type and headers out of the 'private' section. * camel-mime-part.c (get_headers): Dont do any conversion on the header. (process_header): Get the content-type charset as the fallback charset for decode_string. (construct_from_parser): IF we have a content-type header, process it before doing anything else, so we have access to a fallback charset for invalid headers. svn path=/trunk/; revision=13096
* fixed compile warningJeffrey Stedfast2001-09-241-3/+2
| | | | svn path=/trunk/; revision=13090
* Don't even try to alert the user if the session isn't interactive.Jeffrey Stedfast2001-09-243-27/+43
| | | | | | | | | | | | | | | | | 2001-09-23 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-openssl.c (ssl_verify): Don't even try to alert the user if the session isn't interactive. (errlib_error_to_errno): Make the default errno EINTR so that we act just like CamelTcpStreamSSL. * camel-pgp-context.c (pgp_sign): When the password is not provided, set the exception to USER_CANCEL. (pgp_clearsign): Same. (pgp_encrypt): And here. (pgp_decrypt): Here too. svn path=/trunk/; revision=13088
* Set the exception if create_folder isn't implemented.12001-09-222-0/+8
| | | | | | | | | 2001-09-21 <NotZed@Ximian.com> * camel-store.c (create_folder): Set the exception if create_folder isn't implemented. svn path=/trunk/; revision=13056
* Go back to not using camel_folder_info_build() here because this seems toJeffrey Stedfast2001-09-222-4/+18
| | | | | | | | | | | 2001-09-21 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (create_folder): Go back to not using camel_folder_info_build() here because this seems to break folder creation (returning nodes from the root path when it shouldn't be?). svn path=/trunk/; revision=13054
* Force a refresh of vfolders before storing their count. This essentially12001-09-214-3/+101
| | | | | | | | | | | | | | | | | | | | | | | | 2001-09-21 <NotZed@Ximian.com> * camel-vee-store.c (vee_get_folder_info): Force a refresh of vfolders before storing their count. This essentially makes 'get_folderinfo' refresh all vfolders, so that get-mail works as expected. * camel-vee-folder.c (camel_vee_folder_finalise): Clear lists. (folder_changed): If we're not autoupdating the folder, then add this folder to the list of 'changed' folders for this vfolder. (camel_vee_folder_set_expression): Reset the folders_changed list. (camel_vee_folder_remove_folder): Remove the folder from the folders_changed list. (camel_vee_folder_set_folders): If we have a folder already, but its changed, use this opportunity to update it. (vee_sync): Remove any synced folders from the folders_changed list. (vee_refresh_info): Refresh folder, re-run queries on any changed folders. svn path=/trunk/; revision=13045
* New function to just load the summary. Not much use yet, until unreadMichael Zucci2001-09-215-1/+96
| | | | | | | | | | | | | | | | | | | | | * camel-folder-summary.c (camel_folder_summary_header_load): New function to just load the summary. Not much use yet, until unread counts are stored in the summary (which now looks like too much work!). * camel-mime-utils.c (header_decode_mailbox): Crappy fix for stupid mailers. If we get 'name b. name <foo>' then treat it as '"name b. name" <foo>'. See 8147. (header_decode_mailbox): Another fix for really broken mailers that have things that look like addresses followed by <address> bits. (rfc2047_encode_word): Escape ??= to avoid some bizarre warning about trigraphs. (scan_dir): If we dont have the folder open, then scan the 'new' and 'cur' folders for new and unread messages to count instead. svn path=/trunk/; revision=13040
* Setup unread count properly, and also setup the url properly.Michael Zucci2001-09-214-13/+36
| | | | | | | | | | | | * providers/local/camel-local-folder.c (camel_local_folder_construct): Setup unread count properly, and also setup the url properly. (scan_dir): Dont include empty host part in url for folder. (scan_dir): Lookup folder counts for any folders we currenty have open. svn path=/trunk/; revision=13035
* Build the path on the folderinfo.02001-09-2111-27/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-20 <NotZed@Ximian.com> * providers/local/camel-maildir-store.c (camel_folder_info_new): Build the path on the folderinfo. * providers/local/camel-spool-store.c (get_folder_info): If we have this folder open, then set unread from the folder itself. (get_folder_info): Change the INBOX path to not include the leading /. * providers/local/camel-spool-folder.c (camel_spool_folder_construct): Fix path. (camel_spool_folder_construct): Properly setup the url field when we say we've got a new folder created. * providers/imap/camel-imap-store.c (unsubscribe_folder): Build path on folderinfo. * camel-store.c (camel_folder_info_build_path): Prepend / to path. * camel-vee-folder.c (camel_vee_folder_construct): Use macro for unmatched folder name. (camel_vee_folder_new): " * camel-vee-store.c (vee_get_folder_info): Use macro for unmatched folder name. (vee_delete_folder): " (vee_rename_folder): " (vee_get_folder): Prepend / onto path. (vee_delete_folder): Setup path in folderinfo. (vee_get_folder_info): Fix path in folderinfo. * camel-vee-folder.h (CAMEL_UNMATCHED_NAME): New define for unmatched (internal) name. svn path=/trunk/; revision=13022
* And finally here.Jeffrey Stedfast2001-09-217-27/+108
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-20 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-spool-folder.c (camel_spool_folder_construct): And finally here. * providers/local/camel-local-folder.c (camel_local_folder_construct): And here. * camel-vee-store.c (vee_get_folder): ANd here too. (vee_get_folder_info): And here. * providers/imap/camel-imap-store.c (create_folder): Use camel_folder_info_build() and do better error checking. (subscribe_folder): Set the path on the folder info. * camel-store.c (camel_folder_info_build): Set the folder-info path if it hasn't already been set by the caller. (camel_folder_info_free): Free the path. * camel-store.h: Added a path member to the FolderInfo type. svn path=/trunk/; revision=13019
* Nuke debug warning.Dan Winship2001-09-212-2/+4
| | | | | | * camel-charset-map.c (camel_charset_to_iconv): Nuke debug warning. svn path=/trunk/; revision=13009
* Updated exception strings to be more clear.Jeffrey Stedfast2001-09-203-17/+23
| | | | | | | | | | | 2001-09-19 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c: Updated exception strings to be more clear. * camel-pgp-mime.c (pgp_mime_part_sign_restore_part): Stupid mistake, fixes bug #9975. svn path=/trunk/; revision=13001
* Oops, don't fail if `data' isn't a CamelService...cuz it's not supposed toJeffrey Stedfast2001-09-202-1/+7
| | | | | | | | | | 2001-09-19 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (ssl_bad_cert): Oops, don't fail if `data' isn't a CamelService...cuz it's not supposed to be! It's a CamelTcpStreamSSL object...doh! svn path=/trunk/; revision=12992
* General cleanup of camel debug printfs.92001-09-1918-40/+76
| | | | | | | | | | | | | | | | | 2001-09-19 <NotZed@Ximian.com> * General cleanup of camel debug printfs. * camel-lock.c (camel_lock_fcntl): Changed to return 'success' if the error indicates file locking isn't supported on this filesystem. Still return a warning just incase (if its the first time). Might fix a lot of reported bugs. * providers/local/camel-spool-store.c (get_folder_info): Dont include the empty // host part in the uri. This 'breaks' the service lookup. svn path=/trunk/; revision=12973
* s/List-Owner/List-PostJeffrey Stedfast2001-09-191-1/+1
| | | | svn path=/trunk/; revision=12962
* Match mailing-list header List-Owner.Jeffrey Stedfast2001-09-192-0/+5
| | | | | | | | 2001-09-18 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c: Match mailing-list header List-Owner. svn path=/trunk/; revision=12959
* If filter inbox is set on the store, and we're opening inbox '', then82001-09-1924-146/+544
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-18 <NotZed@Ximian.com> * providers/local/camel-maildir-folder.c (camel_maildir_folder_new): If filter inbox is set on the store, and we're opening inbox '', then enable filtering on new messages. * providers/local/camel-local-folder.c (camel_local_folder_construct): After loading the summary, check it, and only abort if that fails. Also maintain the changes count. * providers/local/camel-local-summary.c (camel_local_summary_load): Remove summary_check code from here. (camel_local_summary_check): Sync index/summary here, if we were successful. * providers/local/camel-spool-folder.c (camel_spool_folder_new): If we have filter-new-messages-on-inbox set and we just opened inbox, turn on filtering on this folder. (camel_spool_folder_construct): Keep track of changes for the folder, so that filter-new-messages works right (?) * providers/local/camel-spool-store.c (get_folder): Pass 'INBOX' as the folder name, not the path. * camel-folder-search.c (search_not): Modified patch from <peterw@ximian.com> since the summary is messageinfo's, not strings. ** Ok so the problem with the stuff below is that maildir/spool 'summary_load' throws away all events, including recents, joy eh? * providers/local/camel-maildir-summary.c (maildir_summary_check): Add new messages to the recent changeinfo. * providers/local/camel-spool-summary.c: Mark 'new' message as recent, for later processing if required (i.e. 'filter new messages'). * camel-store.c (construct): new function, cascade up construct method and check for 'filter' param, and set accordingly for any one that might want it. * providers/imap/camel-imap-store.c (construct): map the param_filter_inbox flag to the store->flags as CAMEL_STORE_FILTER_INBOX. * camel-store.h (CAMEL_STORE_FILTER_INBOX): new flag to tell it to filter inbox. * providers/imap/camel-imap-folder.h: Removed do_filtering flag from CamelImapFolder. * providers/imap/camel-imap-folder.c (imap_update_summary): Remove the 'recents' parameter, use the 'changes' parameter instead to convey this info. (camel_imap_folder_changed): Changed for update_summary api change. Now always just emit the changed event if we have any changes to report, filtering code removed, handled upstream. (filter_proc): (filter_free): Removed old filtering code. (camel_imap_folder_new): Set the filter_recent flag on the folder if we're the inbox and filtering of inbox is enabled. * camel-folder.c (folder_changed): If we have 'recent' messages, and are set to filter recents, then freeze the folder and launch a thread to do the processing (or similar if threading not enabled). (thaw): Make sure we emit the changed signal outside of owning the lock and if things have changed. Also, no longer bother downgrading folder_changed events to message_changed events. * camel-folder.h (struct _CamelFolder): Added filter_recent flag -> signifies all recent messages in folder should be filtered. * camel-session.c: (camel_session_thread_msg_new, camel_session_thread_msg_free, camel_session_thread_queue, camel_session_thread_wait): code to handle async operations as part of camel processing. (camel_session_finalise): free thread_lock, destroy thread, active hash, etc. (camel_session_init): init thread, active hash, etc. (camel_session_class_init): Init virtual functions. (session_thread_msg_new, session_thread_msg_free, session_thread_destroy, session_thread_received, session_thread_queue, session_thread_wait): default implementation of session threads stuff. 2001-09-17 <NotZed@Ximian.com> * camel-folder.c (camel_folder_change_info_recent_uid): New function to add a 'recent' uid to the change info. (camel_folder_change_info_clear): Clear recent list. (camel_folder_change_info_free): Free recent list. (camel_folder_change_info_new): Setup recent list. * camel-folder.h: Added a uid_recent item to the folder_changed event data. * providers/local/camel-maildir-store.c (scan_dir): Free new in the right block. * providers/local/camel-local-provider.c: Add local config entries to filter on new messages in spool and maildir provider. * camel-vee-folder.c (vee_folder_construct): Remove the assertion which stops ? in names from being allowed. svn path=/trunk/; revision=12956
* Virtualize this.Dan Winship2001-09-195-6/+56
| | | | | | | | | | | | | * camel-data-wrapper.c (camel_data_wrapper_is_offline): Virtualize this. * camel-medium.c (is_offline): A medium is offline if its content object is offline. * camel-multipart.c (is_offline): A multipart is offline if any of its subparts are offline. svn path=/trunk/; revision=12948
* Added korean charset conversion.Jeffrey Stedfast2001-09-192-0/+5
| | | | | | | | 2001-09-18 Jeffrey Stedfast <fejj@ximian.com> * camel-charset-map.c: Added korean charset conversion. svn path=/trunk/; revision=12946
* Don't process the ImapResponse data, we don't want to block forever onJeffrey Stedfast2001-09-182-3/+20
| | | | | | | | | | | | 2001-09-17 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (delete_folder): Don't process the ImapResponse data, we don't want to block forever on data we don't care about... (create_folder): Use get_folders_online() instead of get_folder_info_online(). svn path=/trunk/; revision=12932
* Don't process the ImapResponse data, we don't want to block forever onJeffrey Stedfast2001-09-182-8/+9
| | | | | | | | | | 2001-09-17 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (delete_folder): Don't process the ImapResponse data, we don't want to block forever on data we don't care about... svn path=/trunk/; revision=12918
* Reverted previous changes.Jeffrey Stedfast2001-09-183-35/+4
| | | | | | | | 2001-09-17 Jeffrey Stedfast <fejj@ximian.com> * camel-folder.c: Reverted previous changes. svn path=/trunk/; revision=12907
* Helpful install-exec-hook debugging outputJP Rosevear2001-09-182-0/+8
| | | | | | | | 2001-09-17 JP Rosevear <jpr@ximian.com> * Makefile.am: Helpful install-exec-hook debugging output svn path=/trunk/; revision=12901
* New function to get the URI of a folder. (get_uri): DefaultJeffrey Stedfast2001-09-173-1/+42
| | | | | | | | | | 2001-09-16 Jeffrey Stedfast <fejj@ximian.com> * camel-folder.c (camel_folder_get_uri): New function to get the URI of a folder. (get_uri): Default implementation. svn path=/trunk/; revision=12860
* New function, set the complete list of folders on a vfolder, all at once.42001-09-157-33/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-14 <NotZed@Ximian.com> * camel-vee-folder.c (camel_vee_folder_set_folders): New function, set the complete list of folders on a vfolder, all at once. (camel_vee_folder_set_expression): If we set the query to be the same thing, dont do anything. * camel-vee-store.c (camel_vee_store_init): Turn off vtrash for this store. * camel-store.c (camel_store_init): Enable vtrash by default via flags. (camel_store_get_trash): REturn NULL if the store doesn't support vtrash. (init_trash): Dont init if store doesn't support vtrash. * camel-store.h: Add a new flags CAMEL_STORE_VTRASH -> store supports vtrash. 2001-09-13 <NotZed@Ximian.com> * camel-vee-store.c (vee_get_folder_info): Implement. (build_info): Used to build a folder record from the folders hashtable. (vee_delete_folder): Implemented, remove folder from hashtable. (vee_rename_folder): Implemented, remove old folder from hashtable, add new one and rename its guts too. * camel-store.c (camel_store_rename_folder): Do nothing if we're not asked to actually change names. Also dont do the renamed cache check till after we've called the subclass. (camel_store_delete_folder): Call the subclass delete firs,t then make sure the cache is right. * camel-vee-folder.c (vee_folder_construct): Remove support for name?query syntax to setup vfolder. Abort if such syntax is used. (camel_vee_folder_new): Removed code that handles ? syntax, etc. (vee_folder_build_folder): Handle unset expression, treat it as an empty search. (camel_vee_folder_set_expression): Oops, actually set the expression. * camel-vtrash-folder.c (camel_vtrash_folder_new): Dont use name?query syntax to setup vfolder, but set the expression directly. Also fixes a small memleak. 2001-09-12 <NotZed@Ximian.com> * camel-store.c (camel_store_delete_folder): Fixed warnings with a cast. (camel_store_rename_folder): " svn path=/trunk/; revision=12854
* Use g_datalist_set_data_full so that the data will be free'd when we clearJeffrey Stedfast2001-09-153-4/+9
| | | | | | | | | 2001-09-14 Jeffrey Stedfast <fejj@ximian.com> * camel-url.c (camel_url_set_param): Use g_datalist_set_data_full so that the data will be free'd when we clear the list. svn path=/trunk/; revision=12838
* Don't claim failure when reading/writing the empty string.Dan Winship2001-09-152-2/+8
| | | | | | | | * camel-file-utils.c (camel_file_util_encode_string, camel_file_util_decode_string): Don't claim failure when reading/writing the empty string. svn path=/trunk/; revision=12829
* use install hook instead of install rule to guarantee we run afterJP Rosevear2001-09-152-27/+30
| | | | | | | | | | | | | 2001-09-14 JP Rosevear <jpr@ximian.com> * Makefile.am: use install hook instead of install rule to guarantee we run after installation 2001-09-14 JP Rosevear <jpr@ximian.com> * configure.in: remove unneeded conditionals svn path=/trunk/; revision=12825
* Don't reuse the exception if it has already been set.Jeffrey Stedfast2001-09-145-15/+49
| | | | | | | | | | | | | | 2001-09-13 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_folder): Don't reuse the exception if it has already been set. (camel_filter_driver_filter_message): Same here. Also use the new return value from camel_filter_search_match(). * camel-filter-search.c (camel_filter_search_match): Return an integer (matched, no-match, or error). svn path=/trunk/; revision=12819
* Do error-checking based on function return values rather than exceptionsJeffrey Stedfast2001-09-142-7/+12
| | | | | | | | | | | 2001-09-13 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-mbox-folder.c (mbox_append_message): Do error-checking based on function return values rather than exceptions as it's possible for them to be NULL. (mbox_get_message): Same. svn path=/trunk/; revision=12814
* Pass an exception to the cache. (imap_append_online): Same.Jeffrey Stedfast2001-09-144-33/+72
| | | | | | | | | | | | | | | | | | | | | | 2001-09-13 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_append_offline): Pass an exception to the cache. (imap_append_online): Same. (imap_append_resyncing): Here too. (imap_copy_offline): And here. (handle_copyuid): Pass NULL as the exception here... (parse_fetch_response): And finally here. * providers/imap/camel-imap-message-cache.c (camel_imap_message_cache_insert): (insert_setup): (camel_imap_message_cache_insert_stream): (camel_imap_message_cache_insert_wrapper): (camel_imap_message_cache_copy): Take an exception argument and set it on error. svn path=/trunk/; revision=12813
* Convert the charset to the iconv-friendly name.Jeffrey Stedfast2001-09-143-3/+30
| | | | | | | | | | | | | | 2001-09-13 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): Convert the charset to the iconv-friendly name. * camel-charset-map.c (camel_charset_to_iconv): Add code to convert windows-[cp]#### charsets to their iconv-friendly format of cp####. svn path=/trunk/; revision=12804
* Return -1 on failure.Jeffrey Stedfast2001-09-142-3/+8
| | | | | | | | | 2001-09-13 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (crypto_exec_with_passwd): Return -1 on failure. svn path=/trunk/; revision=12799
* free the source url in the nonfailure case.Larry Ewing2001-09-132-0/+6
| | | | | | | | | 2001-09-12 Larry Ewing <lewing@ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_mbox): free the source url in the nonfailure case. svn path=/trunk/; revision=12782
* Change the 'not' virtual method from an immediate e-sexp function to a22001-09-133-3/+87
| | | | | | | | | | | | | | | | 2001-09-12 <NotZed@Ximian.com> * camel-folder-search.h: Change the 'not' virtual method from an immediate e-sexp function to a non-immediate one, which is what it should be. * camel-folder-search.c (search_not): Implement a 'not' function ourselves. If 'not' on a vector value, then not over all items in the summary. (builtings[]): Change the 'not' builtin to be a non-immediate function. svn path=/trunk/; revision=12781
* Unref the message info.Jeffrey Stedfast2001-09-132-1/+9
| | | | | | | | | 2001-09-12 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_mbox): Unref the message info. svn path=/trunk/; revision=12776
* Pass in a hashtalbe used for finding visited nodes. (inode_hash):02001-09-112-26/+80
| | | | | | | | | | | | | | | | | 2001-09-10 <NotZed@Ximian.com> * providers/local/camel-maildir-store.c (get_folder_info): Pass in a hashtalbe used for finding visited nodes. (inode_hash): (inode_equal): (inode_free): Helper functions for visited node checks, hashes on inode + device number. (scan_dir): Dont re-visited directories we've already visited, use inodes + device number. Also, if the folder doesn't contain cur/tmp/new, mark it as noselect, but continue to recurse folders, if asked. svn path=/trunk/; revision=12760
* Progress reporting while moving messages.02001-09-114-7/+56
| | | | | | | | | | | | | | | 2001-09-10 <NotZed@Ximian.com> * camel-folder.c (move_messages_to): Progress reporting while moving messages. * camel-store.c (camel_store_delete_folder): Make sure we remove the folder from our vtrash, if we have it in our opened set, and also remove it from our hashtable. (camel_store_rename_folder): Remove the old folder name from the folder cahce, if it is there. svn path=/trunk/; revision=12758
* Get rid of the g_warning, we no longer really need that.Jeffrey Stedfast2001-09-112-3/+10
| | | | | | | | | 2001-09-10 Jeffrey Stedfast <fejj@ximian.com> * camel-charset-map.c (camel_charset_to_iconv): Get rid of the g_warning, we no longer really need that. svn path=/trunk/; revision=12739
* Forgot to return the newly allocated msg.02001-09-102-0/+7
| | | | | | | | | 2001-09-10 <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (camel_imap_msg_new): Forgot to return the newly allocated msg. svn path=/trunk/; revision=12729
* Likewise.Not Zed2001-09-084-12/+34
| | | | | | | | | | | | | | | 2001-09-08 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-summary.c (spool_summary_sync_full): Likewise. * providers/local/camel-mbox-summary.c (mbox_summary_sync_full): Fix the wording. * camel-tcp-stream-raw.c (stream_read): Save errno around fcntl call in cancellable read case. Also, loop while we get EINTR. This might fix some weird reconnect behaviour with pop. (stream_write): " svn path=/trunk/; revision=12700
* #if 0 out the code that was hopefully going to fix bug #5325 because theJeffrey Stedfast2001-09-082-1/+9
| | | | | | | | | | 2001-09-07 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (ssl_bad_cert): #if 0 out the code that was hopefully going to fix bug #5325 because the functions I used seem to have been deprecated. *sigh*. svn path=/trunk/; revision=12699
* Disconnect from the service here otherwise the locks will be destroyed andJeffrey Stedfast2001-09-082-4/+20
| | | | | | | | | | 2001-09-07 Jeffrey Stedfast <fejj@ximian.com> * camel-remote-store.c (camel_remote_store_finalise): Disconnect from the service here otherwise the locks will be destroyed and by the time CamelService finalizes we'll crash or hang. svn path=/trunk/; revision=12692
* Make sure to unref the mime filters when we finish with them.Jeffrey Stedfast2001-09-082-0/+7
| | | | | | | | | 2001-09-07 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_data): Make sure to unref the mime filters when we finish with them. svn path=/trunk/; revision=12689
* s/Synchronising/Synchronizing/. (mbox_summary_sync_quick): Likewise.Ettore Perazzoli2001-09-082-4/+11
| | | | | | | | | * providers/local/camel-mbox-summary.c (mbox_summary_sync_full): s/Synchronising/Synchronizing/. (mbox_summary_sync_quick): Likewise. (summary_rebuild): s/Summarising/Summarizing/. svn path=/trunk/; revision=12683
* constificationJeffrey Stedfast2001-09-083-5/+8
| | | | svn path=/trunk/; revision=12682
* Reuse the original boundary instead of generating our own.Jeffrey Stedfast2001-09-082-2/+11
| | | | | | | | | | 2001-09-07 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (camel_mime_part_construct_content_from_parser): Reuse the original boundary instead of generating our own. svn path=/trunk/; revision=12681
* Thread function to perform filtering. (filter_free): Free the filter62001-09-074-3/+142
| | | | | | | | | | | | | | | | | | | | | | | 2001-09-06 <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (filter_proc): Thread function to perform filtering. (filter_free): Free the filter object. (camel_imap_folder_changed): If we have threads enabled, then queue up a request to perform filtering. For bug #4422. * providers/imap/camel-imap-store.c (camel_imap_msg_new): Create a new 'imap msg'. (camel_imap_msg_queue): Queue an 'imap msg'. (async_received): Handle receiving of imap msg in async thread. (async_destroy): Handle destroying of imap msg. (camel_imap_store_finalize): Destroy thread when done. (camel_imap_store_init): Setup thread. * providers/imap/camel-imap-store.h: Added an ethread to the store, for async processing. svn path=/trunk/; revision=12666
* Use camel_stream_buffer_read_line() instead of duplicationing theJeffrey Stedfast2001-09-072-28/+18
| | | | | | | | | | | | | 2001-09-06 Jeffrey Stedfast <fejj@ximian.com> * camel-remote-store.c (remote_recv_line): Use camel_stream_buffer_read_line() instead of duplicationing the functionality. Also, the previous way was broken anyway. What if a line was the same length as our buffer? Then we'd go and read a second line and a third and so on until they weren't the same length, leaving \r's in the middle of the buffer. svn path=/trunk/; revision=12662
* Fix this to always set an exception if it returns POP3_FAIL, asDan Winship2001-09-073-6/+16
| | | | | | | | | | * providers/pop3/camel-pop3-store.c (pop3_get_response): Fix this to always set an exception if it returns POP3_FAIL, as documented. * providers/pop3/camel-pop3-folder.c (pop3_get_message_stream): Revert. svn path=/trunk/; revision=12654
* Set an exception on POP3_FAIL as well.Jeffrey Stedfast2001-09-072-3/+10
| | | | | | | | | 2001-09-06 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_get_message_stream): Set an exception on POP3_FAIL as well. svn path=/trunk/; revision=12653
* #ifdef out the "delete after N days" option in pop3_conf_entries, since itDan Winship2001-09-072-0/+8
| | | | | | | | * providers/pop3/camel-pop3-provider.c: #ifdef out the "delete after N days" option in pop3_conf_entries, since it won't be done for 1.0. svn path=/trunk/; revision=12651
* Too late to sync the folders here... if this is gonna happen at all itJeffrey Stedfast2001-09-052-4/+4
| | | | | | | | | | 2001-09-04 Jeffrey Stedfast <fejj@ximian.com> * camel-remote-store.c (remote_disconnect): Too late to sync the folders here... if this is gonna happen at all it should be done in the provider. svn path=/trunk/; revision=12596
* Do a clean disconnect.Jeffrey Stedfast2001-09-053-3/+6
| | | | | | | | 2001-09-04 Jeffrey Stedfast <fejj@ximian.com> * camel-service.c (camel_service_finalize): Do a clean disconnect. svn path=/trunk/; revision=12593
* Return the default folder (ie. INBOX) rather than saying we don't supportJeffrey Stedfast2001-08-312-3/+5
| | | | | | | | | | 2001-08-30 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-spool-store.c (get_inbox): Return the default folder (ie. INBOX) rather than saying we don't support an inbox. svn path=/trunk/; revision=12535
* #include pk11func.h. (ssl_bad_cert): Use CERT_GetDefaultCertDB.Jeffrey Stedfast2001-08-312-1/+7
| | | | | | | | | 2001-08-30 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c: #include pk11func.h. (ssl_bad_cert): Use CERT_GetDefaultCertDB. svn path=/trunk/; revision=12530
* fix smime the same way...Jeffrey Stedfast2001-08-302-15/+34
| | | | svn path=/trunk/; revision=12520
* Special-case message/rfc822 mime parts - don't set an encoding on these,Jeffrey Stedfast2001-08-302-14/+39
| | | | | | | | | | | | | | | 2001-08-29 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-mime.c (pgp_mime_part_sign_prepare_part): Special-case message/rfc822 mime parts - don't set an encoding on these, instead traverse into their subparts and set the encodings for those. (pgp_mime_part_sign_restore_part): Reverse any operations done to message/rfc822 parts in the above prepare_part() function and also take a pointer to a GSList of encodings instead of just a GSList so we can properly keep track of which encoding we are on. svn path=/trunk/; revision=12519
* Add progress reporting to deleting messages. Dont change the calculationNot Zed2001-08-292-2/+15
| | | | | | | | | | 2001-08-29 Not Zed <NotZed@Ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_sync): Add progress reporting to deleting messages. Dont change the calculation to a bloody float. Bug #6189. svn path=/trunk/; revision=12512
* Initialize buf and diag_buf to NULL, hopefully this fixes the crash if theJeffrey Stedfast2001-08-292-39/+14
| | | | | | | | | | | | | | 2001-08-28 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (crypto_exec_with_passwd): Initialize buf and diag_buf to NULL, hopefully this fixes the crash if the select() times out. (pgp_encrypt): Argh. What was I thinking? Don't use "-r recipient" as an argument, instead use "-r" and "recipient" as 2 separate arguments to pgp. This might fix the "gpg only encrypts to my private key" bug? svn path=/trunk/; revision=12510
* Initialize buf and diag_buf to NULL, hopefully this fixes the crash if theJeffrey Stedfast2001-08-292-11/+17
| | | | | | | | | | 2001-08-28 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (crypto_exec_with_passwd): Initialize buf and diag_buf to NULL, hopefully this fixes the crash if the select() times out. svn path=/trunk/; revision=12508
* Whoops. Double-free and FMR = bad.Peter Williams2001-08-292-2/+6
| | | | | | | | | 2001-08-28 Peter Williams <peterw@ximian.com> * providers/imap/camel-imap-store.c (create_folder): Whoops. Double-free and FMR = bad. svn path=/trunk/; revision=12505
* Don't reveal the user's IMAP password if their server supportsPeter Williams2001-08-292-1/+9
| | | | | | | | | | 2001-08-28 Peter Williams <peterw@ximian.com> * camel-remote-store.c (remote_send_string): Don't reveal the user's IMAP password if their server supports LITERALPLUS. Also add some more dashes to make it line up nicely :-) svn path=/trunk/; revision=12503
* If the user accepts the certificate, add it to the database as a trustedJeffrey Stedfast2001-08-292-3/+32
| | | | | | | | | 2001-08-28 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (ssl_bad_cert): If the user accepts the certificate, add it to the database as a trusted CA. svn path=/trunk/; revision=12502
* Make the locking more fine-grained on destruction; specifically, don'tPeter Williams2001-08-292-0/+12
| | | | | | | | | | 2001-08-28 Peter Williams <peterw@ximian.com> * camel-object.c (camel_object_unref): Make the locking more fine-grained on destruction; specifically, don't hold the type lock while calling the finalize functions. svn path=/trunk/; revision=12501
* Changed the description/names of some of the local providers to try andJeffrey Stedfast2001-08-283-15/+21
| | | | | | | | | | | | | | | 2001-08-27 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-local-provider.c: Changed the description/names of some of the local providers to try and clarify the meanings. * providers/pop3/camel-pop3-provider.c: Simplify the POP description - we want short but sweet. * providers/imap/camel-imap-provider.c: s/IMAPv4/IMAP svn path=/trunk/; revision=12486
* s/IMAPv4/IMAPJeffrey Stedfast2001-08-283-3/+7
| | | | | | | | 2001-08-27 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-provider.c: s/IMAPv4/IMAP svn path=/trunk/; revision=12485
* re-read the iconv man page, and treat the return value properly. ItNot Zed2001-08-275-150/+135
| | | | | | | | | | | | | | | | | | | | | 2001-08-27 Not Zed <NotZed@Ximian.com> * camel-mime-part-utils.c (convert_buffer): re-read the iconv man page, and treat the return value properly. It returns the number of non-reversible conversions performed, not the number of output characters, sigh. (check_html_charset): Changed to just take a buffer of data, and not the mime parser. (simple_data_wrapper_construct_from_parser): Since we dont need the charset till we have all the data, search for the charset after we've read the data, if we have html data with no charset in the header. (simple_data_wrapper_construct_from_parser): Remove the seekable_source stuff. * Re-apply patches from before. svn path=/trunk/; revision=12481
* ["Summarising" and "Synchronising" are spelt with a "s" in ENGLISH]Not Zed2001-08-253-8/+19
| | | | | | | | | | | | | | | 2001-08-25 Not Zed <NotZed@Ximian.com> ["Summarising" and "Synchronising" are spelt with a "s" in ENGLISH] * providers/local/camel-mbox-summary.c (mbox_summary_sync_quick): s/Synchronizing/Synchronising/. * providers/local/camel-mbox-summary.c (summary_rebuild): s/Summarizing/Summarising/ svn path=/trunk/; revision=12470
* Use fseek instead of fseeko since we want to be portable and use ftellJeffrey Stedfast2001-08-252-8/+17
| | | | | | | | | | | 2001-08-24 Jeffrey Stedfast <fejj@ximian.com> * camel-disco-diary.c (camel_disco_diary_replay): Use fseek instead of fseeko since we want to be portable and use ftell rather than ftello for the same reason. (camel_disco_diary_empty): Same here. svn path=/trunk/; revision=12469
* Revert Not Zed's previous commits as they apparently can cause seriousPeter Williams2001-08-257-104/+97
| | | | | | | | | 2001-08-24 Peter Williams <peterw@ximian.com> * Revert Not Zed's previous commits as they apparently can cause serious data loss for POP3 users. svn path=/trunk/; revision=12461
* s/Synchronising/Synchronizing/.Ettore Perazzoli2001-08-252-3/+14
| | | | | | | | | | * providers/local/camel-mbox-summary.c (mbox_summary_sync_quick): s/Synchronising/Synchronizing/. * providers/local/camel-mbox-summary.c (summary_rebuild): s/Summarising/Summarizing/ svn path=/trunk/; revision=12444
* Limit the maximum output buffer size. iconv bugs? returns E2BIG forever onNot Zed2001-08-242-1/+6
| | | | | | | | | | 2001-08-24 Not Zed <NotZed@Ximian.com> * camel-mime-part-utils.c (convert_buffer): Limit the maximum output buffer size. iconv bugs? returns E2BIG forever on some (valid) data? svn path=/trunk/; revision=12432
* Likewise.Not Zed2001-08-247-95/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-08-24 Not Zed <NotZed@Ximian.com> * providers/local/camel-spool-summary.c (summary_rebuild): Likewise. * providers/local/camel-mbox-summary.c (summary_rebuild): Summarising is spelt with an s. 2001-08-23 Not Zed <NotZed@Ximian.com> * camel-mime-part.c (write_to_stream): If we have rawtext, then dont do any charset conversion, only encoding/crlf conversion. * camel-data-wrapper.h (struct _CamelDataWrapper): Added 'rawtext' member, says the character encoding is raw, not utf8. * providers/local/camel-spool-summary.c (spool_summary_sync_quick): Synchronising is spelt with an s, not a z. (spool_summary_sync_full): " * providers/local/camel-mbox-summary.c (mbox_summary_sync_full): No, synchronising is spelt with an s. (mbox_summary_sync_quick): " * camel-mime-part-utils.c (camel_mime_part_construct_content_from_parser): Remove the warnings which aren't going anywhere fast. (convert_buffer): Function to convert a bytearray of textual content from one charset to another. If the charset doesn't exist or fails, then do no conversion. (simple_data_wrapper_construct_from_parser): First, read in data, then try and convert it using the specified charset if supplied. If that fails, then dont do any conversion, and leave as raw. Also, if we have any x-* charsets, then dont do any processing. svn path=/trunk/; revision=12429
* Add a missing \n to the end of a printf.Peter Williams2001-08-243-2/+9
| | | | | | | | | | | 2001-08-23 Peter Williams <peterw@ximian.com> * providers/local/camel-mbox-summary.c (summary_rebuild): Add a missing \n to the end of a printf. * providers/local/camel-spool-summary.c (summary_rebuild): Same. svn path=/trunk/; revision=12421
* oops, don't need that extra statementJeffrey Stedfast2001-08-231-3/+0
| | | | svn path=/trunk/; revision=12386
* Oops. Fixed a mis-use of GPtrArray. If we set_size, then usingJeffrey Stedfast2001-08-232-2/+11
| | | | | | | | | | | 2001-08-22 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_generate_uids): Oops. Fixed a mis-use of GPtrArray. If we set_size, then using g_ptr_array_add will assume `size' elements have already been initialized and will start appending on to the end. svn path=/trunk/; revision=12385
* Turn on --batch and reenable gpg keyserver lookups. (pgp_decrypt): DisableJeffrey Stedfast2001-08-223-11/+20
| | | | | | | | | | 2001-08-21 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_verify): Turn on --batch and reenable gpg keyserver lookups. (pgp_decrypt): Disable keyserver lookups if we are disconnected. svn path=/trunk/; revision=12372
* Fix the duplicate message check so it doesn't mess up threading when aDan Winship2001-08-212-4/+13
| | | | | | | | | | | * camel-folder-thread.c (camel_folder_thread_messages_new_summary): Fix the duplicate message check so it doesn't mess up threading when a reply appears in the folder before the message it's a reply to. Fixes bug #3357. (camel_folder_thread_messages_new): Likewise, although I don't think this function is used any more. svn path=/trunk/; revision=12341
* build a static camel for the addressbook conduitJP Rosevear2001-08-202-0/+8
| | | | | | | | 2001-08-20 JP Rosevear <jpr@ximian.com> * Makefile.am: build a static camel for the addressbook conduit svn path=/trunk/; revision=12287
* s/Synchronising/Synchronizing/. (mbox_summary_sync_quick): Likewise.Ettore Perazzoli2001-08-203-4/+13
| | | | | | | | | | | * providers/local/camel-mbox-summary.c (mbox_summary_sync_full): s/Synchronising/Synchronizing/. (mbox_summary_sync_quick): Likewise. * providers/local/camel-spool-summary.c (spool_summary_sync_full): Likewise. (spool_summary_sync_quick): Likewise. svn path=/trunk/; revision=12269
* oops, commit the ChangeLogJeffrey Stedfast2001-08-201-0/+10
| | | | svn path=/trunk/; revision=12261
* Get the entire directory structure for the folder we just created, meaningJeffrey Stedfast2001-08-203-17/+98
| | | | | | | | | | | | | 2001-08-20 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (create_folder): Get the entire directory structure for the folder we just created, meaning if we created a folder named "test.mailbox" where test didn't previously exist, get the listing for "test" and "test.mailbox". * providers/imap/camel-imap-utils.c (imap_parse_folder_name): New function. svn path=/trunk/; revision=12258
* #include <sys/types.h> for mode_t on freebsd.Chris Toshok2001-08-202-0/+7
| | | | | | | | 2001-08-19 Chris Toshok <toshok@ximian.com> * camel-store.h: #include <sys/types.h> for mode_t on freebsd. svn path=/trunk/; revision=12228
* Make sure the generated UID is non-NULL before appending it to the arrayJeffrey Stedfast2001-08-203-6/+9
| | | | | | | | | | 2001-08-19 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_generate_uids): Make sure the generated UID is non-NULL before appending it to the array of UIDs. How would this even happen? I have no clue... svn path=/trunk/; revision=12225
* fixed a compile errorJeffrey Stedfast2001-08-201-50/+51
| | | | svn path=/trunk/; revision=12219
* Start scanning new messages at maxuid + 1 rather than uidval + 1? MaybeJeffrey Stedfast2001-08-182-35/+41
| | | | | | | | | | 2001-08-17 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): Start scanning new messages at maxuid + 1 rather than uidval + 1? Maybe I'm missing the logic, but anyways...this might fix bug #5348. svn path=/trunk/; revision=12170
* If we are online and message flags have changed in the current folder,Jeffrey Stedfast2001-08-175-33/+61
| | | | | | | | | | | | | | | | | | 2001-08-16 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (imap_keepalive): If we are online and message flags have changed in the current folder, sync the flags else do a NOOP. This fixes bug #4666. Also lock around the NOOP command. * providers/imap/camel-imap-folder.c (imap_sync_online): Don't ever send "STORE FLAGS.SILENT ()" since Cyrus imapd doesn't like this (and maybe others too?) so what we'll do instead is to send "STORE -FLAGS.SILENT (\Seen \Answered \Deleted \Marked)" to clear all the flags (since this is in essence what we want to do anyway). svn path=/trunk/; revision=12136
* Don't ever send "STORE FLAGS.SILENT ()" since Cyrus imapd doesn't likeJeffrey Stedfast2001-08-172-9/+31
| | | | | | | | | | | | | 2001-08-16 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_sync_online): Don't ever send "STORE FLAGS.SILENT ()" since Cyrus imapd doesn't like this (and maybe others too?) so what we'll do instead is to send "STORE -FLAGS.SILENT (\Seen \Answered \Deleted \Marked)" to clear all the flags (since this is in essence what we want to do anyway). svn path=/trunk/; revision=12131
* Fix this again. Sigh. Problem of namespace = "" may not yet be completelyPeter Williams2001-08-172-1/+7
| | | | | | | | | | 2001-08-16 Peter Williams <peterw@ximian.com> * providers/imap/camel-imap-store.c (imap_connect_online): Fix this again. Sigh. Problem of namespace = "" may not yet be completely solved. svn path=/trunk/; revision=12095
* New function. Try to approximate the SSL error into errno.Peter Williams2001-08-162-1/+58
| | | | | | | | | | | | | | 2001-08-15 Peter Williams <peterw@ximian.com> * camel-tcp-stream-openssl.c (ssl_error_to_errno): New function. Try to approximate the SSL error into errno. (errlib_error_to_errno): New function, try to approximate OpenSSl's error library's error (ERR_*) into errno. (stream_read): Try to set errno using ssl_error_to_errno. (stream_write): Same. (open_ssl_connection): Same. svn path=/trunk/; revision=12065
* Oh crap, huge killer typo.Peter Williams2001-08-152-1/+6
| | | | | | | | | 2001-08-15 Peter Williams <peterw@ximian.com> * providers/imap/camel-imap-store.c (imap_connect_online): Oh crap, huge killer typo. svn path=/trunk/; revision=12048
* Canonicalize store->namespace to end in store->dir_sep, once both valuesPeter Williams2001-08-152-1/+18
| | | | | | | | | | | 2001-08-14 Peter Williams <peterw@ximian.com> * providers/imap/camel-imap-store.c (imap_connect_online): Canonicalize store->namespace to end in store->dir_sep, once both values are known. The %F-related code makes this assumption. Probably fixes a bug reported on the mailing list. svn path=/trunk/; revision=12040
* After talking to NotZed, it turns out I was wrong after all. (store_sync):Jeffrey Stedfast2001-08-152-3/+28
| | | | | | | | | | | | | 2001-08-13 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (camel_store_get_folder): After talking to NotZed, it turns out I was wrong after all. (store_sync): Create a copy of the folder-cache that owns a ref on each of the folders so that if one of the folders get's finalized inside store_sync(), we don't run into any locking issues. This is mostly meant to solve a problem in IMAP (#6089). svn path=/trunk/; revision=12032
* We need to be ref'ing the folder if/when we add it to the hash. This mayJeffrey Stedfast2001-08-143-14/+18
| | | | | | | | | | | | | 2001-08-13 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (camel_store_get_folder): We need to be ref'ing the folder if/when we add it to the hash. This may fix bug #6089? (camel_store_get_folder): Nevermind, reverted the fix. (camel_store_get_folder): No, I wasn't on crack before after all...if we don't ref here, then we're open to a race condition later. svn path=/trunk/; revision=11973
* Fix a leak.Peter Williams2001-08-144-5/+34
| | | | | | | | | | | | | | 2001-08-13 Peter Williams <peterw@ximian.com> * providers/imap/camel-imap-store.c (delete_folder): Fix a leak. * providers/imap/camel-imap-utils.c (imap_namespace_concat): Bleah, handle when namespace = NULL (can happen upon initial open of mailbox.) * providers/imap/camel-imap-command.c (imap_command_strdup_vprintf): Don't crash when %F'ing with an empty folder name and NULL namespace. svn path=/trunk/; revision=11971
* We need to be ref'ing the folder if/when we add it to the hash. This mayJeffrey Stedfast2001-08-142-1/+1
| | | | | | | | | | 2001-08-13 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (camel_store_get_folder): We need to be ref'ing the folder if/when we add it to the hash. This may fix bug #6089? (camel_store_get_folder): Nevermind, reverted the fix. svn path=/trunk/; revision=11969
* We need to be ref'ing the folder if/when we add it to the hash. This mayJeffrey Stedfast2001-08-146-42/+50
| | | | | | | | | 2001-08-13 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (camel_store_get_folder): We need to be ref'ing the folder if/when we add it to the hash. This may fix bug #6089? svn path=/trunk/; revision=11968
* s/summarising/summarizing/. (summary_rebuild): Likewise.Ettore Perazzoli2001-08-123-7/+19
| | | | | | | | | | | | | | * providers/local/camel-spool-summary.c (summary_rebuild): s/summarising/summarizing/. (summary_rebuild): Likewise. * providers/local/camel-mbox-summary.c (mbox_summary_sync_full): s/summarise/summarize/. (mbox_summary_sync_quick): Likewise. (summary_rebuild): Likewise. (mbox_summary_check): Likewise. svn path=/trunk/; revision=11919
* Added an assert - at this point a backtrace would be more useful than aJeffrey Stedfast2001-08-113-7/+24
| | | | | | | | | | 2001-08-10 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_quote_string): Added an assert - at this point a backtrace would be more useful than a transaction log for debugging. svn path=/trunk/; revision=11902
* Return FALSE here, not NULL.Jeffrey Stedfast2001-08-112-1/+4
| | | | | | | | | 2001-08-10 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-command.c (imap_command_start): Return FALSE here, not NULL. svn path=/trunk/; revision=11893
* tedfast <fejj@ximian.com>Jeffrey Stedfast2001-08-111-4/+4
| | | | | | | | | tedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_rescan): Don't g_strdup() the uid into the trigger_event call. svn path=/trunk/; revision=11892
* Don't g_strdup() the uid into the trigger_event call.Jeffrey Stedfast2001-08-112-17/+20
| | | | | | | | | 2001-08-10 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (imap_rescan): Don't g_strdup() the uid into the trigger_event call. svn path=/trunk/; revision=11891
* Set the total bytes expected to 0 if the response is empty too.Jeffrey Stedfast2001-08-112-3/+6
| | | | | | | | | | | 2001-08-10 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_get_message_stream): Set the total bytes expected to 0 if the response is empty too. (pop3_refresh_info): Return of there was an error generating pop3 uids. svn path=/trunk/; revision=11886
* Set the total bytes expected to 0 if the response is empty too.Jeffrey Stedfast2001-08-113-8/+11
| | | | | | | | | 2001-08-10 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_get_message_stream): Set the total bytes expected to 0 if the response is empty too. svn path=/trunk/; revision=11885
* regfree the pattern before continue'ing. This was showing up quite a bitJeffrey Stedfast2001-08-103-9/+16
| | | | | | | | | | 2001-08-10 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_raw_check_mailing_list): regfree the pattern before continue'ing. This was showing up quite a bit under purify. svn path=/trunk/; revision=11867
* A quoted string cannot contain \n's so check for those as well.Jeffrey Stedfast2001-08-107-204/+207
| | | | | | | | | | 2001-08-09 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-utils.c (imap_parse_string_generic): A quoted string cannot contain \n's so check for those as well. (imap_atom_specials): Update this to fix bug #6553. svn path=/trunk/; revision=11845
* Remove trailing stuff from URLs before returning. (Done in an evil way,Jon Trowbridge2001-08-092-2/+20
| | | | | | | | | | 2001-08-08 Jon Trowbridge <trow@ximian.com> * camel-filter-search.c (get_source): Remove trailing stuff from URLs before returning. (Done in an evil way, not in the good way suggested by fejj. :)) (Bug #4876) svn path=/trunk/; revision=11808
* check for NULL name and addr (fixes a bug i was about to report)jacob berkman2001-08-082-2/+7
| | | | | | | | | 2001-08-08 jacob berkman <jacob@ximian.com> * camel-search-private.c (camel_search_header_match): check for NULL name and addr (fixes a bug i was about to report) svn path=/trunk/; revision=11786
* Properly determine match type to pass to header_match.Not Zed2001-08-087-83/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-08-08 Not Zed <NotZed@Ximian.com> * camel-filter-search.c (check_header): Properly determine match type to pass to header_match. (address_matches_exactly): Removed, effectively added to camel_search_header_match. * camel-folder-search.c (check_header): Properly determine the match type to pass to header_match. * camel-search-private.c (camel_search_header_match): Add a new parameter 'type' which is the type of header we're matching against. ASIS means utf8 format, ADDRESS means an internet address ('formatted'), ADDRESS_ENCODED means a raw address header, ENCODED means rfc 2047 encoded text. (header_match): Move original logic here, have search_header_match call it as appropriate for the 'type' of match. 2001-08-07 Not Zed <NotZed@Ximian.com> * camel-session.c (camel_session_class_init): Only init the vee provider struct once (if we're subclassed this will get called multiple times). * camel-object.c (obj_finalize): Removed a bit of a debug that crept in with jacob's poolv patch (?). svn path=/trunk/; revision=11772
* New function to do danw's address "is" comparison (as specified in bugJeffrey Stedfast2001-08-083-113/+167
| | | | | | | | | | | 2001-08-07 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-search.c (address_matches_exactly): New function to do danw's address "is" comparison (as specified in bug #5886. (check_header): Special-case address-type headers when we are doing an exact match to use the address_matches_exactly function. svn path=/trunk/; revision=11738
* Modify to take a headers_only argument which will then only fetch messageJeffrey Stedfast2001-08-072-9/+19
| | | | | | | | | | | | | | | | 2001-08-06 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_get_message_stream): Modify to take a headers_only argument which will then only fetch message headers. (pop3_generate_uids): Pass in TRUE for headers_only. (pop3_get_message): Pass in FALSE for headers_only and move the camel_operation() stuff out of get_message_stream and in to here instead. (pop3_generate_uids): We also need to be using i+ 1 as the id since we are starting at 0. svn path=/trunk/; revision=11722
* New internal function to get a message stream by message sequence id (soJeffrey Stedfast2001-08-072-68/+129
| | | | | | | | | | | | | | | | | | | 2001-08-06 Jeffrey Stedfast <fejj@ximian.com> * providers/pop3/camel-pop3-folder.c (pop3_get_message_stream): New internal function to get a message stream by message sequence id (so that we can share code between pop3_get_message and pop3_generate_uids). (pop3_get_message): Use pop3_get_message_stream. (pop3_generate_uids): New function to generate UIDs based on the message - this fixes bug #1256. (pop3_refresh_info): If the server doesn't support UIDL, call pop3_generate_uids to get our list of UIDs. * providers/imap/camel-imap-store.c (get_folder_info_online): Don't strstr for noselect=yes, that's just plain broken. svn path=/trunk/; revision=11721
* Don't strstr for noselect=yes, that's just plain broken.Jeffrey Stedfast2001-08-073-33/+51
| | | | | | | | | 2001-08-06 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (get_folder_info_online): Don't strstr for noselect=yes, that's just plain broken. svn path=/trunk/; revision=11714
* Fix off-by-one error in cleaning up deleted messages at the end of theDan Winship2001-08-072-1/+5
| | | | | | | | * providers/imap/camel-imap-folder.c (imap_rescan): Fix off-by-one error in cleaning up deleted messages at the end of the folder. Fixes bug #5585 and maybe others. svn path=/trunk/; revision=11712
* Do a refresh_info on the selected folder before looking at its unreadDan Winship2001-08-072-7/+12
| | | | | | | | * providers/imap/camel-imap-store.c (get_folder_info_online): Do a refresh_info on the selected folder before looking at its unread count. Should fix bug #4944. svn path=/trunk/; revision=11710
* Completely hide the namespace from everything external to the IMAP code,Peter Williams2001-08-076-66/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-08-06 Peter Williams <peterw@ximian.com> Completely hide the namespace from everything external to the IMAP code, which Dan W says is the way it should be. * providers/imap/camel-imap-command.c (imap_command_strdup_vprintf): Add a new %F argument, which is like %S but will add the namespace (for folder names). (camel_imap_command): Use %F here. * providers/imap/camel-imap-utils.c (imap_parse_list_response): Changed to strip out the namespec when returning *folder. In order to do this we need to be passed the CamelImapStore. (imap_concat): Move to here from camel-imap-store.c, un-static (imap_namespace_concat): New function, adds the namespace to the folder name, unless it's INBOX. * providers/imap/camel-imap-utils.h: Prototypes. * providers/imap/camel-imap-store.c (imap_connect_online): Extra arg to imap_parse_list_response. (imap_connect_offline): Here too. (get_folder_status): Use %F. (get_folder_online): Here too. (delete_folder): Here too. (create_folder): Here too, and arg to imap_parse_list_response. (parse_list_response_as_folder_info): Arg to i_p_l_r. (get_subscribed_folders_by_hand): Use %F. (get_folders_online): Here too. (get_folder_info_online): Instead of checking for NULL @name, check for name = NULL or "", and set to "" instead of namespace. Pass "" instead of namespace to camel_folder_info_build. (subscribe_folder): Use %F. (unsubscribe_folder): Here too. * providers/imap/camel-imap-folder.c (imap_get_full_name): This now just returns folder->full_name. (do_append): Use %F (do_copy): Here too. svn path=/trunk/; revision=11705
* Always do --no-auto-key-retrieve.Jeffrey Stedfast2001-08-072-2/+7
| | | | | | | | 2001-08-06 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_verify): Always do --no-auto-key-retrieve. svn path=/trunk/; revision=11703
* Minor changes to the iconv code so that it does the check in the returnJeffrey Stedfast2001-08-042-1/+14
| | | | | | | | | | | 2001-08-03 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_verify): Minor changes to the iconv code so that it does the check in the return value of iconv() just like the code in camel-mime-utils.c in case this fixes Bo Rosen's gpg bugs (but I doubt this will change anything?). svn path=/trunk/; revision=11622
* First check to make sure that service->url->authmech is non-NULL beforeJeffrey Stedfast2001-08-042-14/+18
| | | | | | | | | | 2001-08-03 Jeffrey Stedfast <fejj@ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_connect): First check to make sure that service->url->authmech is non-NULL before passing it into strcmp to avoid a segfault. svn path=/trunk/; revision=11618
* Sigh, if gpg returns '1' it means that the key is bad but it did succeedeJeffrey Stedfast2001-08-042-1/+10
| | | | | | | | | | | | 2001-08-03 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_decrypt): Sigh, if gpg returns '1' it means that the key is bad but it did succeede in decrypting the block so to make users happy (even though I find this a questionable action) we are going to ignore the error and show it to the user anyway. This fixes bug #6136. svn path=/trunk/; revision=11617
* special case popb4smtp auth before we try and connect, and do the magicNot Zed2001-08-037-12/+277
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-08-03 Not Zed <NotZed@Ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_connect): special case popb4smtp auth before we try and connect, and do the magic here first. 2001-08-02 Not Zed <NotZed@Ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_connect): Check for POPB4SMTP separate to the esmtp auth list. (smtp_auth): If creating the sasl object means it is already authenticated, then exit early. Sort of 'clean hack' to help popb4smtp work. (smtp_auth): Unref the sasl object, clean up a memleak i think. * providers/smtp/camel-smtp-provider.c (camel_provider_module_init): Added POPB4SMTP auth type. * camel-sasl.c (camel_sasl_authtype): Added POPB4SMTP type. * camel-sasl-popb4smtp.c: New file for pop before smtp 'authentication'. * Makefile.am (libcamel_la_SOURCES, HEADERS): Add camel-sasl-popb4smtp.[ch]. svn path=/trunk/; revision=11615
* If we fail to get the lock, make sure we close our locking fd, and resetNot Zed2001-08-012-1/+11
| | | | | | | | | | 2001-08-01 Not Zed <NotZed@Ximian.com> * providers/local/camel-mbox-folder.c (mbox_lock): If we fail to get the lock, make sure we close our locking fd, and reset it. Fixes the crash part of 5095. svn path=/trunk/; revision=11538
* Slightly re-arranged filter/change notification logic. If we;re filtering,Not Zed2001-08-014-42/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-08-01 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (camel_imap_folder_changed): Slightly re-arranged filter/change notification logic. If we;re filtering, freeze the folder till we're finished to smooth the ui for new mail. 2001-07-31 Not Zed <NotZed@Ximian.com> * camel-folder.c (camel_folder_init): Chagned mutexes to e_mutexes, folder lock recursive. This fixes the imap filtering bug, or at least some cases of it. (camel_folder_finalize): Free mutexes. * camel-private.h (CamelFolderPrivate): Changed mutexes to e_mutexes. 2001-07-25 Not Zed <NotZed@Ximian.com> * camel-folder.c (camel_folder_change_info_*): Change the return if fail's into asserts. (camel_folder_change_info_free): Don't let it accept a NULL argument. This isn't g_lib so we dont have to. svn path=/trunk/; revision=11537
* Fix the fix that fixes broken mailer behavior. We want to make sure thatJeffrey Stedfast2001-07-282-2/+10
| | | | | | | | | | | 2001-07-27 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_decode_param): Fix the fix that fixes broken mailer behavior. We want to make sure that the user's locale charset is non-NULL before we pass it off to iconv_open(). If it *is* NULL, we want to use iso-8859-1. svn path=/trunk/; revision=11448
* Allow the url to be NULL just like the libc free convention.Jeffrey Stedfast2001-07-273-14/+23
| | | | | | | | | 2001-07-26 Jeffrey Stedfast <fejj@ximian.com> * camel-url.c (camel_url_free): Allow the url to be NULL just like the libc free convention. svn path=/trunk/; revision=11437
* Send an IMAP command, but don't wait for responses.Dan Winship2001-07-275-233/+504
| | | | | | | | | | | | | | | | | | | | | | | * providers/imap/camel-imap-command.c (camel_imap_command_start): Send an IMAP command, but don't wait for responses. (camel_imap_command_response): Read a single line of response from the server. (camel_imap_command, etc): Reimplement in terms of the new code. * providers/imap/camel-imap-folder.c (imap_rescan): Use camel_imap_command_start and camel_imap_command_response, and call camel_operation_progress after each line read from the server. (imap_update_summary): Likewise, although with more fudging on the precentages... Also, fix this so that if none of the new messages are cached, it only does a single FETCH, and if some of them are cached, it does two FETCHes (one to get the UIDs, FLAGS, and SIZEs, and another to get the bodies of all of the messages that aren't cached now that it knows the relevant UIDs). This should speed up startup a bunch (especially if you have high bandwidth but also high latency to the IMAP server). svn path=/trunk/; revision=11430
* Add another Sender pattern.Dan Winship2001-07-252-0/+6
| | | | | | | * camel-mime-utils.c (mail_mlist_magic): Add another Sender pattern. svn path=/trunk/; revision=11399
* Change the break into a continue, we should process as many as we canNot Zed2001-07-253-5/+17
| | | | | | | | | | | | | | | | 2001-07-24 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (camel_imap_folder_changed): Change the break into a continue, we should process as many as we can find. * camel-folder.c (camel_folder_move_messages_to): If we have no uid's to copy, exit here before going any further. Some code internally [imap] assumes there are uids to copy otherwise it can segfault. (camel_folder_copy_messages_to): Same. svn path=/trunk/; revision=11392
* oops, and just in case value is NULL...Jeffrey Stedfast2001-07-251-1/+1
| | | | svn path=/trunk/; revision=11363
* Handle broken mailers that send unencoded 8bit header params. And thereJeffrey Stedfast2001-07-252-0/+41
| | | | | | | | | | 2001-07-24 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_decode_param): Handle broken mailers that send unencoded 8bit header params. And there was much rejoicing. Rah. svn path=/trunk/; revision=11362
* New #define, and there was much rejoicing. Rah.Jeffrey Stedfast2001-07-252-0/+7
| | | | | | | | | 2001-07-24 Jeffrey Stedfast <fejj@ximian.com> * camel-url.h (CAMEL_URL_HIDE_ALL): New #define, and there was much rejoicing. Rah. svn path=/trunk/; revision=11351
* Somehow this missed the commit.Not Zed2001-07-241-2/+2
| | | | | | | | | 2001-07-24 Not Zed <NotZed@Ximian.com> * camel-operation.c (camel_operation_register, unregister): Added some warnings for bad cases. svn path=/trunk/; revision=11333
* Added some warnings for bad cases.Not Zed2001-07-242-4/+26
| | | | | | | | | | | | | | | | 2001-07-24 Not Zed <NotZed@Ximian.com> * camel-operation.c (camel_operation_register, unregister): Added some warnings for bad cases. 2001-07-23 Not Zed <NotZed@Ximian.com> * camel-operation.c (camel_operation_register): Only insert a hash entry if we haven't already. (camel_operation_unregister): Only remove the has entry if the id is a real thread. svn path=/trunk/; revision=11329
* Slight fix for when source == destination (we don't want to do this actionJeffrey Stedfast2001-07-242-0/+9
| | | | | | | | | | 2001-07-23 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (do_move): Slight fix for when source == destination (we don't want to do this action because on-demand filtering would then delete the messages it supposedly "moved"). svn path=/trunk/; revision=11304
* Added some operation progress reporting. Actual data transfer is 'tricky'Not Zed2001-07-234-12/+44
| | | | | | | | | | | | | | | | | | | | 2001-07-23 Not Zed <NotZed@Ximian.com> * providers/smtp/camel-smtp-transport.c (smtp_auth, smtp_helo, send_to): Added some operation progress reporting. Actual data transfer is 'tricky' because of the layers used. (smtp_auth): Instead of checking exception_is_set, use challenge==NULL to test if sasl_challenge_base64 failed. * providers/local/camel-mbox-summary.c (mbox_summary_sync): Remove peters changes below and put in a better fix. These functions already return -1 on error, just use that, and not worry about building our own exception redundantly. * camel-service.c (camel_get_host_byname): Turn the progress into a transient event. svn path=/trunk/; revision=11301
* More usage fixes for CamelException. Check our own exception forPeter Williams2001-07-212-2/+12
| | | | | | | | | | 2001-07-20 Peter Williams <peterw@ximian.com> * providers/local/camel-mbox-summary.c (mbox_summary_sync): More usage fixes for CamelException. Check our own exception for summary_update and xfer it out if an error occurred. svn path=/trunk/; revision=11273
* Pull up test fixes to get them building againJP Rosevear2001-07-2110-12/+18
| | | | | | | | 2001-07-20 JP Rosevear <jpr@ximian.com> * Pull up test fixes to get them building again svn path=/trunk/; revision=11270
* renamed to camel_charset_to_iconv() to make it just a little moreNot Zed2001-07-206-9/+15
| | | | | | | | | 2001-07-20 Not Zed <NotZed@Ximian.com> * camel-charset-map.c (camel_charset_get_iconv_friendly_name): renamed to camel_charset_to_iconv() to make it just a little more svn path=/trunk/; revision=11254
* Convert to the iconv-friendly charset names.Jeffrey Stedfast2001-07-209-116/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-19 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-filter-charset.c (camel_mime_filter_charset_new_convert): Convert to the iconv-friendly charset names. * providers/imap/camel-imap-store.c (create_folder): Fixed a compiler warning about returning without a value in a non-void function. Blah. * camel-mime-part.c (process_header): Pass the locale charset as the default_charset to header_decode_string(). * camel-folder-summary.c (camel_folder_summary_format_string): Pass the locale charset as the default_charset to header_decode_string(). (content_info_new): Same. * camel-mime-message.c (process_header): Pass the locale charset as the default_charset to header_decode_string(). * camel-mime-utils.c (append_8bit): New helper function who's purpose is similar to append_latin1() but for 8bit text that we are assuming is not latin1. (header_decode_text): Now takes a default_charset parameter and calls append_8bit when appropriate. (header_decode_string): Also takes a default_charset parameter now. (header_decode_mailbox): Pass NULL as the default_charset to header_decode_string(). svn path=/trunk/; revision=11250
* Fixed a compiler warning about returning without a value in a non-voidJeffrey Stedfast2001-07-201-1/+1
| | | | | | | | | | 2001-07-19 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (create_folder): Fixed a compiler warning about returning without a value in a non-void function. Blah. svn path=/trunk/; revision=11247
* Modified to treat the return value from camel_charset_locale_name() as aJeffrey Stedfast2001-07-205-62/+79
| | | | | | | | | | | | | | | | | | 2001-07-19 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_verify): Modified to treat the return value from camel_charset_locale_name() as a const char*. * camel-sasl-digest-md5.c (digest_response): Modified to treat the return value from camel_charset_locale_name() as a const char*. * camel-charset-map.c (camel_charset_locale_name): Modify to return const char* by returning the static locale_charset which is created inside of camel_charset_map_init(). (camel_charset_map_init): Find the locale charset here and set the static variable. svn path=/trunk/; revision=11245
* In camel:Peter Williams2001-07-203-29/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-19 Peter Williams <peterw@ximian.com> Policy change: NULL url's are no longer allowed in CamelFolderInfos. They used to signify that the folder was, in IMAP jargon, NoSelect; now the same effect is achieved by adding a "noselect=yes" parameter to the end of the URL. As far as I know, IMAP is the only affected provider. * providers/imap/camel-imap-store.c (delete_folder): New function. Implement folder deletion. (camel_imap_store_class_init): Set the delete_folder class function here. (get_folder_status): New function. Utility wrapper around the STATUS command. (create_folder): If the parent folder is NoSelect but is empty, delete it and recreate it as a a subfolder-containing folder. If it is NoSelect but contains messages, set an exception. (parse_list_response_as_folder_info): Always set the FolderInfo's URL, but add a NoSelect parameter if it isn't selectable. (get_folder_info_online): Change logic of removing the namespace to reflect URL change. Same for logic of checking unread counts. (get_folder_info_online): Use get_folder_status to simplify this. * camel-store.c (camel_folder_info_build): When creating dummy parents, copy the child's URL and set the NoSelect parameter. In mail: 2001-07-19 Peter Williams <peterw@ximian.com> Track the NoSelect changes in Camel. * mail-callbacks.c (create_folders): We don't need to check if the URL is NULL or not anymore. * component-factory.c (create_noselect_control): New function. Create a dummy control for folders that can't contain messages (ie \NoSelect) (create_view): If the URI says the folder is noselect, make a dummy control. FIXME: still should merge in the global UI elements. (xfer_folder): Don't allow the operation if the destination is NoSelect. (destination_folder_handle_motion): Ditto. (destination_folder_handle_drop): Ditto. svn path=/trunk/; revision=11237
* No need for `acharset' anymore. (check_html_charset): Return a const char*Jeffrey Stedfast2001-07-202-13/+17
| | | | | | | | | | | | 2001-07-19 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): No need for `acharset' anymore. (check_html_charset): Return a const char* and also use camel_charset_get_iconv_friendly_name() internally. svn path=/trunk/; revision=11236
* Remove my iso8859-1 -> iso-8859-1 hack and useJeffrey Stedfast2001-07-205-36/+156
| | | | | | | | | | | | | | | | | | | | 2001-07-19 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (rfc2047_decode_word): Remove my iso8859-1 -> iso-8859-1 hack and use camel_charset_get_iconv_friendly_name() instead. (rfc2184_decode): Use camel_charset_get_iconv_friendly_name() * camel.c (camel_init): Call camel_charset_map_init(). * camel-charset-map.c (camel_charset_map_init): New function to initialize the charset-equivalent lookup table. To be called by camel_init(). (camel_charset_get_iconv_friendly_name): New function to try and convert a charset into something that iconv is more likely to accept. svn path=/trunk/; revision=11235
* Revert 7/11/2001 patch for IMAP INBOX filtering at NotZed's request.Peter Williams2001-07-192-67/+17
| | | | | | | | | 2001-07-19 Peter Williams <peterw@ximian.com> * Revert 7/11/2001 patch for IMAP INBOX filtering at NotZed's request. svn path=/trunk/; revision=11226
* Clean up some exception misusage.Peter Williams2001-07-186-20/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-17 Peter Williams <peterw@ximian.com> Clean up some exception misusage. * providers/imap/camel-imap-command.c (camel_imap_command): Use our own internal exception for sending the string and transfer it to @ex if anything goes wrong. (imap_read_response): Use our own internal exception for reading the untagged responses and blah blah blah. * camel-session.c (get_service): Use our own internal exception when constructing the service and transfer it to @ex if anything goes wrong. * camel-remote-store.c (remote_recv_line): Instead of having gboolean exception, use our own internal exception and copy it to @ex if anything goes wrong. * camel-store.c (store_sync): Create an internal exception because sync_folder() checks it for validity. Transfer it to @ex when done. * camel-exception.c (camel_exception_get_description): If @ex is NULL, complain - passing NULL exceptions to Camel is okay, but there should be no circumstances under which they're then examined. (camel_exception_get_id): Same here, (camel_exception_xfer): NULL-protect and warn if transferring from a NULL exception. svn path=/trunk/; revision=11177
* Use CAMEL_VTRASH_NAME.Jeffrey Stedfast2001-07-184-8/+15
| | | | | | | | | | 2001-07-17 Jeffrey Stedfast <fejj@ximian.com> * camel-store.c (init_trash): Use CAMEL_VTRASH_NAME. * camel-vtrash-folder.h: #define CAMEL_VTRASH_NAME svn path=/trunk/; revision=11158
* Given: 4 EXISTS 1 EXPUNGE We have to pass 3, not 4 toDan Winship2001-07-172-0/+16
| | | | | | | | | | | * providers/imap/camel-imap-command.c (camel_imap_response_free): Given: * 4 EXISTS * 1 EXPUNGE We have to pass 3, not 4 to camel_imap_folder_changed for the exists count. Fixes ximian bug #2112 (finally!). svn path=/trunk/; revision=11133
* If the message info for an expunged message is NULL, then just break out -Jeffrey Stedfast2001-07-152-0/+13
| | | | | | | | | | | 2001-07-14 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (camel_imap_folder_changed): If the message info for an expunged message is NULL, then just break out - maybe a message was expunged that we were never notified even existed? svn path=/trunk/; revision=11106
* Added a hack to convert charsets in the format iso8859-1 to iso-8859-1Jeffrey Stedfast2001-07-142-25/+43
| | | | | | | | | | | | 2001-07-13 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (rfc2047_decode_word): Added a hack to convert charsets in the format iso8859-1 to iso-8859-1 because it seems to be more iconv friendly. It has been reported that on some systems, iconv doesn't know about iso8859-1 while it *does* know about iso-8859-1. See bug #4530. svn path=/trunk/; revision=11094
* Let people install as non-root, but give them a bigass warning so they'rePeter Williams2001-07-143-4/+48
| | | | | | | | | | | | | | | | 2001-07-13 Peter Williams <peterw@ximian.com> * Makefile.am (install-exec-local): Let people install as non-root, but give them a bigass warning so they're not allowed to complain when it doesn't work right. * camel-remote-store.c (sync_remote_folder): New function: hash table callback. (remote_disconnect): If cleanly disconnecting, sync our folders. Fixes deadlocks on exit (folders syncing after store disconnects) and also makes sense. svn path=/trunk/; revision=11090
* We now use a structure as the bucket data rather than just a cache levelJeffrey Stedfast2001-07-136-32/+106
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-13 Jeffrey Stedfast <fejj@ximian.com> * camel-uid-cache.c (camel_uid_cache_new): We now use a structure as the bucket data rather than just a cache level so set the save state to TRUE. (maybe_write_uid): We only save the uid if the cache levels are the same *and* if the save state is TRUE. (free_uid): Free the state value. (camel_uid_cache_get_new_uids): New uids that get added to the cache start with a save state of FALSE. (camel_uid_cache_save_uid): Set the save state of the uid to TRUE. What should we do if the uid isn't already in the cache? Currently I make it add the uid, but maybe it shouldn't? * providers/imap/camel-imap-folder.c (imap_filter_timeout): Update to reflect CamelFilterDriver API changes. * camel-filter-driver.c (camel_filter_driver_filter_folder): Take a cache argument so we can tell the cache whether or not the uid should be saved (meaning we have successfully filtered it). svn path=/trunk/; revision=11084
* Okay, I've decided that that user is just on crack. We don't want to allowJeffrey Stedfast2001-07-132-8/+12
| | | | | | | | | | | | | | 2001-07-12 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_message): Okay, I've decided that that user is just on crack. We don't want to allow filtering of deleted messages or we could get some unexpected behavior. (do_move): Oops. My last fix needs to be after the if-statement, not inside it. (do_copy): And here too. svn path=/trunk/; revision=11068
* Okay, I've decided that that user is just on crack. We don't want to allowJeffrey Stedfast2001-07-132-4/+10
| | | | | | | | | | | 2001-07-12 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_message): Okay, I've decided that that user is just on crack. We don't want to allow filtering of deleted messages or we could get some unexpected behavior. svn path=/trunk/; revision=11048
* Only set p->copied and p->deleted if the messages are copied without anJeffrey Stedfast2001-07-132-7/+25
| | | | | | | | | | | | | | | | | | 2001-07-12 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (do_move): Only set p->copied and p->deleted if the messages are copied without an exception. (do_copy): Same - but obviously we don't set the p->deleted here at all. (camel_filter_driver_filter_message): Since users complained that they couldn't filter deleted messages for "safe keeping" (WTF? safe keeping? why were they deleted in the first place then??), I have taken out the code that optimized filtering by not allowing deleted messages to be filtered. This fixes bug #4473. Note: Users have a warped sense of logic. svn path=/trunk/; revision=11047
* Removed. (check_html_charset): Replaced with this.Not Zed2001-07-128-942/+1017
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-12 Not Zed <NotZed@Ximian.com> * camel-mime-part-utils.c (extract_metatag_charset): Removed. (check_html_charset): Replaced with this. (simple_data_wrapper_construct_from_parser): Call check_html_charset if we dont have a charset on the content-type, and we have text/html data. (check_html_charset): We also need to do qp/base64 decoding ourselves, sigh. * camel-mime-utils.c (html_meta_param_list_decode): Removed. This was very wrong, the rules for mail headers vastly different from rules for decoding html elements. (rfc2184_decode): Move the malloc inside the iconv_open worked, otherwise we have a memleak. * camel-mime-filter-html.c (camel_mime_filter_html_finalize, init, run, reset): Changed to use camelhtmlparser, and fixed a tiny memleak. * camel-html-parser.c: Made the html indexer tokeniser re-usable. ONLY TO BE USED INTERNAL TO CAMEL HOWEVER. (tokenise_step): Slight fix to non-quoted values. svn path=/trunk/; revision=11028
* Removed some code i wasn't supposed to commit.Not Zed2001-07-123-7/+25
| | | | | | | | | | | | | | | 2001-07-12 Not Zed <NotZed@Ximian.com> * camel-folder-summary.c (camel_folder_summary_info_new_from_message): Removed some code i wasn't supposed to commit. * providers/local/camel-local-summary.c (local_summary_add): Only set info->size if it is not zero. (local_summary_add): If we dont get a size from the info passed in, calculate it using a null stream write. Should do #4392. svn path=/trunk/; revision=11025
* New function to extract a meta-tag charset value if it exists.Jeffrey Stedfast2001-07-124-26/+119
| | | | | | | | | | | | | | | | | | 2001-07-11 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (extract_metatag_charset): New function to extract a meta-tag charset value if it exists. (simple_data_wrapper_construct_from_parser): Along the same lines as the code I previously ripped out, but this time use the mime-parser's seek ability to help us along. Currently I read up to a 2k buffer size - this is probably overkill, 1k is probably plenty. * camel-mime-utils.c (html_meta_param_list_decode): When we get to an `=', we must skip past it before trying to grab the param value. duh. svn path=/trunk/; revision=11021
* Ripped out my code since it was never being used since the mime parser isJeffrey Stedfast2001-07-123-124/+77
| | | | | | | | | | | | 2001-07-11 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): Ripped out my code since it was never being used since the mime parser is not using a seekable stream (ever?) which pretty much means my code needs to be done someplace else. svn path=/trunk/; revision=11016
* Run the filter in its own thread to prevent locking issues.Peter Williams2001-07-122-12/+75
| | | | | | | | | | | 2001-07-11 Peter Williams <peterw@ximian.com> * providers/imap/camel-imap-folder.c (camel_imap_folder_changed): Run the filter in its own thread to prevent locking issues. (imap_filter_timeout): New function that does the filtering called as a CamelSession timeout. svn path=/trunk/; revision=11011
* Create the messageinfo itself, so we can properly set the size.Not Zed2001-07-117-56/+129
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-11 Not Zed <NotZed@Ximian.com> * camel-filter-driver.c (camel_filter_driver_filter_mbox): Create the messageinfo itself, so we can properly set the size. * camel-movemail.c (camel_movemail_solaris): Write out the from line between each message. 2001-07-10 Not Zed <NotZed@Ximian.com> * providers/local/camel-local-summary.c (local_summary_add): Copy the size across from the source message info if supplied. * camel-stream-null.c: Added a 'written' member which keeps track of how much has been written to the stream. * camel-movemail.c (camel_movemail): If we have BROKEN_SPOOL defined, then use the solaris movemail to quote from lines that sendmail didn't. (camel_movemail_solaris): Compile this in if BROKEN_SPOOL defined. svn path=/trunk/; revision=10989
* New function to parse an HTML meta-tag.Jeffrey Stedfast2001-07-117-233/+365
| | | | | | | | | | | | | | | | | 2001-07-10 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (html_meta_param_list_decode): New function to parse an HTML meta-tag. * camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser): If the Content-Type did not contain a charset parameter and it's also a text/html part, we have 1 last place to look - in the META html tags. *sigh* * camel-mime-message.c (camel_mime_message_get_source): s/gint/unsigned since that's what it should be. svn path=/trunk/; revision=10976
* Forget the passphrase if the user has set that option. (pgp_clearsign):Jeffrey Stedfast2001-07-103-2/+27
| | | | | | | | | | | | | 2001-07-09 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_sign): Forget the passphrase if the user has set that option. (pgp_clearsign): Same. (pgp_encrypt): And here... (pgp_decrypt): And finally here. (camel_pgp_context_new): Take a `remember' argument. svn path=/trunk/; revision=10932
* Oops, e_poolv_set free's it for us, so dont double-free here.Not Zed2001-07-092-1/+5
| | | | | | | | | 2001-07-09 Not Zed <NotZed@Ximian.com> * providers/local/camel-maildir-summary.c (maildir_summary_sync): Oops, e_poolv_set free's it for us, so dont double-free here. svn path=/trunk/; revision=10902
* Changed so we dont have the list changing under us, just going to the nextNot Zed2001-07-092-2/+11
| | | | | | | | | | | | 2001-07-06 Not Zed <NotZed@Ximian.com> * camel-vee-folder.c (camel_vee_folder_finalise): Changed so we dont have the list changing under us, just going to the next node before we call a function that might change the list is potentially dangerous (slight mod of peters fix). Hmm, i think it would've double-unref'd it too(?) svn path=/trunk/; revision=10900
* openssl_table is gone. we now store/get the stream from the SSL_CTX'sChris Toshok2001-07-092-46/+39
| | | | | | | | | | | | | | | | | | 2001-07-08 Chris Toshok <toshok@ximian.com> * camel-tcp-stream-openssl.c (camel_tcp_stream_openssl_finalize): openssl_table is gone. we now store/get the stream from the SSL_CTX's app_data. (stream_read): rework the non-blocking case to account for SSL possibly buffering data (in which case select will block even though data is ready to be read), and to account for FreeBSD's strange behavior of returning -1/EAGAIN even though select said the fd was ready to be read. (ssl_verify): openssl_table is gone. (open_ssl_connection): set the SSL_CTX's app_data to be the stream, remove the openssl_table code. svn path=/trunk/; revision=10894
* Don't allow in to be NULL, so instead of doing if (in == NULL) return;,Jeffrey Stedfast2001-07-072-3/+6
| | | | | | | | | | | 2001-07-06 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_encode_param): Don't allow in to be NULL, so instead of doing if (in == NULL) return;, make it a g_return_val_if_fail and later we can make it an assert or something. svn path=/trunk/; revision=10868
* Fixes bug #1138.Jeffrey Stedfast2001-07-072-0/+12
| | | | | | | | | 2001-07-06 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-maildir-store.c (get_inbox): Fixes bug #1138. svn path=/trunk/; revision=10860
* Make the `day-of-month' digit take up 2 chars by using "%2d". Fixes bugJeffrey Stedfast2001-07-072-1/+6
| | | | | | | | | | | 2001-07-06 Jeffrey Stedfast <fejj@ximian.com> * providers/local/camel-mbox-summary.c (camel_mbox_summary_build_from): Make the `day-of-month' digit take up 2 chars by using "%2d". Fixes bug #3989 for lame mailers like Pine. svn path=/trunk/; revision=10858
* Set the pipe fd's to nonblocking.Jeffrey Stedfast2001-07-073-2/+11
| | | | | | | | | 2001-07-06 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (crypto_exec_with_passwd): Set the pipe fd's to nonblocking. svn path=/trunk/; revision=10847
* Make sure that after the finalization event has happened and thePeter Williams2001-07-062-0/+14
| | | | | | | | | | 2001-07-06 Peter Williams <peterw@ximian.com> * camel-object.c (camel_object_unref): Make sure that after the finalization event has happened and the finalization functions have been called that the object still has a zero refcount. svn path=/trunk/; revision=10844
* Add locking to camel_nntp_get_grouplist_from_server().Joe Shaw2001-07-065-2/+53
| | | | | | | | | | | | | | | | | | | | | | 2001-07-06 Joe Shaw <joe@ximian.com> * providers/nntp/camel-nntp-grouplist.c: Add locking to camel_nntp_get_grouplist_from_server(). * providers/nntp/camel-nntp-resp-codes.h: Added NNTP_EXTENSIONS_SUPPORTED (202). * providers/nntp/camel-nntp-store.c (camel_nntp_store_get_extensions): Check for both NNTP_LIST_FOLLOWS and NNTP_EXTENSIONS_SUPPORTED from a LIST EXTENSIONS request. (Dunno if NNTP_LIST_FOLLOWS ever comes out of this, but that's what was already there...) Also, put some locking around it. (finalize): e_mutex_destroy() the command lock (camel_nntp_store_init): e_mutex_new() the command lock. * providers/nntp/camel-nntp-store.h: Add locking macros. svn path=/trunk/; revision=10838
* Added an assert to make sure that `mi' isn't NULL.Jeffrey Stedfast2001-07-063-9/+28
| | | | | | | | | | | | | | 2001-07-05 Jeffrey Stedfast <fejj@ximian.com> * camel-folder-summary.c (camel_message_info_string): Added an assert to make sure that `mi' isn't NULL. (camel_message_info_set_string): Same. * providers/imap/camel-imap-command.c (camel_imap_response_free): Create and use a temporary CamelException for use with camel_imap_folder_changed. svn path=/trunk/; revision=10834
* Send the --no-auto-key-retrieve argument to gpg if we are in offline modeJeffrey Stedfast2001-07-062-5/+8
| | | | | | | | | | | | 2001-07-05 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_verify): Send the --no-auto-key-retrieve argument to gpg if we are in offline mode so that we don't have to worry about gpg hanging if it can't connect to the key servers, because now it shouldn't even attempt to. svn path=/trunk/; revision=10831
* Send the --no-auto-key-retrieve argument to gpg so that we don't have toJeffrey Stedfast2001-07-062-0/+8
| | | | | | | | | | | 2001-07-05 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-context.c (pgp_verify): Send the --no-auto-key-retrieve argument to gpg so that we don't have to worry about gpg hanging if it can't connect to the key servers, because now it shouldn't even attempt to. svn path=/trunk/; revision=10827
* use X509_STORE_CTX_get_ex_data to get at the SSL* - don't use theChris Toshok2001-07-062-10/+36
| | | | | | | | | | | | | | | | | | 2001-07-05 Chris Toshok <toshok@ximian.com> * camel-tcp-stream-openssl.c (ssl_verify): use X509_STORE_CTX_get_ex_data to get at the SSL* - don't use the X509_STORE_CTX to look up our stream, since it's not what we used to insert our stream into the hashtable. (open_ssl_connection): insert the stream into the hashtable before calling SSL_connect, as this can cause ssl_verify to be called, and we need to look up the stream there. remove the stream from the hashtable if there's an error connecting. (stream_connect): pass the CamelTcpStreamOpenSSL* to open_ssl_connection since it handles the hashtable stuff. remove hashtable stuff from here. svn path=/trunk/; revision=10819
* if source == dest, just no-op.Jeffrey Stedfast2001-07-062-1/+11
| | | | | | | | | 2001-07-05 Jeffrey Stedfast <fejj@ximian.com> * camel-folder.c (camel_folder_copy_messages_to): if source == dest, just no-op. svn path=/trunk/; revision=10817
* Move this before the camel_vee_folder_remove_folder because that functionPeter Williams2001-07-064-30/+32
| | | | | | | | | | | | | | | | | | | | 2001-07-05 Peter Williams <peterw@ximian.com> * camel-vee-folder.c (camel_vee_folder_finalise): Move this before the camel_vee_folder_remove_folder because that function modifies p->folders messing up our iteration. (camel_vee_folder_finalise): Don't unref our summary; camel-folder now does this. * camel-object.h (CamelObject): Add a 'destroying' flag to CamelObject. * camel-object.c (obj_init): Clear 'destroying'. (camel_object_unref): If 'destroying' then do not send the finalize event and do not call finalize functions. Otherwise, set destroying so just in case we get refed (eg event code) we don't get doubly finalized. svn path=/trunk/; revision=10811
* (camel_message_info_dup_to): Assign the to->strings from theMichael Zucci2001-07-052-1/+4
| | | | | | | e_poolv_cpy() call, since it may allocaote a new poolv if the lengths do not match. svn path=/trunk/; revision=10790
* Fix the assertion slightly, if we have a little bit of input the outputNot Zed2001-07-052-2/+6
| | | | | | | | | | 2001-07-05 Not Zed <NotZed@Ximian.com> * camel-mime-filter-basic.c (filter): Fix the assertion slightly, if we have a little bit of input the output size could be larger, since we store upto 3 chars in the state. svn path=/trunk/; revision=10786
* When indexing a new record, create a pseudo word 'ibexindexed' so we canNot Zed2001-07-054-22/+41
| | | | | | | | | | | | | | | | | | | | | | | 2001-07-05 Not Zed <NotZed@Ximian.com> * camel-folder-summary.c (camel_folder_summary_info_new_from_message): When indexing a new record, create a pseudo word 'ibexindexed' so we can always tell that a message has already been idnexed, even if it contains no words of its own. Things like maildir use this check to see if its already been processed, and it matters if it is incorrect in this case (not just wasted cycles). (camel_folder_summary_info_new_from_parser): And same here. * providers/local/camel-maildir-summary.c (maildir_summary_sync): Changed the logicfor epoolv code to be different, we dont need to update hash references or any tricky stuff. (maildir_summary_check): Samehere. * camel-folder-summary.h: Removed include of e-memory.h. svn path=/trunk/; revision=10785
* Added NNTP_NO_PERMISSION (502) to the list of response codes.Joe Shaw2001-07-043-1/+16
| | | | | | | | | | | | | 2001-07-03 Joe Shaw <joe@ximian.com> * providers/nntp/camel-nntp-resp-codes.h: Added NNTP_NO_PERMISSION (502) to the list of response codes. * providers/nntp/camel-nntp-store.c (nntp_store_connect): If we receive a NNTP_NO_PERMISSION, don't get into an infinite loop trying to reconnect, get extensions, etc. Just give up and return FALSE. svn path=/trunk/; revision=10769
* Doh. Don't remove things from the hash table while foreach'ing it. (AndDan Winship2001-07-033-23/+63
| | | | | | | | | | | | | | | | * providers/imap/camel-imap-message-cache.c (camel_imap_message_cache_clear): Doh. Don't remove things from the hash table while foreach'ing it. (And can't use foreach_remove either because we have to remove them in a weird order). Fixes #3618. * providers/imap/camel-imap-folder.c (imap_get_message): If the server returns OK from the FETCH BODY, but there's no parseable BODY response, it's probably because there's an UN-parseable BODY response, implying the message is badly formatted, MIMEwise. In that case, fall back to fetching the message as a single part. svn path=/trunk/; revision=10748
* Implemented nntp_folder_search_by_expression and nntp_folder_search_free.Sam Creasey2001-07-039-33/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-02 Sam Creasey <sammy@oh.verio.com> * providers/nntp/camel-nntp-folder.c: Implemented nntp_folder_search_by_expression and nntp_folder_search_free. Basic search functionality e.g. unread marking now works for NNTP folders. * camel_filter_search.c (get_size): Added get-size sexp directive to get the size of a message for filters. * providers/nntp/camel-nntp-folder.c (camel_nntp_folder_new): Always check with the NNTP server after summary load -- this function now always expires old summary entries and syncs with the news server. * providers/nntp/camel-nntp-utils.c (camel_nntp_get_headers): Only fetch headers for articles not already logged in the summary file. * providers/nntp/camel-nntp-grouplist.c (camel_nntp_get_grouplist_from_*): change from g_list_append() to g_list_prepend() + g_list_reverse. Traversing 40,000 element linked lists sucks. * providers/nntp/camel-nntp-store.c (camel_nntp_command): Should the NNTP connection die with CAMEL_EXCEPTION_SERVICE_NOT_CONNECTED, make a single retry attempt. Timing out the NNTP link is less painful this way. svn path=/trunk/; revision=10716
* Add comment noting that Camel actually exists now :-)Peter Williams2001-07-032-0/+11
| | | | | | | | | 2001-07-02 Peter Williams <peterw@ximian.com> * README (Introduction): Add comment noting that Camel actually exists now :-) svn path=/trunk/; revision=10696
* new method to get an application-initialized filter driver.Dan Winship2001-07-0211-38/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * camel-session.c (camel_session_get_filter_driver): new method to get an application-initialized filter driver. * camel-filter-driver.c (camel_filter_driver_new): Remove the get_folder function and data args from here... (camel_filter_driver_set_folder_func): ...and add this function to set/change them. * providers/imap/camel-imap-folder.c (camel_imap_folder_new): If this folder is INBOX and we're filtering INBOX, set a flag on the folder for later. (imap_update_summary): Add another argument (GPtrArray *recents), and if it's non-NULL, add the uids of any \Recent new messages to it. (camel_imap_folder_changed): If doing filtering in this folder, create a recents array and pass it to imap_update_summary. Then get a filter driver and use it to filter the recent messages. * providers/imap/camel-imap-summary.h: * providers/imap/camel-imap-utils.c (imap_parse_flag_list): Add support for the \Recent flag. * providers/imap/camel-imap-provider.c (imap_conf_entries): enable the "filter" option. * camel-types.h: add CamelFilterDriver typedef here svn path=/trunk/; revision=10681
* properly return error if we can't create pipes.Not Zed2001-07-022-1/+4
| | | | | | | | | 2001-07-02 Not Zed <NotZed@Ximian.com> * camel-lock-client.c (camel_lock_helper_init): properly return error if we can't create pipes. svn path=/trunk/; revision=10677
* re-enable html indexing.Not Zed2001-07-023-172/+843
| | | | | | | | | | | | 2001-07-02 Not Zed <NotZed@Ximian.com> * camel-folder-summary.c (summary_build_content_info): re-enable html indexing. * camel-mime-filter-html.c: Completely re-implemented using a custom parser. svn path=/trunk/; revision=10676
* Change a camel_exception_clear to camel_exception_init to fix aDan Winship2001-07-022-1/+6
| | | | | | | * tests/misc/url.c (main): Change a camel_exception_clear to camel_exception_init to fix a sometimes-crash svn path=/trunk/; revision=10675
* Added Originator: header as a header to look for when looking for theJeffrey Stedfast2001-06-302-0/+4
| | | | | | | | | 2001-06-29 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c: Added Originator: header as a header to look for when looking for the mailing list. svn path=/trunk/; revision=10603
* Build the test-crlf test program.Jeffrey Stedfast2001-06-308-25/+255
| | | | | | | | | | | | | | 2001-06-29 Jeffrey Stedfast <fejj@ximian.com> * tests/mime-filter/Makefile.am: Build the test-crlf test program. * tests/mime-filter/test-crlf.c: New test suite for the crlf filter. * camel-mime-filter-crlf.c (filter): Fixed to correctly encode and decode dots. svn path=/trunk/; revision=10602
* sshJose Maria Celorio2001-06-291-0/+6
| | | | svn path=/trunk/; revision=10592
* Add a CamelMimeFilterStripHeader that removes a header from mime output. UsedPeter Williams2001-06-2922-3/+524
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | by sendmail to strip the BCC from the email while still sending to the BCC recipients. camel: 2001-06-28 Peter Williams <peterw@ximian.com> * camel-mime-filter-stripheader.c: New file. Filter that strips a header from mime output. * camel-mime-filter-stripheader.h: New file. Header for the above. * providers/smtp/camel-smtp-transport.c (smtp_data): Use the stripheader filter to remove the "Bcc" header. * Makefile.am: Add the stripheader files. * tests/lib/Makefile.am (INCLUDES): Get this to compile again. * tests/mime-filter/test-stripheader.c: New file. Test suite for the CamelMimeFilterStripHeader. * tests/mime-filter/Makefile.am: New test section: mime filters. mail: 2001-06-28 Peter Williams <peterw@ximian.com> * mail-ops.c (mail_send_message): Revert fejj's Bcc header removal; this unsets the BCC recipients and so doesn't send to the Bcc'd people at all. svn path=/trunk/; revision=10576
* Fix a memory leak. Also if the decoded value is NULL, that means it wasn'tJeffrey Stedfast2001-06-292-32/+114
| | | | | | | | | | | | 2001-06-28 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_decode_param_list): Fix a memory leak. Also if the decoded value is NULL, that means it wasn't encoded so we don't want to toss the old value. (header_param_list_format_append): Correctly wrap long parameter values according to rfc2184. svn path=/trunk/; revision=10566
* If the folder is frozen, don't refresh, just record that we need to do itDan Winship2001-06-295-7/+84
| | | | | | | | | | | | | | | | | | | * providers/imap/camel-imap-folder.c (imap_refresh_info): If the folder is frozen, don't refresh, just record that we need to do it later. (imap_append_online): If the APPEND doesn't trigger an immediate EXISTS response (because the folder isn't the selected folder, or because the server doesn't do that until the next command), call imap_refresh_info on the folder. (imap_copy_online): Likewise. (Replacing the unconditional NOOP that was there before, which absolutely killed filter performance by forcing the IMAP provider to switch back and forth between folders after every copy or move.) (imap_thaw): If the folder needs a refresh, do it. * camel-folder.c (camel_folder_is_frozen): New method svn path=/trunk/; revision=10565
* Initialize the private send_lock. (camel_transport_finalize): Free theJeffrey Stedfast2001-06-284-4/+70
| | | | | | | | | | | | | | | 2001-06-27 Jeffrey Stedfast <fejj@ximian.com> * camel-transport.c (camel_transport_init): Initialize the private send_lock. (camel_transport_finalize): Free the private send_lock. (camel_transport_get_type): Set the init and finalize functions. (camel_transport_send): Lock the transport. (camel_transport_send_to): Same. * camel-private.h: Add CAMEL_TRANSPORT_(UN)LOCK macros. svn path=/trunk/; revision=10547
* Updated to match the current API.Jeffrey Stedfast2001-06-283-3/+10
| | | | | | | | | | | 2001-06-27 Jeffrey Stedfast <fejj@ximian.com> * tests/folder/test9.c (main): Updated to match the current API. * tests/folder/test3.c: #include <gtk/gtk.h> since we use gtk_init(). svn path=/trunk/; revision=10546
* Use the new header_address_fold.Jeffrey Stedfast2001-06-284-83/+53
| | | | | | | | | | | | | | | | | | 2001-06-27 Jeffrey Stedfast <fejj@ximian.com> * camel-internet-address.c (camel_internet_address_encode_address): Use the new header_address_fold. * camel-mime-utils.c: Removed some old #if 0'd code of mine. (rfc2047_encode_word): If enclen is 0, don't write an encoded word token (=?iso-8859-7?Q??= would be an invalid token). (header_address_fold): New function to wrap address headers - header_fold() was force-wrapping rfc2047 encoded words which was making the test suite fail. The *real* solution, however, is to not create rfc2047 encoded words longer than 72 chars. svn path=/trunk/; revision=10545
* Since we want an error opening a folder to result in the message beingJeffrey Stedfast2001-06-272-5/+15
| | | | | | | | | | | 2001-06-26 Jeffrey Stedfast <fejj@ximian.com> * camel-filter-driver.c (open_folder): Since we want an error opening a folder to result in the message being copied to Inbox (assuming no other filters get a chance to `move` it), don't record any exceptions that may occur in this function. svn path=/trunk/; revision=10515