Commit Graph

384 Commits

Author SHA1 Message Date
Joakim Erdfelt b7f9c9aca9 Updating to version 9.3.7-SNAPSHOT 2016-01-13 08:21:01 -07:00
Joakim Erdfelt 21ca3f6690 Updating to version 9.3.7.RC1 2016-01-13 07:30:24 -07:00
Joakim Erdfelt cd39fd84fe Happy New Year 2016 2016-01-04 14:31:22 -07:00
Simone Bordet fdadc942e9 484818 - Expose interesting HTTP/2 attributes and operations via JMX.
Added flow control stall times and improved dump().
2015-12-28 14:30:24 +01:00
Simone Bordet 997b868ecd 484878 - Make BufferingFlowControlStrategy.bufferRatio configurable via JMX.
Made the property writable.
2015-12-24 12:10:20 +01:00
Simone Bordet 7598062bbb Improved logging. 2015-12-24 10:36:17 +01:00
Simone Bordet 30694b675b 484876 - Make simpler to customize the FlowControlStrategy.
Introduced FlowControlStrategy.Factory along with getters and setters
in relevant classes.
2015-12-24 10:32:36 +01:00
Simone Bordet 59680d47d3 484818 - Expose interesting HTTP/2 attributes and operations via JMX.
Exposed number of session stalls.
2015-12-23 16:19:08 +01:00
Simone Bordet 7a33efdf66 484861 - Improve FlowControlStrategy stall handling.
Changed the way on[Session|Stream]Stalled() is notified.
Instead that from within the HTTP2Flusher, those methods are now
called from onDataSending(), invoking them only once per stall.
2015-12-23 15:42:25 +01:00
Simone Bordet a5983c560a Avoid allocating the ALPNClientConnectionFactory if there is no
SslContextFactory.
2015-12-23 11:20:19 +01:00
Simone Bordet 14a3b2eab2 484818 - Expose interesting HTTP/2 attributes and operations via JMX.
Initial work to expose already existing attributes on the client.
2015-12-23 11:08:25 +01:00
Simone Bordet b7ab9e0a22 484818 - Expose interesting HTTP/2 attributes and operations via JMX.
Initial work to expose already existing attributes on the server.
2015-12-23 11:08:25 +01:00
Simone Bordet 8f4cc73613 484585 - Avoid sending request using a connection that is idle timing out.
Rewritten handling of idle timeouts in light of issue #484718.
2015-12-21 11:47:05 +01:00
Simone Bordet 988e596c71 484585 - Avoid sending request using a connection that is idle timing out.
Added guard to avoid that the idle timeout expires just before
sending the request.

Reworked the way idle timeouts are handled, to support the case where
the idle timeout just expired and the request can be tried on a
different connection/channel.
2015-12-18 15:56:31 +01:00
Simone Bordet 4eef2a347f Added factory method to create the HttpChannel. 2015-12-18 15:56:31 +01:00
Simone Bordet 717fc7819d 484262 - Race condition between GOAWAY disconnect and ability to make new request.
Fixed by making sure that when a peer received a GOAWAY frame, it
does not also notify the onFailure() callback.
2015-12-15 15:35:04 +01:00
Simone Bordet d4d9ceea86 Improved toString(). 2015-12-15 14:11:56 +01:00
Simone Bordet 8d28be5786 484210 - HttpClient over HTTP/2 should honor maxConcurrentStreams.
Fixed by sending queued requests in a loop up to maxConcurrentStreams.
Also updating the maxConcurrentStreams value when received from the
server.
2015-12-11 18:00:48 +01:00
Simone Bordet e674d3ec5e 483878 - Parallel requests stuck via the http client transport over HTTP/2. 2015-12-11 17:58:31 +01:00
Simone Bordet 77e0df1193 484167 - GOAWAY frames aren't handling disconnects appropriately on Client.
Improved handling of the failure case.
2015-12-11 12:34:48 +01:00
Simone Bordet c3889873f6 484167 - GOAWAY frames aren't handling disconnects appropriately on Client.
Fixed by overriding onClose() to listen for GOAWAY frames, and acting
appropriately.
2015-12-11 12:25:54 +01:00
Simone Bordet e7d8980952 Improved generate/parse tests. 2015-12-09 11:56:49 +01:00
Simone Bordet 35da4a3c54 483878 - Parallel requests stuck via the http client transport over HTTP/2.
Fixed by recycling correctly the blockBuffer.
2015-12-09 11:56:26 +01:00
Greg Wilkins a2c057892e 483039 - HTTP2 Upgrade case sensitivity on Connection header 2015-11-26 07:06:38 +11:00
Simone Bordet 3c54806d47 482959 - Local stream count never decrements when closing a stream causing IllegalStateException.
This issue was caused by removeStream(IStream, boolean) to take a
boolean parameter that indicated whether the close of the stream was
caused by a sent frame (local) or by a received frame (remote).

However, this was wrong, since a local stream may be closed by
receiving a frame. This error was causing the local and remote stream
counts held by HTTP2Session to be decremented wrongly, causing the
IllegalStateException mentioned in the bug report.

Fixed by decrementing the stream counters based on whether the stream
itself is local or remote.
2015-11-25 12:58:02 +01:00
Simone Bordet f596bf1566 Improved javadocs for onPreface(). 2015-11-25 12:58:02 +01:00
Simone Bordet 793c816c66 Improved logging. 2015-11-18 19:25:34 +01:00
Joakim Erdfelt edf686fe0a Updating to version 9.3.7-SNAPSHOT 2015-11-06 12:13:00 -07:00
Joakim Erdfelt d737e1c638 Updating to version 9.3.6.v20151106 2015-11-06 11:09:32 -07:00
Simone Bordet 58027a3421 481225 - Secondary resources with query parameters are not properly pushed.
Fixed by making PushCacheFilter remember the query parameters for
secondary resources, so that the PUSH_PROMISE frame can be correctly
generated with the query parameters.
2015-11-02 11:37:17 +01:00
Simone Bordet cbb7be040f 480260 - HPack decode error for buffers with offset.
Fixed calculations to advance the ByteBuffer.
2015-10-20 23:19:10 +02:00
Simone Bordet 3c26ffb227 480061 - HTTP/2 server doesn't send GOAWAY frame when shutting down.
Fixed by overriding Connection.close() and sending the GOAWAY from
there, which is triggered when the SelectorManager stops.

This allowed simplification of client code too.
2015-10-19 12:18:01 +02:00
Joakim Erdfelt dde32787c4 Updating to version 9.3.6-SNAPSHOT 2015-10-12 15:47:37 -07:00
Joakim Erdfelt 29722bd880 Updating to version 9.3.5.v20151012 2015-10-12 15:10:39 -07:00
Simone Bordet ccbd626cb2 479537 - Server preface sent after client preface reply.
Fixed by anticipating the onPreface() callback on server before
processing the client preface's SETTINGS frame.
2015-10-12 18:36:53 +02:00
Joakim Erdfelt 2cce7510e1 Updating to 9.3.5-SNAPSHOT 2015-10-08 17:49:09 -07:00
Joakim Erdfelt 37296bec3c Updating to version 9.3.4.v20151007 2015-10-07 14:58:38 -07:00
Simone Bordet 0ca40b59c6 479277 - HttpClient with HTTP/2 transport does not work for "https" URLs.
Fixed by reworking how ClientConnectionFactories are handled by both
HTTP2Client and by HttpClientTransportOverHTTP2, to avoid that the
latter wraps the nested factories with SslConnection twice.
2015-10-07 21:39:02 +02:00
Simone Bordet 6300480c0b Forwarding HttpClient properties to HTTP2Client at startup. 2015-09-29 12:16:00 +02:00
Simone Bordet 64ba5a6ef8 Improved usability of PingFrame. 2015-09-27 17:03:29 +02:00
Simone Bordet 83c5105e71 478434 - Priority weights should be between 1 and 256 inclusive.
Added required +1 in parsers and -1 in generators to convert from
unsigned byte to weight.
2015-09-26 00:14:45 +02:00
Simone Bordet 3dcdb9f802 Merged branch '477878' into 'master'. 2015-09-25 19:34:45 +02:00
Simone Bordet 3201d0acd2 477878 - HttpClient over HTTP/2 doesn't close upload stream.
Clarified the difference between last and consumed in HttpContent.
Fixed HTTP/2 transport to behave correctly in case of last content.
2015-09-25 19:31:40 +02:00
Simone Bordet 0c9eba0485 478275 - Priority information in HEADERS frame is not sent.
Now the priority information present in HEADERS frame is correctly
generated and sent as part of the HEADERS frame.
2015-09-25 13:00:26 +02:00
Simone Bordet 394c105d5d Cosmetics. 2015-09-25 12:39:53 +02:00
Simone Bordet f833f36c64 Cosmetics. 2015-09-21 09:34:15 +02:00
Simone Bordet d0bc20385a 477885 - Jetty HTTP2 client fails to connect with Netty server - HTTP2 client preface missing or corrupt.
Fixed by starting to read from the server only after having sent the
client preface.
2015-09-20 16:55:22 +02:00
Simone Bordet edce119c0e 477270 - Add ability to send a single PRIORITY frame.
Also fixed the mistake of sending the stream id as the parent stream id.
2015-09-14 11:51:19 +02:00
Simone Bordet dbd66b131b Introduced a HeadersFrame constructor for HEADERS frames with
unspecified stream id, to be used when creating new frames.
2015-09-14 11:51:19 +02:00
Simone Bordet 30532786cc Improved logging. 2015-09-14 11:51:19 +02:00