nghttp2 - HTTP/2 C Library and tools
Go to file
Tatsuhiro Tsujikawa d42f31ca78 nghttpx: Fix bug that data buffered in SSL object are not read
This is same issue described in https://github.com/h2o/h2o/issues/268.
That is if SSL object has decrypted data buffered inside it, and
application does not read it for some reason (e.g., rate limit), we
have to check the existence of data using SSL_pending.  This is
because buffered data inside SSL is not notified by io watcher.  It is
obvious, but we totally missed it.

nghttpx code normally reads everything until SSL_read returns error
(want-read).  But if rate limit is involved, we stop reading early.
Also in HTTP/1 code, while processing one request, we just read until
buffer is filled up.  In these cases, we may suffer from this problem.

This commit fixes this problem, by performing SSL_pending() and if it
has buffered data and read io watcher is enabled, we feed event using
ev_feed_event().
2015-04-06 22:31:36 +09:00
contrib Add contrib/.gitignore 2014-11-23 19:32:54 +09:00
doc Add nghttp2_send_data_callback to send DATA payload without copying 2015-04-04 21:23:50 +09:00
examples nghttpd, tiny-nghttpd: No need to check existence of stream 2015-04-05 23:13:29 +09:00
fedora fedora: add spec file 2012-10-27 14:54:06 -07:00
integration-tests Refactor .gitignore files 2015-03-29 18:40:37 +09:00
lib Don't call nghttp2_send_data_callback if stream has already closed 2015-04-05 12:40:21 +09:00
m4 Add libxml2.m4 for convenience to build nghttp2 from git repo easily 2015-02-21 21:06:19 +09:00
python python: Update url 2015-04-03 21:10:11 +09:00
src nghttpx: Fix bug that data buffered in SSL object are not read 2015-04-06 22:31:36 +09:00
tests Add nghttp2_send_data_callback to send DATA payload without copying 2015-04-04 21:23:50 +09:00
third-party nghttpx: Add OCSP stapling feature 2015-03-30 23:58:28 +09:00
.clang-format Add .clang-format config file and git-clang-format from clang project 2014-11-27 23:56:29 +09:00
.gitignore Refactor .gitignore files 2015-03-29 18:40:37 +09:00
.travis.yml travis: Add libev-dev 2015-01-03 00:25:19 +09:00
AUTHORS Added libtool files 2012-01-18 00:53:12 +09:00
CONTRIBUTION Make sure that nghttp2 license is MIT license 2015-04-01 19:41:32 +09:00
COPYING Make sure that nghttp2 license is MIT license 2015-04-01 19:41:32 +09:00
ChangeLog Added libtool files 2012-01-18 00:53:12 +09:00
Dockerfile.android Dockerfile.android: Update openssl to 1.0.2a 2015-03-31 21:36:53 +09:00
Makefile.am integration: Add Makefile and `make it` to run integration tests 2015-01-20 01:14:22 +09:00
NEWS Rebranding nghttp2 2013-07-13 00:43:06 +09:00
README Added libtool files 2012-01-18 00:53:12 +09:00
README.rst Mention OCSP stapling in doc 2015-03-31 23:31:24 +09:00
android-config Fix -Werror=cast-align error on 32 bit platform 2015-03-03 22:36:24 +09:00
android-make Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
configure.ac Remove dependency on libws2_32 on Windows build 2015-03-28 19:58:44 +09:00
gendowncasetbl.py mod a+x to auto-gen scripts 2014-10-27 21:27:41 +09:00
genheaderfunc.py Use literal instead of computed value in token lookup 2015-03-21 23:03:37 +09:00
genlibtokenlookup.py Use literal instead of computed value in token lookup 2015-03-21 23:03:37 +09:00
gennmchartbl.py mod a+x to auto-gen scripts 2014-10-27 21:27:41 +09:00
genvchartbl.py mod a+x to auto-gen scripts 2014-10-27 21:27:41 +09:00
git-clang-format Add .clang-format config file and git-clang-format from clang project 2014-11-27 23:56:29 +09:00
help2rst.py src: Use separator "--" to mark start of the footer without ambiguity 2015-03-31 00:21:52 +09:00
makebashcompletion Add bash_completion files for nghttp, nghttpd, nghttpx and h2load 2015-02-15 12:05:27 +09:00
makemanpages Produce man pages using sphinx 2015-01-10 00:37:42 +09:00
makerelease.sh Update release script 2014-02-05 23:12:53 +09:00
mkcipherlist.py mkcipherlist.py: Update doc 2014-10-27 21:24:41 +09:00
mkhufftbl.py mkhufftbl.py: Update doc 2014-10-27 21:24:41 +09:00
mkstatichdtbl.py mkstatictbl.py: Update doc 2014-10-27 21:24:41 +09:00
nghttpx.conf.sample Fix comments, too 2015-03-25 21:04:49 +08:00
pre-commit Add pre-commit script 2014-11-27 23:56:29 +09:00
proxy.pac.sample Add sample pac file and release script 2013-01-12 17:05:11 +09:00

README

See README.rst