diff options
| -rw-r--r-- | NEWS | 14 | ||||
| -rw-r--r-- | configure.ac | 2 | ||||
| -rw-r--r-- | src/gnutls_io.c | 14 |
3 files changed, 27 insertions, 3 deletions
| @@ -1,8 +1,20 @@ | |||
| 1 | ** Version 0.5.5 (unreleased) | 1 | ** Version 0.5.6 |
| 2 | - Corrected issue with firefox and long POST data (by | ||
| 3 | handling EINTR and EAGAIN errors in read). | ||
| 4 | |||
| 5 | - Added support for chained client certificates | ||
| 6 | |||
| 7 | - Corrected more issues related to double frees | ||
| 8 | http://issues.outoforder.cc/view.php?id=102 | ||
| 9 | |||
| 10 | ** Version 0.5.5 (2009-06-13) | ||
| 2 | 11 | ||
| 3 | - Removed limits on CA certificate loading. Reported by | 12 | - Removed limits on CA certificate loading. Reported by |
| 4 | Sander Marechal and Jack Bates. | 13 | Sander Marechal and Jack Bates. |
| 5 | 14 | ||
| 15 | - Do not allow sending empty TLS packets even when instructed to. | ||
| 16 | This had the side effect of clients closing connection. | ||
| 17 | |||
| 6 | ** Version 0.5.4 (2009-01-04) | 18 | ** Version 0.5.4 (2009-01-04) |
| 7 | 19 | ||
| 8 | - mod_gnutls.h: modified definition to extern to avoid compilation | 20 | - mod_gnutls.h: modified definition to extern to avoid compilation |
diff --git a/configure.ac b/configure.ac index bb2aedf..54f8daa 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | dnl | 1 | dnl |
| 2 | AC_INIT(mod_gnutls, 0.5.4) | 2 | AC_INIT(mod_gnutls, 0.5.5) |
| 3 | OOO_CONFIG_NICE(config.nice) | 3 | OOO_CONFIG_NICE(config.nice) |
| 4 | MOD_GNUTLS_VERSION=AC_PACKAGE_VERSION | 4 | MOD_GNUTLS_VERSION=AC_PACKAGE_VERSION |
| 5 | AC_PREREQ(2.53) | 5 | AC_PREREQ(2.53) |
diff --git a/src/gnutls_io.c b/src/gnutls_io.c index 15de422..8187da6 100644 --- a/src/gnutls_io.c +++ b/src/gnutls_io.c | |||
| @@ -670,8 +670,15 @@ ssize_t mgs_transport_read(gnutls_transport_ptr_t ptr, | |||
| 670 | */ | 670 | */ |
| 671 | if (APR_STATUS_IS_EAGAIN(rc) || APR_STATUS_IS_EINTR(rc) | 671 | if (APR_STATUS_IS_EAGAIN(rc) || APR_STATUS_IS_EINTR(rc) |
| 672 | || (rc == APR_SUCCESS && APR_BRIGADE_EMPTY(ctxt->input_bb))) { | 672 | || (rc == APR_SUCCESS && APR_BRIGADE_EMPTY(ctxt->input_bb))) { |
| 673 | return 0; | 673 | |
| 674 | if (APR_STATUS_IS_EOF(ctxt->input_rc)) { | ||
| 675 | return 0; | ||
| 676 | } else { | ||
| 677 | gnutls_transport_set_errno(ctxt->session, EINTR); | ||
| 678 | return -1; | ||
| 679 | } | ||
| 674 | } | 680 | } |
| 681 | |||
| 675 | 682 | ||
| 676 | if (rc != APR_SUCCESS) { | 683 | if (rc != APR_SUCCESS) { |
| 677 | /* Unexpected errors discard the brigade */ | 684 | /* Unexpected errors discard the brigade */ |
| @@ -689,6 +696,11 @@ ssize_t mgs_transport_read(gnutls_transport_ptr_t ptr, | |||
| 689 | 696 | ||
| 690 | if (APR_STATUS_IS_EAGAIN(ctxt->input_rc) | 697 | if (APR_STATUS_IS_EAGAIN(ctxt->input_rc) |
| 691 | || APR_STATUS_IS_EINTR(ctxt->input_rc)) { | 698 | || APR_STATUS_IS_EINTR(ctxt->input_rc)) { |
| 699 | if (len == 0) { | ||
| 700 | gnutls_transport_set_errno(ctxt->session, EINTR); | ||
| 701 | return -1; | ||
| 702 | } | ||
| 703 | |||
| 692 | return (ssize_t) len; | 704 | return (ssize_t) len; |
| 693 | } | 705 | } |
| 694 | 706 | ||
