Compare commits

...

2 Commits

Author SHA1 Message Date
886cd1d321
Update to 0.0.2 2023-06-11 15:18:11 +01:00
a99c3fba70
Add hashing support for loader use. 2023-06-11 02:58:05 +01:00
2 changed files with 32 additions and 20 deletions

View File

@ -1,5 +1,5 @@
Manifest-Version: 1.0 Manifest-Version: 1.0
Main-Class: com.captainalm.test.calmnet.Main Main-Class: com.captainalm.test.calmnet.Main
Class-Path: calmnetlib-0.0.1.jar calmstdcrypt-0.0.1.jar calmnetlib.jar c Class-Path: calmnetlib-0.1.0.jar calmnetlib-0.0.1.jar calmstdcrypt-0.0.1
almstdcrypt.jar .jar calmnetlib.jar calmstdcrypt.jar

View File

@ -8,6 +8,7 @@ import com.captainalm.lib.calmnet.ssl.*;
import com.captainalm.lib.calmnet.packet.IPacket; import com.captainalm.lib.calmnet.packet.IPacket;
import com.captainalm.lib.calmnet.packet.PacketException; import com.captainalm.lib.calmnet.packet.PacketException;
import com.captainalm.lib.calmnet.packet.core.NetworkSSLUpgradePacket; import com.captainalm.lib.calmnet.packet.core.NetworkSSLUpgradePacket;
import com.captainalm.lib.stdcrypt.digest.DigestProvider;
import com.captainalm.utils.Console; import com.captainalm.utils.Console;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
@ -111,6 +112,14 @@ public final class Main {
port = 0; port = 0;
Console.writeLine("Ignored! ; Setting To: 0"); Console.writeLine("Ignored! ; Setting To: 0");
} }
Console.writeLine("Use hash trailer (Y/OTHER):");
char hopt = Console.readCharacter();
if ((hopt == 'Y' || hopt == 'y') && factory.getPacketLoader().getHashProvider() == null) {
factory.setPacketLoader(new PacketLoader(DigestProvider.getSHA256Instance(true)));
} else if (factory.getPacketLoader().getHashProvider() != null){
factory.setPacketLoader(new PacketLoader());
}
Console.writeLine("Use Fragmentation (Y/OTHER):"); Console.writeLine("Use Fragmentation (Y/OTHER):");
char fopt = Console.readCharacter(); char fopt = Console.readCharacter();
@ -186,7 +195,7 @@ public final class Main {
DatagramSocket socket = new DatagramSocket(); DatagramSocket socket = new DatagramSocket();
client = new NetMarshalClient(socket, address, port, factory, factory.getPacketLoader(), fragOpts); client = new NetMarshalClient(socket, address, port, factory, factory.getPacketLoader(), fragOpts);
isClient = true; isClient = true;
} catch (IOException e) { } catch (IOException | NullPointerException e) {
e.printStackTrace(); e.printStackTrace();
} }
break; break;
@ -197,7 +206,7 @@ public final class Main {
if (!socket.getLoopbackMode()) socket.setLoopbackMode(true); if (!socket.getLoopbackMode()) socket.setLoopbackMode(true);
client = new NetMarshalClient(socket, address, port, factory, factory.getPacketLoader(), fragOpts); client = new NetMarshalClient(socket, address, port, factory, factory.getPacketLoader(), fragOpts);
isClient = false; isClient = false;
} catch (IOException e) { } catch (IOException | NullPointerException e) {
e.printStackTrace(); e.printStackTrace();
} }
break; break;
@ -207,7 +216,7 @@ public final class Main {
DatagramSocket socket = new DatagramSocket(port, address); DatagramSocket socket = new DatagramSocket(port, address);
client = new NetMarshalClient(socket, address, port, factory, factory.getPacketLoader(), fragOpts); client = new NetMarshalClient(socket, address, port, factory, factory.getPacketLoader(), fragOpts);
isClient = true; isClient = true;
} catch (IOException e) { } catch (IOException | NullPointerException e) {
e.printStackTrace(); e.printStackTrace();
} }
break; break;
@ -218,7 +227,7 @@ public final class Main {
if (socket.getLoopbackMode()) socket.setLoopbackMode(false); if (socket.getLoopbackMode()) socket.setLoopbackMode(false);
client = new NetMarshalClient(socket, address, port, factory, factory.getPacketLoader(), fragOpts); client = new NetMarshalClient(socket, address, port, factory, factory.getPacketLoader(), fragOpts);
isClient = false; isClient = false;
} catch (IOException e) { } catch (IOException | NullPointerException e) {
e.printStackTrace(); e.printStackTrace();
} }
break; break;
@ -289,6 +298,7 @@ public final class Main {
if (!packet.isValid()) continue; if (!packet.isValid()) continue;
if (packet instanceof AKNPacket) { if (packet instanceof AKNPacket) {
synchronized (slockAckned) { synchronized (slockAckned) {
//System.out.println(Thread.currentThread().getName() + " : AKN");
ackn = true; ackn = true;
slockAckned.notifyAll(); slockAckned.notifyAll();
} }
@ -419,23 +429,25 @@ public final class Main {
private static void doAKNWait(IPacket packet) { private static void doAKNWait(IPacket packet) {
ackn = false; ackn = false;
int i = 0; int i = 0;
while (++i <= sendLoopsRemainingSetting && !ackn) { try {
try { synchronized (slockAckned) {
if (server != null) { while (++i <= sendLoopsRemainingSetting && !ackn) {
server.broadcastPacket(packet, false); try {
} if (server != null) {
if (client != null) { server.broadcastPacket(packet, false);
client.sendPacket(packet, false); }
} if (client != null) {
} catch (IOException | PacketException e) { client.sendPacket(packet, false);
e.printStackTrace(); }
} } catch (IOException | PacketException e) {
try { e.printStackTrace();
synchronized (slockAckned) { }
if (ackn) break;
//System.out.println(Thread.currentThread().getName() + " : " + (i - 1));
slockAckned.wait(sendLoopWaitTime); slockAckned.wait(sendLoopWaitTime);
} }
} catch (InterruptedException e) {
} }
} catch (InterruptedException e) {
} }
} }