From 2ca031be37a9e36b8eead1a688eb38b6e0bcf9ea Mon Sep 17 00:00:00 2001
From: hustoles <martin.hustoles@student.reutlingen-university.de>
Date: Thu, 30 Nov 2023 12:26:29 +0100
Subject: [PATCH] removed checksum check

---
 Documentation_codeChange_task2.docx           | Bin 12487 -> 12506 bytes
 src/main/java/cp/CPCommandMessage.java        |  16 ++-------
 .../java/cp/CPCommandResponseMessage.java     |  25 ++-----------
 src/main/java/cp/CPProtocol.java              |  33 +++++++++++++++---
 4 files changed, 33 insertions(+), 41 deletions(-)

diff --git a/Documentation_codeChange_task2.docx b/Documentation_codeChange_task2.docx
index f65370753b457e8215a05a1835f1b830057c424f..763a0c909aff210e8cfb5f8b39e9494777181455 100644
GIT binary patch
delta 3328
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
Ig?}dh0iaGC&j0`b

delta 3381
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
L5Z$)eU&(&}s%18A

diff --git a/src/main/java/cp/CPCommandMessage.java b/src/main/java/cp/CPCommandMessage.java
index 61f6d7a..dceda0a 100644
--- a/src/main/java/cp/CPCommandMessage.java
+++ b/src/main/java/cp/CPCommandMessage.java
@@ -6,22 +6,14 @@ import java.util.zip.CRC32;
 import java.util.zip.Checksum;
 
 public class CPCommandMessage extends CPMsg{
-
-    private static int messageIdCount = 0; //tracks the IDS
     private int currentMessageId;
-    private static final int MAX_ID = 65535; //maximum message id according to the protocol specification.
     protected static final String HEADER = "command";
 
     public CPCommandMessage() {}
 
-    public CPCommandMessage create(String cookie, String command, String message){
-
-        //maybe throw an exception if the ID's run out?
-        if(messageIdCount < MAX_ID){
+    public CPCommandMessage create(String cookie, String command, String message, int messageIdCount){
 
-            currentMessageId = messageIdCount;
-            messageIdCount++;
-        }
+        this.currentMessageId = messageIdCount;
 
         StringBuilder str = new StringBuilder();
         str.append(HEADER).append(' ');
@@ -45,8 +37,4 @@ public class CPCommandMessage extends CPMsg{
     public int getMessageId(){
         return currentMessageId;
     }
-
-    public static int getMaxMessageId() {
-        return MAX_ID;
-    }
 }
diff --git a/src/main/java/cp/CPCommandResponseMessage.java b/src/main/java/cp/CPCommandResponseMessage.java
index 036db6c..14e63b9 100644
--- a/src/main/java/cp/CPCommandResponseMessage.java
+++ b/src/main/java/cp/CPCommandResponseMessage.java
@@ -38,7 +38,7 @@ public class CPCommandResponseMessage extends CPMsg{
             //throws NumberFormatException, if the id couldnt get parsed for whatever reason
 
             //throws exception if the id from the received message is too large or negative, wich it cant be according to protocol specification
-            if(currentMessageId > CPCommandMessage.getMaxMessageId() || currentMessageId < 0){
+            if(currentMessageId > CPProtocol.getMaxId() || currentMessageId < 0){
                 throw new IllegalMsgException();
             }
         }catch (NumberFormatException e){
@@ -58,10 +58,7 @@ public class CPCommandResponseMessage extends CPMsg{
         }
 
 
-        /* im not proud of the following code, but it sure works :) */
-
         //reconstructes message
-        int fieldIndex = 5;
         int sumLen = 0;
 
         //calculating the actual length of the message
@@ -79,25 +76,9 @@ public class CPCommandResponseMessage extends CPMsg{
             }
         }
 
-        /* Doesnt work yet :)
-
-        //calculating and comparing crc
-        int tmpCRC;
-        int CRCLen = fields[fields.length - 1].length();
-
-
-        //get the crc
-        try {
-            tmpCRC = Integer.parseInt(fields[fields.length-1]);
-        }catch (NumberFormatException e){
-            throw new IllegalMsgException();
-        }
-
-        String calcCRC = sentence.substring(0,CRCLen);
 
-        if(tmpCRC != CPCommandMessage.calcCRC(calcCRC)){
-            throw new IllegalMsgException();
-        }*/
+        //comparing the CRC checksum
+        System.out.println("Checksum: " + fields[fields.length - 1]);
 
         //sets the received message as the data, so the client can print it on the console
         this.data = reconstructedMessage.toString();
diff --git a/src/main/java/cp/CPProtocol.java b/src/main/java/cp/CPProtocol.java
index 4a1c619..15a823f 100644
--- a/src/main/java/cp/CPProtocol.java
+++ b/src/main/java/cp/CPProtocol.java
@@ -16,6 +16,8 @@ public class CPProtocol extends Protocol {
     private static final int CP_HASHMAP_SIZE = 20;
     private String cookie;
     private int id;
+    private int messageIdCount = 0; //tracks the IDS
+    private static final int MAX_ID = 65535; //maximum message id according to the protocol specification.
     private PhyConfiguration PhyConfig;
     private PhyProtocol PhyProto;
     boolean isClient;
@@ -47,9 +49,16 @@ public class CPProtocol extends Protocol {
         //1.2: 1 a
         if(cookie != null) {
 
+            //does not send message if the maximal id is exeeded. increments id when command message is allowed to be created
+            if(messageIdCount >= MAX_ID){
+                return;
+            }else{
+                messageIdCount++;
+            }
+
             //1.2: 1 b
             CPCommandMessage cmdMsg = new CPCommandMessage();
-            cmdMsg.create(cookie, s, "status");
+            cmdMsg.create(cookie, s, "status", messageIdCount);
 
             //remembers the id of the current message, so when it's time to receive wel can check if the id's are the same
             this.id = cmdMsg.getMessageId();
@@ -83,17 +92,27 @@ public class CPProtocol extends Protocol {
                 //Discard Message
             }
 
+            //discard message, if not instance of CPCommandMessage
+            if(!(in instanceof CPCommandResponseMessage)){
+                continue;
+            }
+
+            //compare the id from the received message and the earlier sent message
+            if(((CPCommandResponseMessage) in).getMessageId() != this.id){
+                continue;
+            }
+
             receving = false;
         }
 
-        //compare the id from the received message and the earlier sent message
-        if(((CPCommandResponseMessage) in).getMessageId() != this.id){
-            return null;
-        }
 
         return in;
     }
 
+    public void cookieProcesing(PhyConfiguration config, String cookie){
+
+    }
+
 
      public void requestCookie(int count) throws IOException, IWProtocolException {
         if(count >= 3)
@@ -118,4 +137,8 @@ public class CPProtocol extends Protocol {
         }
         this.cookie = resMsg.getData();
     }
+
+    public static int getMaxId(){
+        return MAX_ID;
+    }
 }
-- 
GitLab