diff options
author | Li Wang <li.wang@windriver.com> | 2015-07-08 15:53:19 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-07-16 15:08:40 +0100 |
commit | cef4de5cd6c12091146dc1ef02cd80e094c6728e (patch) | |
tree | a01995732a0a41f4e1b2df5d80359f155363a3b8 /meta/recipes-support/apr | |
parent | b6b9df15a630605619bff060d5073272685058d6 (diff) | |
download | openembedded-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')
-rw-r--r-- | meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch | 32 | ||||
-rw-r--r-- | meta/recipes-support/apr/apr_1.5.2.bb | 1 |
2 files changed, 33 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 00000000000..6805b8b6e25 --- /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 + diff --git a/meta/recipes-support/apr/apr_1.5.2.bb b/meta/recipes-support/apr/apr_1.5.2.bb index aac6276b149..c1f7f380ed7 100644 --- a/meta/recipes-support/apr/apr_1.5.2.bb +++ b/meta/recipes-support/apr/apr_1.5.2.bb @@ -15,6 +15,7 @@ SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \ file://configfix.patch \ file://run-ptest \ file://upgrade-and-fix-1.5.1.patch \ + file://Fix-packet-discards-HTTP-redirect.patch \ " SRC_URI[md5sum] = "4e9769f3349fe11fc0a5e1b224c236aa" |