Security fixes for #5
This commit is contained in:
@@ -15,7 +15,6 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
|
||||
import co.aikar.timings.Timing;
|
||||
import co.aikar.timings.Timings;
|
||||
import io.netty.channel.Channel.Unsafe;
|
||||
|
||||
public abstract class Akari {
|
||||
/**
|
||||
|
||||
@@ -140,10 +140,6 @@ public class MixinMinecraftServer {
|
||||
this.an().c();
|
||||
MinecraftTimings.connectionTimer.stopTiming();
|
||||
|
||||
Akari.callbackTiming().startTiming();
|
||||
while ((runnable = Akari.callbackQueue.poll()) != null) runnable.run();
|
||||
Akari.callbackTiming().stopTiming();
|
||||
|
||||
MinecraftTimings.playerListTimer.startTiming();
|
||||
this.v.tick();
|
||||
MinecraftTimings.playerListTimer.stopTiming();
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
package io.akarin.server.mixin.core;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import net.minecraft.server.NetworkManager;
|
||||
|
||||
@Mixin(value = NetworkManager.class, remap = false)
|
||||
public class MixinNetworkManager {
|
||||
|
||||
}
|
||||
@@ -31,6 +31,7 @@ import io.netty.channel.socket.nio.NioServerSocketChannel;
|
||||
import io.netty.util.concurrent.Future;
|
||||
import io.netty.util.concurrent.GenericFutureListener;
|
||||
import net.minecraft.server.ChatComponentText;
|
||||
import net.minecraft.server.ITickable;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.NetworkManager;
|
||||
import net.minecraft.server.PacketPlayOutKickDisconnect;
|
||||
@@ -135,15 +136,13 @@ public class NonblockingServerConnection {
|
||||
Collections.shuffle(h);
|
||||
}
|
||||
|
||||
int submitted = 0;
|
||||
Iterator<NetworkManager> it = h.iterator();
|
||||
while (it.hasNext()) {
|
||||
NetworkManager manager = it.next();
|
||||
if (manager.h()) continue; // PAIL: NetworkManager::hasNoChannel
|
||||
|
||||
if (manager.isConnected()) {
|
||||
Akari.STAGE_TICK.submit(() -> processPackets(manager), null);
|
||||
submitted++;
|
||||
processPackets(manager);
|
||||
} else {
|
||||
// Spigot - Fix a race condition where a NetworkManager could be unregistered just before connection.
|
||||
if (manager.preparing) continue;
|
||||
@@ -152,10 +151,6 @@ public class NonblockingServerConnection {
|
||||
manager.handleDisconnection();
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < submitted; i++) {
|
||||
Akari.STAGE_TICK.take();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,5 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import com.google.common.collect.Queues;
|
||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
|
||||
import io.akarin.api.CheckedConcurrentLinkedQueue;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user