summaryrefslogtreecommitdiffstats
path: root/nss_engine_io.c
diff options
context:
space:
mode:
authorrcritten <>2010-09-24 02:06:57 +0000
committerrcritten <>2010-09-24 02:06:57 +0000
commitcb1d3ff69a065f176c6d953592287c0f8c6d4656 (patch)
treec3e5aeacf575ee5c1410dab8cc83a0685a2b6f0f /nss_engine_io.c
parent883452cbb698344ce6f287b1398d9f00a25ce677 (diff)
downloadmod_nss-cb1d3ff69a065f176c6d953592287c0f8c6d4656.tar.gz
mod_nss-cb1d3ff69a065f176c6d953592287c0f8c6d4656.tar.xz
mod_nss-cb1d3ff69a065f176c6d953592287c0f8c6d4656.zip
Revert PR_WOULD_BLOCK change and reset the NSPR error value before callling
PR_Read(). In testing with TPS from dogtag this really seems to fix #620856 this time.
Diffstat (limited to 'nss_engine_io.c')
-rw-r--r--nss_engine_io.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/nss_engine_io.c b/nss_engine_io.c
index 87dc195..e31bfc1 100644
--- a/nss_engine_io.c
+++ b/nss_engine_io.c
@@ -259,8 +259,7 @@ nspr_filter_in_read(PRFileDesc *fd, void *in, PRInt32 inlen)
*/
if (APR_STATUS_IS_EAGAIN(inctx->rc) || APR_STATUS_IS_EINTR(inctx->rc)
|| (inctx->rc == APR_SUCCESS && APR_BRIGADE_EMPTY(inctx->bb))) {
- nspr_filter_out_ctx_t *outctx = filter_ctx->outctx;
- inctx->rc = outctx->rc;
+ PR_SetError(PR_WOULD_BLOCK_ERROR, 0);
return -1;
}
@@ -350,6 +349,7 @@ static apr_status_t nss_io_input_read(nspr_filter_in_ctx_t *inctx,
break;
}
+ PR_SetError(0, 0);
rc = PR_Read(inctx->filter_ctx->pssl, buf + bytes, wanted - bytes);
if (rc > 0) {