Browse Source

debugging broadcast device behaviour

cecylia 8 years ago
parent
commit
77909830b6
1 changed files with 17 additions and 1 deletions
  1. 17 1
      js/devicescripts.js

+ 17 - 1
js/devicescripts.js

@@ -126,7 +126,9 @@ var deviceScripts = {
                 if(packet.network.dstip == "Broadcast"){
                 if(packet.network.dstip == "Broadcast"){
                     for(var i=0; i<device.ports.length; i++){
                     for(var i=0; i<device.ports.length; i++){
                         if((i != portNum) && (getPortRecipient(device.id, i) != "Google")){
                         if((i != portNum) && (getPortRecipient(device.id, i) != "Google")){
-                            sendPacket(device.id, i, packet);
+                            newPacket = copyPacket(packet);
+                            newPacket.network.dstip = getPortRecipient(device.id, i);
+                            sendPacket(device.id, i, newPacket);
                         }
                         }
                     }
                     }
                 }
                 }
@@ -185,3 +187,17 @@ var deviceScripts = {
     
     
 }
 }
 
 
+function copyPacket (packet) {
+    newPacket = {};
+    for (var i = 0; i < packetFields.length; i++) {
+        if(packet.hasOwnProperty(packetFields[i].layer)){
+            newPacket[packetFields[i].layer] = {};
+            for (var j = 0; j < packetFields[i].fields.length; j++) {
+                if(packet[packetFields[i].layer].hasOwnProperty(packetFields[i].fields[j])){
+                    newPacket[packetFields[i].layer][ packetFields[i].fields[j] ] = packet[packetFields[i].layer][ packetFields[i].fields[j] ];
+                }
+            }
+        }
+    }
+    return newPacket;
+}