Changeset 02a6a18 in mod_gnutls
- Timestamp:
- Nov 11, 2015, 8:34:01 PM (7 years ago)
- Branches:
- asyncio, debian/master, debian/stretch-backports, jessie-backports, main, master, proxy-ticket, upstream
- Children:
- f5a36ee
- Parents:
- a61edfd
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/gnutls_io.c
ra61edfd r02a6a18 41 41 #define IS_PROXY_STR(c) \ 42 42 ((c->is_proxy == GNUTLS_ENABLED_TRUE) ? "proxy " : "") 43 44 /** 45 * Convert APR_EINTR or APR_EAGAIN to the match raw error code. Needed 46 * to pass the status on to GnuTLS from the pull function. 47 */ 48 #define EAI_APR_TO_RAW(s) (APR_STATUS_IS_EAGAIN(s) ? EAGAIN : EINTR) 49 50 43 51 44 52 static apr_status_t gnutls_io_filter_error(ap_filter_t * f, … … 725 733 } 726 734 735 /** 736 * Pull function for GnuTLS 737 */ 727 738 ssize_t mgs_transport_read(gnutls_transport_ptr_t ptr, 728 void *buffer, size_t len) { 739 void *buffer, size_t len) 740 { 729 741 mgs_handle_t *ctxt = ptr; 730 742 apr_status_t rc; … … 752 764 */ 753 765 if (APR_STATUS_IS_EAGAIN(rc) || APR_STATUS_IS_EINTR(rc) 754 || (rc == APR_SUCCESS 755 && APR_BRIGADE_EMPTY(ctxt->input_bb))) { 756 757 if (APR_STATUS_IS_EOF(ctxt->input_rc)) { 766 || (rc == APR_SUCCESS 767 && APR_BRIGADE_EMPTY(ctxt->input_bb))) 768 { 769 if (APR_STATUS_IS_EOF(ctxt->input_rc)) 770 { 758 771 return 0; 759 } else { 772 } 773 else 774 { 760 775 if (ctxt->session) 761 gnutls_transport_set_errno(ctxt-> 762 session, 763 EINTR); 776 gnutls_transport_set_errno(ctxt->session, 777 EAI_APR_TO_RAW(ctxt->input_rc)); 764 778 return -1; 765 779 } 766 780 } 767 768 781 769 782 if (rc != APR_SUCCESS) { … … 783 796 784 797 if (APR_STATUS_IS_EAGAIN(ctxt->input_rc) 785 || APR_STATUS_IS_EINTR(ctxt->input_rc)) { 786 if (len == 0) { 798 || APR_STATUS_IS_EINTR(ctxt->input_rc)) 799 { 800 if (len == 0) 801 { 787 802 if (ctxt->session) 788 803 gnutls_transport_set_errno(ctxt->session, 789 EINTR);804 EAI_APR_TO_RAW(ctxt->input_rc)); 790 805 return -1; 791 806 }
Note: See TracChangeset
for help on using the changeset viewer.