Skip to content

Commit c596897

Browse files
authored
Merge branch 'master' into uds
2 parents 56da156 + 677c43f commit c596897

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java

+17-6
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import io.netty.util.Timer;
4040
import io.netty.util.concurrent.*;
4141
import io.netty.util.internal.StringUtil;
42+
import io.netty.util.internal.PlatformDependent;
4243
import org.asynchttpclient.*;
4344
import org.asynchttpclient.channel.ChannelPool;
4445
import org.asynchttpclient.channel.ChannelPoolPartitioning;
@@ -205,15 +206,20 @@ private Bootstrap newBootstrap(ChannelFactory<? extends Channel> channelFactory,
205206

206207
@SuppressWarnings("unchecked")
207208
private TransportFactory<? extends Channel, ? extends EventLoopGroup> getNativeTransportFactory() {
209+
String nativeTransportFactoryClassName = null;
210+
if (PlatformDependent.isOsx()) {
211+
nativeTransportFactoryClassName = "org.asynchttpclient.netty.channel.KQueueTransportFactory";
212+
} else if (!PlatformDependent.isWindows()) {
213+
nativeTransportFactoryClassName = "org.asynchttpclient.netty.channel.EpollTransportFactory";
214+
}
215+
208216
try {
209-
return (TransportFactory<? extends Channel, ? extends EventLoopGroup>) Class.forName("org.asynchttpclient.netty.channel.EpollTransportFactory").newInstance();
210-
} catch (Exception e) {
211-
try {
212-
return (TransportFactory<? extends Channel, ? extends EventLoopGroup>) Class.forName("org.asynchttpclient.netty.channel.KQueueTransportFactory").newInstance();
213-
} catch (Exception e1) {
214-
throw new IllegalArgumentException("No suitable native transport (epoll or kqueue) available");
217+
if (nativeTransportFactoryClassName != null) {
218+
return (TransportFactory<? extends Channel, ? extends EventLoopGroup>) Class.forName(nativeTransportFactoryClassName).newInstance();
215219
}
220+
} catch (Exception e) {
216221
}
222+
throw new IllegalArgumentException("No suitable native transport (epoll or kqueue) available");
217223
}
218224

219225
private TransportFactory<? extends Channel, ? extends EventLoopGroup> getDomainTransportFactory() {
@@ -382,6 +388,11 @@ public Future<Channel> updatePipelineForHttpTunneling(ChannelPipeline pipeline,
382388

383389
if (requestUri.isWebSocket()) {
384390
pipeline.addAfter(AHC_HTTP_HANDLER, AHC_WS_HANDLER, wsHandler);
391+
392+
if (config.isEnableWebSocketCompression()) {
393+
pipeline.addBefore(AHC_WS_HANDLER, WS_COMPRESSOR_HANDLER, WebSocketClientCompressionHandler.INSTANCE);
394+
}
395+
385396
pipeline.remove(AHC_HTTP_HANDLER);
386397
}
387398
return whenHanshaked;

0 commit comments

Comments
 (0)