diff options
Diffstat (limited to 'src/main/java/net/minecraft/server/NetworkAcceptThread.java')
-rw-r--r-- | src/main/java/net/minecraft/server/NetworkAcceptThread.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/NetworkAcceptThread.java b/src/main/java/net/minecraft/server/NetworkAcceptThread.java new file mode 100644 index 00000000..05108d6b --- /dev/null +++ b/src/main/java/net/minecraft/server/NetworkAcceptThread.java @@ -0,0 +1,47 @@ +package net.minecraft.server; + +import java.io.IOException; +import java.net.InetAddress; +import java.util.HashMap; + +class NetworkAcceptThread extends Thread { + + final MinecraftServer a; /* synthetic field */ + + final NetworkListenThread b; /* synthetic field */ + + + NetworkAcceptThread(NetworkListenThread networklistenthread, String s, MinecraftServer minecraftserver) { + b = networklistenthread; + a = minecraftserver; + // super(s); + } + + @Override + public void run() { + HashMap<InetAddress, Long> clients = new HashMap<InetAddress, Long>(); + do { + if (!b.b) { + break; + } + try { + java.net.Socket socket = NetworkListenThread.a(b).accept(); + if (socket != null) { + InetAddress addr = socket.getInetAddress(); + if (clients.containsKey(addr)) { + if (System.currentTimeMillis() - clients.get(addr) < 5000) { + clients.put(addr, System.currentTimeMillis()); + socket.close(); + continue; + } + } + clients.put(addr, System.currentTimeMillis()); + NetLoginHandler netloginhandler = new NetLoginHandler(a, socket, (new StringBuilder()).append("Connection #").append(NetworkListenThread.b(b)).toString()); + NetworkListenThread.a(b, netloginhandler); + } + } catch (IOException ioexception) { + ioexception.printStackTrace(); + } + } while (true); + } +} |