From 22084b2c750f5f3a41a3cc282ad5e9edbb916106 Mon Sep 17 00:00:00 2001 From: zreed Date: Mon, 15 Dec 2014 19:32:13 -0500 Subject: [PATCH] Try loading native cipher from java.library.path first --- .../java/net/md_5/bungee/NativeCipher.java | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/native/src/main/java/net/md_5/bungee/NativeCipher.java b/native/src/main/java/net/md_5/bungee/NativeCipher.java index 96f9c83c..28a1c712 100644 --- a/native/src/main/java/net/md_5/bungee/NativeCipher.java +++ b/native/src/main/java/net/md_5/bungee/NativeCipher.java @@ -30,21 +30,32 @@ public class NativeCipher implements BungeeCipher { if ( !loaded && isSupported() ) { - try ( InputStream lib = BungeeCipher.class.getClassLoader().getResourceAsStream( "native-cipher.so" ) ) + try { - // Else we will create and copy it to a temp file - File temp = File.createTempFile( "bungeecord-native-cipher", ".so" ); - temp.deleteOnExit(); - - try ( OutputStream outputStream = new FileOutputStream( temp ) ) - { - ByteStreams.copy( lib, outputStream ); - System.load( temp.getPath() ); - } + System.loadLibrary( "bungeecord-native-cipher" ); loaded = true; } catch ( Throwable t ) { } + + if ( !loaded ) + { + try ( InputStream lib = BungeeCipher.class.getClassLoader().getResourceAsStream( "native-cipher.so" ) ) + { + // Else we will create and copy it to a temp file + File temp = File.createTempFile( "bungeecord-native-cipher", ".so" ); + temp.deleteOnExit(); + + try ( OutputStream outputStream = new FileOutputStream( temp ) ) + { + ByteStreams.copy( lib, outputStream ); + System.load( temp.getPath() ); + } + loaded = true; + } catch ( Throwable t ) + { + } + } } return loaded;