aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch
diff options
context:
space:
mode:
authorLi Wang <li.wang@windriver.com>2015-07-08 15:53:19 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-07-16 15:08:40 +0100
commitcef4de5cd6c12091146dc1ef02cd80e094c6728e (patch)
treea01995732a0a41f4e1b2df5d80359f155363a3b8 /meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch
parentb6b9df15a630605619bff060d5073272685058d6 (diff)
downloadopenembedded-core-contrib-cef4de5cd6c12091146dc1ef02cd80e094c6728e.tar.gz
apr: 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. Signed-off-by: Noriaki Yoshitane <yoshitane.nrs@cnt.ncos.nec.co.jp> Signed-off-by: Li Wang <li.wang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
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.patch32
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 @@
+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
+