Federico Mena Quintero [Thu, 12 Aug 2010 18:53:53 +0000 (13:53 -0500)]
GError for CamelTcpStreamSSL
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 12 Aug 2010 18:50:36 +0000 (13:50 -0500)]
Make _set_g_error_from_errno() public
We need it in the SSL stream
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 12 Aug 2010 18:29:13 +0000 (13:29 -0500)]
Format error strings, don't include them inline
Federico Mena Quintero [Thu, 12 Aug 2010 18:27:57 +0000 (13:27 -0500)]
Fix method name
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 12 Aug 2010 18:24:16 +0000 (13:24 -0500)]
Missing include
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 12 Aug 2010 18:15:26 +0000 (13:15 -0500)]
Missing comma
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 12 Aug 2010 18:13:12 +0000 (13:13 -0500)]
Fix cut&paste thinko
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 12 Aug 2010 18:12:09 +0000 (13:12 -0500)]
GError **, not GError *
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Fri, 23 Jul 2010 20:22:15 +0000 (15:22 -0500)]
Oops, fix endianness of port numbers
ai_addr.sin_port and sin6_port are in network byte order...
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Fri, 23 Jul 2010 20:18:01 +0000 (15:18 -0500)]
Use 'localhost' instead of NULL to resolve ports
camel_getaddrinfo() does not take NULL hostnames, in contrast with
getaddrinfo(). So for now we'll use localhost and try to do
better in the future.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 22 Jul 2010 22:01:18 +0000 (17:01 -0500)]
Don't try SOCKS4 on IPv6 addresses; it doesn't handle them.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 22 Jul 2010 21:02:40 +0000 (16:02 -0500)]
Try SOCKS5, then SOCKS4
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 22 Jul 2010 20:20:21 +0000 (15:20 -0500)]
Try all the struct addrinfo when connecting to a proxy, not just the first one
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 22 Jul 2010 20:09:32 +0000 (15:09 -0500)]
Add new GError codes for SOCKS proxies - CamelProxyError
We differentiate between "the proxy does not support our protocol"
and "the proxy does not support our authentication type".
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Wed, 21 Jul 2010 21:21:58 +0000 (16:21 -0500)]
Basic logic to request connection from a SOCKS5 proxy
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Fri, 16 Jul 2010 19:19:01 +0000 (14:19 -0500)]
Separate function to just connect to the proxy host
We will use this in each function to connect to a different kind of proxy.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 15 Jul 2010 21:06:03 +0000 (16:06 -0500)]
Derive CamelTcpStreamSSL from CamelTcpStreamRaw
The only overriden vmethod is ::connect(), which starts up SSL on the socket
after the Raw implementation opens the socket and connects. By this point,
we are already past the SOCKS proxy if it exists.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 15 Jul 2010 21:01:20 +0000 (16:01 -0500)]
Add function to replace CamelTcpStreamRaw's sockfd with another one
We need this in the TcpSSL stream to replace the normal socket with
the SSL-ified one.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 15 Jul 2010 20:17:06 +0000 (15:17 -0500)]
Make _set_errno_from_pr_error() public
We need to use this both in the raw TCP stream and in the SSL one.
Maybe later we can switch to full exceptions.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Thu, 15 Jul 2010 20:03:25 +0000 (15:03 -0500)]
Make CamelTcpStreamRaw use PRFileDesc internally
This is cut&pasted from CamelTcpStreamSSL, with the SSL bits removed.
This will let us make CamelTcpStreamSSL actually derive from
CamelTcpStreamRaw and just slap the SSL bits on top.
This also removes camel_tcp_stream_raw_get_fd(), in favor of the general
camel_tcp_stream_get_file_desc(), which only the imapx provider uses.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Wed, 14 Jul 2010 21:15:23 +0000 (16:15 -0500)]
Implement ::get_file_desc() in CamelTcpStreamSSL
This lets us get rid of camel_tcp_stream_ssl_sockfd(), in favor
of camel_tcp_stream_get_file_desc().
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Wed, 14 Jul 2010 21:06:56 +0000 (16:06 -0500)]
Move CamelTcpStreamRaw's fields to a private structure
We also add a temporary camel_tcp_stream_raw_get_fd(), used by the imapx provider.
This function will go away in favor of the general camel_tcp_stream_get_file_desc().
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Wed, 14 Jul 2010 20:15:01 +0000 (15:15 -0500)]
New method CamelTcpStream::get_file_desc()
This returns a (PRFileDesc *). We will make CamelTcpStream derivates deal only
in PRFileDesc objects, instead of plain FDs. This will allow us to implement
TCP socket functionality only once, instead of twice - one for raw streams, one
for SSL streams. Mainly this will let us have a raw stream and then an
SSL stream overlaid on that one.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Mon, 12 Jul 2010 20:49:40 +0000 (15:49 -0500)]
Change CamelNNTPStore to use the new API
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Mon, 12 Jul 2010 20:44:16 +0000 (15:44 -0500)]
Change CamelIMAPXServer to use the new API
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Mon, 12 Jul 2010 20:36:18 +0000 (15:36 -0500)]
Change CamelImapStore to use the new API
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Fri, 9 Jul 2010 22:59:48 +0000 (17:59 -0500)]
Change CamelSmtpTransport to use the new API
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Fri, 9 Jul 2010 22:55:28 +0000 (17:55 -0500)]
Change CamelPOP3Store to use the new API
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Fri, 9 Jul 2010 22:39:51 +0000 (17:39 -0500)]
Change CamelHttpStream to use the new API
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Federico Mena Quintero [Fri, 9 Jul 2010 19:12:06 +0000 (14:12 -0500)]
Do name resolution inside camel_tcp_stream_connect()
This function and the associated vmethod used to take a struct addrinfo *.
However, this doesn't let us have SOCKS4a or SOCKS5 proxies that do name
resolution in the proxy. So, now the main camel_tcp_stream_connect() takes
a hostname and service name, and implementations do name resolution
by themselves. Later we will modify the proxy code to do name resolution
in the proxy.
We allow passing a fallback port to camel_tcp_stream_connect(), which
is used by Camel's providers when the system's services database
(/etc/services) doesn't have an entry for a particular service name.
If getaddrinfo() can't find the service name, then we use a
fallback/hardcoded port number. See bgo#267898
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Matthew Barnes [Thu, 22 Jul 2010 17:13:09 +0000 (13:13 -0400)]
Eek, typo.
Matthew Barnes [Thu, 22 Jul 2010 14:00:34 +0000 (10:00 -0400)]
Fix "system" EBook/ECal creation functions.
The local "system" URIs are trivial now, it's just "local:system".
e_book_new_system_addressbook()
e_cal_new_system_calendar()
e_cal_new_system_tasks()
e_cal_new_system_memos()
Matthew Barnes [Thu, 22 Jul 2010 11:28:24 +0000 (07:28 -0400)]
Bug 602287 - Avoid racing with camel_operation_mute()
Milan Crha [Thu, 22 Jul 2010 09:11:44 +0000 (11:11 +0200)]
Bug #624891 - Various compiler warnings in git/master
Matthew Barnes [Wed, 21 Jul 2010 01:26:45 +0000 (21:26 -0400)]
Refactor ECalBackendCache.
ECalBackendCache doesn't need to know the URI of the backend, it just
needs a file name. Backends must now provide the name of the cache
file. This breaks the API, but eliminates duplicate logic.
Couple other miscellaneous functions removed:
e_book_backend_construct()
e_book_backend_cache_exists()
e_book_backend_db_cache_exists()
libedata-book's shared object name is bumped for the API break.
Adapt backends to the new API.
Matthew Barnes [Tue, 20 Jul 2010 23:36:11 +0000 (19:36 -0400)]
Refactor ECalBackendStore / ECalBackendFileStore.
These classes don't need to know the URI and source type of the backend,
they just need a file name. Backends must now provide the name of the
cache file. This breaks the API, but eliminates duplicate logic.
libedata-cal's shared object name is bumped for the API break.
Adapt backends to the new API.
Matthew Barnes [Tue, 20 Jul 2010 21:43:34 +0000 (17:43 -0400)]
ECalBackendFile overrides its cache directory.
It doesn't need a cache, so its cache directory is its data directory.
Matthew Barnes [Tue, 20 Jul 2010 21:26:45 +0000 (17:26 -0400)]
EDataCal: Add a getCacheDir() D-Bus method.
ECal calls getCacheDir() to find the local attachment store. ECal
caches the result, so getCacheDir() is only called once per instance.
Matthew Barnes [Tue, 20 Jul 2010 21:06:48 +0000 (17:06 -0400)]
ECalBackend: Add a "cache-dir" string property.
Holds the directory where data should be cached for that specific
backend instance.
e_cal_backend_get_cache_dir()
e_cal_backend_set_cache_dir()
Matthew Barnes [Tue, 20 Jul 2010 20:10:23 +0000 (16:10 -0400)]
ECalBackend cleanup.
Matthew Barnes [Tue, 20 Jul 2010 15:48:06 +0000 (11:48 -0400)]
ECalBackendStore cleanup.
Matthew Barnes [Tue, 20 Jul 2010 15:31:05 +0000 (11:31 -0400)]
ECalBackendFileStore cleanup.
Fran Diéguez [Wed, 21 Jul 2010 14:42:43 +0000 (16:42 +0200)]
Updated Galician translations
Jeff Cai [Wed, 21 Jul 2010 10:18:12 +0000 (18:18 +0800)]
Fix bug #624909
Matthew Barnes [Tue, 20 Jul 2010 13:47:51 +0000 (09:47 -0400)]
EBookBackend: Add a "cache-dir" string property.
Holds the directory where data should be cached for that specific
backend instance.
e_book_backend_get_cache_dir()
e_book_backend_set_cache_dir()
Matthew Barnes [Tue, 20 Jul 2010 12:12:14 +0000 (08:12 -0400)]
EBookBackend cleanup.
Matthew Barnes [Tue, 20 Jul 2010 11:58:36 +0000 (07:58 -0400)]
There is no need to call e_book_backend_construct().
Matthew Barnes [Tue, 20 Jul 2010 11:32:08 +0000 (07:32 -0400)]
Header file cleanup.
Chao-Hsiung Liao [Tue, 20 Jul 2010 06:25:28 +0000 (14:25 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Kjartan Maraas [Mon, 19 Jul 2010 19:41:34 +0000 (21:41 +0200)]
Updated Norwegian bokmål translation
Andre Klapper [Mon, 19 Jul 2010 19:14:48 +0000 (21:14 +0200)]
Add missing files to POTFILES.in. Fixes bug #624743.
Kjartan Maraas [Mon, 19 Jul 2010 12:17:17 +0000 (14:17 +0200)]
Updated Norwegian bokmål translation
Fran Diéguez [Sun, 18 Jul 2010 17:11:37 +0000 (19:11 +0200)]
Fixed headers in galician translation file
Jorge González [Sun, 18 Jul 2010 10:10:34 +0000 (12:10 +0200)]
Updated Spanish translation
Matthew Barnes [Fri, 16 Jul 2010 10:53:06 +0000 (06:53 -0400)]
ECalBackendFile: Fix an uninitialized variable
Milan Crha [Fri, 16 Jul 2010 07:34:47 +0000 (09:34 +0200)]
Remove deprecated ECalBackend::set_default_timezone
It's deprecated since 2006-07-10
Matthew Barnes [Thu, 15 Jul 2010 21:58:51 +0000 (17:58 -0400)]
Broke a few things with the local source URI change
ECalBackendFileFactory:
- The factory's get_protocol() method returns "local" now.
- uri_to_path() needs to actually build the path to its ICS file
now instead of just converting the backend's URI to a filename.
EBookBackendFileFactory:
- Similar fixes.
Matthew Barnes [Thu, 15 Jul 2010 17:08:50 +0000 (13:08 -0400)]
Avoid absolute paths in "On This Computer" source groups.
A base URI of "local:" is sufficient to identify the "On This Computer"
source group. No other source group uses that URI scheme, and it avoids
an entire class of portability problems that come with using an absolute
"file:" URI to point to user-specific data:
- What if the user's home directory is renamed?
- What if settings are moved to a new host under a different user name?
- What if settings are copied to another user account on the same host?
- Migrating to XDG base dirs is otherwise a giant PITA.
Matthew Barnes [Thu, 15 Jul 2010 12:31:02 +0000 (08:31 -0400)]
Fix e-data-book-factory.c regression.
Matthew Barnes [Thu, 15 Jul 2010 09:46:46 +0000 (05:46 -0400)]
CamelOperation debugging improvement
When calling camel_operation_unref() with a non-empty status stack,
show what status messages were left over in the status stack.
Matthew Barnes [Thu, 15 Jul 2010 09:31:15 +0000 (05:31 -0400)]
Bug 624417 - Fix error handling in e_cal_backend_sync_get_timezone()
Don't create a GError if we're successful.
Matthew Barnes [Tue, 8 Jun 2010 13:18:02 +0000 (09:18 -0400)]
EDataBookFactory cleanup.
Matthew Barnes [Mon, 7 Jun 2010 19:22:37 +0000 (15:22 -0400)]
EDataCalFactory cleanup.
Matthew Barnes [Wed, 14 Jul 2010 20:44:52 +0000 (16:44 -0400)]
Bug 624029 - Copying messages across stores is broken
Matthew Barnes [Wed, 14 Jul 2010 18:48:01 +0000 (14:48 -0400)]
Bug 624316 - Disable debug messages in GroupWise calendar backend
Matthew Barnes [Tue, 13 Jul 2010 21:26:17 +0000 (17:26 -0400)]
Bug 608299 - Cut/copy error when selection has trailing comma
When cutting or copying a selection that includes a trailing comma, the
subsequent address was also getting copied to the clipboard. The fix is
to ignore trailing whitespace and commas when scanning the selection for
email addresses.
Chenthill Palanisamy [Tue, 13 Jul 2010 19:52:13 +0000 (01:22 +0530)]
Removed folders from connection when operations gets done - handles when jobs return back without executing
Chenthill Palanisamy [Tue, 13 Jul 2010 19:30:57 +0000 (01:00 +0530)]
Add connection manager to imapx
Matthew Barnes [Tue, 13 Jul 2010 13:56:42 +0000 (09:56 -0400)]
Bug 624325 - CamelPOP3Store missing some methods
There's a corresponding change on the Evolution side to catch and clear
the CAMEL_STORE_ERROR_NO_FOLDER that CamelPOP3Store's get_folder_info()
method now sets to satisfy the new runtime checks.
Matthew Barnes [Tue, 13 Jul 2010 12:41:39 +0000 (08:41 -0400)]
CamelPOP3Store cleanup.
Milan Crha [Tue, 13 Jul 2010 12:47:12 +0000 (14:47 +0200)]
Bug #612082 - Do not expose off_t in public API, use goffset instead
Kjartan Maraas [Tue, 13 Jul 2010 12:25:38 +0000 (14:25 +0200)]
Updated Norwegian bokmål translation
Matthew Barnes [Tue, 13 Jul 2010 03:16:53 +0000 (23:16 -0400)]
libebook.pc.in missing camel-1.2 requirement.
EDestination uses CamelInternetAddress.
Fran Diéguez [Tue, 13 Jul 2010 00:41:50 +0000 (02:41 +0200)]
Updated Galician translations
Matthew Barnes [Mon, 12 Jul 2010 22:48:40 +0000 (18:48 -0400)]
Post-release version bump.
Matthew Barnes [Mon, 12 Jul 2010 22:28:55 +0000 (18:28 -0400)]
NEWS update for 2.31.5 release.
Milan Crha [Mon, 12 Jul 2010 14:44:25 +0000 (16:44 +0200)]
Bug #618938 - Crash when reading calendar acknowledgement message
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
Matthew Barnes [Mon, 12 Jul 2010 11:59:20 +0000 (07:59 -0400)]
Fix another g_propagate_error() runtime warning.
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().
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.
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.
David Woodhouse [Mon, 12 Jul 2010 03:11:38 +0000 (04:11 +0100)]
imapx: camel_imapx_stream_astring() returns 0 on success.
Matthew Barnes [Mon, 12 Jul 2010 02:19:33 +0000 (22:19 -0400)]
Update API documentation.
Matthew Barnes [Sun, 11 Jul 2010 17:22:13 +0000 (13:22 -0400)]
Coding style and whitespace cleanup.
Mario Blättermann [Sun, 11 Jul 2010 16:36:33 +0000 (18:36 +0200)]
[i18n] Updated German translation
Kjartan Maraas [Sun, 11 Jul 2010 15:44:10 +0000 (17:44 +0200)]
Updated Norwegian bokmål translation
Matthew Barnes [Sun, 11 Jul 2010 15:34:36 +0000 (11:34 -0400)]
Coding style and whitespace cleanup.
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.
Kjartan Maraas [Sun, 11 Jul 2010 13:42:24 +0000 (15:42 +0200)]
Updated Norwegian bokmål translation
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.
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.
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.
Matthew Barnes [Sun, 11 Jul 2010 03:30:06 +0000 (23:30 -0400)]
Fix some linker issues.
Matthew Barnes [Sat, 10 Jul 2010 12:16:15 +0000 (08:16 -0400)]
Bug 624018 - Fix error handling in groupwise_get_folder()
Jorge González [Sat, 10 Jul 2010 08:36:48 +0000 (10:36 +0200)]
Updated Spanish translation
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.
Milan Crha [Fri, 9 Jul 2010 14:18:57 +0000 (16:18 +0200)]
Update user documentation about E_CAL/BOOK_DISABLE_DEPRECATED
Milan Crha [Fri, 9 Jul 2010 11:18:42 +0000 (13:18 +0200)]
Bug #623204 - Be able to report detailed errors from backends
Mario Blättermann [Fri, 9 Jul 2010 10:40:40 +0000 (12:40 +0200)]
[i18n] Updated German translation