Oops.
This commit is contained in:
parent
566e67a188
commit
fc6f817452
3 changed files with 39 additions and 12 deletions
|
@ -1,8 +1,35 @@
|
||||||
From d2c3009e1ee527e5d6b990264190370ff50444b2 Mon Sep 17 00:00:00 2001
|
From e2f25a41e80e4c9ece6059b2808f003a49556769 Mon Sep 17 00:00:00 2001
|
||||||
From: md_5 <md_5@live.com.au>
|
From: md_5 <md_5@live.com.au>
|
||||||
Date: Fri, 19 Apr 2013 17:44:39 +1000
|
Date: Fri, 19 Apr 2013 17:44:39 +1000
|
||||||
Subject: [PATCH] Netty
|
Subject: [PATCH] Netty
|
||||||
|
|
||||||
|
Implement an uber efficient network engine based on the
|
||||||
|
Java NIO framework Netty. This is basically a complete rewrite of the
|
||||||
|
Minecraft network engine with many distinct advantages. First and foremost,
|
||||||
|
there will no longer be the horrid, and redundant case of 2, or even at
|
||||||
|
times, 3 threads per a connection. Instead low level select/epoll based NIO
|
||||||
|
is used. The number of threads used for network reading and writing will
|
||||||
|
scale automatically to the number of cores for use on your server. In most
|
||||||
|
cases this will be around 8 threads for a 4 core server, much better than the
|
||||||
|
up to 1000 threads that could be in use at one time with the old engine. To
|
||||||
|
facilitate asynchronous packet sending or receiving (currently only chat), a
|
||||||
|
thread pool of 16 threads is kept handy. == Plugin incompatibilities As a
|
||||||
|
side effect of this change, plugins which rely on very specific
|
||||||
|
implementation level details within Minecraft are broken. At this point in
|
||||||
|
time, TagAPI and ProtocolLib are affected. If you are a user of ProtocolLib
|
||||||
|
you are advised to update to the latest build, where full support is enabled.
|
||||||
|
If you are a user of TagAPI, support has not yet been added, so you will need
|
||||||
|
to install the updated ProtocolLib so that TagAPI may use its functions. ==
|
||||||
|
Stability The code within this commit has been very lightly tested in
|
||||||
|
production (300 players for approximately 24 hours), however it is not
|
||||||
|
guaranteed to be free from all bugs. If you experence weird connection
|
||||||
|
behaviour, reporting the bug and steps to reproduce are advised. You are also
|
||||||
|
free to downgrade to the latest recommend build, which is guaranteed to be
|
||||||
|
stable. == Summary This commit provides a reduction in threads, which gives
|
||||||
|
the CPU / operating system more time to allocate to the main server threads,
|
||||||
|
as well as various other side benefits such as chat thread pooling and a
|
||||||
|
slight reduction in latency. This commit is licensed under the Creative
|
||||||
|
Commons Attribution-ShareAlike 3.0 Unported license.
|
||||||
|
|
||||||
diff --git a/pom.xml b/pom.xml
|
diff --git a/pom.xml b/pom.xml
|
||||||
index da1a0eb..b8c24af 100644
|
index da1a0eb..b8c24af 100644
|
||||||
|
@ -134,7 +161,7 @@ index 9f8afe3..b1d3a17 100644
|
||||||
};
|
};
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
diff --git a/src/main/java/net/minecraft/server/PendingConnection.java b/src/main/java/net/minecraft/server/PendingConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PendingConnection.java b/src/main/java/net/minecraft/server/PendingConnection.java
|
||||||
index eb474f5..71e4739 100644
|
index eb474f5..836ad94 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PendingConnection.java
|
--- a/src/main/java/net/minecraft/server/PendingConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PendingConnection.java
|
+++ b/src/main/java/net/minecraft/server/PendingConnection.java
|
||||||
@@ -17,7 +17,7 @@ public class PendingConnection extends Connection {
|
@@ -17,7 +17,7 @@ public class PendingConnection extends Connection {
|
||||||
|
@ -180,7 +207,7 @@ index eb474f5..71e4739 100644
|
||||||
- ((DedicatedServerConnection) this.server.ae()).a(inetaddress);
|
- ((DedicatedServerConnection) this.server.ae()).a(inetaddress);
|
||||||
+ // Spigot start
|
+ // Spigot start
|
||||||
+ if (inetaddress != null) {
|
+ if (inetaddress != null) {
|
||||||
+ ((org.spigotmc.MultiplexingServerConnection) this.server.ae()).throttle(inetaddress);
|
+ ((org.spigotmc.MultiplexingServerConnection) this.server.ae()).unThrottle(inetaddress);
|
||||||
}
|
}
|
||||||
+ // Spigot end
|
+ // Spigot end
|
||||||
|
|
||||||
|
@ -258,7 +285,7 @@ index 84dcfcc..a30f217 100644
|
||||||
private static final int RECENT_TICKS;
|
private static final int RECENT_TICKS;
|
||||||
diff --git a/src/main/java/org/spigotmc/MultiplexingServerConnection.java b/src/main/java/org/spigotmc/MultiplexingServerConnection.java
|
diff --git a/src/main/java/org/spigotmc/MultiplexingServerConnection.java b/src/main/java/org/spigotmc/MultiplexingServerConnection.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..7dc2533
|
index 0000000..6e5de56
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/spigotmc/MultiplexingServerConnection.java
|
+++ b/src/main/java/org/spigotmc/MultiplexingServerConnection.java
|
||||||
@@ -0,0 +1,126 @@
|
@@ -0,0 +1,126 @@
|
||||||
|
@ -356,7 +383,7 @@ index 0000000..7dc2533
|
||||||
+ *
|
+ *
|
||||||
+ * @param address the address to remove
|
+ * @param address the address to remove
|
||||||
+ */
|
+ */
|
||||||
+ public void a(InetAddress address) {
|
+ public void unThrottle(InetAddress address) {
|
||||||
+ if (address != null) {
|
+ if (address != null) {
|
||||||
+ synchronized (throttle) {
|
+ synchronized (throttle) {
|
||||||
+ throttle.remove(address);
|
+ throttle.remove(address);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From bdb32d91ed3c63d9592aab483640c795828e8a6b Mon Sep 17 00:00:00 2001
|
From 7c45fcce863877c76d52a4878aa9ccacc37b24b9 Mon Sep 17 00:00:00 2001
|
||||||
From: Benjamin James Harrison-Sims <tehrainbowguy@gmail.com>
|
From: Benjamin James Harrison-Sims <tehrainbowguy@gmail.com>
|
||||||
Date: Sun, 14 Apr 2013 21:19:57 +0500
|
Date: Sun, 14 Apr 2013 21:19:57 +0500
|
||||||
Subject: [PATCH] Prevent handshake spam from invalid names.
|
Subject: [PATCH] Prevent handshake spam from invalid names.
|
||||||
|
@ -25,7 +25,7 @@ index 343af93..aa6609b 100644
|
||||||
|
|
||||||
public void a(DataOutputStream dataoutputstream) throws IOException { // CraftBukkit - throws IOException
|
public void a(DataOutputStream dataoutputstream) throws IOException { // CraftBukkit - throws IOException
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
||||||
index 504bd8b..ff28a99 100644
|
index 504bd8b..2bb9664 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
||||||
@@ -9,6 +9,8 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
@@ -9,6 +9,8 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
@ -41,7 +41,7 @@ index 504bd8b..ff28a99 100644
|
||||||
private static Metrics metrics;
|
private static Metrics metrics;
|
||||||
public static List<String> bungeeIPs;
|
public static List<String> bungeeIPs;
|
||||||
public static int textureResolution = 16;
|
public static int textureResolution = 16;
|
||||||
+ public static final Pattern validName = Pattern.compile("^[a-zA-Z0-9_]{2,16}$");
|
+ public static final Pattern validName = Pattern.compile("^[a-zA-Z0-9_-]{2,16}$");
|
||||||
|
|
||||||
public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) {
|
public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) {
|
||||||
commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps"));
|
commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps"));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From ee9246854da8fff0ec2a98c4e3263334325c0a52 Mon Sep 17 00:00:00 2001
|
From 4499dfd50e9bf1272980f4ca537b4c507e55fe28 Mon Sep 17 00:00:00 2001
|
||||||
From: md_5 <md_5@live.com.au>
|
From: md_5 <md_5@live.com.au>
|
||||||
Date: Fri, 19 Apr 2013 19:13:42 +1000
|
Date: Fri, 19 Apr 2013 19:13:42 +1000
|
||||||
Subject: [PATCH] Snapshot Protocol
|
Subject: [PATCH] Snapshot Protocol
|
||||||
|
@ -316,7 +316,7 @@ index 0000000..bbfbb88
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/net/minecraft/server/PendingConnection.java b/src/main/java/net/minecraft/server/PendingConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PendingConnection.java b/src/main/java/net/minecraft/server/PendingConnection.java
|
||||||
index 27cf4e3..adc3509 100644
|
index 72fb172..9e5035a 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PendingConnection.java
|
--- a/src/main/java/net/minecraft/server/PendingConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PendingConnection.java
|
+++ b/src/main/java/net/minecraft/server/PendingConnection.java
|
||||||
@@ -77,8 +77,8 @@ public class PendingConnection extends Connection {
|
@@ -77,8 +77,8 @@ public class PendingConnection extends Connection {
|
||||||
|
@ -340,13 +340,13 @@ index 27cf4e3..adc3509 100644
|
||||||
for (Object object : list) {
|
for (Object object : list) {
|
||||||
if (s == null) {
|
if (s == null) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
||||||
index ff28a99..99e8aa8 100644
|
index 2bb9664..8a513a6 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
|
||||||
@@ -28,6 +28,9 @@ public class Spigot {
|
@@ -28,6 +28,9 @@ public class Spigot {
|
||||||
public static List<String> bungeeIPs;
|
public static List<String> bungeeIPs;
|
||||||
public static int textureResolution = 16;
|
public static int textureResolution = 16;
|
||||||
public static final Pattern validName = Pattern.compile("^[a-zA-Z0-9_]{2,16}$");
|
public static final Pattern validName = Pattern.compile("^[a-zA-Z0-9_-]{2,16}$");
|
||||||
+ public static boolean snapshotSupport;
|
+ public static boolean snapshotSupport;
|
||||||
+ public static int snapshotProtocolVersion = 62;
|
+ public static int snapshotProtocolVersion = 62;
|
||||||
+ public static String snapshotVersion = "13w16a";
|
+ public static String snapshotVersion = "13w16a";
|
||||||
|
|
Loading…
Reference in a new issue