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 {