Commit Graph

26 Commits

Author SHA1 Message Date
24b06cb2a4 Use a bag instead of a hashtable to track the cache streams.
2002-12-07  Not Zed  <NotZed@Ximian.com>

	* camel-data-cache.c (data_cache_init): Use a bag instead of a
	hashtable to track the cache streams.
	(data_cache_finalise): Same.
	(free_busy): No longer needed.
	(data_cache_expire): use bag instead of hashtable.
	(stream_finalised): No longer required.
	(camel_data_cache_add): objectbagise
	(camel_data_cache_get): "
	(camel_data_cache_remove): "
	(data_cache_path): Set the now expired date before running expiry,
	so it plays better with multiple threads.  Still a couple of
	harmless races.

2002-12-06  Not Zed  <NotZed@Ximian.com>

	* providers/local/camel-spool-store.c (scan_dir): folders ->
	object bag.
	(get_folder_info_mbox): folders -> object bag.

	* providers/local/camel-mh-store.c (folder_info_new): folders ->
	object bag.

	* providers/local/camel-maildir-store.c (scan_dir): folders ->
	object bag.

	* providers/local/camel-local-store.c (rename_folder): folders ->
	object bag.

	* camel-private.h (CamelStorePrivate): Remove 'cache' lock,
	handled by the objectbag.

	* providers/imap/camel-imap-store.c (copy_folder): Removed.
	(imap_store_refresh_folders): folders -> object bag.
	(get_folder_counts): folders -> object bag.

	* camel-vee-store.c (vee_get_folder): changes for folders
	objectbag.
	(vee_get_folder_info): Change to use folders objectbag.  Also,
	dont refresh the base folder if we're in FAST mode.
	(build_info): Removed, no longer needed.
	(vee_rename_folder): Fixed for folders objectbag.

	* camel-store.c (camel_store_init): init the folders objectbag.
	(camel_store_finalize): Destroy the folders object bag.
	(folder_matches):
	(folder_finalize): Removed, now handled implicitly by the
	objectbag.
	(camel_store_get_folder): object bag changes.
	(camel_store_delete_folder): "
	(get_subfolders): Removed, now handled without a callback.
	(camel_store_rename_folder): Changed to use object bag of folders.
	(trash_add_folder): Removed.
	(init_trash): use folders object bag.
	(copy_folder_cache):
	(sync_folder): Removed, no longer needed.  Weird arsed code anyway.
	(store_sync): Use folder object bag instead of hashtable.
	(camel_store_unsubscribe_folder): "
	(camel_store_init): remove cache_lock init, no longer used.
	(camel_store_finalize): Same for cleanup.

2002-12-05  Not Zed  <NotZed@Ximian.com>

	* camel-store.h (struct _CamelStore): change folders from a
	hashtable into a CamelObjectBag.

	* camel-object.c (camel_object_ref): Use type_lock instead of
	class lock for ref counting.
	(camel_object_unref): Use type_lock instead of class lock for
	unref.
	(camel_object_unref): If the object is 'bagged', then also look
	hooks, and remove it from any bags.
	(camel_object_bag_new):
	(camel_object_bag_destroy):
	(camel_object_bag_add):
	(camel_object_bag_get):
	(camel_object_bag_remove_unlocked):
	(camel_object_bag_list):
	(camel_object_bag_abort):
	(camel_object_bag_remove): New functions to implement a utility
	object which can manage a 'bag' of weakly ref'd children in an
	atomic & threadsafe way.

svn path=/trunk/; revision=19056
2002-12-09 00:28:06 +00:00
5e144756c9 Lots of changes, too numerous to list. Changed to use
2002-09-04  Not Zed  <NotZed@Ximian.com>

	* providers/imap/camel-imap-store.c,
	providers/imap/camel-imap-folder.c: Lots of changes, too numerous
	to list.  Changed to use camel-imap-store-summary to cache list
	requests.  Changed to use a canonicalised url path with / instead
	of per-store directory separator.  Indirects folder name so
	invalid folder names can still be accessed.  Summary now stored in
	a new expandable format in .ev-store-summary.

2002-08-28  Not Zed  <NotZed@Ximian.com>

	* providers/imap/camel-imap-store.c (construct): Load store
	summary if it exists.
	(can_work_offline): Just see if we have any folders to say whether
	we can work offline or not.  Should probably always just return
	true.

2002-08-27  Not Zed  <NotZed@Ximian.com>

	* providers/imap/camel-imap-store-summary.[ch]: New files to
	handle offline definition of folders, etc.

	* camel-url.h: Define CamelURL to be struct _CamelURL rather than
	anonymous struct.

	* camel-store-summary.[ch]: a few api tweaks.  Also, the summary
	header is versioned separately at each level, so that version
	upgrades can be handled separately.  Renamed FolderInfo ->
	StoreInfo to avoid namespace with current FolderInfo code.  This
	should be reversed when the FolderInfo code is rationalised to
	this new base.

2002-08-23  Not Zed  <NotZed@Ximian.com>

	* providers/imap/camel-imap-command.c (camel_imap_command): domt
	encode folder name.

	* providers/imap/camel-imap-folder.c (do_copy): dont encode folder
	name.
	(do_append): dont encode folder name.

	* providers/imap/camel-imap-store.c (get_folder_status): don
	encode folder name in imap request.
	(get_folder_online): here too for creating folder.
	(rename_folder): Assume the incoming 'new name' is a utf8 path,
	whereas the 'old name' is as from get folder info (raw).
	(create_folder): Dont encode parent_name, assume its the raw
	thing.

2002-08-22  Not Zed  <NotZed@Ximian.com>

	* providers/imap/camel-imap-store.c (get_folder_online): Select
	based on unconverted name.
	(imap_build_folder_info): New function to create a folderinfo
	properly based on raw name.
	(subscribe_folder): Use above helper.
	(imap_folder_effectively_unsubscribed): Same here.
	(imap_forget_folder): Same here.
	(get_one_folder_offline): "

2002-08-21  Not Zed  <NotZed@Ximian.com>

	* providers/imap/camel-imap-store.c
	(parse_list_response_as_folder_info): Setup path properly, as
	decoded path with / separator.  Setup full_name as non-decoded raw
	name.  Keep url as decoded path but with server separator
	... (ick).
	(create_folder): Dont call build_path anymore, get_folders() does
	it for us.
	(subscribe_folder): Build the path ourself.
	(imap_folder_effectively_unsubscribed): Same here.
	(get_subscribed_folders): list using %S not %F, we're using the
	raw server provided name directly.
	(subscribe_folder): As above, for SUBSCRIBE.
	(unsubscribe_folder): Same here.
	(delete_folder): Same.
	(rename_folder_info): Same here for source name.
	(rename_folder): And here?
	(get_folders_online): Amd here.

	* providers/imap/camel-imap-utils.c:
	(imap_parse_list_response): Dont decode the mailbox.

	* camel-utf8.[ch]: some new utf8 & utf7 utilities.

	* providers/imap/camel-imap-utils.c (imap_mailbox_encode):
	(imap_mailbox_decode): use camel_utf7/8* functions instead.
	: Add config.h and alloca.h headers.

svn path=/trunk/; revision=17943
2002-09-03 14:55:03 +00:00
4db7ee0b50 Lock the CamelService->priv->connect_lock instead of using our own
2002-08-26  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-store.c:

	* providers/imap/camel-imap-folder.c:

	* providers/imap/camel-imap-command.c: Lock the
	CamelService->priv->connect_lock instead of using our own
	command_lock. This fixes bug #28177.

svn path=/trunk/; revision=17861
2002-08-26 16:45:50 +00:00
b0633536f2 New source file implementing a very basic certificate database. This is
2002-07-30  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-certdb.c: New source file implementing a very basic
	certificate database. This is mostly just here because the Mozilla
	NSS certdb seems to not be working for everyone's Evolution
	install (works fine for me and Ettore but not many other people).

	* camel-tcp-stream-ssl.c (ssl_bad_cert): If we have this
	certificate in our own CamelCertDB, then get the trust value from
	that and only prompt the user if the trust is unknown.

	* camel-tcp-stream-openssl.c (ssl_verify): Same.

	* camel.c (camel_init): Create our default certdb.

svn path=/trunk/; revision=17642
2002-07-30 19:16:11 +00:00
08344be402 Update the freeze state of the new source folder.
2002-06-17  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-vee-folder.c (camel_vee_folder_add_folder): Update the
	freeze state of the new source folder.
	(camel_vee_folder_remove_folder): Undo any freeze state that we
	have imposed on this source folder.

svn path=/trunk/; revision=17216
2002-06-17 21:44:06 +00:00
92ac615eae remove the camel-remote-store private struct
svn path=/trunk/; revision=17209
2002-06-17 18:32:05 +00:00
d0a6ed17b6 setup/free the mech string.
2002-06-02  Not Zed  <NotZed@Ximian.com>

        * camel-sasl.c (camel_sasl_new):
        (camel_sasl_finalize): setup/free the mech string.

        * camel-sasl.h: Added 'mech' mechanism string.

2002-06-01  Not Zed  <NotZed@Ximian.com>

        * providers/imap/camel-imap-folder.c (imap_getv): Implement.  Only
        the object_description arg.
        (camel_imap_folder_get_type): Init parent_class holder.

        * providers/local/camel-local-folder.c (local_getv): Implement,
        object_description arg.

        * camel-folder.c (folder_getv): Implement, add a bunch of args you
        can get -> camel_folder_get_unread_count etc will be going RSN i
        hope.
        (camel_folder_finalize): Free cached description string.

        * camel-object.c (cobject_getv): Implement
        CAMEL_OBJECT_ARG_DESCRIPTION, just return the classname of the
        object.
        (camel_object_getv):
        (camel_object_get):
        (camel_object_setv):
        (camel_object_set): Take object = void *, to simplify usage.
        (camel_object_setv): Removed unecessary locals.
        (camel_object_getv): Same.
        (camel_object_free): New method, free an arg, upto implementations
        whether args are static/const or not.
        (cobject_free): Implement a dummy do nothing free.

2002-05-31  Not Zed  <NotZed@Ximian.com>

        * camel-vee-folder.c (camel_vee_folder_get_location): new function
        to get the real location (folder) (and uid) of a vfolder object.
        Using the folderinfo, since we already have it, maybe it should
        use the uid.

svn path=/trunk/; revision=17073
2002-06-03 02:56:35 +00:00
35cd31644f Make the folder_lock recursive. See bug #22363 for details. Basically,
2002-04-09  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-store.c (camel_store_init): Make the folder_lock
	recursive. See bug #22363 for details. Basically,
	get_folder_info() is requesting a diary folder which in turn
	connects which requests then calls get_folder() but deadlocks
	because get_folder_info already holds the lock.

svn path=/trunk/; revision=16419
2002-04-10 03:02:33 +00:00
c6fc4e27a9 When we add a new name, up all of the cache limits, because we're probably
2002-03-25  Not Zed  <NotZed@Ximian.com>

        * camel-text-index.c (text_index_add_name): When we add a new
        name, up all of the cache limits, because we're probably going to
        be adding more.
        (text_index_sync): Drop the cache limits back down again, we dont
        need them when looking words up.

        ** MERGE camel_index branch.

        * camel-text-index.[ch]: Added files i forgot to add (eep nearly
        lost all this work!)

        * camel-block-file.c (sync_nolock): Fix an infinite loop in syncing.

svn path=/trunk/; revision=16242
2002-03-25 12:11:44 +00:00
cbbaa07125 Don't allow any empty structs. If !ENABLE_THREADS, provide a gpointer
2002-03-15  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-private.h: Don't allow any empty structs. If
	!ENABLE_THREADS, provide a gpointer dummy member. Fixes bug #6382.

svn path=/trunk/; revision=16174
2002-03-15 19:06:30 +00:00
bd788027df If we don't want to corrupt the uuencoded data by overwriting it with
2002-01-16  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-filter-basic.c (filter): If we don't want to corrupt
	the uuencoded data by overwriting it with base64 decoded data
	afterward, we need to add a break statement!

	* camel-folder-summary.c (summary_build_content_info): Add code to
	add a uu filter.
	(camel_folder_summary_finalize): Unref the uuencode filter.

svn path=/trunk/; revision=15347
2002-01-16 23:38:32 +00:00
345d090ac8 Rewritten to use a cache for body searches when online. Will need some
2002-01-14  Not Zed  <NotZed@Ximian.com>

        * providers/imap/camel-imap-search.c (imap_body_contains):
        Rewritten to use a cache for body searches when online.  Will need
        some heavy testing but so far seems to be beneficial.

        * providers/imap/camel-imap-folder.c (imap_search_by_expression,
        search_by_uids): dont initialise search object here.
        (camel_imap_folder_new): Setup search object here with pointer to
        cache dir.

2001-12-01  Not Zed  <NotZed@Ximian.com>

        * camel-store-summary.[ch]: New class to store a store's folder
        list in.  Not yet completed.

svn path=/trunk/; revision=15314
2002-01-14 09:35:52 +00:00
d2e6a28e22 Initialize our private mutex. (camel_data_wrapper_finalize): Destroy our
2001-11-02  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-data-wrapper.c (camel_data_wrapper_init): Initialize our
	private mutex.
	(camel_data_wrapper_finalize): Destroy our private mutex.
	(write_to_stream): Lock around camel_stream_write_to_stream() so
	that we don't get 2 threads trying to read from our stream at the
	same time.

svn path=/trunk/; revision=14573
2001-11-02 23:53:36 +00:00
08fb7329cb Fixing the license text.
svn path=/trunk/; revision=14212
2001-10-27 16:59:46 +00:00
02dcd0aadf Update the licensing information to require version 2 of the GPL
(instead of version 2 or any later version).

svn path=/trunk/; revision=14190
2001-10-27 00:25:49 +00:00
5120d7098b Change "gboolean connected" to "CamelServiceConnectionStatus status",
* 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
2001-09-27 14:39:39 +00:00
6
88186e014e Emptied VeeStorePrivate, member wasn't used.
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
2001-09-26 20:18:54 +00:00
1
0f0f01c1e0 Force a refresh of vfolders before storing their count. This essentially
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
2001-09-21 05:58:53 +00:00
8
8347ce1403 If filter inbox is set on the store, and we're opening inbox '', then
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
2001-09-18 21:43:00 +00:00
6f22eb642b Slightly re-arranged filter/change notification logic. If we;re filtering,
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
2001-08-01 04:57:01 +00:00
3797918d01 Initialize the private send_lock. (camel_transport_finalize): Free the
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
2001-06-27 22:43:00 +00:00
91cc026904 Update the copyrights, replacing Helix Code with Ximian and
helixcode.com with ximian.com all over the place.

svn path=/trunk/; revision=10440
2001-06-23 08:52:02 +00:00
76b2ad6623 Same.
2001-03-16  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-private.h: Same.

	* camel-remote-store.h: Fixed #include to use <>'s instead of ""'s

svn path=/trunk/; revision=8767
2001-03-17 00:52:11 +00:00
0e9c0268a8 re-constify inbuf, to remove a warning.
2001-03-14  Not Zed  <NotZed@Ximian.com>

	* camel-mime-filter-charset.c (filter, complete): re-constify
	inbuf, to remove a warning.

	* camel-mime-parser.c (folder_scan_step): When we're out of data,
	run the filter_complete.  For some reason the logic that was there
	was never being run, always try it now, i think it was to work
	around a buggy filter, rather than fix it the right way.

	* camel-folder-summary.c (summary_build_content_info): If indexing
	html parts, use the html filter to convert it to some indexable
	format.
	(summary_build_content_info): Reset the filters before adding them
	back to the stream, if they get re-used in a given instance
	(likely).

	* Makefile.am (libcamelinclude_HEADERS): Added
	camel-mime-filter-html.[ch].
	(INCLUDES): Added xml clags

2001-03-05  Not Zed  <NotZed@Ximian.com>

	* camel-folder-search.c (camel_folder_search_class_init): Setup a
	new function, "uid" which matches uids.
	(search_uid): Implement the "match uid" command.

svn path=/trunk/; revision=8705
2001-03-14 07:06:54 +00:00
c81bce50bb Removed all files.
2001-02-22  Not Zed  <NotZed@Ximian.com>

        * providers/vee/*: Removed all files.

        * camel-private.h: Move camel-vee-private.h stuff into here.

        * camel-session.c: Move the vee_provider here, and initialise it
        always as part of a session.  The vfolder provider is always
        available.

        * providers/Makefile.am: Remove "vee" from the build list, now
        built as part of the main library.

        * Makefile.am (libcamelinclude_HEADERS):
        (libcamel_la_SOURCES): Added camel-vee-store.[ch],
        camel-vee-folder.[ch].

svn path=/trunk/; revision=8340
2001-02-21 20:30:29 +00:00
6de256c2a2 Lock the command channel while searching. (imap_body_contains): If
2000-12-24  Not Zed  <NotZed@HelixCode.com>

        * providers/imap/camel-imap-search.c (imap_body_contains): Lock
        the command channel while searching.
        (imap_body_contains): If performing a whole uid search, then add
        references to our own summary items, dont look it up in the
        folder.  This way they can't vanish unexpectedly.

        * providers/imap/camel-imap-folder.h (CamelImapFolder): Added a
        private field.

        * providers/imap/camel-imap-private.h: Added lock for imap
        searches.

        * Merge from camel-mt-branch.

        * providers/imap/camel-imap-folder.c (imap_update_summary): Merge
        fix, use the folder->summary.
        (imap_get_message_flags, imap_set_message_flags,
        imap_get_message_user_flag, imap_set_message_user_flag): Removed
        again.
        (camel_imap_folder_init): Setup private data/lock.
        (imap_finalize): Free private data/search lock.
        (imap_search_free): Lock the search_lock.
        (imap_search_by_expression): Lock the search lock when using the
        search object.  Also copy/ref hte summary, rather than getting it
        directly.
        (imap_refresh_info): Free any info lookups.  Use folder->summary
        not imap_folder->summary.  And lock around commands.

svn path=/trunk/; revision=7150
2000-12-24 00:46:20 +00:00