Frederic Bregier
c230afaed1
Fix for #1313 and #1332
...
Add TEXTPLAIN in HttpHeaders
Remove all coding/decoding Attribute using URL scheme for name and
attribute
Add text/plain to contant-type
2013-05-05 21:36:38 +02:00
Jeff Pinner
128bbe3225
SPDY: refactor SpdyHttpDecoder to allow subclasses to access messageMap
2013-05-04 20:55:28 +02:00
Trustin Lee
1e0c83db23
Introduce AddressedEnvelope message type for generic representation of an addressed message
...
- Fixes #1282 (not perfectly, but to the extent it's possible with the current API)
- Add AddressedEnvelope and DefaultAddressedEnvelope
- Make DatagramPacket extend DefaultAddressedEnvelope<ByteBuf, InetSocketAddress>
- Rename ByteBufHolder.data() to content() so that a message can implement both AddressedEnvelope and ByteBufHolder (DatagramPacket does) without introducing two getter methods for the content
- Datagram channel implementations now understand ByteBuf and ByteBufHolder as a message with unspecified remote address.
2013-05-01 17:04:43 +09:00
Norman Maurer
9128d4f16a
Fix checkstyle
2013-04-30 21:11:41 +02:00
Norman Maurer
ee433ea911
Fix checkstyle
2013-04-30 20:55:50 +02:00
Norman Maurer
a48ed71e86
Fix type in class name
2013-04-30 20:41:50 +02:00
Norman Maurer
57a8a9fd98
[ #1321 ] HttpHeaders.removeTransferEncodingChunked(..) must handle the value in case insensitive manner
2013-04-30 20:41:20 +02:00
Trustin Lee
d92bcff1b6
Fix a bug where HttpContentEncoder generates an empty chunk even if it's not the last chunk
...
- Fixes #1312
- Added more test cases to ensure the fix
2013-04-27 15:38:28 +09:00
Trustin Lee
7884574c7b
Remove freeInboundBuffer() and freeOutboundBuffer() which has no value
...
- Fixes #1308
freeInboundBuffer() and freeOutboundBuffer() were introduced in the early days of the new API when we did not have reference counting mechanism in the buffer. A user did not want Netty to free the handler buffers had to override these methods.
However, now that we have reference counting mechanism built into the buffer, a user who wants to retain the buffers beyond handler's life cycle can simply return the buffer whose reference count is greater than 1 in newInbound/OutboundBuffer().
2013-04-25 09:15:55 +09:00
Trustin Lee
b5989e2449
Reduce exception instantiation overhead in SslHandler / Reduce unnecessary empty array creation
...
- Added EmptyArrays as an internal utility class
2013-04-24 09:32:53 +09:00
Trustin Lee
94aad58627
Fix incorrect name validation in AbstractHttpData
...
- Fixes #1228
2013-04-23 19:26:50 +09:00
Trustin Lee
9fe5048175
No need to make CaseIgnoringComparator public
...
.. because it's unsed only internally
2013-04-23 18:40:49 +09:00
Norman Maurer
9c4bfa44d9
[ #1294 ] Make sure ByteBuf is released once written to channel
2013-04-22 11:04:56 +02:00
Norman Maurer
c987dd556e
[ #1295 ] Make sure retain(..) returns the correct WebSocketFrame type
2013-04-21 13:00:50 +02:00
Norman Maurer
ca5554dfe7
[ #1236 ] Fix problem where adding a new ChannelHandler could block the eventloop
...
This change also introduce a few other changes which was needed:
* ChannelHandler.beforeAdd(...) and ChannelHandler.beforeRemove(...) were removed
* ChannelHandler.afterAdd(...) -> handlerAdded(...)
* ChannelHandler.afterRemoved(...) -> handlerRemoved(...)
* SslHandler.handshake() -> SslHandler.hanshakeFuture() as the handshake is triggered automatically after
the Channel becomes active
2013-04-19 07:00:50 +02:00
Trustin Lee
70eee55a48
Revamp HttpContentEncoder
...
- Use state machine to simplify the code
- Always produce a chunked response for simplicity
- Change the signature of beginEncode() - HttpContent was simply unnecessary.
- Add more test cases
- Fixes #1280
2013-04-17 12:51:22 +09:00
Trustin Lee
4b1df148a6
Fix a bug where HttpContentEncoder does not update 'Content-Length' and 'Transfer-Encoding' correctly
...
- Add 'Content-Length' and remove 'Transfer-Encoding' in case of FullHttpMessage
- Remove 'Content-Length' and add 'Transfer-Encoding: chunked' in case of non-full HttpMessage
- Fixes #1275
2013-04-16 11:49:47 +09:00
Norman Maurer
d8387fa4c3
[ #858 ] Merge ChannelPipeline.replaceAndForward into replace and removeAndForward into remove
2013-04-13 18:19:33 +02:00
Trustin Lee
b58e6787ee
Fix typo
2013-04-10 10:41:23 +09:00
irelandKen
9308625b2c
Update FullHttpMessage.java
...
I think FullHttpMessage = HttpMessage + LastHttpContent,
not that FullHttpMessage = FullHttpMessage + LastHttpContent
2013-04-08 21:12:19 +02:00
Norman Maurer
ded09fc778
No need t let SpdyOrHttpChooser extends ChannelDuplexHandler
2013-04-08 06:45:10 +02:00
Norman Maurer
3305a7df82
Also provide implementation for flush out of the box
2013-04-07 11:54:13 +02:00
Andrei Pozolotin
a3e760a003
fix #1234 - duplicate package-info.java errors in eclipse requires release of netty-build v 19 and netty-parent update.
2013-04-05 05:38:05 +09:00
Norman Maurer
af4b71a00e
Remove special handling of Object[] in codec framework (a.k.a unfolding)
...
- Fixes #1229
- Primarily written by @normanmaurer and revised by @trustin
This commit removes the notion of unfolding from the codec framework
completely. Unfolding was introduced in Netty 3.x to work around the
shortcoming of the codec framework where encode() and decode() did not
allow generating multiple messages.
Such a shortcoming can be fixed by changing the signature of encode()
and decode() instead of introducing an obscure workaround like
unfolding. Therefore, we changed the signature of them in 4.0.
The change is simple, but backward-incompatible. encode() and decode()
do not return anything. Instead, the codec framework will pass a
MessageBuf<Object> so encode() and decode() can add the generated
messages into the MessageBuf.
2013-04-03 21:44:54 +09:00
Trustin Lee
f95dbb7a4d
Make HttpPostRequestDecoder.addHttpData() and getFileUpload() protected
...
.. so that a user can extend it to get notified when changes are made
2013-04-02 16:07:31 +09:00
Norman Maurer
d9ac6638f4
[ #1221 ] Make sure HttpObjectAggregator 100-Continue buffer is not released
2013-04-02 07:38:46 +02:00
Prajwal Tuladhar
05850da863
enable checkstyle for test source directory and fix checkstyle errors
2013-03-30 13:18:57 +01:00
Jeff Pinner
b4b0be4e53
SPDY: allow multiple notification of closeSessionFuture
2013-03-28 15:15:09 +01:00
Norman Maurer
14a47075be
[ #1211 ] Fail ChannelPromise on SpdyProtocolException like it was before in 3.x
2013-03-28 07:20:34 +01:00
Norman Maurer
a97cca50df
[ #1212 ] Fire handshake status events to notify the user about handshake states
2013-03-28 06:57:04 +01:00
Norman Maurer
4a9ab4f57c
Add WebSocketFrameAggregator which takes care to aggregate fragmented websocket frames
2013-03-27 07:46:11 +01:00
Norman Maurer
71727e42de
[ #1210 ] Allow to use derived buffers with DefaultBufferHolder and so fix broken SpdySessionHandler
2013-03-27 07:30:12 +01:00
Norman Maurer
20d76610da
[ #1204 ] Correctly detect lastChunk in HttpPostRequestDecoder
2013-03-25 08:32:52 +01:00
Norman Maurer
f76e38592d
[ #1201 ] Correctly handle mix of not compressed and compressed requests
2013-03-25 08:13:12 +01:00
Norman Maurer
59012390f6
Fix version numbering
2013-03-25 08:01:11 +01:00
Norman Maurer
7d7b676eeb
[maven-release-plugin] prepare for next development iteration
2013-03-22 15:20:35 +01:00
Norman Maurer
60fc7dac4d
[maven-release-plugin] prepare release netty-4.0.0.CR1
2013-03-22 15:20:11 +01:00
Norman Maurer
4bd9c0195f
Add a handler that makes writing websocket clients much easier
2013-03-22 12:11:35 +01:00
Trustin Lee
d3327e7f46
Fix inspector warnings
2013-03-18 13:10:55 +09:00
ursa
ecaba68348
Fix bug in memory-based HTTP data content initialization with input stream, add test (port from branch 3).
...
- Fixes #1170
2013-03-18 13:05:40 +09:00
Trustin Lee
2a87950784
[maven-release-plugin] prepare for next development iteration
2013-03-16 18:41:36 +09:00
Trustin Lee
adfb29330b
[maven-release-plugin] prepare release netty-4.0.0.Beta3
2013-03-16 18:40:59 +09:00
Norman Maurer
d9c3f4bc05
[ #1159 ] Make sure we not produce an empty bytebuf on decodeLast(..)
2013-03-14 12:45:24 +01:00
Trustin Lee
6e0e38f09f
Fix test failures
2013-03-12 14:43:38 +09:00
Trustin Lee
c660002b4e
Add DecoderResult.UNFINISHED to represent the case where a decoder generated a message that was not decoded completely / Remove partial failure in DecoderResult which is not very useful but confusing
2013-03-12 13:04:53 +09:00
Norman Maurer
acde9a3f8e
Fix a NoSuchElementException when WebSocketClientHandshaker is used with HttpRequestEncoder. This time for real
2013-03-11 14:39:41 +01:00
Norman Maurer
978cf0d98a
Fix a NoSuchElementException when WebSocketClientHandshaker is used with HttpRequestEncoder
2013-03-11 13:54:03 +01:00
Norman Maurer
fd3f923b52
Allow to specify the used buffer type for ChannelInboundByteBufHandler and ChannelOutboundByteBufHandler by configuration. As default it tries to use a direct ByteBuf
2013-03-08 08:20:46 +01:00
Trustin Lee
a9a29bdf3f
Use I/O buffer whenever possible now that our direct buffers are as fast as heap buffers
2013-03-08 11:21:08 +09:00
Norman Maurer
6ac9b17ddd
Make WebSocket codec also work when HttpClientCodec and HttpServerCodec is used.
...
Also refactor the handshakers to share more code and make it easier to implement a new one and less error-prone
2013-03-08 08:46:47 +09:00
Trustin Lee
a8a7c4f576
Provide a way to implement an ChannelInbound/OutboundMessageHandler conveniently without extending an adapter class
...
- Add ChannelHandlerUtil and move the core logic of ChannelInbound/OutboundMessageHandler to ChannelHandlerUtil
- Add ChannelHandlerUtil.SingleInbound/OutboundMessageHandler and make ChannelInbound/OutboundMessageHandlerAdapter implement them. This is a backward incompatible change because it forces all handler methods to be public (was protected previously)
- Fixes : #1119
2013-03-05 17:27:53 +09:00
Justin Santa Barbara
6246825fda
[ #1100 ] Fix SPDY codec to work again in 4.x
2013-02-28 11:35:38 +01:00
Norman Maurer
b6038534cc
[ #1101 ] Fix NPE which accour when send a 100-continue response and using the HttpContentEncoder
2013-02-28 07:13:21 +01:00
Norman Maurer
977b6f3a28
[ #1101 ] Fix NPE which accour when send a 100-continue response and using the HttpContentDecoder
2013-02-28 07:06:39 +01:00
Trustin Lee
49aa907bd0
[maven-release-plugin] prepare for next development iteration
2013-02-26 16:55:07 -08:00
Trustin Lee
5026c2f359
[maven-release-plugin] prepare release netty-4.0.0.Beta2
2013-02-26 16:54:53 -08:00
Trustin Lee
671f9d48d4
Use ConcurrentHashMapV8 wherever possible
...
- Fixes #1052
2013-02-26 15:54:51 -08:00
Trustin Lee
f67441354a
Move logging classes from internal to internal.logging
...
.. because internal is crowded
2013-02-26 14:54:25 -08:00
Norman Maurer
eb2aa7f6d4
Cleanup
2013-02-26 08:01:18 +01:00
Norman Maurer
a03bd5105a
[##1064] Fix problem where the LastHttpContent was changed to HttpContent and so the end was never detected
2013-02-26 07:47:30 +01:00
Norman Maurer
30e7ab2f7d
[ #1089 ] Correctly offer FullHttpContent if it is used to construct HttpPostRequestDecoder
2013-02-26 07:33:04 +01:00
Trustin Lee
9e67cce932
Use BufUtil.retain() where possible
2013-02-21 13:58:13 -08:00
Norman Maurer
43ff36cef0
Cleanup
2013-02-21 19:31:05 +01:00
Norman Maurer
00310d96af
[ #1067 ] Fix bug which can cause IllegalBufferAccessException when using aggregator and deflater the same time
2013-02-21 06:48:53 +01:00
Atsuhiko Yamanaka
8fdf788cbd
[ #1012 ] Replace forked jzlib with official jzlib and add a test.
2013-02-20 12:49:05 +01:00
Trustin Lee
d68a04a879
[maven-release-plugin] prepare for next development iteration
2013-02-14 12:56:24 -08:00
Trustin Lee
59e638f8f5
[maven-release-plugin] prepare release netty-4.0.0.Beta1
2013-02-14 12:56:15 -08:00
Trustin Lee
1011227b88
Remove apiviz tags - we are focusing on user guide instead and putting diagrams there
2013-02-14 12:09:16 -08:00
Norman Maurer
54435a908f
Make internal class final and package private
2013-02-14 09:36:27 +01:00
Norman Maurer
5370573400
Change ReferenceCounted.retain* to return itself and so allow method chaining
2013-02-14 07:39:44 +01:00
Norman Maurer
fcba55329c
[ #1046 ] Make sure HttpContentEncoder calls ByteBuf.retain() if needed
2013-02-12 20:32:27 +01:00
Trustin Lee
b4f4b95739
Move io.netty.logging to io.netty.internal / Move Signal out of internal because we use it in Channel*MessageAdapters
2013-02-11 20:08:18 +09:00
Trustin Lee
a91c6596c4
Add TODO
2013-02-11 19:43:53 +09:00
Trustin Lee
a2e5cd94be
Prettify APIviz / Tighten visibility / Move subclasses to top level / Remove unused UnknownSocksMessage
2013-02-11 19:42:23 +09:00
Trustin Lee
bf0bfe9a69
Fix inspector warnings
2013-02-11 16:52:43 +09:00
Norman Maurer
0e47fb50e2
Tighten up visibility
2013-02-11 07:26:10 +01:00
Trustin Lee
4f6d05365a
Fix a race condition in reference counter implementation / Reference count never goes below 0
2013-02-10 14:22:14 +09:00
Trustin Lee
2f1a0b0593
Remove freeInbound/OutboundMessage(), replaced by ReferenceCounted.retain/release()
...
- Related: #1029
2013-02-10 13:31:31 +09:00
Trustin Lee
b9996908b1
Implement reference counting
...
- Related: #1029
- Replace Freeable with ReferenceCounted
- Add AbstractReferenceCounted
- Add AbstractReferenceCountedByteBuf
- Add AbstractDerivedByteBuf
- Add EmptyByteBuf
2013-02-10 13:10:09 +09:00
Trustin Lee
27190fcb7f
Fix a bug where HttpContentDecoder emits duplicate HttpMessage or raises NPE
2013-02-10 01:35:01 +09:00
Trustin Lee
2ac7983471
Do not trigger inboundBufferUpdated unnecessarily / Fix a bug in WebSocketServerProtocolHandlerTest / Fix a bug in forbiddenHttpRequestResponder()
2013-02-09 20:32:49 +09:00
Norman Maurer
42b21222dc
[ #1025 ] Allow to add extra headers to the websocket handshake response
2013-02-08 19:54:05 +01:00
Trustin Lee
ee189d1da7
Use finer grained type parameter in SPDY
2013-02-08 17:57:20 +09:00
Trustin Lee
82c46180c9
Tighten access modifier of encode/decode()
2013-02-08 17:37:16 +09:00
Trustin Lee
76eb40a4d2
Make ChannelOutboundMessageHandlerAdapter similar to ChannelInboundMessageHandlerAdapter
2013-02-08 17:07:01 +09:00
Trustin Lee
1640b1fea6
Automatically detect the message types in MessageToMessageCodec
2013-02-08 16:12:32 +09:00
Trustin Lee
fa1b49de98
More robust automatic messageType detection for ChannelInboundMessageHandlerAdapter and MessageToMessageDecoder
2013-02-08 15:45:17 +09:00
Trustin Lee
e5616c85c4
Automatic messageType detection for ChannelInboundMessageHandlerAdapter
2013-02-08 13:48:47 +09:00
Trustin Lee
d4742bbe16
Clean up abstract ChannelHandler impls / Remove ChannelHandlerContext.hasNext*()
...
- Rename ChannelHandlerAdapter to ChannelDuplexHandler
- Add ChannelHandlerAdapter that implements only ChannelHandler
- Rename CombinedChannelHandler to CombinedChannelDuplexHandler and
improve runtime validation
- Remove ChannelInbound/OutboundHandlerAdapter which are not useful
- Make ChannelOutboundByteHandlerAdapter similar to
ChannelInboundByteHandlerAdapter
- Make the tail and head handler of DefaultChannelPipeline accept both
bytes and messages. ChannelHandlerContext.hasNext*() were removed
because they always return true now.
- Removed various unnecessary null checks.
- Correct method/field names:
inboundBufferSuspended -> channelReadSuspended
2013-02-07 23:47:45 +09:00
Norman Maurer
582c6be456
[ #1023 ] WebSocketClientHandshaker00 now also work with non heap buffers
2013-02-07 14:21:11 +01:00
ursa
f09b85f4e7
Add test for HttpPostRequestDecoder: validate '\r' symbols in the end of binary stream are parsed correctly.
2013-02-06 20:21:56 +01:00
Norman Maurer
fd75615d7a
[ #870 ] Convert all modules into osgi bundles
2013-02-06 07:57:11 +01:00
ursa
992d431a95
Fix line-end detection for binary streams upload.
...
- Related: #1016
2013-02-06 11:54:05 +09:00
Trustin Lee
2ec932798f
Replace .readable() and .writable() to .isReadable() and .isWritable()
2013-01-31 18:24:33 +01:00
Trustin Lee
42c65cca3a
Make MessageBuf bounded
...
- Move common methods from ByteBuf to Buf
- Rename ensureWritableBytes() to ensureWritable()
- Rename readable() to isReadable()
- Rename writable() to isWritable()
- Add isReadable(int) and isWritable(int)
- Add AbstractMessageBuf
- Rewrite DefaultMessageBuf and QueueBackedMessageBuf
- based on Josh Bloch's public domain ArrayDeque impl
2013-01-31 18:11:06 +01:00
Norman Maurer
ec013bf2d3
[ #983 ] Force the user to implement an actual ChannelInboundHandler or ChannelOutboundHandler
...
For this ChannelInboundHandler* and ChannelOutboundHandler* was made package private
2013-01-31 15:50:27 +01:00
Courtney Robinson
2d9cc9f63b
Allow to specify the mode the encoder uses for form params. This allows it to be used with OAUTH
...
The OAuth 1 spec has small deviations from UrlEncoder.encode's output.
+ Percent encodes the parameters
+ Added tests to verify
+ See relevant OAuth section
http://oauth.net/core/1.0/#encoding_parameters
+ Detailed explanation http://hueniverse.com/oauth/guide/authentication/
2013-01-31 07:49:34 +01:00
Norman Maurer
97ea338bce
[ #971 ] Fix a bug where the HttpContentCompressor was try to start compressing on an empty response
2013-01-30 20:58:07 +01:00
Norman Maurer
cff2edf75d
Remove not used enum
2013-01-30 19:02:29 +01:00
Norman Maurer
3843cfd702
[SPDY] Factor out headers into extra class like we did in http and support method chaining where possible
2013-01-30 08:23:07 +01:00