platform/upstream/evolution-data-server.git
10 years agoBug 712728 - Add --disable-migration option to evolution-source-registry
Tristan Van Berkom [Wed, 20 Nov 2013 06:08:54 +0000 (15:08 +0900)]
Bug 712728 - Add --disable-migration option to evolution-source-registry

This allows one to run the EDS processes in relocated XDG user data
directories, without the registry stealing your user data from ~/.evolution
or previous versions.

10 years agoBug 712829 - Silence unnecessary migration chatter on stdout
Colin Walters [Thu, 21 Nov 2013 21:54:03 +0000 (16:54 -0500)]
Bug 712829 - Silence unnecessary migration chatter on stdout

Currently we log a message every time the migrater starts, even
if we have nothing to migrate.  This clutters the systemd journal.

To fix this cleanly, rework this code so that error handling is
cleaner and more unified, which preserves the migration context.

10 years agoregistry-server: Demote g_print() to g_debug()
Colin Walters [Thu, 21 Nov 2013 14:13:37 +0000 (09:13 -0500)]
registry-server: Demote g_print() to g_debug()

Avoid doing this sort of thing during normal startup.

10 years agoUOA: Update google-calendar service to use OAuth-based CalDAV.
Matthew Barnes [Thu, 21 Nov 2013 14:45:15 +0000 (09:45 -0500)]
UOA: Update google-calendar service to use OAuth-based CalDAV.

10 years agolibebackend: Use g_debug() for normal operation message instead of g_print()
Colin Walters [Thu, 21 Nov 2013 13:59:56 +0000 (08:59 -0500)]
libebackend: Use g_debug() for normal operation message instead of g_print()

I'm trying to reduce log spew from simply booting.  Now that dbus
connects bus-activated services to the journal, this g_print() is now
visible.  Demote it to g_debug().

10 years agoBump minimum libgweather requirement.
Matthew Barnes [Wed, 20 Nov 2013 13:13:56 +0000 (08:13 -0500)]
Bump minimum libgweather requirement.

Recent changes began using symbols introduced in libgweather 3.8 while
the minimum build requirement remained at 3.5.  Update the requirement.

10 years agoTamil Translations Updated
Shantha kumar [Wed, 20 Nov 2013 08:58:15 +0000 (14:28 +0530)]
Tamil Translations Updated

10 years agoMake the Weather calendar work after changes for bug #712388
Milan Crha [Mon, 18 Nov 2013 20:16:47 +0000 (21:16 +0100)]
Make the Weather calendar work after changes for bug #712388

10 years agoBump AddressBook service name for new cursor API.
Matthew Barnes [Sun, 17 Nov 2013 16:42:18 +0000 (11:42 -0500)]
Bump AddressBook service name for new cursor API.

10 years agoUpdate API documentation.
Matthew Barnes [Sun, 17 Nov 2013 16:40:50 +0000 (11:40 -0500)]
Update API documentation.

10 years agoRemove undefined $(GNOME_INCLUDEDIR) / $(GTK_INCLUDEDIR).
Matthew Barnes [Sun, 17 Nov 2013 16:17:00 +0000 (11:17 -0500)]
Remove undefined $(GNOME_INCLUDEDIR) / $(GTK_INCLUDEDIR).

10 years agoRemove --enable-nntp configure option.
Matthew Barnes [Sun, 17 Nov 2013 16:14:20 +0000 (11:14 -0500)]
Remove --enable-nntp configure option.

NNTP adds no extra dependencies; there's no need for it to be optional.

10 years agoMakefile.am cleanups.
Matthew Barnes [Sun, 17 Nov 2013 15:53:53 +0000 (10:53 -0500)]
Makefile.am cleanups.

- Remove trailing tabs.
- Add terminators to multi-line lists.

10 years agoPost-release version bump.
Matthew Barnes [Sun, 17 Nov 2013 14:41:31 +0000 (09:41 -0500)]
Post-release version bump.

10 years agoNEWS update for 3.11.2 release.
Matthew Barnes [Sun, 17 Nov 2013 14:03:27 +0000 (09:03 -0500)]
NEWS update for 3.11.2 release.

10 years agoFix distcheck error.
Matthew Barnes [Sun, 17 Nov 2013 14:21:11 +0000 (09:21 -0500)]
Fix distcheck error.

10 years agoUpdated Spanish translation
Daniel Mustieles [Sat, 16 Nov 2013 17:17:41 +0000 (18:17 +0100)]
Updated Spanish translation

10 years agoCamelIMAPXStore: Chain up in the notify() method.
Matthew Barnes [Sat, 16 Nov 2013 14:38:02 +0000 (09:38 -0500)]
CamelIMAPXStore: Chain up in the notify() method.

CamelObject provides a safety net for this method now.

10 years agoCamelOfflineStore: Chain up in the notify() method.
Matthew Barnes [Sat, 16 Nov 2013 14:36:49 +0000 (09:36 -0500)]
CamelOfflineStore: Chain up in the notify() method.

CamelObject provides a safety net for this method now.

10 years agoCamelObject: Implement the notify() method.
Matthew Barnes [Sat, 16 Nov 2013 14:34:13 +0000 (09:34 -0500)]
CamelObject: Implement the notify() method.

Just a placeholder so subclasses can safely chain up, since GObjectClass
does not implement its own notify() method.

10 years agoEBookClient: Fix arrays passed to e_book_client_get_cursor() to be constant.
Tristan Van Berkom [Sat, 16 Nov 2013 07:35:07 +0000 (16:35 +0900)]
EBookClient: Fix arrays passed to e_book_client_get_cursor() to be constant.

Minor API fixup, the arrays passed to e_book_client_get_cursor() should
be const.

10 years agoAddress some compiler warnings and Coverity scan issues in a different way
Milan Crha [Fri, 15 Nov 2013 20:06:44 +0000 (21:06 +0100)]
Address some compiler warnings and Coverity scan issues in a different way

The previous Coverity scan commit used not so great way of dealing
with certain warnings, which also did not help with compiler warnings,
which this commit tries to change.

10 years agoUpdated POTFILES.in
Piotr Drąg [Fri, 15 Nov 2013 19:02:46 +0000 (20:02 +0100)]
Updated POTFILES.in

10 years agoSwitch from g_timeout_add to g_timeout_add_seconds
Alexandre Franke [Thu, 14 Nov 2013 17:49:15 +0000 (18:49 +0100)]
Switch from g_timeout_add to g_timeout_add_seconds

https://bugzilla.gnome.org/show_bug.cgi?id=712244

10 years agoDisable Nagle algorithm for IMAP connections.
Matthew Barnes [Thu, 14 Nov 2013 13:47:41 +0000 (08:47 -0500)]
Disable Nagle algorithm for IMAP connections.

I think I understand why this was done for the old CamelTcpStream:
the Nagle algorithm interferes with the pipelining of IMAP commands.
I do seem to notice some improved responsiveness after disabling this.
Tried to provide a clearer explanation in the code this time.

10 years agoEBookBackendFile: Reduce uneeded warnings in server logs
Tristan Van Berkom [Thu, 14 Nov 2013 08:40:59 +0000 (17:40 +0900)]
EBookBackendFile: Reduce uneeded warnings in server logs

With this patch, only unknown errors, which the user is not expected
to handle or recover from (such as internal SQLite errors or file system
errors), are warned about in the stderr.

10 years agotest-client-custom-summary.c: Added exact email match test.
Tristan Van Berkom [Wed, 13 Nov 2013 10:08:31 +0000 (19:08 +0900)]
test-client-custom-summary.c: Added exact email match test.

10 years agotest-sqlite-cursor-set-sexp.c: Added test.
Tristan Van Berkom [Mon, 11 Nov 2013 04:37:28 +0000 (13:37 +0900)]
test-sqlite-cursor-set-sexp.c: Added test.

New test steps the cursor after setting a search expression.

10 years agoCamelSession: Remove "network-available" property.
Matthew Barnes [Thu, 14 Nov 2013 04:37:36 +0000 (23:37 -0500)]
CamelSession: Remove "network-available" property.

Too simplistic.

Use CamelNetworkService's "host-reachable" property instead.

10 years agoCamelNetworkService: Disconnect as needed.
Matthew Barnes [Thu, 14 Nov 2013 05:52:47 +0000 (00:52 -0500)]
CamelNetworkService: Disconnect as needed.

Disconnect immediately if the host is not reachable.

10 years agoCamelOfflineStore: Prefer service's "host-reachable" status.
Matthew Barnes [Thu, 14 Nov 2013 04:30:37 +0000 (23:30 -0500)]
CamelOfflineStore: Prefer service's "host-reachable" status.

For some stores, the remote host machine may still not be reachable even
if the network is available.  Common example is a host machine requiring
a virtual private network connection to reach.

If the CamelOfflineStore is also a CamelNetworkService, and the service
indicates the remote host is not reachable, then always return FALSE in
camel_offline_store_get_online().

Also emit "notify::online" along with "notify::host-reachable".

10 years agoRemove "CamelDisco" classes from documentation TOC.
Matthew Barnes [Thu, 14 Nov 2013 04:40:56 +0000 (23:40 -0500)]
Remove "CamelDisco" classes from documentation TOC.

10 years agoRemove CamelDisco{Diary,Folder,Store}.
Matthew Barnes [Wed, 13 Nov 2013 23:09:19 +0000 (18:09 -0500)]
Remove CamelDisco{Diary,Folder,Store}.

These classes are no longer used.

10 years agoNNTP: Move from 'disco' to 'offline' base classes.
Matthew Barnes [Wed, 13 Nov 2013 22:34:02 +0000 (17:34 -0500)]
NNTP: Move from 'disco' to 'offline' base classes.

NNTP was the last user of the old unmaintained 'CamelDisco' classes.

10 years agoECollectionBackend: Implement "proxy-resolver" property.
Matthew Barnes [Wed, 13 Nov 2013 21:16:09 +0000 (16:16 -0500)]
ECollectionBackend: Implement "proxy-resolver" property.

Defined the property but forgot to implement the "get" method.

10 years agoUpdated POTFILES.in
Piotr Drąg [Wed, 13 Nov 2013 20:10:49 +0000 (21:10 +0100)]
Updated POTFILES.in

10 years agoMigrated org.gnome.evolution.shell.network-config.gschema.xml.in to data/ directory.
Tristan Van Berkom [Wed, 13 Nov 2013 12:09:34 +0000 (21:09 +0900)]
Migrated org.gnome.evolution.shell.network-config.gschema.xml.in to data/ directory.

The gsettings schemas need to all be stored and installed from the data/
directory, this is because we compile them locally in-tree and set the
GSETTINGS_SCHEMA_DIR to a local directory in order to run our tests
at make check time (tests dont work without this, instead GSettings wants
to abort for a missing schema).

10 years agoFixing cursor example build.
Tristan Van Berkom [Wed, 13 Nov 2013 08:41:19 +0000 (17:41 +0900)]
Fixing cursor example build.

Enabled warnings in the Makefile.am and fixed them.

10 years agoFix/mute issues found by Coverity scan
Milan Crha [Wed, 13 Nov 2013 08:40:46 +0000 (09:40 +0100)]
Fix/mute issues found by Coverity scan

This makes the code free of Coverity scan issues, except of the doc/
folder. 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.

10 years agoUpdate libebook-contacts::test-untyped-phones test
Milan Crha [Tue, 12 Nov 2013 13:28:21 +0000 (14:28 +0100)]
Update libebook-contacts::test-untyped-phones test

The test_business has been disabled, because it was failing, but it
was failing even in time of 2.28. Looking briefly into RFC 2426
shows that the 'VOICE' is a default 'TEL' type, but there is no
indication that the left-alone 'WORK' is supposed to be the same
as 'WORK,VOICE' type. Due to this are done these changes.

10 years agoFix 'may be used uninitialized' warnings found by cppcheck
Fabiano Fidêncio [Tue, 12 Nov 2013 12:28:20 +0000 (13:28 +0100)]
Fix 'may be used uninitialized' warnings found by cppcheck

10 years agoSuppress a false-positive cppcheck memleak warning
Vadim Rutkovsky [Tue, 12 Nov 2013 12:27:44 +0000 (13:27 +0100)]
Suppress a false-positive cppcheck memleak warning

Make sure you run cppcheck with ''inline-suppr" to take it into effect.

10 years agoUpdated Malayalam Translation
Anish A [Tue, 12 Nov 2013 08:28:22 +0000 (13:58 +0530)]
Updated Malayalam Translation

10 years agoUpdated Greek translation
Dimitris Spingos [Thu, 7 Nov 2013 08:10:34 +0000 (10:10 +0200)]
Updated Greek translation

10 years agoimapx_untagged_fetch: Fix a possible divide-by-zero error.
Matthew Barnes [Wed, 6 Nov 2013 12:51:49 +0000 (07:51 -0500)]
imapx_untagged_fetch: Fix a possible divide-by-zero error.

10 years agoCamelService: Make "password" property thread-safe.
Matthew Barnes [Tue, 5 Nov 2013 16:26:02 +0000 (11:26 -0500)]
CamelService: Make "password" property thread-safe.

New functions:

  camel_service_dup_password()

10 years agoCamelService: Make "display-name" property thread-safe.
Matthew Barnes [Tue, 5 Nov 2013 16:11:35 +0000 (11:11 -0500)]
CamelService: Make "display-name" property thread-safe.

New functions:

  camel_service_dup_display_name()

10 years agoAdd missing CFLAGS/LIBS in the tests/ Makefile.am-s
Milan Crha [Tue, 5 Nov 2013 21:55:40 +0000 (22:55 +0100)]
Add missing CFLAGS/LIBS in the tests/ Makefile.am-s

If the libical is installed in a different prefix than the one shared
by other CFLAGS, then the test compilation breaks due to failed search
for the <libical/ical.h> include file.

10 years agoUpdated Spanish translation
Daniel Mustieles [Tue, 5 Nov 2013 17:23:25 +0000 (18:23 +0100)]
Updated Spanish translation

10 years agocamel-maildir-summary.h: Remove unused enum.
Matthew Barnes [Tue, 17 Sep 2013 16:11:40 +0000 (12:11 -0400)]
camel-maildir-summary.h: Remove unused enum.

10 years agoCamelNetworkService: Return GIOStream instead of CamelStream.
Matthew Barnes [Sun, 3 Nov 2013 13:50:33 +0000 (08:50 -0500)]
CamelNetworkService: Return GIOStream instead of CamelStream.

Similar to recent CamelDataCache changes.  Instead of wrapping a TCP
connection GIOStream in a CamelStream, return the GIOStream directly
and let callers wrap it if they need to with camel_stream_new().

10 years agoCamelIMAPXFolder: Fix reference leak.
Matthew Barnes [Sun, 3 Nov 2013 22:26:12 +0000 (17:26 -0500)]
CamelIMAPXFolder: Fix reference leak.

10 years agoRemove unused camel_read/write_socket().
Matthew Barnes [Sun, 3 Nov 2013 18:02:23 +0000 (13:02 -0500)]
Remove unused camel_read/write_socket().

10 years agoAdd the other Camel services to API documentation.
Matthew Barnes [Sun, 3 Nov 2013 15:28:32 +0000 (10:28 -0500)]
Add the other Camel services to API documentation.

For developer convenience, and to help me stay disciplined about writing
API documentation... even in provider modules.

10 years agoCamelDataCache: Return GIOStream instead of CamelStream.
Matthew Barnes [Sat, 2 Nov 2013 13:10:33 +0000 (09:10 -0400)]
CamelDataCache: Return GIOStream instead of CamelStream.

Another step toward dropping CamelStream.  Instead of wrapping a local
file GIOStream in a CamelStream, return the GIOStream directly and let
callers wrap it if they need to with camel_stream_new().

10 years agoLimit usage of legacy CamelObject class.
Matthew Barnes [Fri, 1 Nov 2013 15:50:17 +0000 (11:50 -0400)]
Limit usage of legacy CamelObject class.

Only CamelFolder and CamelSession utilize what's left in CamelObject,
which is just binary state files to persistently store a flag or two.

All other Camel classes should inherit directly from GObject.  This
requires a libcamel soname bump since the class structure sizes will
decrease by two pointers (no state_read() and state_write() methods).

10 years agoBug 710989 - Replace most uses of strcpy()
Murray Cumming [Fri, 1 Nov 2013 14:32:23 +0000 (10:32 -0400)]
Bug 710989 - Replace most uses of strcpy()

Because strcpy() can overwrite its buffer.  As with the previous
replacement of sprintf(), some of these could probably be replaced by
g_strdup(), but there could be some performance impact.

This also replaces a use of ICU's austrcpy() with austrncpy().

10 years agoUpdated Galician translations
Fran Diéguez [Fri, 1 Nov 2013 12:07:43 +0000 (13:07 +0100)]
Updated Galician translations

10 years agoAdd --disable-examples to DISTCHECK_CONFIGURE_FLAGS.
Matthew Barnes [Fri, 1 Nov 2013 01:09:30 +0000 (21:09 -0400)]
Add --disable-examples to DISTCHECK_CONFIGURE_FLAGS.

10 years agoConvert IMAPX back to a loadable module.
Matthew Barnes [Fri, 1 Nov 2013 01:00:37 +0000 (21:00 -0400)]
Convert IMAPX back to a loadable module.

Since evolution-kolab is no longer active, convert the IMAPX provider
back to a loadable module so that necessary changes can be made without
affecting libcamel's public API.

The IMAPX chapter of Camel's API documentation will remain, however.

10 years agoe-data-server-util.h: Fix a couple typos.
Matthew Barnes [Tue, 29 Oct 2013 19:07:19 +0000 (15:07 -0400)]
e-data-server-util.h: Fix a couple typos.

10 years agoRemove duplicate "named timeout" docs.
Matthew Barnes [Tue, 29 Oct 2013 16:30:04 +0000 (12:30 -0400)]
Remove duplicate "named timeout" docs.

Oopsie.

10 years agoBug 710808 - Name all the timeouts added with g_timeout_add()
Bastien Nocera [Tue, 29 Oct 2013 16:18:32 +0000 (12:18 -0400)]
Bug 710808 - Name all the timeouts added with g_timeout_add()

10 years agoAdd macros/functions to help name timeouts.
Matthew Barnes [Tue, 29 Oct 2013 15:37:47 +0000 (11:37 -0400)]
Add macros/functions to help name timeouts.

The macros form a name for the timeout GSource implicitly.

New macros:

  e_named_timeout_add()
  e_named_timeout_add_full()
  e_named_timeout_add_seconds()
  e_named_timeout_add_seconds_full()

New functions (called by the macros):

  e_timeout_add_with_name()
  e_timeout_add_seconds_with_name()

10 years agoSupport migrating merged GConf trees.
Matthew Barnes [Mon, 28 Oct 2013 17:44:00 +0000 (13:44 -0400)]
Support migrating merged GConf trees.

Check for and parse a ~/.gconf/%gconf-tree.xml file during migration.
This is mainly for Debian, which I think accidentally merged some users'
GConf trees at some point.

This also adds a command-line program (evolution-scan-gconf-tree-xml),
which parses an arbitrary %gconf-tree.xml file as a recovery measure.

10 years agoCamelIMAPXStatusResponse: Don't assume all values are present.
Matthew Barnes [Thu, 12 Sep 2013 22:23:30 +0000 (18:23 -0400)]
CamelIMAPXStatusResponse: Don't assume all values are present.

Unsolicited STATUS responses may not include all the values that we
normally request in a STATUS command, so just update the mailbox with
the values that are present in the response.

10 years agoCamelIMAPXStoreSummary cleanups.
Matthew Barnes [Thu, 12 Sep 2013 15:58:39 +0000 (11:58 -0400)]
CamelIMAPXStoreSummary cleanups.

CamelIMAPXStoreSummary has no public or private members, so no reason
to cast pointers to that type.  Stick with plain (CamelStoreSummary *).

Removed functions:

  camel_imapx_store_summary_new()

10 years agoHack around default Courier namespaces.
Matthew Barnes [Thu, 12 Sep 2013 13:32:04 +0000 (09:32 -0400)]
Hack around default Courier namespaces.

By default, Courier lists (("INBOX." ".")) for its personal namespaces,
which excludes INBOX itself.  This causes problems for us so check for
it specifically and hack around it where necessary.

10 years agoCamelIMAPXStore: Remove public 'dir_sep' member.
Matthew Barnes [Wed, 11 Sep 2013 21:19:05 +0000 (17:19 -0400)]
CamelIMAPXStore: Remove public 'dir_sep' member.

No longer used.

10 years agoRemove CamelIMAPXStoreNamespace.
Matthew Barnes [Wed, 11 Sep 2013 21:15:50 +0000 (17:15 -0400)]
Remove CamelIMAPXStoreNamespace.

No longer used.

10 years agoRemove CamelIMAPXNamespaceList.
Matthew Barnes [Wed, 11 Sep 2013 21:13:52 +0000 (17:13 -0400)]
Remove CamelIMAPXNamespaceList.

No longer used.

10 years agoRemove camel_imapx_namespace_list_clear().
Matthew Barnes [Wed, 11 Sep 2013 21:10:02 +0000 (17:10 -0400)]
Remove camel_imapx_namespace_list_clear().

No longer used.

10 years agoCamelIMAPXStoreSummary: Remove all public members.
Matthew Barnes [Wed, 11 Sep 2013 21:04:44 +0000 (17:04 -0400)]
CamelIMAPXStoreSummary: Remove all public members.

The 'version' member was not used for anything and we no longer use the
'namespaces' member.  Only the CamelIMAPXServer knows about server-side
mailbox namespaces.  That information is not relevant when offline, and
therefore doesn't need to be cached.

This also removes imapx_fabricate_old_namespace_list() and similar hacks
in CamelIMAPXServer.

10 years agoRemove camel_imapx_store_summary_namespace_find_by_mailbox().
Matthew Barnes [Wed, 11 Sep 2013 20:31:04 +0000 (16:31 -0400)]
Remove camel_imapx_store_summary_namespace_find_by_mailbox().

No longer used.

10 years agoRemove camel_imapx_store_summary_namespace_find_by_path().
Matthew Barnes [Wed, 11 Sep 2013 14:28:39 +0000 (10:28 -0400)]
Remove camel_imapx_store_summary_namespace_find_by_path().

No longer used.

10 years agoRemove camel_imapx_store_summary_path_to_mailbox().
Matthew Barnes [Wed, 11 Sep 2013 14:24:41 +0000 (10:24 -0400)]
Remove camel_imapx_store_summary_path_to_mailbox().

No longer used.

10 years agoRemove camel_imapx_store_summary_mailbox_from_path().
Matthew Barnes [Wed, 11 Sep 2013 12:32:17 +0000 (08:32 -0400)]
Remove camel_imapx_store_summary_mailbox_from_path().

No longer used.

10 years agoRemove imapx_concat().
Matthew Barnes [Tue, 10 Sep 2013 20:11:08 +0000 (16:11 -0400)]
Remove imapx_concat().

No longer used.

10 years agoCamelIMAPXStoreSummary: Stop saving namespace information.
Matthew Barnes [Wed, 11 Sep 2013 20:52:31 +0000 (16:52 -0400)]
CamelIMAPXStoreSummary: Stop saving namespace information.

We don't need namespace information when operating offline.

10 years agoCamelIMAPXFolder: Remove public "on server" members.
Matthew Barnes [Sun, 8 Sep 2013 15:01:55 +0000 (11:01 -0400)]
CamelIMAPXFolder: Remove public "on server" members.

No longer used; the information is now in CamelIMAPXMailbox.

10 years agoRemove camel_imapx_list_response_get_summary_flags().
Matthew Barnes [Thu, 29 Aug 2013 19:04:03 +0000 (15:04 -0400)]
Remove camel_imapx_list_response_get_summary_flags().

No longer used.

10 years agoRemove camel_imapx_folder_process_status_response().
Matthew Barnes [Fri, 30 Aug 2013 20:16:01 +0000 (16:16 -0400)]
Remove camel_imapx_folder_process_status_response().

No longer used.

10 years agoStore QUOTAROOT information in CamelIMAPXMailbox.
Matthew Barnes [Mon, 2 Sep 2013 12:55:22 +0000 (08:55 -0400)]
Store QUOTAROOT information in CamelIMAPXMailbox.

Keep QUOTAROOT information in the named CamelIMAPXMailbox instead of
CamelIMAPXFolder.  Also remove CamelIMAPXFolder's "quota-root-names"
property, since it's no longer used.

Removed functions:

  camel_imapx_folder_dup_quota_root_names()
  camel_imapx_folder_set_quota_root_names()

10 years agocamel_imapx_store_summary_add_from_mailbox: Take a mailbox object.
Matthew Barnes [Wed, 11 Sep 2013 14:44:31 +0000 (10:44 -0400)]
camel_imapx_store_summary_add_from_mailbox: Take a mailbox object.

10 years agoCamelIMAPXServer: Support the SPECIAL-USE capability.
Matthew Barnes [Wed, 4 Sep 2013 01:35:01 +0000 (21:35 -0400)]
CamelIMAPXServer: Support the SPECIAL-USE capability.

http://tools.ietf.org/html/rfc6154

Camel does not yet provide an API for applications to utilize this
information, but we can still capture it in a CamelIMAPXMailbox.

I'm still pondering a suitable application-facing API for this.  I'd
prefer to avoid stuffing this into CamelFolderInfoFlags if I can, as
Camel already overuses / abuses flag values as it is.

10 years agoCamelIMAPXServer: Support the LIST-STATUS capability.
Matthew Barnes [Tue, 3 Sep 2013 20:09:12 +0000 (16:09 -0400)]
CamelIMAPXServer: Support the LIST-STATUS capability.

http://tools.ietf.org/html/rfc5819

Now that untagged LIST and STATUS responses are processed independently
of any tagged commands in progress, utilizing LIST-STATUS is trivial.

10 years agoCamelIMAPXServer: Support the NOTIFY capability.
Matthew Barnes [Sat, 13 Jul 2013 22:49:10 +0000 (18:49 -0400)]
CamelIMAPXServer: Support the NOTIFY capability.

http://tools.ietf.org/html/rfc5465

NOTIFY replaces IDLE when available.

10 years agoCamelIMAPXServer: LIST a mailbox after creating it.
Matthew Barnes [Wed, 11 Sep 2013 17:04:31 +0000 (13:04 -0400)]
CamelIMAPXServer: LIST a mailbox after creating it.

Listing the mailbox will trigger our untagged LIST handler.  This
simulates being notified of a newly-created mailbox, so we can just
let the callback functions handle the bookkeeping.

10 years agoCamelIMAPXFolder: Finish camel_imapx_folder_list_mailbox().
Matthew Barnes [Wed, 4 Sep 2013 16:45:44 +0000 (12:45 -0400)]
CamelIMAPXFolder: Finish camel_imapx_folder_list_mailbox().

Implement the part where we actually issue the LIST command.

10 years agoCamelIMAPXStore: Simplify get_folder_info_offline().
Matthew Barnes [Tue, 10 Sep 2013 20:08:40 +0000 (16:08 -0400)]
CamelIMAPXStore: Simplify get_folder_info_offline().

Forget about namespaces when offline and just match folder paths.

10 years agoRework camel_imapx_server_list().
Matthew Barnes [Wed, 7 Aug 2013 08:18:06 +0000 (10:18 +0200)]
Rework camel_imapx_server_list().

Repurpose camel_imapx_server_list() to create/update CamelIMAPXMailbox
instances within CamelIMAPXServer.  This function no longer returns an
array of CamelIMAPXListResponses, but simply a success/failure boolean.

Also, this function no longer takes an extension string parameter.  If
the server names "LIST-EXTENDED" in its CAPABILITY response, then this
function automatically issues an extended LIST command:

    LIST "" $PATTERN RETURN (CHILDREN SUBSCRIBED)

Otherwise it issues a LIST command followed by an LSUB command:

    LIST "" $PATTERN
    LSUB "" $PATTERN

After camel_imapx_server_list() returns, the caller can then pass the
same $PATTERN string to camel_imapx_server_list_mailboxes() to obtain
an up-to-date list of CamelIMAPXMailbox instances that match $PATTERN.

Also as part of this, we now explicitly only list mailboxes in personal
namespaces.  Listing mailboxes in shared or other users namespaces is a
future enhancement since CamelStore does not yet have a suitable API to
support this properly.

10 years agoCamelIMAPXServer: Emit mailbox-select/mailbox-closed signals.
Matthew Barnes [Fri, 13 Sep 2013 18:52:30 +0000 (14:52 -0400)]
CamelIMAPXServer: Emit mailbox-select/mailbox-closed signals.

10 years agoCamelIMAPXServer: Convert API to CamelIMAPXMailbox.
Matthew Barnes [Tue, 3 Sep 2013 11:05:22 +0000 (07:05 -0400)]
CamelIMAPXServer: Convert API to CamelIMAPXMailbox.

Convert CamelIMAPXServer to primarily use CamelIMAPXMailbox instead of
CamelIMAPXFolder, the idea being to keep all the Camel-specific policy
and limitations relegated to CamelIMAPXStore and CamelIMAPXFolder, and
just have CamelIMAPXServer be a pure IMAP client implementation.

This is a huge commit which I don't like doing, but CamelIMAPXServer,
CamelIMAPXCommand and CamelIMAPXJob are so tightly intertwined that I
was unable to split this into smaller steps.

Added functions:

  camel_imapx_command_ref_mailbox()
  camel_imapx_job_has_mailbox()
  camel_imapx_job_ref_mailbox()
  camel_imapx_job_set_mailbox()
  camel_imapx_server_create_mailbox()
  camel_imapx_server_delete_mailbox()
  camel_imapx_server_rename_mailbox()
  camel_imapx_server_subscribe_mailbox()
  camel_imapx_server_unsubscribe_mailbox()

Removed functions:

  camel_imapx_job_has_folder()
  camel_imapx_job_ref_folder()
  camel_imapx_job_set_mailbox()
  camel_imapx_server_manage_subscription()
  camel_imapx_server_create_folder()
  camel_imapx_server_delete_folder()
  camel_imapx_server_rename_folder()

Modified function signatures:

  camel_imapx_command_new()
  camel_imapx_job_matches()
  camel_imapx_server_refresh_info()
  camel_imapx_server_sync_changes()
  camel_imapx_server_expunge()
  camel_imapx_server_fetch_messages()
  camel_imapx_server_noop()
  camel_imapx_server_get_message()
  camel_imapx_server_copy_message()
  camel_imapx_server_append_message()
  camel_imapx_server_sync_message()
  camel_imapx_server_manage_subscription()
  camel_imapx_server_update_quota_info()
  camel_imapx_server_uid_search()
  imapx_parse_status()

10 years agoCamelIMAPXCommand: Add '%m' format character for mailbox names.
Matthew Barnes [Thu, 12 Sep 2013 12:02:30 +0000 (08:02 -0400)]
CamelIMAPXCommand: Add '%m' format character for mailbox names.

New format character '%m' for UTF-8 mailbox names.  Intended only
for CREATE and RENAME commands which take a user-provided mailbox
name.  Always prefer '%M' if a CamelIMAPXMailbox is available.

10 years agoCamelIMAPXCommand: Replace '%f' format character with '%M'.
Matthew Barnes [Mon, 2 Sep 2013 19:13:43 +0000 (15:13 -0400)]
CamelIMAPXCommand: Replace '%f' format character with '%M'.

Whereas '%f' took a CamelFolder argument and had to be converted to an
IMAP mailbox name (with the correct separator character), '%M' takes a
CamelIMAPXMailbox which already has the IMAP mailbox name.

10 years agoCamelIMAPXStore: Add imapx_store_process_mailbox_status().
Matthew Barnes [Fri, 30 Aug 2013 20:13:08 +0000 (16:13 -0400)]
CamelIMAPXStore: Add imapx_store_process_mailbox_status().

Processes a CamelIMAPXMailbox by adding relevant information to the
CamelIMAPXFolder, and invalidating the local cache if a UIDVALIDITY
change is detected.

10 years agoCamelIMAPXStore: Add imapx_store_process_mailbox_attributes().
Matthew Barnes [Thu, 29 Aug 2013 14:37:16 +0000 (10:37 -0400)]
CamelIMAPXStore: Add imapx_store_process_mailbox_attributes().

Processes a CamelIMAPXMailbox by adding relevant information to the
CamelStoreSummary, and emitting the appropriate CamelStore signals.

10 years agoCamelIMAPXStore: Add imapx_store_add_mailbox_to_folder().
Matthew Barnes [Thu, 29 Aug 2013 13:45:37 +0000 (09:45 -0400)]
CamelIMAPXStore: Add imapx_store_add_mailbox_to_folder().

Called in response to CamelIMAPXServer::mailbox-created signals.

10 years agoCamelIMAPXStore: Rough in handlers for CamelIMAPXServer signals.
Matthew Barnes [Wed, 28 Aug 2013 17:12:30 +0000 (13:12 -0400)]
CamelIMAPXStore: Rough in handlers for CamelIMAPXServer signals.

10 years agoCamelIMAPXFolder: Add camel_imapx_folder_list_mailbox().
Matthew Barnes [Tue, 3 Sep 2013 19:08:52 +0000 (15:08 -0400)]
CamelIMAPXFolder: Add camel_imapx_folder_list_mailbox().

Ensures that a folder's "mailbox" property is set, going so far as to
issue a LIST command if necessary (but should be a rarely needed last
resort).

Note the LIST command part of the function is currently unfinished.
Need to rework LIST command handling in CamelIMAPXServer first.