- Used IntelliJ's Refactoring-Method
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>github.openautonomousconnection</groupId>
|
||||
<artifactId>protocol</artifactId>
|
||||
<version>1.0.0-BETA.1</version>
|
||||
<version>1.0.0-BETA.2</version>
|
||||
<organization>
|
||||
<name>Open Autonomous Connection</name>
|
||||
<url>https://open-autonomous-connection.org/</url>
|
||||
|
@@ -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) {
|
||||
|
@@ -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
|
||||
|
@@ -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) {
|
||||
}
|
||||
}
|
||||
|
@@ -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());
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
|
@@ -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<ConnectedProtocolClient> 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<Domain> 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);
|
||||
}
|
||||
|
@@ -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() {
|
||||
|
@@ -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 + "}";
|
||||
}
|
||||
}
|
||||
|
@@ -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 + "/");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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));
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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) {
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -45,6 +45,7 @@ public class Classic_WebsitesContent extends DefaultMethodsOverrider {
|
||||
</body>
|
||||
</html>
|
||||
""";
|
||||
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 {
|
||||
</html>
|
||||
""";
|
||||
}
|
||||
|
||||
public static String ERROR_OCCURRED = ERROR_OCCURRED("No specified details!");
|
||||
}
|
||||
|
Reference in New Issue
Block a user