33 lines
995 B
Diff
33 lines
995 B
Diff
Fix packet discards HTTP redirect.
|
|
|
|
Disconnect the connection by poll() timeout.
|
|
If timeout=0 and apr_wait_for_io_or_timeout()=APR_TIMEUP then
|
|
apr_socket_recv() returns EAGAIN.
|
|
|
|
Upstream-Status: Pending
|
|
|
|
Signed-off-by: Noriaki Yoshitane <yoshitane.nrs@cnt.ncos.nec.co.jp>
|
|
Signed-off-by: Li Wang <li.wang@windriver.com>
|
|
---
|
|
network_io/unix/sendrecv.c | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/network_io/unix/sendrecv.c b/network_io/unix/sendrecv.c
|
|
index c133a26..e8faf15 100644
|
|
--- a/network_io/unix/sendrecv.c
|
|
+++ b/network_io/unix/sendrecv.c
|
|
@@ -85,6 +85,10 @@ apr_status_t apr_socket_recv(apr_socket_t *sock, char *buf, apr_size_t *len)
|
|
&& (sock->timeout > 0)) {
|
|
do_select:
|
|
arv = apr_wait_for_io_or_timeout(NULL, sock, 1);
|
|
+ if ((arv == APR_TIMEUP) && (sock->timeout == 0)) {
|
|
+ *len = 0;
|
|
+ return EAGAIN;
|
|
+ }
|
|
if (arv != APR_SUCCESS) {
|
|
*len = 0;
|
|
return arv;
|
|
--
|
|
1.7.9.5
|
|
|