aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-tcp-stream-ssl.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2002-09-28 04:20:08 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2002-09-28 04:20:08 +0800
commit7ed66fac42704097175f778660e391e86cc6d55d (patch)
treef77d33fb9bec1c329e30075b46aa19354156c76f /camel/camel-tcp-stream-ssl.c
parent5960e962688cb6ff5cd04b1391365469da42efaf (diff)
downloadgsoc2013-evolution-7ed66fac42704097175f778660e391e86cc6d55d.tar
gsoc2013-evolution-7ed66fac42704097175f778660e391e86cc6d55d.tar.gz
gsoc2013-evolution-7ed66fac42704097175f778660e391e86cc6d55d.tar.bz2
gsoc2013-evolution-7ed66fac42704097175f778660e391e86cc6d55d.tar.lz
gsoc2013-evolution-7ed66fac42704097175f778660e391e86cc6d55d.tar.xz
gsoc2013-evolution-7ed66fac42704097175f778660e391e86cc6d55d.tar.zst
gsoc2013-evolution-7ed66fac42704097175f778660e391e86cc6d55d.zip
New function to decode the INTERNALDATE response from an IMAP server so we
2002-09-27 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-folder.c (decode_internaldate): New function to decode the INTERNALDATE response from an IMAP server so we don't have to use my broken-date-parser routines. 2002-09-27 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-store.c (connect_to_server): NULL-check the streams before unreffing them in the case of a failure during ssl negotiations. * camel-tcp-stream-ssl.c (camel_tcp_stream_ssl_enable_ssl): Check SSL_ResetHandshake() for errors. Also force a handshake after we've reset the handshake state on the socket. svn path=/trunk/; revision=18252
Diffstat (limited to 'camel/camel-tcp-stream-ssl.c')
-rw-r--r--camel/camel-tcp-stream-ssl.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/camel/camel-tcp-stream-ssl.c b/camel/camel-tcp-stream-ssl.c
index ed539451ad..09e5c94a02 100644
--- a/camel/camel-tcp-stream-ssl.c
+++ b/camel/camel-tcp-stream-ssl.c
@@ -268,20 +268,22 @@ camel_tcp_stream_ssl_enable_ssl (CamelTcpStreamSSL *ssl)
g_return_val_if_fail (CAMEL_IS_TCP_STREAM_SSL (ssl), -1);
if (ssl->priv->sockfd && !ssl->priv->ssl_mode) {
- fd = enable_ssl (ssl, NULL);
- if (fd == NULL) {
- int errnosave;
-
+ if (!(fd = enable_ssl (ssl, NULL))) {
set_errno (PR_GetError ());
- errnosave = errno;
- errno = errnosave;
-
return -1;
}
- SSL_ResetHandshake (fd, FALSE);
-
ssl->priv->sockfd = fd;
+
+ if (SSL_ResetHandshake (fd, FALSE) == SECFailure) {
+ set_errno (PR_GetError ());
+ return -1;
+ }
+
+ if (SSL_ForceHandshake (fd) == -1) {
+ set_errno (PR_GetError ());
+ return -1;
+ }
}
ssl->priv->ssl_mode = TRUE;