Matthew Barnes [Mon, 12 Aug 2013 09:48:35 +0000 (05:48 -0400)]
imapx_parser_thread: Reacquire the stream on every loop iteration.
Set an error if we fail to acquire a CamelIMAPXStream reference.
Once we have a reference, keep it until the next loop iteration.
Milan Crha [Mon, 12 Aug 2013 08:21:08 +0000 (10:21 +0200)]
[Maildir] Create the 'tmp' directory, if missing
If a folder's directory is missing 'tmp' sub-directory, but it has
all the other 'cur' and 'new' directories, then try to create
the 'tmp' to get all three required directories.
It's because some backup tools can drop the 'tmp' directories.
This was reported as: https://bugzilla.redhat.com/show_bug.cgi?id=995702
Milan Crha [Mon, 12 Aug 2013 07:02:13 +0000 (09:02 +0200)]
Bug #705814 - Crash in certificate_viewer_new()
Piotr Drąg [Fri, 9 Aug 2013 20:58:26 +0000 (22:58 +0200)]
Updated POTFILES.in
Milan Crha [Fri, 9 Aug 2013 16:49:49 +0000 (18:49 +0200)]
Bug #700895 - Decode header's value before comparing with RegEx
Milan Crha [Fri, 9 Aug 2013 08:10:11 +0000 (10:10 +0200)]
Bug #704688 - HTTP Backend: Don't authenticate unnecessarily
Matthew Barnes [Fri, 9 Aug 2013 05:15:44 +0000 (07:15 +0200)]
Remove unused CamelOfflineJournal.
Kjartan Maraas [Thu, 8 Aug 2013 19:25:59 +0000 (21:25 +0200)]
Updated Norwegian bokmål translation
Kjartan Maraas [Thu, 8 Aug 2013 19:23:38 +0000 (21:23 +0200)]
Fix build
Milan Crha [Thu, 8 Aug 2013 15:07:32 +0000 (17:07 +0200)]
Bug #705288 - Custom header search produces error
Matthew Barnes [Thu, 8 Aug 2013 13:12:42 +0000 (15:12 +0200)]
Add camel_imapx_folder_process_status_response().
Updates the folder's local status information from the STATUS response.
Matthew Barnes [Thu, 8 Aug 2013 08:46:34 +0000 (10:46 +0200)]
Add CamelIMAPXStatusResponse.
Represents an IMAP STATUS response.
Replaces the "state_info" struct and associated functions.
New functions:
camel_imapx_status_response_new()
camel_imapx_status_response_get_mailbox()
camel_imapx_status_response_get_messages()
camel_imapx_status_response_get_recent()
camel_imapx_status_response_get_uidnext()
camel_imapx_status_response_get_uidvalidity()
camel_imapx_status_response_get_unseen()
camel_imapx_status_response_get_highestmodseq()
Removed functions:
imapx_parse_status_info()
Milan Crha [Thu, 8 Aug 2013 12:36:10 +0000 (14:36 +0200)]
[Camel] Disable SSL v2 and weak ciphers by default
The change for disabled weak ciphers require at least NSS 3.14, thus
weak ciphers are enabled, if it's compiled with older NSS. In case
any server will require either weak ciphers or SSL v2 (while there
really should not anyone use it these days), then two environment
variables were added:
CAMEL_SSL_V2_ENABLE=1 - to have SSL v2 enabled, otherwise it's disabled,
regardless what camel providers request (they usually request v2 and
v3 together)
CAMEL_SSL_WEAK_CIPHERS=1 - to enable weak ciphers, almost the same as
before; otherwise these are disabled and only those covered by
NSS_SetDomesticPolicy() are enabled
These are added to the group of one for SSL V2 compatible hello:
CAMEL_SSL_V2_HELLO=1 - to force SSL v2 compatible hello on SSL connections
Milan Crha [Thu, 8 Aug 2013 11:46:44 +0000 (13:46 +0200)]
Bug #705617 - Failed connection hides offline data in online mode
Do not call "connect" when changing online state in 'connecting' state,
and similar for "disconnect", to prevent a deadlock, if this change is
called within "connect" or "disconnect" function itself.
Daniel Mustieles [Thu, 8 Aug 2013 09:13:30 +0000 (11:13 +0200)]
Updated Spanish translation
Milan Crha [Thu, 8 Aug 2013 05:46:17 +0000 (07:46 +0200)]
Bug #705446 - Old POP3 mails can be removed before getting them
Matthew Barnes [Wed, 7 Aug 2013 15:27:11 +0000 (17:27 +0200)]
CamelIMAPXListResponse: Fix some macro typos.
Matthew Barnes [Wed, 7 Aug 2013 15:19:19 +0000 (17:19 +0200)]
Remove CAMEL_IMAPX_DEBUG_conman.
CamelIMAPXConnManager is gone.
Matthew Barnes [Wed, 7 Aug 2013 15:04:47 +0000 (17:04 +0200)]
CamelIMAPXServer: Handle unsolicited VANISHED responses.
By "unsolicited" here I mean there are no commands in progress which
would otherwise emit the folder change notification when the command
completes. In that situation, emit the change notification directly
from imapx_untagged_vanished() rather than holding it until the next
command completes.
Matthew Barnes [Wed, 7 Aug 2013 14:39:45 +0000 (16:39 +0200)]
CamelIMAPXServer: Remove "expunged" list.
The "expunged" list is populated with message UIDs and occasionally
cleared, but CamelIMAPXServer does not actually use it for anything.
Matthew Barnes [Wed, 7 Aug 2013 14:19:48 +0000 (16:19 +0200)]
imapx_update_store_summary() cleanups.
Matthew Barnes [Wed, 7 Aug 2013 11:29:29 +0000 (13:29 +0200)]
Add camel_imapx_list_response_ref_extended_item().
Returns the extended item value for the given tag as a GVariant.
The type of the GVariant depends on the extended item. If no value
for the given tag exists, the function returns NULL.
Matthew Barnes [Wed, 7 Aug 2013 11:28:38 +0000 (13:28 +0200)]
CamelIMAPXListResponse: Parse extended items.
Parse extended items in LIST responses. The extended item grammer is
rather open-ended, so rather than try to parse all possible extended
items, just parse the items with tags we understand and try to skip
the rest. Currently those tags are CHILDINFO and OLDNAME.
Matthew Barnes [Wed, 7 Aug 2013 12:54:04 +0000 (14:54 +0200)]
CamelIMAPXStore: Folder rename refactoring.
Break some logic out so it can be reused for unsolicited LIST responses.
Milan Crha [Wed, 7 Aug 2013 09:08:55 +0000 (11:08 +0200)]
Bug #705444 - Can not create contact lists in LDAP address book
Milan Crha [Wed, 7 Aug 2013 07:55:37 +0000 (09:55 +0200)]
Missing mutex initialization in EDataBook/CalFactory
Chao-Hsiung Liao [Wed, 7 Aug 2013 04:39:34 +0000 (12:39 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Matthew Barnes [Tue, 6 Aug 2013 07:45:42 +0000 (09:45 +0200)]
Add camel_imapx_mailbox_is_inbox().
Returns whether a mailbox name is the special mailbox INBOX. The
function just performs a case-insensitive string comparison; it's
more for readability.
Matthew Barnes [Tue, 6 Aug 2013 06:34:23 +0000 (08:34 +0200)]
CamelDiscoStore: Fix CamelServiceConnectionStatus tracking.
Do not set CAMEL_DISCO_STORE_OFFLINE when the CamelService reports
something other than CAMEL_SERVICE_CONNECTED. That would lock the
store into offline mode such that further connection attempts will
simply invoke connect_offline() and never actually establish a new
server connection.
Matthew Barnes [Mon, 5 Aug 2013 13:53:01 +0000 (15:53 +0200)]
Bug 705493 - Wrong default in configure help for --enable-largefile
Matthew Barnes [Sun, 4 Aug 2013 22:10:08 +0000 (00:10 +0200)]
CamelIMAPXStore: Remove NOINFERIORS -> NOCHILDREN hack.
CamelFolderListResponse already takes care of adding the implicit
/HasNoChildren attribute when /NoInferiors is seen.
Matthew Barnes [Mon, 29 Jul 2013 14:40:44 +0000 (10:40 -0400)]
Add CamelIMAPXListResponse.
Represents an IMAP LIST response, including LIST-EXTENDED information.
Replaces the "list_info" struct and associated functions.
New functions:
camel_imapx_list_response_new()
camel_imapx_list_response_hash()
camel_imapx_list_response_equal()
camel_imapx_list_response_compare()
camel_imapx_list_response_get_mailbox()
camel_imapx_list_response_get_separator()
camel_imapx_list_response_add_flag()
camel_imapx_list_response_has_flag()
camel_imapx_list_response_get_childinfo()
camel_imapx_list_response_get_summary_flags()
Removed functions:
imapx_parse_list()
imapx_list_get_path()
imapx_free_list()
Matthew Barnes [Mon, 29 Jul 2013 14:22:50 +0000 (10:22 -0400)]
Add camel_imapx_parse_mailbox().
Parses a "mailbox" token, with the special case for "INBOX".
Chao-Hsiung Liao [Sat, 3 Aug 2013 13:05:19 +0000 (21:05 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Matthew Barnes [Sat, 3 Aug 2013 07:55:41 +0000 (09:55 +0200)]
Bug 704871 - Fails to manage subscription on an NNTP account
Matthew Barnes [Fri, 2 Aug 2013 19:09:41 +0000 (21:09 +0200)]
Bug 704885 - "Unknown background operation" when syncing spamassassin
The "spamassassin" Evolution module makes use of CamelJunkFilter's
synchronize() method, during which time we didn't have a status message
pushed on the CamelOperation (other than the default "Unknown background
operation", which users should never see). This commit pushes a message.
Matthew Barnes [Fri, 2 Aug 2013 14:31:20 +0000 (16:31 +0200)]
Bug 705206 - Stale "Retrieving message xxx" in preview panel
A client application cancelling an operation should not terminate the
parser thread. The parser thread completes the operation even if the
client is no longer interested in the result. The parser thread loop
must only be broken out of on an I/O error, parsing error, the server
hanging up, or application shutdown.
Fran Diéguez [Fri, 2 Aug 2013 11:10:31 +0000 (13:10 +0200)]
Updated Galician translations
Milan Crha [Thu, 1 Aug 2013 11:18:20 +0000 (13:18 +0200)]
Bug #705273 - Leaked sockets after failed authentication
Yosef Or Boczko [Wed, 31 Jul 2013 23:15:02 +0000 (02:15 +0300)]
drop GtkStock
https://bugzilla.gnome.org/show_bug.cgi?id=705010
Milan Crha [Tue, 30 Jul 2013 14:58:05 +0000 (16:58 +0200)]
NNTP: Authentication requires nntp_stream set
Once again, the code expected the opposite, which led to runtime
warnings and failed connection to the server.
Milan Crha [Tue, 30 Jul 2013 12:22:01 +0000 (14:22 +0200)]
[NNTP] Fails to get list of folders, if not connected already
The code, incorrectly, assumed that the store is always connected
when a list of folders is requested, but the actual connection
happens only during command invocation, after whose successful
finish it's ensured that there is defined also a stream.
This can be reproduced by creating a new NNTP account and trying
to manage subscription. The first try fails, console is filled with
runtime warnings, the second try shows list of available folders.
Milan Crha [Tue, 30 Jul 2013 09:35:21 +0000 (11:35 +0200)]
[Google book] Implement EBookBackend::refresh and advertise its support
Milan Crha [Tue, 30 Jul 2013 09:21:30 +0000 (11:21 +0200)]
(Follow-up of bug #704895) [Google book] Removal of a nickname throws an error
Milan Crha [Tue, 30 Jul 2013 09:10:24 +0000 (11:10 +0200)]
Bug #704895 - Nicknames for Google Contacts not synced
Milan Crha [Mon, 29 Jul 2013 14:00:51 +0000 (16:00 +0200)]
Bug #672899 - Renaming Google book group doesn't propagate to category
Victor Ibragimov [Mon, 29 Jul 2013 15:05:57 +0000 (16:05 +0100)]
Tajik translation added
Matthew Barnes [Sun, 28 Jul 2013 14:40:19 +0000 (10:40 -0400)]
Post-release version bump.
Matthew Barnes [Sun, 28 Jul 2013 14:18:48 +0000 (10:18 -0400)]
NEWS update for 3.9.5 release.
Matthew Barnes [Sun, 28 Jul 2013 14:23:40 +0000 (10:23 -0400)]
Update API documentation.
Matthew Barnes [Sun, 28 Jul 2013 13:54:47 +0000 (09:54 -0400)]
Miscellaneous cleanups.
Matthew Barnes [Sun, 28 Jul 2013 03:15:51 +0000 (23:15 -0400)]
camel_store_get_folder_info_sync() cleanups.
Milan Crha [Thu, 25 Jul 2013 06:07:12 +0000 (08:07 +0200)]
Bug #704740 - WebDAV - Do not store ETag into REV attribute
Christian Kirbach [Wed, 24 Jul 2013 14:01:16 +0000 (16:01 +0200)]
Updated German translation
Milan Crha [Mon, 22 Jul 2013 16:03:00 +0000 (18:03 +0200)]
Bug #704618 - Missing detached instances in get_object() response
Fabiano Fidêncio [Mon, 22 Jul 2013 12:59:33 +0000 (14:59 +0200)]
Bug #386113 - show custom alarm message in pop-up alerts
Enable this feature only for backends we are completely sure it works.
Only enabled for local calendars (file backend) for now.
Fabiano Fidêncio [Mon, 22 Jul 2013 13:51:54 +0000 (15:51 +0200)]
Fix typo in e_cal_backend_file_get_backend_property()
https://bugzilla.gnome.org/show_bug.cgi?id=386113
Milan Crha [Mon, 22 Jul 2013 09:57:07 +0000 (11:57 +0200)]
Do not use generic error codes in camel_getaddrinfo()/camel_getnameinfo()
It's too hard to distinguish from other provider errors when using
general error codes here, thus rather use CAMEL_SERVICE_ERROR_URL_INVALID.
Marek Černocký [Sun, 21 Jul 2013 19:19:18 +0000 (21:19 +0200)]
Updated Czech translation
Matthew Barnes [Sat, 20 Jul 2013 22:45:46 +0000 (18:45 -0400)]
Fix memory leak in camel_imapx_command_add_qresync_parameter().
Matthew Barnes [Sat, 20 Jul 2013 18:20:16 +0000 (14:20 -0400)]
Bug 704003 - IMAPX: Untagged BYE message while connecting is lost
Do not disconnect the service in imapx_untagged_bye() if we're still
connecting. camel_service_disconnect_sync() will cancel the connect
operation and the server message will get replaced with a generic
"Operation was cancelled" message.
Also, check for and handle errors when calling imapx_untagged() from
imapx_connect_to_server().
Matthew Barnes [Sat, 20 Jul 2013 17:03:24 +0000 (13:03 -0400)]
CamelGpgContext: Enclose email addresses in brackets.
The recipient list for encrypting can be specified by either key ID or
email address. Enclose email addresses in brackets to ensure an exact
match, as per the gpg man page:
HOW TO SPECIFY A USER ID
...
By exact match on an email address.
This is indicated by enclosing the email address in the
usual way with left and right angles.
<heinrichh@uni-duesseldorf.de>
Without the brackets gpg uses a substring match, which risks selecting
the wrong recipient.
Milan Crha [Fri, 19 Jul 2013 10:06:48 +0000 (12:06 +0200)]
Bug #692904 - Do not call camel_service_disconnect during connection phase
Milan Crha [Thu, 18 Jul 2013 16:53:26 +0000 (18:53 +0200)]
Bug #704181 - Froze while filtering messages
Milan Crha [Thu, 18 Jul 2013 16:31:52 +0000 (18:31 +0200)]
Bug #691526 - Memory corruption under e_book_backend_google_start_book_view()
Kjartan Maraas [Thu, 18 Jul 2013 12:25:13 +0000 (14:25 +0200)]
Updated Norwegian bokmål translation
Milan Crha [Thu, 18 Jul 2013 09:34:42 +0000 (11:34 +0200)]
CamelGpgContext: Be aware of gpg2
There can be installed only gpg2, without old gpg executable, but
CamelGpgContext was not aware of that and simply failed to do any
gpg operation due to missing gpg executable.
This was reported as: https://bugzilla.redhat.com/show_bug.cgi?id=985599
Matthew Barnes [Tue, 16 Jul 2013 10:34:02 +0000 (06:34 -0400)]
Bump libecal / libedata-cal soname for API breaks.
Milan Crha [Tue, 16 Jul 2013 10:05:30 +0000 (12:05 +0200)]
Insufficient return values from e_cal_backend_get_object/_list()
These also returned ECalComponent, but it cannot hold a vCalendar,
which is returned when the component has detached instances.
Milan Crha [Tue, 16 Jul 2013 07:01:55 +0000 (09:01 +0200)]
Bug #704220 - Incorrect runtime check in e_data_cal_respond_send_objects()
Matthew Barnes [Mon, 15 Jul 2013 12:25:39 +0000 (08:25 -0400)]
Fix imapx_parse_flags() regression.
Matthew Barnes [Sun, 14 Jul 2013 11:41:26 +0000 (07:41 -0400)]
CamelIMAPXServer: Untagged handler cleanups.
Matthew Barnes [Sun, 14 Jul 2013 13:29:17 +0000 (09:29 -0400)]
CamelIMAPXStream: Return TRUE/FALSE instead of 0/-1.
Affected functions:
camel_imapx_stream_atom()
camel_imapx_stream_astring()
camel_imapx_stream_nstring()
camel_imapx_stream_nstring_stream()
camel_imapx_stream_text()
camel_imapx_stream_number()
camel_imapx_stream_skip()
Matthew Barnes [Sun, 14 Jul 2013 12:45:12 +0000 (08:45 -0400)]
Simplify camel_imapx_stream_number().
Matthew Barnes [Sun, 14 Jul 2013 12:37:06 +0000 (08:37 -0400)]
Simplify camel_imapx_stream_nstring_stream().
Matthew Barnes [Sun, 14 Jul 2013 12:29:11 +0000 (08:29 -0400)]
Simplify camel_imapx_stream_nstring().
Matthew Barnes [Sun, 14 Jul 2013 12:19:48 +0000 (08:19 -0400)]
Simplify camel_imapx_stream_astring().
Matthew Barnes [Sun, 14 Jul 2013 12:15:05 +0000 (08:15 -0400)]
Simplify camel_imapx_stream_atom().
Matthew Barnes [Sun, 14 Jul 2013 02:11:07 +0000 (22:11 -0400)]
CamelIMAPXStore cleanups.
Matthew Barnes [Sun, 14 Jul 2013 11:46:13 +0000 (07:46 -0400)]
Remove IMAPX_TOK_PROTOCOL.
This just makes it awkward to check for errors.
An error is an error, the GError domain should indicate the type.
Matthew Barnes [Sun, 14 Jul 2013 04:50:19 +0000 (00:50 -0400)]
Remove unused CAMEL_STORE_INFO_FOLDER_CHECK_FOR_NEW flag.
Checked for but never set.
Also remove unused CAMEL_FOLDER_CHECK_FOR_NEW flag.
Matthew Barnes [Sun, 14 Jul 2013 03:21:53 +0000 (23:21 -0400)]
Remove unused camel_imapx_namespace_list_copy().
Matthew Barnes [Sun, 14 Jul 2013 03:20:13 +0000 (23:20 -0400)]
Remove unused camel_imapx_store_summary_set_namespaces().
Matthew Barnes [Sun, 14 Jul 2013 04:03:37 +0000 (00:03 -0400)]
Remove unused camel_imapx_store_summary_namespace_set().
Matthew Barnes [Sat, 13 Jul 2013 22:11:45 +0000 (18:11 -0400)]
imapx_reconnect() cleanups.
Matthew Barnes [Fri, 12 Jul 2013 23:29:01 +0000 (19:29 -0400)]
camel_folder_transfer_messages_to_sync: Connect the CamelServices first.
Matthew Barnes [Fri, 12 Jul 2013 23:17:54 +0000 (19:17 -0400)]
camel_folder_expunge_sync: Connect the CamelService first.
Matthew Barnes [Fri, 12 Jul 2013 23:14:54 +0000 (19:14 -0400)]
camel_folder_append_message_sync: Connect the CamelService first.
Matthew Barnes [Fri, 12 Jul 2013 21:09:35 +0000 (17:09 -0400)]
CamelTcpStreamRaw: Don't timeout on reads.
This is needed for IMAP IDLE to work, which sits in a read call for
long periods of time. If this times out then we disconnect from the
server and miss out on mailbox updates.
The timeout was orignally added to work around suspend/resume issues,
but that should be handled by way of GCancellables, not by prematurely
terminating a read call. Prior to reading we connect to GCancellable
and call PR_Interrupt() on cancellation to terminate the read call.
Need to make sure the GCancellable is actually firing when it should,
and that we're not racing it.
Leaving the timeout on write calls in place for now, since that seems
more reasonable.
Matthew Barnes [Fri, 12 Jul 2013 20:26:02 +0000 (16:26 -0400)]
camel_folder_get_message_sync: Recover from dropped connection.
If the requested message is not cached, and the service is online but
disconnected, reconnect before requesting the message. This is meant
to help recover from dropped server connections.
Matthew Barnes [Fri, 12 Jul 2013 17:57:51 +0000 (13:57 -0400)]
CamelIMAPXServer: Remove fixed "use_idle" flag.
Always obtain a fresh value from CamelIMAPXSettings.
Rename imapx_idle_supported() to imapx_use_idle() for better readability
(even if IDLE is supported, the user may prefer not to *use* it).
Further, only call imapx_use_idle() when deciding whether to issue an
IDLE command. Don't need to check imapx_use_idle() when handling state
changes -- if we're already *in* IDLE then we're obviously *using* IDLE.
Matthew Barnes [Fri, 12 Jul 2013 13:08:07 +0000 (09:08 -0400)]
imapx_connect_sync: Fix runtime warning.
Follows from the previous commit.
Matthew Barnes [Fri, 12 Jul 2013 12:49:08 +0000 (08:49 -0400)]
imapx_disconnect_sync: Fix runtime warning.
Bad assumption here. The server could hang up while the
CamelService is still in a CAMEL_SERVICE_CONNECTING state.
Matthew Barnes [Fri, 12 Jul 2013 13:04:52 +0000 (09:04 -0400)]
CamelIMAPXStore: Further cleanups.
Wylmer Wang [Fri, 12 Jul 2013 14:48:59 +0000 (22:48 +0800)]
Updated Chinese simplified translation
tuhaihe [Fri, 12 Jul 2013 14:26:25 +0000 (22:26 +0800)]
Updated Chinese simplified translation
Matthew Barnes [Fri, 12 Jul 2013 02:17:02 +0000 (22:17 -0400)]
camel_folder_synchronize_sync: Connect the CamelService first.
Matthew Barnes [Fri, 12 Jul 2013 01:27:28 +0000 (21:27 -0400)]
camel_folder_refresh_info_sync: Connect the CamelService first.
Matthew Barnes [Fri, 12 Jul 2013 00:57:07 +0000 (20:57 -0400)]
CamelIMAPXSettings: Remove "concurrent-connections" property.
No longer used.
Matthew Barnes [Thu, 11 Jul 2013 18:22:49 +0000 (14:22 -0400)]
Remove CamelIMAPXConnManager.
It turns out CamelIMAPXConnManager's server selection logic has been
broken for some time and we've been operating on a single connection
regardless of the "concurrent-connections" setting.
And you know what? A single connection works fine. The only thing
CamelIMAPXConnManager actually does nowadays is occasionally deadlock
because it tries to connect to a server while holding a locked mutex,
which is a major no-no.
CamelIMAPXConnManager is not documented, it's not only NOT doing its
job but is actively causing problems, and I can't seem to wrap my head
around the implications of multiple connections in a CamelService. So
I decided to just junk it.
New functions:
camel_imapx_store_ref_server()
Removed functions:
camel_imapx_store_get_server()
camel_imapx_store_op_done()