Commit Graph
100 Commits
Author SHA1 Message Date
Andrew Steinborn f49d36b719 Close one last "proxy crasher" loophole 2020-04-12 17:05:36 -04:00
Andrew Steinborn b04b43954f Merge branch 'dev/1.1.0' into decode-multiple 2020-04-11 22:05:43 -04:00
Andrew Steinborn 6ed61848e9 Upon connection exception, discard all incoming packets instead 2020-04-11 21:19:54 -04:00
Andrew Steinborn 98b03376e5 Merge pull request #281 from Gabik21/tablist-improvement
Don't send ping update twice (1.7)
2020-04-07 13:35:18 -04:00
Andrew Steinborn 4374f1e4d6 Merge pull request #288 from Gabik21/fix-1.7-weirdness
Fix tablist behaving wrong with colors (1.7) (Fixes #282)
2020-04-07 11:51:21 -04:00
Andrew Steinborn ae7f0143de Do not trim the args for string-based command APIs 2020-02-28 16:54:46 -05:00
Andrew Steinborn 29bedf0943 Do not trim the args for string-based command APIs 2020-02-28 16:54:25 -05:00
Andrew Steinborn 65acb13dca Checkstyle 2020-02-21 18:51:41 -05:00
Andrew Steinborn 3e053d63b4 Allow ping passthrough for descriptions too 2020-02-21 18:36:10 -05:00
Andrew Steinborn 9edbef981c Uncomment compile lines from script 2020-02-18 01:35:54 -05:00
Andrew Steinborn b3ac73a51e Use Cloudflare zlib for more aggressive optimizations 2020-02-18 01:34:39 -05:00
Andrew Steinborn 496027f7c1 Add AMD64-specific compile script 2020-02-18 01:15:33 -05:00
Andrew Steinborn 932f3bc2bf Merge branch 'dev/1.1.0' into decode-multiple 2020-02-17 20:52:19 -05:00
Andrew Steinborn c63bd4cd02 Fix checkstyle error 2020-02-17 20:35:28 -05:00
Andrew Steinborn 8ae7945b9f Upon connection exception, discard all incoming packets instead 2020-02-17 19:34:22 -05:00
Andrew Steinborn 599adc6d2c Merge remote-tracking branch 'origin/dev/1.1.0' into dev/1.1.0
# Conflicts:
#	proxy/src/test/java/com/velocitypowered/proxy/plugin/util/PluginDependencyUtilsTest.java
2020-02-17 16:33:34 -05:00
Andrew Steinborn 37994449d7 Fix regressions with plugin dependency loading from #272
This is a quick and dirty fix because it's late. I'll need to
commit a better fix later.
2020-02-16 03:19:13 -05:00
Andrew Steinborn 3b6f8e2421 Use more obvious/broken-down test cases for topological sort tests 2020-02-16 00:29:35 -05:00
Andrew Steinborn 9444cfa70f Use more obvious/broken-down test cases for topological sort tests 2020-02-13 19:21:40 -05:00
Andrew Steinborn a5350c6822 Deal with potentially nullable player sample entries 2020-02-13 13:32:47 -05:00
Andrew Steinborn e558b7ca1f Update to new bStats revision 2020-02-13 12:58:24 -05:00
Andrew Steinborn 77526d9bf4 Merge pull request #266 from alex11441/dev/1.1.0
Allow users to specify a reason in the shutdown command
2020-01-24 16:01:23 -05:00
Andrew Steinborn c7bac69290 Don't attempt to retain the buffer if it goes to a closed connection 2020-01-24 01:22:32 -05:00
Andrew Steinborn 53c951bc52 Revert "Another experiment for memory leaks: Create a brand-new buffer for passthrough uncompressed content"
This reverts commit 92571a65db.

It looks like c3fab89bd7 nabbed it at last.
2020-01-24 01:21:50 -05:00
Andrew Steinborn 6e41ce7f15 Minecraft 1.15.2 2020-01-21 13:28:27 -05:00
Andrew Steinborn be867a8ca9 Minecraft 1.15.2 2020-01-21 13:28:01 -05:00
Andrew Steinborn c3fab89bd7 Don't attempt to retain the buffer if it goes to a closed connection 2020-01-20 17:37:21 -05:00
Andrew Steinborn 92571a65db Another experiment for memory leaks: Create a brand-new buffer for passthrough uncompressed content 2020-01-14 22:18:05 -05:00
Andrew Steinborn c14ceb315d Return the magic-3 loop again... :( 2020-01-01 10:14:15 -05:00
Andrew Steinborn a15c8ecc2b Merge branch 'dev/1.1.0' into decode-multiple 2019-12-31 21:43:11 -05:00
Andrew Steinborn 08df080771 Try to diagnose memory leak 2019-12-31 21:43:02 -05:00
Andrew Steinborn fb0446f4fc Add DisconnectEvent#disconnectedDuringLogin() 2019-12-24 23:56:39 -05:00
Andrew Steinborn 2073d79771 Minecraft 1.15.1 2019-12-17 13:57:48 -05:00
Andrew Steinborn deede70070 Rename mystery field in JoinGame 2019-12-17 13:57:48 -05:00
Andrew Steinborn 4c09024952 Minecraft 1.15.1 2019-12-17 13:57:23 -05:00
Andrew Steinborn fa489f6014 Rename mystery field in JoinGame 2019-12-14 17:45:10 -05:00
Andrew Steinborn b92d0d2657 Merge branch 'dev/1.1.0' into decode-multiple 2019-12-10 11:47:22 -05:00
Andrew Steinborn 07c2024307 Minecraft 1.15 2019-12-10 11:47:10 -05:00
Andrew Steinborn 02ae891be9 Merge branch 'dev/1.1.0' into decode-multiple 2019-12-09 18:03:41 -05:00
Andrew Steinborn b5aeeab2a8 Minecraft 1.15-pre7 2019-12-09 18:00:08 -05:00
Andrew Steinborn 97da6753b5 Merge branch 'dev/1.1.0' into decode-multiple 2019-12-06 03:10:25 -05:00
Andrew Steinborn 8c3f7e2ecc Optimize DNS resolution logic for AsyncHttpClient 2019-12-01 15:17:17 -05:00
Andrew Steinborn 75359256b3 Introduce velocity.natives-tmpdir property for properly handling noexec /tmp 2019-11-29 14:27:27 -05:00
Andrew Steinborn 2f55912995 Graceful fallback when /tmp is amounted noexec on Linux
Fixes #260
2019-11-29 12:04:12 -05:00
Andrew Steinborn 667610c251 Fix command block tab complete on <=1.12.2 2019-11-28 15:28:02 -05:00
Andrew Steinborn d137d6ce46 Fix command block tab complete on <=1.12.2 2019-11-28 15:22:26 -05:00
Andrew Steinborn d1acd5b6d5 Merge branch 'dev/1.1.0' into decode-multiple 2019-11-28 13:23:46 -05:00
Andrew Steinborn 50b50f3cbb Fix 1.13+ tab complete for server commands 2019-11-28 13:12:53 -05:00
Andrew Steinborn ae82bb21af Merge branch 'dev/1.1.0' into decode-multiple 2019-11-27 01:09:21 -05:00
Andrew Steinborn 68e5372b2e QuietException should be a RuntimeException 2019-11-27 01:04:48 -05:00
Andrew Steinborn 467fe34da3 Provide useful information for "unexpectedly disconnected from server"
Fixes #233
2019-11-27 01:01:50 -05:00
Andrew Steinborn 94035366c2 Merge pull request #255 from VelocityPowered/bungeequack-integrate
Integrate BungeeQuack functionality into Velocity
2019-11-26 16:33:37 -05:00
Andrew Steinborn 0c14eabe6b Fix Checkstyle issues 2019-11-26 16:32:50 -05:00
Andrew Steinborn 87ad188f92 Finalize integrated BungeeQuack 2019-11-26 16:27:30 -05:00
Andrew Steinborn b08f27b5c4 Merge branch 'dev/1.1.0' into bungeequack-integrate 2019-11-26 15:52:53 -05:00
Andrew Steinborn 0b6fc06e67 Initial 1.15-pre2 support 2019-11-26 15:10:22 -05:00
Andrew Steinborn bfeca40b17 Make sure we only tab-complete commands for which we have access to 2019-11-26 14:08:16 -05:00
Andrew Steinborn e29e20b1e8 Fix 1.13+ tab-complete with command but no arguments
As a nice side-effect, this simplifies the tab complete code
a bit.
2019-11-26 13:44:21 -05:00
Andrew Steinborn ae14eb8ccb Fix potential UDP speculative reflection attack 2019-11-23 01:07:29 -05:00
Andrew Steinborn 8725178d6d Flush queued packets to the client in case we can't write 2019-11-17 14:52:12 -05:00
Andrew Steinborn 3eeea8e8f8 Add limited flush consolidation, if the remote server supports it. 2019-11-17 11:14:56 -05:00
Andrew Steinborn d2b8271eb4 Allow running Velocity without any servers.
This is a niche setup, however if your network is 100% dynamically configured, this is a handy feature to have available.

To support this functionality, a new PlayerChooseInitialServerEvent event was added to allow the initial server to connect to be changed as desired.
2019-11-16 23:17:09 -05:00
Andrew Steinborn e12f970684 Fix fresh 1.1.0 velocity.toml generation. 2019-11-16 22:34:30 -05:00
Andrew Steinborn 010a10f50f Do not try to prevent people from running Velocity behind Velocity.
This commit absolutely does not change our support policy on this: this
is a completely unsupported setup. In any event, there is an existing
forwarding check in Velocity that covers this case quite well.

I am making this change to make the login process less "chatty" for
higher-latency links and 1.13+ servers.
2019-11-15 01:35:44 -05:00
Andrew Steinborn ba8629ca0e Try to decode multiple packets at once 2019-11-15 00:39:11 -05:00
Andrew Steinborn d333eb30b8 Always create the length buffer using the best possible native buffer 2019-11-09 22:07:54 -05:00
Andrew Steinborn af0903050d Make sure in-place AES respects reader index 2019-11-09 21:30:46 -05:00
Andrew Steinborn d73496e8df Introduce zero memory-copy compression for regular Java native
The compression itself is zero-copy in most cases. However, the overhead
needed to copy a direct buffer into a heap buffer (and back) is still
present. If possible, use Linux for best performance.
2019-11-09 17:39:47 -05:00
Andrew Steinborn 8c98f5a4a6 Simplify and harden Netty handlers 2019-11-05 20:07:47 -05:00
Andrew Steinborn 09d33de03e Merge pull request #256 from Gabik21/previous-server-in-event
Add previous server to ServerConnectedEvent
2019-10-31 19:51:32 -04:00
Andrew Steinborn 3f321a5219 Indicate plugin loads 2019-10-26 21:10:38 -04:00
Andrew Steinborn adcf7729db Update Netty to 4.1.43.Final 2019-10-26 01:24:44 -04:00
Andrew Steinborn 9d5930d96b Integrate BungeeQuack functionality into Velocity 2019-10-20 00:58:55 -04:00
Andrew Steinborn 19e1e05bbc Bring back kqueue transport from the dead
My PR to AsyncHttpClient was accepted and 2.10.4 was released with it
included.
2019-10-20 00:27:31 -04:00
Andrew Steinborn 523cea529e Merge pull request #254 from Ichbinjoe/aes-nocopy
Make AES crypto operations no-copy
2019-10-20 00:13:32 -04:00
Andrew Steinborn 6ff5cac4d3 Fix issues with decoding and Java fallback native 2019-10-19 23:56:44 -04:00
Andrew Steinborn 8d4f8f0bfa Merge pull request #253 from OKTW-Network/custom-redirect-message
Allow set redirect message
2019-10-16 21:56:27 -04:00
Andrew Steinborn 20559e059d Properly rethrow DataFormatException in Java 11+ compressor 2019-10-05 14:44:05 -04:00
Andrew Steinborn b18f65fe0a Allow building on Java 11 (and set Travis to build on OpenJDK 11) 2019-10-04 17:09:41 -04:00
Andrew Steinborn 7747679ee1 Implement optimized compression for Java 11+
Using the fact that the Java Deflater/Inflater API now supports
ByteBuffers as of Java 11, we can provide performance benefits equivalent
to the Velocity 1.0.x native compression on servers running Java 11+ on
non-macOS and non-Linux platforms (such as Windows).
2019-10-04 17:08:14 -04:00
Andrew Steinborn 078db5ca65 Merge pull request #252 from Gabik21/dev/1.1.0
Fix typo in gitignore
2019-09-29 16:10:21 -04:00
Andrew Steinborn 39e48c9467 Implement #149 to send just one respawn packet 2019-09-28 00:29:51 -04:00
Andrew Steinborn 62cd2c661a Clean up HandshakeSessionHandler 2019-09-27 22:39:16 -04:00
Andrew Steinborn 546307b0d6 Suppress invalid protocol spam 2019-09-27 22:24:21 -04:00
Andrew Steinborn 9141ea112f Bump to Netty 4.1.42.Final 2019-09-26 22:30:24 -04:00
Andrew Steinborn 47ada83700 Add modified FastUUID 2019-09-26 22:27:08 -04:00
Andrew Steinborn 9b570ff599 Revert this entirely for now. 2019-09-17 09:38:12 -04:00
Andrew Steinborn 8dea7567d8 Correctly handle 0-length packet 2019-09-17 09:33:43 -04:00
Andrew Steinborn 009c9afe09 Decode multiple VarInt-prefixed packets
If the remote server does flush consolidation, Velocity will be able to
frame the packets all at once instead of having to constantly decode
packets. This should provide a modest performance boost for them whilst
not impacting un-optimized servers.
2019-09-16 20:01:38 -04:00
Andrew Steinborn 138a887d73 Fix "all" not appearing in the tab-complete for /server 2019-09-15 19:55:04 -04:00
Andrew Steinborn 9c9fa1c5ae Remove flush consolidation for now
This is still highly experimental
2019-09-09 00:47:42 -04:00
Andrew Steinborn e21c33d435 Switch to zlib-ng
zlib-ng boasts higher throughput than regular zlib, by combining patches
from Cloudflare, zlib, and ARM's improvements to zlib along with a more
modern codebase.

Profiling consistently shows that compression is the largest CPU expense
by far, so even a minor speed-up here is significant.
2019-09-08 23:30:28 -04:00
Andrew Steinborn 63dcc56735 Also sort servers for /glist all 2019-09-07 17:09:36 -04:00
Andrew Steinborn 08173c50ef Refactor and improve ServerCommand
The code has been cleaned up and reorganized. As a small quality of life
change, the server names are now sorted in alphabetical order.
2019-09-07 17:06:10 -04:00
Andrew Steinborn 260f7f575a ServerInfo is now comparable 2019-09-07 17:06:06 -04:00
Andrew Steinborn 983f3012a6 Merge branch 'dev/1.1.0' into feature/flush-consolidation-v2 2019-09-07 00:34:08 -04:00
Andrew Steinborn ecfb14411d Merge remote-tracking branch 'origin/dev/1.1.0' into dev/1.1.0 2019-09-07 00:15:34 -04:00
Andrew Steinborn 3a77068088 Slightly more accurate natives check 2019-09-07 00:15:10 -04:00
Andrew Steinborn 35856fec04 Merge branch 'dev/1.1.0' into natives-java-improvements
# Conflicts:
#	native/src/main/java/com/velocitypowered/natives/encryption/JavaVelocityCipher.java
2019-09-07 00:06:13 -04:00
Andrew Steinborn 71281111bf Merge pull request #244 from Gabik21MC/dev/1.1.0
Completely clear legacy tablist on server switch
2019-09-05 08:02:38 -04:00