Skip to content

Changes

Started 11 yr ago
Took 16 sec
Refactor native code and implement our own JNI wrapper around zlib.

The previous native cipher code has been refactored so that it may be loaded and used slightly more generically, allowing more native components to be easily added as time goes on.
I have also written a new native code compression module, which wraps around zlib in the same manner that Inflater / Deflater does, however it operates directly on the memory addresses of it's input / output buffers which means that we can save one, or maybe even two copies. To support this, the VarInt decoder has been adjusted to always use a native buffer.
(commit: 0d569ac)
native/src/main/java/net/md_5/bungee/NativeCipherImpl.java native/src/main/resources/native-cipher.so native/src/main/java/net/md_5/bungee/jni/cipher/BungeeCipher.java native/src/main/c/net_md_5_bungee_jni_cipher_NativeCipherImpl.h protocol/src/main/java/net/md_5/bungee/protocol/PacketDecompressor.java native/src/main/c/net_md_5_bungee_jni_zlib_NativeCompressImpl.h native/src/main/c/NativeCompressImpl.cpp proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java proxy/src/main/java/net/md_5/bungee/compress/PacketDecompressor.java proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java native/src/main/java/net/md_5/bungee/jni/cipher/JavaCipher.java native/src/main/java/net/md_5/bungee/NativeCipher.java native/compile-native.sh native/src/main/java/net/md_5/bungee/BungeeCipher.java native/src/test/java/net/md_5/bungee/NativeZlibTest.java protocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java native/src/main/java/net/md_5/bungee/jni/zlib/NativeCompressImpl.java proxy/src/main/java/net/md_5/bungee/netty/cipher/CipherEncoder.java native/src/main/c/net_md_5_bungee_NativeCipherImpl.h native/src/main/java/net/md_5/bungee/jni/zlib/JavaZlib.java proxy/src/main/java/net/md_5/bungee/BungeeCord.java native/src/main/c/NativeCipherImpl.cpp native/src/main/resources/native-compress.so proxy/src/main/java/net/md_5/bungee/netty/cipher/CipherDecoder.java proxy/src/main/java/net/md_5/bungee/compress/PacketCompressor.java proxy/src/main/java/net/md_5/bungee/compress/CompressFactory.java native/src/main/java/net/md_5/bungee/jni/NativeCode.java native/src/main/java/net/md_5/bungee/jni/cipher/NativeCipher.java native/src/main/java/net/md_5/bungee/jni/cipher/NativeCipherImpl.java native/src/main/java/net/md_5/bungee/jni/zlib/NativeZlib.java proxy/src/main/java/net/md_5/bungee/netty/ChannelWrapper.java native/src/main/java/net/md_5/bungee/jni/zlib/BungeeZlib.java native/src/test/java/net/md_5/bungee/NativeCipherTest.java protocol/src/main/java/net/md_5/bungee/protocol/PacketCompressor.java native/src/main/java/net/md_5/bungee/FallbackCipher.java
md_5 at