From 6a798488996220f6ba6269be09456710fd976e26 Mon Sep 17 00:00:00 2001 From: Finn Date: Sat, 20 Sep 2025 20:42:58 +0200 Subject: [PATCH] - Used IntelliJ's Refactoring-Method --- pom.xml | 2 +- .../protocol/ProtocolBridge.java | 43 +++++++++---------- .../protocol/listeners/ServerListener.java | 2 - .../protocol/packets/OACPacket.java | 15 ++++--- .../packets/v1_0_0/beta/AuthPacket.java | 3 +- .../v1_0_0/beta/GetDestinationPacket.java | 1 - .../v1_0_0/beta/UnsupportedClassicPacket.java | 7 +-- .../v1_0_0/beta/ValidateDomainPacket.java | 3 +- .../v1_0_0/classic/Classic_DomainPacket.java | 2 +- .../v1_0_0/classic/Classic_MessagePacket.java | 2 +- .../v1_0_0/classic/Classic_PingPacket.java | 3 +- .../protocol/side/client/ProtocolClient.java | 28 ++++++------ .../side/server/ConnectedProtocolClient.java | 8 ++-- .../protocol/side/server/ProtocolServer.java | 26 +++++++---- .../protocol/versions/ProtocolVersion.java | 9 ++-- .../versions/v1_0_0/beta/DNSResponseCode.java | 5 +-- .../protocol/versions/v1_0_0/beta/Domain.java | 35 ++++++++------- .../v1_0_0/classic/ClassicHandlerClient.java | 4 +- .../v1_0_0/classic/ClassicHandlerServer.java | 4 +- .../classic/Classic_ClientListener.java | 12 +++--- .../v1_0_0/classic/Classic_Domain.java | 5 ++- .../v1_0_0/classic/Classic_DomainUtils.java | 30 ++++++++----- .../classic/Classic_ProtocolVersion.java | 1 - .../v1_0_0/classic/Classic_SiteType.java | 1 - .../classic/Classic_WebsitesContent.java | 3 +- 25 files changed, 136 insertions(+), 118 deletions(-) diff --git a/pom.xml b/pom.xml index 2e233c8..38ca8b4 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ github.openautonomousconnection protocol - 1.0.0-BETA.1 + 1.0.0-BETA.2 Open Autonomous Connection https://open-autonomous-connection.org/ diff --git a/src/main/java/github/openautonomousconnection/protocol/ProtocolBridge.java b/src/main/java/github/openautonomousconnection/protocol/ProtocolBridge.java index 69b960e..dbf8003 100644 --- a/src/main/java/github/openautonomousconnection/protocol/ProtocolBridge.java +++ b/src/main/java/github/openautonomousconnection/protocol/ProtocolBridge.java @@ -7,14 +7,12 @@ import github.openautonomousconnection.protocol.packets.v1_0_0.beta.AuthPacket; import github.openautonomousconnection.protocol.packets.v1_0_0.beta.GetDestinationPacket; import github.openautonomousconnection.protocol.packets.v1_0_0.beta.UnsupportedClassicPacket; import github.openautonomousconnection.protocol.packets.v1_0_0.beta.ValidateDomainPacket; -import github.openautonomousconnection.protocol.versions.ProtocolVersion; -import github.openautonomousconnection.protocol.versions.v1_0_0.beta.DNSResponseCode; -import github.openautonomousconnection.protocol.versions.v1_0_0.beta.Domain; -import github.openautonomousconnection.protocol.versions.v1_0_0.classic.ClassicHandlerClient; -import github.openautonomousconnection.protocol.versions.v1_0_0.classic.ClassicHandlerServer; import github.openautonomousconnection.protocol.packets.v1_0_0.classic.Classic_DomainPacket; import github.openautonomousconnection.protocol.side.client.ProtocolClient; import github.openautonomousconnection.protocol.side.server.ProtocolServer; +import github.openautonomousconnection.protocol.versions.ProtocolVersion; +import github.openautonomousconnection.protocol.versions.v1_0_0.classic.ClassicHandlerClient; +import github.openautonomousconnection.protocol.versions.v1_0_0.classic.ClassicHandlerServer; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_ClientListener; import lombok.Getter; import lombok.Setter; @@ -26,28 +24,24 @@ import java.lang.reflect.InvocationTargetException; public class ProtocolBridge { + @Getter + private static ProtocolBridge instance; @Getter private final ProtocolSettings protocolSettings; - @Getter private final ProtocolVersion protocolVersion; - - @Getter - private ProtocolServer protocolServer; - - @Getter - private ProtocolClient protocolClient; - @Getter private final Logger logger; - - @Getter @Setter - private ClassicHandlerServer classicHandlerServer; - @Getter @Setter - private ClassicHandlerClient classicHandlerClient; - @Getter - private static ProtocolBridge instance; + private ProtocolServer protocolServer; + @Getter + private ProtocolClient protocolClient; + @Getter + @Setter + private ClassicHandlerServer classicHandlerServer; + @Getter + @Setter + private ClassicHandlerClient classicHandlerClient; public ProtocolBridge(ProtocolServer protocolServer, ProtocolSettings protocolSettings, ProtocolVersion protocolVersion, File logFolder) throws InvocationTargetException, InstantiationException, IllegalAccessException, NoSuchMethodException { this.protocolServer = protocolServer; @@ -124,9 +118,12 @@ public class ProtocolBridge { GetDestinationPacket v100bGetDestinationPacket = new GetDestinationPacket(); if (isPacketSupported(v100bAuthPath)) protocolSettings.packetHandler.registerPacket(v100bAuthPath); - if (isPacketSupported(v100bUnsupportedClassicPacket)) protocolSettings.packetHandler.registerPacket(v100bUnsupportedClassicPacket); - if (isPacketSupported(v100bValidateDomainPacket)) protocolSettings.packetHandler.registerPacket(v100bValidateDomainPacket); - if (isPacketSupported(v100bGetDestinationPacket)) protocolSettings.packetHandler.registerPacket(v100bGetDestinationPacket); + if (isPacketSupported(v100bUnsupportedClassicPacket)) + protocolSettings.packetHandler.registerPacket(v100bUnsupportedClassicPacket); + if (isPacketSupported(v100bValidateDomainPacket)) + protocolSettings.packetHandler.registerPacket(v100bValidateDomainPacket); + if (isPacketSupported(v100bGetDestinationPacket)) + protocolSettings.packetHandler.registerPacket(v100bGetDestinationPacket); } public boolean isPacketSupported(OACPacket packet) { diff --git a/src/main/java/github/openautonomousconnection/protocol/listeners/ServerListener.java b/src/main/java/github/openautonomousconnection/protocol/listeners/ServerListener.java index d32e8b2..728b045 100644 --- a/src/main/java/github/openautonomousconnection/protocol/listeners/ServerListener.java +++ b/src/main/java/github/openautonomousconnection/protocol/listeners/ServerListener.java @@ -7,8 +7,6 @@ import me.finn.unlegitlibrary.event.Listener; import me.finn.unlegitlibrary.network.system.server.events.ConnectionHandlerConnectedEvent; import me.finn.unlegitlibrary.network.system.server.events.ConnectionHandlerDisconnectedEvent; -import java.util.ArrayList; - public class ServerListener extends EventListener { @Listener diff --git a/src/main/java/github/openautonomousconnection/protocol/packets/OACPacket.java b/src/main/java/github/openautonomousconnection/protocol/packets/OACPacket.java index f4137c4..8be6bcb 100644 --- a/src/main/java/github/openautonomousconnection/protocol/packets/OACPacket.java +++ b/src/main/java/github/openautonomousconnection/protocol/packets/OACPacket.java @@ -17,17 +17,17 @@ public abstract class OACPacket extends Packet { private DNSResponseCode responseCode = DNSResponseCode.RESPONSE_NOT_REQUIRED; - protected final void setResponseCode(DNSResponseCode responseCode) { - this.responseCode = responseCode; + public OACPacket(int id, ProtocolVersion protocolVersion) { + super(id); + this.protocolVersion = protocolVersion; } protected final DNSResponseCode getResponseCode() { return responseCode; } - public OACPacket(int id, ProtocolVersion protocolVersion) { - super(id); - this.protocolVersion = protocolVersion; + protected final void setResponseCode(DNSResponseCode responseCode) { + this.responseCode = responseCode; } @Override @@ -46,6 +46,9 @@ public abstract class OACPacket extends Packet { } public abstract void onWrite(PacketHandler packetHandler, ObjectOutputStream objectOutputStream) throws IOException, ClassNotFoundException; + public abstract void onRead(PacketHandler packetHandler, ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException; - protected void onResponseCodeRead(PacketHandler packetHandler, ObjectInputStream objectInputStream) {} + + protected void onResponseCodeRead(PacketHandler packetHandler, ObjectInputStream objectInputStream) { + } } diff --git a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/AuthPacket.java b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/AuthPacket.java index f6ab14e..dd77cc7 100644 --- a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/AuthPacket.java +++ b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/AuthPacket.java @@ -22,7 +22,8 @@ public class AuthPacket extends OACPacket { @Override public void onWrite(PacketHandler packetHandler, ObjectOutputStream objectOutputStream) throws IOException, ClassNotFoundException { - if (ProtocolBridge.getInstance().isRunningAsServer()) objectOutputStream.writeObject(ProtocolBridge.getInstance().getProtocolVersion()); + if (ProtocolBridge.getInstance().isRunningAsServer()) + objectOutputStream.writeObject(ProtocolBridge.getInstance().getProtocolVersion()); else { objectOutputStream.writeInt(ProtocolBridge.getInstance().getProtocolClient().getNetworkClient().getClientID()); objectOutputStream.writeObject(ProtocolBridge.getInstance().getProtocolVersion()); diff --git a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/GetDestinationPacket.java b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/GetDestinationPacket.java index fdfba9a..81cfd58 100644 --- a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/GetDestinationPacket.java +++ b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/GetDestinationPacket.java @@ -10,7 +10,6 @@ import me.finn.unlegitlibrary.network.system.packets.PacketHandler; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; -import java.util.function.DoubleBinaryOperator; public class GetDestinationPacket extends OACPacket { private Domain domain; diff --git a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/UnsupportedClassicPacket.java b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/UnsupportedClassicPacket.java index d36c92a..77180d3 100644 --- a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/UnsupportedClassicPacket.java +++ b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/UnsupportedClassicPacket.java @@ -4,7 +4,6 @@ import github.openautonomousconnection.protocol.ProtocolBridge; import github.openautonomousconnection.protocol.packets.OACPacket; import github.openautonomousconnection.protocol.versions.ProtocolVersion; import github.openautonomousconnection.protocol.versions.v1_0_0.beta.DNSResponseCode; -import me.finn.unlegitlibrary.network.system.packets.Packet; import me.finn.unlegitlibrary.network.system.packets.PacketHandler; import java.io.IOException; @@ -27,7 +26,8 @@ public class UnsupportedClassicPacket extends OACPacket { @Override public void onWrite(PacketHandler packetHandler, ObjectOutputStream objectOutputStream) throws IOException, ClassNotFoundException { - if (ProtocolBridge.getInstance().isRunningAsClient()) objectOutputStream.writeInt(ProtocolBridge.getInstance().getProtocolClient().getNetworkClient().getClientID()); + if (ProtocolBridge.getInstance().isRunningAsClient()) + objectOutputStream.writeInt(ProtocolBridge.getInstance().getProtocolClient().getNetworkClient().getClientID()); objectOutputStream.writeUTF(unsupportedClassicPacket.getName()); objectOutputStream.writeInt(content.length); for (Object o : content) objectOutputStream.writeObject(o); @@ -46,7 +46,8 @@ public class UnsupportedClassicPacket extends OACPacket { content[i] = objectInputStream.readObject(); } - if (ProtocolBridge.getInstance().isRunningAsServer()) ProtocolBridge.getInstance().getClassicHandlerServer().unsupportedClassicPacket(className, content, ProtocolBridge.getInstance().getProtocolServer().getClientByID(clientID)); + if (ProtocolBridge.getInstance().isRunningAsServer()) + ProtocolBridge.getInstance().getClassicHandlerServer().unsupportedClassicPacket(className, content, ProtocolBridge.getInstance().getProtocolServer().getClientByID(clientID)); else ProtocolBridge.getInstance().getClassicHandlerClient().unsupportedClassicPacket(className, content); } } diff --git a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/ValidateDomainPacket.java b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/ValidateDomainPacket.java index 946887c..94927f4 100644 --- a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/ValidateDomainPacket.java +++ b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/beta/ValidateDomainPacket.java @@ -25,7 +25,8 @@ public class ValidateDomainPacket extends OACPacket { @Override public void onWrite(PacketHandler packetHandler, ObjectOutputStream objectOutputStream) throws IOException, ClassNotFoundException { - if (ProtocolBridge.getInstance().isRunningAsClient()) objectOutputStream.writeInt(ProtocolBridge.getInstance().getProtocolClient().getNetworkClient().getClientID()); + if (ProtocolBridge.getInstance().isRunningAsClient()) + objectOutputStream.writeInt(ProtocolBridge.getInstance().getProtocolClient().getNetworkClient().getClientID()); else setResponseCode(ProtocolBridge.getInstance().getProtocolServer().validateDomain(domain)); objectOutputStream.writeObject(domain); diff --git a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_DomainPacket.java b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_DomainPacket.java index 2bbe04e..eef920d 100644 --- a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_DomainPacket.java +++ b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_DomainPacket.java @@ -1,13 +1,13 @@ package github.openautonomousconnection.protocol.packets.v1_0_0.classic; import github.openautonomousconnection.protocol.ProtocolBridge; +import github.openautonomousconnection.protocol.packets.OACPacket; import github.openautonomousconnection.protocol.packets.v1_0_0.beta.UnsupportedClassicPacket; import github.openautonomousconnection.protocol.versions.ProtocolVersion; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_Domain; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_DomainPacketReceivedEvent; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_ProtocolVersion; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_RequestDomain; -import github.openautonomousconnection.protocol.packets.OACPacket; import me.finn.unlegitlibrary.network.system.packets.PacketHandler; import java.io.IOException; diff --git a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_MessagePacket.java b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_MessagePacket.java index 951a7f7..dc25c1a 100644 --- a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_MessagePacket.java +++ b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_MessagePacket.java @@ -1,9 +1,9 @@ package github.openautonomousconnection.protocol.packets.v1_0_0.classic; import github.openautonomousconnection.protocol.ProtocolBridge; +import github.openautonomousconnection.protocol.packets.OACPacket; import github.openautonomousconnection.protocol.versions.ProtocolVersion; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_ProtocolVersion; -import github.openautonomousconnection.protocol.packets.OACPacket; import me.finn.unlegitlibrary.network.system.packets.PacketHandler; import java.io.IOException; diff --git a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_PingPacket.java b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_PingPacket.java index cd58429..b90d094 100644 --- a/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_PingPacket.java +++ b/src/main/java/github/openautonomousconnection/protocol/packets/v1_0_0/classic/Classic_PingPacket.java @@ -1,14 +1,13 @@ package github.openautonomousconnection.protocol.packets.v1_0_0.classic; import github.openautonomousconnection.protocol.ProtocolBridge; +import github.openautonomousconnection.protocol.packets.OACPacket; import github.openautonomousconnection.protocol.packets.v1_0_0.beta.UnsupportedClassicPacket; import github.openautonomousconnection.protocol.versions.ProtocolVersion; -import github.openautonomousconnection.protocol.versions.v1_0_0.beta.DNSResponseCode; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_Domain; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_PingPacketReceivedEvent; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_ProtocolVersion; import github.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_RequestDomain; -import github.openautonomousconnection.protocol.packets.OACPacket; import me.finn.unlegitlibrary.network.system.packets.PacketHandler; import java.io.IOException; diff --git a/src/main/java/github/openautonomousconnection/protocol/side/client/ProtocolClient.java b/src/main/java/github/openautonomousconnection/protocol/side/client/ProtocolClient.java index 5325206..49c4ac1 100644 --- a/src/main/java/github/openautonomousconnection/protocol/side/client/ProtocolClient.java +++ b/src/main/java/github/openautonomousconnection/protocol/side/client/ProtocolClient.java @@ -15,10 +15,21 @@ import java.io.File; import java.io.IOException; public abstract class ProtocolClient extends DefaultMethodsOverrider { - private ProtocolVersion serverVersion = null; - @Getter private final NetworkClient networkClient; + private ProtocolVersion serverVersion = null; + + public ProtocolClient(File caFolder, File certificatesClientFolder, File certificatesKeyFolder) { + if (!caFolder.exists()) caFolder.mkdirs(); + if (!certificatesClientFolder.exists()) certificatesClientFolder.mkdirs(); + if (!certificatesKeyFolder.exists()) certificatesKeyFolder.mkdirs(); + + networkClient = new NetworkClient.ClientBuilder().setLogger(ProtocolBridge.getInstance().getLogger()). + setHost(ProtocolBridge.getInstance().getProtocolSettings().host).setPort(ProtocolBridge.getInstance().getProtocolSettings().port). + setPacketHandler(ProtocolBridge.getInstance().getProtocolSettings().packetHandler).setEventManager(ProtocolBridge.getInstance().getProtocolSettings().eventManager). + setRootCAFolder(caFolder).setClientCertificatesFolder(certificatesClientFolder, certificatesKeyFolder). + build(); + } public final ProtocolVersion getServerVersion() { return serverVersion == null ? ProtocolVersion.PV_1_0_0_CLASSIC : serverVersion; @@ -86,18 +97,7 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider { networkClient.sendPacket(new ValidateDomainPacket(domain)); } - public ProtocolClient(File caFolder, File certificatesClientFolder, File certificatesKeyFolder) { - if (!caFolder.exists()) caFolder.mkdirs(); - if (!certificatesClientFolder.exists()) certificatesClientFolder.mkdirs(); - if (!certificatesKeyFolder.exists()) certificatesKeyFolder.mkdirs(); - - networkClient = new NetworkClient.ClientBuilder().setLogger(ProtocolBridge.getInstance().getLogger()). - setHost(ProtocolBridge.getInstance().getProtocolSettings().host).setPort(ProtocolBridge.getInstance().getProtocolSettings().port). - setPacketHandler(ProtocolBridge.getInstance().getProtocolSettings().packetHandler).setEventManager(ProtocolBridge.getInstance().getProtocolSettings().eventManager). - setRootCAFolder(caFolder).setClientCertificatesFolder(certificatesClientFolder, certificatesKeyFolder). - build(); - } - public abstract void validationCompleted(Domain domain, DNSResponseCode responseCode); + public abstract void getDestinationCompleted(Domain domain, String destination, DNSResponseCode validationResponse); } diff --git a/src/main/java/github/openautonomousconnection/protocol/side/server/ConnectedProtocolClient.java b/src/main/java/github/openautonomousconnection/protocol/side/server/ConnectedProtocolClient.java index 8ff0648..db190a9 100644 --- a/src/main/java/github/openautonomousconnection/protocol/side/server/ConnectedProtocolClient.java +++ b/src/main/java/github/openautonomousconnection/protocol/side/server/ConnectedProtocolClient.java @@ -12,6 +12,10 @@ public class ConnectedProtocolClient { private ProtocolVersion clientVersion = null; + public ConnectedProtocolClient(ConnectionHandler connectionHandler) { + this.connectionHandler = connectionHandler; + } + public ProtocolVersion getClientVersion() { return clientVersion == null ? ProtocolVersion.PV_1_0_0_CLASSIC : clientVersion; } @@ -20,10 +24,6 @@ public class ConnectedProtocolClient { if (clientVersion == null) this.clientVersion = clientVersion; } - public ConnectedProtocolClient(ConnectionHandler connectionHandler) { - this.connectionHandler = connectionHandler; - } - public boolean isStableClient() { return !isBetaClient() && !isClassicClient(); } diff --git a/src/main/java/github/openautonomousconnection/protocol/side/server/ProtocolServer.java b/src/main/java/github/openautonomousconnection/protocol/side/server/ProtocolServer.java index b5da4a3..2a73da9 100644 --- a/src/main/java/github/openautonomousconnection/protocol/side/server/ProtocolServer.java +++ b/src/main/java/github/openautonomousconnection/protocol/side/server/ProtocolServer.java @@ -5,7 +5,6 @@ import github.openautonomousconnection.protocol.versions.v1_0_0.beta.DNSResponse import github.openautonomousconnection.protocol.versions.v1_0_0.beta.Domain; import lombok.Getter; import me.finn.unlegitlibrary.file.ConfigurationManager; -import me.finn.unlegitlibrary.network.system.server.ConnectionHandler; import me.finn.unlegitlibrary.network.system.server.NetworkServer; import me.finn.unlegitlibrary.utils.DefaultMethodsOverrider; @@ -22,12 +21,7 @@ public abstract class ProtocolServer extends DefaultMethodsOverrider { @Getter private List clients; - private ConfigurationManager configurationManager; - - public final ConnectedProtocolClient getClientByID(int clientID) { - for (ConnectedProtocolClient client : clients) if (client.getConnectionHandler().getClientID() == clientID) return client; - return null; - } + private final ConfigurationManager configurationManager; public ProtocolServer(File caFolder, File certFile, File keyFile, File configFile) throws IOException { if (!caFolder.exists()) caFolder.mkdirs(); @@ -36,8 +30,10 @@ public abstract class ProtocolServer extends DefaultMethodsOverrider { configurationManager = new ConfigurationManager(configFile); configurationManager.loadProperties(); - if (!configurationManager.isSet("server.site.info")) configurationManager.set("server.site.info", "DNS-SERVER INFO SITE IP"); - if (!configurationManager.isSet("server.site.register")) configurationManager.set("server.site.register", "SERVER IP TO DNS-FRONTENT WEBSITE"); + if (!configurationManager.isSet("server.site.info")) + configurationManager.set("server.site.info", "DNS-SERVER INFO SITE IP"); + if (!configurationManager.isSet("server.site.register")) + configurationManager.set("server.site.register", "SERVER IP TO DNS-FRONTENT WEBSITE"); ProtocolBridge protocolBridge = ProtocolBridge.getInstance(); this.clients = new ArrayList<>(); @@ -50,6 +46,12 @@ public abstract class ProtocolServer extends DefaultMethodsOverrider { build(); } + public final ConnectedProtocolClient getClientByID(int clientID) { + for (ConnectedProtocolClient client : clients) + if (client.getConnectionHandler().getClientID() == clientID) return client; + return null; + } + public final String getDNSInfoSite() { return configurationManager.getString("server.site.info"); } @@ -59,10 +61,16 @@ public abstract class ProtocolServer extends DefaultMethodsOverrider { } public abstract List getDomains(); + public abstract String getDomainDestination(Domain domain); + public abstract String getSubnameDestination(Domain domain, String subname); + public abstract String getTLNInfoSite(String topLevelName); + public abstract DNSResponseCode validateDomain(Domain requestedDomain); + public abstract void validationFailed(Domain domain, ConnectedProtocolClient client, Exception exception); + public abstract void getDomainDestinationFailed(ConnectedProtocolClient client, Domain domain, DNSResponseCode validationResponse, Exception exception); } diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/ProtocolVersion.java b/src/main/java/github/openautonomousconnection/protocol/versions/ProtocolVersion.java index e97c17c..73433e6 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/ProtocolVersion.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/ProtocolVersion.java @@ -9,8 +9,7 @@ import java.util.List; public enum ProtocolVersion implements Serializable { PV_1_0_0_CLASSIC("1.0.0", ProtocolType.CLASSIC, ProtocolSide.BOTH), - PV_1_0_0_BETA("1.0.0", ProtocolType.BETA, ProtocolSide.BOTH, PV_1_0_0_CLASSIC) - ; + PV_1_0_0_BETA("1.0.0", ProtocolType.BETA, ProtocolSide.BOTH, PV_1_0_0_CLASSIC); @Getter private final String version; @@ -35,7 +34,7 @@ public enum ProtocolVersion implements Serializable { for (ProtocolVersion compatibleVersion : compatibleVersions) compatible.append(compatibleVersion.buildName()); compatible.append("]"); - return "{version=" + version + ";type=" + protocolType.toString() + ";side=" + protocolSide.toString() + ";compatible=" + compatible.toString() + "}"; + return "{version=" + version + ";type=" + protocolType.toString() + ";side=" + protocolSide.toString() + ";compatible=" + compatible + "}"; } public final String buildName() { @@ -45,9 +44,7 @@ public enum ProtocolVersion implements Serializable { public enum ProtocolType implements Serializable { CLASSIC, // -> See "_old" Projects on GitHub Organisation https://github.com/Open-Autonomous-Connection/ BETA, - STABLE - - ; + STABLE; @Override public final String toString() { diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/beta/DNSResponseCode.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/beta/DNSResponseCode.java index c653c4b..2080e0b 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/beta/DNSResponseCode.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/beta/DNSResponseCode.java @@ -27,8 +27,7 @@ public enum DNSResponseCode implements Serializable { RESPONSE_DOMAIN_SUBNAME_DELETED(126, "Subname deleted"), RESPONSE_DOMAIN_FULLY_EXIST(130, "Full domain exist"), - RESPONSE_DOMAIN_FULLY_NOT_EXIST(131, "Full domain does not exist") - ; + RESPONSE_DOMAIN_FULLY_NOT_EXIST(131, "Full domain does not exist"); @Getter private final int code; @@ -43,6 +42,6 @@ public enum DNSResponseCode implements Serializable { @Override public String toString() { - return "{code=" + code + ";description=" + description +"}"; + return "{code=" + code + ";description=" + description + "}"; } } diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/beta/Domain.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/beta/Domain.java index 9fad6df..ed3b54d 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/beta/Domain.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/beta/Domain.java @@ -8,15 +8,6 @@ import java.util.Arrays; import java.util.List; public class Domain implements Serializable { - public static class DefaultDomains { - public static final Domain DNS_INFO_SITE = new Domain("oac://about.oac/"); - public static final Domain DNS_REGISTER_SITE = new Domain("oac://register.oac/"); - - public static Domain TLN_INFO_SITE(String topLevelName) { - return new Domain("oac://about." + topLevelName + "/"); - } - } - @Getter private final String subname; @Getter @@ -31,12 +22,12 @@ public class Domain implements Serializable { private String fragment; @Getter private String protocol; - public Domain(String fullDomain) { // Remove protocol String domainWithPath = fullDomain.contains("://") ? fullDomain.split("://", 2)[1] : fullDomain; this.protocol = fullDomain.contains("://") ? fullDomain.split("://", 2)[0] : ""; - if (this.protocol.endsWith("://")) this.protocol = this.protocol.substring(0, this.protocol.length() - "://".length()); + if (this.protocol.endsWith("://")) + this.protocol = this.protocol.substring(0, this.protocol.length() - "://".length()); // Cut path String[] domainPartsAndPath = domainWithPath.split("/", 2); @@ -85,15 +76,27 @@ public class Domain implements Serializable { domain.getTopLevelName().equalsIgnoreCase(this.topLevelName) && domain.getProtocol().equalsIgnoreCase(this.protocol); } - public final String getDestination() { - if (ProtocolBridge.getInstance().isRunningAsClient()) return DNSResponseCode.RESPONSE_INVALID_REQUEST.toString(); + if (ProtocolBridge.getInstance().isRunningAsClient()) + return DNSResponseCode.RESPONSE_INVALID_REQUEST.toString(); - if (this.equals(DefaultDomains.DNS_INFO_SITE)) return ProtocolBridge.getInstance().getProtocolServer().getDNSInfoSite(); - if (this.equals(DefaultDomains.DNS_REGISTER_SITE)) return ProtocolBridge.getInstance().getProtocolServer().getDNSRegisterSite(); - if (this.name.equalsIgnoreCase("about") && this.protocol.equalsIgnoreCase("oac")) return ProtocolBridge.getInstance().getProtocolServer().getTLNInfoSite(topLevelName); + if (this.equals(DefaultDomains.DNS_INFO_SITE)) + return ProtocolBridge.getInstance().getProtocolServer().getDNSInfoSite(); + if (this.equals(DefaultDomains.DNS_REGISTER_SITE)) + return ProtocolBridge.getInstance().getProtocolServer().getDNSRegisterSite(); + if (this.name.equalsIgnoreCase("about") && this.protocol.equalsIgnoreCase("oac")) + return ProtocolBridge.getInstance().getProtocolServer().getTLNInfoSite(topLevelName); return !hasSubname() ? ProtocolBridge.getInstance().getProtocolServer().getDomainDestination(this) : ProtocolBridge.getInstance().getProtocolServer().getSubnameDestination(this, subname); } + public static class DefaultDomains { + public static final Domain DNS_INFO_SITE = new Domain("oac://about.oac/"); + public static final Domain DNS_REGISTER_SITE = new Domain("oac://register.oac/"); + + public static Domain TLN_INFO_SITE(String topLevelName) { + return new Domain("oac://about." + topLevelName + "/"); + } + } + } diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/ClassicHandlerClient.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/ClassicHandlerClient.java index e480005..c618933 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/ClassicHandlerClient.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/ClassicHandlerClient.java @@ -1,10 +1,10 @@ package github.openautonomousconnection.protocol.versions.v1_0_0.classic; -import github.openautonomousconnection.protocol.packets.v1_0_0.beta.UnsupportedClassicPacket; - public abstract class ClassicHandlerClient { public abstract void unsupportedClassicPacket(String classicPacketClassName, Object[] content); + public abstract void handleHTMLContent(Classic_SiteType siteType, Classic_Domain domain, String html); + public abstract void handleMessage(String message); } diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/ClassicHandlerServer.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/ClassicHandlerServer.java index 069e905..358e93b 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/ClassicHandlerServer.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/ClassicHandlerServer.java @@ -1,13 +1,15 @@ package github.openautonomousconnection.protocol.versions.v1_0_0.classic; import github.openautonomousconnection.protocol.side.server.ConnectedProtocolClient; -import me.finn.unlegitlibrary.network.system.server.ConnectionHandler; import java.sql.SQLException; public abstract class ClassicHandlerServer { public abstract void handleMessage(ConnectedProtocolClient client, String message, Classic_ProtocolVersion protocolVersion); + public abstract Classic_Domain getDomain(Classic_RequestDomain requestDomain) throws SQLException; + public abstract Classic_Domain ping(Classic_RequestDomain requestDomain) throws SQLException; + public abstract void unsupportedClassicPacket(String className, Object[] content, ConnectedProtocolClient client); } diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_ClientListener.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_ClientListener.java index efd946d..f30ebb1 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_ClientListener.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_ClientListener.java @@ -21,13 +21,14 @@ public class Classic_ClientListener extends EventListener { try { if (!ProtocolBridge.getInstance().getProtocolClient().getNetworkClient().sendPacket(new Classic_PingPacket(event.requestDomain, event.domain, false))) { ProtocolBridge.getInstance().getClassicHandlerClient().handleHTMLContent(Classic_SiteType.PROTOCOL, new Classic_LocalDomain("error-occurred", "html", ""), - Classic_WebsitesContent.ERROR_OCCURRED(event.domain.toString() + "/" + event.domain.path)); + Classic_WebsitesContent.ERROR_OCCURRED(event.domain + "/" + event.domain.path)); } } catch (IOException | ClassNotFoundException e) { ProtocolBridge.getInstance().getClassicHandlerClient().handleHTMLContent(Classic_SiteType.PROTOCOL, new Classic_LocalDomain("error-occurred", "html", ""), - Classic_WebsitesContent.ERROR_OCCURRED(event.domain.toString() + "/" + event.domain.path + ":\n" + e.getMessage())); + Classic_WebsitesContent.ERROR_OCCURRED(event.domain + "/" + event.domain.path + ":\n" + e.getMessage())); } - } else ProtocolBridge.getInstance().getClassicHandlerClient().handleHTMLContent(Classic_SiteType.PROTOCOL, new Classic_LocalDomain("domain-not-found", "html", ""), Classic_WebsitesContent.DOMAIN_NOT_FOUND); + } else + ProtocolBridge.getInstance().getClassicHandlerClient().handleHTMLContent(Classic_SiteType.PROTOCOL, new Classic_LocalDomain("domain-not-found", "html", ""), Classic_WebsitesContent.DOMAIN_NOT_FOUND); } @Listener @@ -49,9 +50,10 @@ public class Classic_ClientListener extends EventListener { ProtocolBridge.getInstance().getClassicHandlerClient().handleHTMLContent(Classic_SiteType.PUBLIC, event.domain, content.toString()); } catch (IOException exception) { ProtocolBridge.getInstance().getClassicHandlerClient().handleHTMLContent(Classic_SiteType.PROTOCOL, new Classic_LocalDomain("error-occurred", "html", ""), - Classic_WebsitesContent.ERROR_OCCURRED(exception.getMessage().replace(event.domain.getDomain().getDestination(), event.domain.toString() + "/" + event.domain.path))); + Classic_WebsitesContent.ERROR_OCCURRED(exception.getMessage().replace(event.domain.getDomain().getDestination(), event.domain + "/" + event.domain.path))); } - } else ProtocolBridge.getInstance().getClassicHandlerClient().handleHTMLContent(Classic_SiteType.PROTOCOL, new Classic_LocalDomain("error-not-reached", "html", ""), Classic_WebsitesContent.DOMAIN_NOT_REACHABLE); + } else + ProtocolBridge.getInstance().getClassicHandlerClient().handleHTMLContent(Classic_SiteType.PROTOCOL, new Classic_LocalDomain("error-not-reached", "html", ""), Classic_WebsitesContent.DOMAIN_NOT_REACHABLE); } @Override diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_Domain.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_Domain.java index 3682701..df344d1 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_Domain.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_Domain.java @@ -8,9 +8,10 @@ import java.io.Serializable; public class Classic_Domain implements Serializable { public final String name; public final String topLevelDomain; - private final String destination; public final String path; - @Getter private final Domain domain; + private final String destination; + @Getter + private final Domain domain; public Classic_Domain(String name, String topLevelDomain, String destination, String path) { this.domain = new Domain(name + "." + topLevelDomain + "/" + (path.startsWith("/") ? path : "/" + path)); diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_DomainUtils.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_DomainUtils.java index d3f0399..de42368 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_DomainUtils.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_DomainUtils.java @@ -13,11 +13,16 @@ class Classic_DomainUtils extends DefaultMethodsOverrider { URL uri = null; String tldString = null; - if (url.startsWith(Classic_SiteType.PUBLIC.name + "://")) url = url.substring((Classic_SiteType.PUBLIC.name + "://").length()); - if (url.startsWith(Classic_SiteType.CLIENT.name + "://")) url = url.substring((Classic_SiteType.CLIENT.name + "://").length()); - if (url.startsWith(Classic_SiteType.SERVER.name + "://")) url = url.substring((Classic_SiteType.SERVER.name + "://").length()); - if (url.startsWith(Classic_SiteType.PROTOCOL.name + "://")) url = url.substring((Classic_SiteType.PROTOCOL.name + "://").length()); - if (url.startsWith(Classic_SiteType.LOCAL.name + "://")) url = url.substring((Classic_SiteType.LOCAL.name + "://").length()); + if (url.startsWith(Classic_SiteType.PUBLIC.name + "://")) + url = url.substring((Classic_SiteType.PUBLIC.name + "://").length()); + if (url.startsWith(Classic_SiteType.CLIENT.name + "://")) + url = url.substring((Classic_SiteType.CLIENT.name + "://").length()); + if (url.startsWith(Classic_SiteType.SERVER.name + "://")) + url = url.substring((Classic_SiteType.SERVER.name + "://").length()); + if (url.startsWith(Classic_SiteType.PROTOCOL.name + "://")) + url = url.substring((Classic_SiteType.PROTOCOL.name + "://").length()); + if (url.startsWith(Classic_SiteType.LOCAL.name + "://")) + url = url.substring((Classic_SiteType.LOCAL.name + "://").length()); if (!url.startsWith("https://") && !url.startsWith("http://")) url = "https://" + url; @@ -29,11 +34,16 @@ class Classic_DomainUtils extends DefaultMethodsOverrider { } public static String getDomainName(String url) throws URISyntaxException, MalformedURLException { - if (url.startsWith(Classic_SiteType.PUBLIC.name + "://")) url = url.substring((Classic_SiteType.PUBLIC.name + "://").length()); - if (url.startsWith(Classic_SiteType.CLIENT.name + "://")) url = url.substring((Classic_SiteType.CLIENT.name + "://").length()); - if (url.startsWith(Classic_SiteType.SERVER.name + "://")) url = url.substring((Classic_SiteType.SERVER.name + "://").length()); - if (url.startsWith(Classic_SiteType.PROTOCOL.name + "://")) url = url.substring((Classic_SiteType.PROTOCOL.name + "://").length()); - if (url.startsWith(Classic_SiteType.LOCAL.name + "://")) url = url.substring((Classic_SiteType.LOCAL.name + "://").length()); + if (url.startsWith(Classic_SiteType.PUBLIC.name + "://")) + url = url.substring((Classic_SiteType.PUBLIC.name + "://").length()); + if (url.startsWith(Classic_SiteType.CLIENT.name + "://")) + url = url.substring((Classic_SiteType.CLIENT.name + "://").length()); + if (url.startsWith(Classic_SiteType.SERVER.name + "://")) + url = url.substring((Classic_SiteType.SERVER.name + "://").length()); + if (url.startsWith(Classic_SiteType.PROTOCOL.name + "://")) + url = url.substring((Classic_SiteType.PROTOCOL.name + "://").length()); + if (url.startsWith(Classic_SiteType.LOCAL.name + "://")) + url = url.substring((Classic_SiteType.LOCAL.name + "://").length()); if (!url.startsWith("https://") && !url.startsWith("http://")) url = "https://" + url; diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_ProtocolVersion.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_ProtocolVersion.java index ac07baa..96dcea9 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_ProtocolVersion.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_ProtocolVersion.java @@ -4,7 +4,6 @@ import java.io.Serializable; public enum Classic_ProtocolVersion implements Serializable { PV_1_0_0("1.0.0"); - ; public final String version; Classic_ProtocolVersion(String version) { diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_SiteType.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_SiteType.java index 64c2e51..d771ebc 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_SiteType.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_SiteType.java @@ -5,7 +5,6 @@ import java.io.Serializable; enum Classic_SiteType implements Serializable { CLIENT("oac-client"), SERVER("oac-server"), PUBLIC("oac"), PROTOCOL("oac-protocol"), LOCAL("oac-local"); - ; public final String name; diff --git a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_WebsitesContent.java b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_WebsitesContent.java index 3442d0c..0930144 100644 --- a/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_WebsitesContent.java +++ b/src/main/java/github/openautonomousconnection/protocol/versions/v1_0_0/classic/Classic_WebsitesContent.java @@ -45,6 +45,7 @@ public class Classic_WebsitesContent extends DefaultMethodsOverrider { """; + public static String ERROR_OCCURRED = ERROR_OCCURRED("No specified details!"); public static String ERROR_OCCURRED(String errorDetails) { return """ @@ -63,6 +64,4 @@ public class Classic_WebsitesContent extends DefaultMethodsOverrider { """; } - - public static String ERROR_OCCURRED = ERROR_OCCURRED("No specified details!"); }