platform/upstream/evolution-data-server.git
14 years agoUpdated Galician translations
Fran Diéguez [Tue, 13 Jul 2010 00:41:50 +0000 (02:41 +0200)]
Updated Galician translations

14 years agoPost-release version bump.
Matthew Barnes [Mon, 12 Jul 2010 22:48:40 +0000 (18:48 -0400)]
Post-release version bump.

14 years agoNEWS update for 2.31.5 release.
Matthew Barnes [Mon, 12 Jul 2010 22:28:55 +0000 (18:28 -0400)]
NEWS update for 2.31.5 release.

14 years agoBug #618938 - Crash when reading calendar acknowledgement message
Milan Crha [Mon, 12 Jul 2010 14:44:25 +0000 (16:44 +0200)]
Bug #618938 - Crash when reading calendar acknowledgement message

14 years agoBug #623936 - 75 second delay when creating new DAV entries in Zimbra
Milan Crha [Mon, 12 Jul 2010 14:16:32 +0000 (16:16 +0200)]
Bug #623936 - 75 second delay when creating new DAV entries in Zimbra

14 years agoFix another g_propagate_error() runtime warning.
Matthew Barnes [Mon, 12 Jul 2010 11:59:20 +0000 (07:59 -0400)]
Fix another g_propagate_error() runtime warning.

14 years agoimapx: Ensure imapx_stream_fill() sets the error on zero-sized read.
David Woodhouse [Mon, 12 Jul 2010 11:46:01 +0000 (12:46 +0100)]
imapx: Ensure imapx_stream_fill() sets the error on zero-sized read.

We treat an empty read as an error, since we should never be here unless
we're either in the middle of reading a response, or poll() says the fd
is readable. Before commit 46938c348 (the conversion to GError), we'd set
a generic 'IO Error' exception in camel_imapx_stream_token() when
imapx_stream_fill() returned -1 to indicate an error. But now we don't
do that any more, so imapx_stream_fill() needs to reliably set the GError.

Otherwise we end up in an endless loop in imapx_step().

14 years agoFix runtime warning in camel_filter_driver_flush().
Matthew Barnes [Mon, 12 Jul 2010 11:49:58 +0000 (07:49 -0400)]
Fix runtime warning in camel_filter_driver_flush().

Only propagate the error if there's an error to propagate.

14 years agoImprove error handling in CamelStreamBuffer::read().
Matthew Barnes [Mon, 12 Jul 2010 11:05:48 +0000 (07:05 -0400)]
Improve error handling in CamelStreamBuffer::read().

If we managed to successfully read some data before camel_stream_read()
failed, discard the GError and return the number of bytes successfully
read.  If camel_stream_read() failed immediately, propagate the GError
and return -1.

14 years agoimapx: camel_imapx_stream_astring() returns 0 on success.
David Woodhouse [Mon, 12 Jul 2010 03:11:38 +0000 (04:11 +0100)]
imapx: camel_imapx_stream_astring() returns 0 on success.

14 years agoUpdate API documentation.
Matthew Barnes [Mon, 12 Jul 2010 02:19:33 +0000 (22:19 -0400)]
Update API documentation.

14 years agoCoding style and whitespace cleanup.
Matthew Barnes [Sun, 11 Jul 2010 17:22:13 +0000 (13:22 -0400)]
Coding style and whitespace cleanup.

14 years ago[i18n] Updated German translation
Mario Blättermann [Sun, 11 Jul 2010 16:36:33 +0000 (18:36 +0200)]
[i18n] Updated German translation

14 years agoUpdated Norwegian bokmål translation
Kjartan Maraas [Sun, 11 Jul 2010 15:44:10 +0000 (17:44 +0200)]
Updated Norwegian bokmål translation

14 years agoCoding style and whitespace cleanup.
Matthew Barnes [Sun, 11 Jul 2010 15:34:36 +0000 (11:34 -0400)]
Coding style and whitespace cleanup.

14 years agoimapx: Avoid running FETCH_NEW_MESSAGES and REFRESH_INFO jobs simultaneously
David Woodhouse [Sun, 11 Jul 2010 14:11:17 +0000 (15:11 +0100)]
imapx: Avoid running FETCH_NEW_MESSAGES and REFRESH_INFO jobs simultaneously

There are various places where we interpret FETCH results and use
imapx_match_active_job to find the current job, which will behave badly
if there are two jobs which could potentially be responsible for the FETCH.

In particular, this was causing a problem when we triggered a fetch of new
messages from select_done(), and that command was submitted at the same time
as a refresh_info command to fetch all flags. The server (Dovecot) was
returning all the untagged FETCH results before either completion line,
and all the flags were getting "assigned" to the fetch_new_messages job,
causing a bunch of 'g_array_append_vals: assertion `array' failed' warnings,
and all messages to disappear because the refresh_info job didn't see them.

14 years agoUpdated Norwegian bokmål translation
Kjartan Maraas [Sun, 11 Jul 2010 13:42:24 +0000 (15:42 +0200)]
Updated Norwegian bokmål translation

14 years agoimapx: Fix handling of return from camel_imapx_stream_text()
David Woodhouse [Sun, 11 Jul 2010 11:36:19 +0000 (12:36 +0100)]
imapx: Fix handling of return from camel_imapx_stream_text()

It's another of those functions that return 0 for success.

14 years agoimapx: More improvements to server unseen count tracking
David Woodhouse [Sun, 11 Jul 2010 11:17:13 +0000 (12:17 +0100)]
imapx: More improvements to server unseen count tracking

We're using the unseen count as part of our check for when things have
changed on the server (or when QRESYNC has gone wrong), and we need to
rescan all flags. But the server doesn't *tell* us about changes to the
unseen count, like it does for the total count of messages. So we have to
be more careful about tracking it -- especially since the server doesn't
even tell us in SELECT, and we can't issue STATUS to find it out when the
folder is selected.

One place that it was getting out of sync was when the server notified us
about new messages in SELECT, which weren't there when we last issued STATUS.
For messages with a UID equal to or higher than what we thought was the
folder's UIDNEXT, we also have to update the unseen count.

So far, the _only_ time we've hit the QRESYNC sanity check which triggers
a full rescan has been due to this kind of cosmetic unseen count discrepancy.
It's half tempting to disable that check in the QRESYNC sanity check, but
actually it's useful to get it right for the legacy servers too, because it
might cause us to miss updates if we get out of sync.

14 years agonntp: Fix two more 'returns FALSE on error' vs. 'returns 0 on success' errors
David Woodhouse [Sun, 11 Jul 2010 10:56:32 +0000 (11:56 +0100)]
nntp: Fix two more 'returns FALSE on error' vs. 'returns 0 on success' errors

We really need to start being consistent about this.

Pass the GError pointer through to camel_folder_summary_save_to_db()
from nntp_folder_sync() too... although it seems to be NULL a lot of the
time anyway, but that's the fault of our caller. No need to compound it.

14 years agoFix some linker issues.
Matthew Barnes [Sun, 11 Jul 2010 03:30:06 +0000 (23:30 -0400)]
Fix some linker issues.

14 years agoBug 624018 - Fix error handling in groupwise_get_folder()
Matthew Barnes [Sat, 10 Jul 2010 12:16:15 +0000 (08:16 -0400)]
Bug 624018 - Fix error handling in groupwise_get_folder()

14 years agoUpdated Spanish translation
Jorge González [Sat, 10 Jul 2010 08:36:48 +0000 (10:36 +0200)]
Updated Spanish translation

14 years agoBug #623988 - build failure in git/master.
Bharath Acharya [Sat, 10 Jul 2010 04:24:29 +0000 (09:54 +0530)]
Bug #623988 - build failure in git/master.

Add the marshal list and also a typo in weather.

14 years agoUpdate user documentation about E_CAL/BOOK_DISABLE_DEPRECATED
Milan Crha [Fri, 9 Jul 2010 14:18:57 +0000 (16:18 +0200)]
Update user documentation about E_CAL/BOOK_DISABLE_DEPRECATED

14 years agoBug #623204 - Be able to report detailed errors from backends
Milan Crha [Fri, 9 Jul 2010 11:18:42 +0000 (13:18 +0200)]
Bug #623204 - Be able to report detailed errors from backends

14 years ago[i18n] Updated German translation
Mario Blättermann [Fri, 9 Jul 2010 10:40:40 +0000 (12:40 +0200)]
[i18n] Updated German translation

14 years agoBug 623919 - Error while opening any newly received message
Matthew Barnes [Fri, 9 Jul 2010 10:30:35 +0000 (06:30 -0400)]
Bug 623919 - Error while opening any newly received message

14 years agoUse correct format specifier for 64bit unsigned int
Milan Crha [Fri, 9 Jul 2010 07:34:18 +0000 (09:34 +0200)]
Use correct format specifier for 64bit unsigned int

14 years agoDo not use uninitialized variable
Milan Crha [Fri, 9 Jul 2010 07:32:33 +0000 (09:32 +0200)]
Do not use uninitialized variable

14 years agoUse the new base directory functions.
Matthew Barnes [Thu, 8 Jul 2010 22:12:01 +0000 (18:12 -0400)]
Use the new base directory functions.

Put an end to hard-coding "$HOME/.evolution".

14 years agoUpdated Spanish translation
Jorge González [Thu, 8 Jul 2010 21:41:18 +0000 (23:41 +0200)]
Updated Spanish translation

14 years agoAdd functions to get Evo/EDS base directories.
Matthew Barnes [Thu, 8 Jul 2010 20:23:58 +0000 (16:23 -0400)]
Add functions to get Evo/EDS base directories.

Use these functions instead of hard-coding "$HOME/.evolution".  This
sets the stage for complying with the XDG Base Directory Specification.
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

e_get_user_cache_dir()   returns (for now)  "$HOME/.evolution/cache"
e_get_user_config_dir()  returns (for now)  "$HOME/.evolution"
e_get_user_data_dir()    returns (for now)  "$HOME/.evolution"

14 years agoBug #623795 - URI at the end of text isn't clickable
Milan Crha [Thu, 8 Jul 2010 19:22:33 +0000 (21:22 +0200)]
Bug #623795 - URI at the end of text isn't clickable

14 years agoBug #621609 - Can pass unknown UID to e_source_combo_box_set_active_uid
Milan Crha [Thu, 8 Jul 2010 19:18:01 +0000 (21:18 +0200)]
Bug #621609 - Can pass unknown UID to e_source_combo_box_set_active_uid

14 years agoMigrate from CamelException to GError.
Matthew Barnes [Sun, 9 May 2010 16:26:48 +0000 (11:26 -0500)]
Migrate from CamelException to GError.

14 years agoUse text/vcard content type on WebDAV PUT request
Milan Crha [Thu, 8 Jul 2010 11:25:33 +0000 (13:25 +0200)]
Use text/vcard content type on WebDAV PUT request

See bug #604650 for more details.

14 years agoUpdated Galician translations
Fran Diéguez [Wed, 7 Jul 2010 16:27:43 +0000 (18:27 +0200)]
Updated Galician translations

14 years agoAdd a function to get the job queue info
Chenthill Palanisamy [Mon, 5 Jul 2010 09:00:27 +0000 (14:30 +0530)]
Add a function to get the job queue info

14 years agoAdd signal handlers when folder selection changes and when connection shuts down
Chenthill Palanisamy [Mon, 5 Jul 2010 07:35:10 +0000 (13:05 +0530)]
Add signal handlers when folder selection changes and when connection shuts down

14 years agoBug 623431 - Use gweather-3.0 when building with gtk3
Maciej Piechotka [Sat, 3 Jul 2010 16:41:50 +0000 (12:41 -0400)]
Bug 623431 - Use gweather-3.0 when building with gtk3

14 years agoBug 623430 - libedataserverui.pc.in hardcodes 1.2 API version
Matthew Barnes [Sat, 3 Jul 2010 16:17:42 +0000 (12:17 -0400)]
Bug 623430 - libedataserverui.pc.in hardcodes 1.2 API version

14 years agoUpdate unseen count as new messages come in
David Woodhouse [Fri, 2 Jul 2010 10:56:57 +0000 (11:56 +0100)]
Update unseen count as new messages come in

When we get notified of new messages in the idle thread, or when they arrive
during our re-fetch of all flags (and we suddenly find we've got flags for a
message that didn't previously exist), ensure that we update the unseen count
according to the flags of the new messages.

This _doesn't_ handle the case where we called fetch_new_messages() directly
from refresh_info_start() because we _knew_ there were new messages, but in
fact there are _more_ new messages than we expected. We may have to switch to
a model where we say 'update flags for any UID greater than $X'.

14 years agoMake NSS database initialisation more robust, handle errors better
David Woodhouse [Fri, 2 Jul 2010 09:58:11 +0000 (10:58 +0100)]
Make NSS database initialisation more robust, handle errors better

Since commit 9116943e we only attempt to open the new SQL database, but
some users are reporting issues. Be more careful about reporting errors
when that happens, and also fall back to the old DBM database if the SQL
database fails to initialise.

14 years agoKeep better track of server-side UNREAD count.
David Woodhouse [Fri, 2 Jul 2010 09:00:02 +0000 (10:00 +0100)]
Keep better track of server-side UNREAD count.

There are various circumstances in which the UNREAD count will change --
new unseen messages arriving, flags changes from the client, unseen
messages being expunged, etc. Keep track of those to improve the
accuracy of the unread count, to avoid the QRESYNC sanity check
triggering so often on minor issues that weren't the bug I was looking
for. For this, we have to keep track of whether a FETCH or VANISHED response
was solicited or unsolicited in certain cases.

14 years agoDon't refetch message headers we already have.
David Woodhouse [Fri, 2 Jul 2010 08:57:31 +0000 (09:57 +0100)]
Don't refetch message headers we already have.

We were issuing a headers FETCH starting from the last known UID. But we
already _had_ the headers for the last known UID. Start from $UID+1 instead.

14 years agoAdd sanity check after QRESYNC
David Woodhouse [Fri, 2 Jul 2010 08:43:38 +0000 (09:43 +0100)]
Add sanity check after QRESYNC

If the total number of messages, unseen count and modseq don't match
what we think they should be, then fall back to refetching all flags as
we would have done without QRESYNC.

14 years agoUpdated Spanish translation
Jorge González [Thu, 1 Jul 2010 18:13:41 +0000 (20:13 +0200)]
Updated Spanish translation

14 years agoFix memory leak in imapx_continuation() with SASL auth
David Woodhouse [Thu, 1 Jul 2010 08:01:27 +0000 (09:01 +0100)]
Fix memory leak in imapx_continuation() with SASL auth

==4945== 1 bytes in 1 blocks are definitely lost in loss record 48 of 23,077
==4945==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==4945==    by 0x319A044AE2: g_malloc (gmem.c:132)
==4945==    by 0x319A05C3BD: g_strdup (gstrfuncs.c:102)
==4945==    by 0x6478E63: camel_sasl_challenge_base64 (camel-sasl.c:326)
==4945==    by 0x12C54E72: imapx_continuation (camel-imapx-server.c:1698)
==4945==    by 0x12C552CC: imapx_step (camel-imapx-server.c:1862)

14 years agoFix memory leak in summary_header_to_db()
David Woodhouse [Thu, 1 Jul 2010 07:59:59 +0000 (08:59 +0100)]
Fix memory leak in summary_header_to_db()

==4945== 9 bytes in 1 blocks are definitely lost in loss record 1,482 of 23,077
==4945==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==4945==    by 0x319A044AE2: g_malloc (gmem.c:132)
==4945==    by 0x319A05C3BD: g_strdup (gstrfuncs.c:102)
==4945==    by 0x6466990: summary_header_to_db (camel-folder-summary.c:296)
==4945==    by 0x12C48A2B: summary_header_to_db (camel-imapx-summary.c:289)
==4945==    by 0x6463B69: camel_folder_summary_save_to_db (camel-folder-summary.c:2316)
==4945==    by 0x12C507B2: imapx_command_sync_changes_done (camel-imapx-server.c:4227)

14 years agoStore Junk and NotJunk flags in IMAP server
David Woodhouse [Wed, 30 Jun 2010 19:22:36 +0000 (20:22 +0100)]
Store Junk and NotJunk flags in IMAP server

Strictly speaking we shouldn't be doing this if the server won't understand
them and doesn't have \* in PERMANENTFLAGS -- but there are already bugs with
that anyway, when we try to set receipt-handled. I'll get to that shortly...

14 years agoUpdate API documentation.
Matthew Barnes [Wed, 30 Jun 2010 15:48:51 +0000 (11:48 -0400)]
Update API documentation.

14 years agoCalculate can_qresync after fetching STATUS
David Woodhouse [Wed, 30 Jun 2010 12:22:25 +0000 (13:22 +0100)]
Calculate can_qresync after fetching STATUS

14 years agoFix starting UID in QRESYNC SELECT.
David Woodhouse [Wed, 30 Jun 2010 10:08:54 +0000 (11:08 +0100)]
Fix starting UID in QRESYNC SELECT.

The indices in the folder summary count from zero, not one.

14 years agoAdd proper QRESYNC support on SELECT; use it for refresh_info
David Woodhouse [Wed, 30 Jun 2010 08:49:12 +0000 (09:49 +0100)]
Add proper QRESYNC support on SELECT; use it for refresh_info

We aren't yet correctly updating the folder's modseq every time, so we're
often asking for more than we need. That's better than asking for _less_ than
we need though -- will go over that part very carefully in separate commit(s).

We still aren't handling uidvalidity either. RSN...

14 years agoPropagate SELECT error properly to dependent commands
David Woodhouse [Wed, 30 Jun 2010 08:44:25 +0000 (09:44 +0100)]
Propagate SELECT error properly to dependent commands

14 years agoAdd support for * VANISHED (EARLIER) [uidset...]
David Woodhouse [Wed, 30 Jun 2010 08:39:22 +0000 (09:39 +0100)]
Add support for * VANISHED (EARLIER) [uidset...]

(Actually just throw away anything in the parentheses).

We'll need this for QRESYNC SELECT

14 years agoWork around sudden disappearance of GdkRegion in GTK+ 2.90.5.
Matthew Barnes [Tue, 29 Jun 2010 23:17:59 +0000 (19:17 -0400)]
Work around sudden disappearance of GdkRegion in GTK+ 2.90.5.

API was deprecated and removed in less than two hours!  Sheesh!

14 years agopost release version bump
Chenthill Palanisamy [Tue, 29 Jun 2010 18:06:13 +0000 (23:36 +0530)]
post release version bump

14 years agoNews update for 2.31.4 release
Chenthill Palanisamy [Tue, 29 Jun 2010 17:48:40 +0000 (23:18 +0530)]
News update for 2.31.4 release

14 years agoSet server_flags after APPENDUID; don't send them to the server again.
David Woodhouse [Tue, 29 Jun 2010 16:23:57 +0000 (17:23 +0100)]
Set server_flags after APPENDUID; don't send them to the server again.

This is just silly....

Starting command (active=1, literal) A00452 APPEND outgoing (\SEEN) {551+}
Starting command (active=1,) A00454 SELECT outgoing
Starting command (active=1,) A00453 UID STORE 14443 +FLAGS.SILENT (\SEEN)

14 years agoFix APPENDUID handling of uidvalidity.
David Woodhouse [Tue, 29 Jun 2010 15:45:56 +0000 (16:45 +0100)]
Fix APPENDUID handling of uidvalidity.

We shouldn't be comparing with is->uidvalidity; that's just short-term
storage for use _during_ a SELECT. Compare with ifolder->uidvalidity instead.

Oh, and let's try to make sure that's actually set somewhere...

14 years agoSelect folder based on CamelFolder *, not its name
David Woodhouse [Tue, 29 Jun 2010 15:18:38 +0000 (16:18 +0100)]
Select folder based on CamelFolder *, not its name

As threatened in commit 6900bf35807c9be0cb2498a63cef4684ff9144d6, sanify the
way that commands indicate which folder (if any) should be selected when they
run.

Until now, they've set a folder name in ic->select, which was passed as an
argument to camel_imapx_command_new(). That's been used for comparisons to
decide whether the command can run... but when it actually comes to select
a folder specifically for the benefit of the command, it wasn't used! Instead,
the folder in ic->job->folder was used instead.

Clean this up so that ic->select is now a CamelFolder * instead of a string,
and actually use it consistently for both the comparisons and the eventual
SELECT.

14 years agoLower gtk+-3.0 requirement to 2.90.4.
Matthew Barnes [Tue, 29 Jun 2010 13:57:41 +0000 (09:57 -0400)]
Lower gtk+-3.0 requirement to 2.90.4.

Since 2.90.5 isn't release yet and the release team would probably
like to assemble a 2.31.4 moduleset.

14 years agoMake libedataserverui API docs build with gtk+-3.0.
Matthew Barnes [Tue, 29 Jun 2010 13:47:51 +0000 (09:47 -0400)]
Make libedataserverui API docs build with gtk+-3.0.

14 years agoMake libedataserverui test programs build with gtk+-3.0.
Matthew Barnes [Tue, 29 Jun 2010 13:32:49 +0000 (09:32 -0400)]
Make libedataserverui test programs build with gtk+-3.0.

14 years agoTEMPORARILY build without weather calendars in distcheck.
Matthew Barnes [Tue, 29 Jun 2010 13:25:15 +0000 (09:25 -0400)]
TEMPORARILY build without weather calendars in distcheck.

Will revert this when we see a libgweather-2.90.x release.

14 years agoFix E_DATA_SERVER_UI_DEPS.
Matthew Barnes [Tue, 29 Jun 2010 13:16:50 +0000 (09:16 -0400)]
Fix E_DATA_SERVER_UI_DEPS.

Was hardcoding gtk+-2.0 instead of using $GTK_PACKAGE.

14 years agoShow the GTK+ package in configure summary.
Matthew Barnes [Tue, 29 Jun 2010 13:15:26 +0000 (09:15 -0400)]
Show the GTK+ package in configure summary.

14 years agoBuild against gtk+-3.0 when running distcheck.
Matthew Barnes [Tue, 29 Jun 2010 13:14:33 +0000 (09:14 -0400)]
Build against gtk+-3.0 when running distcheck.

14 years agoRequire gweather >= 2.90.0 when building against gtk+-3.0.
Matthew Barnes [Tue, 29 Jun 2010 13:07:43 +0000 (09:07 -0400)]
Require gweather >= 2.90.0 when building against gtk+-3.0.

Note, at this moment libgweather-2.90.0 doesn't exist.  The version
requirement is a guess.  The tarball should appear "any minute now".

14 years agoBug #622350 - CamelFolder's "deleted" signal prototype changed
Milan Crha [Tue, 29 Jun 2010 12:54:47 +0000 (14:54 +0200)]
Bug #622350 - CamelFolder's "deleted" signal prototype changed

14 years agoUpdate libedataserverui versioning for gtk3. 3.0 should build gtk3 and 1.2 with gtk2
Chenthill Palanisamy [Tue, 29 Jun 2010 12:05:09 +0000 (17:35 +0530)]
Update libedataserverui versioning for gtk3. 3.0 should build gtk3 and 1.2 with gtk2

14 years agoAdd helper to show the name selector with correct transience, to
Michael Meeks [Tue, 29 Jun 2010 10:05:53 +0000 (11:05 +0100)]
Add helper to show the name selector with correct transience, to
fix the umpteen bugs in its use in Evolution.

14 years agoUpdate summary uidnext after fetching messages.
David Woodhouse [Tue, 29 Jun 2010 08:41:33 +0000 (09:41 +0100)]
Update summary uidnext after fetching messages.

Since we don't refetch flags if we've fetched new messages for a previously
empty folder, we weren't updating the stored uidnext -- which meant we would
refetch messages again next time. And if the folder is empty, we'd refetch
messages every time and never update uidnext.

14 years agoBug 622828 - Don't recurse to parent class's ->disconnect() method.
David Woodhouse [Sun, 27 Jun 2010 08:26:41 +0000 (09:26 +0100)]
Bug 622828 - Don't recurse to parent class's ->disconnect() method.

That seems to be our caller. Calling it back will just end in tears.

14 years agoBug 622822 - Fix failure return from nntp_folder_refresh_info_online()
David Woodhouse [Sun, 27 Jun 2010 07:37:55 +0000 (08:37 +0100)]
Bug 622822 - Fix failure return from nntp_folder_refresh_info_online()

When invoked with no fmt argument, camel_nntp_command() is only supposed
to select the folder and return zero.

Since commit 08cfec3e we have been interpreting that zero as FALSE, and
this is what causes nntp folders to appear empty as refresh_info appears
to fail.

14 years agoFix nntp folder tree building
David Woodhouse [Sat, 26 Jun 2010 15:03:35 +0000 (16:03 +0100)]
Fix nntp folder tree building

When it creates a 'virtual' NOSELECT|CHILDREN folder to fill a gap in
the hierarchy, it doesn't correctly insert that into the tree if it is a
top-level folder (i.e. last == NULL).

Once you fix that bug, you end up with two identical copies of the
tree-insertion code. I moved that out into a separate function.

14 years agoBug 622719 - Fix lifetime issues with CamelIMAPXServer w.r.t. disconnection
David Woodhouse [Sat, 26 Jun 2010 13:47:25 +0000 (14:47 +0100)]
Bug 622719 - Fix lifetime issues with CamelIMAPXServer w.r.t. disconnection

14 years agoFix idle thread exit and locking
David Woodhouse [Fri, 25 Jun 2010 17:09:09 +0000 (18:09 +0100)]
Fix idle thread exit and locking

If we trigger its exit and wait for it while still holding the lock, it may
deadlock on the same lock. Also fix a multiple-unlock bug.

14 years agoHandle BYE response
David Woodhouse [Fri, 25 Jun 2010 11:25:38 +0000 (12:25 +0100)]
Handle BYE response

14 years agoFix idle dwell time
David Woodhouse [Fri, 25 Jun 2010 08:36:46 +0000 (09:36 +0100)]
Fix idle dwell time

When switching from sleep() to g_usleep() in commit 25b19908, we should
also have converted its argument into µs.

14 years agoRemove superfluous debug printf
David Woodhouse [Thu, 24 Jun 2010 23:12:08 +0000 (00:12 +0100)]
Remove superfluous debug printf

14 years agoUse LIST-EXTENDED to return subscribed status from LIST
David Woodhouse [Thu, 24 Jun 2010 23:01:36 +0000 (00:01 +0100)]
Use LIST-EXTENDED to return subscribed status from LIST

If the server supports LIST-EXTENDED, we don't have to follow the initial
LIST with an LSUB command to see which folders are subscribed -- we can
just ask it to tell us the subscribed status in the LIST responses.

14 years agoDetect LIST-STATUS and LIST-EXTENDED capabilities
David Woodhouse [Thu, 24 Jun 2010 22:23:19 +0000 (23:23 +0100)]
Detect LIST-STATUS and LIST-EXTENDED capabilities

14 years agoDon't show subscribed but non-existent folders.
David Woodhouse [Thu, 24 Jun 2010 22:10:35 +0000 (23:10 +0100)]
Don't show subscribed but non-existent folders.

The RFCs are clear that it's OK to have non-existent folders in the
subscribed list. Don't treat them as if they were real folders -- just
use their existence in the LSUB response to set the SUBSCRIBED flag if they
were already returned by the LIST response.

14 years agoReally select INBOX for folder deletion and rename
David Woodhouse [Thu, 24 Jun 2010 22:05:48 +0000 (23:05 +0100)]
Really select INBOX for folder deletion and rename

The folder selection code is a bit screwed -- a string comparison with
ic->select is used to determine which folder a job can run on, but
ic->job->folder is the one that's actually passed to imapx_select().

Fixing that is probably going to involve turning ic->select into a
folder pointer instead of a string -- so these callers might as well
start getting used to the fact that they have to look the INBOX up using
camel_store_get_folder(). I'll come back and actually fix the
imapx_command_start() code later, when there's nothing more important
offending me.

We really do need _not_ to be SELECTed on a renamed or deleted folder, or
entering IDLE will cause some servers (dovecot) to kick us off.

14 years agoRemove courier-imap rename workaround
David Woodhouse [Thu, 24 Jun 2010 14:41:30 +0000 (15:41 +0100)]
Remove courier-imap rename workaround

This is breaking things on non-buggy servers, because after renaming the
folder in question we also attempt to rename all its subfolders... and
quite reasonably get a failure.

Testing against current versions of Courier (4.4.0) seems to suggest
that it's not actually necessary, either -- perhaps the bug has been
fixed in the 9 years since this hack was first added to the imap back
end in commit bfce883e.

14 years agouse gtk-3.0 if available
Chenthill Palanisamy [Mon, 28 Jun 2010 09:51:13 +0000 (15:21 +0530)]
use gtk-3.0 if available

14 years agoUpdated Hebrew translation.
Yaron Shahrabani [Sun, 27 Jun 2010 21:09:13 +0000 (00:09 +0300)]
Updated Hebrew translation.

14 years agoBug 622392 - Build failure due to missing nspr includes
Matthew Barnes [Sun, 27 Jun 2010 11:45:18 +0000 (07:45 -0400)]
Bug 622392 - Build failure due to missing nspr includes

camel.pc.in already defines @mozilla_nss@ and @mozilla_nspr@ in its
Requires list, but that only works for distros that ship their own nss
and nspr pkg-config files.

Debian, for example, doesn't (but it should).  So @mozilla_nss@ and
@mozilla_nspr@ are never defined.  Instead, the configure script falls
back to the older "manual" settings and defines MANUAL_NSS_CFLAGS and
MANUAL_NSS_LIBS.  So list those as well in camel.pc.in.  They will be
mutually exclusive with the pkg-config variables.

And please, for the love of free software, somebody push pkg-config
files to upstream nss/nspr so we can drop this gunk from configure.
It's 2010 already for cryin' out loud...

14 years agoBug 622799 - Fails to link libedataserverui-1.2.la
Matthew Barnes [Sun, 27 Jun 2010 02:55:43 +0000 (22:55 -0400)]
Bug 622799 - Fails to link libedataserverui-1.2.la

14 years agoBug #622710 - Crash in imapx_idle_supported due to cinfo being NULL
Milan Crha [Fri, 25 Jun 2010 12:27:42 +0000 (14:27 +0200)]
Bug #622710 - Crash in imapx_idle_supported due to cinfo being NULL

14 years agoFor the sake of portability: sleep -> g_usleep
Fridrich Štrba [Fri, 25 Jun 2010 07:54:45 +0000 (09:54 +0200)]
For the sake of portability: sleep -> g_usleep

14 years agoBug #620815 - Memory leaks with Evolution
Milan Crha [Thu, 24 Jun 2010 18:42:16 +0000 (20:42 +0200)]
Bug #620815 - Memory leaks with Evolution

14 years agoBug 622008 - Don't trust is->select_folder in imapx_job_scan_changes_done()
David Woodhouse [Thu, 24 Jun 2010 13:13:17 +0000 (14:13 +0100)]
Bug 622008 - Don't trust is->select_folder in imapx_job_scan_changes_done()

We may have already issued a new SELECT command by the time the scan_changes
completion function is called, and is->select_folder may be NULL already.

14 years agoDisable the special-case for the selected folder in refresh_info
David Woodhouse [Thu, 24 Jun 2010 13:09:45 +0000 (14:09 +0100)]
Disable the special-case for the selected folder in refresh_info

It will make us miss messages on servers like Groupwise which don't give
unsolicited change notices; we really _do_ need to issue STATUS there,
even though it's explicitly forbidden by RFC3501 do so. Or SEARCH UNSEEN.

But the logic is broken anyway -- what is the currently-selected folder NOW
may not be the currently-selected folder by the time our STATUS command hits
the front of the queue anyway, so we do still end up doing STATUS on the
current folder sometimes. Needs more thought.

14 years agoRevamp imapx_job_refresh_info_start() to make use of modseq and uidnext
David Woodhouse [Thu, 24 Jun 2010 12:13:03 +0000 (13:13 +0100)]
Revamp imapx_job_refresh_info_start() to make use of modseq and uidnext

14 years agoAlways enable QRESYNC where it's available.
David Woodhouse [Sat, 19 Jun 2010 11:45:56 +0000 (12:45 +0100)]
Always enable QRESYNC where it's available.

This doesn't have much of an effect until we start using it, except for
enabling the VANISHED response, and causing unsolicited fetches to have UIDs.

14 years agoUpdate summary to include uidnext and modseq, and 64-bit uidvalidity
David Woodhouse [Thu, 24 Jun 2010 12:01:21 +0000 (13:01 +0100)]
Update summary to include uidnext and modseq, and 64-bit uidvalidity

Also set the new fields in imapx_job_scan_changes_done() -- although
the summary's uidvalidity still isn't being set anywhere.