Turns out this function was a no-op, because nothing registered itself
to be cancelled this way. This was part of the legacy async framework,
which we've mostly moved away from now.
This makes the code free of Coverity scan issues.
It is sometimes quite pedantic and expects/suggests some
coding habits, thus certain changes may look weird, but for a good
thing, I hope. The code is also tagged with Coverity scan
suppressions, to keep the code as is and hide the warning too.
Also note that Coverity treats g_return_if_fail(), g_assert() and
similar macros as unreliable, and it's true these can be disabled
during the compile time, thus it brings in other set of 'weird'
changes.
If sending a message fails but the user was already connected to the
MTA, the error is missed and not handled until further into the logic,
where it's treated as though sending succeeded and only post-processing
failed. This results in the user seeing a copy of the message in Sent,
but the message was never actually sent.
Fallout from the investigation of bug 710807.
* Use GIO-style async parameters.
* Add mail_folder_cache_note_store_finish().
* Do the bulk of the work in a thread so the logic is more readable.
* Queue multiple calls for the same CamelStore and share the results.
* Stop using recursive mutexes.
* Give StoreInfo a reference count.
* Give FolderInfo a reference count.
* Track CamelFolders with GWeakRef instead of weak pointers.
* Submit updates directly to the GMainContext, like we do in EDS,
instead of dequeuing them all from a single idle callback that
we then have to track.
Take a CamelStore and folder name instead of a CamelFolder.
CamelStore and folder name can easily be obtained from either a folder
URI or a CamelFolder instance, and the function is more efficient with
separate parameters.
Replaces mail_folder_cache_get_folder_from_uri().
Returns the CamelFolder for the CamelStore and folder name if available,
or else NULL if a CamelFolder instance is not yet cached. This function
does not block.
Returns whether MailFolderCache has information about the folder
described by the CamelStore and folder name. This does not necessarily
mean it has the CamelFolder instance, but it at least has some meta-data
about it.
You can use this function as a folder existence test.
I considered replacing the "session" property with a "registry"
property, but that just complicates application startup even more.
Fact is, if we have a CamelStore then we can get the CamelSession
and even the ESourceRegistry from it. Kinda dirty, but works.
It goes a little something like this...
camel_service = CAMEL_SERVICE (camel_store);
camel_session = camel_service_get_session (camel_service);
mail_session = E_MAIL_SESSION (camel_session);
registry = e_mail_session_get_registry (mail_session);
Removed functions:
mail_folder_cache_get_session()