Commit Graph

617 Commits

Author SHA1 Message Date
Greg Wilkins 0dd58d2efe 459845 - Support upgrade from http1 to http2
Moved the sneaky direct upgrade to its own method and added support to detect a standard upgrade.
The standard upgrade now creates the h2c connection and decodes the settings header, but it does not yet process the
settings nor send a response to the request.
2015-03-12 16:52:17 +11:00
Greg Wilkins 48b6bec64c Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java
2015-03-05 20:17:20 +11:00
Greg Wilkins f4ad0dce98 461350 Update HttpParser IllegalCharacter handling to RFC7230 2015-03-05 19:54:25 +11:00
Greg Wilkins 042de2ec9f 461452 Double release of buffer by HttpReceiverOverHTTP
Updated HttpParse to always return from parseNext when messageComplete is called.  This allows it to notice reentrant state changes
and removes the need for HttpReceiverOverHTTP.methodComplete to return true, thus avoiding the race.
2015-03-05 15:26:19 +11:00
Joakim Erdfelt a32c9ed79c Merge branch 'jetty-9.2.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java
	jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
	jetty-start/src/main/java/org/eclipse/jetty/start/Module.java
2015-02-23 18:05:19 -07:00
Joakim Erdfelt 3e7b5f0fa9 460642 - HttpParser error 400 can expose previous buffer contents in HTTP status reason message
+ Simplifying behavior
2015-02-23 14:57:22 -07:00
Joakim Erdfelt 4df5647f6d 460642 - HttpParser error 400 can expose previous buffer contents in HTTP status reason message 2015-02-23 14:44:53 -07:00
Joakim Erdfelt 22a0cb4a28 Improving HttpField.nameHashCode 2015-02-20 10:54:28 -07:00
Joakim Erdfelt 08b4bd439e Fixing tests on http2-hpack
+ HttpField.nameHashCode() fixed to actually be US-ASCII case
  insensitive per documentation
+ Since removal of MetaData equals/hashcode, the comparison
  of the MetaData and MetaData.Response is now done entirely
  within the HpackTest
2015-02-20 10:16:03 -07:00
Simone Bordet f61cfb7016 Fixed construction of MetaData.Request and handling of HttpFields by MetaData. 2015-02-20 16:36:11 +01:00
Simone Bordet 2d932fe5c7 Removed hashCode() and equals() and fixed toString().
MetaData instances are mutable, and hashCode() and equals() were
based on those mutable fields; mutable hash codes break hash data
structures, when the object is inserted and then its hash code changes.

Fixed toString() to avoid NPE if _fields is null.
2015-02-20 16:02:54 +01:00
Greg Wilkins c22d79f673 Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	VERSION.txt
	aggregates/jetty-all/pom.xml
	apache-jsp/pom.xml
	apache-jstl/pom.xml
	examples/async-rest/async-rest-jar/pom.xml
	examples/async-rest/async-rest-webapp/pom.xml
	examples/async-rest/pom.xml
	examples/embedded/pom.xml
	examples/pom.xml
	jetty-alpn/jetty-alpn-client/pom.xml
	jetty-alpn/jetty-alpn-server/pom.xml
	jetty-alpn/pom.xml
	jetty-annotations/pom.xml
	jetty-ant/pom.xml
	jetty-cdi/pom.xml
	jetty-client/pom.xml
	jetty-continuation/pom.xml
	jetty-deploy/pom.xml
	jetty-distribution/pom.xml
	jetty-fcgi/fcgi-client/pom.xml
	jetty-fcgi/fcgi-server/pom.xml
	jetty-fcgi/pom.xml
	jetty-http-spi/pom.xml
	jetty-http/pom.xml
	jetty-io/pom.xml
	jetty-jaas/pom.xml
	jetty-jaspi/pom.xml
	jetty-jmx/pom.xml
	jetty-jndi/pom.xml
	jetty-jsp/pom.xml
	jetty-jspc-maven-plugin/pom.xml
	jetty-maven-plugin/pom.xml
	jetty-monitor/pom.xml
	jetty-nosql/pom.xml
	jetty-osgi/jetty-osgi-alpn/pom.xml
	jetty-osgi/jetty-osgi-boot-jsp/pom.xml
	jetty-osgi/jetty-osgi-boot-warurl/pom.xml
	jetty-osgi/jetty-osgi-boot/pom.xml
	jetty-osgi/jetty-osgi-httpservice/pom.xml
	jetty-osgi/jetty-osgi-npn/pom.xml
	jetty-osgi/pom.xml
	jetty-osgi/test-jetty-osgi-context/pom.xml
	jetty-osgi/test-jetty-osgi-webapp/pom.xml
	jetty-osgi/test-jetty-osgi/pom.xml
	jetty-plus/pom.xml
	jetty-proxy/pom.xml
	jetty-quickstart/pom.xml
	jetty-rewrite/pom.xml
	jetty-runner/pom.xml
	jetty-security/pom.xml
	jetty-server/pom.xml
	jetty-servlet/pom.xml
	jetty-servlets/pom.xml
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/AsyncGzipFilter.java
	jetty-spdy/pom.xml
	jetty-spdy/spdy-alpn-tests/pom.xml
	jetty-spdy/spdy-client/pom.xml
	jetty-spdy/spdy-core/pom.xml
	jetty-spdy/spdy-example-webapp/pom.xml
	jetty-spdy/spdy-http-client-transport/pom.xml
	jetty-spdy/spdy-http-common/pom.xml
	jetty-spdy/spdy-http-server/pom.xml
	jetty-spdy/spdy-npn-tests/pom.xml
	jetty-spdy/spdy-server/pom.xml
	jetty-spring/pom.xml
	jetty-start/pom.xml
	jetty-util-ajax/pom.xml
	jetty-util/pom.xml
	jetty-webapp/pom.xml
	jetty-websocket/javax-websocket-client-impl/pom.xml
	jetty-websocket/javax-websocket-server-impl/pom.xml
	jetty-websocket/pom.xml
	jetty-websocket/websocket-api/pom.xml
	jetty-websocket/websocket-client/pom.xml
	jetty-websocket/websocket-common/pom.xml
	jetty-websocket/websocket-server/pom.xml
	jetty-websocket/websocket-servlet/pom.xml
	jetty-xml/pom.xml
	pom.xml
	tests/pom.xml
	tests/test-continuation/pom.xml
	tests/test-integration/pom.xml
	tests/test-jmx/jmx-webapp-it/pom.xml
	tests/test-jmx/jmx-webapp/pom.xml
	tests/test-jmx/pom.xml
	tests/test-loginservice/pom.xml
	tests/test-quickstart/pom.xml
	tests/test-sessions/pom.xml
	tests/test-sessions/test-hash-sessions/pom.xml
	tests/test-sessions/test-jdbc-sessions/pom.xml
	tests/test-sessions/test-mongodb-sessions/pom.xml
	tests/test-sessions/test-sessions-common/pom.xml
	tests/test-webapps/pom.xml
	tests/test-webapps/test-jaas-webapp/pom.xml
	tests/test-webapps/test-jetty-webapp/pom.xml
	tests/test-webapps/test-jndi-webapp/pom.xml
	tests/test-webapps/test-mock-resources/pom.xml
	tests/test-webapps/test-proxy-webapp/pom.xml
	tests/test-webapps/test-servlet-spec/pom.xml
	tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml
	tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml
	tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml
	tests/test-webapps/test-webapp-rfc2616/pom.xml
2015-02-19 14:05:00 +11:00
Greg Wilkins 13040f300d 460291 - AsyncGzipFilter Mappings
Added test harness to confirm mapping precidence
2015-02-19 09:15:38 +11:00
Greg Wilkins b78faff1bf improved exception messages during tests 2015-02-18 17:35:43 +11:00
Greg Wilkins c3332e7d2e 459845 - Support upgrade from http1 to http2/websocket
Added support for unofficial "upgrade" from http/1 to h2c
2015-02-13 12:16:03 +11:00
Greg Wilkins 0f7ee8d607 Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpVersion.java
	jetty-io/src/main/java/org/eclipse/jetty/io/EndPoint.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java
2015-02-13 11:45:56 +11:00
Greg Wilkins 2b2a70a93a 459845 Support upgrade
Added the concept of UpgradeFrom and UpgradeTo connections that support
transferring a buffer with content before opening new connection.
Aded EndPoint.update method as utility
2015-02-13 11:41:18 +11:00
Greg Wilkins ca8015828c 458663 Handle null header values 2015-02-11 14:30:26 +11:00
Greg Wilkins afdc522d20 fixed merge 2015-01-23 12:15:28 +01:00
Greg Wilkins 5b42345cc6 Merge remote-tracking branch 'origin/jetty-9.2.x' 2015-01-23 11:43:20 +01:00
Greg Wilkins 7e608a70eb 458209 Length check for HttpMethod MOVE lookahead 2015-01-23 11:04:33 +01:00
Greg Wilkins e1cc5fb487 Merge remote-tracking branch 'origin/master' into jetty-9.3-ewyk
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
	jetty-server/src/main/java/org/eclipse/jetty/server/QueuedHttpInput.java
	jetty-util/src/main/java/org/eclipse/jetty/util/thread/NonBlockingThread.java
2015-01-08 15:21:01 +01:00
Joakim Erdfelt a3201a3c81 Happy New Year 2015 2015-01-07 17:06:59 -07:00
Joakim Erdfelt 6a0668b7a1 Happy New Year 2015 2015-01-07 17:03:30 -07:00
Simone Bordet 19570a7530 Removed printStackTrace() call. 2015-01-05 13:31:48 +01:00
Greg Wilkins a89a6927e8 yet another refactor of HttpInput.... must read -1 before isFinished is true 2014-12-24 19:34:06 +01:00
Greg Wilkins fecc03a2f5 fixed some more tests after EWYK refactor 2014-12-23 22:20:49 +01:00
Greg Wilkins dfe9dc3115 Further experimentation with PushBuilder 2014-12-09 12:27:39 +01:00
Simone Bordet 04b74d5ffe Merged branch 'jetty-9.2.x' into 'master'. 2014-12-02 21:09:23 +01:00
Simone Bordet ba3228fa21 453793 - _maxHeaderBytes>0 is not verified in parseNext() when in State.CLOSED.
Added expression to check whether _maxHeaderBytes>0.
2014-12-02 21:06:51 +01:00
Greg Wilkins 174f2992a8 439374 Use utf-8 as default charset for html 2014-11-27 17:04:54 +11:00
Simone Bordet 57f90ae7d1 452465 - 100% CPU spin on page reload.
Fixed by adding a MetaData.recycle() method that properly recycles
the MetaData.Request object so that HttpChannelOverHttp.earlyEOF()
properly closes the connection when it's idle.
2014-11-20 13:00:02 +01:00
Greg Wilkins ab2e9c357f Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpFields.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
	jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java
2014-11-20 16:34:30 +11:00
Greg Wilkins 1915e592b5 452424 Do not add Date header if already set 2014-11-20 15:33:22 +11:00
Greg Wilkins 593cb39059 Implemented the PROXY protocol
Removed old HttpParser PROXY tests
2014-11-14 10:28:04 +11:00
Greg Wilkins a62f68e438 Added 421 MISDIRECTED_REQUEST 2014-11-14 09:46:46 +11:00
Greg Wilkins a308c087ed Implemented the PROXY protocol
Moved the PROXY protocol support from HttpParser to a ConnectionFactory.
See http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt
2014-11-13 19:55:01 +11:00
Greg Wilkins 1834e360ea Added RFC6585 status codes and use 429 for DoSFilter 2014-11-12 14:16:41 +11:00
Greg Wilkins 47a92e9608 minor cleanups of HttpContent 2014-11-06 16:46:47 +11:00
Joakim Erdfelt b314bfcc94 446944 - ServletTester and HttpTester should be in <classifier>tests</classifier>
Moving HttpTester to "tests" scoped jetty-http artifact.

 + HttpTester, a testing class, was used by jetty-servlets,
   embedded-jetty-examples, and test-integration, all from
   those testing scopes.  Moved the HttpTester into the
   pre-existing jetty-http "tests" classified artifact.

Moving ServletTester to "tests" scoped jetty-servlet artifact.

 + ServletTester, a testing class, was used by jetty-servlets,
   test-integration, and test-jetty-webapp.  This move puts
   this class in the pre-existing jetty-servlet "tests" classified
   artifact.
2014-10-29 09:50:32 -07:00
Joakim Erdfelt 8a72a153a1 Merge branch 'jetty-9.2.x' 2014-10-28 12:32:55 -07:00
Joakim Erdfelt 264e0bce39 Revert "Moving HttpTester to "tests" scoped jetty-http artifact."
This reverts commit 8d85940077.
2014-10-28 07:50:56 -07:00
Greg Wilkins 31e448ffd6 Removed duplication of HttpGenerator$Info vs http.MetaData
Use MetaData throughout code base
2014-10-24 15:51:20 +11:00
Greg Wilkins 738c47bc55 447515 Remove GzipFilter
Moved all usages of GzipFilter to GzipHandler
added support to ServerContextHandler to create a GzipHandler
2014-10-24 08:17:05 +11:00
Greg Wilkins ec79a6f88e Improve HTTP header pre-encoding
The HttpContent class has been reworked to store HttpField instances, we may be generated on
demand or instances of PreEncodedHttpField.

The encoding of HTTP2 fields has been generalized to handle both indexed and literal fields, selected
by header enum set.

Default servlet and response classes have been cleaned up in how they set response headers.
2014-10-16 12:31:37 +11:00
Simone Bordet fb590a5fff Fixed merge conflict. 2014-10-13 17:10:03 +02:00
Simone Bordet e7d830c26e Merged branch 'jetty-9.2.x' into 'master'. 2014-10-13 16:57:52 +02:00
Joakim Erdfelt 8d85940077 Moving HttpTester to "tests" scoped jetty-http artifact.
+ HttpTester, a testing class, was used by jetty-servlets,
   embedded-jetty-examples, and test-integration, all from
   those testing scopes.  Moved the HttpTester into the
   pre-existing jetty-http "tests" classified artifact.
2014-10-13 07:35:12 -07:00
Joakim Erdfelt 1511be8c97 Committing proper testcase for bug 440823 2014-10-11 22:51:15 -07:00
Greg Wilkins a94e0287b9 446559 Avoid spin consuming extra data 2014-10-10 22:30:54 +11:00