From 20f294da73d715fecc4c9567dba8a8e02933514e Mon Sep 17 00:00:00 2001 From: Boris Smidt Date: Wed, 20 Oct 2021 12:41:14 +0200 Subject: [PATCH 1/2] upgrade netty and add the new netty http codec options --- .../AsyncHttpClientConfig.java | 6 + .../DefaultAsyncHttpClientConfig.java | 34 ++ .../config/AsyncHttpClientConfigDefaults.java | 527 +++++++++--------- .../netty/channel/ChannelManager.java | 6 +- .../config/ahc-default.properties | 5 +- pom.xml | 2 +- 6 files changed, 321 insertions(+), 259 deletions(-) diff --git a/client/src/main/java/org/asynchttpclient/AsyncHttpClientConfig.java b/client/src/main/java/org/asynchttpclient/AsyncHttpClientConfig.java index a761322dc3..f14383a46a 100644 --- a/client/src/main/java/org/asynchttpclient/AsyncHttpClientConfig.java +++ b/client/src/main/java/org/asynchttpclient/AsyncHttpClientConfig.java @@ -277,6 +277,12 @@ public interface AsyncHttpClientConfig { int getHttpClientCodecInitialBufferSize(); + boolean httpClientCodecParseHttpAfterConnectRequest(); + + boolean httpClientCodecAllowDuplicateContentLengths(); + + boolean httpClientCodecAllowPartialChunks(); + boolean isDisableZeroCopy(); int getHandshakeTimeout(); diff --git a/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java b/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java index 0f4e62c560..b706320dce 100644 --- a/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java +++ b/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java @@ -117,6 +117,9 @@ public class DefaultAsyncHttpClientConfig implements AsyncHttpClientConfig { private final int httpClientCodecMaxHeaderSize; private final int httpClientCodecMaxChunkSize; private final int httpClientCodecInitialBufferSize; + private final boolean httpClientCodecParseHttpAfterConnectRequest; + private final boolean httpClientCodecAllowDuplicateContentLengths; + private final boolean httpClientCodecAllowPartialChunks; private final int chunkedFileChunkSize; private final Map, Object> channelOptions; private final EventLoopGroup eventLoopGroup; @@ -209,6 +212,9 @@ private DefaultAsyncHttpClientConfig(// http int httpClientCodecMaxHeaderSize, int httpClientCodecMaxChunkSize, int httpClientCodecInitialBufferSize, + boolean httpClientCodecParseHttpAfterConnectRequest, + boolean httpClientCodecAllowDuplicateContentLengths, + boolean httpClientCodecAllowPartialChunks, int chunkedFileChunkSize, int webSocketMaxBufferSize, int webSocketMaxFrameSize, @@ -301,6 +307,9 @@ private DefaultAsyncHttpClientConfig(// http this.httpClientCodecMaxHeaderSize = httpClientCodecMaxHeaderSize; this.httpClientCodecMaxChunkSize = httpClientCodecMaxChunkSize; this.httpClientCodecInitialBufferSize = httpClientCodecInitialBufferSize; + this.httpClientCodecParseHttpAfterConnectRequest = httpClientCodecParseHttpAfterConnectRequest; + this.httpClientCodecAllowDuplicateContentLengths = httpClientCodecAllowDuplicateContentLengths; + this.httpClientCodecAllowPartialChunks = httpClientCodecAllowPartialChunks; this.chunkedFileChunkSize = chunkedFileChunkSize; this.channelOptions = channelOptions; this.eventLoopGroup = eventLoopGroup; @@ -623,6 +632,15 @@ public int getHttpClientCodecInitialBufferSize() { return httpClientCodecInitialBufferSize; } + @Override + public boolean setHttpClientCodecParseHttpAfterConnectRequest() { return httpClientCodecParseHttpAfterConnectRequest} + + @Override + public boolean setHttpClientCodecAllowDuplicateContentLengths() { return httpClientCodecAllowDuplicateContentLengths} + + @Override + public boolean setHttpClientCodecAllowPartialChunks() { return httpClientCodecAllowPartialChunks} + @Override public int getChunkedFileChunkSize() { return chunkedFileChunkSize; @@ -770,6 +788,9 @@ public static class Builder { private int httpClientCodecMaxHeaderSize = defaultHttpClientCodecMaxHeaderSize(); private int httpClientCodecMaxChunkSize = defaultHttpClientCodecMaxChunkSize(); private int httpClientCodecInitialBufferSize = defaultHttpClientCodecInitialBufferSize(); + private boolean httpClientCodecParseHttpAfterConnectRequest = defaultHttpClientCodecParseHttpAfterConnectRequest(); + private boolean httpClientCodecAllowDuplicateContentLengths = defaultHttpClientCodecAllowDuplicateContentLengths(); + private boolean httpClientCodecAllowPartialChunks = defaultHttpClientCodecAllowPartialChunks(); private int chunkedFileChunkSize = defaultChunkedFileChunkSize(); private boolean useNativeTransport = defaultUseNativeTransport(); private ByteBufAllocator allocator; @@ -1217,6 +1238,19 @@ public Builder setHttpClientCodecInitialBufferSize(int httpClientCodecInitialBuf return this; } + public Builder setHttpClientCodecParseHttpAfterConnectRequest(boolean httpClientCodecParseHttpAfterConnectRequest) { + this.httpClientCodecParseHttpAfterConnectRequest = httpClientCodecParseHttpAfterConnectRequest; + return this; + } + public Builder setHttpClientCodecAllowDuplicateContentLength(boolean httpClientCodecAllowDuplicateContentLengths) { + this.httpClientCodecAllowDuplicateContentLengths = httpClientCodecAllowDuplicateContentLengths; + return this; + } + public Builder setHttpClientCodecAllowPartialChunk(boolean httpClientCodecAllowPartialChunks) { + this.httpClientCodecAllowPartialChunks = httpClientCodecAllowPartialChunks; + return this; + } + public Builder setChunkedFileChunkSize(int chunkedFileChunkSize) { this.chunkedFileChunkSize = chunkedFileChunkSize; return this; diff --git a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java index 14dcec3bfd..f5c264b2fb 100644 --- a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java +++ b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java @@ -18,295 +18,310 @@ public final class AsyncHttpClientConfigDefaults { - public static final String ASYNC_CLIENT_CONFIG_ROOT = "org.asynchttpclient."; - public static final String THREAD_POOL_NAME_CONFIG = "threadPoolName"; - public static final String MAX_CONNECTIONS_CONFIG = "maxConnections"; - public static final String MAX_CONNECTIONS_PER_HOST_CONFIG = "maxConnectionsPerHost"; - public static final String ACQUIRE_FREE_CHANNEL_TIMEOUT = "acquireFreeChannelTimeout"; - public static final String CONNECTION_TIMEOUT_CONFIG = "connectTimeout"; - public static final String POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG = "pooledConnectionIdleTimeout"; - public static final String CONNECTION_POOL_CLEANER_PERIOD_CONFIG = "connectionPoolCleanerPeriod"; - public static final String READ_TIMEOUT_CONFIG = "readTimeout"; - public static final String REQUEST_TIMEOUT_CONFIG = "requestTimeout"; - public static final String CONNECTION_TTL_CONFIG = "connectionTtl"; - public static final String FOLLOW_REDIRECT_CONFIG = "followRedirect"; - public static final String MAX_REDIRECTS_CONFIG = "maxRedirects"; - public static final String COMPRESSION_ENFORCED_CONFIG = "compressionEnforced"; - public static final String USER_AGENT_CONFIG = "userAgent"; - public static final String ENABLED_PROTOCOLS_CONFIG = "enabledProtocols"; - public static final String ENABLED_CIPHER_SUITES_CONFIG = "enabledCipherSuites"; - public static final String FILTER_INSECURE_CIPHER_SUITES_CONFIG = "filterInsecureCipherSuites"; - public static final String USE_PROXY_SELECTOR_CONFIG = "useProxySelector"; - public static final String USE_PROXY_PROPERTIES_CONFIG = "useProxyProperties"; - public static final String VALIDATE_RESPONSE_HEADERS_CONFIG = "validateResponseHeaders"; - public static final String AGGREGATE_WEBSOCKET_FRAME_FRAGMENTS_CONFIG = "aggregateWebSocketFrameFragments"; - public static final String ENABLE_WEBSOCKET_COMPRESSION_CONFIG = "enableWebSocketCompression"; - public static final String STRICT_302_HANDLING_CONFIG = "strict302Handling"; - public static final String KEEP_ALIVE_CONFIG = "keepAlive"; - public static final String MAX_REQUEST_RETRY_CONFIG = "maxRequestRetry"; - public static final String DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG = "disableUrlEncodingForBoundRequests"; - public static final String USE_LAX_COOKIE_ENCODER_CONFIG = "useLaxCookieEncoder"; - public static final String USE_OPEN_SSL_CONFIG = "useOpenSsl"; - public static final String USE_INSECURE_TRUST_MANAGER_CONFIG = "useInsecureTrustManager"; - public static final String DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG = "disableHttpsEndpointIdentificationAlgorithm"; - public static final String SSL_SESSION_CACHE_SIZE_CONFIG = "sslSessionCacheSize"; - public static final String SSL_SESSION_TIMEOUT_CONFIG = "sslSessionTimeout"; - public static final String TCP_NO_DELAY_CONFIG = "tcpNoDelay"; - public static final String SO_REUSE_ADDRESS_CONFIG = "soReuseAddress"; - public static final String SO_KEEP_ALIVE_CONFIG = "soKeepAlive"; - public static final String SO_LINGER_CONFIG = "soLinger"; - public static final String SO_SND_BUF_CONFIG = "soSndBuf"; - public static final String SO_RCV_BUF_CONFIG = "soRcvBuf"; - public static final String HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG = "httpClientCodecMaxInitialLineLength"; - public static final String HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG = "httpClientCodecMaxHeaderSize"; - public static final String HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG = "httpClientCodecMaxChunkSize"; - public static final String HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG = "httpClientCodecInitialBufferSize"; - public static final String DISABLE_ZERO_COPY_CONFIG = "disableZeroCopy"; - public static final String HANDSHAKE_TIMEOUT_CONFIG = "handshakeTimeout"; - public static final String CHUNKED_FILE_CHUNK_SIZE_CONFIG = "chunkedFileChunkSize"; - public static final String WEBSOCKET_MAX_BUFFER_SIZE_CONFIG = "webSocketMaxBufferSize"; - public static final String WEBSOCKET_MAX_FRAME_SIZE_CONFIG = "webSocketMaxFrameSize"; - public static final String KEEP_ENCODING_HEADER_CONFIG = "keepEncodingHeader"; - public static final String SHUTDOWN_QUIET_PERIOD_CONFIG = "shutdownQuietPeriod"; - public static final String SHUTDOWN_TIMEOUT_CONFIG = "shutdownTimeout"; - public static final String USE_NATIVE_TRANSPORT_CONFIG = "useNativeTransport"; - public static final String IO_THREADS_COUNT_CONFIG = "ioThreadsCount"; - public static final String HASHED_WHEEL_TIMER_TICK_DURATION = "hashedWheelTimerTickDuration"; - public static final String HASHED_WHEEL_TIMER_SIZE = "hashedWheelTimerSize"; - public static final String EXPIRED_COOKIE_EVICTION_DELAY = "expiredCookieEvictionDelay"; - - public static final String AHC_VERSION; - - static { - try (InputStream is = AsyncHttpClientConfigDefaults.class.getResourceAsStream("ahc-version.properties")) { - Properties prop = new Properties(); - prop.load(is); - AHC_VERSION = prop.getProperty("ahc.version", "UNKNOWN"); - } catch (IOException e) { - throw new ExceptionInInitializerError(e); - } - } - - private AsyncHttpClientConfigDefaults() { - } - - public static String defaultThreadPoolName() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + THREAD_POOL_NAME_CONFIG); - } - - public static int defaultMaxConnections() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_CONFIG); - } - - public static int defaultMaxConnectionsPerHost() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_PER_HOST_CONFIG); - } - - public static int defaultAcquireFreeChannelTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + ACQUIRE_FREE_CHANNEL_TIMEOUT); - } - - public static int defaultConnectTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TIMEOUT_CONFIG); - } - - public static int defaultPooledConnectionIdleTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG); - } - - public static int defaultConnectionPoolCleanerPeriod() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_POOL_CLEANER_PERIOD_CONFIG); - } - - public static int defaultReadTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + READ_TIMEOUT_CONFIG); - } - - public static int defaultRequestTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + REQUEST_TIMEOUT_CONFIG); - } - - public static int defaultConnectionTtl() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TTL_CONFIG); - } - - public static boolean defaultFollowRedirect() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + FOLLOW_REDIRECT_CONFIG); - } - - public static int defaultMaxRedirects() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REDIRECTS_CONFIG); - } - - public static boolean defaultCompressionEnforced() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + COMPRESSION_ENFORCED_CONFIG); - } - - public static String defaultUserAgent() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + USER_AGENT_CONFIG); - } - - public static String[] defaultEnabledProtocols() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_PROTOCOLS_CONFIG); - } - - public static String[] defaultEnabledCipherSuites() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_CIPHER_SUITES_CONFIG); - } - - public static boolean defaultFilterInsecureCipherSuites() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + FILTER_INSECURE_CIPHER_SUITES_CONFIG); - } - - public static boolean defaultUseProxySelector() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_SELECTOR_CONFIG); - } - - public static boolean defaultUseProxyProperties() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_PROPERTIES_CONFIG); - } - - public static boolean defaultValidateResponseHeaders() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + VALIDATE_RESPONSE_HEADERS_CONFIG); - } + public static final String ASYNC_CLIENT_CONFIG_ROOT = "org.asynchttpclient."; + public static final String THREAD_POOL_NAME_CONFIG = "threadPoolName"; + public static final String MAX_CONNECTIONS_CONFIG = "maxConnections"; + public static final String MAX_CONNECTIONS_PER_HOST_CONFIG = "maxConnectionsPerHost"; + public static final String ACQUIRE_FREE_CHANNEL_TIMEOUT = "acquireFreeChannelTimeout"; + public static final String CONNECTION_TIMEOUT_CONFIG = "connectTimeout"; + public static final String POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG = "pooledConnectionIdleTimeout"; + public static final String CONNECTION_POOL_CLEANER_PERIOD_CONFIG = "connectionPoolCleanerPeriod"; + public static final String READ_TIMEOUT_CONFIG = "readTimeout"; + public static final String REQUEST_TIMEOUT_CONFIG = "requestTimeout"; + public static final String CONNECTION_TTL_CONFIG = "connectionTtl"; + public static final String FOLLOW_REDIRECT_CONFIG = "followRedirect"; + public static final String MAX_REDIRECTS_CONFIG = "maxRedirects"; + public static final String COMPRESSION_ENFORCED_CONFIG = "compressionEnforced"; + public static final String USER_AGENT_CONFIG = "userAgent"; + public static final String ENABLED_PROTOCOLS_CONFIG = "enabledProtocols"; + public static final String ENABLED_CIPHER_SUITES_CONFIG = "enabledCipherSuites"; + public static final String FILTER_INSECURE_CIPHER_SUITES_CONFIG = "filterInsecureCipherSuites"; + public static final String USE_PROXY_SELECTOR_CONFIG = "useProxySelector"; + public static final String USE_PROXY_PROPERTIES_CONFIG = "useProxyProperties"; + public static final String VALIDATE_RESPONSE_HEADERS_CONFIG = "validateResponseHeaders"; + public static final String AGGREGATE_WEBSOCKET_FRAME_FRAGMENTS_CONFIG = "aggregateWebSocketFrameFragments"; + public static final String ENABLE_WEBSOCKET_COMPRESSION_CONFIG = "enableWebSocketCompression"; + public static final String STRICT_302_HANDLING_CONFIG = "strict302Handling"; + public static final String KEEP_ALIVE_CONFIG = "keepAlive"; + public static final String MAX_REQUEST_RETRY_CONFIG = "maxRequestRetry"; + public static final String DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG = "disableUrlEncodingForBoundRequests"; + public static final String USE_LAX_COOKIE_ENCODER_CONFIG = "useLaxCookieEncoder"; + public static final String USE_OPEN_SSL_CONFIG = "useOpenSsl"; + public static final String USE_INSECURE_TRUST_MANAGER_CONFIG = "useInsecureTrustManager"; + public static final String DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG = "disableHttpsEndpointIdentificationAlgorithm"; + public static final String SSL_SESSION_CACHE_SIZE_CONFIG = "sslSessionCacheSize"; + public static final String SSL_SESSION_TIMEOUT_CONFIG = "sslSessionTimeout"; + public static final String TCP_NO_DELAY_CONFIG = "tcpNoDelay"; + public static final String SO_REUSE_ADDRESS_CONFIG = "soReuseAddress"; + public static final String SO_KEEP_ALIVE_CONFIG = "soKeepAlive"; + public static final String SO_LINGER_CONFIG = "soLinger"; + public static final String SO_SND_BUF_CONFIG = "soSndBuf"; + public static final String SO_RCV_BUF_CONFIG = "soRcvBuf"; + public static final String HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG = "httpClientCodecMaxInitialLineLength"; + public static final String HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG = "httpClientCodecMaxHeaderSize"; + public static final String HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG = "httpClientCodecMaxChunkSize"; + public static final String HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG = "httpClientCodecInitialBufferSize"; + public static final String HTTP_CLIENT_CODEC_PARSE_HTTP_AFTER_CONNECT_REQUEST = "httpClientCodecParseHttpAfterConnectRequest"; + public static final String HTTP_CLIENT_CODEC_ALLOW_DUPLICATE_CONTENT_LENGTHS = "httpClientCodecAllowDuplicateContentLengths"; + public static final String HTTP_CLIENT_CODEC_ALLOW_PARTIAL_CHUNKS = "httpClientCodecAllowPartialChunks"; + public static final String DISABLE_ZERO_COPY_CONFIG = "disableZeroCopy"; + public static final String HANDSHAKE_TIMEOUT_CONFIG = "handshakeTimeout"; + public static final String CHUNKED_FILE_CHUNK_SIZE_CONFIG = "chunkedFileChunkSize"; + public static final String WEBSOCKET_MAX_BUFFER_SIZE_CONFIG = "webSocketMaxBufferSize"; + public static final String WEBSOCKET_MAX_FRAME_SIZE_CONFIG = "webSocketMaxFrameSize"; + public static final String KEEP_ENCODING_HEADER_CONFIG = "keepEncodingHeader"; + public static final String SHUTDOWN_QUIET_PERIOD_CONFIG = "shutdownQuietPeriod"; + public static final String SHUTDOWN_TIMEOUT_CONFIG = "shutdownTimeout"; + public static final String USE_NATIVE_TRANSPORT_CONFIG = "useNativeTransport"; + public static final String IO_THREADS_COUNT_CONFIG = "ioThreadsCount"; + public static final String HASHED_WHEEL_TIMER_TICK_DURATION = "hashedWheelTimerTickDuration"; + public static final String HASHED_WHEEL_TIMER_SIZE = "hashedWheelTimerSize"; + public static final String EXPIRED_COOKIE_EVICTION_DELAY = "expiredCookieEvictionDelay"; + + public static final String AHC_VERSION; + + static { + try (InputStream is = AsyncHttpClientConfigDefaults.class.getResourceAsStream("ahc-version.properties")) { + Properties prop = new Properties(); + prop.load(is); + AHC_VERSION = prop.getProperty("ahc.version", "UNKNOWN"); + } catch (IOException e) { + throw new ExceptionInInitializerError(e); + } + } + + private AsyncHttpClientConfigDefaults() { + } + + public static String defaultThreadPoolName() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + THREAD_POOL_NAME_CONFIG); + } + + public static int defaultMaxConnections() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_CONFIG); + } + + public static int defaultMaxConnectionsPerHost() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_PER_HOST_CONFIG); + } + + public static int defaultAcquireFreeChannelTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + ACQUIRE_FREE_CHANNEL_TIMEOUT); + } + + public static int defaultConnectTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TIMEOUT_CONFIG); + } + + public static int defaultPooledConnectionIdleTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG); + } + + public static int defaultConnectionPoolCleanerPeriod() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_POOL_CLEANER_PERIOD_CONFIG); + } + + public static int defaultReadTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + READ_TIMEOUT_CONFIG); + } + + public static int defaultRequestTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + REQUEST_TIMEOUT_CONFIG); + } + + public static int defaultConnectionTtl() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TTL_CONFIG); + } + + public static boolean defaultFollowRedirect() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + FOLLOW_REDIRECT_CONFIG); + } + + public static int defaultMaxRedirects() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REDIRECTS_CONFIG); + } + + public static boolean defaultCompressionEnforced() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + COMPRESSION_ENFORCED_CONFIG); + } + + public static String defaultUserAgent() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + USER_AGENT_CONFIG); + } + + public static String[] defaultEnabledProtocols() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_PROTOCOLS_CONFIG); + } + + public static String[] defaultEnabledCipherSuites() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_CIPHER_SUITES_CONFIG); + } + + public static boolean defaultFilterInsecureCipherSuites() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + FILTER_INSECURE_CIPHER_SUITES_CONFIG); + } + + public static boolean defaultUseProxySelector() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_SELECTOR_CONFIG); + } + + public static boolean defaultUseProxyProperties() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_PROPERTIES_CONFIG); + } + + public static boolean defaultValidateResponseHeaders() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + VALIDATE_RESPONSE_HEADERS_CONFIG); + } - public static boolean defaultAggregateWebSocketFrameFragments() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + AGGREGATE_WEBSOCKET_FRAME_FRAGMENTS_CONFIG); - } + public static boolean defaultAggregateWebSocketFrameFragments() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + AGGREGATE_WEBSOCKET_FRAME_FRAGMENTS_CONFIG); + } - public static boolean defaultEnableWebSocketCompression() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + ENABLE_WEBSOCKET_COMPRESSION_CONFIG); - } + public static boolean defaultEnableWebSocketCompression() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + ENABLE_WEBSOCKET_COMPRESSION_CONFIG); + } - public static boolean defaultStrict302Handling() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + STRICT_302_HANDLING_CONFIG); - } + public static boolean defaultStrict302Handling() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + STRICT_302_HANDLING_CONFIG); + } - public static boolean defaultKeepAlive() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ALIVE_CONFIG); - } + public static boolean defaultKeepAlive() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ALIVE_CONFIG); + } - public static int defaultMaxRequestRetry() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REQUEST_RETRY_CONFIG); - } + public static int defaultMaxRequestRetry() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REQUEST_RETRY_CONFIG); + } - public static boolean defaultDisableUrlEncodingForBoundRequests() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG); - } + public static boolean defaultDisableUrlEncodingForBoundRequests() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG); + } - public static boolean defaultUseLaxCookieEncoder() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_LAX_COOKIE_ENCODER_CONFIG); - } + public static boolean defaultUseLaxCookieEncoder() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_LAX_COOKIE_ENCODER_CONFIG); + } - public static boolean defaultUseOpenSsl() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_OPEN_SSL_CONFIG); - } + public static boolean defaultUseOpenSsl() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_OPEN_SSL_CONFIG); + } - public static boolean defaultUseInsecureTrustManager() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_INSECURE_TRUST_MANAGER_CONFIG); - } + public static boolean defaultUseInsecureTrustManager() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_INSECURE_TRUST_MANAGER_CONFIG); + } - public static boolean defaultDisableHttpsEndpointIdentificationAlgorithm() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG); - } + public static boolean defaultDisableHttpsEndpointIdentificationAlgorithm() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG); + } - public static int defaultSslSessionCacheSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_CACHE_SIZE_CONFIG); - } + public static int defaultSslSessionCacheSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_CACHE_SIZE_CONFIG); + } + + public static int defaultSslSessionTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_TIMEOUT_CONFIG); + } + + public static boolean defaultTcpNoDelay() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + TCP_NO_DELAY_CONFIG); + } - public static int defaultSslSessionTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_TIMEOUT_CONFIG); - } + public static boolean defaultSoReuseAddress() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + SO_REUSE_ADDRESS_CONFIG); + } - public static boolean defaultTcpNoDelay() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + TCP_NO_DELAY_CONFIG); - } + public static boolean defaultSoKeepAlive() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + SO_KEEP_ALIVE_CONFIG); + } - public static boolean defaultSoReuseAddress() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + SO_REUSE_ADDRESS_CONFIG); - } + public static int defaultSoLinger() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_LINGER_CONFIG); + } + + public static int defaultSoSndBuf() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_SND_BUF_CONFIG); + } - public static boolean defaultSoKeepAlive() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + SO_KEEP_ALIVE_CONFIG); - } + public static int defaultSoRcvBuf() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_RCV_BUF_CONFIG); + } - public static int defaultSoLinger() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_LINGER_CONFIG); - } + public static int defaultHttpClientCodecMaxInitialLineLength() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG); + } - public static int defaultSoSndBuf() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_SND_BUF_CONFIG); - } + public static int defaultHttpClientCodecMaxHeaderSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG); + } - public static int defaultSoRcvBuf() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_RCV_BUF_CONFIG); - } + public static int defaultHttpClientCodecMaxChunkSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG); + } - public static int defaultHttpClientCodecMaxInitialLineLength() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG); - } + public static int defaultHttpClientCodecInitialBufferSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG); + } - public static int defaultHttpClientCodecMaxHeaderSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG); - } + public static boolean defaultHttpClientParseHttpAfterConnectRequest() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_PARSE_HTTP_AFTER_CONNECT_REQUEST); + } - public static int defaultHttpClientCodecMaxChunkSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG); - } + public static boolean defaultHttpClientAllowDuplicateContentLengths() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_ALLOW_DUPLICATE_CONTENT_LENGTHS); + } - public static int defaultHttpClientCodecInitialBufferSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG); - } + public static boolean defaultHttpClientAllowPartialChunks() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_ALLOW_PARTIAL_CHUNKS); + } - public static boolean defaultDisableZeroCopy() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_ZERO_COPY_CONFIG); - } + public static boolean defaultDisableZeroCopy() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_ZERO_COPY_CONFIG); + } - public static int defaultHandshakeTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HANDSHAKE_TIMEOUT_CONFIG); - } + public static int defaultHandshakeTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HANDSHAKE_TIMEOUT_CONFIG); + } - public static int defaultChunkedFileChunkSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CHUNKED_FILE_CHUNK_SIZE_CONFIG); - } + public static int defaultChunkedFileChunkSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CHUNKED_FILE_CHUNK_SIZE_CONFIG); + } - public static int defaultWebSocketMaxBufferSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEBSOCKET_MAX_BUFFER_SIZE_CONFIG); - } + public static int defaultWebSocketMaxBufferSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEBSOCKET_MAX_BUFFER_SIZE_CONFIG); + } - public static int defaultWebSocketMaxFrameSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEBSOCKET_MAX_FRAME_SIZE_CONFIG); - } + public static int defaultWebSocketMaxFrameSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEBSOCKET_MAX_FRAME_SIZE_CONFIG); + } - public static boolean defaultKeepEncodingHeader() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ENCODING_HEADER_CONFIG); - } + public static boolean defaultKeepEncodingHeader() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ENCODING_HEADER_CONFIG); + } - public static int defaultShutdownQuietPeriod() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_QUIET_PERIOD_CONFIG); - } + public static int defaultShutdownQuietPeriod() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_QUIET_PERIOD_CONFIG); + } - public static int defaultShutdownTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_TIMEOUT_CONFIG); - } + public static int defaultShutdownTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_TIMEOUT_CONFIG); + } - public static boolean defaultUseNativeTransport() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_NATIVE_TRANSPORT_CONFIG); - } + public static boolean defaultUseNativeTransport() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_NATIVE_TRANSPORT_CONFIG); + } - public static int defaultIoThreadsCount() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + IO_THREADS_COUNT_CONFIG); - } + public static int defaultIoThreadsCount() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + IO_THREADS_COUNT_CONFIG); + } - public static int defaultHashedWheelTimerTickDuration() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HASHED_WHEEL_TIMER_TICK_DURATION); - } + public static int defaultHashedWheelTimerTickDuration() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HASHED_WHEEL_TIMER_TICK_DURATION); + } - public static int defaultHashedWheelTimerSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HASHED_WHEEL_TIMER_SIZE); - } + public static int defaultHashedWheelTimerSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HASHED_WHEEL_TIMER_SIZE); + } - public static int defaultExpiredCookieEvictionDelay() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + EXPIRED_COOKIE_EVICTION_DELAY); - } + public static int defaultExpiredCookieEvictionDelay() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + EXPIRED_COOKIE_EVICTION_DELAY); + } } diff --git a/client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java b/client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java index b93dfb380e..4844918695 100755 --- a/client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java +++ b/client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java @@ -329,7 +329,11 @@ private HttpClientCodec newHttpClientCodec() { config.getHttpClientCodecMaxChunkSize(), false, config.isValidateResponseHeaders(), - config.getHttpClientCodecInitialBufferSize()); + config.getHttpClientCodecInitialBufferSize(), + config.getHttpClientCodecParseHttpAfterConnectRequest(), + config.getHttpClientCodecAllowDuplicateContentLengths(), + config.getHttpClientCodecAllowPartialChunks() + ); } private SslHandler createSslHandler(String peerHost, int peerPort) { diff --git a/client/src/main/resources/org/asynchttpclient/config/ahc-default.properties b/client/src/main/resources/org/asynchttpclient/config/ahc-default.properties index 62bc177726..41faa3f854 100644 --- a/client/src/main/resources/org/asynchttpclient/config/ahc-default.properties +++ b/client/src/main/resources/org/asynchttpclient/config/ahc-default.properties @@ -40,6 +40,9 @@ org.asynchttpclient.httpClientCodecMaxInitialLineLength=4096 org.asynchttpclient.httpClientCodecMaxHeaderSize=8192 org.asynchttpclient.httpClientCodecMaxChunkSize=8192 org.asynchttpclient.httpClientCodecInitialBufferSize=128 +org.asynchttpclient.httpClientCodecParseHttpAfterConnectRequest=false +org.asynchttpclient.httpClientCodecAllowDuplicateContentLengths=false +org.asynchttpclient.httpClientCodecAllowPartialChunks=true org.asynchttpclient.disableZeroCopy=false org.asynchttpclient.handshakeTimeout=10000 org.asynchttpclient.chunkedFileChunkSize=8192 @@ -52,4 +55,4 @@ org.asynchttpclient.useNativeTransport=false org.asynchttpclient.ioThreadsCount=0 org.asynchttpclient.hashedWheelTimerTickDuration=100 org.asynchttpclient.hashedWheelTimerSize=512 -org.asynchttpclient.expiredCookieEvictionDelay=30000 +org.asynchttpclient.expiredCookieEvictionDelay=30000 \ No newline at end of file diff --git a/pom.xml b/pom.xml index ca2c7efb9a..c4c643a28f 100644 --- a/pom.xml +++ b/pom.xml @@ -466,7 +466,7 @@ true 1.8 1.8 - 4.1.60.Final + 4.1.69.Final 1.7.30 1.0.3 1.2.2 From 26276414a2949b3492290f6c76bbd0688f333378 Mon Sep 17 00:00:00 2001 From: Boris Smidt Date: Tue, 25 Jan 2022 08:30:35 +0100 Subject: [PATCH 2/2] Update pom.xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c4c643a28f..f407678677 100644 --- a/pom.xml +++ b/pom.xml @@ -466,7 +466,7 @@ true 1.8 1.8 - 4.1.69.Final + 4.1.73.Final 1.7.30 1.0.3 1.2.2