diff options
Diffstat (limited to 'meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch')
-rw-r--r-- | meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch b/meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch new file mode 100644 index 0000000000..6805b8b6e2 --- /dev/null +++ b/meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | Fix packet discards HTTP redirect. | ||
2 | |||
3 | Disconnect the connection by poll() timeout. | ||
4 | If timeout=0 and apr_wait_for_io_or_timeout()=APR_TIMEUP then | ||
5 | apr_socket_recv() returns EAGAIN. | ||
6 | |||
7 | Upstream-Status: Pending | ||
8 | |||
9 | Signed-off-by: Noriaki Yoshitane <yoshitane.nrs@cnt.ncos.nec.co.jp> | ||
10 | Signed-off-by: Li Wang <li.wang@windriver.com> | ||
11 | --- | ||
12 | network_io/unix/sendrecv.c | 4 ++++ | ||
13 | 1 file changed, 4 insertions(+) | ||
14 | |||
15 | diff --git a/network_io/unix/sendrecv.c b/network_io/unix/sendrecv.c | ||
16 | index c133a26..e8faf15 100644 | ||
17 | --- a/network_io/unix/sendrecv.c | ||
18 | +++ b/network_io/unix/sendrecv.c | ||
19 | @@ -85,6 +85,10 @@ apr_status_t apr_socket_recv(apr_socket_t *sock, char *buf, apr_size_t *len) | ||
20 | && (sock->timeout > 0)) { | ||
21 | do_select: | ||
22 | arv = apr_wait_for_io_or_timeout(NULL, sock, 1); | ||
23 | + if ((arv == APR_TIMEUP) && (sock->timeout == 0)) { | ||
24 | + *len = 0; | ||
25 | + return EAGAIN; | ||
26 | + } | ||
27 | if (arv != APR_SUCCESS) { | ||
28 | *len = 0; | ||
29 | return arv; | ||
30 | -- | ||
31 | 1.7.9.5 | ||
32 | |||