Move responsibility for creating upgrade stream to Http2FrameCodec (#9360)
Motivation: The Http2FrameCodec should be responsible to create the upgrade stream. Modifications: Move code to create stream to Http2FrameCodec Result: More correct responsibility
This commit is contained in:
parent
1748352d98
commit
306299323c
@ -161,7 +161,7 @@ public class Http2FrameCodec extends Http2ConnectionHandler {
|
|||||||
new IntObjectHashMap<DefaultHttp2FrameStream>(8);
|
new IntObjectHashMap<DefaultHttp2FrameStream>(8);
|
||||||
private final ChannelFutureListener bufferedStreamsListener = new ChannelFutureListener() {
|
private final ChannelFutureListener bufferedStreamsListener = new ChannelFutureListener() {
|
||||||
@Override
|
@Override
|
||||||
public void operationComplete(ChannelFuture future) throws Exception {
|
public void operationComplete(ChannelFuture future) {
|
||||||
numBufferedStreams--;
|
numBufferedStreams--;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -240,6 +240,13 @@ public class Http2FrameCodec extends Http2ConnectionHandler {
|
|||||||
// sub-class can override this for extra steps that needs to be done when the handler is added.
|
// sub-class can override this for extra steps that needs to be done when the handler is added.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onHttpClientUpgrade() throws Http2Exception {
|
||||||
|
super.onHttpClientUpgrade();
|
||||||
|
// Now make a new Http2FrameStream, set it's underlying Http2Stream, and initialize it.
|
||||||
|
newStream().setStreamAndProperty(streamKey, connection().stream(HTTP_UPGRADE_STREAM_ID));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the cleartext HTTP upgrade event. If an upgrade occurred, sends a simple response via
|
* Handles the cleartext HTTP upgrade event. If an upgrade occurred, sends a simple response via
|
||||||
* HTTP/2 on stream 1 (the stream specifically reserved for cleartext HTTP upgrade).
|
* HTTP/2 on stream 1 (the stream specifically reserved for cleartext HTTP upgrade).
|
||||||
@ -438,14 +445,15 @@ public class Http2FrameCodec extends Http2ConnectionHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStreamClosed(Http2Stream stream) {
|
public void onStreamClosed(Http2Stream stream) {
|
||||||
Http2FrameStream stream2 = stream.getProperty(streamKey);
|
onHttp2StreamStateChanged0(stream);
|
||||||
if (stream2 != null) {
|
|
||||||
onHttp2StreamStateChanged(ctx, stream2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStreamHalfClosed(Http2Stream stream) {
|
public void onStreamHalfClosed(Http2Stream stream) {
|
||||||
|
onHttp2StreamStateChanged0(stream);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onHttp2StreamStateChanged0(Http2Stream stream) {
|
||||||
Http2FrameStream stream2 = stream.getProperty(streamKey);
|
Http2FrameStream stream2 = stream.getProperty(streamKey);
|
||||||
if (stream2 != null) {
|
if (stream2 != null) {
|
||||||
onHttp2StreamStateChanged(ctx, stream2);
|
onHttp2StreamStateChanged(ctx, stream2);
|
||||||
|
@ -116,10 +116,6 @@ public class Http2MultiplexCodec extends Http2FrameCodec {
|
|||||||
}
|
}
|
||||||
// Creates the Http2Stream in the Connection.
|
// Creates the Http2Stream in the Connection.
|
||||||
super.onHttpClientUpgrade();
|
super.onHttpClientUpgrade();
|
||||||
// Now make a new FrameStream, set it's underlying Http2Stream, and initialize it.
|
|
||||||
DefaultHttp2FrameStream codecStream = newStream();
|
|
||||||
codecStream.setStreamAndProperty(streamKey, connection().stream(HTTP_UPGRADE_STREAM_ID));
|
|
||||||
onHttp2UpgradeStreamInitialized(ctx, codecStream);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -174,6 +170,11 @@ public class Http2MultiplexCodec extends Http2FrameCodec {
|
|||||||
DefaultHttp2FrameStream s = (DefaultHttp2FrameStream) stream;
|
DefaultHttp2FrameStream s = (DefaultHttp2FrameStream) stream;
|
||||||
|
|
||||||
switch (stream.state()) {
|
switch (stream.state()) {
|
||||||
|
case HALF_CLOSED_LOCAL:
|
||||||
|
if (stream.id() == HTTP_UPGRADE_STREAM_ID) {
|
||||||
|
onHttp2UpgradeStreamInitialized(ctx, s);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case HALF_CLOSED_REMOTE:
|
case HALF_CLOSED_REMOTE:
|
||||||
case OPEN:
|
case OPEN:
|
||||||
if (s.attachment != null) {
|
if (s.attachment != null) {
|
||||||
|
Loading…
Reference in New Issue
Block a user