Andrew Steinborn
b0736548a9
Strengthen check in JavaVelocityCompressor
2019-06-09 04:43:24 -04:00
Andrew Steinborn
b19d36e939
Strictly enforce packet size limits for incoming compressed packets
2019-06-09 04:25:13 -04:00
Andrew Steinborn
b881e9cf04
Do a small sanity check, however
2019-05-21 00:58:52 -04:00
Andrew Steinborn
821a7a45bc
Small optimization for NativeVelocityCipher
...
Instead of going through the general process function, which does extra
checks to ensure that its arguments are sane, move "closer" to the action
by stripping down to the actual implementation.
2019-05-21 00:56:14 -04:00
Willsr71
961e3ece27
Fix DataFormatException with java decompression ( #195 )
2019-04-27 19:04:28 -04:00
Andrew Steinborn
1661cece2d
An Easter basket bearing gifts! ( #191 )
...
* Delay switch to new server until after JoinGame is sent.
Unfortunately, in some cases (especially vanilla Minecraft) some login
disconnects are sent after ServerLoginSuccess but before JoinGame.
We've been using ServerLoginSuccess but it has caused too many problems.
Now Velocity will switch to a stripped-down version of the play session
handler until JoinGame is received. This handler does very little by
itself: it simply forwards plugin messages (for Forge) and waits for the
JoinGame packet from the server.
This is an initial version: only vanilla Minecraft 1.12.2 was tested.
However this is the way Waterfall without entity rewriting does server
switches (which, in turn, is inherited from BungeeCord).
* Move to Gradle 5 and Error Prone.
2019-04-24 14:36:49 -04:00
Andrew Steinborn
d8e7f87506
Forgot to update the JNI compile script for Linux.
2019-01-11 14:15:07 -05:00
Andrew Steinborn
9daa6c3a64
Prettify JNI stuff.
2019-01-11 14:13:13 -05:00
Andrew Steinborn
1ddeb85f60
Try to reduce JNI calls into compressor.
...
Comparatively speaking, JNI calls are very expensive, so we want to
reduce them as much as possible.
2019-01-10 21:10:00 -05:00
Andrew Steinborn
466d06216d
Fix minor bug in JavaVelocityCipher
2018-12-30 11:08:13 -05:00
Andrew Steinborn
25773cd366
Fix typo, clarification, pre-size buffer in ensureCompatible().
2018-12-30 07:18:19 -05:00
Andrew Steinborn
ae850443ad
Fix build due to checkstyle
2018-12-30 06:50:44 -05:00
Andrew Steinborn
8588e7f1fe
Optimize native handling further.
...
We now try to work within the boundaries given by the native. In the
case of Java natives, we work with byte arrays. With natives, always use
direct buffers.
However, the numbers do favor the natives, since they work with direct
byte buffers, without any copying. For the most part, this commit is
intended to improve the lives of Velocity users on Windows.
2018-12-30 06:16:04 -05:00
Andrew Steinborn
095a478440
Always ensure we don't pass a heap ByteBuf to the natives.
2018-12-30 04:53:47 -05:00
Andrew Steinborn
1c50922cba
Make sure we can get memory addresses before we think about natives.
2018-12-30 04:33:10 -05:00
Andrew Steinborn
9bbe25fc90
Improve efficiency of Java implementation of natives.
2018-12-28 13:02:46 -05:00
Andrew Steinborn
2ab84f3775
Fix missing throws clause
2018-12-24 12:19:40 -05:00
Andrew Steinborn
e690d88fa0
Generic MBEDTLS_ROOT
2018-12-24 12:18:36 -05:00
Andrew Steinborn
41592afade
Allow native crypto to always be selected.
...
This removes the need to patch Velocity to enable the native crypto
support, if compiled.
2018-12-23 23:02:51 -05:00
Andrew Steinborn
868976e09c
Add Javadoc and remove all Checkstyle issues from API and natives.
2018-11-15 19:04:39 -05:00
Andrew Steinborn
1310cd2c53
Mix of Checkstyle and SonarLint.
2018-10-28 03:18:15 -04:00
Andrew Steinborn
25b5e00125
Reformat with Google code style and enforce Checkstyle.
...
Fixes #125
2018-10-27 23:45:36 -04:00
Andrew Steinborn
32829c5637
Checker Framework integration ( #126 )
2018-10-27 21:45:42 -04:00
Andrew Steinborn
50c27066e2
Import cleanup
2018-09-19 14:56:49 -04:00
Andrew Steinborn
fc48db62b5
Improve native initialization logic, again
2018-09-17 15:02:49 -04:00
Andrew Steinborn
e75ec71b32
Improve native initialization logic
...
This uses the double-check pattern as recommended in Effective Java.
2018-09-17 01:03:17 -04:00
Andrew Steinborn
168c36facf
Bring to latest master
2018-08-25 01:13:00 -04:00
Andrew Steinborn
a37a0d6665
Merge branch 'master' into native-crypto
...
# Conflicts:
# native/src/main/java/com/velocitypowered/natives/util/Natives.java
2018-08-25 01:12:26 -04:00
kashike
6a3a5a0458
minor shuffle to log messages
2018-08-12 01:36:37 -07:00
Andrew Steinborn
0c7815b6e9
Disable the natives test for now
2018-08-04 23:48:31 -04:00
Andrew Steinborn
8aa1fe524e
Native cryptography support using mbed TLS
2018-08-04 23:46:41 -04:00
Andrew Steinborn
9438d087e2
Refactor cipher logic.
2018-08-04 00:09:25 -04:00
Andrew Steinborn
68d315d1d3
Improvements for natives.
2018-08-02 23:52:21 -04:00
Andrew Steinborn
b720b691de
Revert experimental change
2018-08-02 14:22:42 -04:00
Andrew Steinborn
4bc4a1ec6a
Use singular plurals, clean up some stuff.
2018-08-02 14:07:32 -04:00
Andrew Steinborn
2e59138428
Cleaned up native code.
2018-08-02 00:43:38 -04:00
Andrew Steinborn
850b2f7958
Add disposal checks.
2018-08-01 23:14:22 -04:00
Andrew Steinborn
fb4e6fd8f1
JNI native zlib compression 🔥
2018-08-01 22:22:09 -04:00
Andrew Steinborn
22dd4bbb99
Split natives. Add proper disposal for natives.
2018-08-01 00:20:51 -04:00