diff options
Diffstat (limited to 'packages/libetpan/libetpan-0.36/gnutls.patch')
-rw-r--r-- | packages/libetpan/libetpan-0.36/gnutls.patch | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/packages/libetpan/libetpan-0.36/gnutls.patch b/packages/libetpan/libetpan-0.36/gnutls.patch deleted file mode 100644 index d2ccdcf9d0..0000000000 --- a/packages/libetpan/libetpan-0.36/gnutls.patch +++ /dev/null @@ -1,214 +0,0 @@ - -# -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher -# - ---- libetpan/src/Makefile.in~gnutls 2005-03-10 10:11:30.000000000 +0100 -+++ libetpan/src/Makefile.in 2005-03-11 21:43:10.975597607 +0100 -@@ -15,7 +15,7 @@ - - VERSINFO = @API_VERSION@ - CC = @CC@ --LDFLAGS = @LIBS@ @SSLLIBS@ @LDFLAGS@ @DBLIB@ -+LDFLAGS = @LIBS@ @SSLLIBS@ @LDFLAGS@ @DBLIB@ @GNUTLSLIBS@ - - SUBLIBS = data-types/libdata-types.la \ - low-level/liblow-level.la \ ---- libetpan/src/data-types/mailstream_ssl.c~gnutls 2005-03-10 10:11:30.000000000 +0100 -+++ libetpan/src/data-types/mailstream_ssl.c 2005-03-11 21:44:56.373673788 +0100 -@@ -61,7 +61,12 @@ - /* mailstream_low, ssl */ - - #ifdef USE_SSL -+#ifndef USE_GNUTLS - #include <openssl/ssl.h> -+#else -+#include <errno.h> -+#include <gnutls/openssl.h> -+#endif - #ifdef LIBETPAN_REENTRANT - #include <pthread.h> - #endif -@@ -85,9 +90,9 @@ - #ifdef USE_SSL - static int mailstream_low_ssl_close(mailstream_low * s); - static ssize_t mailstream_low_ssl_read(mailstream_low * s, -- void * buf, size_t count); -+ void * buf, size_t count); - static ssize_t mailstream_low_ssl_write(mailstream_low * s, -- const void * buf, size_t count); -+ const void * buf, size_t count); - static void mailstream_low_ssl_free(mailstream_low * s); - static int mailstream_low_ssl_get_fd(mailstream_low * s); - -@@ -113,10 +118,10 @@ - SSL_CTX * tmp_ctx; - int fd_flags; - int old_fd_flags; -- -+ - #ifdef LIBETPAN_REENTRANT - pthread_mutex_lock(&ssl_lock); --#endif -+#endif - if (!ssl_init_done) { - SSL_library_init(); - ssl_init_done = 1; -@@ -124,35 +129,37 @@ - #ifdef LIBETPAN_REENTRANT - pthread_mutex_unlock(&ssl_lock); - #endif -- -+ - tmp_ctx = SSL_CTX_new(TLSv1_client_method()); - if (tmp_ctx == NULL) - goto err; -- -+ - ssl_conn = (SSL *) SSL_new(tmp_ctx); - if (ssl_conn == NULL) - goto free_ctx; -- -+ - if (SSL_set_fd(ssl_conn, fd) == 0) - goto free_ssl_conn; -- -+ -+#ifndef USE_GNUTLS - SSL_set_read_ahead(ssl_conn, 1); -- -+#endif -+ - r = SSL_connect(ssl_conn); - if (r <= 0) - goto free_ssl_conn; -- -+ - fd_flags = fcntl(fd, F_GETFL, 0); - old_fd_flags = fd_flags; - fd_flags |= O_NDELAY; - r = fcntl(fd, F_SETFL, fd_flags); - if (r < 0) - goto free_ssl_conn; -- -+ - ssl_data = malloc(sizeof(* ssl_data)); - if (ssl_data == NULL) - goto reset_fd_flags; -- -+ - ssl_data->fd = fd; - ssl_data->ssl_conn = ssl_conn; - ssl_data->ssl_ctx = tmp_ctx; -@@ -241,52 +248,101 @@ - } - - static ssize_t mailstream_low_ssl_read(mailstream_low * s, -- void * buf, size_t count) -+ void * buf, size_t count) - { - struct mailstream_ssl_data * ssl_data; - int r; - - ssl_data = (struct mailstream_ssl_data *) s->data; -- -+ - while (1) { - int ssl_r; - fd_set fds_read; -+#ifndef USE_GNUTLS - struct timeval timeout; -- -+#else -+ fd_set fds_excp; -+ -+ { -+ struct timeval timeout2; -+ timeout2 = mailstream_network_delay; -+ -+ FD_ZERO(&fds_read); -+ FD_SET(ssl_data->fd, &fds_read); -+ FD_ZERO(&fds_excp); -+ FD_SET(ssl_data->fd, &fds_excp); -+ r = select(ssl_data->fd + 1, &fds_read, NULL, &fds_excp, &timeout2); -+ if (r==0) { -+ return -1; -+ } -+ if (FD_ISSET(ssl_data->fd, &fds_excp)) -+ return -1; -+ if (!FD_ISSET(ssl_data->fd, &fds_read)) -+ return 0; -+ } -+#endif - r = SSL_read(ssl_data->ssl_conn, buf, count); -- if (r > 0) -+ if (r > 0) { - return r; -- -+ } -+#ifdef USE_GNUTLS -+ if (errno!=EAGAIN&&errno!=EWOULDBLOCK) { -+ return r; -+ } -+#else - ssl_r = SSL_get_error(ssl_data->ssl_conn, r); - switch (ssl_r) { - case SSL_ERROR_NONE: - return r; -- -+ - case SSL_ERROR_ZERO_RETURN: - return r; -- -+ - case SSL_ERROR_WANT_READ: - timeout = mailstream_network_delay; -- -+ - FD_ZERO(&fds_read); - FD_SET(ssl_data->fd, &fds_read); - r = select(ssl_data->fd + 1, &fds_read, NULL, NULL, &timeout); - if (r == 0) - return -1; - break; -- -+ - default: - return r; - } -+#endif - } - } - - static ssize_t mailstream_low_ssl_write(mailstream_low * s, -- const void * buf, size_t count) -+ const void * buf, size_t count) - { - struct mailstream_ssl_data * ssl_data; - - ssl_data = (struct mailstream_ssl_data *) s->data; -+#ifdef USE_GNUTLS -+ { -+ fd_set fds_write; -+ fd_set fds_excp; -+ struct timeval timeout; -+ int r; -+ -+ timeout = mailstream_network_delay; -+ -+ FD_ZERO(&fds_write); -+ FD_SET(ssl_data->fd, &fds_write); -+ FD_ZERO(&fds_excp); -+ FD_SET(ssl_data->fd, &fds_excp); -+ r = select(ssl_data->fd + 1, NULL, &fds_write, &fds_excp, &timeout); -+ if (r == 0) -+ return -1; -+ if (FD_ISSET(ssl_data->fd, &fds_excp)) -+ return -1; -+ if (!FD_ISSET(ssl_data->fd, &fds_write)) -+ return 0; -+ } -+#endif - return SSL_write(ssl_data->ssl_conn, buf, count); - } - #endif |