Fixes #5755 - Cannot configure maxDynamicTableSize on HTTP2Client.
Introduced `HTTP2Client.maxDynamicTableSize` and `HTTP2Client.maxHeaderBlockFragment`. Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
This commit is contained in:
parent
e49d011db8
commit
4c11c3c56d
|
@ -134,6 +134,8 @@ public class HTTP2Client extends ContainerLifeCycle
|
|||
private int maxFrameLength = Frame.DEFAULT_MAX_LENGTH;
|
||||
private int maxConcurrentPushedStreams = 32;
|
||||
private int maxSettingsKeys = SettingsFrame.DEFAULT_MAX_KEYS;
|
||||
private int maxDynamicTableSize = 4096;
|
||||
private int maxHeaderBlockFragment = 0;
|
||||
private FlowControlStrategy.Factory flowControlStrategyFactory = () -> new BufferingFlowControlStrategy(0.5F);
|
||||
|
||||
@Override
|
||||
|
@ -372,6 +374,28 @@ public class HTTP2Client extends ContainerLifeCycle
|
|||
this.maxSettingsKeys = maxSettingsKeys;
|
||||
}
|
||||
|
||||
@ManagedAttribute("The HPACK dynamic table maximum size")
|
||||
public int getMaxDynamicTableSize()
|
||||
{
|
||||
return maxDynamicTableSize;
|
||||
}
|
||||
|
||||
public void setMaxDynamicTableSize(int maxDynamicTableSize)
|
||||
{
|
||||
this.maxDynamicTableSize = maxDynamicTableSize;
|
||||
}
|
||||
|
||||
@ManagedAttribute("The max size of header block fragments")
|
||||
public int getMaxHeaderBlockFragment()
|
||||
{
|
||||
return maxHeaderBlockFragment;
|
||||
}
|
||||
|
||||
public void setMaxHeaderBlockFragment(int maxHeaderBlockFragment)
|
||||
{
|
||||
this.maxHeaderBlockFragment = maxHeaderBlockFragment;
|
||||
}
|
||||
|
||||
public void connect(InetSocketAddress address, Session.Listener listener, Promise<Session> promise)
|
||||
{
|
||||
connect(null, address, listener, promise);
|
||||
|
|
|
@ -63,7 +63,7 @@ public class HTTP2ClientConnectionFactory implements ClientConnectionFactory
|
|||
@SuppressWarnings("unchecked")
|
||||
Promise<Session> promise = (Promise<Session>)context.get(SESSION_PROMISE_CONTEXT_KEY);
|
||||
|
||||
Generator generator = new Generator(byteBufferPool);
|
||||
Generator generator = new Generator(byteBufferPool, client.getMaxDynamicTableSize(), client.getMaxHeaderBlockFragment());
|
||||
FlowControlStrategy flowControl = client.getFlowControlStrategyFactory().newFlowControlStrategy();
|
||||
HTTP2ClientSession session = new HTTP2ClientSession(scheduler, endPoint, generator, listener, flowControl);
|
||||
session.setMaxRemoteStreams(client.getMaxConcurrentPushedStreams());
|
||||
|
|
Loading…
Reference in New Issue