162 Commits

Author SHA1 Message Date
Greg Wilkins
a14d843382 ignored osgi-spdy tests 2014-08-14 15:18:28 +10:00
Greg Wilkins
68a3ca8e31 improved debug logging of settings 2014-08-13 12:00:32 +10:00
Simone Bordet
a97d4642ab Improved toString() methods for frames. 2014-08-12 23:01:03 +02:00
Simone Bordet
20963c9c61 Refactored host and port to local variables. 2014-08-12 18:54:50 +02:00
Simone Bordet
814c84a212 Introduced configuration properties for ALPN/NPN advertised protocols.
No more need to copy protonego-alpn.xml to a jetty.base to specify
which protocols are advertised and in which order.
Instead, simply specify:

alpn.protocols=h2-14,http/1.1
alpn.defaultProtocol=http/1.1

in start.ini (in the example above for http2).
2014-08-12 18:54:33 +02:00
Simone Bordet
e147ce9528 Updated flow control implementation to detect when senders exceed
allowed windows.
2014-08-12 16:37:41 +02:00
Simone Bordet
4f4c3604a2 Made the test more reliable. 2014-08-12 16:27:33 +02:00
Simone Bordet
d2fa4dca60 Introduced configuration properties for ALPN/NPN advertised protocols.
No more need to copy protonego-alpn.xml to a jetty.base to specify
which protocols are advertised.
Instead, simply specify:

protonego.protocols=h2-14,http/1.1
protonego.defaultProtocol=http/1.1

in start.ini (in the example above for http2).
2014-08-11 23:59:26 +02:00
Simone Bordet
107a4fff20 Fixed handling of INITIAL_WINDOW_SIZE setting.
It must update only stream windows, and not the session window.
2014-08-11 18:43:50 +02:00
Simone Bordet
187c42fa4a Closing the flusher instead of just disconnecting after a GO_AWAY.
This ensures that frames that may have been added to the flusher queue
concurrently after the GO_AWAY are properly failed and the queue
drained.
2014-08-11 11:30:49 +02:00
Simone Bordet
59a9c0890c Fixed off-by-one in counting the padding bytes. 2014-08-08 23:53:18 +02:00
Simone Bordet
f8086dc7c2 Refactored the send of the SETTINGS frame from the client.
It's now sent after a call to onPreface(), which has been moved to
the common interface Session.Listener (from ServerSession.Listener),
so that client applications can customize the SETTINGS to send to the
server.
2014-08-08 23:52:20 +02:00
Simone Bordet
ab96bf775f Removed unneeded casting to DataFrame. 2014-08-08 18:19:02 +02:00
Greg Wilkins
5da39140df remove old TODOs 2014-08-08 18:30:56 +10:00
Simone Bordet
6b9a069d9d Waiting for all the frames to arrive before stopping. 2014-08-08 01:11:59 +02:00
Simone Bordet
466d8db8d8 Sending a SETTINGS frame after the preface, as required by the spec. 2014-08-08 01:11:59 +02:00
Simone Bordet
69927b935e Don't send a window update if the length is zero. 2014-08-08 01:11:59 +02:00
Greg Wilkins
287e86b7aa decomposed https,http2 and spdy modules to share ServerConnector 2014-08-07 12:58:12 +10:00
Greg Wilkins
64e49a1fe5 work around classloaders for field preencoders 2014-08-07 09:10:35 +10:00
Simone Bordet
55dec378fc Merged branch 'jetty-http2' into 'http2_flow_control' 2014-08-06 15:43:56 +02:00
Simone Bordet
abd139cc1b Reworked flow control implementation. Splitted HTTP2Flusher out of HTTP2Session.
Flow control window updates are now processed by the flusher, so that
it is the only component that handles window updates.
In the process of this refactoring, HTTP2Flusher was refactored out
of HTTP2Session.
2014-08-06 15:42:36 +02:00
Simone Bordet
2cd53831c0 Refactored onReadTimeout() to parent class. 2014-08-06 15:39:29 +02:00
Greg Wilkins
17f46665df preencoded httpfield optimisation 2014-08-06 21:09:26 +10:00
Greg Wilkins
b5971484a5 Basic push mechanism skeleton 2014-08-06 10:50:55 +10:00
Simone Bordet
22cdca9131 Merge branch 'jetty-http2' into http2_flow_control 2014-08-05 10:01:30 +02:00
Greg Wilkins
6b3c8d06a9 partial 100 continues support in http2 2014-08-05 16:14:53 +10:00
Greg Wilkins
d7f2c42e2d misc optimisation of http2 field creation 2014-08-05 12:55:37 +10:00
Simone Bordet
636c7eaeae Fixed handling of max concurrent streams.
There is a difference between the value set via configuration, that
always refer to remote streams (streams initiated by remote peers),
and the value received via SETTINGS frame, that always refer to local
streams (streams initiated locally).
2014-08-05 02:01:34 +02:00
Greg Wilkins
48d68a4916 handle http/1 host header in http/2 2014-08-05 09:21:27 +10:00
Simone Bordet
ac7aa4decc Flow control needs improvements. 2014-08-05 00:28:06 +02:00
Simone Bordet
20925ded97 Fixed insertion of frame header buffer at the right index.
In case the lease is not empty, the frame header buffer must not be
inserted at index 0, but just before the frame body buffer.
2014-08-04 12:15:14 +02:00
Simone Bordet
a2faa030cc Improved logging. 2014-08-04 12:09:35 +02:00
Simone Bordet
17c03385d6 Fixed send() by properly handling all cases. 2014-08-04 12:09:10 +02:00
Simone Bordet
35f0103add Added HTTP2 tests for multiple requests. 2014-08-03 00:27:28 +02:00
Simone Bordet
8d554b54a8 Fixed checks for headers too big. 2014-08-03 00:27:28 +02:00
Simone Bordet
e332aa9c43 Improved logging. 2014-08-03 00:27:28 +02:00
Greg Wilkins
1fb07644a1 Use HttpHeader enum for :path and similar h2 fields 2014-08-02 16:37:43 +10:00
Greg Wilkins
cd59d0085e improve known header handling in hpack encoding 2014-08-02 15:40:15 +10:00
Greg Wilkins
1873b306b3 Improved hpack encoder handling of custom fields 2014-08-02 12:56:12 +10:00
Simone Bordet
dcc8bfcd10 Fixed a reentrancy issue that caused a stack overflow.
The case was that shutdown was called, ShutdownFlusherEntry called
flusher.close(), which called super.close(), which called
onCompleteFailure(), which looped over the active items to fail them,
calling again ShutdownFlusherEntry, which called again flusher.close(),
etc.
2014-08-02 00:38:24 +02:00
Simone Bordet
87c4c5efd3 Updated to point to webtide.com, now HTTP/2 enabled. 2014-08-02 00:02:25 +02:00
Simone Bordet
51e4885911 Made HTTP2Client support SSL so that it can be used to test websites that serve HTTP2. 2014-08-01 19:03:29 +02:00
Simone Bordet
7004d71996 Reporting FRAME_SIZE_ERROR in case wrong frame lengths. 2014-08-01 16:22:36 +02:00
Simone Bordet
cddfa033f0 Implemented handling of SETTINGS_HEADER_TABLE_SIZE configuration property. 2014-08-01 16:20:20 +02:00
Simone Bordet
346b726c47 Taking into account the padding bytes in flow control length. 2014-08-01 15:54:12 +02:00
Simone Bordet
89a045855c Moved http2.frames.Flag to http2.Flags. 2014-08-01 15:04:14 +02:00
Simone Bordet
67fd213263 Moved http2.parser.ErrorCode to http2.ErrorCodes. 2014-08-01 15:03:49 +02:00
Simone Bordet
168a8f7dbf Reporting FRAME_SIZE_ERROR in case wrong frame lengths. 2014-08-01 15:01:03 +02:00
Simone Bordet
3283232f02 Added initial support for parsing CONTINUATION frames, and nothing more. 2014-08-01 14:02:11 +02:00
Simone Bordet
6b6267ed31 Updated implementation to draft-14. 2014-08-01 13:32:56 +02:00