Go to file
George Agnelli ac882d56e9 Don't close the connection whenever Expect: 100-continue is missing.
Motivation:

The 4.1.0-Beta3 implementation of HttpObjectAggregator.handleOversizedMessage closes the
connection if the client sent oversized chunked data with no Expect:
100-continue header. This causes a broken pipe or "connection reset by
peer" error in some clients (tested on Firefox 31 OS X 10.9.5,
async-http-client 1.8.14).

This part of the HTTP 1.1 spec (below) seems to say that in this scenario the connection
should not be closed (unless the intention is to be very strict about
how data should be sent).

http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

"If an origin server receives a request that does not include an
Expect request-header field with the "100-continue" expectation,
the request includes a request body, and the server responds
with a final status code before reading the entire request body
from the transport connection, then the server SHOULD NOT close
the transport connection until it has read the entire request,
or until the client closes the connection. Otherwise, the client
might not reliably receive the response message. However, this
requirement is not be construed as preventing a server from
defending itself against denial-of-service attacks, or from
badly broken client implementations."

Modifications:

Change HttpObjectAggregator.handleOversizedMessage to close the
connection only if keep-alive is off and Expect: 100-continue is
missing. Update test to reflect the change.

Result:

Broken pipe and connection reset errors on the client are avoided when
oversized data is sent.
2014-10-24 21:49:39 +02:00
all Fix missing version properties of transport-epoll in all-in-one JAR 2014-10-21 22:36:19 +09:00
buffer Disable caching of PooledByteBuf for different threads. 2014-09-22 13:39:42 +02:00
codec Headers Cleanup 2014-10-22 09:26:31 -04:00
codec-dns Add EDNS support to DnsQueryEncoder 2014-10-16 17:06:20 +09:00
codec-haproxy Fix NPE problems 2014-07-20 12:55:08 +02:00
codec-http Don't close the connection whenever Expect: 100-continue is missing. 2014-10-24 21:49:39 +02:00
codec-http2 Overall clean-up on Headers and its subtypes 2014-10-22 15:08:12 +09:00
codec-memcache Add proxy support for client socket connections 2014-10-14 12:40:33 +09:00
codec-mqtt Add proxy support for client socket connections 2014-10-14 12:40:33 +09:00
codec-socks Add proxy support for client socket connections 2014-10-14 12:40:33 +09:00
codec-stomp Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
common Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
example Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
handler Disable SSLv3 to avoid POODLE vulnerability 2014-10-21 13:58:45 +09:00
handler-proxy Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
license Implemented LZMA frame encoder 2014-09-15 15:14:15 +02:00
microbench IPv6 address to string rfc5952 2014-09-22 20:30:14 -04:00
resolver Name resolver API and DNS-based name resolver 2014-10-16 17:10:36 +09:00
resolver-dns Fix another resource leak in DnsNameResolver 2014-10-17 11:38:43 +09:00
tarball [maven-release-plugin] prepare for next development iteration 2013-12-22 22:06:15 +09:00
testsuite Fix an infinite loop when writing a zero-length FileRegion 2014-10-17 16:04:37 +09:00
transport Increase the timeout of ChannelDeregistrationTest 2014-10-21 14:08:42 +09:00
transport-native-epoll Name resolver API and DNS-based name resolver 2014-10-16 17:10:36 +09:00
transport-rxtx Fix most inspector warnings 2014-07-02 19:04:11 +09:00
transport-sctp Allow to obtain RecvByteBufAllocator.Handle to allow more flexible implementations 2014-08-12 06:54:29 +02:00
transport-udt Name resolver API and DNS-based name resolver 2014-10-16 17:10:36 +09:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Exclude bin directory from git Motivation: 2014-08-27 06:33:22 +02:00
.travis.yml Travis CI branch whitelisting 2013-03-11 09:55:43 +09:00
CONTRIBUTING.md Move the pull request guide to the developer guide 2014-03-12 13:17:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Implemented LZMA frame encoder 2014-09-15 15:14:15 +02:00
pom.xml Upgrading HTTP/2 hpack to latest version 2014-10-16 08:59:08 -07:00
README.md Add a link to the 'native transports' page 2014-07-21 12:10:16 -07:00
run-example.sh ALPN java implementation 2014-08-30 13:41:07 -04:00

Netty Project

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

How to build

For the detailed information about building and developing Netty, please visit the developer guide. This page only gives very basic information.

You require the following to build Netty:

Note that this is build-time requirement. JDK 5 (for 3.x) or 6 (for 4.0+) is enough to run your Netty-based application.

Branches to look

The 'master' branch is where the development of the latest major version lives on. The development of all other versions takes place in each branch whose name is identical to <majorVersion>.<minorVersion>. For example, the development of 3.9 and 4.0 resides in the branch '3.9' and the branch '4.0' respectively.