diff options
Diffstat (limited to 'camel/camel-tcp-stream-ssl.c')
-rw-r--r-- | camel/camel-tcp-stream-ssl.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/camel/camel-tcp-stream-ssl.c b/camel/camel-tcp-stream-ssl.c index 167d94b8b7..46a8dfa6e3 100644 --- a/camel/camel-tcp-stream-ssl.c +++ b/camel/camel-tcp-stream-ssl.c @@ -183,6 +183,11 @@ stream_read (CamelStream *stream, char *buffer, size_t n) ssize_t nread; do { + if (camel_operation_cancel_check (NULL)) { + errno = EINTR; + return -1; + } + nread = PR_Read (tcp_stream_ssl->priv->sockfd, buffer, n); if (nread == -1) set_errno (PR_GetError ()); @@ -198,6 +203,11 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) ssize_t w, written = 0; do { + if (camel_operation_cancel_check (NULL)) { + errno = EINTR; + return -1; + } + do { w = PR_Write (tcp_stream_ssl->priv->sockfd, buffer + written, n - written); if (w == -1) |