From 7785d6744dca6ea4009e5bf796c383828db024da Mon Sep 17 00:00:00 2001 From: Pugmatt Date: Wed, 25 Mar 2020 19:53:30 -0400 Subject: Fix for domain regex --- .../pugmatt/bedrockconnect/BedrockConnect.java | 50 +++++++++++++++++++++- .../bedrockconnect/listeners/PacketHandler.java | 4 +- 2 files changed, 50 insertions(+), 4 deletions(-) (limited to 'serverlist-server/src') diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java index 2c00ac4..b58f1d9 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java @@ -3,15 +3,17 @@ package main.com.pyratron.pugmatt.bedrockconnect; import main.com.pyratron.pugmatt.bedrockconnect.sql.Data; import main.com.pyratron.pugmatt.bedrockconnect.sql.MySQL; import main.com.pyratron.pugmatt.bedrockconnect.utils.PaletteManager; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; import java.io.*; +import java.net.*; import java.nio.file.Files; import java.nio.file.Paths; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.Timer; -import java.util.TimerTask; +import java.util.*; public class BedrockConnect { @@ -54,6 +56,50 @@ public class BedrockConnect { port = getArgValue(str, "port"); if(str.startsWith("nodb=")) noDB = true; + if(str.startsWith("generatedns=")) { + String ip; + try { + Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); + + System.out.println("Local IPv4 IPs:"); + while (interfaces.hasMoreElements()) { + NetworkInterface iface = interfaces.nextElement(); + + if (iface.isLoopback() || !iface.isUp() || iface.isVirtual() || iface.isPointToPoint()) + continue; + + Enumeration addresses = iface.getInetAddresses(); + while(addresses.hasMoreElements()) { + InetAddress addr = addresses.nextElement(); + + if(!(addr instanceof Inet4Address)) continue; + + ip = addr.getHostAddress(); + System.out.println(iface.getDisplayName() + ": " + ip); + } + } + + Scanner reader = new Scanner(System.in); // Reading from System.in + System.out.print("\nWhich IP should be used for the DNS records: "); + String selectedIP = reader.next().replaceAll("\\s+",""); + reader.close(); + + BufferedWriter br = new BufferedWriter(new FileWriter(new File("bc_dns.conf"))); + br.write("\n" + + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + ""); + br.close(); + } catch (SocketException e) { + throw new RuntimeException(e); + } + } } if(!noDB) diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java index f7362ef..536e802 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java @@ -1000,11 +1000,11 @@ public class PacketHandler implements BedrockPacketHandler { data.set(0, data.get(0).replaceAll("\\s","")); data.set(1, data.get(1).replaceAll("\\s","")); - if(data.get(0).length() >= 45) + if(data.get(0).length() >= 253) session.sendPacketImmediately(UIForms.createError("Address is too large. (Must be less than 45)")); else if(data.get(1).length() >= 10) session.sendPacketImmediately(UIForms.createError("Port is too large. (Must be less than 10)")); - else if (!data.get(0).matches("[a-zA-Z.0-9]+")) + else if (!data.get(0).matches("^((?!-)[A-Za-z0-9-]{1,63}(?