Tatsuhiro Tsujikawa
bfac015d61
src: Use libev for rest of the applications
2015-01-03 00:19:41 +09:00
Tatsuhiro Tsujikawa
cd7258a7cd
Use libev for nghttpd
...
Benchmark shows 10% faster with libev compared to libevent. Also
response time in high load condition is much faster.
2015-01-03 00:19:41 +09:00
Tatsuhiro Tsujikawa
c3215af5f6
Fix missing error handling for session_after_frame_sent1
2015-01-02 14:49:36 +09:00
Tatsuhiro Tsujikawa
ba0f4d77a0
Merge branch 'alagoutte-travis'
2015-01-02 13:02:41 +09:00
Tatsuhiro Tsujikawa
eb681c827d
Merge branch 'travis' of https://github.com/alagoutte/nghttp2 into alagoutte-travis
2015-01-02 13:02:18 +09:00
Tatsuhiro Tsujikawa
e82c53803f
Merge branch 'alagoutte-misc'
2015-01-02 13:00:54 +09:00
Alexis La Goutte
781d570ec1
Travis: Remove python (No needed)
...
and it is now valided by http://lint.travis-ci.org/
(Hooray, your .travis.yml seems to be solid!)
2014-12-31 11:16:24 +01:00
Alexis La Goutte
fef9530ca5
fix error: variable 'mem' set but not used [-Werror=unused-but-set-variable]
2014-12-30 16:18:52 +01:00
Tatsuhiro Tsujikawa
ab1dd11705
nghttpd: Fix typo :host, which should be host
2014-12-25 00:49:36 +09:00
Tatsuhiro Tsujikawa
7bf5be9c17
nghttpd: Reserve 10 headers for request headers
2014-12-24 01:05:12 +09:00
Tatsuhiro Tsujikawa
ac11ba32ee
nghttpd: Use stack allocated array for headers in submit_file_response
2014-12-24 00:56:25 +09:00
Tatsuhiro Tsujikawa
a20ad03f7b
nghttpd: Use evbuffer_pullup(input, -1) cause buffer is most likely just one
2014-12-24 00:46:04 +09:00
Tatsuhiro Tsujikawa
292f219900
nghttpd: Avoid sending last 0-sized DATA
2014-12-24 00:31:21 +09:00
Tatsuhiro Tsujikawa
55e550f08f
nghttpd: Remove unused variable
2014-12-24 00:23:01 +09:00
Tatsuhiro Tsujikawa
32943a74b2
nghttpd: Just use socket send buffer and don't count our own buffer size
2014-12-24 00:19:16 +09:00
Tatsuhiro Tsujikawa
89291e4010
nghttpx: Improve priority handling in http2 upstream
2014-12-23 17:45:57 +09:00
Tatsuhiro Tsujikawa
a8a66843db
Merge branch 'kazuho-kazuho/issues/133'
2014-12-22 21:30:51 +09:00
Tatsuhiro Tsujikawa
32b34c4b80
Merge branch 'kazuho/issues/133' of https://github.com/kazuho/nghttp2 into kazuho-kazuho/issues/133
2014-12-22 21:29:26 +09:00
Kazuho Oku
45d0d731eb
fill-in `data_stat` after copying the request entity into the temporary file
2014-12-22 07:26:02 +09:00
Kazuho Oku
125f62b71e
unlink the temporary file immediately after calling mkstemp
2014-12-22 07:24:36 +09:00
Kazuho Oku
eb6ba2a703
copy the request entity to temporary file if the source is stdin and if it is not a regular file
2014-12-21 14:06:44 +09:00
Tatsuhiro Tsujikawa
e559168bd7
Enable failmalloc test by default
2014-12-20 23:56:33 +09:00
Tatsuhiro Tsujikawa
959d05e6f8
failmalloc: Use nghttp2_mem instead of using dlsym
2014-12-20 23:56:33 +09:00
Tatsuhiro Tsujikawa
e60183313b
Document that calling nghttp2_submit_response to same stream twice is bad idea
2014-12-20 21:53:33 +09:00
Tatsuhiro Tsujikawa
7c0a0c495d
Rename nghttp2_stream.data_item to nghttp2_stream.item and related functions
...
Initially, we use nghttp2_stream.data_item to refer only item with
DATA frame. But recently we use it to refer HEADERS frame as well.
So it is better to call just item rather than data_item. This applies
to all related functions.
2014-12-20 21:48:31 +09:00
Tatsuhiro Tsujikawa
39eb1e4753
nghttp: Adjust priority upon upgrade
2014-12-19 23:33:13 +09:00
Tatsuhiro Tsujikawa
079682f313
deflatehd: Fix crash
2014-12-19 23:23:42 +09:00
Tatsuhiro Tsujikawa
e8513b3241
Make huffman encoding faster
2014-12-19 23:22:55 +09:00
Tatsuhiro Tsujikawa
8bac2087cf
nghttp2_session_mem_send: Handle stream closure early
...
Previously session_after_frame_sent is called after we detected all
data is sent. In nghttp2_session_mem_send, we only detect it in the
next call of the function. It means that if a frame data bearing
END_STREAM is on flight to the peer as a result of
nghttp2_session_mem_send, peer may get that data and knows the stream
closure and issues new stream. We may receive this new stream before
the next nghttp2_session_mem_send call, which means that we may
incorrectly assumes that peer violates maximum concurrent stream
limit. To fix this issue, we separate session_after_frame_sent into 2
functions: session_after_frame_sent1 and session_after_frame_sent2.
session_after_frame_sent1 handles on_frame_send_callback and stream
closure and we call this early in nghttp2_session_mem_send. This
makes number of streams are synchronized correctly with peer.
2014-12-18 21:52:17 +09:00
Tatsuhiro Tsujikawa
ce1bf11d4b
Fix memory leak
2014-12-18 21:02:44 +09:00
Tatsuhiro Tsujikawa
eb8138bfbd
nghttp: Advance next stream ID only when --idle-dep is used
2014-12-17 23:36:29 +09:00
Tatsuhiro Tsujikawa
5180eb93e5
Merge branch 'alagoutte-misc'
2014-12-17 23:25:22 +09:00
Alexis La Goutte
27fa4d310a
Fix: error pointer target types incompatible in C++ [-Werror=c++-compat]
2014-12-16 17:54:47 +01:00
Tatsuhiro Tsujikawa
adc22ec80b
nghttp: Print failed address
2014-12-17 00:26:41 +09:00
Tatsuhiro Tsujikawa
4bc9f2422b
Add nghttp2_mem example
2014-12-16 23:21:50 +09:00
Tatsuhiro Tsujikawa
d695d2ccc0
nghttp, nghttpx, nghttpd, h2load: Support h2-16 in NPN/ALPN
...
The nghttp2 library itself is still h2-14. To experiment with the
implementations to require h2-16 to test new features (e.g.,
prioritization), nghttp, nghttpx, nghttpd and h2load now support h2-16
as well as h2-14. Cleartext HTTP Upgrade is still limited to h2-14
however.
2014-12-16 22:57:58 +09:00
Tatsuhiro Tsujikawa
5fa9dd7cd5
nghttpx: Remove unused variable
2014-12-16 01:10:54 +09:00
Tatsuhiro Tsujikawa
b352ae03a9
src: Fix undefined reference error
2014-12-16 01:09:19 +09:00
Tatsuhiro Tsujikawa
c93da867e0
nghttpx: Fix bug SPDY upstream requires content-length if no FIN in SYN_STREAM
2014-12-15 23:42:59 +09:00
Tatsuhiro Tsujikawa
556811ec64
nghttpx: Don't connect backend if connection is not establish up front
2014-12-15 23:34:00 +09:00
Tatsuhiro Tsujikawa
403ece66e3
nghttpd: Fail if listen failed
2014-12-15 23:17:50 +09:00
Tatsuhiro Tsujikawa
9a35dbc4ab
src: Just check emptiness for value since spaces around value are stripped
2014-12-15 23:14:07 +09:00
Tatsuhiro Tsujikawa
6f70a53da6
src: http2::add_header: strip white spaces in value
2014-12-15 23:04:45 +09:00
Tatsuhiro Tsujikawa
93ee9e30d8
nghttp, h2load: Use recommended ciphers and assign sane SSL_CTX options
2014-12-13 01:37:57 +09:00
Tatsuhiro Tsujikawa
a84c319d62
src: Print stream ID in priority field as dep_stream_id
2014-12-13 01:20:58 +09:00
Tatsuhiro Tsujikawa
467b419947
nghttp: Add --dep-idle option to create anchor idle node for dependency
2014-12-13 01:19:27 +09:00
Tatsuhiro Tsujikawa
ee158fb0aa
Add nghttp2_session_{set,get}_next_stream_id API function
2014-12-13 01:18:15 +09:00
Tatsuhiro Tsujikawa
280c9dfcf3
Keep idle streams in separate list
...
Previously we handle idle streams as closed streams. We only keeps
sum of closed streams and active streams under max concurrent streams
limit, idle streams gets deleted earlier than client expects.
In this change, idle streams are kept in separate list and not handled
as closed streams. To mitigate possible attack vector to make
unlimited idle streams, we cap the number of idle streams in a half of
max concurrent streams. This is arbitrary choice. It may be adjusted
in the future when we have interop experience.
2014-12-13 00:14:52 +09:00
Tatsuhiro Tsujikawa
e4c59dd164
nghttpd: Fix next_session_id_ is not incremented
2014-12-10 01:21:12 +09:00
Tatsuhiro Tsujikawa
f705b2aec4
Use NGHTTP2_PROTOCOL_ERROR for WINDOW_UPDATE with increments == 0
2014-12-10 01:02:30 +09:00