13
0
geforkt von Mirrors/Velocity
Commit graph

584 Commits

Autor SHA1 Nachricht Datum
Joe Hirschfeld
a16684564b Make AES crypto operations use one buffer
All AES implementations being used are 'copy safe', where the source and
destination arrays may be the same. Lets save ourself a copy and reap
the performance wins!
2019-10-19 19:55:02 -07:00
james58899
bd35c6835e
Allow set redirect message 2019-10-17 08:32:50 +08: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
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
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
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
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
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
Gabik21
aef0f2ca8c
Fix name mapping not being cleared on switch
This fixes a bug where tablist would be messed up for 1.7 clients due to
an internal misconception.
2019-09-05 12:17:19 +02:00
Leymooo
fd367c6efd Add method to determine if player is in OnlineMode 2019-09-04 01:44:40 +03:00
Gabik21
592517b9f3
Remove unnessecary diff 2019-08-29 19:58:00 +02:00
Gabik21
18a56d8b1d
Merge remote-tracking branch 'upstream/dev/1.1.0' 2019-08-29 19:47:04 +02:00
Andrew Steinborn
dbfbd1e2a9 Rename ConnectedPlayer#minecraftConnection -> ConnectedPlayer#connection
This is consistent with VelocityServerConnection
2019-08-17 20:17:12 -04:00
Gabik21
ca81b05551
Remove no longer used imports 2019-08-16 11:50:49 +02:00
Andrew Steinborn
b3ca066a17 Lower write water mark to 1MB 2019-08-10 14:08:45 -04:00
Andrew Steinborn
7cb86067bc Lower the explicit flush count
Initial testing suggests this makes flush consolidation stable, although
the CPU usage will be increased as we are more aggressive in flushing
messages to the channels.
2019-08-08 18:39:22 -04:00
Andrew Steinborn
ca3426033f Revert "Revert "Merge branch 'feature/flush-consolidation' into dev/1.1.0""
This reverts commit e476ee815a.
2019-08-08 18:00:52 -04:00
Andrew Steinborn
648c149872 Fix bug where connect() wouldn't reset in-flight connections 2019-08-08 17:22:38 -04:00
Andrew Steinborn
e476ee815a Revert "Merge branch 'feature/flush-consolidation' into dev/1.1.0"
This reverts commit f72f50819d, reversing
changes made to 3b9db94ce9.
2019-08-08 08:22:37 -04:00
Andrew Steinborn
f72f50819d Merge branch 'feature/flush-consolidation' into dev/1.1.0 2019-08-07 21:17:52 -04:00
Andrew Steinborn
3b9db94ce9 Explicitly parse IP addresses before using an unresolved address
This allows plugins to more correctly use InetSocketAddress#getAddress(),
however "gotchas" remain.
2019-08-07 16:22:07 -04:00
Andrew Steinborn
32ef77f954 Flush consolidation tweaks 2019-08-07 16:04:34 -04:00
Andrew Steinborn
195a506117 Flush consolidation 2019-08-07 15:02:48 -04:00
Andrew Steinborn
2c3b30fff2
Merge pull request #240 from VelocityPowered/feature/ping-passthrough
Ping passthrough
2019-08-07 12:21:50 -04:00
Andrew Steinborn
e3c75a7fcc Silence TCP_FASTOPEN warnings when not using epoll and fast open enabled 2019-08-06 06:43:27 -04:00
Andrew Steinborn
62c6adb204 Consider forced hosts in ping passthrough 2019-08-06 03:26:55 -04:00
Andrew Steinborn
d8fb7c11e7 Clean up slightly, don't use streams 2019-08-06 03:16:24 -04:00
Andrew Steinborn
ca9a4492c4 Add support for ping pass-through
By default, ping pass-through is not enabled. However, you can use
ping passthrough to pass through just mods (great for modded servers)
or everything.
2019-08-06 02:06:53 -04:00
Andrew Steinborn
9f3d1a2390 Fix Checkstyle, again 2019-08-05 11:01:18 -04:00
Andrew Steinborn
b4e62443c9 Add arbitrary chat tab complete event. Fixes #236 2019-08-05 10:30:55 -04:00
Andrew Steinborn
19cec571d0 Clean up some junk 2019-08-05 09:53:18 -04:00
Andrew Steinborn
7db757cd04 Allow certain mangled large packets to pass through 2019-07-30 17:10:10 -04:00
Andrew Steinborn
121ab41d96 Introduce TCP_FASTOPEN support
For best results, use Linux 4.11+ and a server modified to set the
TCP_FASTOPEN flag.

This should in particular benefit users of legacy forwarding.
2019-07-29 17:32:56 -04:00
Andrew Steinborn
0acb1ed7d4 Send disconnect message on getting kicked from the server 2019-07-29 14:27:40 -04:00
Andrew Steinborn
03c9729e63 Don't disconnect the player if the connection unexpectedly closes 2019-07-29 14:19:21 -04:00
Andrew Steinborn
04efd16a83 Avoid a memory copy in creating modern-style forwarding data 2019-07-29 06:04:37 -04:00
Andrew Steinborn
1da51b8ffb Batch handshake and server login/ping packets 2019-07-29 05:25:29 -04:00
Andrew Steinborn
d65e371038 Fix up the Travis build... 2019-07-29 00:24:57 -04:00
Andrew Steinborn
ead8a21362 Most proper clean way of using a DnsAddressResolverGroup with AHC
Let us never speak of this again.
2019-07-29 00:19:15 -04:00
Andrew Steinborn
bf035bce73 Properly use non-blocking DNS in AsyncHttpClient 2019-07-28 23:40:23 -04:00
Andrew Steinborn
454b3c9bee Add flag to disable native transports 2019-07-26 01:34:21 -04:00
Andrew Steinborn
d1736bf94c Move from custom HTTP client to Async HTTP Client
The most significant advantage is that Velocity gets a well-tested
HTTP client implementation which also includes a connection pool,
allowing us to avoid the overhead of TCP and TLS handshakes upon each
login.

Unfortunately, Async HTTP Client does not work with the kqueue transport.
Since almost nobody runs a production Velocity server on macOS, we have
decided to remove kqueue support. The benefits that Async HTTP Client
provides outweigh the disadvantages of not having a macOS native transport.
macOS is adequately supported by the normal NIO transport.
2019-07-26 01:29:51 -04:00