|
@@ -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;
|
|
|
|
+}
|