[evolution-data-server] camel_tcp_stream_ssl_enable_ssl(): Add GError parameter.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] camel_tcp_stream_ssl_enable_ssl(): Add GError parameter.
- Date: Tue, 5 Jul 2011 04:14:31 +0000 (UTC)
commit bee92a9f83f191cb480033e243551a8913af9a5a
Author: Matthew Barnes <mbarnes redhat com>
Date: Tue Jul 5 00:06:46 2011 -0400
camel_tcp_stream_ssl_enable_ssl(): Add GError parameter.
camel/camel-tcp-stream-ssl.c | 7 +++++--
camel/camel-tcp-stream-ssl.h | 3 ++-
camel/providers/imap/camel-imap-store.c | 10 +++++-----
camel/providers/imapx/camel-imapx-server.c | 11 +++++------
camel/providers/pop3/camel-pop3-store.c | 11 ++++++-----
camel/providers/smtp/camel-smtp-transport.c | 11 +++++------
.../reference/camel/tmpl/camel-tcp-stream-ssl.sgml | 1 +
7 files changed, 29 insertions(+), 25 deletions(-)
---
diff --git a/camel/camel-tcp-stream-ssl.c b/camel/camel-tcp-stream-ssl.c
index e21d5a8..bc943bd 100644
--- a/camel/camel-tcp-stream-ssl.c
+++ b/camel/camel-tcp-stream-ssl.c
@@ -831,13 +831,15 @@ camel_tcp_stream_ssl_new_raw (CamelSession *session,
/**
* camel_tcp_stream_ssl_enable_ssl:
* @ssl: a #CamelTcpStreamSSL object
+ * @error: return location for a #GError, or %NULL
*
* Toggles an ssl-capable stream into ssl mode (if it isn't already).
*
* Returns: %0 on success or %-1 on fail
**/
gint
-camel_tcp_stream_ssl_enable_ssl (CamelTcpStreamSSL *ssl)
+camel_tcp_stream_ssl_enable_ssl (CamelTcpStreamSSL *ssl,
+ GError **error)
{
PRFileDesc *fd, *ssl_fd;
@@ -848,13 +850,14 @@ camel_tcp_stream_ssl_enable_ssl (CamelTcpStreamSSL *ssl)
if (fd && !ssl->priv->ssl_mode) {
if (!(ssl_fd = enable_ssl (ssl, fd))) {
_set_errno_from_pr_error (PR_GetError ());
+ _set_g_error_from_errno (error, FALSE);
return -1;
}
_camel_tcp_stream_raw_replace_file_desc (CAMEL_TCP_STREAM_RAW (ssl), ssl_fd);
ssl->priv->ssl_mode = TRUE;
- if (!rehandshake_ssl (ssl_fd, NULL)) /* NULL-GError */
+ if (!rehandshake_ssl (ssl_fd, error))
return -1;
}
diff --git a/camel/camel-tcp-stream-ssl.h b/camel/camel-tcp-stream-ssl.h
index daf3586..59041e9 100644
--- a/camel/camel-tcp-stream-ssl.h
+++ b/camel/camel-tcp-stream-ssl.h
@@ -79,7 +79,8 @@ CamelStream * camel_tcp_stream_ssl_new (CamelSession *session,
CamelStream * camel_tcp_stream_ssl_new_raw (CamelSession *session,
const gchar *expected_host,
CamelTcpStreamSSLFlags flags);
-gint camel_tcp_stream_ssl_enable_ssl (CamelTcpStreamSSL *ssl);
+gint camel_tcp_stream_ssl_enable_ssl (CamelTcpStreamSSL *ssl,
+ GError **error);
G_END_DECLS
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
index e5a56e5..45dd797 100644
--- a/camel/providers/imap/camel-imap-store.c
+++ b/camel/providers/imap/camel-imap-store.c
@@ -395,11 +395,11 @@ connect_to_server (CamelService *service,
camel_imap_response_free_without_processing (store, response);
/* Okay, now toggle SSL/TLS mode */
- if (camel_tcp_stream_ssl_enable_ssl (CAMEL_TCP_STREAM_SSL (tcp_stream)) == -1) {
- g_set_error (
- error, CAMEL_ERROR, CAMEL_ERROR_GENERIC,
- _("Failed to connect to IMAP server %s in secure mode: %s"),
- url->host, _("SSL negotiations failed"));
+ if (camel_tcp_stream_ssl_enable_ssl (CAMEL_TCP_STREAM_SSL (tcp_stream), error) == -1) {
+ g_prefix_error (
+ error,
+ _("Failed to connect to IMAP server %s in secure mode: "),
+ url->host);
goto exception;
}
#else
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index 3df3d14..fbc208b 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -3022,12 +3022,11 @@ imapx_connect_to_server (CamelIMAPXServer *is,
camel_imapx_command_free (ic);
- if (camel_tcp_stream_ssl_enable_ssl (CAMEL_TCP_STREAM_SSL (tcp_stream)) == -1) {
- g_set_error (
- &local_error, CAMEL_ERROR,
- CAMEL_ERROR_GENERIC,
- _("Failed to connect to IMAP server %s in secure mode: %s"),
- is->url->host, _("SSL negotiations failed"));
+ if (camel_tcp_stream_ssl_enable_ssl (CAMEL_TCP_STREAM_SSL (tcp_stream), &local_error) == -1) {
+ g_prefix_error (
+ &local_error,
+ _("Failed to connect to IMAP server %s in secure mode: "),
+ is->url->host);
goto exit;
}
/* Get new capabilities if they weren't already given */
diff --git a/camel/providers/pop3/camel-pop3-store.c b/camel/providers/pop3/camel-pop3-store.c
index 88e93a0..ff3d314 100644
--- a/camel/providers/pop3/camel-pop3-store.c
+++ b/camel/providers/pop3/camel-pop3-store.c
@@ -224,13 +224,14 @@ connect_to_server (CamelService *service,
}
/* Okay, now toggle SSL/TLS mode */
- ret = camel_tcp_stream_ssl_enable_ssl (CAMEL_TCP_STREAM_SSL (tcp_stream));
+ ret = camel_tcp_stream_ssl_enable_ssl (
+ CAMEL_TCP_STREAM_SSL (tcp_stream), error);
if (ret == -1) {
- g_set_error (
- error, CAMEL_ERROR, CAMEL_ERROR_GENERIC,
- _("Failed to connect to POP server %s in secure mode: %s"),
- url->host, _("TLS negotiations failed"));
+ g_prefix_error (
+ error,
+ _("Failed to connect to POP server %s in secure mode: "),
+ url->host);
goto stls_exception;
}
#else
diff --git a/camel/providers/smtp/camel-smtp-transport.c b/camel/providers/smtp/camel-smtp-transport.c
index 4f49586..0da8e8d 100644
--- a/camel/providers/smtp/camel-smtp-transport.c
+++ b/camel/providers/smtp/camel-smtp-transport.c
@@ -273,12 +273,11 @@ connect_to_server (CamelService *service,
} while (*(respbuf+3) == '-'); /* if we got "220-" then loop again */
/* Okay, now toggle SSL/TLS mode */
- if (camel_tcp_stream_ssl_enable_ssl (CAMEL_TCP_STREAM_SSL (tcp_stream)) == -1) {
- g_set_error (
- error, G_IO_ERROR,
- g_io_error_from_errno (errno),
- _("Failed to connect to SMTP server %s in secure mode: %s"),
- url->host, g_strerror (errno));
+ if (camel_tcp_stream_ssl_enable_ssl (CAMEL_TCP_STREAM_SSL (tcp_stream), error) == -1) {
+ g_prefix_error (
+ error,
+ _("Failed to connect to SMTP server %s in secure mode: "),
+ url->host);
goto exception_cleanup;
}
#else
diff --git a/docs/reference/camel/tmpl/camel-tcp-stream-ssl.sgml b/docs/reference/camel/tmpl/camel-tcp-stream-ssl.sgml
index 5f8945e..01d6eab 100644
--- a/docs/reference/camel/tmpl/camel-tcp-stream-ssl.sgml
+++ b/docs/reference/camel/tmpl/camel-tcp-stream-ssl.sgml
@@ -65,6 +65,7 @@ CamelTcpStreamSSL
</para>
@ssl:
+ error:
@Returns:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]