Skip to content

Commit 96f7061

Browse files
committed
Safely test for fast open support
1 parent 49fd50d commit 96f7061

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

protocol/src/main/java/org/geysermc/mcprotocollib/network/helper/TransportHelper.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
import java.util.concurrent.ThreadFactory;
3333
import java.util.function.BiFunction;
34+
import java.util.function.Supplier;
3435

3536
public class TransportHelper {
3637
public static final TransportHelper.TransportType TRANSPORT_TYPE = TransportHelper.determineTransportMethod();
@@ -87,8 +88,8 @@ private static TransportType determineTransportMethod() {
8788
EpollDatagramChannel::new,
8889
NEW_NETTY ? (threads, factory) ->
8990
new MultiThreadIoEventLoopGroup(threads, factory, EpollIoHandler.newFactory()) : EpollEventLoopGroup::new,
90-
Epoll.isTcpFastOpenServerSideAvailable(),
91-
Epoll.isTcpFastOpenClientSideAvailable()
91+
getSafely(() -> Epoll.isTcpFastOpenServerSideAvailable()),
92+
getSafely(() -> Epoll.isTcpFastOpenClientSideAvailable())
9293
);
9394
}
9495

@@ -106,8 +107,8 @@ private static TransportType determineTransportMethod() {
106107
KQueueDatagramChannel::new,
107108
NEW_NETTY ? (threads, factory) ->
108109
new MultiThreadIoEventLoopGroup(threads, factory, KQueueIoHandler.newFactory()) : KQueueEventLoopGroup::new,
109-
KQueue.isTcpFastOpenServerSideAvailable(),
110-
KQueue.isTcpFastOpenClientSideAvailable()
110+
getSafely(() -> KQueue.isTcpFastOpenServerSideAvailable()),
111+
getSafely(() -> KQueue.isTcpFastOpenClientSideAvailable())
111112
);
112113
}
113114
}
@@ -138,4 +139,12 @@ private static boolean isClassAvailable(String className) {
138139
return false;
139140
}
140141
}
142+
143+
private static boolean getSafely(Supplier<Boolean> supplier) {
144+
try {
145+
return supplier.get();
146+
} catch (Throwable ignored) {
147+
return false;
148+
}
149+
}
141150
}

0 commit comments

Comments
 (0)