in src/main/java/com/twitter/http2/HttpConnectionHandler.java [456:476]
public void readSettingsEnd() {
if (changeEncoderHeaderTableSize) {
synchronized (httpHeaderBlockEncoder) {
httpHeaderBlockEncoder.setDecoderMaxHeaderTableSize(minHeaderTableSize);
httpHeaderBlockEncoder.setDecoderMaxHeaderTableSize(lastHeaderTableSize);
// Writes of settings ack must occur in order
ByteBuf frame = httpFrameEncoder.encodeSettingsFrame(SETTINGS_ACK_FRAME);
context.writeAndFlush(frame);
}
changeEncoderHeaderTableSize = false;
lastHeaderTableSize = Integer.MAX_VALUE;
minHeaderTableSize = Integer.MAX_VALUE;
} else if (needSettingsAck) {
ByteBuf frame = httpFrameEncoder.encodeSettingsFrame(SETTINGS_ACK_FRAME);
context.writeAndFlush(frame);
}
Object frame = httpSettingsFrame;
httpSettingsFrame = null;
context.fireChannelRead(frame);
}