diff options
author | rcritten <> | 2010-09-24 02:06:57 +0000 |
---|---|---|
committer | rcritten <> | 2010-09-24 02:06:57 +0000 |
commit | cb1d3ff69a065f176c6d953592287c0f8c6d4656 (patch) | |
tree | c3e5aeacf575ee5c1410dab8cc83a0685a2b6f0f /nss_engine_io.c | |
parent | 883452cbb698344ce6f287b1398d9f00a25ce677 (diff) | |
download | mod_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.c | 4 |
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) { |