- Code cleanup
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
package org.openautonomousconnection.protocol.side.client;
|
||||
|
||||
import dev.unlegitdqrk.unlegitlibrary.network.system.client.NetworkClient;
|
||||
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.ClientDisconnectedEvent;
|
||||
import dev.unlegitdqrk.unlegitlibrary.network.utils.NetworkUtils;
|
||||
import dev.unlegitdqrk.unlegitlibrary.utils.DefaultMethodsOverrider;
|
||||
import lombok.Getter;
|
||||
import org.openautonomousconnection.protocol.ProtocolBridge;
|
||||
import org.openautonomousconnection.protocol.exceptions.UnsupportedProtocolException;
|
||||
import org.openautonomousconnection.protocol.packets.OACPacket;
|
||||
@@ -10,70 +15,20 @@ import org.openautonomousconnection.protocol.packets.v1_0_0.classic.Classic_Ping
|
||||
import org.openautonomousconnection.protocol.versions.ProtocolVersion;
|
||||
import org.openautonomousconnection.protocol.versions.v1_0_0.beta.DNSResponseCode;
|
||||
import org.openautonomousconnection.protocol.versions.v1_0_0.beta.Domain;
|
||||
import lombok.Getter;
|
||||
import dev.unlegitdqrk.unlegitlibrary.network.system.client.NetworkClient;
|
||||
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.ClientDisconnectedEvent;
|
||||
import dev.unlegitdqrk.unlegitlibrary.network.utils.NetworkUtils;
|
||||
import dev.unlegitdqrk.unlegitlibrary.utils.DefaultMethodsOverrider;
|
||||
import org.openautonomousconnection.protocol.versions.v1_0_0.classic.ClassicConverter;
|
||||
import org.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_Domain;
|
||||
import org.openautonomousconnection.protocol.versions.v1_0_0.classic.Classic_RequestDomain;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.net.ConnectException;
|
||||
import java.security.cert.CertificateException;
|
||||
|
||||
public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
||||
public final class ClientCertificateFolderStructure {
|
||||
public final File certificatesFolder;
|
||||
|
||||
public final File publicFolder;
|
||||
public final File privateFolder;
|
||||
|
||||
public final File privateCAFolder;
|
||||
public final File privateClientFolder;
|
||||
|
||||
public final File publicCAFolder;
|
||||
public final File publicClientFolder;
|
||||
|
||||
public ClientCertificateFolderStructure() {
|
||||
certificatesFolder = new File("certificates");
|
||||
|
||||
publicFolder = new File(certificatesFolder, "public");
|
||||
privateFolder = new File(certificatesFolder, "private");
|
||||
|
||||
privateCAFolder = new File(privateFolder, "ca");
|
||||
privateClientFolder = new File(privateFolder, "client");
|
||||
|
||||
publicCAFolder = new File(publicFolder, "ca");
|
||||
publicClientFolder = new File(publicFolder, "client");
|
||||
|
||||
if (!certificatesFolder.exists()) certificatesFolder.mkdirs();
|
||||
|
||||
if (!publicFolder.exists()) publicFolder.mkdirs();
|
||||
if (!privateFolder.exists()) privateFolder.mkdirs();
|
||||
|
||||
if (!privateCAFolder.exists()) privateCAFolder.mkdirs();
|
||||
if (!privateClientFolder.exists()) privateClientFolder.mkdirs();
|
||||
|
||||
if (!publicCAFolder.exists()) publicCAFolder.mkdirs();
|
||||
if (!publicClientFolder.exists()) publicClientFolder.mkdirs();
|
||||
}
|
||||
}
|
||||
|
||||
private final NetworkClient clientToDNS; // Handles everything with DNS-Connection
|
||||
@Getter
|
||||
private final ClientCertificateFolderStructure folderStructure;
|
||||
private WebClient webClient;
|
||||
|
||||
private ProtocolVersion serverVersion = null;
|
||||
@Getter
|
||||
private final ClientCertificateFolderStructure folderStructure;
|
||||
|
||||
public final NetworkClient getClientDNSConnection() {
|
||||
return clientToDNS;
|
||||
}
|
||||
|
||||
public ProtocolClient() throws CertificateException, IOException {
|
||||
folderStructure = new ClientCertificateFolderStructure();
|
||||
|
||||
@@ -84,8 +39,13 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
||||
build();
|
||||
}
|
||||
|
||||
public final NetworkClient getClientDNSConnection() {
|
||||
return clientToDNS;
|
||||
}
|
||||
|
||||
public final void createWebConnection(Domain domain, int pipelinePort, int webPort) throws Exception {
|
||||
if (!ProtocolBridge.getInstance().isProtocolSupported(ProtocolVersion.Protocol.OAC)) throw new UnsupportedProtocolException();
|
||||
if (!ProtocolBridge.getInstance().isProtocolSupported(ProtocolVersion.Protocol.OAC))
|
||||
throw new UnsupportedProtocolException();
|
||||
|
||||
if (webClient != null) {
|
||||
try {
|
||||
@@ -103,10 +63,12 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
||||
if (folder == null) throw new FileNotFoundException("Folder does not exist");
|
||||
|
||||
File[] files = folder.listFiles();
|
||||
if (files == null || files.length == 0) throw new FileNotFoundException("Folder " + folder.getAbsolutePath() + " is empty");
|
||||
if (files == null || files.length == 0)
|
||||
throw new FileNotFoundException("Folder " + folder.getAbsolutePath() + " is empty");
|
||||
|
||||
for (File file : files) {
|
||||
if (!file.getName().startsWith(prefix) || !file.getName().endsWith(extension)) throw new CertificateException(file.getAbsolutePath() + " is not valid");
|
||||
if (!file.getName().startsWith(prefix) || !file.getName().endsWith(extension))
|
||||
throw new CertificateException(file.getAbsolutePath() + " is not valid");
|
||||
if (!found) found = file.getName().equalsIgnoreCase(prefix + NetworkUtils.getPublicIPAddress() + extension);
|
||||
}
|
||||
|
||||
@@ -207,4 +169,41 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
||||
public abstract void validationCompleted(Domain domain, DNSResponseCode responseCode);
|
||||
|
||||
public abstract void getDestinationCompleted(Domain domain, String destination, DNSResponseCode validationResponse);
|
||||
|
||||
public final class ClientCertificateFolderStructure {
|
||||
public final File certificatesFolder;
|
||||
|
||||
public final File publicFolder;
|
||||
public final File privateFolder;
|
||||
|
||||
public final File privateCAFolder;
|
||||
public final File privateClientFolder;
|
||||
|
||||
public final File publicCAFolder;
|
||||
public final File publicClientFolder;
|
||||
|
||||
public ClientCertificateFolderStructure() {
|
||||
certificatesFolder = new File("certificates");
|
||||
|
||||
publicFolder = new File(certificatesFolder, "public");
|
||||
privateFolder = new File(certificatesFolder, "private");
|
||||
|
||||
privateCAFolder = new File(privateFolder, "ca");
|
||||
privateClientFolder = new File(privateFolder, "client");
|
||||
|
||||
publicCAFolder = new File(publicFolder, "ca");
|
||||
publicClientFolder = new File(publicFolder, "client");
|
||||
|
||||
if (!certificatesFolder.exists()) certificatesFolder.mkdirs();
|
||||
|
||||
if (!publicFolder.exists()) publicFolder.mkdirs();
|
||||
if (!privateFolder.exists()) privateFolder.mkdirs();
|
||||
|
||||
if (!privateCAFolder.exists()) privateCAFolder.mkdirs();
|
||||
if (!privateClientFolder.exists()) privateClientFolder.mkdirs();
|
||||
|
||||
if (!publicCAFolder.exists()) publicCAFolder.mkdirs();
|
||||
if (!publicClientFolder.exists()) publicClientFolder.mkdirs();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,9 +1,6 @@
|
||||
package org.openautonomousconnection.protocol.side.client;
|
||||
|
||||
import dev.unlegitdqrk.unlegitlibrary.network.system.client.NetworkClient;
|
||||
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.*;
|
||||
import dev.unlegitdqrk.unlegitlibrary.network.system.packets.Packet;
|
||||
import lombok.Getter;
|
||||
import org.openautonomousconnection.protocol.ProtocolBridge;
|
||||
import org.openautonomousconnection.protocol.versions.v1_0_0.beta.Domain;
|
||||
|
||||
@@ -21,19 +18,8 @@ import java.net.Socket;
|
||||
public final class WebClient {
|
||||
private final NetworkClient clientToWebPipeline; // Handles everything with Pipeline-Connection
|
||||
private SSLSocket clientToWebServer; // Handles everything with Web-Connection
|
||||
|
||||
private final Thread receiveThread = new Thread(this::receive);
|
||||
private ObjectOutputStream outputStream;
|
||||
private ObjectOutputStream outputStream; private final Thread receiveThread = new Thread(this::receive);
|
||||
private ObjectInputStream inputStream;
|
||||
|
||||
public final NetworkClient getClientPipelineConnection() {
|
||||
return clientToWebPipeline;
|
||||
}
|
||||
|
||||
public final SSLSocket getClientWebConnection() {
|
||||
return clientToWebServer;
|
||||
}
|
||||
|
||||
public WebClient(Domain domain, int pipelinePort, int webPort) throws Exception {
|
||||
clientToWebPipeline = new NetworkClient.ClientBuilder().setLogger(ProtocolBridge.getInstance().getLogger()).
|
||||
setHost(domain.getDestination()).setPort(pipelinePort).
|
||||
@@ -54,9 +40,9 @@ public final class WebClient {
|
||||
if (proxy != null) {
|
||||
Socket rawSocket = new Socket(proxy);
|
||||
rawSocket.connect(new InetSocketAddress(domain.getDestination(), webPort), 0);
|
||||
tempSocket = (SSLSocket)sslSocketFactory.createSocket(rawSocket, domain.getDestination(), webPort, true);
|
||||
tempSocket = (SSLSocket) sslSocketFactory.createSocket(rawSocket, domain.getDestination(), webPort, true);
|
||||
} else {
|
||||
tempSocket = (SSLSocket)sslSocketFactory.createSocket(domain.getDestination(), webPort);
|
||||
tempSocket = (SSLSocket) sslSocketFactory.createSocket(domain.getDestination(), webPort);
|
||||
}
|
||||
|
||||
clientToWebServer = tempSocket;
|
||||
@@ -85,7 +71,15 @@ public final class WebClient {
|
||||
}
|
||||
}
|
||||
|
||||
public final boolean isConnected() {
|
||||
public NetworkClient getClientPipelineConnection() {
|
||||
return clientToWebPipeline;
|
||||
}
|
||||
|
||||
public SSLSocket getClientWebConnection() {
|
||||
return clientToWebServer;
|
||||
}
|
||||
|
||||
public boolean isConnected() {
|
||||
return this.clientToWebServer != null && this.clientToWebServer.isConnected() && !this.clientToWebServer.isClosed()
|
||||
&& this.receiveThread.isAlive() && !this.receiveThread.isInterrupted() &&
|
||||
ProtocolBridge.getInstance().getProtocolClient().getClientDNSConnection().isConnected() && clientToWebPipeline.isConnected();
|
||||
@@ -93,7 +87,7 @@ public final class WebClient {
|
||||
|
||||
private void receive() {
|
||||
try {
|
||||
while(this.isConnected()) {
|
||||
while (this.isConnected()) {
|
||||
Object received = this.inputStream.readObject();
|
||||
}
|
||||
} catch (Exception var2) {
|
||||
@@ -105,7 +99,7 @@ public final class WebClient {
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized final boolean closeConnection() throws IOException {
|
||||
public synchronized boolean closeConnection() throws IOException {
|
||||
if (!this.isConnected()) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -133,4 +127,6 @@ public final class WebClient {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user