fddbde7df2
Motivation: Recently merged ipfilter package has the following problems: * AbstractIpFilterHandler could be improved to support any SocketAddress types rather than only InetSocketAddress. * AbstractIpFilterHandler can be removed immediately after decision is made rather than keeping the outcome of the decision as an attribute. * AbstractIpFilterHandler doesn't have a hook for the accepted addresses. * The hook method (reject()) needs to be named in line with other handler methods (i.e. channelRejected()) * IpFilterRuleHandler should allow accepting zero rules - it's particularly useful for machine-configured setup (i.e. specifying zero rules disables ipfilter). * IpFilterRuleType.ALLOW/DENY should be ACCEPT/REJECT for consistency. Modifications: * AbstractIpFilterHandler has been renamed to AbstractRemoteAddressFilter and now uses type parameter. * Added channelAccepted() and renamed reject() to channelRejected() * Added ChannelHandlerContext as a parameter of accept() so that accept() can add a listener to the closeFuture() of the channel. This way, UniqueIpFilter continue working even if we remove the filtering handler early. * Various renames * IpFilterRuleHandler -> RuleBasedIpFilter * UniqueIpFilterHandler -> UniqueIpFilter Result: * Much cleaner API with more extensibility |
||
---|---|---|
all | ||
buffer | ||
codec | ||
codec-http | ||
codec-memcache | ||
codec-socks | ||
common | ||
example | ||
handler | ||
license | ||
microbench | ||
tarball | ||
testsuite | ||
transport | ||
transport-native-epoll | ||
transport-rxtx | ||
transport-sctp | ||
transport-udt | ||
.fbfilter.xml | ||
.fbprefs | ||
.gitignore | ||
.travis.yml | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
NOTICE.txt | ||
pom.xml | ||
README.md |
Netty Project
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
Links
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:
- Latest stable Oracle JDK 7
- Latest stable Apache Maven
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.