Skip to content
Unstable

Changes

Summary

  1. Refactor native code and implement our own JNI wrapper around zlib. (commit: 0d569ac) (details)
Commit 0d569ac0d1ed6f38854fc4cc57cde8d2fade36a9 by md_5
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)
The file was addednative/src/main/java/net/md_5/bungee/jni/zlib/BungeeZlib.java
The file was addednative/src/main/java/net/md_5/bungee/jni/cipher/JavaCipher.java
The file was modifiedprotocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java
The file was addedproxy/src/main/java/net/md_5/bungee/compress/PacketCompressor.java
The file was removedprotocol/src/main/java/net/md_5/bungee/protocol/PacketCompressor.java
The file was removednative/src/main/java/net/md_5/bungee/NativeCipher.java
The file was removednative/src/main/java/net/md_5/bungee/NativeCipherImpl.java
The file was addedproxy/src/main/java/net/md_5/bungee/compress/CompressFactory.java
The file was removednative/src/main/java/net/md_5/bungee/FallbackCipher.java
The file was addednative/src/main/java/net/md_5/bungee/jni/zlib/NativeCompressImpl.java
The file was modifiedproxy/src/main/java/net/md_5/bungee/netty/ChannelWrapper.java
The file was modifiednative/src/main/c/NativeCipherImpl.cpp
The file was addednative/src/main/java/net/md_5/bungee/jni/cipher/NativeCipher.java
The file was addednative/src/main/java/net/md_5/bungee/jni/cipher/BungeeCipher.java
The file was modifiednative/src/main/resources/native-cipher.so
The file was modifiednative/src/test/java/net/md_5/bungee/NativeCipherTest.java
The file was addednative/src/main/c/NativeCompressImpl.cpp
The file was removednative/src/main/java/net/md_5/bungee/BungeeCipher.java
The file was addednative/src/main/java/net/md_5/bungee/jni/NativeCode.java
The file was addednative/src/main/java/net/md_5/bungee/jni/cipher/NativeCipherImpl.java
The file was removedprotocol/src/main/java/net/md_5/bungee/protocol/PacketDecompressor.java
The file was addednative/src/main/c/net_md_5_bungee_jni_zlib_NativeCompressImpl.h
The file was addednative/src/main/java/net/md_5/bungee/jni/zlib/NativeZlib.java
The file was addednative/src/main/resources/native-compress.so
The file was modifiedproxy/src/main/java/net/md_5/bungee/netty/cipher/CipherDecoder.java
The file was removednative/src/main/c/net_md_5_bungee_NativeCipherImpl.h
The file was modifiedproxy/src/main/java/net/md_5/bungee/netty/cipher/CipherEncoder.java
The file was addednative/src/main/c/net_md_5_bungee_jni_cipher_NativeCipherImpl.h
The file was modifiedproxy/src/main/java/net/md_5/bungee/EncryptionUtil.java
The file was addedproxy/src/main/java/net/md_5/bungee/compress/PacketDecompressor.java
The file was addednative/src/main/java/net/md_5/bungee/jni/zlib/JavaZlib.java
The file was modifiedproxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java
The file was modifiedproxy/src/main/java/net/md_5/bungee/BungeeCord.java
The file was modifiednative/compile-native.sh
The file was addednative/src/test/java/net/md_5/bungee/NativeZlibTest.java